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] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=87=AA=E5=8A=A8=E9=81=BF?= =?UTF-8?q?=E9=9A=9C=E7=9A=84=E7=AD=96=E7=95=A5=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=BA=A7=E8=87=AA=E5=8A=A8=E9=81=BF=E9=9A=9C?= =?UTF-8?q?=E5=8F=82=E6=95=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=BA=BF=E6=AE=B5?= =?UTF-8?q?=E5=AD=90=E6=8E=A7=E4=BB=B6=E7=9A=84=E9=80=8F=E6=98=8E=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E6=88=AA=E5=8F=96=EF=BC=8C=E5=8F=96=E6=B6=88=E4=BA=86?= =?UTF-8?q?=E7=BA=BF=E6=AE=B5=E5=AD=90=E6=8E=A7=E4=BB=B6=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=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",