From 33054d1f0a9c225754ca8b9f3e320eeb7f823b68 Mon Sep 17 00:00:00 2001 From: Qiuxia Fan Date: Mon, 21 Feb 2022 13:40:13 +0800 Subject: [PATCH] feat: add trace tool --- src/assets/icons/merge.svg | 18 ++++++++++++++++++ src/store/modules/dashboard.ts | 21 ++++++++++++--------- src/views/dashboard/controls/Trace.vue | 0 src/views/dashboard/data.ts | 4 ++-- src/views/dashboard/panel/Tool.vue | 4 ++-- 5 files changed, 34 insertions(+), 13 deletions(-) create mode 100755 src/assets/icons/merge.svg create mode 100644 src/views/dashboard/controls/Trace.vue diff --git a/src/assets/icons/merge.svg b/src/assets/icons/merge.svg new file mode 100755 index 00000000..c9f911dd --- /dev/null +++ b/src/assets/icons/merge.svg @@ -0,0 +1,18 @@ + + + + + diff --git a/src/store/modules/dashboard.ts b/src/store/modules/dashboard.ts index 178e504a..27b2d702 100644 --- a/src/store/modules/dashboard.ts +++ b/src/store/modules/dashboard.ts @@ -63,7 +63,7 @@ export const dashboardStore = defineStore({ this.layout = data; }, addControl(type: string) { - const newWidget: LayoutConfig = { + const newItem: LayoutConfig = { ...NewControl, i: String(this.layout.length), type, @@ -71,8 +71,8 @@ export const dashboardStore = defineStore({ metrics: [""], }; if (type === "Tab") { - newWidget.h = 24; - newWidget.children = [ + newItem.h = 24; + newItem.children = [ { name: "Tab1", children: [], @@ -84,9 +84,9 @@ export const dashboardStore = defineStore({ ]; } if (type === "Topology") { - newWidget.w = 4; - newWidget.h = 6; - newWidget.graph = { + newItem.w = 4; + newItem.h = 6; + newItem.graph = { fontColor: "white", backgroundColor: "green", iconTheme: true, @@ -95,12 +95,15 @@ export const dashboardStore = defineStore({ showDepth: true, }; } + if (type === "Trace") { + newItem.h = 24; + } this.layout = this.layout.map((d: LayoutConfig) => { - d.y = d.y + newWidget.h; + d.y = d.y + newItem.h; return d; }); - this.layout.push(newWidget); - this.activedGridItem = newWidget.i; + this.layout.push(newItem); + this.activedGridItem = newItem.i; }, addTabItem(item: LayoutConfig) { const idx = this.layout.findIndex((d: LayoutConfig) => d.i === item.i); diff --git a/src/views/dashboard/controls/Trace.vue b/src/views/dashboard/controls/Trace.vue new file mode 100644 index 00000000..e69de29b diff --git a/src/views/dashboard/data.ts b/src/views/dashboard/data.ts index cb1f51af..fc2659bf 100644 --- a/src/views/dashboard/data.ts +++ b/src/views/dashboard/data.ts @@ -165,11 +165,11 @@ export const SortOrder = [ export const ToolIcons = [ { name: "playlist_add", content: "Add Widget", id: "addWidget" }, { name: "all_inbox", content: "Add Tab", id: "addTab" }, - // { name: "insert_image", content: "Add Image", id: "addImage" }, + { name: "device_hub", content: "Add Topology", id: "topology" }, + { name: "merge", content: "Add Trace", id: "trace" }, // { name: "save_alt", content: "Export", id: "export" }, // { name: "folder_open", content: "Import", id: "import" }, // { name: "settings", content: "Settings", id: "settings" }, - { name: "device_hub", content: "Add Topology", id: "topology" }, // { name: "save", content: "Apply", id: "apply" }, ]; export const ScopeType = [ diff --git a/src/views/dashboard/panel/Tool.vue b/src/views/dashboard/panel/Tool.vue index eb5827ac..7a1d15c8 100644 --- a/src/views/dashboard/panel/Tool.vue +++ b/src/views/dashboard/panel/Tool.vue @@ -290,8 +290,8 @@ function clickIcons(t: { id: string; content: string; name: string }) { case "addTab": dashboardStore.addControl("Tab"); break; - case "addImage": - dashboardStore.addControl("Image"); + case "trace": + dashboardStore.addControl("Trace"); break; case "topology": dashboardStore.addControl("Topology");