mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-05-15 09:48:43 +00:00
making tab selection as determinant more dynamic
This commit is contained in:
parent
5d4c80f558
commit
edf2e0f307
@ -40,6 +40,7 @@ interface DashboardState {
|
|||||||
showTopology: boolean;
|
showTopology: boolean;
|
||||||
fullView: boolean;
|
fullView: boolean;
|
||||||
currentTabItems: LayoutConfig[];
|
currentTabItems: LayoutConfig[];
|
||||||
|
currentTabName: string;
|
||||||
dashboards: DashboardItem[];
|
dashboards: DashboardItem[];
|
||||||
currentDashboard: Nullable<DashboardItem>;
|
currentDashboard: Nullable<DashboardItem>;
|
||||||
editMode: boolean;
|
editMode: boolean;
|
||||||
@ -59,6 +60,7 @@ export const dashboardStore = defineStore({
|
|||||||
showTopology: false,
|
showTopology: false,
|
||||||
fullView: false,
|
fullView: false,
|
||||||
currentTabItems: [],
|
currentTabItems: [],
|
||||||
|
currentTabName: '',
|
||||||
dashboards: [],
|
dashboards: [],
|
||||||
currentDashboard: null,
|
currentDashboard: null,
|
||||||
editMode: false,
|
editMode: false,
|
||||||
@ -210,6 +212,9 @@ export const dashboardStore = defineStore({
|
|||||||
setCurrentTabItems(items: LayoutConfig[]) {
|
setCurrentTabItems(items: LayoutConfig[]) {
|
||||||
this.currentTabItems = items;
|
this.currentTabItems = items;
|
||||||
},
|
},
|
||||||
|
setCurrentTabName(name: string) {
|
||||||
|
this.currentTabName = name
|
||||||
|
},
|
||||||
removeTab(item: LayoutConfig) {
|
removeTab(item: LayoutConfig) {
|
||||||
if (this.selectedGrid && this.selectedGrid.i === item.i) {
|
if (this.selectedGrid && this.selectedGrid.i === item.i) {
|
||||||
this.selectedGrid = null;
|
this.selectedGrid = null;
|
||||||
|
@ -19,7 +19,7 @@ limitations under the License. -->
|
|||||||
v-for="(child, idx) in data.children || []"
|
v-for="(child, idx) in data.children || []"
|
||||||
:key="idx"
|
:key="idx"
|
||||||
:class="{ active: activeTabIndex === idx }"
|
:class="{ active: activeTabIndex === idx }"
|
||||||
@click="clickTabs($event, idx)"
|
@click="clickTabs($event, idx, child.name, child)"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@click="editTabName($event, idx)"
|
@click="editTabName($event, idx)"
|
||||||
@ -266,8 +266,9 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
function clickTabs(e: Event, idx: number) {
|
function clickTabs(e: Event, idx: number, currentTabName:string, extra:any) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
console.log(currentTabName, extra)
|
||||||
activeTabIndex.value = idx;
|
activeTabIndex.value = idx;
|
||||||
dashboardStore.activeGridItem(props.data.i);
|
dashboardStore.activeGridItem(props.data.i);
|
||||||
dashboardStore.selectWidget(props.data);
|
dashboardStore.selectWidget(props.data);
|
||||||
@ -278,6 +279,7 @@ export default defineComponent({
|
|||||||
dashboardStore.setCurrentTabItems(
|
dashboardStore.setCurrentTabItems(
|
||||||
dashboardStore.layout[l].children[activeTabIndex.value].children
|
dashboardStore.layout[l].children[activeTabIndex.value].children
|
||||||
);
|
);
|
||||||
|
dashboardStore.setCurrentTabName(currentTabName)
|
||||||
needQuery.value = true;
|
needQuery.value = true;
|
||||||
}
|
}
|
||||||
function removeTab(e: Event) {
|
function removeTab(e: Event) {
|
||||||
@ -484,7 +486,9 @@ export default defineComponent({
|
|||||||
color: #409eff;
|
color: #409eff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.tab-header .tabs .span.active{
|
||||||
|
color: red !important;
|
||||||
|
}
|
||||||
.operations {
|
.operations {
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -13,7 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License. -->
|
limitations under the License. -->
|
||||||
<template>
|
<template>
|
||||||
<div class="dashboard-tool flex-h">
|
<div class="dashboard-tool flex-h">
|
||||||
<div class="flex-h">
|
<div class="flex-h">
|
||||||
<div class="flex-h">
|
<div class="flex-h">
|
||||||
<div
|
<div
|
||||||
@ -172,6 +172,9 @@ limitations under the License. -->
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <pre>
|
||||||
|
{{dashboardStore.layout[0]}}
|
||||||
|
</pre> -->
|
||||||
<Header v-if="showLogHeader" />
|
<Header v-if="showLogHeader" />
|
||||||
<TraceDetailsTools
|
<TraceDetailsTools
|
||||||
v-if="showFilter && currentTraceView === 'traceDetails'"
|
v-if="showFilter && currentTraceView === 'traceDetails'"
|
||||||
@ -183,11 +186,14 @@ limitations under the License. -->
|
|||||||
import Filter from "../related/trace/Filter.vue";
|
import Filter from "../related/trace/Filter.vue";
|
||||||
import Header from "../related/log/Header.vue";
|
import Header from "../related/log/Header.vue";
|
||||||
|
|
||||||
import { reactive, ref, computed, watch } from "vue";
|
import { reactive, onMounted, ref, computed, watch } from "vue";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import { useDashboardStore } from "@/store/modules/dashboard";
|
import { useDashboardStore } from "@/store/modules/dashboard";
|
||||||
import { useAppStoreWithOut } from "@/store/modules/app";
|
import { useAppStoreWithOut } from "@/store/modules/app";
|
||||||
import { useTraceStore } from "@/store/modules/trace";
|
import { useTraceStore } from "@/store/modules/trace";
|
||||||
|
onMounted(() =>{
|
||||||
|
console.log(dashboardStore.layout,dashboardStore.currentDashboard)
|
||||||
|
})
|
||||||
import {
|
import {
|
||||||
EntityType,
|
EntityType,
|
||||||
AllTools,
|
AllTools,
|
||||||
|
Loading…
Reference in New Issue
Block a user