From 608ce47a13268fac31932df4914a200bfee0474b Mon Sep 17 00:00:00 2001 From: betaqi <3188864257@qq.com> Date: Fri, 22 Aug 2025 18:21:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20topo=E8=8A=82=E7=82=B9=20=E5=92=8C=20?= =?UTF-8?q?=E6=B5=81=E5=8A=A8=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 41 +++++++++ package.json | 1 + src/views/testG6/components/Node.vue | 97 ++++++++++++++++++++- src/views/testG6/index.vue | 16 ++-- src/views/testG6/type/index.ts | 5 ++ src/views/testG6/utils/GenerateGraphData.ts | 17 ++-- src/views/testG6/utils/MyLineEdge.ts | 62 +++++++++++-- src/views/testG6/utils/MyNode.ts | 38 ++++++-- src/views/testG6/utils/data.ts | 13 +++ src/views/testG6/utils/index.ts | 5 +- 10 files changed, 262 insertions(+), 33 deletions(-) create mode 100644 src/views/testG6/type/index.ts diff --git a/package-lock.json b/package-lock.json index de63566..c862a31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "dexie": "^4.0.11", "echarts": "^5.6.0", "element-plus": "^2.9.5", + "g6-extension-vue": "^0.1.0", "jszmq": "^0.1.2", "lodash-es": "^4.17.21", "pinia": "^3.0.1", @@ -5020,6 +5021,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/g6-extension-vue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/g6-extension-vue/-/g6-extension-vue-0.1.0.tgz", + "integrity": "sha512-2RtL2CdcIdnrCFJYETxsI7TNtsE2m3y1oNyXQwM3EUciPMdxjet5okLk6dzY8ohLRUz8sMk4dM4cAE3ljtQXfA==", + "license": "MIT", + "dependencies": { + "@antv/g": "^6.1.27", + "vue-demi": "^0.14.10" + }, + "peerDependencies": { + "@antv/g6": ">=5.0.0", + "vue": "^2.0.0 || >=3.0.0" + } + }, + "node_modules/g6-extension-vue/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", diff --git a/package.json b/package.json index 146b2f1..421b83b 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "dexie": "^4.0.11", "echarts": "^5.6.0", "element-plus": "^2.9.5", + "g6-extension-vue": "^0.1.0", "jszmq": "^0.1.2", "lodash-es": "^4.17.21", "pinia": "^3.0.1", diff --git a/src/views/testG6/components/Node.vue b/src/views/testG6/components/Node.vue index 3499f9b..9baf735 100644 --- a/src/views/testG6/components/Node.vue +++ b/src/views/testG6/components/Node.vue @@ -1,10 +1,99 @@ + + +const typeToIconMap: Record = { + [DeviceType.Ems]: { + icon: EmsIcon, + bgColor: '#0769FF' + }, + [DeviceType.Ecu]: { + icon: EcuIcon, + bgColor: '#0769FF' + }, + [DeviceType.Em]: { + icon: EmIcon, + bgColor: '#2CA02C' + }, + [DeviceType['Em-Measure']]: { + icon: EmIcon, + bgColor: '#2CA02C' + }, + [DeviceType.Bms]: { + icon: BmsIcon, + bgColor: '#FF7F50' + }, + [DeviceType.Cac]: { + icon: CacIcon, + bgColor: '#17BECF' + }, + [DeviceType.Dgs]: { + icon: DgsIcon, + bgColor: '#9467BD' + }, + [DeviceType.Ffs]: { + icon: FfsIcon, + bgColor: '#17BECF' + }, + [DeviceType.Mppt]: { + icon: MpptIcon, + bgColor: '#9467BD' + }, + [DeviceType.Pcs]: { + icon: PcsIcon, + bgColor: '#FF7F50' + }, + [DeviceType.Wpp]: { + icon: WppIcon, + bgColor: '#9467BD' + }, + [DeviceType.Tms]: { + icon: TmsIcon, + bgColor: '#17BECF' + }, +} - +const props = defineProps<{ + data: MyNodeData; +}>() + +const Device = computed(() => { + const style = typeToIconMap[props.data.data.type]; + return Object.assign(props.data.data, style); +}) + +