Commit beb56707ed355dbb7e943e9b8ce6ad19a9e4fefe

Authored by fengtao
1 parent abf3ad93

pref:优化物模型相关重复代码

@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
56 const serveiceDisable = ref(false); 56 const serveiceDisable = ref(false);
57 const eventDisable = ref(false); 57 const eventDisable = ref(false);
58 const blockContent = `属性一般是设备的运行状态,如当前温度等;服务是设备可被调用的方法,支持定义参数,如执行某项任务;事件则是设备上报的 58 const blockContent = `属性一般是设备的运行状态,如当前温度等;服务是设备可被调用的方法,支持定义参数,如执行某项任务;事件则是设备上报的
59 -通知,如告警,需要被及时处理。`; 59 + 通知,如告警,需要被及时处理。`;
60 const activeKey = ref('1'); 60 const activeKey = ref('1');
61 const size = ref('small'); 61 const size = ref('small');
62 const AttrRef = ref<InstanceType<typeof Attribute>>(); 62 const AttrRef = ref<InstanceType<typeof Attribute>>();
@@ -86,28 +86,28 @@ @@ -86,28 +86,28 @@
86 let F = enums[val]; 86 let F = enums[val];
87 F(data); 87 F(data);
88 } 88 }
  89 + function dynamicDisable(a, s, e) {
  90 + attrDisable.value = a;
  91 + serveiceDisable.value = s;
  92 + eventDisable.value = e;
  93 + }
  94 + function dynamicActive(n, callback) {
  95 + activeKey.value = n;
  96 + callback;
  97 + }
