From ec5cddcfc4e1f44be92836d36f8a1b79bebdaa69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=B4=E8=B5=9B=E9=9B=B7?= Date: Wed, 15 Jan 2025 22:04:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=BC=80?= =?UTF-8?q?=E5=90=AF/=E5=85=B3=E9=97=AD=E7=BA=BF=E6=AE=B5=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=AF=BB=E8=B7=AF=E7=9A=84contextMenu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- plugins/core/controls/control/base/line.ts | 6 +- plugins/core/controls/control/base/polygon.ts | 7 +- plugins/core/i18n/en_US.ts | 2 + plugins/core/i18n/zh_CN.ts | 2 + plugins/core/menus/index.ts | 6 +- plugins/core/menus/menu-disabled-autoobi.ts | 78 +++++++++++++++++++ plugins/core/menus/menu-enable-autoobi.ts | 78 +++++++++++++++++++ src/App.vue | 6 +- src/editor/Editor.vue | 17 ++-- 10 files changed, 190 insertions(+), 14 deletions(-) create mode 100644 plugins/core/menus/menu-disabled-autoobi.ts create mode 100644 plugins/core/menus/menu-enable-autoobi.ts diff --git a/package.json b/package.json index 843ae53..b67eb85 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddei-editor", - "version": "1.2.45", + "version": "1.2.46-1", "private": false, "type": "module", "author": "hoslay <3697355039@qq.com>", diff --git a/plugins/core/controls/control/base/line.ts b/plugins/core/controls/control/base/line.ts index f225178..46a0e16 100644 --- a/plugins/core/controls/control/base/line.ts +++ b/plugins/core/controls/control/base/line.ts @@ -254,5 +254,9 @@ export default { LINE_OBI_FILTER: (model, params)=>{ return false } - } + }, + menus:[ + { name: "ddei-core-menu-disabled-auto-obi" }, + { name: "ddei-core-menu-enable-auto-obi" } + ] } \ No newline at end of file diff --git a/plugins/core/controls/control/base/polygon.ts b/plugins/core/controls/control/base/polygon.ts index eb4646e..f44f0c7 100644 --- a/plugins/core/controls/control/base/polygon.ts +++ b/plugins/core/controls/control/base/polygon.ts @@ -545,7 +545,7 @@ export default { LINE_OBI_FILTER: (model, params) => { let line = params.line if (line) { - + let distLinks = line.stage.getDistModelLinks(line.id); if (distLinks) { for (let i = 0; i < distLinks.length;i++){ @@ -562,6 +562,11 @@ export default { return false; } } + //如果取消了避障,则忽略 + if (line.disabledAutoObi) { + + return false; + } } return true } diff --git a/plugins/core/i18n/en_US.ts b/plugins/core/i18n/en_US.ts index b55aa05..ba0af5e 100644 --- a/plugins/core/i18n/en_US.ts +++ b/plugins/core/i18n/en_US.ts @@ -79,6 +79,8 @@ export default { paper: 'Paper', propertyName: "Property", searchResult: "Search Result", + enableAutoObi: "Avoiding Obstacles", + disabledAutoObi: "Cancel Avoiding Obstacles", property: { id: 'id', code: 'Code', diff --git a/plugins/core/i18n/zh_CN.ts b/plugins/core/i18n/zh_CN.ts index 004e574..53c7332 100644 --- a/plugins/core/i18n/zh_CN.ts +++ b/plugins/core/i18n/zh_CN.ts @@ -81,6 +81,8 @@ export default { paper: '纸张', propertyName:"属性", searchResult: "搜索结果", + enableAutoObi: "开启避障", + disabledAutoObi: "取消避障", property:{ id:'id', code:'编码', diff --git a/plugins/core/menus/index.ts b/plugins/core/menus/index.ts index 878e4b7..fffd6c1 100644 --- a/plugins/core/menus/index.ts +++ b/plugins/core/menus/index.ts @@ -7,6 +7,8 @@ import MenuMergeCell from "./menu-merge-cell" import MenuRemoveCol from "./menu-remove-col" import MenuRemoveRow from "./menu-remove-row" import MenuRemoveSheet from "./menu-remove-sheet" +import MenuDisabledAutoObi from "./menu-disabled-autoobi" +import MenuEnableAutoObi from "./menu-enable-autoobi" /** @@ -22,7 +24,7 @@ class DDeiCoreMenus extends DDeiPluginBase{ plugins: object[] = [MenuCancelMergeCell, MenuCopySheet, MenuInsertCol, MenuInsertRow, - MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet] + MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi,MenuEnableAutoObi] getMenus(editor){ @@ -57,6 +59,6 @@ class DDeiCoreMenus extends DDeiPluginBase{ } export { DDeiCoreMenus, MenuCancelMergeCell, MenuCopySheet, MenuInsertCol, MenuInsertRow, - MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet + MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi, MenuEnableAutoObi } export default DDeiCoreMenus \ No newline at end of file diff --git a/plugins/core/menus/menu-disabled-autoobi.ts b/plugins/core/menus/menu-disabled-autoobi.ts new file mode 100644 index 0000000..94099a6 --- /dev/null +++ b/plugins/core/menus/menu-disabled-autoobi.ts @@ -0,0 +1,78 @@ +import {DDeiEnumBusCommandType} from "ddei-framework"; +import {DDeiMenuBase} from "ddei-framework"; +/** + * 取消/开启 自动避障 + */ +class MenuDisabledAutoObi extends DDeiMenuBase { + + + name: string = "ddei-core-menu-disabled-auto-obi" + + + /** + * 缺省实例 + */ + static defaultIns: MenuDisabledAutoObi = new MenuDisabledAutoObi(); + + defaultOptions: object = { + 'label': 'ddei.disabledAutoObi', + 'disabled': false + } + + + + static configuration(options, fullConfig: boolean = false) { + //解析options,只使用自己相关的 + if (options) { + let newOptions = {} + if (fullConfig) { + if (fullConfig) { + if (options[MenuDisabledAutoObi.defaultIns.name]) { + for (let i in options[MenuDisabledAutoObi.defaultIns.name]) { + newOptions[i] = options[MenuDisabledAutoObi.defaultIns.name][i] + } + } + } + } else { + newOptions = options + } + if (newOptions && Object.keys(newOptions).length !== 0) { + let panels = new MenuDisabledAutoObi(newOptions); + return panels; + } + } + return MenuDisabledAutoObi; + } + + static modify(fn) { + return MenuDisabledAutoObi.defaultIns.modify(fn) + } + /** + * 执行的方法 + */ + action(model: object, evt: Event): void { + if (model?.baseModelType == 'DDeiLine') { + model.disabledAutoObi = 1 + let ddInstance = model.stage.ddInstance + + model.refreshLinePoints() + ddInstance.bus.push(DDeiEnumBusCommandType.RefreshShape); + ddInstance.bus.executeAll(); + + } + } + + /** + * 判定是否显示的方法 + */ + isVisiable(model: object): boolean { + //当前控件为表格控件,TODO 或者布局方式为表格的容器控件 + if (!this.disabled && model?.baseModelType == 'DDeiLine' && !model.disabledAutoObi) { + return true + } + return false; + } + +} + +export default MenuDisabledAutoObi; diff --git a/plugins/core/menus/menu-enable-autoobi.ts b/plugins/core/menus/menu-enable-autoobi.ts new file mode 100644 index 0000000..a97a1d5 --- /dev/null +++ b/plugins/core/menus/menu-enable-autoobi.ts @@ -0,0 +1,78 @@ +import {DDeiEnumBusCommandType} from "ddei-framework"; +import {DDeiMenuBase} from "ddei-framework"; +/** + * 取消/开启 自动避障 + */ +class MenuEnableAutoObi extends DDeiMenuBase { + + + name: string = "ddei-core-menu-enable-auto-obi" + + + /** + * 缺省实例 + */ + static defaultIns: MenuEnableAutoObi = new MenuEnableAutoObi(); + + defaultOptions: object = { + 'label': 'ddei.enableAutoObi', + 'disabled': false + } + + + + static configuration(options, fullConfig: boolean = false) { + //解析options,只使用自己相关的 + if (options) { + let newOptions = {} + if (fullConfig) { + if (fullConfig) { + if (options[MenuEnableAutoObi.defaultIns.name]) { + for (let i in options[MenuEnableAutoObi.defaultIns.name]) { + newOptions[i] = options[MenuEnableAutoObi.defaultIns.name][i] + } + } + } + } else { + newOptions = options + } + if (newOptions && Object.keys(newOptions).length !== 0) { + let panels = new MenuEnableAutoObi(newOptions); + return panels; + } + } + return MenuEnableAutoObi; + } + + static modify(fn) { + return MenuEnableAutoObi.defaultIns.modify(fn) + } + /** + * 执行的方法 + */ + action(model: object, evt: Event): void { + if (model?.baseModelType == 'DDeiLine') { + delete model.disabledAutoObi + let ddInstance = model.stage.ddInstance + + model.refreshLinePoints() + ddInstance.bus.push(DDeiEnumBusCommandType.RefreshShape); + ddInstance.bus.executeAll(); + + } + } + + /** + * 判定是否显示的方法 + */ + isVisiable(model: object): boolean { + //当前控件为表格控件,TODO 或者布局方式为表格的容器控件 + if (!this.disabled && model?.baseModelType == 'DDeiLine' && model.disabledAutoObi) { + return true + } + return false; + } + +} + +export default MenuEnableAutoObi; diff --git a/src/App.vue b/src/App.vue index 86acb0e..1e163d9 100644 --- a/src/App.vue +++ b/src/App.vue @@ -28,7 +28,7 @@ export default defineComponent({ ] currentLayout = "ddei-core-layout-mobile" }else{ - exts = [DDeiExtTooltip, + exts = [ DDeiExtQuickStyle, DDeiCoreCanvasQuickDialog // .configuration({ @@ -113,7 +113,7 @@ export default defineComponent({ other: ['ddei-core-panel-toolbox-simple', 'ddei-core-panel-topmenu-simple'], middle: ['ddei-core-panel-canvasview'], right: [], - bottom: [] + bottom: ['ddei-core-panel-bottommenu'] }), DDeiExtUML, DDeiExtSearch.modify((plugin)=>{ @@ -121,7 +121,7 @@ export default defineComponent({ }), // DDeiExtTooltip, // DDeiExtQuickStyle, - DDeiExtQuickControl, + // DDeiExtQuickControl, ...exts //配置htmlviewer插件,matchField用于声明图形控件中的属性与config中的key对应字段 // DDeiExtHtmlViewer.configuration({ diff --git a/src/editor/Editor.vue b/src/editor/Editor.vue index a3abec0..9dbe2d5 100644 --- a/src/editor/Editor.vue +++ b/src/editor/Editor.vue @@ -119,6 +119,9 @@ export default { } loadControlDefineExt(oldControl) } + if (control.viewer) { + oldControl.viewer = control.viewer + } control = oldControl } this.editor.controls.set(control.id, control); @@ -157,16 +160,18 @@ export default { }) } + this.editor.controls?.forEach(control => { if (control.menus) { - if (!editorInstance.menuMapping[control.id]) { - editorInstance.menuMapping[control.id] = control.menus + + if (!this.editor.menuMapping[control.id]) { + this.editor.menuMapping[control.id] = control.menus } - let menus = editorInstance.menuMapping[control.id]; + let menus = this.editor.menuMapping[control.id]; for (let i = 0; i < menus.length; i++) { - for (let j in editorInstance.menus) { - if (editorInstance.menus[j].name == menus[i].name) { - menus[i] = editorInstance.menus[j]; + for (let j in this.editor.menus) { + if (this.editor.menus[j].name == menus[i].name) { + menus[i] = this.editor.menus[j]; break; } } From 5d58d9ba2cee2ce512b2a51c2c0fea74fc56af45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=B4=E8=B5=9B=E9=9B=B7?= Date: Wed, 15 Jan 2025 23:17:00 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=81=BF=E9=9A=9C=E7=9A=84=E7=AD=96=E7=95=A5=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=B3=BB=E7=BB=9F=E7=BA=A7=E8=87=AA=E5=8A=A8=E9=81=BF?= =?UTF-8?q?=E9=9A=9C=E5=8F=82=E6=95=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=BA=BF?= =?UTF-8?q?=E6=AE=B5=E5=AD=90=E6=8E=A7=E4=BB=B6=E7=9A=84=E9=80=8F=E6=98=8E?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E6=88=AA=E5=8F=96=EF=BC=8C=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E4=BA=86=E7=BA=BF=E6=AE=B5=E5=AD=90=E6=8E=A7=E4=BB=B6=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=97=B6=E7=9A=84=E7=99=BD=E8=89=B2=E8=83=8C=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 12 +-- package.json | 4 +- plugins/core/controls/control/base/line.ts | 3 +- plugins/core/controls/control/base/polygon.ts | 8 +- .../actions/key-action-start-quick-edit.ts | 2 +- plugins/core/i18n/en_US.ts | 3 +- plugins/core/i18n/zh_CN.ts | 3 +- plugins/core/menus/index.ts | 5 +- plugins/core/menus/menu-disabled-autoobi.ts | 7 +- plugins/core/menus/menu-enable-autoobi.ts | 7 +- plugins/core/menus/menu-sysdefault-autoobi.ts | 78 +++++++++++++++++++ src/App.vue | 3 +- 12 files changed, 112 insertions(+), 23 deletions(-) create mode 100644 plugins/core/menus/menu-sysdefault-autoobi.ts diff --git a/package-lock.json b/package-lock.json index a6993a4..b46f426 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "ddei-editor", - "version": "1.2.45", + "version": "1.2.46-alpha-1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ddei-editor", - "version": "1.2.45", + "version": "1.2.46-alpha-1", "license": "Apache License 2.0", "devDependencies": { "@tsconfig/node18": "^18.2.0", "@types/node": "^18.17.6", "@vitejs/plugin-vue": "^4.2.3", "@vue/tsconfig": "^0.4.0", - "ddei-framework": "^1.2.45", + "ddei-framework": "^1.2.46-alpha-1", "less": "^4.2.0", "npm-run-all": "^4.1.5", "typescript": "~5.1.6", @@ -496,9 +496,9 @@ } }, "node_modules/ddei-framework": { - "version": "1.2.45", - "resolved": "https://registry.npmjs.org/ddei-framework/-/ddei-framework-1.2.45.tgz", - "integrity": "sha512-vGhRs6GE1c0ScSKGPxQKmETKZ3G/+OV48pQJYsw0bXCbBpWHpN4N/PH9S9zddx9ZfhLY//OMkbHmpmFSVUumfw==", + "version": "1.2.46-alpha-1", + "resolved": "https://registry.npmjs.org/ddei-framework/-/ddei-framework-1.2.46-alpha-1.tgz", + "integrity": "sha512-GQwNr/7FoPayQQ79y7pGlQ7GrWJXn2M/5laxZng9oKWZIi2m92FO7aQwwuz6BXUvF4uu/ntZ27Raar6dT6iUJA==", "dev": true, "engines": { "node": ">=16.0.0" diff --git a/package.json b/package.json index b67eb85..1bd4e34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddei-editor", - "version": "1.2.46-1", + "version": "1.2.46-alpha-1", "private": false, "type": "module", "author": "hoslay <3697355039@qq.com>", @@ -60,6 +60,6 @@ "vite": "^4.4.6", "vite-plugin-compression": "^0.5.1", "vue-tsc": "^1.8.6", - "ddei-framework": "^1.2.45" + "ddei-framework": "^1.2.46-alpha-1" } } diff --git a/plugins/core/controls/control/base/line.ts b/plugins/core/controls/control/base/line.ts index 46a0e16..d9075ef 100644 --- a/plugins/core/controls/control/base/line.ts +++ b/plugins/core/controls/control/base/line.ts @@ -257,6 +257,7 @@ export default { }, menus:[ { name: "ddei-core-menu-disabled-auto-obi" }, - { name: "ddei-core-menu-enable-auto-obi" } + { name: "ddei-core-menu-enable-auto-obi" }, + { name: "ddei-core-menu-sysdefault-auto-obi" } ] } \ No newline at end of file diff --git a/plugins/core/controls/control/base/polygon.ts b/plugins/core/controls/control/base/polygon.ts index f44f0c7..17ad3e5 100644 --- a/plugins/core/controls/control/base/polygon.ts +++ b/plugins/core/controls/control/base/polygon.ts @@ -562,9 +562,11 @@ export default { return false; } } - //如果取消了避障,则忽略 - if (line.disabledAutoObi) { - + //如果没有设置自动避障,并且全局也取消自动避障 + + if (!line.autoObiPolicy && !model.stage.ddInstance.GLOBAL_AUTO_OBI) { + return false; + } else if (line.autoObiPolicy == 1){ return false; } } diff --git a/plugins/core/hotkeys/actions/key-action-start-quick-edit.ts b/plugins/core/hotkeys/actions/key-action-start-quick-edit.ts index b859757..cf46bd2 100644 --- a/plugins/core/hotkeys/actions/key-action-start-quick-edit.ts +++ b/plugins/core/hotkeys/actions/key-action-start-quick-edit.ts @@ -228,7 +228,7 @@ class DDeiKeyActionStartQuickEdit extends DDeiKeyAction { dataJson["textStyle"] = { paddingWeight: 0 } if (isLineLM){ - dataJson["fill"] = {type:1 ,color: 'white' } + // dataJson["fill"] = {type:1 ,color: 'white' } } for (let i in dataJson) { let value = dataJson[i] diff --git a/plugins/core/i18n/en_US.ts b/plugins/core/i18n/en_US.ts index ba0af5e..4953887 100644 --- a/plugins/core/i18n/en_US.ts +++ b/plugins/core/i18n/en_US.ts @@ -80,7 +80,8 @@ export default { propertyName: "Property", searchResult: "Search Result", enableAutoObi: "Avoiding Obstacles", - disabledAutoObi: "Cancel Avoiding Obstacles", + disabledAutoObi: "Disable Avoiding Obstacles", + sysDefaultAutoObi: "Default Avoiding Obstacles", property: { id: 'id', code: 'Code', diff --git a/plugins/core/i18n/zh_CN.ts b/plugins/core/i18n/zh_CN.ts index 53c7332..706f358 100644 --- a/plugins/core/i18n/zh_CN.ts +++ b/plugins/core/i18n/zh_CN.ts @@ -82,7 +82,8 @@ export default { propertyName:"属性", searchResult: "搜索结果", enableAutoObi: "开启避障", - disabledAutoObi: "取消避障", + disabledAutoObi: "关闭避障", + sysDefaultAutoObi: "默认避障", property:{ id:'id', code:'编码', diff --git a/plugins/core/menus/index.ts b/plugins/core/menus/index.ts index fffd6c1..e916d67 100644 --- a/plugins/core/menus/index.ts +++ b/plugins/core/menus/index.ts @@ -9,6 +9,7 @@ import MenuRemoveRow from "./menu-remove-row" import MenuRemoveSheet from "./menu-remove-sheet" import MenuDisabledAutoObi from "./menu-disabled-autoobi" import MenuEnableAutoObi from "./menu-enable-autoobi" +import MenuSysDefaultAutoObi from "./menu-sysdefault-autoobi" /** @@ -24,7 +25,7 @@ class DDeiCoreMenus extends DDeiPluginBase{ plugins: object[] = [MenuCancelMergeCell, MenuCopySheet, MenuInsertCol, MenuInsertRow, - MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi,MenuEnableAutoObi] + MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi, MenuEnableAutoObi, MenuSysDefaultAutoObi] getMenus(editor){ @@ -59,6 +60,6 @@ class DDeiCoreMenus extends DDeiPluginBase{ } export { DDeiCoreMenus, MenuCancelMergeCell, MenuCopySheet, MenuInsertCol, MenuInsertRow, - MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi, MenuEnableAutoObi + MenuMergeCell, MenuRemoveCol, MenuRemoveRow, MenuRemoveSheet, MenuDisabledAutoObi, MenuEnableAutoObi, MenuSysDefaultAutoObi } export default DDeiCoreMenus \ No newline at end of file diff --git a/plugins/core/menus/menu-disabled-autoobi.ts b/plugins/core/menus/menu-disabled-autoobi.ts index 94099a6..10d362b 100644 --- a/plugins/core/menus/menu-disabled-autoobi.ts +++ b/plugins/core/menus/menu-disabled-autoobi.ts @@ -52,7 +52,7 @@ class MenuDisabledAutoObi extends DDeiMenuBase { */ action(model: object, evt: Event): void { if (model?.baseModelType == 'DDeiLine') { - model.disabledAutoObi = 1 + model.autoObiPolicy = 1 let ddInstance = model.stage.ddInstance model.refreshLinePoints() @@ -67,7 +67,10 @@ class MenuDisabledAutoObi extends DDeiMenuBase { */ isVisiable(model: object): boolean { //当前控件为表格控件,TODO 或者布局方式为表格的容器控件 - if (!this.disabled && model?.baseModelType == 'DDeiLine' && !model.disabledAutoObi) { + + if (!this.disabled && model?.baseModelType == 'DDeiLine' + && ((model.stage.ddInstance.GLOBAL_AUTO_OBI && !model.autoObiPolicy) || (!model.stage.ddInstance.GLOBAL_AUTO_OBI && model.autoObiPolicy == 2)) + ) { return true } return false; diff --git a/plugins/core/menus/menu-enable-autoobi.ts b/plugins/core/menus/menu-enable-autoobi.ts index a97a1d5..fef3a64 100644 --- a/plugins/core/menus/menu-enable-autoobi.ts +++ b/plugins/core/menus/menu-enable-autoobi.ts @@ -52,9 +52,9 @@ class MenuEnableAutoObi extends DDeiMenuBase { */ action(model: object, evt: Event): void { if (model?.baseModelType == 'DDeiLine') { - delete model.disabledAutoObi + model.autoObiPolicy = 2 let ddInstance = model.stage.ddInstance - + model.refreshLinePoints() ddInstance.bus.push(DDeiEnumBusCommandType.RefreshShape); ddInstance.bus.executeAll(); @@ -67,7 +67,8 @@ class MenuEnableAutoObi extends DDeiMenuBase { */ isVisiable(model: object): boolean { //当前控件为表格控件,TODO 或者布局方式为表格的容器控件 - if (!this.disabled && model?.baseModelType == 'DDeiLine' && model.disabledAutoObi) { + + if (!this.disabled && model?.baseModelType == 'DDeiLine' && ((model.stage.ddInstance.GLOBAL_AUTO_OBI && model.autoObiPolicy == 1) || (!model.stage.ddInstance.GLOBAL_AUTO_OBI && !model.autoObiPolicy))) { return true } return false; diff --git a/plugins/core/menus/menu-sysdefault-autoobi.ts b/plugins/core/menus/menu-sysdefault-autoobi.ts new file mode 100644 index 0000000..f948153 --- /dev/null +++ b/plugins/core/menus/menu-sysdefault-autoobi.ts @@ -0,0 +1,78 @@ +import {DDeiEnumBusCommandType} from "ddei-framework"; +import {DDeiMenuBase} from "ddei-framework"; +/** + * 采用系统避障策略 + */ +class MenuSysDefaultAutoObi extends DDeiMenuBase { + + + name: string = "ddei-core-menu-sysdefault-auto-obi" + + + /** + * 缺省实例 + */ + static defaultIns: MenuSysDefaultAutoObi = new MenuSysDefaultAutoObi(); + + defaultOptions: object = { + 'label': 'ddei.sysDefaultAutoObi', + 'disabled': false + } + + + + static configuration(options, fullConfig: boolean = false) { + //解析options,只使用自己相关的 + if (options) { + let newOptions = {} + if (fullConfig) { + if (fullConfig) { + if (options[MenuSysDefaultAutoObi.defaultIns.name]) { + for (let i in options[MenuSysDefaultAutoObi.defaultIns.name]) { + newOptions[i] = options[MenuSysDefaultAutoObi.defaultIns.name][i] + } + } + } + } else { + newOptions = options + } + if (newOptions && Object.keys(newOptions).length !== 0) { + let panels = new MenuSysDefaultAutoObi(newOptions); + return panels; + } + } + return MenuSysDefaultAutoObi; + } + + static modify(fn) { + return MenuSysDefaultAutoObi.defaultIns.modify(fn) + } + /** + * 执行的方法 + */ + action(model: object, evt: Event): void { + if (model?.baseModelType == 'DDeiLine') { + delete model.autoObiPolicy + let ddInstance = model.stage.ddInstance + + model.refreshLinePoints() + ddInstance.bus.push(DDeiEnumBusCommandType.RefreshShape); + ddInstance.bus.executeAll(); + + } + } + + /** + * 判定是否显示的方法 + */ + isVisiable(model: object): boolean { + if (!this.disabled && model?.baseModelType == 'DDeiLine' + && ((model.stage.ddInstance.GLOBAL_AUTO_OBI && model.autoObiPolicy == 2) || (!model.stage.ddInstance.GLOBAL_AUTO_OBI && model.autoObiPolicy == 1))) { + return true + } + return false; + } + +} + +export default MenuSysDefaultAutoObi; diff --git a/src/App.vue b/src/App.vue index 1e163d9..e47ed29 100644 --- a/src/App.vue +++ b/src/App.vue @@ -39,10 +39,11 @@ export default defineComponent({ ] } const options = markRaw({ - currentLayout: currentLayout, + // currentLayout: currentLayout, config: { ratio: 0.7, //默认缩放比例为120% pixel:2, //调整渲染质量 + // GLOBAL_AUTO_OBI:false, // readonly:true, // readonly:1, // paper:"A6", From e137b4c8017ef889f35c5abfe5e5bfc80cc0fa76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=B4=E8=B5=9B=E9=9B=B7?= Date: Fri, 17 Jan 2025 09:06:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- package-lock.json | 15 ++++++++------- package.json | 4 ++-- src/App.vue | 4 ++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/index.html b/index.html index e2cd81b..7ceb6d7 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - DDei-在线设计器V1.2.45 + DDei-在线设计器V1.2.46
diff --git a/package-lock.json b/package-lock.json index b46f426..6c44e4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,21 @@ { "name": "ddei-editor", - "version": "1.2.46-alpha-1", + "version": "1.2.46", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ddei-editor", - "version": "1.2.46-alpha-1", + "version": "1.2.46", "license": "Apache License 2.0", + "dependencies": { + "ddei-framework": "^1.2.46" + }, "devDependencies": { "@tsconfig/node18": "^18.2.0", "@types/node": "^18.17.6", "@vitejs/plugin-vue": "^4.2.3", "@vue/tsconfig": "^0.4.0", - "ddei-framework": "^1.2.46-alpha-1", "less": "^4.2.0", "npm-run-all": "^4.1.5", "typescript": "~5.1.6", @@ -496,10 +498,9 @@ } }, "node_modules/ddei-framework": { - "version": "1.2.46-alpha-1", - "resolved": "https://registry.npmjs.org/ddei-framework/-/ddei-framework-1.2.46-alpha-1.tgz", - "integrity": "sha512-GQwNr/7FoPayQQ79y7pGlQ7GrWJXn2M/5laxZng9oKWZIi2m92FO7aQwwuz6BXUvF4uu/ntZ27Raar6dT6iUJA==", - "dev": true, + "version": "1.2.46", + "resolved": "https://registry.npmjs.org/ddei-framework/-/ddei-framework-1.2.46.tgz", + "integrity": "sha512-jrgZwWvjhtKAUz5K4ktP5PGN/9qXuYGsuG/XkqUq6RfON7Tk0Mg6bFzuO8B0aUusE8uSp7PzuM/x5wS4uNIHug==", "engines": { "node": ">=16.0.0" } diff --git a/package.json b/package.json index 1bd4e34..7e3242c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddei-editor", - "version": "1.2.46-alpha-1", + "version": "1.2.46", "private": false, "type": "module", "author": "hoslay <3697355039@qq.com>", @@ -60,6 +60,6 @@ "vite": "^4.4.6", "vite-plugin-compression": "^0.5.1", "vue-tsc": "^1.8.6", - "ddei-framework": "^1.2.46-alpha-1" + "ddei-framework": "^1.2.46" } } diff --git a/src/App.vue b/src/App.vue index e47ed29..0fcbcc0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -39,7 +39,7 @@ export default defineComponent({ ] } const options = markRaw({ - // currentLayout: currentLayout, + currentLayout: currentLayout, config: { ratio: 0.7, //默认缩放比例为120% pixel:2, //调整渲染质量 @@ -122,7 +122,7 @@ export default defineComponent({ }), // DDeiExtTooltip, // DDeiExtQuickStyle, - // DDeiExtQuickControl, + DDeiExtQuickControl, ...exts //配置htmlviewer插件,matchField用于声明图形控件中的属性与config中的key对应字段 // DDeiExtHtmlViewer.configuration({