fix widgets

This commit is contained in:
Qiuxia Fan 2022-07-12 15:39:31 +08:00
parent a96d15a5b4
commit ed13de38be

View File

@ -41,27 +41,29 @@ const widgetIds = ref<string[]>(
associate.map((d: { widgetId: string }) => d.widgetId) associate.map((d: { widgetId: string }) => d.widgetId)
); );
const widgets = computed(() => { const widgets = computed(() => {
const isLinear = ["Bar", "Line", "Area"].includes(
dashboardStore.selectedGrid.graph && dashboardStore.selectedGrid.graph.type
);
// const isRank = ["TopList"].includes( // const isRank = ["TopList"].includes(
// dashboardStore.selectedGrid.graph && dashboardStore.selectedGrid.graph.type // dashboardStore.selectedGrid.graph && dashboardStore.selectedGrid.graph.type
// ); // );
const { widgets } = getDashboard(dashboardStore.currentDashboard); const all = getDashboard(dashboardStore.currentDashboard).widgets;
const items = widgets.filter( const items = all.filter(
(d: { value: string; label: string } & LayoutConfig) => { (d: { value: string; label: string } & LayoutConfig) => {
if (dashboardStore.selectedGrid.id !== d.id) { const isLinear = ["Bar", "Line", "Area"].includes(
if (isLinear && d.type === "Widget" && d.widget && d.id) { (d.graph && d.graph.type) || ""
d.value = d.id; );
d.label = d.widget.name || d.id; if (
return d; (isLinear || d.type === "Event") &&
} d.id &&
// if (isRank && d.type !== "Widget" && d.widget && d.id) { dashboardStore.selectedGrid.id !== d.id
// d.value = d.id; ) {
// d.label = d.widget.name || d.id; d.value = d.id;
// return d; d.label = (d.widget && d.widget.name) || d.id;
// } return d;
} }
// if (isRank && d.type !== "Widget" && d.widget && d.id) {
// d.value = d.id;
// d.label = d.widget.name || d.id;
// return d;
// }
} }
); );
return items; return items;
@ -78,15 +80,18 @@ function updateWidgetConfig(options: Option[]) {
associate: opt, associate: opt,
}; };
dashboardStore.selectWidget({ ...widget }); dashboardStore.selectWidget({ ...widget });
// remove unuse association widget option // remove unuse association widget option
for (const id of widgetIds.value) { for (const id of widgetIds.value) {
if (!newVal.includes(id)) { if (!newVal.includes(id)) {
const w = widgets.find((d: { id: string }) => d.id === id); const w = widgets.find((d: { id: string }) => d.id === id);
const config = { if (w.type !== "Event") {
...w, const config = {
associate: [], ...w,
}; associate: [],
dashboardStore.setWidget(config); };
dashboardStore.setWidget(config);
}
} }
} }
// add association options in target widgets // add association options in target widgets
@ -94,11 +99,13 @@ function updateWidgetConfig(options: Option[]) {
const item = JSON.parse(JSON.stringify(opt)); const item = JSON.parse(JSON.stringify(opt));
item[i] = { widgetId: dashboardStore.selectedGrid.id }; item[i] = { widgetId: dashboardStore.selectedGrid.id };
const w = widgets.find((d: { id: string }) => d.id === opt[i].widgetId); const w = widgets.find((d: { id: string }) => d.id === opt[i].widgetId);
const config = { if (w.type !== "Event") {
...w, const config = {
associate: item, ...w,
}; associate: item,
dashboardStore.setWidget(config); };
dashboardStore.setWidget(config);
}
} }
widgetIds.value = newVal; widgetIds.value = newVal;
} }