89 const dynamicData = (t, a, s, e) => { 98 const dynamicData = (t, a, s, e) => {
90 switch (t) { 99 switch (t) {
91 case 'attr': 100 case 'attr':
92 - activeKey.value = '1';  
93 - action(t, a);  
94 - attrDisable.value = false;  
95 - serveiceDisable.value = true;  
96 - eventDisable.value = true; 101 + dynamicActive('1', action(t, a));
  102 + dynamicDisable(false, true, true);
97 break; 103 break;
98 case 'service': 104 case 'service':
99 - activeKey.value = '2';  
100 - action(t, s);  
101 - attrDisable.value = true;  
102 - serveiceDisable.value = false;  
103 - eventDisable.value = true; 105 + dynamicActive('2', action(t, s));
  106 + dynamicDisable(true, false, true);
104 break; 107 break;
105 case 'events': 108 case 'events':
106 - activeKey.value = '3';  
107 - action(t, e);  
108 - attrDisable.value = true;  
109 - serveiceDisable.value = true;  
110 - eventDisable.value = false; 109 + dynamicActive('3', action(t, e));
  110 + dynamicDisable(true, true, false);
111 break; 111 break;
112 } 112 }
113 }; 113 };
@@ -22,8 +22,7 @@ @@ -22,8 +22,7 @@
22 import { attrSchemas } from './config'; 22 import { attrSchemas } from './config';
23 import { useModal } from '/@/components/Modal'; 23 import { useModal } from '/@/components/Modal';
24 import { validateValueStruct } from '../hook/useValidateParital'; 24 import { validateValueStruct } from '../hook/useValidateParital';
25 - import { useChangeTypeGetTypeForm } from '../hook/useTypeGetForm';  
26 - import { buildUUID } from '/@/utils/uuid'; 25 + import { useChangeTypeGetTypeForm, useGetInOrOutData } from '../hook/useTypeGetForm';
27 import AddParamsModal from './components/AddParamsModal.vue'; 26 import AddParamsModal from './components/AddParamsModal.vue';
28 import CommomParam from './components/CommomParam.vue'; 27 import CommomParam from './components/CommomParam.vue';
29 28
@@ -44,16 +43,7 @@ @@ -44,16 +43,7 @@
44 showActionButtonGroup: false, 43 showActionButtonGroup: false,
45 }); 44 });
46 45
47 - const getData = (d, f) => {  
48 - if (f == 'input') {  
49 - if (d.id !== null) {  
50 - const findIndex = unref(inputParamData).findIndex((f) => f.id == d.id);  
51 - if (findIndex !== -1) unref(inputParamData).splice(findIndex, 1, d);  
52 - } else {  
53 - unref(inputParamData).push({ ...d, id: buildUUID() });  
54 - }  
55 - }  
56 - }; 46 + const getData = (d, f) => useGetInOrOutData(d, f, unref(inputParamData), []);
57 47
58 const handleAddInParam = (b, o) => openModal(b, o); 48 const handleAddInParam = (b, o) => openModal(b, o);
59 49
@@ -83,8 +73,7 @@ @@ -83,8 +73,7 @@
83 //回显结构体数据 73 //回显结构体数据
84 const { dataSpecsList } = v[0]; 74 const { dataSpecsList } = v[0];
85 if (dataSpecsList !== undefined) { 75 if (dataSpecsList !== undefined) {
86 - inputParamData.value = [...new Array(dataSpecsList.length).keys()];  
87 - inputParamData.value = dataSpecsList; 76 + inputParamData.value = [...new Array(dataSpecsList.length).keys()] && dataSpecsList;
88 } 77 }
89 } catch (e) { 78 } catch (e) {
90 console.log('Attribute error info', e); 79 console.log('Attribute error info', e);
@@ -21,9 +21,9 @@ @@ -21,9 +21,9 @@
21 import { BasicForm, useForm } from '/@/components/Form'; 21 import { BasicForm, useForm } from '/@/components/Form';
22 import { eventSchemas } from './config'; 22 import { eventSchemas } from './config';
23 import { useModal } from '/@/components/Modal'; 23 import { useModal } from '/@/components/Modal';
24 - import { buildUUID } from '/@/utils/uuid';  
25 import AddParamsModal from './components/AddParamsModal.vue'; 24 import AddParamsModal from './components/AddParamsModal.vue';
26 import CommomParam from './components/CommomParam.vue'; 25 import CommomParam from './components/CommomParam.vue';
  26 + import { useGetInOrOutData } from '../hook/useTypeGetForm';
27 27
28 const inputParamData: any = ref([]); 28 const inputParamData: any = ref([]);
29 29
@@ -42,16 +42,7 @@ @@ -42,16 +42,7 @@
42 showActionButtonGroup: false, 42 showActionButtonGroup: false,
43 }); 43 });
44 44
45 - const getData = (d, f) => {  
46 - if (f == 'input') {  
47 - if (d.id !== null) {  
48 - const findIndex = unref(inputParamData).findIndex((f) => f.id == d.id);  
49 - if (findIndex !== -1) unref(inputParamData).splice(findIndex, 1, d);  
50 - } else {  
51 - unref(inputParamData).push({ ...d, id: buildUUID() });  
52 - }  
53 - }  
54 - }; 45 + const getData = (d, f) => useGetInOrOutData(d, f, unref(inputParamData), []);
55 46
56 const handleAddInParam = (b, o) => openModal(b, o); 47 const handleAddInParam = (b, o) => openModal(b, o);
57 48
@@ -64,8 +55,7 @@ @@ -64,8 +55,7 @@
64 setFieldsValue(v[0]); 55 setFieldsValue(v[0]);
65 const { outputData } = v[0]; 56 const { outputData } = v[0];
66 if (outputData !== undefined) { 57 if (outputData !== undefined) {
67 - inputParamData.value = [...new Array(outputData.length).keys()];  
68 - inputParamData.value = outputData; 58 + inputParamData.value = [...new Array(outputData.length).keys()] && outputData;
69 } 59 }
70 }; 60 };
71 61
@@ -32,14 +32,16 @@ @@ -32,14 +32,16 @@
32 import { BasicForm, useForm } from '/@/components/Form'; 32 import { BasicForm, useForm } from '/@/components/Form';
33 import { serviceSchemas } from './config'; 33 import { serviceSchemas } from './config';
34 import { useModal } from '/@/components/Modal'; 34 import { useModal } from '/@/components/Modal';
35 - import { buildUUID } from '/@/utils/uuid';  
36 import AddParamsModal from './components/AddParamsModal.vue'; 35 import AddParamsModal from './components/AddParamsModal.vue';
37 import CommomParam from './components/CommomParam.vue'; 36 import CommomParam from './components/CommomParam.vue';
  37 + import { useGetInOrOutData } from '../hook/useTypeGetForm';
38 38
39 const inputParamData: any = ref([]); 39 const inputParamData: any = ref([]);
  40 +
40 const outputParamData: any = ref([]); 41 const outputParamData: any = ref([]);
41 42
42 const CommomParamInParamRef = ref<InstanceType<typeof CommomParam>>(); 43 const CommomParamInParamRef = ref<InstanceType<typeof CommomParam>>();
  44 +
