Feat:支持配置鼠标滚轮方向对应的缩放行为

This commit is contained in:
wanglin2 2023-06-27 16:46:37 +08:00
parent 74618a8a2b
commit 443a714549
5 changed files with 41 additions and 7 deletions

View File

@ -61,6 +61,8 @@ export const defaultOpt = {
mousewheelAction: CONSTANTS.MOUSE_WHEEL_ACTION.ZOOM, // zoom放大缩小、move上下移动 mousewheelAction: CONSTANTS.MOUSE_WHEEL_ACTION.ZOOM, // zoom放大缩小、move上下移动
// 当mousewheelAction设为move时可以通过该属性控制鼠标滚动一下视图移动的步长单位px // 当mousewheelAction设为move时可以通过该属性控制鼠标滚动一下视图移动的步长单位px
mousewheelMoveStep: 100, mousewheelMoveStep: 100,
// 当mousewheelAction设为zoom时默认向前滚动是缩小向后滚动是放大如果该属性设为true那么会反过来
mousewheelZoomActionReverse: false,
// 默认插入的二级节点的文字 // 默认插入的二级节点的文字
defaultInsertSecondLevelNodeText: '二级节点', defaultInsertSecondLevelNodeText: '二级节点',
// 默认插入的二级以下节点的文字 // 默认插入的二级以下节点的文字

View File

@ -64,7 +64,8 @@ class View {
customHandleMousewheel, customHandleMousewheel,
mousewheelAction, mousewheelAction,
mouseScaleCenterUseMousePosition, mouseScaleCenterUseMousePosition,
mousewheelMoveStep mousewheelMoveStep,
mousewheelZoomActionReverse
} = this.mindMap.opt } = this.mindMap.opt
// 是否自定义鼠标滚轮事件 // 是否自定义鼠标滚轮事件
if ( if (
@ -81,12 +82,12 @@ class View {
// 鼠标滚轮,向上和向左,都是缩小 // 鼠标滚轮,向上和向左,都是缩小
case CONSTANTS.DIR.UP: case CONSTANTS.DIR.UP:
case CONSTANTS.DIR.LEFT: case CONSTANTS.DIR.LEFT:
this.narrow(cx, cy) mousewheelZoomActionReverse ? this.enlarge(cx, cy) : this.narrow(cx, cy)
break break
// 鼠标滚轮,向下和向右,都是放大 // 鼠标滚轮,向下和向右,都是放大
case CONSTANTS.DIR.DOWN: case CONSTANTS.DIR.DOWN:
case CONSTANTS.DIR.RIGHT: case CONSTANTS.DIR.RIGHT:
this.enlarge(cx, cy) mousewheelZoomActionReverse ? this.narrow(cx, cy) : this.enlarge(cx, cy)
break break
} }
} else {// 鼠标滚轮事件控制画布移动 } else {// 鼠标滚轮事件控制画布移动

View File

@ -43,7 +43,10 @@ export default {
associativeLineWidth: 'Width', associativeLineWidth: 'Width',
associativeLineColor: 'Color', associativeLineColor: 'Color',
associativeLineActiveWidth: 'Active width', associativeLineActiveWidth: 'Active width',
associativeLineActiveColor: 'Active color' associativeLineActiveColor: 'Active color',
mousewheelZoomActionReverse: 'Mouse Wheel Zoom',
mousewheelZoomActionReverse1: 'Zoom out forward and zoom in back',
mousewheelZoomActionReverse2: 'Zoom in forward and zoom out back'
}, },
color: { color: {
moreColor: 'More color' moreColor: 'More color'

View File

@ -43,7 +43,10 @@ export default {
associativeLineWidth: '粗细', associativeLineWidth: '粗细',
associativeLineColor: '颜色', associativeLineColor: '颜色',
associativeLineActiveWidth: '激活粗细', associativeLineActiveWidth: '激活粗细',
associativeLineActiveColor: '激活颜色' associativeLineActiveColor: '激活颜色',
mousewheelZoomActionReverse: '鼠标滚轮缩放',
mousewheelZoomActionReverse1: '向前缩小向后放大',
mousewheelZoomActionReverse2: '向前放大向后缩小'
}, },
color: { color: {
moreColor: '更多颜色' moreColor: '更多颜色'

View File

@ -567,6 +567,7 @@
</template> </template>
<!-- 其他配置 --> <!-- 其他配置 -->
<div class="title noTop">{{ $t('baseStyle.otherConfig') }}</div> <div class="title noTop">{{ $t('baseStyle.otherConfig') }}</div>
<!-- 配置开启自由拖拽 -->
<div class="row"> <div class="row">
<div class="rowItem"> <div class="rowItem">
<el-checkbox v-model="config.enableFreeDrag" @change=" <el-checkbox v-model="config.enableFreeDrag" @change="
@ -576,11 +577,13 @@
">{{ $t('baseStyle.enableFreeDrag') }}</el-checkbox> ">{{ $t('baseStyle.enableFreeDrag') }}</el-checkbox>
</div> </div>
</div> </div>
<!-- 配置是否启用富文本编辑 -->
<div class="row"> <div class="row">
<div class="rowItem"> <div class="rowItem">
<el-checkbox v-model="enableNodeRichText" @change="enableNodeRichTextChange">{{ $t('baseStyle.isEnableNodeRichText') }}</el-checkbox> <el-checkbox v-model="enableNodeRichText" @change="enableNodeRichTextChange">{{ $t('baseStyle.isEnableNodeRichText') }}</el-checkbox>
</div> </div>
</div> </div>
<!-- 配置鼠标滚轮行为 -->
<div class="row"> <div class="row">
<div class="rowItem"> <div class="rowItem">
<span class="name">{{ $t('baseStyle.mousewheelAction') }}</span> <span class="name">{{ $t('baseStyle.mousewheelAction') }}</span>
@ -600,6 +603,26 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<!-- 配置鼠标缩放行为 -->
<div class="row" v-if="config.mousewheelAction === 'zoom'">
<div class="rowItem">
<span class="name">{{ $t('baseStyle.mousewheelZoomActionReverse') }}</span>
<el-select
size="mini"
style="width: 120px"
v-model="config.mousewheelZoomActionReverse"
placeholder=""
@change="
value => {
updateOtherConfig('mousewheelZoomActionReverse', value)
}
"
>
<el-option :label="$t('baseStyle.mousewheelZoomActionReverse1') " :value="false"></el-option>
<el-option :label="$t('baseStyle.mousewheelZoomActionReverse2') " :value="true"></el-option>
</el-select>
</div>
</div>
</div> </div>
</Sidebar> </Sidebar>
</template> </template>
@ -668,7 +691,8 @@ export default {
}, },
config: { config: {
enableFreeDrag: false, enableFreeDrag: false,
mousewheelAction: 'zoom' mousewheelAction: 'zoom',
mousewheelZoomActionReverse: false
}, },
watermarkConfig: { watermarkConfig: {
show: false, show: false,
@ -720,6 +744,7 @@ export default {
created () { created () {
this.enableNodeRichText = this.localConfig.openNodeRichText this.enableNodeRichText = this.localConfig.openNodeRichText
this.mousewheelAction = this.localConfig.mousewheelAction this.mousewheelAction = this.localConfig.mousewheelAction
this.mousewheelZoomActionReverse = this.localConfig.mousewheelZoomActionReverse
}, },
methods: { methods: {
...mapMutations(['setLocalConfig']), ...mapMutations(['setLocalConfig']),
@ -765,7 +790,7 @@ export default {
// //
initConfig() { initConfig() {
;['enableFreeDrag', 'mousewheelAction'].forEach(key => { ;['enableFreeDrag', 'mousewheelAction', 'mousewheelZoomActionReverse'].forEach(key => {
this.config[key] = this.mindMap.getConfig(key) this.config[key] = this.mindMap.getConfig(key)
}) })
}, },