Commit b2c2d9b12a776d4b1a6edb97bb66e9760bc97c3e

Authored by xp.Huang
2 parents fb67b8ce 82e865a1

Merge branch 'ft-dev' into 'main'

fix:修复场景联动执行条件和执行动作回显问题

See merge request huang/yun-teng-iot-front!125
... ... @@ -123,19 +123,23 @@ export const usePermissionStore = defineStore({
123 123 let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME;
124 124 function patcher(routes: AppRouteRecordRaw[], parentPath = '') {
125 125 if (parentPath) parentPath = parentPath + '/';
126   - routes?.forEach((route: AppRouteRecordRaw) => {
127   - const { path, children, redirect } = route;
128   - const currentPath = path.startsWith('/') ? path : parentPath + path;
129   - if (currentPath === homePath) {
130   - if (redirect) {
131   - homePath = route.redirect! as string;
132   - } else {
133   - route.meta = Object.assign({}, route.meta, { affix: true });
134   - throw new Error('end');
  126 + try {
  127 + routes?.forEach((route: AppRouteRecordRaw) => {
  128 + const { path, children, redirect } = route;
  129 + const currentPath = path.startsWith('/') ? path : parentPath + path;
  130 + if (currentPath === homePath) {
  131 + if (redirect) {
  132 + homePath = route.redirect! as string;
  133 + } else {
  134 + route.meta = Object.assign({}, route.meta, { affix: true });
  135 + throw new Error('end');
  136 + }
135 137 }
136   - }
137   - children && children.length > 0 && patcher(children, currentPath);
138   - });
  138 + children && children.length > 0 && patcher(children, currentPath);
  139 + });
  140 + } catch (e) {
  141 + return e;
  142 + }
139 143 }
140 144 try {
141 145 patcher(routes);
... ...
... ... @@ -20,14 +20,14 @@ export const columns: BasicColumn[] = [
20 20 : record.type === 'org.thingsboard.rule.engine.mqtt.TbMqttNode'
21 21 ? 'MQTT'
22 22 : record.type === 'org.thingsboard.rule.engine.rabbitmq.TbRabbitMqNode'
23   - ? 'RabbitMq'
24   - : 'Api';
  23 + ? 'RabbitMQ'
  24 + : 'REST_API';
25 25 const color =
26 26 enable == 'KafKa'
27 27 ? '#0099FF'
28 28 : enable == 'MQTT'
29 29 ? '#7C7CC9'
30   - : enable == 'RabbitMq'
  30 + : enable == 'RabbitMQ'
31 31 ? '#E8A15E'
32 32 : '#81B1AB';
33 33 const text =
... ... @@ -35,9 +35,9 @@ export const columns: BasicColumn[] = [
35 35 ? 'KafKa'
36 36 : enable == 'MQTT'
37 37 ? 'MQTT'
38   - : enable == 'RabbitMq'
39   - ? 'RabbitMq'
40   - : 'Api';
  38 + : enable == 'RabbitMQ'
  39 + ? 'RabbitMQ'
  40 + : 'REST_API';
41 41 return h(Tag, { color: color }, () => text);
42 42 },
43 43
... ... @@ -47,8 +47,8 @@ export const columns: BasicColumn[] = [
47 47 : record.type === 'org.thingsboard.rule.engine.mqtt.TbMqttNode'
48 48 ? 'MQTT'
49 49 : record.type === 'org.thingsboard.rule.engine.rabbitmq.TbRabbitMqNode'
50   - ? 'RabbitMq'
51   - : 'Api';
  50 + ? 'RabbitMQ'
  51 + : 'REST_API';
52 52 },
53 53 },
54 54 {
... ...
... ... @@ -59,66 +59,60 @@
59 59 </template>
60 60 <template #uploadAdd1="{ field }">
61 61 <span style="display: none">{{ field }}</span>
62   - <Upload>
63   - <UploadDragger
64   - v-model:fileList="fileList"
65   - name="file"
66   - :multiple="true"
67   - action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
68   - @change="handleChange"
69   - >
70   - <p class="ant-upload-drag-icon">
71   - <InboxOutlined />
72   - </p>
73   - <p class="ant-upload-text">Click or drag file to this area to upload</p>
74   - <p class="ant-upload-hint">
75   - Support for a single or bulk upload. Strictly prohibit from uploading company data
76   - or other band files
77   - </p>
78   - </UploadDragger>
79   - </Upload>
  62 + <a-upload-dragger
  63 + v-model:fileList="fileList"
  64 + name="file"
  65 + :multiple="true"
  66 + action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
  67 + @change="handleChange"
  68 + >
  69 + <p class="ant-upload-drag-icon">
  70 + <InboxOutlined />
  71 + </p>
  72 + <p class="ant-upload-text">Click or drag file to this area to upload</p>
  73 + <p class="ant-upload-hint">
  74 + Support for a single or bulk upload. Strictly prohibit from uploading company data or
  75 + other band files
  76 + </p>
  77 + </a-upload-dragger>
80 78 </template>
81 79 <template #uploadAdd2="{ field }">
82 80 <span style="display: none">{{ field }}</span>
83   - <Upload>
84   - <UploadDragger
85   - v-model:fileList="fileList"
86   - name="file"
87   - :multiple="true"
88   - action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
89   - @change="handleChange"
90   - >
91   - <p class="ant-upload-drag-icon">
92   - <InboxOutlined />
93   - </p>
94   - <p class="ant-upload-text">Click or drag file to this area to upload</p>
95   - <p class="ant-upload-hint">
96   - Support for a single or bulk upload. Strictly prohibit from uploading company data
97   - or other band files
98   - </p>
99   - </UploadDragger>
100   - </Upload>
  81 + <a-upload-dragger
  82 + v-model:fileList="fileList"
  83 + name="file"
  84 + :multiple="true"
  85 + action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
  86 + @change="handleChange"
  87 + >
  88 + <p class="ant-upload-drag-icon">
  89 + <InboxOutlined />
  90 + </p>
  91 + <p class="ant-upload-text">Click or drag file to this area to upload</p>
  92 + <p class="ant-upload-hint">
  93 + Support for a single or bulk upload. Strictly prohibit from uploading company data or
  94 + other band files
  95 + </p>
  96 + </a-upload-dragger>
101 97 </template>
102 98 <template #uploadAdd3="{ field }">
103 99 <span style="display: none">{{ field }}</span>
104   - <Upload>
105   - <UploadDragger
106   - v-model:fileList="fileList"
107   - name="file"
108   - :multiple="true"
109   - action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
110   - @change="handleChange"
111   - >
112   - <p class="ant-upload-drag-icon">
113   - <InboxOutlined />
114   - </p>
115   - <p class="ant-upload-text">Click or drag file to this area to upload</p>
116   - <p class="ant-upload-hint">
117   - Support for a single or bulk upload. Strictly prohibit from uploading company data
118   - or other band files
119   - </p>
120   - </UploadDragger>
121   - </Upload>
  100 + <a-upload-dragger
  101 + v-model:fileList="fileList"
  102 + name="file"
  103 + :multiple="true"
  104 + action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
  105 + @change="handleChange"
  106 + >
  107 + <p class="ant-upload-drag-icon">
  108 + <InboxOutlined />
  109 + </p>
  110 + <p class="ant-upload-text">Click or drag file to this area to upload</p>
  111 + <p class="ant-upload-hint">
  112 + Support for a single or bulk upload. Strictly prohibit from uploading company data or
  113 + other band files
  114 + </p>
  115 + </a-upload-dragger>
122 116 </template>
123 117 </BasicForm>
124 118 </div>
... ... @@ -142,8 +136,7 @@
142 136 [Descriptions.name]: Descriptions,
143 137 [Descriptions.Item.name]: Descriptions.Item,
144 138 InboxOutlined,
145   - Upload: Upload,
146   - UploadDragger: Upload.UploadDragger,
  139 + [Upload.Dragger.name]: Upload.Dragger,
147 140 },
148 141 emits: ['next', 'prev', 'register'],
149 142 setup(_, { emit }) {
... ...
... ... @@ -4,66 +4,60 @@
4 4 <BasicForm :showSubmitButton="false" @register="register">
5 5 <template #uploadAdd1="{ field }">
6 6 <span style="display: none">{{ field }}</span>
7   - <Upload>
8   - <UploadDragger
9   - v-model:fileList="fileList"
10   - name="file"
11   - :multiple="true"
12   - action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
13   - @change="handleChange"
14   - >
15   - <p class="ant-upload-drag-icon">
16   - <InboxOutlined />
17   - </p>
18   - <p class="ant-upload-text">Click or drag file to this area to upload</p>
19   - <p class="ant-upload-hint">
20   - Support for a single or bulk upload. Strictly prohibit from uploading company data
21   - or other band files
22   - </p>
23   - </UploadDragger>
24   - </Upload>
  7 + <a-upload-dragger
  8 + v-model:fileList="fileList"
  9 + name="file"
  10 + :multiple="true"
  11 + action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
  12 + @change="handleChange"
  13 + >
  14 + <p class="ant-upload-drag-icon">
  15 + <InboxOutlined />
  16 + </p>
  17 + <p class="ant-upload-text">Click or drag file to this area to upload</p>
  18 + <p class="ant-upload-hint">
  19 + Support for a single or bulk upload. Strictly prohibit from uploading company data or
  20 + other band files
  21 + </p>
  22 + </a-upload-dragger>
25 23 </template>
26 24 <template #uploadAdd2="{ field }">
27 25 <span style="display: none">{{ field }}</span>
28   - <Upload>
29   - <UploadDragger
30   - v-model:fileList="fileList"
31   - name="file"
32   - :multiple="true"
33   - action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
34   - @change="handleChange"
35   - >
36   - <p class="ant-upload-drag-icon">
37   - <InboxOutlined />
38   - </p>
39   - <p class="ant-upload-text">Click or drag file to this area to upload</p>
40   - <p class="ant-upload-hint">
41   - Support for a single or bulk upload. Strictly prohibit from uploading company data
42   - or other band files
43   - </p>
44   - </UploadDragger>
45   - </Upload>
  26 + <a-upload-dragger
  27 + v-model:fileList="fileList"
  28 + name="file"
  29 + :multiple="true"
  30 + action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
  31 + @change="handleChange"
  32 + >
  33 + <p class="ant-upload-drag-icon">
  34 + <InboxOutlined />
  35 + </p>
  36 + <p class="ant-upload-text">Click or drag file to this area to upload</p>
  37 + <p class="ant-upload-hint">
  38 + Support for a single or bulk upload. Strictly prohibit from uploading company data or
  39 + other band files
  40 + </p>
  41 + </a-upload-dragger>
46 42 </template>
47 43 <template #uploadAdd3="{ field }">
48 44 <span style="display: none">{{ field }}</span>
49   - <Upload>
50   - <UploadDragger
51   - v-model:fileList="fileList"
52   - name="file"
53   - :multiple="true"
54   - action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
55   - @change="handleChange"
56   - >
57   - <p class="ant-upload-drag-icon">
58   - <InboxOutlined />
59   - </p>
60   - <p class="ant-upload-text">Click or drag file to this area to upload</p>
61   - <p class="ant-upload-hint">
62   - Support for a single or bulk upload. Strictly prohibit from uploading company data
63   - or other band files
64   - </p>
65   - </UploadDragger>
66   - </Upload>
  45 + <a-upload-dragger
  46 + v-model:fileList="fileList"
  47 + name="file"
  48 + :multiple="true"
  49 + action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
  50 + @change="handleChange"
  51 + >
  52 + <p class="ant-upload-drag-icon">
  53 + <InboxOutlined />
  54 + </p>
  55 + <p class="ant-upload-text">Click or drag file to this area to upload</p>
  56 + <p class="ant-upload-hint">
  57 + Support for a single or bulk upload. Strictly prohibit from uploading company data or
  58 + other band files
  59 + </p>
  60 + </a-upload-dragger>
67 61 </template>
68 62 </BasicForm>
69 63 </div>
... ... @@ -84,8 +78,7 @@
84 78 [Descriptions.name]: Descriptions,
85 79 [Descriptions.Item.name]: Descriptions.Item,
86 80 InboxOutlined,
87   - Upload: Upload,
88   - UploadDragger: Upload.UploadDragger,
  81 + [Upload.Dragger.name]: Upload.Dragger,
89 82 },
90 83 emits: ['next', 'prev', 'register'],
91 84 setup(_, { emit }) {
... ... @@ -112,7 +105,6 @@
112 105 submitFunc: customSubmitFunc,
113 106 });
114 107 const setStepTwoFieldsValueFunc = (v, v1) => {
115   - console.log(v);
116 108 setFieldsValue(v);
117 109 setFieldsValue({
118 110 name: v1,
... ...
... ... @@ -111,7 +111,7 @@
111 111 vertical-align: middle;
112 112 display: inline-block;
113 113 position: relative;
114   - top: 25px;
  114 + top: 20px;
115 115 left: 5px;
116 116 }
117 117 </style>
... ...
... ... @@ -597,9 +597,8 @@ export const useActionDrawerSchema: FormSchema[] = [
597 597 field: 'outTarget',
598 598 label: '',
599 599 component: 'Select',
600   - required: true,
601 600 componentProps: {
602   - placeholder: '设备输出',
  601 + placeholder: '请选择设备输出',
603 602 options: [
604 603 { label: '设备输出', value: 'DEVICE_OUT' },
605 604 { label: '消息通知', value: 'MSG_NOTIFY' },
... ... @@ -612,7 +611,6 @@ export const useActionDrawerSchema: FormSchema[] = [
612 611 field: 'deviceId',
613 612 label: '',
614 613 component: 'Select',
615   - required: true,
616 614 componentProps: {
617 615 placeholder: '请选择设备',
618 616 },
... ... @@ -626,8 +624,6 @@ export const useActionDrawerSchema: FormSchema[] = [
626 624 field: 'command',
627 625 component: 'Input',
628 626 label: '',
629   - required: true,
630   -
631 627 componentProps: {
632 628 maxLength: 255,
633 629 placeholder: '请输入下发指定',
... ... @@ -716,104 +712,3 @@ export const useActionDrawerSchema: FormSchema[] = [
716 712 slot: 'add',
717 713 },
718 714 ];
719   -
720   -export const mockData = {
721   - id: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
722   - creator: 'b75f1c80-0f94-4a06-84ef-253962bbfe9e',
723   - createTime: '2022-02-21 15:03:44',
724   - name: '测试3',
725   - enabled: false,
726   - description: '测试3',
727   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
728   - organizationId: '0454b838-411b-425b-81c1-7cdcf9ef4816',
729   - triggers: [
730   - {
731   - enabled: false,
732   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
733   - deviceId: '38bbb9e6-7769-4c32-ad4d-f81df4e37044',
734   - triggerEvent: 'DEVICE_ACT',
735   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
736   - },
737   - {
738   - enabled: false,
739   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
740   - deviceId: '242ffd69-fea8-4929-8815-9bd6f6b6d8bd',
741   - triggerEvent: 'DEVICE_ACT',
742   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
743   - },
744   - {
745   - enabled: false,
746   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
747   - deviceId: 'ddb672d8-32ed-4f62-9a97-95af3d7a3c35',
748   - triggerEvent: 'DEVICE_ACT',
749   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
750   - },
751   - {
752   - enabled: false,
753   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
754   - deviceId: 'ee10b318-1bb9-4e78-997b-726b184cc6be',
755   - triggerEvent: 'DEVICE_ACT',
756   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
757   - },
758   - ],
759   - doActions: [
760   - {
761   - enabled: false,
762   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
763   - deviceId: '38bbb9e6-7769-4c32-ad4d-f81df4e37044',
764   - outTarget: 'DEVICE_OUT',
765   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
766   - },
767   - {
768   - enabled: false,
769   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
770   - deviceId: '242ffd69-fea8-4929-8815-9bd6f6b6d8bd',
771   - outTarget: 'DEVICE_OUT',
772   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
773   - },
774   - {
775   - enabled: false,
776   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
777   - deviceId: 'ddb672d8-32ed-4f62-9a97-95af3d7a3c35',
778   - outTarget: 'DEVICE_OUT',
779   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
780   - },
781   - {
782   - enabled: false,
783   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
784   - deviceId: 'ee10b318-1bb9-4e78-997b-726b184cc6be',
785   - outTarget: 'DEVICE_OUT',
786   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
787   - },
788   - ],
789   - doConditions: [
790   - {
791   - enabled: false,
792   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
793   - deviceId: '38bbb9e6-7769-4c32-ad4d-f81df4e37044',
794   - status: 'DEVICE_STATUS',
795   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
796   - },
797   - {
798   - enabled: false,
799   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
800   - deviceId: '242ffd69-fea8-4929-8815-9bd6f6b6d8bd',
801   - status: 'DEVICE_STATUS',
802   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
803   - },
804   - {
805   - enabled: false,
806   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
807   - deviceId: 'ddb672d8-32ed-4f62-9a97-95af3d7a3c35',
808   - status: 'DEVICE_STATUS',
809   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
810   - },
811   - {
812   - enabled: false,
813   - tenantId: 'de10f9e0-8892-11ec-ac19-e398562c8b61',
814   - deviceId: 'ee10b318-1bb9-4e78-997b-726b184cc6be',
815   - status: 'DEVICE_STATUS',
816   - sceneLinkageId: 'f90f3cc9-e6ab-41cd-86b8-bb3a8f71ae28',
817   - },
818   - ],
819   -};
... ...
... ... @@ -16,13 +16,13 @@
16 16 :key="index"
17 17 >
18 18 <span style="display: none">{{ item + index }}</span>
19   - <span style="position: relative; top: 3.2vh; left: 0.3vw">触发器 {{ index + 1 }}</span>
  19 + <span style="position: relative; top: 3.2vh; left: 0.5vw">触发器 {{ index + 1 }}</span>
20 20 <div style="display: block">
21 21 <AddTriggerForm
  22 + ref="refTriggerChild"
22 23 :editTriggerFather="isUpdate == false ? 1 : item"
23 24 :newFilterMapFather="isUpdate == false ? 1 : newFilterMap"
24 25 :deviceInfo="getDeviceInfo"
25   - ref="refTriggerChild"
26 26 />
27 27 </div>
28 28 <div style="height: 3vh"></div>
... ... @@ -62,7 +62,7 @@
62 62 :key="index"
63 63 >
64 64 <span style="display: none">{{ item + index }}</span>
65   - <span style="position: relative; top: 3.2vh; left: 0.3vw">执行条件 {{ index + 1 }}</span>
  65 + <span style="position: relative; top: 3.2vh; left: 0.5vw">执行条件 {{ index + 1 }}</span>
66 66
67 67 <div>
68 68 <AddConditiForm
... ... @@ -90,7 +90,7 @@
90 90 </div>
91 91 <div style="display: flex; width: 4vw; height: 4vh">
92 92 <Button
93   - v-if="addConditionPushData.length != 0 || addConditionPushData.length != 0"
  93 + v-if="addConditionPushData.length != 0 || editConditionPushData.length != 0"
94 94 style="border-radius: 10px; background-color: rgba(237, 111, 111, 1)"
95 95 type="default"
96 96 class="mt-5"
... ... @@ -137,7 +137,7 @@
137 137 </div>
138 138 <div style="display: flex; width: 4vw; height: 4vh">
139 139 <Button
140   - v-if="addActionPushData.length > 0 || addActionPushData.length > 0"
  140 + v-if="addActionPushData.length !== 0 || editActionPushData.length !== 0"
141 141 style="border-radius: 10px; background-color: rgba(237, 111, 111, 1)"
142 142 type="default"
143 143 class="mt-5"
... ... @@ -203,6 +203,15 @@
203 203 compare: '',
204 204 value: '',
205 205 });
  206 + const editTriggerData = reactive<IAddTrigger>({
  207 + id: Date.now() + Math.random() + '',
  208 + triggerEvent: '请选择设备触发',
  209 + deviceId: '请选择设备',
  210 + touchWay: '请选择出发方式',
  211 + attributeChoose: '请选择属性',
  212 + compare: '',
  213 + value: '',
  214 + });
206 215 const addConditionData = reactive<IAddCondition>({
207 216 id: Date.now() + Math.random() + '',
208 217 status: '',
... ... @@ -213,6 +222,16 @@
213 222 compare: '',
214 223 value: '',
215 224 });
  225 + const editConditionData = reactive<IAddCondition>({
  226 + id: Date.now() + Math.random() + '',
  227 + status: '',
  228 + deviceId: '',
  229 + createTime: '',
  230 + updateTime: '',
  231 + property: '请选择',
  232 + compare: '',
  233 + value: '',
  234 + });
216 235 const addActionData = reactive<IAddAction>({
217 236 id: Date.now() + Math.random() + '',
218 237 outTarget: '',
... ... @@ -220,6 +239,13 @@
220 239 command: '',
221 240 sceneLinkageId: '',
222 241 });
  242 + const editActionData = reactive<IAddAction>({
  243 + id: Date.now() + Math.random() + '',
  244 + outTarget: '请选择触发方式',
  245 + deviceId: '请选择设备',
  246 + command: '请输入执行命令',
  247 + sceneLinkageId: '',
  248 + });
223 249 const addTriggerPushData = ref<[]>([]);
224 250 const addConditionPushData = ref<[]>([]);
225 251 const addActionPushData = ref<[]>([]);
... ... @@ -244,6 +270,18 @@
244 270 const newFilterMap = ref<[]>([]);
245 271 const newConditionFilterMap = ref<[]>([]);
246 272 const newActionFilterMap = ref<[]>([]);
  273 + const filterNewTriggerArr = ref<[]>([]);
  274 + const filterNewConditionArr = ref<[]>([]);
  275 + const filterNewActionArr = ref<[]>([]);
  276 + const pushEditArray = ref<[]>([]);
  277 + const pushEditConditionArray = ref<[]>([]);
  278 + const pushEditActionArray = ref<[]>([]);
  279 + const filterArrayTrigger = ref<[]>([]);
  280 + const filterArrayCondition = ref<[]>([]);
  281 + const filterArrayAction = ref<[]>([]);
  282 + const filterArrayTriggerObj = ref({});
  283 + const filterArrayConditionObj = ref({});
  284 + const filterArrayActionObj = ref({});
247 285
248 286 const [registerForm, { resetFields, setFieldsValue, validateFields }] = useForm({
249 287 labelWidth: 120,
... ... @@ -256,20 +294,17 @@
256 294 setDrawerProps({ confirmLoading: false });
257 295 isUpdate.value = !!data?.isUpdate;
258 296 if (!unref(isUpdate)) {
259   - editTriggerPushData.value = [];
260   - editTriggerPushData.value.length = 0;
261   - addTriggerPushData.value = [];
262   - addTriggerPushData.value.length = 0;
263   - addConditionPushData.value = [];
264   - addConditionPushData.value.length = 0;
265   - addActionPushData.value = [];
266   - addActionPushData.value.length = 0;
267 297 try {
268   - setTimeout(() => {
269   - proxy.$refs.refTriggerChild.resetFieldsValueFunc();
270   - proxy.$refs.refConditionChild.resetFieldsValueFunc();
271   - proxy.$refs.refActionChild.resetFieldsValueFunc();
272   - }, 50);
  298 + proxy.$refs.refTriggerChild.resetFieldsValueFunc();
  299 + proxy.$refs.refConditionChild.resetFieldsValueFunc();
  300 + proxy.$refs.refActionChild.resetFieldsValueFunc();
  301 + lastRefTriggerChildDataArray.value.length = 0;
  302 + lastRefConditionChildDataArray.value.length = 0;
  303 + lastRefActionChildDataArray.value.length = 0;
  304 + editTriggerPushData.value.length = 0;
  305 + addTriggerPushData.value.length = 0;
  306 + addConditionPushData.value.length = 0;
  307 + addActionPushData.value.length = 0;
273 308 } catch (e) {
274 309 return e;
275 310 }
... ... @@ -289,14 +324,6 @@
289 324 ...data.record,
290 325 });
291 326 editTriggerPushData.value = data.record.triggers;
292   - editTriggerPushData.value.forEach((f) => {
293   - if (f?.id.length == 18) {
294   - editTriggerPushData.value.pop();
295   - if (editTriggerPushData.value.length) {
296   - editTriggerPushData.value.length = editTriggerPushData.value.length;
297   - }
298   - }
299   - });
300 327 editConditionPushData.value = data.record.doConditions;
301 328 editActionPushData.value = data.record.doActions;
302 329 const options = await screenLinkPageByDeptIdGetDevice({
... ... @@ -403,10 +430,6 @@
403 430 lastRefTriggerChildDataArray.value.push(refTriggerChildData.value as never);
404 431 lastRefConditionChildDataArray.value.push(refConditionChildData.value as never);
405 432 lastRefActionChildDataArray.value.push(refActionChildData.value as never);
406   - //删除第一个
407   - lastRefTriggerChildDataArray.value.shift();
408   - lastRefConditionChildDataArray.value.shift();
409   - lastRefActionChildDataArray.value.shift();
410 433 const triggersObj = {
411 434 triggers: lastRefTriggerChildDataArray.value,
412 435 };
... ... @@ -421,19 +444,38 @@
421 444 refTriggerChildDataFunc();
422 445 refConditionChildDataFunc();
423 446 refActionChildDataFunc();
424   - lastEditRefTriggerChildDataArray.value.push(refTriggerChildData.value as never);
425   - lastEditRefConditionChildDataArray.value.push(refConditionChildData.value as never);
426   - lastEditRefActionChildDataArray.value.push(refActionChildData.value as never);
427   - lastRefConditionChildDataArray.value.push(refConditionChildData.value as never);
428   - lastRefActionChildDataArray.value.push(refActionChildData.value as never);
  447 + pushEditArray.value.push(refTriggerChildData.value as never);
  448 + pushEditConditionArray.value.push(refConditionChildData.value as never);
  449 + pushEditActionArray.value.push(refActionChildData.value as never);
  450 + filterArrayTrigger.value = editTriggerPushData.value.filter(
  451 + (f) => f?.triggerEvent !== ''
  452 + );
  453 + filterArrayCondition.value = editTriggerPushData.value.filter((f) => f?.property !== '');
  454 +
  455 + filterArrayAction.value = editTriggerPushData.value.filter((f) => f?.outTarget !== '');
  456 +
  457 + pushEditArray.value.forEach((f) => {
  458 + filterArrayTriggerObj.value = f;
  459 + filterArrayTrigger.value.push(filterArrayTriggerObj.value as never);
  460 + });
  461 + pushEditConditionArray.value.forEach((f) => {
  462 + filterArrayConditionObj.value = f;
  463 + filterArrayCondition.value.push(filterArrayConditionObj.value as never);
  464 + });
  465 +
  466 + pushEditActionArray.value.forEach((f) => {
  467 + filterArrayActionObj.value = f;
  468 + filterArrayAction.value.push(filterArrayActionObj.value as never);
  469 + });
  470 +
429 471 const triggersObj = {
430   - triggers: lastEditRefTriggerChildDataArray.value,
  472 + triggers: filterArrayTrigger.value,
431 473 };
432 474 const conditionsObj = {
433   - doConditions: lastRefConditionChildDataArray.value,
  475 + doConditions: filterArrayCondition.value,
434 476 };
435 477 const actionsObj = {
436   - doActions: lastRefActionChildDataArray.value,
  478 + doActions: filterArrayAction.value,
437 479 };
438 480 Object.assign(getAllFormData, triggersObj, conditionsObj, actionsObj);
439 481 }
... ... @@ -461,6 +503,8 @@
461 503 emit('success');
462 504 }
463 505 };
  506 +
  507 + //默认添加触发器
464 508 const defaultAddTrigger = () => {
465 509 if (unref(addTriggerPushData).length == 0) {
466 510 setTimeout(() => {
... ... @@ -468,26 +512,27 @@
468 512 }, 10);
469 513 }
470 514 };
471   -
472 515 //新增触发器
473 516 const addTrigger = () => {
474 517 if (!unref(isUpdate)) {
475 518 unref(addTriggerPushData).push(addTriggerData as never);
476 519 refTriggerChildDataFunc();
477 520 lastRefTriggerChildData.value = refTriggerChildData.value;
478   - lastRefTriggerChildDataArray.value.push(lastRefTriggerChildData.value as never);
  521 + filterNewTriggerArr.value.push(lastRefTriggerChildData.value as never);
  522 + lastRefTriggerChildDataArray.value = filterNewTriggerArr.value.filter(
  523 + (v) => Object.keys(v).length !== 0
  524 + );
479 525 } else {
480   - unref(editTriggerPushData).push(addTriggerData as never);
481 526 refTriggerChildDataFunc();
482   - lastRefTriggerChildData.value = refTriggerChildData.value;
483   - lastEditRefTriggerChildDataArray.value.push(lastRefTriggerChildData.value as never);
  527 + pushEditArray.value.push(refTriggerChildData.value);
  528 + unref(editTriggerPushData).push(editTriggerData as never);
484 529 }
485 530 };
486 531 const removeTrigger = () => {
487 532 if (!unref(isUpdate)) {
488 533 try {
489 534 unref(addTriggerPushData).splice(0, 1);
490   - lastRefTriggerChildDataArray.value.splice(0, 1);
  535 + lastRefTriggerChildDataArray.value.pop();
491 536 } catch (e) {
492 537 return e;
493 538 }
... ... @@ -501,30 +546,33 @@
501 546 }
502 547 };
503 548
  549 + //默认添加执行条件
  550 + const defaultAddCondition = () => {
  551 + if (unref(addConditionPushData).length == 0) {
  552 + addCondition();
  553 + }
  554 + };
504 555 //新增执行条件
505 556 const addCondition = () => {
506 557 if (!unref(isUpdate)) {
507 558 unref(addConditionPushData).push(addConditionData as never);
508 559 refConditionChildDataFunc();
509 560 lastRefConditionChildData.value = refConditionChildData.value;
510   - lastRefConditionChildDataArray.value.push(lastRefConditionChildData.value as never);
  561 + filterNewConditionArr.value.push(lastRefConditionChildData.value as never);
  562 + lastRefConditionChildDataArray.value = filterNewConditionArr.value.filter(
  563 + (v) => Object.keys(v).length !== 0
  564 + );
511 565 } else {
512   - unref(editConditionPushData).push(addConditionData as never);
513   - console.log(unref(editConditionPushData));
514 566 refConditionChildDataFunc();
515   - lastRefConditionChildData.value = refConditionChildData.value;
516   - lastEditRefConditionChildDataArray.value.push(lastRefConditionChildData.value as never);
  567 + pushEditConditionArray.value.push(refConditionChildData.value);
  568 + unref(editConditionPushData).push(editConditionData as never);
517 569 }
518   - // unref(addConditionPushData).push(addConditionData as never);
519   - // refConditionChildDataFunc();
520   - // lastRefConditionChildData.value = refConditionChildData.value;
521   - // lastRefConditionChildDataArray.value.push(lastRefConditionChildData.value as never);
522 570 };
523 571 const removeCondition = () => {
524 572 if (!unref(isUpdate)) {
525 573 try {
526 574 unref(addConditionPushData).splice(0, 1);
527   - lastRefConditionChildDataArray.value.splice(0, 1);
  575 + lastRefConditionChildDataArray.value.pop();
528 576 } catch (e) {
529 577 return e;
530 578 }
... ... @@ -538,40 +586,33 @@
538 586 }
539 587 };
540 588
541   - //新增执行动作
  589 + //默认新增执行动作
542 590 const defaultAddAction = () => {
543 591 if (unref(addActionPushData).length == 0) {
544 592 addAction();
545 593 }
546 594 };
547   -
548   - const defaultAddCondition = () => {
549   - if (unref(addConditionPushData).length == 0) {
550   - addCondition();
551   - }
552   - };
  595 + //新增执行动作
553 596 const addAction = () => {
554 597 if (!unref(isUpdate)) {
555 598 unref(addActionPushData).push(addActionData as never);
556 599 refActionChildDataFunc();
557 600 lastRefActionChildData.value = refActionChildData.value;
558   - lastRefActionChildDataArray.value.push(lastRefActionChildData.value as never);
  601 + filterNewActionArr.value.push(lastRefActionChildData.value as never);
  602 + lastRefActionChildDataArray.value = filterNewActionArr.value.filter(
  603 + (v) => Object.keys(v).length !== 0
  604 + );
559 605 } else {
560   - unref(editActionPushData).push(addActionData as never);
561 606 refActionChildDataFunc();
562   - lastRefActionChildData.value = refActionChildData.value;
563   - lastEditRefActionChildDataArray.value.push(lastRefActionChildData.value as never);
  607 + pushEditActionArray.value.push(refActionChildData.value);
  608 + unref(editActionPushData).push(editActionData as never);
564 609 }
565   - // unref(addActionPushData).push(addActionData as never);
566   - // refActionChildDataFunc();
567   - // lastRefActionChildData.value = refActionChildData.value;
568   - // lastRefActionChildDataArray.value.push(lastRefActionChildData.value as never);
569 610 };
570 611 const removeAction = () => {
571 612 if (!unref(isUpdate)) {
572 613 try {
573 614 unref(addActionPushData).splice(0, 1);
574   - lastRefActionChildDataArray.value.splice(0, 1);
  615 + lastRefActionChildDataArray.value.pop();
575 616 } catch (e) {
576 617 return e;
577 618 }
... ...