43 const CommomParamOutParamRef = ref<InstanceType<typeof CommomParam>>(); 45 const CommomParamOutParamRef = ref<InstanceType<typeof CommomParam>>();
44 46
45 const [registerModal, { openModal }] = useModal(); 47 const [registerModal, { openModal }] = useModal();
@@ -55,23 +57,7 @@ @@ -55,23 +57,7 @@
55 showActionButtonGroup: false, 57 showActionButtonGroup: false,
56 }); 58 });
57 59
58 - const getData = (d, f) => {  
59 - if (f == 'input') {  
60 - if (d.id !== null) {  
61 - const findIndex = unref(inputParamData).findIndex((f) => f.id == d.id);  
62 - if (findIndex !== -1) unref(inputParamData).splice(findIndex, 1, d);  
63 - } else {  
64 - unref(inputParamData).push({ ...d, id: buildUUID() });  
65 - }  
66 - } else {  
67 - if (d.id !== null) {  
68 - const findIndex = unref(outputParamData).findIndex((f) => f.id == d.id);  
69 - if (findIndex !== -1) unref(outputParamData).splice(findIndex, 1, d);  
70 - } else {  
71 - unref(outputParamData).push({ ...d, id: buildUUID() });  
72 - }  
73 - }  
74 - }; 60 + const getData = (d, f) => useGetInOrOutData(d, f, unref(inputParamData), unref(outputParamData));
75 61
76 const handleAddInParam = (b, o) => openModal(b, o); 62 const handleAddInParam = (b, o) => openModal(b, o);
77 63
@@ -90,12 +76,10 @@ @@ -90,12 +76,10 @@
90 setFieldsValue(v[0]); 76 setFieldsValue(v[0]);
91 const { inputParams, outputParams } = v[0]; 77 const { inputParams, outputParams } = v[0];
92 if (outputParams !== undefined) { 78 if (outputParams !== undefined) {
93 - outputParamData.value = [...new Array(outputParams.length).keys()];  
94 - outputParamData.value = outputParams; 79 + outputParamData.value = [...new Array(outputParams.length).keys()] && outputParams;
95 } 80 }
96 if (inputParams !== undefined) { 81 if (inputParams !== undefined) {
97 - inputParamData.value = [...new Array(inputParams.length).keys()];  
98 - inputParamData.value = inputParams; 82 + inputParamData.value = [...new Array(inputParams.length).keys()] && inputParams;
99 } 83 }
100 }; 84 };
101 85
@@ -21,8 +21,11 @@ @@ -21,8 +21,11 @@
21 import { BasicForm, useForm } from '/@/components/Form'; 21 import { BasicForm, useForm } from '/@/components/Form';
22 import { addParamsSchemas } from '../config'; 22 import { addParamsSchemas } from '../config';
23 import { useModal } from '/@/components/Modal'; 23 import { useModal } from '/@/components/Modal';
24 - import { buildUUID } from '/@/utils/uuid';  
25 - import { useChangeTypeGetTypeForm, useUpdateFormExcludeStruct } from '../../hook/useTypeGetForm'; 24 + import {
  25 + useChangeTypeGetTypeForm,
  26 + useGetInOrOutData,
  27 + useUpdateFormExcludeStruct,
  28 + } from '../../hook/useTypeGetForm';
26 import AddParamsModal from './AddParamsModal.vue'; 29 import AddParamsModal from './AddParamsModal.vue';
27 import CommomParam from './CommomParam.vue'; 30 import CommomParam from './CommomParam.vue';
28 31
@@ -45,16 +48,7 @@ @@ -45,16 +48,7 @@
45 showActionButtonGroup: false, 48 showActionButtonGroup: false,
46 }); 49 });
47 50
48 - const getData = (d, f) => {  
49 - if (f === 'input') {  
50 - if (d.id !== null) {  
51 - const findIndex = unref(inputParamData).findIndex((f) => f.id == d.id);  
52 - if (findIndex !== -1) unref(inputParamData).splice(findIndex, 1, d);  
53 - } else {  
54 - unref(inputParamData).push({ ...d, id: buildUUID() });  
55 - }  
56 - }  
57 - }; 51 + const getData = (d, f) => useGetInOrOutData(d, f, unref(inputParamData), []);
58 52
59 const handleAddInParam = (b, o) => openModal(b, o); 53 const handleAddInParam = (b, o) => openModal(b, o);
60 54
1 import { validateValueBool, validateValueRangeAndStep } from './useValidateParital'; 1 import { validateValueBool, validateValueRangeAndStep } from './useValidateParital';
2 import { findDictItemByCode } from '/@/api/system/dict'; 2 import { findDictItemByCode } from '/@/api/system/dict';
  3 +import { buildUUID } from '/@/utils/uuid';
3 4
4 ///根据不同数据类型得到不同表单数据 5 ///根据不同数据类型得到不同表单数据
5 type TForm = { 6 type TForm = {
@@ -94,3 +95,22 @@ export const useUpdateFormExcludeStruct = async (F, U) => { @@ -94,3 +95,22 @@ export const useUpdateFormExcludeStruct = async (F, U) => {
94 }, 95 },
95 }); 96 });
96 }; 97 };
  98 +
  99 +//获取输入参数或者输出参数弹窗数据
  100 +export const useGetInOrOutData = (d, f, inputData, outputData) => {
  101 + if (f == 'input') {
  102 + if (d.id !== null) {
  103 + const findIndex = inputData.findIndex((f) => f.id == d.id);
  104 + if (findIndex !== -1) inputData.splice(findIndex, 1, d);
  105 + } else {
  106 + inputData.push({ ...d, id: buildUUID() });
  107 + }
  108 + } else {
  109 + if (d.id !== null) {
  110 + const findIndex = outputData.findIndex((f) => f.id == d.id);
  111 + if (findIndex !== -1) outputData.splice(findIndex, 1, d);
  112 + } else {
  113 + outputData.push({ ...d, id: buildUUID() });
  114 + }
  115 + }
  116 +};