Commit 2536255f1c10ac0161f1744571d5e6b198c7561e

Authored by xp.Huang
2 parents c1be4cb4 a944d9d6

Merge branch 'ft-dev' into 'main'

style:修改设备配置部分样式,fix:修改设备配置编辑失败错误

See merge request huang/yun-teng-iot-front!56
... ... @@ -16,29 +16,28 @@
16 16 </a-steps>
17 17 </div>
18 18 <div class="mt-5">
19   - <DeviceProfileStep1
20   - ref="DeviceProfileStep1Ref"
21   - @next="handleStepNext1"
22   - v-show="current === 0"
23   - />
24   - <DeviceProfileStep2
25   - ref="DeviceProfileStep2Ref"
26   - @prev="handleStepPrev"
27   - @next="handleStep2Next"
28   - v-show="current === 1"
29   - />
30   - <DeviceProfileStep3
31   - ref="DeviceProfileStep3Ref"
32   - @prev="handleStepPrev"
33   - @next="handleStep3Next"
34   - @redo="handleRedo"
35   - v-if="current === 2"
36   - />
37   - <DeviceProfileStep4
38   - ref="DeviceProfileStep4Ref"
39   - @prev="handleStepPrev"
40   - v-show="current === 3"
41   - />
  19 + <div v-show="current === 0">
  20 + <DeviceProfileStep1 ref="DeviceProfileStep1Ref" @next="handleStepNext1"
  21 + /></div>
  22 +
  23 + <div v-show="current === 1">
  24 + <DeviceProfileStep2
  25 + ref="DeviceProfileStep2Ref"
  26 + @prev="handleStepPrev"
  27 + @next="handleStep2Next"
  28 + /></div>
  29 +
  30 + <div v-show="current === 2">
  31 + <DeviceProfileStep3
  32 + ref="DeviceProfileStep3Ref"
  33 + @prev="handleStepPrev"
  34 + @next="handleStep3Next"
  35 + @redo="handleRedo"
  36 + /></div>
  37 +
  38 + <div v-show="current === 3">
  39 + <DeviceProfileStep4 ref="DeviceProfileStep4Ref" @prev="handleStepPrev"
  40 + /></div>
42 41 </div>
43 42 </BasicModal>
44 43 </template>
... ... @@ -50,7 +49,7 @@
50 49 import DeviceProfileStep3 from '/@/views/device/profile/step/DeviceProfileStep3.vue';
51 50 import DeviceProfileStep4 from '/@/views/device/profile/step/DeviceProfileStep4.vue';
52 51 import { Steps } from 'ant-design-vue';
53   - import { deviceConfigAddOrEdit } from '/@/api/device/deviceConfigApi';
  52 + import { deviceConfigAddOrEdit, deviceConfigGetDetail } from '/@/api/device/deviceConfigApi';
