From 4c41ea8ad4ee97442519bd9842d82d38d6b42b18 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Tue, 20 May 2025 19:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=AE=9A=E4=B9=89=EF=BC=8Cwi?= =?UTF-8?q?dgetview=20=E6=8C=82=E4=BB=B6=E8=A7=86=E5=9B=BE=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 33 ++++----- src/components/viewWidgets/alarm/AlarmMeta.ts | 2 +- .../viewWidgets/modeltree/ModeltreeMeta.ts | 2 +- src/components/viewWidgets/monitor/MonitorMeta.ts | 2 +- src/components/viewWidgets/script/ScriptMeta.ts | 2 +- src/components/viewWidgets/toolbox/ToolboxMeta.ts | 12 ++++ src/components/viewWidgets/toolbox/ToolboxView.vue | 22 ++++++ src/utils/webutils.ts | 33 +++++---- src/views/ModelMain.vue | 80 +++++++++++++--------- src/views/ModelMainInit.ts | 2 + yarn.lock | 5 ++ 11 files changed, 128 insertions(+), 67 deletions(-) create mode 100644 src/components/viewWidgets/toolbox/ToolboxMeta.ts create mode 100644 src/components/viewWidgets/toolbox/ToolboxView.vue diff --git a/package.json b/package.json index 4edda1b..b47b83a 100644 --- a/package.json +++ b/package.json @@ -12,37 +12,38 @@ "format": "prettier --write src/" }, "dependencies": { + "@vicons/antd": "^0.13.0", + "ag-grid-enterprise": "^28.2.1", + "ag-grid-vue3": "^28.2.1", "axios": "^1.9.0", + "codemirror": "^5.65.19", "dat.gui": "^0.7.9", + "decimal.js": "^10.5.0", "element-plus": "^2.9.10", + "jquery": "^3.6.0", + "less": "^4.2.1", + "localforage": "^1.10.0", "lodash": "^4.17.21", "pinia": "^3.0.1", + "rimraf": "^3.0.2", + "sortablejs": "1.15.6", + "split.js": "^1.6.4", "three": "^0.176.0", "vue": "^3.5.13", - "vue-router": "^4.5.0", - "less": "^4.2.1", - "split.js": "^1.6.4", - "localforage": "^1.10.0", - "rimraf": "^3.0.2", "vue-i18n": "9.2.2", - "codemirror": "^5.65.19", - "vue3-menus": "^1.1.2", - "jquery": "^3.6.0", - "ag-grid-enterprise": "^28.2.1", - "sortablejs": "1.15.6", - "ag-grid-vue3": "^28.2.1", - "decimal.js": "^10.5.0" + "vue-router": "^4.5.0", + "vue3-menus": "^1.1.2" }, "devDependencies": { "@tsconfig/node22": "^22.0.1", + "@types/jquery": "^3.3.31", + "@types/lodash-es": "^4.17.7", "@types/node": "^22.14.0", + "@types/three": "^0.176.0", + "@vicons/fa": "^0.12.0", "@vitejs/plugin-vue": "^5.2.3", "@vitejs/plugin-vue-jsx": "^4.1.2", "@vue/tsconfig": "^0.7.0", - "@types/lodash-es": "^4.17.7", - "@types/three": "^0.176.0", - "@types/jquery": "^3.3.31", - "@vicons/fa": "^0.12.0", "npm-run-all2": "^7.0.2", "prettier": "3.5.3", "typescript": "~5.8.0", diff --git a/src/components/viewWidgets/alarm/AlarmMeta.ts b/src/components/viewWidgets/alarm/AlarmMeta.ts index 846c9ea..56cd72e 100644 --- a/src/components/viewWidgets/alarm/AlarmMeta.ts +++ b/src/components/viewWidgets/alarm/AlarmMeta.ts @@ -5,7 +5,7 @@ import AlarmView from './AlarmView.vue' export default defineWidget({ name: 'alarm', title: '告警', - icon: renderIcon('element BellFilled'), + icon: renderIcon('antd AlertOutlined'), side: 'right', order: 2, component: AlarmView diff --git a/src/components/viewWidgets/modeltree/ModeltreeMeta.ts b/src/components/viewWidgets/modeltree/ModeltreeMeta.ts index dc7f1c3..09b1363 100644 --- a/src/components/viewWidgets/modeltree/ModeltreeMeta.ts +++ b/src/components/viewWidgets/modeltree/ModeltreeMeta.ts @@ -5,7 +5,7 @@ import ModeltreeView from './ModeltreeView.vue' export default defineWidget({ name: 'modeltree', title: '模型', - icon: renderIcon('fa Tree'), + icon: renderIcon('antd ClusterOutlined'), side: 'left', order: 1, component: ModeltreeView diff --git a/src/components/viewWidgets/monitor/MonitorMeta.ts b/src/components/viewWidgets/monitor/MonitorMeta.ts index e25dac7..07cddde 100644 --- a/src/components/viewWidgets/monitor/MonitorMeta.ts +++ b/src/components/viewWidgets/monitor/MonitorMeta.ts @@ -5,7 +5,7 @@ import MonitorView from './MonitorView.vue' export default defineWidget({ name: 'monitor', title: '监控', - icon: renderIcon('element Monitor'), + icon: renderIcon('antd DashboardOutlined'), side: 'left', order: 2, component: MonitorView diff --git a/src/components/viewWidgets/script/ScriptMeta.ts b/src/components/viewWidgets/script/ScriptMeta.ts index ac296c8..aaebd89 100644 --- a/src/components/viewWidgets/script/ScriptMeta.ts +++ b/src/components/viewWidgets/script/ScriptMeta.ts @@ -5,7 +5,7 @@ import ScriptView from './ScriptView.vue' export default defineWidget({ name: 'script', title: '脚本', - icon: renderIcon('element Film'), + icon: renderIcon('antd CodeOutlined'), side: 'bottom', order: 3, component: ScriptView diff --git a/src/components/viewWidgets/toolbox/ToolboxMeta.ts b/src/components/viewWidgets/toolbox/ToolboxMeta.ts new file mode 100644 index 0000000..9ccd171 --- /dev/null +++ b/src/components/viewWidgets/toolbox/ToolboxMeta.ts @@ -0,0 +1,12 @@ +import { defineWidget } from '@/runtime/DefineWidget.ts' +import { renderIcon } from '@/utils/webutils.ts' +import ToolboxView from './ToolboxView.vue' + +export default defineWidget({ + name: 'toolbox', + title: '工具箱', + icon: renderIcon('antd CodepenOutlined'), + side: 'left', + order: 3, + component: ToolboxView +}) \ No newline at end of file diff --git a/src/components/viewWidgets/toolbox/ToolboxView.vue b/src/components/viewWidgets/toolbox/ToolboxView.vue new file mode 100644 index 0000000..4cdb0a7 --- /dev/null +++ b/src/components/viewWidgets/toolbox/ToolboxView.vue @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/src/utils/webutils.ts b/src/utils/webutils.ts index b21a069..a959642 100644 --- a/src/utils/webutils.ts +++ b/src/utils/webutils.ts @@ -1,6 +1,7 @@ import _ from 'lodash' -import {type Component, h, toRaw} from 'vue' -import {ElIcon} from "element-plus" +import { type Component, h, toRaw } from 'vue' +import * as AntdIcon from '@vicons/antd' +import { ElIcon } from 'element-plus' import * as FaIcon from '@vicons/fa' import * as ElementPlusIconsVue from '@element-plus/icons-vue' @@ -9,30 +10,34 @@ import * as ElementPlusIconsVue from '@element-plus/icons-vue' */ export function renderIcon(icon: string, props = {}): any { if (!icon) { - return undefined; + return undefined } - let component: any = undefined; + let component: any = undefined if (typeof icon === 'string') { - if (icon.startsWith("element ")) { - icon = icon.substring("element ".length); - component = ElementPlusIconsVue[icon]; + if (icon.startsWith('element ')) { + icon = icon.substring('element '.length) + component = ElementPlusIconsVue[icon] - } else if (icon.startsWith("fa ")) { - icon = icon.substring("fa ".length); - component = FaIcon[icon]; + } else if (icon.startsWith('antd ')) { + icon = icon.substring('antd '.length) + component = AntdIcon[icon] + + } else if (icon.startsWith('fa ')) { + icon = icon.substring('fa '.length) + component = FaIcon[icon] // } else if (icon.startsWith('tb ')) { // icon = icon.substring("fa ".length); // component = Tabler[icon]; } else { - component = ElementPlusIconsVue[icon]; - if (!component) component = FaIcon[icon]; + component = ElementPlusIconsVue[icon] + if (!component) component = FaIcon[icon] } } if (!component) { // component = AntdIcon["ProfileOutlined"]; - return undefined; + return undefined } - return () => h(ElIcon, props, {default: () => h(component)}); + return () => h(ElIcon, props, { default: () => h(component) }) } \ No newline at end of file diff --git a/src/views/ModelMain.vue b/src/views/ModelMain.vue index 2803634..a304c81 100644 --- a/src/views/ModelMain.vue +++ b/src/views/ModelMain.vue @@ -19,7 +19,7 @@