Showing
4 changed files
with
20 additions
and
28 deletions
... | ... | @@ -10,12 +10,13 @@ export const useChartInteract = ( |
10 | 10 | chartConfig: CreateComponentType, |
11 | 11 | useChartEditStore: ChartEditStoreType, |
12 | 12 | param: { [T: string]: any }, |
13 | - interactEventOn: string | |
13 | + interactEventOn: string, | |
14 | + status: boolean | |
14 | 15 | ) => { |
15 | 16 | const chartEditStore = useChartEditStore() |
16 | 17 | const { interactEvents } = chartConfig.events |
17 | - const { selectCurrentItems } = chartConfig.option | |
18 | 18 | const { selectTargetItems } = chartConfig.option |
19 | + const { data } = param | |
19 | 20 | const fnOnEvent = interactEvents.filter(item => { |
20 | 21 | return item.interactOn === interactEventOn |
21 | 22 | }) |
... | ... | @@ -32,19 +33,24 @@ export const useChartInteract = ( |
32 | 33 | Header.value[key] = param[item.interactFn[key]] |
33 | 34 | } |
34 | 35 | }) |
35 | - setJump(selectCurrentItems, selectTargetItems) | |
36 | + setJump(selectTargetItems) | |
36 | 37 | }) |
37 | - function setJump(selectCurrentItems: string[], selectTargetItems: string[]) { | |
38 | + function setJump(selectTargetItems: string[]) { | |
39 | + console.log('当前选择的关联项', selectTargetItems) | |
38 | 40 | try { |
41 | + console.log('当前页面所有的组件列表', chartEditStore.componentList) | |
39 | 42 | //优化循环性能 |
40 | 43 | for (let i = 0, len = chartEditStore.componentList.length; i < len; i++) { |
41 | 44 | const compId = chartEditStore.componentList[i].id |
42 | 45 | const compItem = chartEditStore.componentList[i] |
43 | - if (selectCurrentItems.includes(compId)) { | |
44 | - compItem.status.hide = true | |
45 | - } | |
46 | - if (selectTargetItems.includes(compId)) { | |
47 | - compItem.status.hide = false | |
46 | + if (status) { | |
47 | + if (compItem.key !== 'Button') { | |
48 | + if (selectTargetItems.includes(compId)) { | |
49 | + compItem.status.hide = false | |
50 | + } else { | |
51 | + compItem.status.hide = true | |
52 | + } | |
53 | + } | |
48 | 54 | } |
49 | 55 | } |
50 | 56 | } finally { | ... | ... |
... | ... | @@ -44,17 +44,6 @@ |
44 | 44 | <n-input v-model:value="optionData.dataset" size="small" placeholder="按钮文字"></n-input> |
45 | 45 | </setting-item> |
46 | 46 | </setting-item-box> |
47 | - <setting-item-box name="当前项"> | |
48 | - <setting-item name="当前项" :alone="true"> | |
49 | - <n-select | |
50 | - placeholder="请选择当前项" | |
51 | - multiple | |
52 | - size="small" | |
53 | - v-model:value="optionData.selectCurrentItems" | |
54 | - :options="selectCurrentItemOptions" | |
55 | - /> | |
56 | - </setting-item> | |
57 | - </setting-item-box> | |
58 | 47 | <setting-item-box name="目标项"> |
59 | 48 | <setting-item name="目标项" :alone="true"> |
60 | 49 | <n-select |
... | ... | @@ -120,8 +109,6 @@ const buttonTypeOptions = [ |
120 | 109 | } |
121 | 110 | ] |
122 | 111 | |
123 | -const selectCurrentItemOptions = ref<{ label: string; value: string }[]>([]) | |
124 | - | |
125 | 112 | const selectTargetItemOptions = ref<{ label: string; value: string }[]>([]) |
126 | 113 | |
127 | 114 | onMounted(() => { |
... | ... | @@ -129,7 +116,6 @@ onMounted(() => { |
129 | 116 | label: item.chartConfig?.title, |
130 | 117 | value: item.id |
131 | 118 | })) |
132 | - selectCurrentItemOptions.value = componentList | |
133 | 119 | selectTargetItemOptions.value = componentList |
134 | 120 | }) |
135 | 121 | </script> | ... | ... |
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | :dashed="buttonDashed" |
6 | 6 | :ghost="buttonGhost" |
7 | 7 | :color="buttonColor" |
8 | - @click="onClick(option.value.dataset)" | |
8 | + @click="onClick(option.value.selectTargetItems, true)" | |
9 | 9 | > |
10 | 10 | <span class="button-text-color">{{ dataset }}</span> |
11 | 11 | </n-button> |
... | ... | @@ -35,17 +35,18 @@ const option = shallowReactive({ |
35 | 35 | value: cloneDeep(props.chartConfig.option) |
36 | 36 | }) |
37 | 37 | |
38 | -const onClick = (v: any) => { | |
38 | +const onClick = (v: any, status: boolean) => { | |
39 | 39 | useChartInteract( |
40 | 40 | props.chartConfig, |
41 | 41 | useChartEditStore, |
42 | 42 | { [ComponentInteractParamsEnum.DATA]: v }, |
43 | - InteractEventOn.CHANGE | |
43 | + InteractEventOn.CHANGE, | |
44 | + status | |
44 | 45 | ) |
45 | 46 | } |
46 | 47 | |
47 | 48 | onMounted(() => { |
48 | - onClick(option.value.dataset) | |
49 | + onClick(option.value.selectTargetItems, false) | |
49 | 50 | }) |
50 | 51 | |
51 | 52 | // 手动更新 | ... | ... |