Commit 2fca457f443f396584aeaa06074a3fc11109d9c6

Authored by xp.Huang
2 parents 37e1dc00 8cce81b2

Merge branch 'ft-dev' into 'main'

refactor:重构场景联动完成

See merge request huang/yun-teng-iot-front!99
@@ -7,29 +7,7 @@ @@ -7,29 +7,7 @@
7 :showResetButton="false" 7 :showResetButton="false"
8 :showSubmitButton="false" 8 :showSubmitButton="false"
9 @register="registerCondition" 9 @register="registerCondition"
10 - >  
11 - <template #add="{ field }">  
12 - <Button  
13 - style="margin-left: -99px; margin-top: 0px; display: inline-block"  
14 - v-if="Number(field) === 0"  
15 - :style="addHideButton > 1 ? 'display:none' : 'display:inline-block'"  
16 - @click="add"  
17 - type="primary"  
18 - >+新增执行条件</Button  
19 - >  
20 -  
21 - <Button  
22 - style="margin-left: -95px; margin-top: 20px"  
23 - v-if="field > 0"  
24 - @click="add"  
25 - type="primary"  
26 - >+新增执行条件</Button  
27 - >  
28 - <Button style="margin-left: 10px" v-if="field > 0" @click="del(field)" type="primary"  
29 - >删除</Button  
30 - >  
31 - </template>  
32 - </BasicForm> 10 + />
33 </div> 11 </div>
34 </CollapseContainer> 12 </CollapseContainer>
35 </template> 13 </template>
@@ -38,40 +16,24 @@ @@ -38,40 +16,24 @@
38 import { CollapseContainer } from '/@/components/Container/index'; 16 import { CollapseContainer } from '/@/components/Container/index';
39 import { BasicForm, useForm } from '/@/components/Form/index'; 17 import { BasicForm, useForm } from '/@/components/Form/index';
40 import { Input } from 'ant-design-vue'; 18 import { Input } from 'ant-design-vue';
41 - import { Button } from '/@/components/Button';  
42 - import { useConditionDrawerSchema, isShiDu, isTimeAll } from '../config.d'; 19 + import { useConditionDrawerSchema } from '../config';
43 import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi'; 20 import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi';
44 21
45 export default defineComponent({ 22 export default defineComponent({
46 - components: { CollapseContainer, BasicForm, [Input.name]: Input, Button },  
47 - // eslint-disable-next-line vue/require-prop-types 23 + components: { CollapseContainer, BasicForm, [Input.name]: Input },
48 props: ['deviceInfo1'], 24 props: ['deviceInfo1'],
49 - emits: ['eDoConditionGetAddPushValueData'],  
50 - setup(props, { emit }) {  
51 - const addHideButton = ref(1);  
52 - const getAddPushValueData: any = ref([]);  
53 25
54 - const [  
55 - registerCondition,  
56 - {  
57 - setFieldsValue,  
58 - resetFields,  
59 - updateSchema,  
60 - appendSchemaByField,  
61 - removeSchemaByFiled,  
62 - getFieldsValue,  
63 - },  
64 - ] = useForm({ 26 + setup(props) {
  27 + const fieldValue: any = ref({});
  28 + const [registerCondition, { getFieldsValue, updateSchema }] = useForm({
65 labelWidth: 100, 29 labelWidth: 100,
66 schemas: useConditionDrawerSchema, 30 schemas: useConditionDrawerSchema,
67 actionColOptions: { span: 24 }, 31 actionColOptions: { span: 24 },
68 }); 32 });
69 - let isJudge = ref(1);  
70 - if (isJudge.value == 1) {  
71 - setTimeout(() => {  
72 - resetFields();  
73 - }, 1000);  
74 - } 33 + const getFieldsValueFunc = () => {
  34 + fieldValue.value = getFieldsValue();
  35 + return fieldValue.value;
  36 + };
75 watch( 37 watch(
76 () => props.deviceInfo1, 38 () => props.deviceInfo1,
77 async (newV) => { 39 async (newV) => {
@@ -87,20 +49,6 @@ @@ -87,20 +49,6 @@
87 }); 49 });
88 } 50 }
89 ); 51 );
90 - //回显数据  
91 - const setFieldsFormValue = (v) => {  
92 - setFieldsValue(v);  
93 - };  
94 - const getAllFields = (getV: any) => {  
95 - getV = {  
96 - data: getFieldsValue(),  
97 - count: 1,  
98 - };  
99 - return getV;  
100 - };  
101 - function funcResetFields() {  
102 - resetFields();  
103 - }  
104 //新增清空设备选择 52 //新增清空设备选择
105 const clearSelectDevice = () => { 53 const clearSelectDevice = () => {
106 updateSchema({ 54 updateSchema({
@@ -118,353 +66,11 @@ @@ -118,353 +66,11 @@
118 }, 66 },
119 }); 67 });
120 }; 68 };
121 -  
122 - const n = ref(1);  
123 - function add() {  
124 - const pushValue = getFieldsValue();  
125 - getAddPushValueData.value.push(pushValue);  
126 - emit('eDoConditionGetAddPushValueData', {  
127 - data: getAddPushValueData.value,  
128 - count: 2,  
129 - });  
130 - addHideButton.value++;  
131 - if (addHideButton.value == 3) {  
132 - setTimeout(() => {  
133 - let getDom1 = document.getElementById('1') as HTMLElement;  
134 - getDom1.style.display = 'none';  
135 - }, 500);  
136 - }  
137 - if (addHideButton.value == 4) {  
138 - setTimeout(() => {  
139 - let getDom2 = document.getElementById('2') as HTMLElement;  
140 - getDom2.style.display = 'none';  
141 - let getDom41 = document.getElementById('1') as HTMLElement;  
142 - getDom41.style.display = 'none';  
143 - }, 500);  
144 - }  
145 - if (addHideButton.value == 5) {  
146 - setTimeout(() => {  
147 - let getDom3 = document.getElementById('3') as HTMLElement;  
148 - getDom3.style.display = 'none';  
149 - let getDom51 = document.getElementById('1') as HTMLElement;  
150 - getDom51.style.display = 'none';  
151 - let getDom52 = document.getElementById('2') as HTMLElement;  
152 - getDom52.style.display = 'none';  
153 - }, 500);  
154 - }  
155 - if (addHideButton.value == 6) {  
156 - setTimeout(() => {  
157 - let getDom4 = document.getElementById('4') as HTMLElement;  
158 - getDom4.style.display = 'none';  
159 - let getDom61 = document.getElementById('1') as HTMLElement;  
160 - getDom61.style.display = 'none';  
161 - let getDom62 = document.getElementById('2') as HTMLElement;  
162 - getDom62.style.display = 'none';  
163 - let getDom63 = document.getElementById('3') as HTMLElement;  
164 - getDom63.style.display = 'none';  
165 - }, 500);  
166 - }  
167 - if (addHideButton.value == 7) {  
168 - setTimeout(() => {  
169 - let getDom7 = document.getElementById('5') as HTMLElement;  
170 - getDom7.style.display = 'none';  
171 - let getDom71 = document.getElementById('1') as HTMLElement;  
172 - getDom71.style.display = 'none';  
173 - let getDom72 = document.getElementById('2') as HTMLElement;  
174 - getDom72.style.display = 'none';  
175 - let getDom73 = document.getElementById('3') as HTMLElement;  
176 - getDom73.style.display = 'none';  
177 - let getDom74 = document.getElementById('4') as HTMLElement;  
178 - getDom74.style.display = 'none';  
179 - }, 500);  
180 - }  
181 -  
182 - appendSchemaByField(  
183 - {  
184 - field: `kong${n.value}`,  
185 - label: `执行条件${n.value + 1 + `.........`}`,  
186 - component: 'Slider',  
187 - colProps: { span: 24 },  
188 - },  
189 - ''  
190 - );  
191 - appendSchemaByField(  
192 - {  
193 - field: `status${n.value}`,  
194 - label: '',  
195 - component: 'Select',  
196 - componentProps: {  
197 - placeholder: '设备状态',  
198 - options: [  
199 - { label: '设备触发', value: 'DEVICE_STATUS' },  
200 - { label: '时间范围', value: 'TIME_ALL' },  
201 - ],  
202 - },  
203 - colProps: { span: 12 },  
204 - },  
205 - ''  
206 - );  
207 - appendSchemaByField(  
208 - {  
209 - field: `deviceId${n.value}`,  
210 - label: '',  
211 - component: 'Select',  
212 - componentProps: {  
213 - placeholder: '请选择设备',  
214 - },  
215 - ifShow: ({ values }) => !isTimeAll(Reflect.get(values, 'status')),  
216 - colProps: {  
217 - span: 12,  
218 - },  
219 - },  
220 - ''  
221 - );  
222 - appendSchemaByField(  
223 - {  
224 - field: `createTime${n.value}`,  
225 - label: '',  
226 - component: 'DatePicker',  
227 - componentProps: {  
228 - placeholder: '请选择起始时间',  
229 - },  
230 - colProps: {  
231 - span: 12,  
232 - },  
233 - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'status')),  
234 - },  
235 - ''  
236 - );  
237 - appendSchemaByField(  
238 - {  
239 - field: `updateTime${n.value}`,  
240 - label: '',  
241 - component: 'DatePicker',  
242 - componentProps: {  
243 - placeholder: '请选择结束时间',  
244 - },  
245 - colProps: {  
246 - span: 12,  
247 - },  
248 - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'status')),  
249 - },  
250 - ''  
251 - );  
252 - appendSchemaByField(  
253 - {  
254 - field: `property${n.value}`,  
255 - label: '',  
256 - component: 'Select',  
257 - componentProps: {  
258 - placeholder: '请选择或者输入属性',  
259 - options: [  
260 - { label: 'shidu', value: 'SHINDU' },  
261 - { label: 'wendu', value: 'WENDU' },  
262 - ],  
263 - },  
264 - ifShow: ({ values }) => !isTimeAll(Reflect.get(values, 'status')),  
265 - colProps: { span: 12 },  
266 - },  
267 - ''  
268 - );  
269 - appendSchemaByField(  
270 - {  
271 - field: `wu${n.value}`,  
272 - label: '',  
273 - component: 'Input',  
274 - componentProps: {  
275 - placeholder: '无',  
276 - style: {  
277 - visibility: 'hidden',  
278 - },  
279 - },  
280 - colProps: { span: 12 },  
281 - },  
282 - ''  
283 - );  
284 - appendSchemaByField(  
285 - {  
286 - field: `compare${n.value}`,  
287 - label: '',  
288 - component: 'Select',  
289 - componentProps: {  
290 - placeholder: '',  
291 - options: [  
292 - { label: '=', value: '0' },  
293 - { label: '<', value: '1' },  
294 - { label: '>', value: '2' },  
295 - { label: '<=', value: '3' },  
296 - { label: '>=', value: '4' },  
297 - ],  
298 - },  
299 - ifShow: ({ values }) =>  
300 - isShiDu(Reflect.get(values, 'property')) && !isTimeAll(Reflect.get(values, 'status')),  
301 - colProps: { span: 12 },  
302 - },  
303 - ''  
304 - );  
305 - appendSchemaByField(  
306 - {  
307 - field: `value${n.value}`,  
308 - component: 'Input',  
309 - label: '',  
310 - componentProps: {  
311 - placeholder: '请输入比较值',  
312 - },  
313 - ifShow: ({ values }) =>  
314 - isShiDu(Reflect.get(values, 'property')) && !isTimeAll(Reflect.get(values, 'status')),  
315 - colProps: {  
316 - span: 12,  
317 - },  
318 - },  
319 - ''  
320 - );  
321 -  
322 - appendSchemaByField(  
323 - {  
324 - field: `compareWendu${n.value}`,  
325 - label: '',  
326 - component: 'Select',  
327 - componentProps: {  
328 - placeholder: '',  
329 - options: [  
330 - { label: '=', value: '0' },  
331 - { label: '<', value: '1' },  
332 - { label: '>', value: '2' },  
333 - { label: '<=', value: '3' },  
334 - { label: '>=', value: '4' },  
335 - ],  
336 - },  
337 - ifShow: ({ values }) =>  
338 - isShiDu(Reflect.get(values, 'property')) && !isTimeAll(Reflect.get(values, 'status')),  
339 - colProps: { span: 12 },  
340 - },  
341 - ''  
342 - );  
343 - appendSchemaByField(  
344 - {  
345 - field: `valueWendu${n.value}`,  
346 - component: 'Input',  
347 - label: '',  
348 - componentProps: {  
349 - placeholder: '请输入比较值',  
350 - },  
351 - ifShow: ({ values }) =>  
352 - isShiDu(Reflect.get(values, 'property')) && !isTimeAll(Reflect.get(values, 'status')),  
353 - colProps: {  
354 - span: 12,  
355 - },  
356 - },  
357 - ''  
358 - );  
359 -  
360 - appendSchemaByField(  
361 - {  
362 - field: `${n.value}`,  
363 - component: 'Input',  
364 - label: ' ',  
365 - colProps: {  
366 - span: 12,  
367 - },  
368 - slot: 'add',  
369 - },  
370 - ''  
371 - );  
372 - n.value++;  
373 - }  
374 - function del(field) {  
375 - addHideButton.value--;  
376 - if (addHideButton.value == 2) {  
377 - setTimeout(() => {  
378 - let getDom1 = document.getElementById('1') as HTMLElement;  
379 - getDom1.style.display = 'flex';  
380 - }, 500);  
381 - }  
382 - if (addHideButton.value == 3) {  
383 - setTimeout(() => {  
384 - let getDom2 = document.getElementById('2') as HTMLElement;  
385 - getDom2.style.display = 'flex';  
386 - let getDom21 = document.getElementById('1') as HTMLElement;  
387 - getDom21.style.display = 'none';  
388 - }, 500);  
389 - }  
390 - if (addHideButton.value == 4) {  
391 - setTimeout(() => {  
392 - let getDom3 = document.getElementById('3') as HTMLElement;  
393 - getDom3.style.display = 'flex';  
394 - let getDom31 = document.getElementById('1') as HTMLElement;  
395 - getDom31.style.display = 'none';  
396 - let getDom32 = document.getElementById('2') as HTMLElement;  
397 - getDom32.style.display = 'none';  
398 - }, 500);  
399 - }  
400 - if (addHideButton.value == 5) {  
401 - setTimeout(() => {  
402 - let getDom4 = document.getElementById('4') as HTMLElement;  
403 - getDom4.style.display = 'flex';  
404 - let getDom41 = document.getElementById('1') as HTMLElement;  
405 - getDom41.style.display = 'none';  
406 - let getDom42 = document.getElementById('2') as HTMLElement;  
407 - getDom42.style.display = 'none';  
408 - let getDom43 = document.getElementById('3') as HTMLElement;  
409 - getDom43.style.display = 'none';  
410 - }, 500);  
411 - }  
412 - if (addHideButton.value == 6) {  
413 - setTimeout(() => {  
414 - let getDom5 = document.getElementById('5') as HTMLElement;  
415 - getDom5.style.display = 'flex';  
416 - let getDom51 = document.getElementById('1') as HTMLElement;  
417 - getDom51.style.display = 'none';  
418 - let getDom52 = document.getElementById('2') as HTMLElement;  
419 - getDom52.style.display = 'none';  
420 - let getDom53 = document.getElementById('3') as HTMLElement;  
421 - getDom53.style.display = 'none';  
422 - let getDom54 = document.getElementById('4') as HTMLElement;  
423 - getDom54.style.display = 'none';  
424 - }, 500);  
425 - }  
426 - if (addHideButton.value == 7) {  
427 - setTimeout(() => {  
428 - let getDom7 = document.getElementById('6') as HTMLElement;  
429 - getDom7.style.display = 'flex';  
430 - let getDom71 = document.getElementById('1') as HTMLElement;  
431 - getDom71.style.display = 'none';  
432 - let getDom72 = document.getElementById('2') as HTMLElement;  
433 - getDom72.style.display = 'none';  
434 - let getDom73 = document.getElementById('3') as HTMLElement;  
435 - getDom73.style.display = 'none';  
436 - let getDom74 = document.getElementById('4') as HTMLElement;  
437 - getDom74.style.display = 'none';  
438 - let getDom75 = document.getElementById('5') as HTMLElement;  
439 - getDom75.style.display = 'none';  
440 - }, 500);  
441 - }  
442 - removeSchemaByFiled([  
443 - `kong${field}`,  
444 - `status${field}`,  
445 - `deviceId${field}`,  
446 - `createTime${field}`,  
447 - `updateTime${field}`,  
448 - `property${field}`,  
449 - `wu${field}`,  
450 - `compare${field}`,  
451 - `value${field}`,  
452 - `compareWendu${field}`,  
453 - `valueWendu${field}`,  
454 - `${field}`,  
455 - ]);  
456 - n.value--;  
457 - }  
458 return { 69 return {
459 - addHideButton,  
460 - editSelectDevice,  
461 clearSelectDevice, 70 clearSelectDevice,
462 - setFieldsFormValue, 71 + editSelectDevice,
  72 + getFieldsValueFunc,
463 registerCondition, 73 registerCondition,
464 - add,  
465 - del,  
466 - getAllFields,  
467 - funcResetFields,  
468 }; 74 };
469 }, 75 },
470 }); 76 });
@@ -7,29 +7,7 @@ @@ -7,29 +7,7 @@
7 :showSubmitButton="false" 7 :showSubmitButton="false"
8 :emptySpan="10" 8 :emptySpan="10"
9 @register="registerAction" 9 @register="registerAction"
10 - >  
11 - <template #add="{ field }">  
12 - <Button  
13 - style="margin-left: -99px; margin-top: 5px; display: inline-block"  
14 - v-if="Number(field) === 0"  
15 - :style="addHideButton > 1 ? 'display:none' : 'display:inline-block'"  
16 - @click="add"  
17 - type="primary"  
18 - >+新增执行动作</Button  
19 - >  
20 - <br />  
21 - <Button  
22 - style="margin-left: -98px; margin-top: -5px"  
23 - v-if="field > 0"  
24 - @click="add"  
25 - type="primary"  
26 - >+新增执行动作</Button  
27 - >  
28 - <Button style="margin-left: 10px" v-if="field > 0" @click="del(field)" type="primary"  
29 - >删除</Button  
30 - >  
31 - </template>  
32 - </BasicForm> 10 + />
33 </div> 11 </div>
34 </CollapseContainer> 12 </CollapseContainer>
35 </template> 13 </template>
@@ -38,40 +16,27 @@ @@ -38,40 +16,27 @@
38 import { CollapseContainer } from '/@/components/Container/index'; 16 import { CollapseContainer } from '/@/components/Container/index';
39 import { BasicForm, useForm } from '/@/components/Form/index'; 17 import { BasicForm, useForm } from '/@/components/Form/index';
40 import { Input } from 'ant-design-vue'; 18 import { Input } from 'ant-design-vue';
41 - import { Button } from '/@/components/Button';  
42 - import { useActionDrawerSchema, isMsg, isScene } from '../config.d'; 19 + import { useActionDrawerSchema } from '../config';
43 import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi'; 20 import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi';
44 21
45 export default defineComponent({ 22 export default defineComponent({
46 - components: { CollapseContainer, BasicForm, [Input.name]: Input, Button },  
47 - // eslint-disable-next-line vue/require-prop-types 23 + components: { CollapseContainer, BasicForm, [Input.name]: Input },
48 props: ['deviceInfo2'], 24 props: ['deviceInfo2'],
49 - emits: ['eDoactionGetAddPushValueData'],  
50 - setup(props, { emit }) {  
51 - const addHideButton = ref(1);  
52 - const getAddPushValueData: any = ref([]);  
53 25
54 - const [  
55 - registerAction,  
56 - {  
57 - setFieldsValue,  
58 - resetFields,  
59 - updateSchema,  
60 - appendSchemaByField,  
61 - getFieldsValue,  
62 - removeSchemaByFiled,  
63 - },  
64 - ] = useForm({ 26 + setup(props) {
  27 + const fieldValue: any = ref({});
  28 + const [registerAction, { getFieldsValue, resetFields, updateSchema }] = useForm({
65 labelWidth: 100, 29 labelWidth: 100,
66 schemas: useActionDrawerSchema, 30 schemas: useActionDrawerSchema,
67 actionColOptions: { span: 24 }, 31 actionColOptions: { span: 24 },
68 }); 32 });
69 - let isJudge = ref(1);  
70 - if (isJudge.value == 1) {  
71 - setTimeout(() => {  
72 - resetFields();  
73 - }, 1000);  
74 - } 33 + const getFieldsValueFunc = () => {
  34 + fieldValue.value = getFieldsValue();
  35 + return fieldValue.value;
  36 + };
  37 + const resetFieldsValueFunc = () => {
  38 + resetFields();
  39 + };
75 watch( 40 watch(
76 () => props.deviceInfo2, 41 () => props.deviceInfo2,
77 async (newV) => { 42 async (newV) => {
@@ -87,20 +52,6 @@ @@ -87,20 +52,6 @@
87 }); 52 });
88 } 53 }
89 ); 54 );
90 - //回显数据  
91 - const setFieldsFormValue = (v) => {  
92 - setFieldsValue(v);  
93 - };  
94 - const getAllFields = (getV: any) => {  
95 - getV = {  
96 - data: getFieldsValue(),  
97 - count: 1,  
98 - };  
99 - return getV;  
100 - };  
101 - function funcResetFields() {  
102 - resetFields();  
103 - }  
104 //新增清空设备选择 55 //新增清空设备选择
105 const clearSelectDevice = () => { 56 const clearSelectDevice = () => {
106 updateSchema({ 57 updateSchema({
@@ -118,319 +69,12 @@ @@ -118,319 +69,12 @@
118 }, 69 },
119 }); 70 });
120 }; 71 };
121 - const n = ref(1);  
122 - function add() {  
123 - const pushValue = getFieldsValue();  
124 -  
125 - getAddPushValueData.value.push(pushValue);  
126 - emit('eDoactionGetAddPushValueData', {  
127 - data: getAddPushValueData.value,  
128 - count: 2,  
129 - });  
130 - addHideButton.value++;  
131 - if (addHideButton.value == 3) {  
132 - setTimeout(() => {  
133 - let getDom1 = document.getElementById('1') as HTMLElement;  
134 - getDom1.style.display = 'none';  
135 - }, 500);  
136 - }  
137 - if (addHideButton.value == 4) {  
138 - setTimeout(() => {  
139 - let getDom2 = document.getElementById('2') as HTMLElement;  
140 - getDom2.style.display = 'none';  
141 - let getDom41 = document.getElementById('1') as HTMLElement;  
142 - getDom41.style.display = 'none';  
143 - }, 500);  
144 - }  
145 - if (addHideButton.value == 5) {  
146 - setTimeout(() => {  
147 - let getDom3 = document.getElementById('3') as HTMLElement;  
148 - getDom3.style.display = 'none';  
149 - let getDom51 = document.getElementById('1') as HTMLElement;  
150 - getDom51.style.display = 'none';  
151 - let getDom52 = document.getElementById('2') as HTMLElement;  
152 - getDom52.style.display = 'none';  
153 - }, 500);  
154 - }  
155 - if (addHideButton.value == 6) {  
156 - setTimeout(() => {  
157 - let getDom4 = document.getElementById('4') as HTMLElement;  
158 - getDom4.style.display = 'none';  
159 - let getDom61 = document.getElementById('1') as HTMLElement;  
160 - getDom61.style.display = 'none';  
161 - let getDom62 = document.getElementById('2') as HTMLElement;  
162 - getDom62.style.display = 'none';  
163 - let getDom63 = document.getElementById('3') as HTMLElement;  
164 - getDom63.style.display = 'none';  
165 - }, 500);  
166 - }  
167 - if (addHideButton.value == 7) {  
168 - setTimeout(() => {  
169 - let getDom7 = document.getElementById('5') as HTMLElement;  
170 - getDom7.style.display = 'none';  
171 - let getDom71 = document.getElementById('1') as HTMLElement;  
172 - getDom71.style.display = 'none';  
173 - let getDom72 = document.getElementById('2') as HTMLElement;  
174 - getDom72.style.display = 'none';  
175 - let getDom73 = document.getElementById('3') as HTMLElement;  
176 - getDom73.style.display = 'none';  
177 - let getDom74 = document.getElementById('4') as HTMLElement;  
178 - getDom74.style.display = 'none';  
179 - }, 500);  
180 - }  
181 -  
182 - appendSchemaByField(  
183 - {  
184 - field: `kong${n.value}`,  
185 - label: `执行动作${n.value + 1 + `.......`}`,  
186 - component: 'Slider',  
187 - colProps: { span: 24 },  
188 - },  
189 - ''  
190 - );  
191 - appendSchemaByField(  
192 - {  
193 - field: `outTarget${n.value}`,  
194 - label: '',  
195 - component: 'Select',  
196 - componentProps: {  
197 - placeholder: '设备输出',  
198 - options: [  
199 - { label: '设备输出', value: 'DEVICE_OUT' },  
200 - { label: '消息通知', value: 'MSG_NOTIFY' },  
201 - { label: '场景联动', value: 'SCENE_ACT' },  
202 - ],  
203 - },  
204 - colProps: { span: 12 },  
205 - },  
206 - ''  
207 - );  
208 - appendSchemaByField(  
209 - {  
210 - field: `deviceId${n.value}`,  
211 - label: '',  
212 - component: 'Select',  
213 - componentProps: {  
214 - placeholder: '请选择设备',  
215 - },  
216 - ifShow: ({ values }) =>  
217 - !isScene(Reflect.get(values, 'outTarget')) &&  
218 - !isMsg(Reflect.get(values, 'outTarget')),  
219 - colProps: {  
220 - span: 12,  
221 - },  
222 - },  
223 - ''  
224 - );  
225 - appendSchemaByField(  
226 - {  
227 - field: `command${n.value}`,  
228 - component: 'Input',  
229 - label: '',  
230 - componentProps: {  
231 - placeholder: '请输入下发指定',  
232 - },  
233 - ifShow: ({ values }) =>  
234 - !isScene(Reflect.get(values, 'outTarget')) &&  
235 - !isMsg(Reflect.get(values, 'outTarget')),  
236 - colProps: {  
237 - span: 12,  
238 - },  
239 - },  
240 - ''  
241 - );  
242 - appendSchemaByField(  
243 - {  
244 - field: `wu1${n.value}`,  
245 - label: '',  
246 - component: 'Input',  
247 - componentProps: {  
248 - placeholder: '无',  
249 - style: {  
250 - visibility: 'hidden',  
251 - },  
252 - },  
253 - colProps: { span: 12 },  
254 - },  
255 - ''  
256 - );  
257 - appendSchemaByField(  
258 - {  
259 - field: `wu2${n.value}`,  
260 - component: 'Input',  
261 - label: '',  
262 - componentProps: {  
263 - placeholder: '暂不实现',  
264 - },  
265 - colProps: {  
266 - span: 12,  
267 - },  
268 - ifShow: ({ values }) => isMsg(Reflect.get(values, 'outTarget')),  
269 - },  
270 - ''  
271 - );  
272 - appendSchemaByField(  
273 - {  
274 - field: 'wu3',  
275 - label: '',  
276 - component: 'Input',  
277 - componentProps: {  
278 - placeholder: '无',  
279 - style: {  
280 - visibility: 'hidden',  
281 - },  
282 - },  
283 - colProps: { span: 12 },  
284 - ifShow: ({ values }) => isMsg(Reflect.get(values, 'outTarget')),  
285 - },  
286 - ''  
287 - );  
288 - appendSchemaByField(  
289 - {  
290 - field: `sceneLinkageId${n.value}`,  
291 - label: '',  
292 - component: 'ApiSelect',  
293 - colProps: {  
294 - span: 12,  
295 - },  
296 - componentProps: {  
297 - placeholder: '请选择场景触发器',  
298 - options: [  
299 - { label: '场景触发器1', value: '1' },  
300 - { label: '场景触发器2', value: '2' },  
301 - { label: '场景触发器3', value: '3' },  
302 - { label: '场景触发器4', value: '4' },  
303 - ],  
304 - },  
305 - ifShow: ({ values }) => isScene(Reflect.get(values, 'outTarget')),  
306 - },  
307 - ''  
308 - );  
309 - appendSchemaByField(  
310 - {  
311 - field: 'wu4',  
312 - label: '',  
313 - component: 'Input',  
314 - componentProps: {  
315 - placeholder: '无',  
316 - style: {  
317 - visibility: 'hidden',  
318 - },  
319 - },  
320 - colProps: { span: 12 },  
321 - ifShow: ({ values }) => isScene(Reflect.get(values, 'outTarget')),  
322 - },  
323 - ''  
324 - );  
325 -  
326 - appendSchemaByField(  
327 - {  
328 - field: `${n.value}`,  
329 - component: 'Input',  
330 - label: ' ',  
331 - colProps: {  
332 - span: 12,  
333 - },  
334 - slot: 'add',  
335 - },  
336 - ''  
337 - );  
338 - n.value++;  
339 - }  
340 -  
341 - function del(field) {  
342 - addHideButton.value--;  
343 - if (addHideButton.value == 2) {  
344 - setTimeout(() => {  
345 - let getDom1 = document.getElementById('1') as HTMLElement;  
346 - getDom1.style.display = 'flex';  
347 - }, 500);  
348 - }  
349 - if (addHideButton.value == 3) {  
350 - setTimeout(() => {  
351 - let getDom2 = document.getElementById('2') as HTMLElement;  
352 - getDom2.style.display = 'flex';  
353 - let getDom21 = document.getElementById('1') as HTMLElement;  
354 - getDom21.style.display = 'none';  
355 - }, 500);  
356 - }  
357 - if (addHideButton.value == 4) {  
358 - setTimeout(() => {  
359 - let getDom3 = document.getElementById('3') as HTMLElement;  
360 - getDom3.style.display = 'flex';  
361 - let getDom31 = document.getElementById('1') as HTMLElement;  
362 - getDom31.style.display = 'none';  
363 - let getDom32 = document.getElementById('2') as HTMLElement;  
364 - getDom32.style.display = 'none';  
365 - }, 500);  
366 - }  
367 - if (addHideButton.value == 5) {  
368 - setTimeout(() => {  
369 - let getDom4 = document.getElementById('4') as HTMLElement;  
370 - getDom4.style.display = 'flex';  
371 - let getDom41 = document.getElementById('1') as HTMLElement;  
372 - getDom41.style.display = 'none';  
373 - let getDom42 = document.getElementById('2') as HTMLElement;  
374 - getDom42.style.display = 'none';  
375 - let getDom43 = document.getElementById('3') as HTMLElement;  
376 - getDom43.style.display = 'none';  
377 - }, 500);  
378 - }  
379 - if (addHideButton.value == 6) {  
380 - setTimeout(() => {  
381 - let getDom5 = document.getElementById('5') as HTMLElement;  
382 - getDom5.style.display = 'flex';  
383 - let getDom51 = document.getElementById('1') as HTMLElement;  
384 - getDom51.style.display = 'none';  
385 - let getDom52 = document.getElementById('2') as HTMLElement;  
386 - getDom52.style.display = 'none';  
387 - let getDom53 = document.getElementById('3') as HTMLElement;  
388 - getDom53.style.display = 'none';  
389 - let getDom54 = document.getElementById('4') as HTMLElement;  
390 - getDom54.style.display = 'none';  
391 - }, 500);  
392 - }  
393 - if (addHideButton.value == 7) {  
394 - setTimeout(() => {  
395 - let getDom7 = document.getElementById('6') as HTMLElement;  
396 - getDom7.style.display = 'flex';  
397 - let getDom71 = document.getElementById('1') as HTMLElement;  
398 - getDom71.style.display = 'none';  
399 - let getDom72 = document.getElementById('2') as HTMLElement;  
400 - getDom72.style.display = 'none';  
401 - let getDom73 = document.getElementById('3') as HTMLElement;  
402 - getDom73.style.display = 'none';  
403 - let getDom74 = document.getElementById('4') as HTMLElement;  
404 - getDom74.style.display = 'none';  
405 - let getDom75 = document.getElementById('5') as HTMLElement;  
406 - getDom75.style.display = 'none';  
407 - }, 500);  
408 - }  
409 - removeSchemaByFiled([  
410 - `kong${field}`,  
411 - `outTarget${field}`,  
412 - `deviceId${field}`,  
413 - `command${field}`,  
414 - `wu1${field}`,  
415 - `wu2${field}`,  
416 - `wu3${field}`,  
417 - `sceneLinkageId${field}`,  
418 - `wu4${field}`,  
419 - `${field}`,  
420 - ]);  
421 - n.value--;  
422 - }  
423 -  
424 return { 72 return {
425 - addHideButton,  
426 - editSelectDevice,  
427 clearSelectDevice, 73 clearSelectDevice,
428 - setFieldsFormValue, 74 + editSelectDevice,
  75 + resetFieldsValueFunc,
  76 + getFieldsValueFunc,
429 registerAction, 77 registerAction,
430 - add,  
431 - del,  
432 - getAllFields,  
433 - funcResetFields,  
434 }; 78 };
435 }, 79 },
436 }); 80 });
1 -/* eslint-disable vue/require-prop-types */  
2 <template> 1 <template>
3 <div> 2 <div>
4 <CollapseContainer title="触发器" style="background-color: #eeeeee"> 3 <CollapseContainer title="触发器" style="background-color: #eeeeee">
5 - <div style="position: relative"> 4 + <div>
6 <BasicForm 5 <BasicForm
7 :labelWidth="100" 6 :labelWidth="100"
8 :showResetButton="false" 7 :showResetButton="false"
9 :showSubmitButton="false" 8 :showSubmitButton="false"
10 :emptySpan="10" 9 :emptySpan="10"
11 @register="registerTrigger" 10 @register="registerTrigger"
12 - >  
13 - <template #add="{ field }">  
14 - <Button  
15 - style="margin-left: -99px; margin-top: 0px; display: inline-block"  
16 - :style="addHideButton > 1 ? 'display:none' : 'display:inline-block'"  
17 - v-if="Number(field) === 0"  
18 - @click="add"  
19 - type="primary"  
20 - >+新增触发器</Button  
21 - >  
22 - <Button  
23 - v-if="Number(field) > 0"  
24 - style="margin-left: 5px; margin-top: 35px"  
25 - @click="add"  
26 - type="primary"  
27 - >+新增触发器</Button  
28 - >  
29 - <Button  
30 - v-if="Number(field) > 0"  
31 - style="margin-left: 10px"  
32 - @click="del(field)"  
33 - type="primary"  
34 - >删除</Button  
35 - >  
36 - </template>  
37 - </BasicForm> 11 + />
38 </div> 12 </div>
39 </CollapseContainer> 13 </CollapseContainer>
40 </div> 14 </div>
@@ -44,52 +18,29 @@ @@ -44,52 +18,29 @@
44 import { CollapseContainer } from '/@/components/Container/index'; 18 import { CollapseContainer } from '/@/components/Container/index';
45 import { BasicForm, useForm } from '/@/components/Form/index'; 19 import { BasicForm, useForm } from '/@/components/Form/index';
46 import { Input } from 'ant-design-vue'; 20 import { Input } from 'ant-design-vue';
47 - import { Button } from '/@/components/Button';  
48 - import {  
49 - useTriggerDrawerSchema,  
50 - isTime,  
51 - isUpAndDown,  
52 - isWenDu,  
53 - isScene,  
54 - isHand,  
55 - } from '../config.d'; 21 + import { useTriggerDrawerSchema } from '../config';
56 import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi'; 22 import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi';
57 23
58 export default defineComponent({ 24 export default defineComponent({
59 - components: { CollapseContainer, BasicForm, [Input.name]: Input, Button },  
60 - // eslint-disable-next-line vue/require-prop-types 25 + components: { CollapseContainer, BasicForm, [Input.name]: Input },
61 props: ['deviceInfo'], 26 props: ['deviceInfo'],
62 - emits: ['eGetAddPushValueData'],  
63 - setup(props, { emit }) {  
64 - const getPushValueData: any = ref([]);  
65 - const addHideButton = ref(1);  
66 - const addHideButtonTemp: any = ref(null);  
67 - const getAddPushValueData: any = ref([]);  
68 - const [  
69 - registerTrigger,  
70 - {  
71 - setFieldsValue,  
72 - resetFields,  
73 - appendSchemaByField,  
74 - removeSchemaByFiled,  
75 - getFieldsValue,  
76 - updateSchema,  
77 - },  
78 - ] = useForm({ 27 + setup(props) {
  28 + const fieldValue: any = ref({});
  29 + const [registerTrigger, { getFieldsValue, updateSchema }] = useForm({
79 labelWidth: 100, 30 labelWidth: 100,
80 schemas: useTriggerDrawerSchema, 31 schemas: useTriggerDrawerSchema,
81 actionColOptions: { span: 24 }, 32 actionColOptions: { span: 24 },
82 }); 33 });
83 - let isJudge = ref(1);  
84 - if (isJudge.value == 1) {  
85 - setTimeout(() => {  
86 - resetFields();  
87 - }, 1000);  
88 - } 34 + const getFieldsValueFunc = () => {
  35 + fieldValue.value = getFieldsValue();
  36 + return fieldValue.value;
  37 + };
89 watch( 38 watch(
90 () => props.deviceInfo, 39 () => props.deviceInfo,
91 async (newV) => { 40 async (newV) => {
  41 + console.log(newV);
92 const options = await screenLinkPageByDeptIdGetDevice({ organizationId: newV }); 42 const options = await screenLinkPageByDeptIdGetDevice({ organizationId: newV });
  43 + console.log(options);
93 options.items.forEach((v) => { 44 options.items.forEach((v) => {
94 return (v.value = v.id), (v.label = v.name); 45 return (v.value = v.id), (v.label = v.name);
95 }); 46 });
@@ -101,10 +52,6 @@ @@ -101,10 +52,6 @@
101 }); 52 });
102 } 53 }
103 ); 54 );
104 - //回显数据  
105 - const setFieldsFormValue = (v) => {  
106 - setFieldsValue(v);  
107 - };  
108 //新增清空设备选择 55 //新增清空设备选择
109 const clearSelectDevice = () => { 56 const clearSelectDevice = () => {
110 updateSchema({ 57 updateSchema({
@@ -122,440 +69,11 @@ @@ -122,440 +69,11 @@
122 }, 69 },
123 }); 70 });
124 }; 71 };
125 - const clearGetPushValueDataEmpty = () => {  
126 - getPushValueData.value.length = 0;  
127 - };  
128 -  
129 - const getAllFields = (getV: any) => {  
130 - getV = {  
131 - data: getFieldsValue(),  
132 - count: 1,  
133 - };  
134 - return getV;  
135 - };  
136 - async function funcResetFields() {  
137 - await resetFields();  
138 - }  
139 - const addString: any = ref('tiggerEvent1') || ref('tiggerEvent2') || ref('tiggerEvent3');  
140 -  
141 - const n = ref(1);  
142 - const clearAddTriggerStatusFunc = () => {  
143 - // addHideButton.value = 1;  
144 - };  
145 - const addClearGetAddPushValueDataArrayIsEmpty = () => {  
146 - getAddPushValueData.value = [];  
147 - };  
148 - function add() {  
149 - const pushValue = getFieldsValue();  
150 - getAddPushValueData.value.push(pushValue);  
151 - emit('eGetAddPushValueData', {  
152 - data: getAddPushValueData.value,  
153 - count: 2,  
154 - });  
155 - addHideButton.value++;  
156 - addHideButtonTemp.value = addHideButton.value;  
157 - addHideButtonTemp.value -= 2;  
158 - if (addHideButton.value == 3) {  
159 - setTimeout(() => {  
160 - let getDom1 = document.getElementById('1') as HTMLElement;  
161 - getDom1.style.display = 'none';  
162 - }, 500);  
163 - }  
164 - if (addHideButton.value == 4) {  
165 - setTimeout(() => {  
166 - let getDom2 = document.getElementById('2') as HTMLElement;  
167 - getDom2.style.display = 'none';  
168 - let getDom41 = document.getElementById('1') as HTMLElement;  
169 - getDom41.style.display = 'none';  
170 - }, 500);  
171 - }  
172 - if (addHideButton.value == 5) {  
173 - setTimeout(() => {  
174 - let getDom3 = document.getElementById('3') as HTMLElement;  
175 - getDom3.style.display = 'none';  
176 - let getDom51 = document.getElementById('1') as HTMLElement;  
177 - getDom51.style.display = 'none';  
178 - let getDom52 = document.getElementById('2') as HTMLElement;  
179 - getDom52.style.display = 'none';  
180 - }, 500);  
181 - }  
182 - if (addHideButton.value == 6) {  
183 - setTimeout(() => {  
184 - let getDom4 = document.getElementById('4') as HTMLElement;  
185 - getDom4.style.display = 'none';  
186 - let getDom61 = document.getElementById('1') as HTMLElement;  
187 - getDom61.style.display = 'none';  
188 - let getDom62 = document.getElementById('2') as HTMLElement;  
189 - getDom62.style.display = 'none';  
190 - let getDom63 = document.getElementById('3') as HTMLElement;  
191 - getDom63.style.display = 'none';  
192 - }, 500);  
193 - }  
194 - if (addHideButton.value == 7) {  
195 - setTimeout(() => {  
196 - let getDom7 = document.getElementById('5') as HTMLElement;  
197 - getDom7.style.display = 'none';  
198 - let getDom71 = document.getElementById('1') as HTMLElement;  
199 - getDom71.style.display = 'none';  
200 - let getDom72 = document.getElementById('2') as HTMLElement;  
201 - getDom72.style.display = 'none';  
202 - let getDom73 = document.getElementById('3') as HTMLElement;  
203 - getDom73.style.display = 'none';  
204 - let getDom74 = document.getElementById('4') as HTMLElement;  
205 - getDom74.style.display = 'none';  
206 - }, 500);  
207 - }  
208 - if (addHideButton.value == 8) {  
209 - setTimeout(() => {  
210 - let getDom8 = document.getElementById('6') as HTMLElement;  
211 - getDom8.style.display = 'none';  
212 - let getDom81 = document.getElementById('1') as HTMLElement;  
213 - getDom81.style.display = 'none';  
214 - let getDom82 = document.getElementById('2') as HTMLElement;  
215 - getDom82.style.display = 'none';  
216 - let getDom83 = document.getElementById('3') as HTMLElement;  
217 - getDom83.style.display = 'none';  
218 - let getDom84 = document.getElementById('4') as HTMLElement;  
219 - getDom84.style.display = 'none';  
220 - let getDom85 = document.getElementById('5') as HTMLElement;  
221 - getDom85.style.display = 'none';  
222 - }, 500);  
223 - }  
224 -  
225 - appendSchemaByField(  
226 - {  
227 - field: `kong${n.value}`,  
228 - label: `触发器${n.value + 1 + `...........`}`,  
229 - component: 'Slider',  
230 - colProps: { span: 24 },  
231 - },  
232 - ''  
233 - );  
234 - appendSchemaByField(  
235 - {  
236 - field: `tiggerEvent${n.value}`,  
237 - label: '',  
238 - component: 'Select',  
239 - componentProps: {  
240 - placeholder: '设备触发',  
241 - options: [  
242 - { label: '设备触发', value: 'DEVICE_ACT' },  
243 - { label: '定时触发', value: 'TIME_ACT' },  
244 - { label: '场景触发', value: 'SCENE_ACT' },  
245 - { label: '手动触发', value: 'HAND_ACT' },  
246 - ],  
247 - },  
248 - colProps: { span: 12 },  
249 - },  
250 - ''  
251 - );  
252 - appendSchemaByField(  
253 - {  
254 - field: `deviceId${n.value}`,  
255 - label: '',  
256 - component: 'Select',  
257 - componentProps: {  
258 - placeholder: '请选择设备',  
259 - },  
260 - ifShow: ({ values }) =>  
261 - !isTime(Reflect.get(values, addString.value)) &&  
262 - !isScene(Reflect.get(values, addString.value)) &&  
263 - !isHand(Reflect.get(values, addString.value)),  
264 - colProps: {  
265 - span: 12,  
266 - },  
267 - },  
268 - ''  
269 - );  
270 - appendSchemaByField(  
271 - {  
272 - field: `no1${n.value}`,  
273 - component: 'Input',  
274 - label: '',  
275 - componentProps: {  
276 - placeholder: '请输入Cron表达式',  
277 - },  
278 - colProps: {  
279 - span: 12,  
280 - },  
281 - ifShow: ({ values }) => isTime(Reflect.get(values, addString.value)),  
282 - },  
283 - ''  
284 - );  
285 - appendSchemaByField(  
286 - {  
287 - field: `touchWay${n.value}`,  
288 - label: '',  
289 - component: 'Select',  
290 - componentProps: {  
291 - placeholder: '属性触发',  
292 - options: [  
293 - { label: '属性触发', value: 'ATTRIBUTE_ACT' },  
294 - { label: '上下线触发', value: 'UP_DOWN_ACT' },  
295 - ],  
296 - },  
297 - ifShow: ({ values }) =>  
298 - !isTime(Reflect.get(values, addString.value)) &&  
299 - !isScene(Reflect.get(values, addString.value)) &&  
300 - !isHand(Reflect.get(values, addString.value)),  
301 - colProps: { span: 12 },  
302 - },  
303 - ''  
304 - );  
305 - appendSchemaByField(  
306 - {  
307 - field: `no2${n.value}`,  
308 - label: '',  
309 - component: 'Select',  
310 - componentProps: {  
311 - placeholder: '请选择上下线',  
312 - options: [  
313 - { label: '上下线', value: '1' },  
314 - { label: '上线', value: '2' },  
315 - { label: '下线', value: '3' },  
316 - ],  
317 - },  
318 - colProps: { span: 12 },  
319 - ifShow: ({ values }) =>  
320 - isUpAndDown(Reflect.get(values, `touchWay${n.value}`)) &&  
321 - !isTime(Reflect.get(values, addString.value)) &&  
322 - !isScene(Reflect.get(values, addString.value)) &&  
323 - !isHand(Reflect.get(values, addString.value)),  
324 - },  
325 - ''  
326 - );  
327 - appendSchemaByField(  
328 - {  
329 - field: `attributeChoose${n.value}`,  
330 - label: '',  
331 - component: 'Select',  
332 - componentProps: {  
333 - placeholder: '全部属性',  
334 - options: [  
335 - { label: '全部属性', value: 'All_ATTR' },  
336 - { label: 'wendu', value: 'WENDU' },  
337 - ],  
338 - },  
339 - colProps: { span: 12 },  
340 - ifShow: ({ values }) =>  
341 - !isTime(Reflect.get(values, addString.value)) &&  
342 - !isScene(Reflect.get(values, addString.value)) &&  
343 - !isHand(Reflect.get(values, addString.value)) &&  
344 - !isUpAndDown(Reflect.get(values, `touchWay${n.value}`)),  
345 - },  
346 - ''  
347 - );  
348 - appendSchemaByField(  
349 - {  
350 - field: `compare${n.value}`,  
351 - label: '',  
352 - component: 'Select',  
353 - componentProps: {  
354 - placeholder: '',  
355 - options: [  
356 - { label: '=', value: '0' },  
357 - { label: '<', value: '1' },  
358 - { label: '>', value: '2' },  
359 - { label: '<=', value: '3' },  
360 - { label: '>=', value: '4' },  
361 - ],  
362 - },  
363 - ifShow: ({ values }) =>  
364 - isWenDu(Reflect.get(values, 'attributeChoose')) &&  
365 - !isUpAndDown(Reflect.get(values, `touchWay${n.value}`)) &&  
366 - !isTime(Reflect.get(values, addString.value)) &&  
367 - !isScene(Reflect.get(values, addString.value)) &&  
368 - !isHand(Reflect.get(values, addString.value)),  
369 - colProps: { span: 12 },  
370 - },  
371 - ''  
372 - );  
373 - appendSchemaByField(  
374 - {  
375 - field: `value${n.value}`,  
376 - component: 'Input',  
377 - label: '',  
378 - componentProps: {  
379 - placeholder: '请输入比较值',  
380 - },  
381 - ifShow: ({ values }) =>  
382 - isWenDu(Reflect.get(values, 'attributeChoose')) &&  
383 - !isUpAndDown(Reflect.get(values, `touchWay${n.value}`)) &&  
384 - !isTime(Reflect.get(values, addString.value)) &&  
385 - !isScene(Reflect.get(values, addString.value)) &&  
386 - !isHand(Reflect.get(values, addString.value)),  
387 - colProps: {  
388 - span: 12,  
389 - },  
390 - },  
391 - ''  
392 - );  
393 - appendSchemaByField(  
394 - {  
395 - field: `sceneLinkageId${n.value}`,  
396 - label: '',  
397 - component: 'Select',  
398 - colProps: {  
399 - span: 12,  
400 - },  
401 - ifShow: ({ values }) => isScene(Reflect.get(values, addString.value)),  
402 - componentProps: {  
403 - placeholder: '请输入场景触发器',  
404 - options: [  
405 - { label: '场景触发器1', value: '1' },  
406 - { label: '场景触发器2', value: '2' },  
407 - { label: '场景触发器3', value: '3' },  
408 - ],  
409 - },  
410 - },  
411 - ''  
412 - );  
413 - appendSchemaByField(  
414 - {  
415 - field: `no3${n.value}`,  
416 - label: '',  
417 - component: 'ApiSelect',  
418 - colProps: {  
419 - span: 12,  
420 - },  
421 - componentProps: {  
422 - placeholder: '暂不实现',  
423 - },  
424 - ifShow: ({ values }) => isHand(Reflect.get(values, addString.value)),  
425 - },  
426 - ''  
427 - );  
428 - appendSchemaByField(  
429 - {  
430 - field: `${n.value}`,  
431 - component: 'Input',  
432 - label: '',  
433 - colProps: {  
434 - span: 12,  
435 - },  
436 - slot: 'add',  
437 - },  
438 - ''  
439 - );  
440 - n.value++;  
441 - }  
442 -  
443 - function del(field) {  
444 - addHideButton.value--;  
445 - if (addHideButton.value == 2) {  
446 - setTimeout(() => {  
447 - let getDom1 = document.getElementById('1') as HTMLElement;  
448 - getDom1.style.display = 'flex';  
449 - }, 500);  
450 - }  
451 - if (addHideButton.value == 3) {  
452 - setTimeout(() => {  
453 - let getDom2 = document.getElementById('2') as HTMLElement;  
454 - getDom2.style.display = 'flex';  
455 - let getDom21 = document.getElementById('1') as HTMLElement;  
456 - getDom21.style.display = 'none';  
457 - }, 500);  
458 - }  
459 - if (addHideButton.value == 4) {  
460 - setTimeout(() => {  
461 - let getDom3 = document.getElementById('3') as HTMLElement;  
462 - getDom3.style.display = 'flex';  
463 - let getDom31 = document.getElementById('1') as HTMLElement;  
464 - getDom31.style.display = 'none';  
465 - let getDom32 = document.getElementById('2') as HTMLElement;  
466 - getDom32.style.display = 'none';  
467 - }, 500);  
468 - }  
469 - if (addHideButton.value == 5) {  
470 - setTimeout(() => {  
471 - let getDom4 = document.getElementById('4') as HTMLElement;  
472 - getDom4.style.display = 'flex';  
473 - let getDom41 = document.getElementById('1') as HTMLElement;  
474 - getDom41.style.display = 'none';  
475 - let getDom42 = document.getElementById('2') as HTMLElement;  
476 - getDom42.style.display = 'none';  
477 - let getDom43 = document.getElementById('3') as HTMLElement;  
478 - getDom43.style.display = 'none';  
479 - }, 500);  
480 - }  
481 - if (addHideButton.value == 6) {  
482 - setTimeout(() => {  
483 - let getDom5 = document.getElementById('5') as HTMLElement;  
484 - getDom5.style.display = 'flex';  
485 - let getDom51 = document.getElementById('1') as HTMLElement;  
486 - getDom51.style.display = 'none';  
487 - let getDom52 = document.getElementById('2') as HTMLElement;  
488 - getDom52.style.display = 'none';  
489 - let getDom53 = document.getElementById('3') as HTMLElement;  
490 - getDom53.style.display = 'none';  
491 - let getDom54 = document.getElementById('4') as HTMLElement;  
492 - getDom54.style.display = 'none';  
493 - }, 500);  
494 - }  
495 - if (addHideButton.value == 7) {  
496 - setTimeout(() => {  
497 - let getDom7 = document.getElementById('6') as HTMLElement;  
498 - getDom7.style.display = 'flex';  
499 - let getDom71 = document.getElementById('1') as HTMLElement;  
500 - getDom71.style.display = 'none';  
501 - let getDom72 = document.getElementById('2') as HTMLElement;  
502 - getDom72.style.display = 'none';  
503 - let getDom73 = document.getElementById('3') as HTMLElement;  
504 - getDom73.style.display = 'none';  
505 - let getDom74 = document.getElementById('4') as HTMLElement;  
506 - getDom74.style.display = 'none';  
507 - let getDom75 = document.getElementById('5') as HTMLElement;  
508 - getDom75.style.display = 'none';  
509 - }, 500);  
510 - }  
511 - if (addHideButton.value == 8) {  
512 - setTimeout(() => {  
513 - let getDom8 = document.getElementById('7') as HTMLElement;  
514 - getDom8.style.display = 'flex';  
515 - let getDom81 = document.getElementById('1') as HTMLElement;  
516 - getDom81.style.display = 'none';  
517 - let getDom82 = document.getElementById('2') as HTMLElement;  
518 - getDom82.style.display = 'none';  
519 - let getDom83 = document.getElementById('3') as HTMLElement;  
520 - getDom83.style.display = 'none';  
521 - let getDom84 = document.getElementById('4') as HTMLElement;  
522 - getDom84.style.display = 'none';  
523 - let getDom85 = document.getElementById('5') as HTMLElement;  
524 - getDom85.style.display = 'none';  
525 - let getDom86 = document.getElementById('6') as HTMLElement;  
526 - getDom86.style.display = 'none';  
527 - }, 500);  
528 - }  
529 - removeSchemaByFiled([  
530 - `kong${field}`,  
531 - `tiggerEvent${field}`,  
532 - `deviceId${field}`,  
533 - `no1${field}`,  
534 - `touchWay${field}`,  
535 - `no2${field}`,  
536 - `attributeChoose${field}`,  
537 - `compare${field}`,  
538 - `value${field}`,  
539 - `sceneLinkageId${field}`,  
540 - `no3${field}`,  
541 - `${field}`,  
542 - ]);  
543 - n.value--;  
544 - }  
545 return { 72 return {
546 - addClearGetAddPushValueDataArrayIsEmpty,  
547 - clearAddTriggerStatusFunc,  
548 - addHideButtonTemp,  
549 - addHideButton,  
550 - editSelectDevice,  
551 clearSelectDevice, 73 clearSelectDevice,
552 - clearGetPushValueDataEmpty,  
553 - setFieldsFormValue, 74 + editSelectDevice,
  75 + getFieldsValueFunc,
554 registerTrigger, 76 registerTrigger,
555 - add,  
556 - del,  
557 - getAllFields,  
558 - funcResetFields,  
559 }; 77 };
560 }, 78 },
561 }); 79 });
src/views/ruleengine/scenelinkage/config.ts renamed from src/views/ruleengine/scenelinkage/config.d.ts
@@ -168,26 +168,12 @@ export const formSchema: FormSchema[] = [ @@ -168,26 +168,12 @@ export const formSchema: FormSchema[] = [
168 if (v == undefined) { 168 if (v == undefined) {
169 formModel.deviceId = undefined; 169 formModel.deviceId = undefined;
170 const { updateSchema } = formActionType; 170 const { updateSchema } = formActionType;
171 - updateSchema(  
172 - {  
173 - field: 'deviceId',  
174 - componentProps: {  
175 - options: undefined,  
176 - }, 171 + updateSchema({
  172 + field: 'deviceId',
  173 + componentProps: {
  174 + options: undefined,
177 }, 175 },
178 - {  
179 - field: 'deviceId1',  
180 - componentProps: {  
181 - options: undefined,  
182 - },  
183 - },  
184 - {  
185 - field: 'deviceId2',  
186 - componentProps: {  
187 - options: undefined,  
188 - },  
189 - }  
190 - ); 176 + });
191 } else { 177 } else {
192 getData.value = v; 178 getData.value = v;
193 } 179 }
@@ -482,6 +468,7 @@ export const useConditionDrawerSchema: FormSchema[] = [ @@ -482,6 +468,7 @@ export const useConditionDrawerSchema: FormSchema[] = [
482 { 468 {
483 field: 'createTime', 469 field: 'createTime',
484 component: 'DatePicker', 470 component: 'DatePicker',
  471 + label: '',
485 componentProps: { 472 componentProps: {
486 placeholder: '请选择起始时间', 473 placeholder: '请选择起始时间',
487 }, 474 },
@@ -493,6 +480,7 @@ export const useConditionDrawerSchema: FormSchema[] = [ @@ -493,6 +480,7 @@ export const useConditionDrawerSchema: FormSchema[] = [
493 { 480 {
494 field: 'updateTime', 481 field: 'updateTime',
495 component: 'DatePicker', 482 component: 'DatePicker',
  483 + label: '',
496 componentProps: { 484 componentProps: {
497 placeholder: '请选择结束时间', 485 placeholder: '请选择结束时间',
498 }, 486 },
  1 +export interface IAddTrigger {
  2 + id: string;
  3 + triggerEvent: string;
  4 + deviceId: string;
  5 + touchWay: string;
  6 + attributeChoose: string;
  7 + compare: string;
  8 + value: string;
  9 +}
  10 +
  11 +export interface IAddCondition {
  12 + id: string;
  13 + status: string;
  14 + deviceId: string;
  15 + createTime: string;
  16 + updateTime: string;
  17 + property: string;
  18 + compare: string;
  19 + value: string;
  20 +}
  21 +
  22 +export interface IAddAction {
  23 + id: string;
  24 + outTarget: string;
  25 + deviceId: string;
  26 + command: string;
  27 + sceneLinkageId: string;
  28 +}
@@ -40,15 +40,16 @@ @@ -40,15 +40,16 @@
40 :getChildrenData="echoEditData" 40 :getChildrenData="echoEditData"
41 @register="registerDrawer" 41 @register="registerDrawer"
42 @success="handleSuccess" 42 @success="handleSuccess"
  43 + ref="sceneLinkAgeDrawerRef"
43 /> 44 />
44 </div> 45 </div>
45 </template> 46 </template>
46 <script lang="ts"> 47 <script lang="ts">
47 - import { defineComponent, reactive } from 'vue'; 48 + import { defineComponent, reactive, getCurrentInstance, ref } from 'vue';
48 import { BasicTable, useTable, TableAction } from '/@/components/Table'; 49 import { BasicTable, useTable, TableAction } from '/@/components/Table';
49 import { useDrawer } from '/@/components/Drawer'; 50 import { useDrawer } from '/@/components/Drawer';
50 import SceneLinkAgeDrawer from './useDrawer.vue'; 51 import SceneLinkAgeDrawer from './useDrawer.vue';
51 - import { columns, searchFormSchema } from './config.d'; 52 + import { columns, searchFormSchema } from './config';
52 import { useMessage } from '/@/hooks/web/useMessage'; 53 import { useMessage } from '/@/hooks/web/useMessage';
53 import { screenLinkPageGetApi, screenLinkPageDeleteApi } from '/@/api/ruleengine/ruleengineApi'; 54 import { screenLinkPageGetApi, screenLinkPageDeleteApi } from '/@/api/ruleengine/ruleengineApi';
54 55
@@ -57,6 +58,8 @@ @@ -57,6 +58,8 @@
57 components: { BasicTable, SceneLinkAgeDrawer, TableAction }, 58 components: { BasicTable, SceneLinkAgeDrawer, TableAction },
58 emits: ['default', 'registerTable', 'registerDrawer', 'register'], 59 emits: ['default', 'registerTable', 'registerDrawer', 'register'],
59 setup() { 60 setup() {
  61 + const { proxy } = getCurrentInstance();
  62 + const sceneLinkAgeDrawerRef: any = ref(null);
60 let selectedRowKeys: Array<string> = []; 63 let selectedRowKeys: Array<string> = [];
61 let echoEditData = reactive({}); 64 let echoEditData = reactive({});
62 const [registerDrawer, { openDrawer }] = useDrawer(); 65 const [registerDrawer, { openDrawer }] = useDrawer();
@@ -85,6 +88,14 @@ @@ -85,6 +88,14 @@
85 }); 88 });
86 89
87 function handleAdd() { 90 function handleAdd() {
  91 + try {
  92 + proxy.$refs.sceneLinkAgeDrawerRef.clearAllArrayFunc();
  93 + proxy.$refs.sceneLinkAgeDrawerRef.defaultAddAction();
  94 + proxy.$refs.sceneLinkAgeDrawerRef.resetActionsAllArrayFunc();
  95 + proxy.$refs.sceneLinkAgeDrawerRef.clearActionsAllDevice();
  96 + } catch (e) {
  97 + return e;
  98 + }
88 openDrawer(true, { 99 openDrawer(true, {
89 isUpdate: false, 100 isUpdate: false,
90 }); 101 });
@@ -117,6 +128,7 @@ @@ -117,6 +128,7 @@
117 reload(); 128 reload();
118 } 129 }
119 return { 130 return {
  131 + sceneLinkAgeDrawerRef,
120 useSelectionChange, 132 useSelectionChange,
121 echoEditData, 133 echoEditData,
122 registerTable, 134 registerTable,
@@ -8,58 +8,165 @@ @@ -8,58 +8,165 @@
8 @ok="handleSubmit" 8 @ok="handleSubmit"
9 > 9 >
10 <BasicForm @register="registerForm" /> 10 <BasicForm @register="registerForm" />
  11 + <!-- 触发器 -->
11 <div> 12 <div>
12 - <AddTriggerForm  
13 - @eGetAddPushValueData="getAddPushValueDataValueFunc"  
14 - ref="getTriggerChildData"  
15 - :deviceInfo="getDeviceInfo"  
16 - /> 13 + <template v-for="(item, index) in addTriggerPushData" :key="index">
  14 + <div>
  15 + <AddTriggerForm :deviceInfo="getDeviceInfo" ref="refTriggerChild" />
  16 + </div>
  17 + <div style="height: 3vh"></div>
  18 + </template>
  19 + <div
  20 + style="
  21 + display: flex;
  22 + width: 13vw;
  23 + height: 4vh;
  24 + flex-direction: row;
  25 + justify-content: space-between;
  26 + "
  27 + >
  28 + <div style="display: flex; width: 4vw; height: 4vh">
  29 + <Button type="primary" style="border-radius: 10px" class="mt-5" @click="addTrigger"
  30 + ><PlusCircleOutlined />新增触发器</Button
  31 + >
  32 + </div>
  33 + <div style="display: flex; width: 4vw; height: 4vh">
  34 + <Button type="error" style="border-radius: 10px" class="mt-5" @click="removeTrigger"
  35 + ><PlusCircleOutlined />删除</Button
  36 + >
  37 + </div>
  38 + </div>
17 </div> 39 </div>
  40 + <div style="height: 5vh"></div>
  41 + <!-- 执行条件 -->
18 <div> 42 <div>
19 - <AddConditiForm  
20 - @eDoConditionGetAddPushValueData="getAddDoconditionPushValueDataValueFunc"  
21 - ref="getConditionChildData"  
22 - :deviceInfo1="getDeviceInfo1"  
23 - /> 43 + <template v-for="(item, index) in addConditionPushData" :key="index">
  44 + <div>
  45 + <AddConditiForm :deviceInfo1="getDeviceInfo1" ref="refConditionChild" />
  46 + </div>
  47 + <div style="height: 3vh"></div>
  48 + </template>
  49 + <div
  50 + style="
  51 + display: flex;
  52 + width: 13vw;
  53 + height: 4vh;
  54 + flex-direction: row;
  55 + justify-content: space-between;
  56 + "
  57 + >
  58 + <div style="display: flex; width: 4vw; height: 4vh">
  59 + <Button type="primary" style="border-radius: 10px" class="mt-5" @click="addCondition"
  60 + ><PlusCircleOutlined />新增执行条件</Button
  61 + >
  62 + </div>
  63 + <div style="display: flex; width: 4vw; height: 4vh">
  64 + <Button type="error" style="border-radius: 10px" class="mt-5" @click="removeCondition"
  65 + ><PlusCircleOutlined />删除</Button
  66 + >
  67 + </div>
  68 + </div>
24 </div> 69 </div>
  70 + <!-- 执行动作 -->
  71 + <div style="height: 5vh"></div>
25 <div> 72 <div>
26 - <AddActionForm  
27 - @eDoactionGetAddPushValueData="getAddDoActionPushValueDataValueFunc"  
28 - ref="getChildData"  
29 - :deviceInfo2="getDeviceInfo2"  
30 - /> 73 + <template v-for="(item, index) in addActionPushData" :key="index">
  74 + <div>
  75 + <AddActionForm :deviceInfo2="getDeviceInfo2" ref="refActionChild" />
  76 + </div>
  77 + <div style="height: 3vh"></div>
  78 + </template>
  79 + <div
  80 + style="
  81 + display: flex;
  82 + width: 13vw;
  83 + height: 4vh;
  84 + flex-direction: row;
  85 + justify-content: space-between;
  86 + "
  87 + >
  88 + <div style="display: flex; width: 4vw; height: 4vh">
  89 + <Button type="primary" style="border-radius: 10px" class="mt-5" @click="addAction"
  90 + ><PlusCircleOutlined />新增执行动作</Button
  91 + >
  92 + </div>
  93 + <div style="display: flex; width: 4vw; height: 4vh">
  94 + <Button type="error" style="border-radius: 10px" class="mt-5" @click="removeAction"
  95 + ><PlusCircleOutlined />删除</Button
  96 + >
  97 + </div>
  98 + </div>
31 </div> 99 </div>
32 </BasicDrawer> 100 </BasicDrawer>
33 </template> 101 </template>
34 <script lang="ts"> 102 <script lang="ts">
35 - import { defineComponent, ref, computed, unref, reactive, watch, getCurrentInstance } from 'vue'; 103 + import { defineComponent, ref, computed, unref, reactive, getCurrentInstance, watch } from 'vue';
36 import { BasicForm, useForm } from '/@/components/Form'; 104 import { BasicForm, useForm } from '/@/components/Form';
37 - import { formSchema, getData } from './config.d'; 105 + import { formSchema, getData } from './config';
38 import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; 106 import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
39 import { 107 import {
40 screenLinkPageAddApi, 108 screenLinkPageAddApi,
41 - screenLinkPageUpdateApi,  
42 - screenLinkPageByDeptIdGetDevice, 109 + // screenLinkPageUpdateApi,
  110 + // screenLinkPageByDeptIdGetDevice,
43 } from '/@/api/ruleengine/ruleengineApi'; 111 } from '/@/api/ruleengine/ruleengineApi';
44 import { useMessage } from '/@/hooks/web/useMessage'; 112 import { useMessage } from '/@/hooks/web/useMessage';
45 import AddTriggerForm from './addForm/trigger.vue'; 113 import AddTriggerForm from './addForm/trigger.vue';
46 - import AddActionForm from './addForm/doaction.vue';  
47 import AddConditiForm from './addForm/condition.vue'; 114 import AddConditiForm from './addForm/condition.vue';
  115 + import AddActionForm from './addForm/doaction.vue';
  116 + import { IAddTrigger, IAddCondition, IAddAction } from './index';
  117 + import { Button } from '/@/components/Button';
48 118
49 export default defineComponent({ 119 export default defineComponent({
50 name: 'ConfigDrawer', 120 name: 'ConfigDrawer',
51 - components: { BasicDrawer, BasicForm, AddTriggerForm, AddActionForm, AddConditiForm }, 121 + components: { BasicDrawer, BasicForm, AddTriggerForm, AddConditiForm, AddActionForm, Button },
52 emits: ['success', 'register', 'registerForm'], 122 emits: ['success', 'register', 'registerForm'],
53 setup(_, { emit }) { 123 setup(_, { emit }) {
  124 + const lastRefTriggerChildDataArray = ref<[]>([]);
  125 + const lastRefConditionChildDataArray = ref<[]>([]);
  126 + const lastRefActionChildDataArray = ref<[]>([]);
  127 + const lastRefTriggerChildData: any = ref({});
  128 + const lastRefConditionChildData: any = ref({});
  129 + const lastRefActionChildData: any = ref({});
  130 + const refTriggerChildData: any = ref({});
  131 + const refConditionChildData: any = ref({});
  132 + const refActionChildData: any = ref({});
  133 + const addTriggerData = reactive<IAddTrigger>({
  134 + id: Date.now() + Math.random() + '',
  135 + triggerEvent: '',
  136 + deviceId: '',
  137 + touchWay: '',
  138 + attributeChoose: '',
  139 + compare: '',
  140 + value: '',
  141 + });
  142 + const addConditionData = reactive<IAddCondition>({
  143 + id: Date.now() + Math.random() + '',
  144 + status: '',
  145 + deviceId: '',
  146 + createTime: '',
  147 + updateTime: '',
  148 + property: '',
  149 + compare: '',
  150 + value: '',
  151 + });
  152 + const addActionData = reactive<IAddAction>({
  153 + id: Date.now() + Math.random() + '',
  154 + outTarget: '',
  155 + deviceId: '',
  156 + command: '',
  157 + sceneLinkageId: '',
  158 + });
  159 + const addTriggerPushData = ref<[]>([]);
  160 + const addConditionPushData = ref<[]>([]);
  161 + const addActionPushData = ref<[]>([]);
54 const { proxy } = getCurrentInstance(); 162 const { proxy } = getCurrentInstance();
55 const getChildData = ref(null); 163 const getChildData = ref(null);
56 - const getTriggerChildData = ref(null); 164 + const refTriggerChild = ref(null);
  165 + const refConditionChild = ref(null);
  166 + const refActionChild = ref(null);
57 const getConditionChildData = ref(null); 167 const getConditionChildData = ref(null);
58 const { createMessage } = useMessage(); 168 const { createMessage } = useMessage();
59 const isUpdate = ref(true); 169 const isUpdate = ref(true);
60 - let doConditionsArray: any[] = reactive([]);  
61 - let doActionsArray: any[] = reactive([]);  
62 - let triggersArray: any[] = reactive([]);  
63 let getAllFormData: any = reactive({}); 170 let getAllFormData: any = reactive({});
64 let getValuesFormData: any = reactive({}); 171 let getValuesFormData: any = reactive({});
65 let getId = ref(''); 172 let getId = ref('');
@@ -67,24 +174,11 @@ @@ -67,24 +174,11 @@
67 let getDeviceInfo = ref(null); 174 let getDeviceInfo = ref(null);
68 let getDeviceInfo1 = ref(null); 175 let getDeviceInfo1 = ref(null);
69 let getDeviceInfo2 = ref(null); 176 let getDeviceInfo2 = ref(null);
70 - const isCountT = ref(null);  
71 - const isAddTriggerT: any = ref([]);  
72 - const isCountD = ref(null);  
73 - const isAddActionD: any = ref([]);  
74 - const isCountC = ref(null);  
75 - const isAddConditionD: any = ref([]);  
76 177
77 - const [registerForm, { resetFields, setFieldsValue, validateFields, getFieldsValue }] =  
78 - useForm({  
79 - labelWidth: 120,  
80 - schemas: formSchema,  
81 - showActionButtonGroup: false,  
82 - });  
83 -  
84 - watch(getData, (newV) => {  
85 - getDeviceInfo.value = newV;  
86 - getDeviceInfo1.value = newV;  
87 - getDeviceInfo2.value = newV; 178 + const [registerForm, { resetFields, setFieldsValue, validateFields }] = useForm({
  179 + labelWidth: 120,
  180 + schemas: formSchema,
  181 + showActionButtonGroup: false,
88 }); 182 });
89 183
90 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { 184 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
@@ -93,197 +187,184 @@ @@ -93,197 +187,184 @@
93 isUpdate.value = !!data?.isUpdate; 187 isUpdate.value = !!data?.isUpdate;
94 188
95 if (!unref(isUpdate)) { 189 if (!unref(isUpdate)) {
96 - triggersArray.length = 0;  
97 - doConditionsArray.length = 0;  
98 - doActionsArray.length = 0;  
99 - isAddTriggerT.value.length = 0;  
100 -  
101 - isAddActionD.value.length = 0;  
102 -  
103 - isAddConditionD.value.length = 0;  
104 - proxy.$refs.getTriggerChildData.addClearGetAddPushValueDataArrayIsEmpty();  
105 - proxy.$refs.getTriggerChildData.clearAddTriggerStatusFunc();  
106 - proxy.$refs.getTriggerChildData.clearGetPushValueDataEmpty();  
107 - proxy.$refs.getTriggerChildData.clearSelectDevice();  
108 - proxy.$refs.getChildData.clearSelectDevice();  
109 - proxy.$refs.getConditionChildData.clearSelectDevice();  
110 - proxy.$refs.getChildData.funcResetFields();  
111 - proxy.$refs.getTriggerChildData.funcResetFields();  
112 - proxy.$refs.getConditionChildData.funcResetFields(); 190 + try {
  191 + proxy.$refs.refTriggerChild.clearSelectDevice();
  192 + proxy.$refs.refConditionChild.clearSelectDevice();
  193 + proxy.$refs.refActionChild.clearSelectDevice();
  194 + } catch (e) {
  195 + return e;
  196 + }
113 } 197 }
114 //编辑 198 //编辑
115 if (unref(isUpdate)) { 199 if (unref(isUpdate)) {
116 - console.log(data);  
117 getId.value = data.record.id; 200 getId.value = data.record.id;
118 getTenantId.value = data.record.tenantId; 201 getTenantId.value = data.record.tenantId;
119 await setFieldsValue({ 202 await setFieldsValue({
120 ...data.record, 203 ...data.record,
121 }); 204 });
122 - let newMap = null;  
123 - let newFilterMap = null;  
124 - let newTwoFilterMap = null;  
125 - let newFilterTwoFilterMap = null;  
126 - const options = await screenLinkPageByDeptIdGetDevice({  
127 - organizationId: data.record.organizationId,  
128 - });  
129 - newMap = options.items.map((m) => {  
130 - try {  
131 - newTwoFilterMap = data.record?.triggers.map((m1) => {  
132 - if (m.id == m1.deviceId) {  
133 - return {  
134 - value: m.id,  
135 - label: m.name,  
136 - };  
137 - }  
138 - });  
139 -  
140 - if (m.id == data.record?.triggers[0].deviceId) {  
141 - return {  
142 - value: m.id,  
143 - label: m.name,  
144 - };  
145 - }  
146 - } catch (e) {}  
147 - });  
148 - newFilterMap = newMap.filter((f) => f !== undefined);  
149 - newFilterTwoFilterMap = newTwoFilterMap.filter((f) => f !== undefined);  
150 - proxy.$refs.getTriggerChildData.editSelectDevice(newFilterMap);  
151 - proxy.$refs.getChildData.editSelectDevice(newFilterMap);  
152 - proxy.$refs.getConditionChildData.editSelectDevice(newFilterMap);  
153 -  
154 - try {  
155 - proxy.$refs.getTriggerChildData.setFieldsFormValue({  
156 - triggerEvent: data.record.triggers[0].triggerEvent,  
157 - attributeChoose: data.record?.triggers[0].attributeChoose,  
158 - touchWay: data.record?.triggers[0].touchWay,  
159 - deviceId: data.record?.triggers[0].deviceId,  
160 - compare: data.record?.triggers[0].compare,  
161 - value: data.record?.triggers[0].value,  
162 - sceneLinkageId: data.record?.triggers[0].sceneLinkageId,  
163 - });  
164 - proxy.$refs.getConditionChildData.setFieldsFormValue({  
165 - status: data.record?.doConditions[0].status,  
166 - deviceId: data.record?.doConditions[0].deviceId,  
167 - createTime: data.record?.doConditions[0].createTime,  
168 - updateTime: data.record?.doConditions[0].updateTime,  
169 - property: data.record?.doConditions[0].property,  
170 - compare: data.record?.doConditions[0].compare,  
171 - value: data.record?.doConditions[0].value,  
172 - });  
173 - proxy.$refs.getChildData.setFieldsFormValue({  
174 - outTarget: data.record?.doActions[0].outTarget,  
175 - deviceId: data.record?.doActions[0].deviceId,  
176 - command: data.record?.doActions[0].command,  
177 - sceneLinkageId: data.record?.doActions[0].sceneLinkageId,  
178 - });  
179 - } catch (e) {  
180 - return e;  
181 - }  
182 - } else {  
183 - await resetFields();  
184 } 205 }
185 }); 206 });
186 const getTitle = computed(() => (!unref(isUpdate) ? '新增场景联动' : '编辑场景联动')); 207 const getTitle = computed(() => (!unref(isUpdate) ? '新增场景联动' : '编辑场景联动'));
187 - const getAddPushValueDataValueFunc = (v) => {  
188 - if (v.count == 2) {  
189 - isCountT.value = v.count;  
190 - isAddTriggerT.value = v.data; 208 +
  209 + const clearAllArrayFunc = () => {
  210 + unref(addTriggerPushData).length = 0;
  211 + unref(addConditionPushData).length = 0;
  212 + unref(addActionPushData).length = 0;
  213 + lastRefTriggerChildDataArray.value.length = 0;
  214 + lastRefConditionChildDataArray.value.length = 0;
  215 + lastRefActionChildDataArray.value.length = 0;
  216 + };
  217 + const resetActionsAllArrayFunc = () => {
  218 + try {
  219 + proxy.$refs.refActionChild.resetFieldsValueFunc();
  220 + } catch (e) {
  221 + return e;
191 } 222 }
192 }; 223 };
193 - const getAddDoActionPushValueDataValueFunc = (v) => {  
194 - if (v.count == 2) {  
195 - isCountD.value = v.count;  
196 - isAddActionD.value = v.data; 224 + const clearActionsAllDevice = () => {
  225 + try {
  226 + proxy.$refs.refActionChild.clearSelectDevice();
  227 + } catch (e) {
  228 + return e;
197 } 229 }
198 }; 230 };
199 - const getAddDoconditionPushValueDataValueFunc = (v) => {  
200 - if (v.count == 2) {  
201 - isCountC.value = v.count;  
202 - isAddConditionD.value = v.data; 231 + watch(getData, (newV) => {
  232 + getDeviceInfo.value = newV;
  233 + getDeviceInfo1.value = newV;
  234 + getDeviceInfo2.value = newV;
  235 + });
  236 +
  237 + //触发器方法
  238 + const refTriggerChildDataFunc = () => {
  239 + try {
  240 + refTriggerChildData.value = proxy.$refs.refTriggerChild.getFieldsValueFunc();
  241 + } catch (e) {
  242 + return e;
  243 + }
  244 + };
  245 + //执行条件方法
  246 + const refConditionChildDataFunc = () => {
  247 + try {
  248 + refConditionChildData.value = proxy.$refs.refConditionChild.getFieldsValueFunc();
  249 + } catch (e) {
  250 + return e;
  251 + }
  252 + };
  253 + //执行动作方法
  254 + const refActionChildDataFunc = () => {
  255 + try {
  256 + refActionChildData.value = proxy.$refs.refActionChild.getFieldsValueFunc();
  257 + } catch (e) {
  258 + return e;
203 } 259 }
204 }; 260 };
205 261
206 - async function handleSubmit() { 262 + const getDefaultValue = async () => {
  263 + getValuesFormData = await validateFields();
  264 + refTriggerChildDataFunc();
  265 + refConditionChildDataFunc();
  266 + refActionChildDataFunc();
  267 + lastRefTriggerChildDataArray.value.push(refTriggerChildData.value);
  268 + lastRefConditionChildDataArray.value.push(refConditionChildData.value);
  269 + lastRefActionChildDataArray.value.push(refActionChildData.value);
  270 + const triggersObj = {
  271 + triggers: lastRefTriggerChildDataArray.value,
  272 + };
  273 + const conditionsObj = {
  274 + conditions: lastRefConditionChildDataArray.value,
  275 + };
  276 + const actionsObj = {
  277 + actions: lastRefActionChildDataArray.value,
  278 + };
  279 + Object.assign(getAllFormData, getValuesFormData, triggersObj, conditionsObj, actionsObj);
207 if (!unref(isUpdate)) { 280 if (!unref(isUpdate)) {
208 - triggersArray.length = 0;  
209 - doConditionsArray.length = 0;  
210 - doActionsArray.length = 0;  
211 - let res = validateFields();  
212 - if (!res) return;  
213 - let getTriggerChildValues = proxy.$refs.getTriggerChildData.getAllFields();  
214 - if (getTriggerChildValues.count === 1) {  
215 - triggersArray.push(getTriggerChildValues.data);  
216 - }  
217 - let getconditionChildValues = proxy.$refs.getConditionChildData.getAllFields();  
218 - if (getconditionChildValues.count === 1) {  
219 - doConditionsArray.push(getconditionChildValues.data);  
220 - }  
221 - let getChildValues = proxy.$refs.getChildData.getAllFields();  
222 - if (getChildValues.count === 1) {  
223 - doActionsArray.push(getChildValues.data);  
224 - } 281 + delete getAllFormData.id;
  282 + delete getAllFormData.getTenantId;
  283 + }
  284 + };
225 285
226 - getValuesFormData = getFieldsValue();  
227 - Object.assign(getAllFormData, getValuesFormData);  
228 - getAllFormData.triggers =  
229 - isCountT.value == 2 ? isAddTriggerT.value.concat(triggersArray) : triggersArray;  
230 - getAllFormData.doConditions =  
231 - isCountC.value == 2  
232 - ? isAddConditionD.value.concat(doConditionsArray)  
233 - : doConditionsArray;  
234 - getAllFormData.doActions =  
235 - isCountD.value == 2 ? isAddActionD.value.concat(doActionsArray) : doActionsArray;  
236 - //所有的表单值 286 + async function handleSubmit() {
  287 + if (!unref(isUpdate)) {
  288 + getDefaultValue();
  289 + console.log(getAllFormData);
237 await screenLinkPageAddApi(getAllFormData); 290 await screenLinkPageAddApi(getAllFormData);
238 createMessage.success('场景联动新增成功'); 291 createMessage.success('场景联动新增成功');
239 closeDrawer(); 292 closeDrawer();
240 emit('success'); 293 emit('success');
241 - }  
242 - if (unref(isUpdate)) {  
243 - triggersArray = [];  
244 - doConditionsArray = [];  
245 - doActionsArray = [];  
246 - let getTriggerChildValues = proxy.$refs.getTriggerChildData.getAllFields();  
247 - if (getTriggerChildValues.count === 1) {  
248 - triggersArray.push(getTriggerChildValues.data);  
249 - }  
250 - let getconditionChildValues = proxy.$refs.getConditionChildData.getAllFields();  
251 - if (getconditionChildValues.count === 1) {  
252 - doConditionsArray.push(getconditionChildValues.data);  
253 - }  
254 - let getChildValues = proxy.$refs.getChildData.getAllFields();  
255 - if (getChildValues.count === 1) {  
256 - doActionsArray.push(getChildValues.data);  
257 - }  
258 - getValuesFormData = getFieldsValue();  
259 -  
260 - getValuesFormData.id = getId.value;  
261 - getValuesFormData.tenantId = getTenantId.value;  
262 - Object.assign(getAllFormData, getValuesFormData);  
263 - getAllFormData.triggers =  
264 - isCountT.value == 2 ? isAddTriggerT.value.concat(triggersArray) : triggersArray;  
265 - getAllFormData.doConditions =  
266 - isCountC.value == 2  
267 - ? isAddConditionD.value.concat(doConditionsArray)  
268 - : doConditionsArray;  
269 - getAllFormData.doActions =  
270 - isCountD.value == 2 ? isAddActionD.value.concat(doActionsArray) : doActionsArray;  
271 - await screenLinkPageUpdateApi(getAllFormData); 294 + } else {
  295 + getDefaultValue();
272 createMessage.success('场景联动编辑成功'); 296 createMessage.success('场景联动编辑成功');
273 closeDrawer(); 297 closeDrawer();
274 emit('success'); 298 emit('success');
275 } 299 }
276 } 300 }
  301 + //新增触发器
  302 + const addTrigger = () => {
  303 + unref(addTriggerPushData).push(addTriggerData);
  304 + refTriggerChildDataFunc();
  305 + lastRefTriggerChildData.value = refTriggerChildData.value;
  306 + lastRefTriggerChildDataArray.value.push(lastRefTriggerChildData.value);
  307 + };
  308 + const removeTrigger = () => {
  309 + unref(addTriggerPushData).splice(0, 1);
  310 + lastRefTriggerChildDataArray.value.splice(0, 1);
  311 + getAllFormData.triggers.splice(0, 1);
  312 + };
  313 +
  314 + //新增执行条件
  315 + const addCondition = () => {
  316 + unref(addConditionPushData).push(addConditionData);
  317 + refConditionChildDataFunc();
  318 + lastRefConditionChildData.value = refConditionChildData.value;
  319 + lastRefConditionChildDataArray.value.push(lastRefConditionChildData.value);
  320 + };
  321 + const removeCondition = () => {
  322 + unref(addConditionPushData).splice(0, 1);
  323 + lastRefConditionChildDataArray.value.splice(0, 1);
  324 + getAllFormData.conditions.splice(0, 1);
  325 + };
  326 +
  327 + //新增执行动作
  328 + const defaultAddAction = () => {
  329 + if (unref(addActionPushData).length == 0) {
  330 + addAction();
  331 + }
  332 + };
  333 + const addAction = () => {
  334 + unref(addActionPushData).push(addActionData);
  335 + refActionChildDataFunc();
  336 + lastRefActionChildData.value = refActionChildData.value;
  337 + lastRefActionChildDataArray.value.push(lastRefActionChildData.value);
  338 + };
  339 + const removeAction = () => {
  340 + unref(addActionPushData).splice(0, 1);
  341 + lastRefActionChildDataArray.value.splice(0, 1);
  342 + getAllFormData.actions.splice(0, 1);
  343 + };
  344 +
277 return { 345 return {
278 - getAddDoconditionPushValueDataValueFunc,  
279 - getAddDoActionPushValueDataValueFunc,  
280 - getAddPushValueDataValueFunc,  
281 - getConditionChildData,  
282 - getTriggerChildData,  
283 - getChildData, 346 + clearActionsAllDevice,
284 getDeviceInfo, 347 getDeviceInfo,
285 getDeviceInfo1, 348 getDeviceInfo1,
286 getDeviceInfo2, 349 getDeviceInfo2,
  350 + resetActionsAllArrayFunc,
  351 + addActionPushData,
  352 + defaultAddAction,
  353 + refActionChild,
  354 + addAction,
  355 + removeAction,
  356 + addConditionPushData,
  357 + refConditionChild,
  358 + addCondition,
  359 + removeCondition,
  360 + clearAllArrayFunc,
  361 + removeTrigger,
  362 + addTriggerPushData,
  363 + addTriggerData,
  364 + addTrigger,
  365 + getConditionChildData,
  366 + refTriggerChild,
  367 + getChildData,
287 getAllFormData, 368 getAllFormData,
288 registerDrawer, 369 registerDrawer,
289 registerForm, 370 registerForm,