54 53 import { useMessage } from '/@/hooks/web/useMessage';
55 54
56 55 export default defineComponent({
... ... @@ -87,7 +86,7 @@
87 86 const current = ref(0);
88 87 const isUpdate = ref(true);
89 88 const getTitle = computed(() => (!unref(isUpdate) ? '新增设备配置' : '编辑设备配置'));
90   - const [register, { closeModal }] = useModalInner((data) => {
  89 + const [register, { closeModal }] = useModalInner(async (data) => {
91 90 isUpdate.value = !!data?.isUpdate;
92 91 if (!unref(isUpdate)) {
93 92 current.value = 0;
... ... @@ -99,8 +98,10 @@
99 98 proxy.$refs.DeviceProfileStep2Ref.customResetAndFunc();
100 99 break;
101 100 case 2:
102   - // proxy.$refs.DeviceProfileStep3Ref.customResetFunc();
103   - // break;
  101 + proxy.$refs.DeviceProfileStep3Ref.resetRegisterFormFunc();
  102 + proxy.$refs.DeviceProfileStep3Ref.resetRegisterFormHighSettingmFunc();
  103 + proxy.$refs.DeviceProfileStep3Ref.resetRegisterFormCreateAlarmFunc();
  104 + break;
104 105 case 3:
105 106 proxy.$refs.DeviceProfileStep4Ref.customResetAndFunc();
106 107 break;
... ... @@ -109,17 +110,29 @@
109 110 if (unref(isUpdate)) {
110 111 current.value = 0;
111 112 postEditId.value = data.record.id;
112   - editEchoData.value = data.record;
  113 + const getBackendData = await deviceConfigGetDetail(postEditId.value);
  114 + editEchoData.value = { ...getBackendData };
  115 + console.log(editEchoData.value);
113 116 switch (current.value) {
114 117 case 0:
115 118 proxy.$refs.DeviceProfileStep1Ref.resetFieldsFunc(editEchoData.value);
116 119 break;
117 120 case 1:
118   - proxy.$refs.DeviceProfileStep2Ref.resetFieldsFunc(editEchoData.value);
  121 + proxy.$refs.DeviceProfileStep2Ref.resetFieldsFunc({
  122 + transportType: editEchoData.value.profileData.transportConfiguration.type,
  123 + });
119 124 break;
120 125 case 2:
121   - // proxy.$refs.DeviceProfileStep3Ref.resetFieldsFunc(editEchoData.value);
122   - // break;
  126 + proxy.$refs.DeviceProfileStep3Ref.retryRegisterFormFunc({
  127 + alarmType: editEchoData.value.profileData?.alarms[0].alarmType,
  128 + });
  129 + proxy.$refs.DeviceProfileStep3Ref.retryRegisterFormHighSettingmFunc(
  130 + editEchoData.value
  131 + );
  132 + proxy.$refs.DeviceProfileStep3Ref.retryRegisterFormCreateAlarmFunc(
  133 + editEchoData.value
  134 + );
  135 + break;
123 136 case 3:
124 137 proxy.$refs.DeviceProfileStep4Ref.resetFieldsFunc(editEchoData.value);
125 138 break;
... ... @@ -163,7 +176,7 @@
163 176 }
164 177 if (unref(isUpdate)) {
165 178 postDeviceConfogData.value.id = postEditId.value;
166   - isGetStepThreeData.value.alarmProfile = getStepThreeData.value;
  179 + isGetStepThreeData.value.profileData = getStepThreeData.value;
167 180 alarmProfileData.value.alarmProfile =
168 181 await proxy.$refs.DeviceProfileStep4Ref.getAllFields();
169 182 Object.assign(
... ...
1   -{
2   - "name": "sd1",
3   - "defaultRuleChainId": "354c7210-5d97-11ec-8ac9-f38ed935ea2a",
4   - "description": "sd1",
5   - "transportType": "LWM2M",
6   - "profileData": {
7   - "alarms": [
8   - {
9   - "alarmType": "sd1",
10   - "propagate": true,
11   - "propagateRelationTypes": [
12   - "sd1"
13   - ],
14   - "createRules": {
15   - "MAJOR": {
16   - "alarmDetails": "sd1dw",
17   - "schedule": {
18   - "type": "ANY_TIME"
19   - },
20   - "condition": {
21   - "condition": [
22   - {
23   - "key": {
24   - "type": "TIME_SERIES",
25   - "key": "CO2"
26   - },
27   - "valueType": "STRING",
28   - "predicate": {
29   - "operation": "EQUAL",
30   - "value": {
31   - "defaultValue": 1
32   - },
33   - "type": "STRING"
34   - }
35   - }
36   - ],
37   - "spec": {
38   - "type": "DURATION"
39   - }
40   - }
41   - }
42   - },
43   - "clearRule": {
44   - "alarmDetails": "sd1dw",
45   - "schedule": {
46   - "type": "ANY_TIME"
47   - },
48   - "condition": {
49   - "condition": [
50   - {
51   - "key": {
52   - "type": "TIME_SERIES",
53   - "key": "temp"
54   - },
55   - "valueType": "STRING",
56   - "predicate": {
57   - "operation": "NOT_CONTAINS",
58   - "value": {
59   - "defaultValue": 99
60   - },
61   - "type": "STRING"
62   - }
63   - }
64   - ],
65   - "spec": {
66   - "type": "DURATION"
67   - }
68   - }
69   - }
70   - }
71   - ]
72   - },
73   - "alarmProfile": {
74   - "alarmContactId": "a3004ddd-db8f-487c-aea0-4f6f3efc59a9",
75   - "messageMode": "PHONE_MESSAGE"
76   - }
77   -}
1   -{
2   - "alarmProfile": {
3   - "alarmContactId": "string",
4   - "createTime": "2021-12-30T08:14:03.921Z",
5   - "creator": "string",
6   - "defaultConfig": "string",
7   - "description": "string",
8   - "deviceProfileId": "string",
9   - "enabled": true,
10   - "icon": "string",
11   - "id": "string",
12   - "messageMode": "string",
13   - "name": "string",
14   - "roleIds": [
15   - "string"
16   - ],
17   - "tenantExpireTime": "2021-12-30T08:14:03.921Z",
18   - "tenantId": "string",
19   - "tenantStatus": "DISABLED",
20   - "updateTime": "2021-12-30T08:14:03.921Z",
21   - "updater": "string"
22   - },
23   - "convertJs": "string",
24   - "createTime": "2021-12-30T08:14:03.921Z",
25   - "creator": "string",
26   - "defaultConfig": "string",
27   - "defaultQueueName": "string",
28   - "defaultRuleChainId": "string",
29   - "description": "string",
30   - "enabled": true,
31   - "icon": "string",
32   - "id": "string",
33   - "name": "string",
34   - "profileData": {
35   - "configuration": {},
36   - "transportConfiguration": {},
37   - "provisionConfiguration": {
38   - "provisionDeviceSecret": "string"
39   - },
40   - "alarms": [
41   - {
42   - "id": "highTemperatureAlarmID",
43   - "alarmType": "High Temperature Alarm",
44   - "createRules": {
45   - "additionalProp1": {
46   - "condition": {
47   - "condition": [
48   - {
49   - "key": {
50   - "type": "TIME_SERIES",
51   - "key": "temp"
52   - },
53   - "valueType": "NUMERIC",
54   - "value": {},
55   - "predicate": {}
56   - }
57   - ],
58   - "spec": {}
59   - },
60   - "schedule": {
61   - "type": "ANY_TIME"
62   - },
63   - "alarmDetails": "string",
64   - "dashboardId": {
65   - "id": "784f394c-42b6-435a-983c-b7beff2784f9",
66   - "entityType": "DASHBOARD"
67   - }
68   - },
69   - "additionalProp2": {
70   - "condition": {
71   - "condition": [
72   - {
73   - "key": {
74   - "type": "TIME_SERIES",
75   - "key": "temp"
76   - },
77   - "valueType": "NUMERIC",
78   - "value": {},
79   - "predicate": {}
80   - }
81   - ],
82   - "spec": {}
83   - },
84   - "schedule": {
85   - "type": "ANY_TIME"
86   - },
87   - "alarmDetails": "string",
88   - "dashboardId": {
89   - "id": "784f394c-42b6-435a-983c-b7beff2784f9",
90   - "entityType": "DASHBOARD"
91   - }
92   - },
93   - "additionalProp3": {
94   - "condition": {
95   - "condition": [
96   - {
97   - "key": {
98   - "type": "TIME_SERIES",
99   - "key": "temp"
100   - },
101   - "valueType": "NUMERIC",
102   - "value": {},
103   - "predicate": {}
104   - }
105   - ],
106   - "spec": {}
107   - },
108   - "schedule": {
109   - "type": "ANY_TIME"
110   - },
111   - "alarmDetails": "string",
112   - "dashboardId": {
113   - "id": "784f394c-42b6-435a-983c-b7beff2784f9",
114   - "entityType": "DASHBOARD"
115   - }
116   - }
117   - },
118   - "clearRule": {
119   - "condition": {
120   - "condition": [
121   - {
122   - "key": {
123   - "type": "TIME_SERIES",
124   - "key": "temp"
125   - },
126   - "valueType": "NUMERIC",
127   - "value": {},
128   - "predicate": {}
129   - }
130   - ],
131   - "spec": {}
132   - },
133   - "schedule": {
134   - "type": "ANY_TIME"
135   - },
136   - "alarmDetails": "string",
137   - "dashboardId": {
138   - "id": "784f394c-42b6-435a-983c-b7beff2784f9",
139   - "entityType": "DASHBOARD"
140   - }
141   - },
142   - "propagate": true,
143   - "propagateRelationTypes": [
144   - "string"
145   - ]
146   - }
147   - ]
148   - },
149   - "roleIds": [
150   - "string"
151   - ],
152   - "tbProfileId": "string",
153   - "tenantExpireTime": "2021-12-30T08:14:03.922Z",
154   - "tenantId": "string",
155   - "tenantStatus": "DISABLED",
156   - "transportType": "string",
157   - "updateTime": "2021-12-30T08:14:03.922Z",
158   - "updater": "string"
159   -}
... ... @@ -54,7 +54,7 @@
54 54 </div>
55 55 </div>
56 56 </div>
57   - <div class="w-1/4 flex justify-center">
  57 + <div class="w-1/4 flex justify-center">
58 58 <img
59 59 style="cursor: pointer"
60 60 @click="deleteCondition(index, createIndex)"
... ... @@ -125,13 +125,13 @@
125 125 </div>
126 126 </div>
127 127 </template>
128   - <a-button style="border-radius: 10px" class="mt-5" @click="addClearRole(index)"
  128 + <!-- <a-button style="border-radius: 10px" class="mt-5" @click="addClearRole(index)"
129 129 ><PlusCircleOutlined />添加清除条件</a-button
130   - >
  130 + > -->
131 131 </CollapseContainer>
132 132 </template>
133 133 </div>
134   - <div class="flex justify-start" style="display: fixed; top: 100px">
  134 + <div class="flex justify-center" style="display: fixed; top: 100px">
135 135 <a-button class="mr-5" @click="prevStep">上一步</a-button>
136 136 <a-button @click="handleFormStep3toStep4Next">下一步</a-button>
137 137 <a-button style="margin-left: 20px" type="primary" @click="addAlarmRule">添加报警规则</a-button>
... ... @@ -194,12 +194,12 @@
194 194 } from './data';
195 195 import {
196 196 DeleteOutlined,
197   - MinusCircleOutlined,
  197 + // MinusCircleOutlined,
198 198 PlusCircleOutlined,
199 199 PlusOutlined,
200 200 EditOutlined,
201 201 } from '@ant-design/icons-vue';
202   - import { Tooltip, Checkbox } from 'ant-design-vue';
  202 + import { Checkbox } from 'ant-design-vue';
203 203 import { useModal } from '/@/components/Modal';
204 204 import DetailTemplate from './cpns/detailtemplate/index.vue';
205 205 import EnableRule from './cpns/enablerule/index.vue';
... ... @@ -210,12 +210,12 @@
210 210 BasicForm,
211 211 CollapseContainer,
212 212 DeleteOutlined,
213   - MinusCircleOutlined,
  213 + // MinusCircleOutlined,
214 214 PlusCircleOutlined,
215 215 PlusOutlined,
216 216 EditOutlined,
217 217 Checkbox,
218   - Tooltip,
  218 + // Tooltip,
219 219 DetailTemplate,
220 220 EnableRule,
221 221 AlarmRuleConditions,
... ... @@ -245,7 +245,34 @@
245 245 const enableClearTemplateData: any = ref(null);
246 246 const detailClearTemplateData: any = ref(null);
247 247 //告警列表
248   - let profileData = ref<alarmListItem[]>([]);
  248 + let profileData = ref<alarmListItem[]>([
  249 + {
  250 + configuration: {},
  251 + transportConfiguration: {},
  252 + provisionConfiguration: {
  253 + provisionDeviceSecret: '',
  254 + },
  255 + alarms: [
  256 + {
  257 + id: Date.now() + Math.random(),
  258 + alarmType: '',
  259 + createRules: {},
  260 + clearRule: {},
  261 + propagate: true,
  262 + propagateRelationTypes: [''],
  263 + },
  264 + ],
  265 + clearAlarms: [
  266 + {
  267 + id: Date.now() + Math.random(),
  268 + alarmType: '',
  269 + clearRules: {},
  270 + propagate: true,
  271 + propagateRelationTypes: [''],
  272 + },
  273 + ],
  274 + },
  275 + ]);
249 276 const log = (e) => {
250 277 console.log(e);
251 278 };
... ... @@ -257,6 +284,7 @@
257 284 const prevStep = () => {
258 285 emit('prev');
259 286 };
  287 +
260 288 const addAlarmRule = () => {
261 289 unref(profileData).push({
262 290 configuration: {},
... ... @@ -293,14 +321,28 @@
293 321 showSubmitButton: false,
294 322 });
295 323 // 表单部分 报警类型
296   - const [registerForm, { validate: validateRegisterForm }] = useForm({
  324 + const [
  325 + registerForm,
  326 + {
  327 + setFieldsValue: setRegisterForm,
  328 + resetFields: resetRegisterForm,
  329 + validate: validateRegisterForm,
  330 + },
  331 + ] = useForm({
297 332 labelWidth: 120,
298 333 schemas: step3Schemas,
299 334 showResetButton: false,
300 335 showSubmitButton: false,
301 336 });
302 337 // 高级设置
303   - const [registerFormHighSetting, { validate: validateRegisterFormHighSetting }] = useForm({
  338 + const [
  339 + registerFormHighSetting,
  340 + {
  341 + setFieldsValue: setRegisterFormHighSetting,
  342 + resetFields: resetRegisterFormHighSetting,
  343 + validate: validateRegisterFormHighSetting,
  344 + },
  345 + ] = useForm({
304 346 labelWidth: 120,
305 347 schemas: step3HighSetting,
306 348 showResetButton: false,
... ... @@ -310,7 +352,14 @@
310 352 },
311 353 });
312 354 // 添加创建条件表单
313   - const [registerFormCreateAlarm, { validate: validateRegisterFormCreateAlarm }] = useForm({
  355 + const [
  356 + registerFormCreateAlarm,
  357 + {
  358 + setFieldsValue: setRegisterFormCreateAlarm,
  359 + resetFields: resetRegisterFormCreateAlarm,
  360 + validate: validateRegisterFormCreateAlarm,
  361 + },
  362 + ] = useForm({
314 363 labelWidth: 120,
315 364 schemas: step3CreateAlarm,
316 365 showResetButton: false,
... ... @@ -319,6 +368,26 @@
319 368 span: 24,
320 369 },
321 370 });
  371 + //重置表单数据
  372 + const resetRegisterFormFunc = () => {
  373 + resetRegisterForm();
  374 + };
  375 + const resetRegisterFormHighSettingmFunc = () => {
  376 + resetRegisterFormHighSetting();
  377 + };
  378 + const resetRegisterFormCreateAlarmFunc = () => {
  379 + resetRegisterFormCreateAlarm();
  380 + };
  381 + //回显表单数据
  382 + const retryRegisterFormFunc = (v) => {
  383 + setRegisterForm(v);
  384 + };
  385 + const retryRegisterFormHighSettingmFunc = (v) => {
  386 + setRegisterFormHighSetting(v);
  387 + };
  388 + const retryRegisterFormCreateAlarmFunc = (v) => {
  389 + setRegisterFormCreateAlarm(v);
  390 + };
322 391 // 添加‘创建条件’
323 392 const addCreateRole = (index: number) => {
324 393 unref(profileData)[index].alarms.push({
... ... @@ -637,7 +706,8 @@
637 706 alarmType: Object.values(valueRegisterForm)[0],
638 707 };
639 708 const valueRegisterFormHighSetting = await validateRegisterFormHighSetting();
640   - // const valueRegisterFormCreateAlarm = await validateRegisterFormCreateAlarm();
  709 + const valueRegisterFormCreateAlarm = await validateRegisterFormCreateAlarm();
  710 + console.log(valueRegisterFormCreateAlarm);
641 711 const getValueRegisterFormHighSetting = {
642 712 propagate: valueRegisterFormHighSetting?.propagate,
643 713 propagateRelationTypes: [valueRegisterFormHighSetting?.propagateRelationTypes],
... ... @@ -706,6 +776,12 @@
706 776 }, 50);
707 777 };
708 778 return {
  779 + retryRegisterFormFunc,
  780 + retryRegisterFormHighSettingmFunc,
  781 + retryRegisterFormCreateAlarmFunc,
  782 + resetRegisterFormFunc,
  783 + resetRegisterFormHighSettingmFunc,
  784 + resetRegisterFormCreateAlarmFunc,
709 785 ruleClearTemplateData,
710 786 enableClearTemplateData,
711 787 detailClearTemplateData,
... ...
... ... @@ -110,70 +110,70 @@ export const formSchema: FormSchema[] = [
110 110 ],
111 111 },
112 112 },
113   - {
114   - field: 'sourceType',
115   - label: '动态源类型',
116   - colProps: { span: 24 },
117   - component: 'Select',
118   - componentProps: {
119   - placeholder: '请选择动态源类型',
120   - options: [
121   - { label: '无动态值', value: '' },
122   - { label: '当前租户', value: 'CURRENT_TENANT' },
123   - { label: '当前客户', value: 'CURRENT_CUSTOMER' },
124   - { label: '当前设备', value: 'CURRENT_DEVICE' },
125   - ],
126   - },
127   - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')),
128   - show: ({ values }) => {
129   - return !!values.field5;
130   - },
131   - },
132   - {
133   - field: 'sourceAttribute',
134   - label: '源属性',
135   - colProps: { span: 24 },
136   - component: 'Input',
137   - componentProps: {
138   - placeholder: '源属性',
139   - },
140   - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')),
141   - show: ({ values }) => {
142   - return !!values.field5;
143   - },
144   - },
145   - {
146   - field: 'sourceType',
147   - label: '动态源类型',
148   - colProps: { span: 24 },
149   - component: 'Select',
150   - componentProps: {
151   - placeholder: '请选择动态源类型',
152   - options: [
153   - { label: '无动态值', value: '' },
154   - { label: '当前租户', value: 'CURRENT_TENANT' },
155   - { label: '当前客户', value: 'CURRENT_CUSTOMER' },
156   - { label: '当前设备', value: 'CURRENT_DEVICE' },
157   - ],
158   - },
159   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')),
160   - show: ({ values }) => {
161   - return !!values.field6;
162   - },
163   - },
164   - {
165   - field: 'sourceAttribute',
166   - label: '源属性',
167   - colProps: { span: 24 },
168   - component: 'Input',
169   - componentProps: {
170   - placeholder: '源属性',
171   - },
172   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')),
173   - show: ({ values }) => {
174   - return !!values.field6;
175   - },
176   - },
  113 + // {
  114 + // field: 'sourceType',
  115 + // label: '动态源类型',
  116 + // colProps: { span: 24 },
  117 + // component: 'Select',
  118 + // componentProps: {
  119 + // placeholder: '请选择动态源类型',
  120 + // options: [
  121 + // { label: '无动态值', value: '' },
  122 + // { label: '当前租户', value: 'CURRENT_TENANT' },
  123 + // { label: '当前客户', value: 'CURRENT_CUSTOMER' },
  124 + // { label: '当前设备', value: 'CURRENT_DEVICE' },
  125 + // ],
  126 + // },
  127 + // ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')),
  128 + // show: ({ values }) => {
  129 + // return !!values.field5;
  130 + // },
  131 + // },
  132 + // {
  133 + // field: 'sourceAttribute',
  134 + // label: '源属性',
  135 + // colProps: { span: 24 },
  136 + // component: 'Input',
  137 + // componentProps: {
  138 + // placeholder: '源属性',
  139 + // },
  140 + // ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')),
  141 + // show: ({ values }) => {
  142 + // return !!values.field5;
  143 + // },
  144 + // },
  145 + // {
  146 + // field: 'sourceType',
  147 + // label: '动态源类型',
  148 + // colProps: { span: 24 },
  149 + // component: 'Select',
  150 + // componentProps: {
  151 + // placeholder: '请选择动态源类型',
  152 + // options: [
  153 + // { label: '无动态值', value: '' },
  154 + // { label: '当前租户', value: 'CURRENT_TENANT' },
  155 + // { label: '当前客户', value: 'CURRENT_CUSTOMER' },
  156 + // { label: '当前设备', value: 'CURRENT_DEVICE' },
  157 + // ],
  158 + // },
  159 + // ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')),
  160 + // show: ({ values }) => {
  161 + // return !!values.field6;
  162 + // },
  163 + // },
  164 + // {
  165 + // field: 'sourceAttribute',
  166 + // label: '源属性',
  167 + // colProps: { span: 24 },
  168 + // component: 'Input',
  169 + // componentProps: {
  170 + // placeholder: '源属性',
  171 + // },
  172 + // ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')),
  173 + // show: ({ values }) => {
  174 + // return !!values.field6;
  175 + // },
  176 + // },
177 177 {
178 178 field: 'defaultValue',
179 179 label: '持续时间值',
... ... @@ -187,26 +187,26 @@ export const formSchema: FormSchema[] = [
187 187 return !values.field5;
188 188 },
189 189 },
190   - {
191   - field: 'field5',
192   - component: 'Switch',
193   - label: '切换到动态值',
194   - colProps: {
195   - span: 8,
196   - },
197   - labelWidth: 200,
198   - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')),
199   - },
200   - {
201   - field: 'field6',
202   - component: 'Switch',
203   - label: '切换到动态值',
204   - colProps: {
205   - span: 8,
206   - },
207   - labelWidth: 200,
208   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')),
209   - },
  190 + // {
  191 + // field: 'field5',
  192 + // component: 'Switch',
  193 + // label: '切换到动态值',
  194 + // colProps: {
  195 + // span: 8,
  196 + // },
  197 + // labelWidth: 200,
  198 + // ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')),
  199 + // },
  200 + // {
  201 + // field: 'field6',
  202 + // component: 'Switch',
  203 + // label: '切换到动态值',
  204 + // colProps: {
  205 + // span: 8,
  206 + // },
  207 + // labelWidth: 200,
  208 + // ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')),
  209 + // },
210 210 {
211 211 field: 'unit',
212 212 label: '时间单位',
... ...
... ... @@ -145,38 +145,38 @@ export const formSchema: FormSchema[] = [
145 145 renderComponentContent: '忽略大小写',
146 146 ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
147 147 },
148   - {
149   - field: 'sourceType',
150   - label: '动态源类型',
151   - colProps: { span: 24 },
152   - component: 'Select',
153   - componentProps: {
154   - placeholder: '请选择动态源类型',
155   - options: [
156   - { label: '无动态值', value: '' },
157   - { label: '当前租户', value: 'CURRENT_TENANT' },
158   - { label: '当前客户', value: 'CURRENT_CUSTOMER' },
159   - { label: '当前设备', value: 'CURRENT_DEVICE' },
160   - ],
161   - },
162   - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
163   - show: ({ values }) => {
164   - return !!values.field5;
165   - },
166   - },
167   - {
168   - field: 'sourceAttribute',
169   - label: '源属性',
170   - colProps: { span: 24 },
171   - component: 'Input',
172   - componentProps: {
173   - placeholder: '请输入源属性',
174   - },
175   - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
176   - show: ({ values }) => {
177   - return !!values.field5;
178   - },
179   - },
  148 + // {
  149 + // field: 'sourceType',
  150 + // label: '动态源类型',
  151 + // colProps: { span: 24 },
  152 + // component: 'Select',
  153 + // componentProps: {
  154 + // placeholder: '请选择动态源类型',
  155 + // options: [
  156 + // { label: '无动态值', value: '' },
  157 + // { label: '当前租户', value: 'CURRENT_TENANT' },
  158 + // { label: '当前客户', value: 'CURRENT_CUSTOMER' },
  159 + // { label: '当前设备', value: 'CURRENT_DEVICE' },
  160 + // ],
  161 + // },
  162 + // ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
  163 + // show: ({ values }) => {
  164 + // return !!values.field5;
  165 + // },
  166 + // },
  167 + // {
  168 + // field: 'sourceAttribute',
  169 + // label: '源属性',
  170 + // colProps: { span: 24 },
  171 + // component: 'Input',
  172 + // componentProps: {
  173 + // placeholder: '请输入源属性',
  174 + // },
  175 + // ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
  176 + // show: ({ values }) => {
  177 + // return !!values.field5;
  178 + // },
  179 + // },
180 180 {
181 181 field: 'value1',
182 182 label: '默认值',
... ... @@ -190,16 +190,16 @@ export const formSchema: FormSchema[] = [
190 190 return !values.field5;
191 191 },
192 192 },
193   - {
194   - field: 'field5',
195   - component: 'Switch',
196   - label: '切换到动态值',
197   - colProps: {
198   - span: 8,
199   - },
200   - labelWidth: 200,
201   - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
202   - },
  193 + // {
  194 + // field: 'field5',
  195 + // component: 'Switch',
  196 + // label: '切换到动态值',
  197 + // colProps: {
  198 + // span: 8,
  199 + // },
  200 + // labelWidth: 200,
  201 + // ifShow: ({ values }) => isString(Reflect.get(values, 'type1')),
  202 + // },
203 203 {
204 204 field: 'operation',
205 205 label: '操作',
... ... @@ -219,38 +219,38 @@ export const formSchema: FormSchema[] = [
219 219 ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
220 220 },
221 221
222   - {
223   - field: 'sourceType',
224   - label: '动态源类型',
225   - colProps: { span: 24 },
226   - component: 'Select',
227   - componentProps: {
228   - placeholder: '请选择动态源类型',
229   - options: [
230   - { label: '无动态值', value: '' },
231   - { label: '当前租户', value: 'CURRENT_TENANT' },
232   - { label: '当前客户', value: 'CURRENT_CUSTOMER' },
233   - { label: '当前设备', value: 'CURRENT_DEVICE' },
234   - ],
235   - },
236   - ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
237   - show: ({ values }) => {
238   - return !!values.field6;
239   - },
240   - },
241   - {
242   - field: 'sourceAttribute',
243   - label: '源属性',
244   - colProps: { span: 24 },
245   - component: 'Input',
246   - componentProps: {
247   - placeholder: '请输入源属性',
248   - },
249   - ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
250   - show: ({ values }) => {
251   - return !!values.field6;
252   - },
253   - },
  222 + // {
  223 + // field: 'sourceType',
  224 + // label: '动态源类型',
  225 + // colProps: { span: 24 },
  226 + // component: 'Select',
  227 + // componentProps: {
  228 + // placeholder: '请选择动态源类型',
  229 + // options: [
  230 + // { label: '无动态值', value: '' },
  231 + // { label: '当前租户', value: 'CURRENT_TENANT' },
  232 + // { label: '当前客户', value: 'CURRENT_CUSTOMER' },
  233 + // { label: '当前设备', value: 'CURRENT_DEVICE' },
  234 + // ],
  235 + // },
  236 + // ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
  237 + // show: ({ values }) => {
  238 + // return !!values.field6;
  239 + // },
  240 + // },
  241 + // {
  242 + // field: 'sourceAttribute',
  243 + // label: '源属性',
  244 + // colProps: { span: 24 },
  245 + // component: 'Input',
  246 + // componentProps: {
  247 + // placeholder: '请输入源属性',
  248 + // },
  249 + // ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
  250 + // show: ({ values }) => {
  251 + // return !!values.field6;
  252 + // },
  253 + // },
254 254 {
255 255 field: 'value1',
256 256 label: '值',
... ... @@ -264,16 +264,16 @@ export const formSchema: FormSchema[] = [
264 264 return !values.field6;
265 265 },
266 266 },
267   - {
268   - field: 'field6',
269   - component: 'Switch',
270   - label: '切换到动态值',
271   - colProps: {
272   - span: 8,
273   - },
274   - labelWidth: 200,
275   - ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
276   - },
  267 + // {
  268 + // field: 'field6',
  269 + // component: 'Switch',
  270 + // label: '切换到动态值',
  271 + // colProps: {
  272 + // span: 8,
  273 + // },
  274 + // labelWidth: 200,
  275 + // ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')),
  276 + // },
277 277
278 278 {
279 279 field: 'operation',
... ... @@ -299,48 +299,48 @@ export const formSchema: FormSchema[] = [
299 299 return !values.field7;
300 300 },
301 301 },
302   - {
303   - field: 'field7',
304   - component: 'Switch',
305   - label: '切换到动态值',
306   - colProps: {
307   - span: 8,
308   - },
309   - labelWidth: 200,
310   - ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),
311   - },
312   - {
313   - field: 'sourceType',
314   - label: '动态源类型',
315   - colProps: { span: 24 },
316   - component: 'Select',
317   - componentProps: {
318   - placeholder: '请选择动态源类型',
319   - options: [
320   - { label: '无动态值', value: '' },
321   - { label: '当前租户', value: 'CURRENT_TENANT' },
322   - { label: '当前客户', value: 'CURRENT_CUSTOMER' },
323   - { label: '当前设备', value: 'CURRENT_DEVICE' },
324   - ],
325   - },
326   - ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),
327   - show: ({ values }) => {
328   - return !!values.field7;
329   - },
330   - },
331   - {
332   - field: 'sourceAttribute',
333   - label: '源属性',
334   - colProps: { span: 24 },
335   - component: 'Input',
336   - componentProps: {
337   - placeholder: '请输入源属性',
338   - },
339   - ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),
340   - show: ({ values }) => {
341   - return !!values.field7;
342   - },
343   - },
  302 + // {
  303 + // field: 'field7',
  304 + // component: 'Switch',
  305 + // label: '切换到动态值',
  306 + // colProps: {
  307 + // span: 8,
  308 + // },
  309 + // labelWidth: 200,
  310 + // ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),
  311 + // },
  312 + // {
  313 + // field: 'sourceType',
  314 + // label: '动态源类型',
  315 + // colProps: { span: 24 },
  316 + // component: 'Select',
  317 + // componentProps: {
  318 + // placeholder: '请选择动态源类型',
  319 + // options: [
  320 + // { label: '无动态值', value: '' },
  321 + // { label: '当前租户', value: 'CURRENT_TENANT' },
  322 + // { label: '当前客户', value: 'CURRENT_CUSTOMER' },
  323 + // { label: '当前设备', value: 'CURRENT_DEVICE' },
  324 + // ],
  325 + // },
  326 + // ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),
  327 + // show: ({ values }) => {
  328 + // return !!values.field7;
  329 + // },
  330 + // },
  331 + // {
  332 + // field: 'sourceAttribute',
  333 + // label: '源属性',
  334 + // colProps: { span: 24 },
  335 + // component: 'Input',
  336 + // componentProps: {
  337 + // placeholder: '请输入源属性',
  338 + // },
  339 + // ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')),
  340 + // show: ({ values }) => {
  341 + // return !!values.field7;
  342 + // },
  343 + // },
344 344 {
345 345 field: 'operation',
346 346 label: '操作',
... ... @@ -383,48 +383,48 @@ export const formSchema: FormSchema[] = [
383 383 return !values.field8;
384 384 },
385 385 },
386   - {
387   - field: 'field8',
388   - component: 'Switch',
389   - label: '切换到动态值',
390   - colProps: {
391   - span: 8,
392   - },
393   - labelWidth: 200,
394   - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),
395   - },
396   - {
397   - field: 'sourceType',
398   - label: '动态源类型',
399   - colProps: { span: 24 },
400   - component: 'Select',
401   - componentProps: {
402   - placeholder: '请选择动态源类型',
403   - options: [
404   - { label: '无动态值', value: '' },
405   - { label: '当前租户', value: 'CURRENT_TENANT' },
406   - { label: '当前客户', value: 'CURRENT_CUSTOMER' },
407   - { label: '当前设备', value: 'CURRENT_DEVICE' },
408   - ],
409   - },
410   - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),
411   - show: ({ values }) => {
412   - return !!values.field8;
413   - },
414   - },
415   - {
416   - field: 'sourceAttribute',
417   - label: '源属性',
418   - colProps: { span: 24 },
419   - component: 'Input',
420   - componentProps: {
421   - placeholder: '请输入源属性',
422   - },
423   - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),
424   - show: ({ values }) => {
425   - return !!values.field8;
426   - },
427   - },
  386 + // {
  387 + // field: 'field8',
  388 + // component: 'Switch',
  389 + // label: '切换到动态值',
  390 + // colProps: {
  391 + // span: 8,
  392 + // },
  393 + // labelWidth: 200,
  394 + // ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),
  395 + // },
  396 + // {
  397 + // field: 'sourceType',
  398 + // label: '动态源类型',
  399 + // colProps: { span: 24 },
  400 + // component: 'Select',
  401 + // componentProps: {
  402 + // placeholder: '请选择动态源类型',
  403 + // options: [
  404 + // { label: '无动态值', value: '' },
  405 + // { label: '当前租户', value: 'CURRENT_TENANT' },
  406 + // { label: '当前客户', value: 'CURRENT_CUSTOMER' },
  407 + // { label: '当前设备', value: 'CURRENT_DEVICE' },
  408 + // ],
  409 + // },
  410 + // ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),
  411 + // show: ({ values }) => {
  412 + // return !!values.field8;
  413 + // },
  414 + // },
  415 + // {
  416 + // field: 'sourceAttribute',
  417 + // label: '源属性',
  418 + // colProps: { span: 24 },
  419 + // component: 'Input',
  420 + // componentProps: {
  421 + // placeholder: '请输入源属性',
  422 + // },
  423 + // ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')),
  424 + // show: ({ values }) => {
  425 + // return !!values.field8;
  426 + // },
  427 + // },
428 428 // {
429 429 // field: 'value1',
430 430 // label: '默认值',
... ...
... ... @@ -10,16 +10,16 @@
10 10 <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" />
11 11 <template v-if="getIsWhereType">
12 12 <div><p style="text-align: center">未配置筛选器</p></div>
13   - <div><p style="text-align: left">筛选器</p></div>
  13 + <!-- <div><p style="text-align: left">筛选器</p></div> -->
14 14 <div style="width: 50vw; height: 5vh; display: flex; justify-content: space-between">
15 15 <div style="width: 5vw; height: 2vh">
16   - <p v-for="(item, index) in n" :key="index"></p>
  16 + <p v-for="(item, index) in n" :key="index"></p>
17 17 </div>
18 18 <div style="width: 45vw; height: 2vh">
19 19 <BasicForm :showActionButtonGroup="false" @register="registerFilter">
20 20 <template #add="{ field }">
21   - <Button v-if="Number(field) === 0" @click="add">添加</Button>
22   - <Button v-if="Number(field) === 0" @click="handleAdd">添加复合器</Button>
  21 + <!-- <Button v-if="Number(field) === 0" @click="add">添加</Button> -->
  22 + <Button v-if="Number(field) === 0" disabled @click="handleAdd">添加复合器</Button>
23 23 <!-- <Button v-if="Number(field) === 0" @click="handleEdit">编辑复合器</Button> -->
24 24 <Button v-if="field > 0" @click="del(field)">-</Button>
25 25 </template>
... ... @@ -54,35 +54,35 @@
54 54 schemas: formSchema,
55 55 });
56 56 const [registerFilter, { appendSchemaByField, removeSchemaByFiled }] = useForm({
57   - schemas: [
58   - {
59   - field: 'field0a',
60   - component: 'Input',
61   - label: '字段0',
62   - colProps: {
63   - span: 8,
64   - },
65   - required: true,
66   - },
67   - {
68   - field: 'field0b',
69   - component: 'Input',
70   - label: '字段0',
71   - colProps: {
72   - span: 8,
73   - },
74   - required: true,
75   - },
76   - {
77   - field: '0',
78   - component: 'Input',
79   - label: ' ',
80   - colProps: {
81   - span: 8,
82   - },
83   - slot: 'add',
84   - },
85   - ],
  57 + // schemas: [
  58 + // {
  59 + // field: 'field0a',
  60 + // component: 'Input',
  61 + // label: '字段0',
  62 + // colProps: {
  63 + // span: 8,
  64 + // },
  65 + // required: true,
  66 + // },
  67 + // {
  68 + // field: 'field0b',
  69 + // component: 'Input',
  70 + // label: '字段0',
  71 + // colProps: {
  72 + // span: 8,
  73 + // },
  74 + // required: true,
  75 + // },
  76 + // {
  77 + // field: '0',
  78 + // component: 'Input',
  79 + // label: ' ',
  80 + // colProps: {
  81 + // span: 8,
  82 + // },
  83 + // slot: 'add',
  84 + // },
  85 + // ],
86 86 labelWidth: 100,
87 87 actionColOptions: { span: 24 },
88 88 });
... ...
... ... @@ -39,13 +39,13 @@
39 39 </BasicTable>
40 40 </CollapseContainer>
41 41 <CollapseContainer title="筛选器预览" class="border mb-8">
42   - <BasicTable
43   - :resizeHeightOffset="200"
44   - :columns="columnsView"
45   - :dataSource="detailData"
46   - :pagination="false"
47   - :showIndexColumn="false"
48   - @register="registerTable1"
  42 + <!-- <p v-for="(item, index) in detailData" :key="index">{{ item }}</p> -->
  43 + <Description
  44 + v-for="(item, index) in detailData"
  45 + :key="index"
  46 + :column="3"
  47 + :data="item"
  48 + :schema="schema"
49 49 />
50 50 </CollapseContainer>
51 51 <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" />
... ... @@ -56,11 +56,48 @@
56 56 import { defineComponent, ref, computed, unref } from 'vue';
57 57 import { BasicModal, useModalInner } from '/@/components/Modal';
58 58 import { BasicForm, useForm } from '/@/components/Form';
59   - import { formSchema, keyColumns, DescDetailSchema, columnsView } from './config';
  59 + import { formSchema, keyColumns, DescDetailSchema } from './config';
60 60 import { CollapseContainer } from '/@/components/Container/index';
61 61 import { BasicTable, useTable, TableAction } from '/@/components/Table';
62 62 import { useModal } from '/@/components/Modal';
63 63 import KeyValueModal from './cpns/index.vue';
  64 + import { Description, DescItem } from '/@/components/Description/index';
  65 + const schema: DescItem[] = [
  66 + {
  67 + field: 'key1',
  68 + label: '键名',
  69 + },
  70 + {
  71 + field: 'operation',
  72 + label: '操作',
  73 + render: (_, data) => {
  74 + const findDay = [
  75 + { label: '等于', value: 'EQUAL' },
  76 + { label: '不等于', value: 'NOT_EQUAL' },
  77 + { label: '开始于', value: 'STARTS_WITH' },
  78 + { label: '结束于', value: 'ENDS_WITH' },
  79 + { label: '包含', value: 'CONTAINS' },
  80 + { label: '不包含', value: 'NOT_CONTAINS' },
  81 + { label: '等于', value: 'EQUAL' },
  82 + { label: '不等于', value: 'NOT_EQUAL' },
  83 + { label: '大于', value: 'GREATER' },
  84 + { label: '小于', value: 'LESS' },
  85 + { label: '大于或等于', value: 'GREATER_OR_EQUAL' },
  86 + { label: '小于或等于', value: 'LESS_OR_EQUAL' },
  87 + ];
  88 + const findRuleByValue = findDay.find((f) => {
  89 + if (f.value == data.operation) {
  90 + return f.label;
  91 + }
  92 + });
  93 + return findRuleByValue?.label;
  94 + },
  95 + },
  96 + {
  97 + field: 'value1',
  98 + label: '值',
  99 + },
  100 + ];
64 101
65 102 export default defineComponent({
66 103 name: 'DetailTemplate',
... ... @@ -71,6 +108,7 @@
71 108 CollapseContainer,
72 109 BasicTable,
73 110 TableAction,
  111 + Description,
74 112 },
75 113 emits: ['success', 'register', 'getAllFieldsRule', 'getLastAllFieldsRule'],
76 114 setup(_, { emit }) {
... ... @@ -108,11 +146,6 @@
108 146 slots: { customRender: 'action' },
109 147 },
110 148 });
111   - const [registerTable1, { setTableData: setFunc1 }] = useTable({
112   - bordered: true,
113   - showIndexColumn: false,
114   - pagination: false,
115   - });
116 149 const handleSubmit = () => {
117 150 if (!unref(isUpdate)) {
118 151 addOrUpdateData.value = getFieldsValue();
... ... @@ -158,7 +191,7 @@
158 191 getTableApiData.value.push(receiveData.value);
159 192 detailData.value.push(receiveData.value);
160 193 setFunc(getTableApiData.value);
161   - setFunc1(detailData.value);
  194 + // setFunc1(detailData.value);
162 195 reload();
163 196 };
164 197 // const useWaitFunc = async (v) => {
... ... @@ -166,11 +199,10 @@
166 199 // return getTableApiData.value.push(v), detailData.value.push(v);
167 200 // };
168 201 return {
169   - registerTable1,
  202 + schema,
170 203 detailData,
171 204 getTableApiData,
172 205 resetDataFunc,
173   - columnsView,
174 206 DescDetailSchema,
175 207 handleSuccess,
176 208 handleEdit,
... ...
... ... @@ -91,7 +91,6 @@ export const step3Schemas: FormSchema[] = [
91 91 field: 'alarmType',
92 92 component: 'Input',
93 93 label: '报警类型',
94   - required: true,
95 94 colProps: {
96 95 span: 12,
97 96 },
... ...