From 4a7485c58e53e1f8a4160901973de416c4d612ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Tue, 22 Oct 2024 17:32:46 +0800 Subject: [PATCH] =?UTF-8?q?Demo=EF=BC=9A=E8=8A=82=E7=82=B9=E5=8F=B3?= =?UTF-8?q?=E9=94=AE=E8=8F=9C=E5=8D=95=E6=96=B0=E5=A2=9E=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/constants/constant.js | 3 ++- web/src/lang/en_us.js | 4 ++- web/src/lang/zh_cn.js | 4 ++- web/src/lang/zh_tw.js | 4 ++- web/src/pages/Edit/components/Contextmenu.vue | 26 ++++++++++++++++++- web/src/pages/Edit/components/Edit.vue | 13 +++++----- web/src/store.js | 6 +++++ 7 files changed, 49 insertions(+), 11 deletions(-) diff --git a/simple-mind-map/src/constants/constant.js b/simple-mind-map/src/constants/constant.js index 20cee026..110c90f4 100644 --- a/simple-mind-map/src/constants/constant.js +++ b/simple-mind-map/src/constants/constant.js @@ -167,7 +167,8 @@ export const nodeDataNoStylePropList = [ 'range', 'customLeft', 'customTop', - 'customTextWidth' + 'customTextWidth', + 'checkbox' ] // 错误类型 diff --git a/web/src/lang/en_us.js b/web/src/lang/en_us.js index 3f25c6dc..c5a8f01f 100644 --- a/web/src/lang/en_us.js +++ b/web/src/lang/en_us.js @@ -113,7 +113,9 @@ export default { copySuccess: 'Copy success', copyFail: 'Copy fail', number: 'Number child nodes', - expandNodeChild: 'Expand all sub nodes' + expandNodeChild: 'Expand all sub nodes', + addToDo: 'Add toDo', + removeToDo: 'Remove toDo' }, count: { words: 'Words', diff --git a/web/src/lang/zh_cn.js b/web/src/lang/zh_cn.js index 3b02eba1..3c6371aa 100644 --- a/web/src/lang/zh_cn.js +++ b/web/src/lang/zh_cn.js @@ -113,7 +113,9 @@ export default { copySuccess: '复制成功', copyFail: '复制失败', number: '编号其子节点', - expandNodeChild: '展开所有下级节点' + expandNodeChild: '展开所有下级节点', + addToDo: '添加待办', + removeToDo: '删除待办' }, count: { words: '字数', diff --git a/web/src/lang/zh_tw.js b/web/src/lang/zh_tw.js index 01f2005b..66fc458b 100644 --- a/web/src/lang/zh_tw.js +++ b/web/src/lang/zh_tw.js @@ -113,7 +113,9 @@ export default { copySuccess: '複製成功', copyFail: '複製失敗', number: '將其子節點編號', - expandNodeChild: '展開所有下級節點' + expandNodeChild: '展開所有下級節點', + addToDo: '添加待辦', + removeToDo: '刪除待辦' }, count: { words: '字數', diff --git a/web/src/pages/Edit/components/Contextmenu.vue b/web/src/pages/Edit/components/Contextmenu.vue index d4fcb711..06dd4bb6 100644 --- a/web/src/pages/Edit/components/Contextmenu.vue +++ b/web/src/pages/Edit/components/Contextmenu.vue @@ -89,6 +89,11 @@ +
+ {{ + hasCheckbox ? $t('contextmenu.removeToDo') : $t('contextmenu.addToDo') + }} +
{{ $t('contextmenu.deleteNode') }} @@ -244,7 +249,8 @@ export default { ...mapState({ isZenMode: state => state.localConfig.isZenMode, isDark: state => state.localConfig.isDark, - supportNumbers: state => state.supportNumbers + supportNumbers: state => state.supportNumbers, + supportCheckbox: state => state.supportCheckbox }), expandList() { return [ @@ -322,6 +328,9 @@ export default { }, numberLevelList() { return numberLevelList[this.$i18n.locale] || numberLevelList.zh + }, + hasCheckbox() { + return !!this.node.getData('checkbox') } }, created() { @@ -496,6 +505,21 @@ export default { this.mindMap.execCommand('SET_NUMBER', [], { [prop]: value }) + this.hide() + }, + + // 设置待办 + setCheckbox() { + this.mindMap.execCommand( + 'SET_CHECKBOX', + [], + this.hasCheckbox + ? null + : { + done: false + } + ) + this.hide() }, // 复制到剪贴板 diff --git a/web/src/pages/Edit/components/Edit.vue b/web/src/pages/Edit/components/Edit.vue index 8b46d59f..8ed12d78 100644 --- a/web/src/pages/Edit/components/Edit.vue +++ b/web/src/pages/Edit/components/Edit.vue @@ -74,17 +74,14 @@ import OuterFrame from 'simple-mind-map/src/plugins/OuterFrame.js' import Themes from 'simple-mind-map-plugin-themes' // 协同编辑插件 // import Cooperate from 'simple-mind-map/src/plugins/Cooperate.js' -// 手绘风格插件,该插件为付费插件,详情请查看开发文档 +// 以下插件为付费插件,详情请查看开发文档。依次为:手绘风格插件、标记插件、编号插件、Freemind软件格式导入导出插件、Excel软件格式导入导出插件、待办插件 // import HandDrawnLikeStyle from 'simple-mind-map-plugin-handdrawnlikestyle' -// 标记插件,该插件为付费插件,详情请查看开发文档 // import Notation from 'simple-mind-map-plugin-notation' -// 编号插件,该插件为付费插件,详情请查看开发文档 // import Numbers from 'simple-mind-map-plugin-numbers' -// Freemind软件格式导入导出插件,该插件为付费插件,详情请查看开发文档 // import Freemind from 'simple-mind-map-plugin-freemind' -// Excel软件格式导入导出插件,该插件为付费插件,详情请查看开发文档 // import Excel from 'simple-mind-map-plugin-excel' -// npm link simple-mind-map-plugin-excel simple-mind-map-plugin-freemind simple-mind-map-plugin-numbers simple-mind-map-plugin-notation simple-mind-map-plugin-handdrawnlikestyle simple-mind-map simple-mind-map-plugin-themes +// import Checkbox from 'simple-mind-map-plugin-checkbox' +// npm link simple-mind-map-plugin-excel simple-mind-map-plugin-freemind simple-mind-map-plugin-numbers simple-mind-map-plugin-notation simple-mind-map-plugin-handdrawnlikestyle simple-mind-map-plugin-checkbox simple-mind-map simple-mind-map-plugin-themes import OutlineSidebar from './OutlineSidebar' import Style from './Style' import BaseStyle from './BaseStyle' @@ -577,6 +574,10 @@ export default { this.$store.commit('setSupportExcel', true) Vue.prototype.Excel = Excel } + if (typeof Checkbox !== 'undefined') { + this.mindMap.addPlugin(Checkbox) + this.$store.commit('setSupportCheckbox', true) + } this.mindMap.keyCommand.addShortcut('Control+s', () => { this.manualSave() }) diff --git a/web/src/store.js b/web/src/store.js index ac0e9aea..9adc970c 100644 --- a/web/src/store.js +++ b/web/src/store.js @@ -33,6 +33,7 @@ const store = new Vuex.Store({ supportNumbers: false, // 是否支持编号 supportFreemind: false, // 是否支持Freemind插件 supportExcel: false, // 是否支持Excel插件 + supportCheckbox: false, // 是否支持Checkbox插件 isDragOutlineTreeNode: false // 当前是否正在拖拽大纲树的节点 }, mutations: { @@ -105,6 +106,11 @@ const store = new Vuex.Store({ state.supportExcel = data }, + // 设置是否支持Checkbox插件 + setSupportCheckbox(state, data) { + state.supportCheckbox = data + }, + // 设置树节点拖拽 setIsDragOutlineTreeNode(state, data) { state.isDragOutlineTreeNode = data