Commit 8754023dfa895da4d372cd68484a680b04e3141f

Authored by fengtao
1 parent 4cfebeff

refactor:重构设备配置待完成

... ... @@ -41,7 +41,7 @@
41 41 </BasicModal>
42 42 </template>
43 43 <script lang="ts">
44   - import { defineComponent, ref, computed, unref, getCurrentInstance } from 'vue';
  44 + import { defineComponent, ref, computed, unref, getCurrentInstance, reactive } from 'vue';
45 45 import { BasicModal, useModalInner } from '/@/components/Modal';
46 46 import DeviceProfileStep1 from '/@/views/device/profile/step/DeviceProfileStep1.vue';
47 47 import DeviceProfileStep2 from '/@/views/device/profile/step/DeviceProfileStep2.vue';
... ... @@ -83,10 +83,14 @@
83 83 const postDeviceConfogData: any = ref({});
84 84 const getStepOneData: any = ref({});
85 85 const getStepTwoData: any = ref({});
86   - const getStepThreeData: any = ref({});
  86 + const getStepThreeData = ref([]);
87 87 const editEchoData: any = ref(null);
88 88 const alarmProfileData: any = ref({});
89   - const isGetStepThreeData: any = ref({});
  89 + const isGetStepThreeData = reactive({
  90 + profileData: {
  91 + alarms: [],
  92 + },
  93 + });
90 94 const postEditId = ref('');
91 95 const current = ref(0);
92 96 const isUpdate = ref(true);
... ... @@ -246,7 +250,7 @@
246 250 if (unref(isUpdate)) {
247 251 try {
248 252 proxy.$refs.DeviceProfileStep4Ref.resetFieldsFunc({
249   - alarmContactId: editEchoData.value.alarmProfile.alarmContactId,
  253 + id: editEchoData.value.alarmProfile.id,
250 254 messageMode: editEchoData.value.alarmProfile.messageMode,
251 255 });
252 256 } catch (e) {
... ... @@ -255,7 +259,7 @@
255 259 } else {
256 260 try {
257 261 proxy.$refs.DeviceProfileStep4Ref.resetFieldsFunc({
258   - alarmContactId: '',
  262 + id: '',
259 263 messageMode: '',
260 264 });
261 265 } catch (e) {
... ... @@ -271,7 +275,7 @@
271 275 }
272 276 const handleSubmit = async () => {
273 277 if (!unref(isUpdate)) {
274   - isGetStepThreeData.value.profileData = getStepThreeData.value;
  278 + isGetStepThreeData.profileData.alarms = getStepThreeData.value;
275 279 alarmProfileData.value.alarmProfile =
276 280 await proxy.$refs.DeviceProfileStep4Ref.getAllFields();
277 281 alarmProfileData.value.alarmProfile.alarmContactId.shift();
... ... @@ -280,7 +284,7 @@
280 284 postDeviceConfogData.value,
281 285 getStepOneData.value,
282 286 getStepTwoData.value,
283   - isGetStepThreeData.value,
  287 + isGetStepThreeData,
284 288 alarmProfileData.value
285 289 );
286 290 await deviceConfigAddOrEdit(postDeviceConfogData.value);
... ... @@ -289,7 +293,8 @@
289 293 emit('success');
290 294 } else {
291 295 postDeviceConfogData.value.id = postEditId.value;
292   - isGetStepThreeData.value.profileData = getStepThreeData.value;
  296 + isGetStepThreeData.profileData.alarms = getStepThreeData.value;
  297 +
293 298 alarmProfileData.value.alarmProfile =
294 299 await proxy.$refs.DeviceProfileStep4Ref.getAllFields();
295 300 Object.assign(
... ... @@ -297,7 +302,7 @@
297 302 getStepOneData.value,
298 303 getStepTwoData.value,
299 304 alarmProfileData.value,
300   - isGetStepThreeData.value
  305 + isGetStepThreeData
301 306 );
302 307 await deviceConfigAddOrEdit(postDeviceConfogData.value);
303 308 createMessage.success('编辑设备配置成功');
... ...
  1 +{
  2 + "name": "2",
  3 + "icon": "",
  4 + "transportType": "DEFAULT",
  5 + "profileData": {
  6 + "alarms": [
  7 + {
  8 + "createRules": {
  9 + "MAJOR": {
  10 + "alarmDetails": "2",
  11 + "schedule": {
  12 + "type": "ANY_TIME",
  13 + "timezone": "Asia/Shanghai (UTC+08:00)"
  14 + },
  15 + "condition": {
  16 + "type": "TIME_SERIES",
  17 + "key1": "2",
  18 + "type1": "NUMERIC",
  19 + "id": 2
  20 + }
  21 + },
  22 + "WARNING": {
  23 + "alarmDetails": "3",
  24 + "schedule": {
  25 + "type": "ANY_TIME",
  26 + "timezone": "Asia/Shanghai (UTC+08:00)"
  27 + },
  28 + "condition": {
  29 + "type": "TIME_SERIES",
  30 + "key1": "3",
  31 + "type1": "NUMERIC",
  32 + "operation": "LESS",
  33 + "value1": "3",
  34 + "id": 2
  35 + }
  36 + }
  37 + },
  38 + "clearRule": {
  39 + "schedule": {
  40 + "type": "ANY_TIME",
  41 + "timezone": "Asia/Shanghai (UTC+08:00)"
  42 + },
  43 + "condition": {
  44 + "type": "TIME_SERIES",
  45 + "key1": "4",
  46 + "type1": "NUMERIC",
  47 + "operation": "GREATER_OR_EQUAL",
  48 + "value1": "4",
  49 + "id": 2
  50 + },
  51 + "alarmDetails": "4"
  52 + },
  53 + "id": "d8dbd518-5c72-4a2e-ab27-56fca5f6fa8d",
  54 + "alarmType": "2",
  55 + "propagate": true,
  56 + "propagateRelationTypes": [
  57 + "2"
  58 + ]
  59 + }
  60 + ]
  61 + },
  62 + "alarmProfile": {
  63 + "alarmContactId": [],
  64 + "messageMode": [
  65 + "PHONE_MESSAGE"
  66 + ]
  67 + }
  68 +}
\ No newline at end of file
... ...
1 1 <template>
2   - <div class="step3" style="background-color: #f6f8f9">
3   - <template v-for="(item, index) in profileData" :key="item.id">
4   - <CollapseContainer class="border mb-1" :canExpan="false">
5   - <template #action>
6   - <div class="cursor-pointer">
7   - <img
8   - style="cursor: pointer"
9   - @click="deleteAlarmRule(index)"
10   - alt="移除"
11   - src="../../../../assets/images/delete.png"
12   - />
13   - </div>
14   - </template>
15   - <div style="margin-top: -15px; margin-left: 10px">
16   - <div class="alert-type" style="margin-left: -50px; margin-top: -10px">
17   - <BasicForm @register="registerForm"
18   - /></div>
19   - <div style="margin-top: -15px">
20   - <div style="margin-left: -8px; margin-top: -10px">
21   - <BasicForm
22   - @register="registerFormHighSetting"
23   - style="margin-left: 12px; margin-top: -10px"
24   - >
25   - <template #checkBox="{ model, field }">
26   - <Checkbox v-model:checked="model[field]">传递报警</Checkbox>
27   - </template>
28   - </BasicForm>
  2 + <div>
  3 + <div class="step3" style="background-color: #f6f8f9">
  4 + <template v-for="(item, index) in profileData" :key="item.id">
  5 + <CollapseContainer class="border mb-1" :canExpan="false">
  6 + <!-- 移除按钮 -->
  7 + <template #action>
  8 + <div class="cursor-pointer">
  9 + <img
  10 + style="cursor: pointer"
  11 + @click="deleteAlarmRule(index)"
  12 + alt="移除"
  13 + src="../../../../assets/images/delete.png"
  14 + />
  15 + </div>
  16 + </template>
  17 + <!-- 移除按钮 -->
  18 + <!-- 传递报警和报警类型 -->
  19 + <div style="margin-top: -15px; margin-left: 10px">
  20 + <div class="alert-type" style="margin-left: -50px; margin-top: -10px">
  21 + <BasicForm @register="registerForm"
  22 + /></div>
  23 + <div style="margin-top: -15px">
  24 + <div style="margin-left: -8px; margin-top: -10px">
  25 + <BasicForm
  26 + @register="registerFormHighSetting"
  27 + style="margin-left: 12px; margin-top: -10px"
  28 + >
  29 + <template #checkBox="{ model, field }">
  30 + <Checkbox v-model:checked="model[field]">传递报警</Checkbox>
  31 + </template>
  32 + </BasicForm>
  33 + </div>
29 34 </div>
30 35 </div>
31   - </div>
32   - <div style="margin-top: -57px">
33   - <p style="margin-left: 10px">创建报警规则</p>
34   - <template v-for="(childItem, createIndex) in item.alarms" :key="childItem.id">
35   - <div class="aic" style="border: 1px solid #bfbfbf">
36   - <div class="w-3/4" style="margin-left: 40px">
37   - <div style="margin-left: 10px; margin-top: 20px"
38   - ><BasicForm @register="registerFormCreateAlarm" />
39   - </div>
40   - <div style="margin-left: 5px; margin-top: -50px">
41   - <div style="color: #f5594e" class="ml-4"
42   - >报警规则条件:
43   - <Button
44   - style="margin-left: 4px"
45   - size="small"
46   - type="primary"
47   - @click="handleOpenAlaramRuleConditions"
48   - >添加</Button
49   - >
50   - <p>{{ ruleTemplateData }}</p>
  36 + <!-- 传递报警和报警类型 -->
  37 + <!-- 创建报警规则 -->
  38 + <div style="margin-top: -57px">
  39 + <p style="margin-left: 10px; font-size: medium">创建报警规则</p>
  40 + <template v-for="(childItem, createIndex) in item.alarms" :key="childItem.id">
  41 + <span style="display: none">{{ childItem }}</span>
  42 + <!-- 报警添加条件 -->
  43 + <div>
  44 + <!-- 报警启用规则 -->
  45 + <EnableRule
  46 + v-if="isRuleAlarmRuleConditions === 2"
  47 + ref="getChildData2"
  48 + @getAllFieldsEnab="getAllFieldsEnabFunc"
  49 + @register="registerModal2"
  50 + />
  51 + <!-- 报警规则条件 -->
  52 + <AlarmRuleConditions
  53 + v-if="isRuleAlarmRuleConditions === 3"
  54 + ref="getChildData3"
  55 + @getAllFieldsRule="getAllFieldsRuleFunc"
  56 + @register="registerModal3"
  57 + />
  58 + </div>
  59 + <!-- 添加条件按钮 -->
  60 + <div class="aic" style="border: 1px solid #bfbfbf">
  61 + <div class="w-3/4" style="margin-left: 40px">
  62 + <!-- 报警严重程度 -->
  63 + <div style="margin-left: 10px; margin-top: 20px"
  64 + ><BasicForm @register="registerFormCreateAlarm" />
51 65 </div>
52   - <div style="white-space: wrap; margin-top: 25px" class="mt-4 ml-4"
53   - >报警启用规则:
54   - <Button
55   - style="margin-left: 4px"
56   - size="small"
57   - type="primary"
58   - @click="handleOpenEnableRule"
59   - >添加</Button
60   - >
61   - <p>{{ enableTemplateData }}</p>
62   - <div
63   - class="mt-4 ml-4"
64   - style="margin-left: 0px; position: relative; margin-top: 25px"
65   - >报警详情模板:
66   - <div style="position: absolute; top: -5px; left: 106px; width: 581px">
67   - <BasicForm @register="registerFormChangeDetail" />
68   - </div>
69   - <!-- <Button size="small" type="primary" @click="handleOpenDetailTemplate"
  66 + <!-- 报警严重程度 -->
  67 +
  68 + <div style="margin-left: 5px; margin-top: -50px">
  69 + <div style="color: #f5594e" class="ml-4"
  70 + >报警规则条件:
  71 + <Button
  72 + style="margin-left: 4px"
  73 + size="small"
  74 + type="primary"
  75 + @click="handleOpenAlaramRuleConditions"
70 76 >添加</Button
71   - > -->
  77 + >
  78 + <!-- <p>{{ ruleTemplateData }}</p> -->
72 79 </div>
73   - <div style="margin-top: 25px; position: relative">
74   - <div style="margin-left: -14px">
75   - <BasicForm @register="dashboardForm" />
  80 + <div style="white-space: wrap; margin-top: 25px" class="mt-4 ml-4"
  81 + >报警启用规则:
  82 + <Button
  83 + style="margin-left: 4px"
  84 + size="small"
  85 + type="primary"
  86 + @click="handleOpenEnableRule"
  87 + >添加</Button
  88 + >
  89 + <!-- <p>{{ enableTemplateData }}</p> -->
  90 + <div
  91 + class="mt-4 ml-4"
  92 + style="margin-left: 0px; position: relative; margin-top: 25px"
  93 + >报警详情模板:
  94 + <div style="position: absolute; top: -5px; left: 106px; width: 581px">
  95 + <BasicForm @register="registerFormChangeDetail" />
  96 + </div>
  97 + </div>
  98 + <div style="margin-top: 25px; position: relative">
  99 + <div style="margin-left: -14px">
  100 + <BasicForm @register="dashboardForm" />
  101 + </div>
76 102 </div>
77 103 </div>
78 104 </div>
79   - </div>
80   - <div
81   - class="remove-type"
82   - style="display: inline-block; position: relative; top: -257px; left: 757px"
83   - >
84   - <img
85   - style="cursor: pointer"
86   - @click="deleteCondition(index, createIndex)"
87   - alt="移除"
88   - src="../../../../assets/images/close.png"
89   - />
  105 + <div
  106 + class="remove-type"
  107 + style="display: inline-block; position: relative; top: -257px; left: 757px"
  108 + >
  109 + <img
  110 + style="cursor: pointer"
  111 + @click="deleteCondition(index, createIndex)"
  112 + alt="移除"
  113 + src="../../../../assets/images/close.png"
  114 + />
  115 + </div>
90 116 </div>
91 117 </div>
  118 + </template>
  119 + <div>
  120 + <a-button style="border-radius: 10px" class="mt-5" @click="addCreateRole(index)"
  121 + ><PlusCircleOutlined />添加创建条件</a-button
  122 + >
92 123 </div>
93   - </template>
94   - <a-button style="border-radius: 10px" class="mt-5" @click="addCreateRole(index)"
95   - ><PlusCircleOutlined />添加创建条件</a-button
96   - >
97   - </div>
98   - <div style="height: 20px"></div>
99   - <div>
100   - <p style="margin-left: 10px">清除报警规则</p>
101   - <template
102   - v-for="(childClearItem, clearIndexItem) in item.clearRule"
103   - :key="childClearItem.id"
104   - >
105   - <div class="aic mb-1" style="border: 1px solid #bfbfbf">
106   - <div class="w-3/4" style="margin-left: 40px">
107   - <div style="margin-left: 5px">
108   - <div style="color: #f5594e" class="mt-4 ml-4"
109   - >报警规则条件:
110   - <Button
111   - style="margin-left: 2px"
112   - size="small"
113   - type="primary"
114   - @click="handleOpenClearAlaramRuleConditions"
115   - >添加</Button
116   - >
117   - <p>{{ ruleClearTemplateData }}</p>
118   - </div>
119   - <div style="white-space: wrap; margin-top: 25px" class="mt-4 ml-4"
120   - >报警启用规则:
121   - <Button
122   - style="margin-left: 2px"
123   - size="small"
124   - type="primary"
125   - @click="handleOpenClearEnableRule"
126   - >添加</Button
127   - >
128   - <p>{{ enableClearTemplateData }}</p>
129   - <div
130   - class="mt-4 ml-4"
131   - style="margin-left: 0px; position: relative; margin-top: 25px"
132   - >报警详情模板:
133   - <div style="position: absolute; top: -5px; left: 106px; width: 581px">
134   - <BasicForm @register="registerFormChangeClearDetail" />
135   - </div>
136   - <!-- <Button size="small" type="primary" @click="handleOpenClearDetailTemplate"
  124 + </div>
  125 + <!-- 创建报警规则 -->
  126 + <div style="height: 20px"></div>
  127 + <!-- 清除报警规则 -->
  128 + <div>
  129 + <p style="margin-left: 10px; font-size: medium">清除报警规则</p>
  130 + <template
  131 + v-for="(childClearItem, clearIndexItem) in item.clearRule"
  132 + :key="childClearItem.id"
  133 + >
  134 + <span style="display: none">{{ childClearItem }}</span>
  135 + <span style="display: none">{{ clearIndexItem }}</span>
  136 + <div>
  137 + <!-- 报警启用规则 -->
  138 + <EnableRule
  139 + v-if="isRuleAlarmRuleConditions === 5"
  140 + ref="getChildData5"
  141 + @getAllFieldsEnab="getAllClearFieldsEnabFunc"
  142 + @register="registerModal5"
  143 + />
  144 + <!-- 报警规则条件 -->
  145 + <AlarmRuleConditions
  146 + v-if="isRuleAlarmRuleConditions === 6"
  147 + ref="getChildData6"
  148 + @getAllFieldsRule="getAllClearFieldsRuleFunc"
  149 + @register="registerModal6"
  150 + />
  151 + </div>
  152 + <div class="aic mb-1" style="border: 1px solid #bfbfbf">
  153 + <div class="w-3/4" style="margin-left: 40px">
  154 + <div style="margin-left: 5px">
  155 + <div style="color: #f5594e" class="mt-4 ml-4"
  156 + >报警规则条件:
  157 + <Button
  158 + style="margin-left: 2px"
  159 + size="small"
  160 + type="primary"
  161 + @click="handleOpenClearAlaramRuleConditions"
137 162 >添加</Button
138 163 >
139   - <p>{{ detailClearTemplateData }}</p> -->
  164 + <!-- <p>{{ ruleClearTemplateData }}</p> -->
140 165 </div>
141   - <div style="margin-left: 0px; margin-top: 25px">
142   - <div style="margin-left: -14px">
143   - <BasicForm @register="dashboardForm" />
  166 + <div style="white-space: wrap; margin-top: 25px" class="mt-4 ml-4"
  167 + >报警启用规则:
  168 + <Button
  169 + style="margin-left: 2px"
  170 + size="small"
  171 + type="primary"
  172 + @click="handleOpenClearEnableRule"
  173 + >添加</Button
  174 + >
  175 + <!-- <p>{{ enableClearTemplateData }}</p> -->
  176 + <div
  177 + class="mt-4 ml-4"
  178 + style="margin-left: 0px; position: relative; margin-top: 25px"
  179 + >报警详情模板:
  180 + <div style="position: absolute; top: -5px; left: 106px; width: 581px">
  181 + <BasicForm @register="registerFormChangeClearDetail" />
  182 + </div>
  183 + </div>
  184 + <div style="margin-left: 0px; margin-top: 25px">
  185 + <div style="margin-left: -14px">
  186 + <BasicForm @register="dashboardForm" />
  187 + </div>
144 188 </div>
145 189 </div>
146 190 </div>
147 191 </div>
148 192 </div>
149   - </div>
150   - </template>
151   - </div>
152   - </CollapseContainer>
153   - </template>
154   - </div>
155   - <div class="flex justify-center" style="display: fixed; top: 100px">
156   - <a-button class="mr-5" @click="prevStep">上一步</a-button>
157   - <a-button @click="handleFormStep3toStep4Next">下一步</a-button>
158   - <a-button style="margin-left: 20px" type="primary" @click="addAlarmRule">添加报警规则</a-button>
159   - </div>
160   - <div>
161   - <!-- 详情模板 -->
162   - <DetailTemplate
163   - v-if="isRuleAlarmRuleConditions == 1"
164   - @getAllFields="getAllFieldsFunc"
165   - @register="registerModal1"
166   - />
167   - <!-- 启用规则 -->
168   - <EnableRule
169   - v-if="isRuleAlarmRuleConditions == 2"
170   - ref="getChildData2"
171   - @getAllFieldsEnab="getAllFieldsEnabFunc"
172   - @register="registerModal2"
173   - />
174   - <!-- 报警规则条件 -->
175   - <AlarmRuleConditions
176   - v-if="isRuleAlarmRuleConditions == 3"
177   - ref="getChildData3"
178   - @getAllFieldsRule="getAllFieldsRuleFunc"
179   - @register="registerModal3"
180   - />
181   - </div>
182   -
183   - <div>
184   - <!-- 清除条件 -->
185   - <!-- 详情模板 -->
186   - <DetailTemplate
187   - v-if="isRuleAlarmRuleConditions == 4"
188   - @getAllFields="getAllClearFieldsFunc"
189   - @register="registerModal4"
190   - />
191   - <!-- 启用规则 -->
192   - <EnableRule
193   - v-if="isRuleAlarmRuleConditions == 5"
194   - ref="getChildData2"
195   - @getAllFieldsEnab="getAllClearFieldsEnabFunc"
196   - @register="registerModal5"
197   - />
198   - <!-- 报警规则条件 -->
199   - <AlarmRuleConditions
200   - v-if="isRuleAlarmRuleConditions == 6"
201   - ref="getChildData3"
202   - @getAllFieldsRule="getAllClearFieldsRuleFunc"
203   - @register="registerModal6"
204   - />
  193 + </template>
  194 + </div>
  195 + <!-- 清除报警规则 -->
  196 + </CollapseContainer>
  197 + </template>
  198 + </div>
  199 + <div class="flex justify-center" style="display: fixed; bottom: 100px">
  200 + <a-button class="mr-5" @click="prevStep">上一步</a-button>
  201 + <a-button @click="handleFormStep3toStep4Next">下一步</a-button>
  202 + <a-button style="margin-left: 20px" type="primary" @click="addAlarmRule"
  203 + >添加报警规则</a-button
  204 + >
  205 + </div>
205 206 </div>
206 207 </template>
207 208
208 209 <script lang="ts">
209   - import { defineComponent, ref, unref, getCurrentInstance, watch } from 'vue';
  210 + import { defineComponent, ref, unref, getCurrentInstance, watch, reactive } from 'vue';
210 211 import type { IProfileData } from './index.t';
211 212 import { CollapseContainer } from '/@/components/Container/index';
212 213 import { BasicForm, useForm } from '/@/components/Form';
... ... @@ -221,7 +222,6 @@
221 222 import { PlusCircleOutlined } from '@ant-design/icons-vue';
222 223 import { Checkbox } from 'ant-design-vue';
223 224 import { useModal } from '/@/components/Modal';
224   - import DetailTemplate from './cpns/detailtemplate/index.vue';
225 225 import EnableRule from './cpns/enablerule/index.vue';
226 226 import AlarmRuleConditions from './cpns/alarmruleconditions/index.vue';
227 227 import { Button } from '/@/components/Button';
... ... @@ -233,24 +233,21 @@
233 233 CollapseContainer,
234 234 PlusCircleOutlined,
235 235 Checkbox,
236   - DetailTemplate,
237 236 EnableRule,
238 237 AlarmRuleConditions,
239 238 Button,
240 239 },
241 240 emits: ['prev', 'next', 'redo', 'handleFormStep3toStep4Next'],
242 241 setup(_, { emit }) {
243   - const changeGetDetailValue: any = ref(null);
244   - const changeGetClearDetailValue: any = ref(null);
245   - const ruleNumber = ref(0);
246 242 const { proxy } = getCurrentInstance();
  243 + const changeGetDetailValue = ref({});
  244 + const changeGetClearDetailValue = ref({});
247 245 const getChildData1 = ref(null);
248 246 const getChildData2 = ref(null);
249 247 const getChildData3 = ref(null);
  248 + const getChildData5 = ref(null);
  249 + const getChildData6 = ref(null);
250 250 const isRuleAlarmRuleConditions = ref(0);
251   - const getAllFormData: any = ref({});
252   - const alarmss: any = ref([]);
253   - const emptyObj: any = ref({});
254 251 const detailObj: any = ref({});
255 252 const detailClearObj: any = ref({});
256 253 const ruleObj: any = ref({});
... ... @@ -266,13 +263,94 @@
266 263 const ruleClearTemplateData: any = ref(null);
267 264 const enableClearTemplateData: any = ref(null);
268 265 const detailClearTemplateData: any = ref(null);
269   - const scheduleCustomValue: any = ref({});
270   - const scheduleCustomClearValue: any = ref({});
271   - const clearIndex = ref(-1);
272   - const getSchduleCustomValue: any = ref([]);
273   - const getSchduleClearCustomValue: any = ref([]);
274   - //告警列表
  266 + //重构
  267 + //告警列表接口
275 268 let profileData = ref<IProfileData[]>([]);
  269 + //初始化alarams数据
  270 + const initProfileData = reactive({
  271 + alarms: [
  272 + {
  273 + id: Date.now() + Math.random() + '',
  274 + alarmType: '',
  275 + createRules: {},
  276 + propagate: false,
  277 + propagateRelationTypes: [''],
  278 + },
  279 + ],
  280 + clearRule: [
  281 + {
  282 + id: Date.now() + Math.random() + '',
  283 + alarmDetails: '',
  284 + dashboardId: {
  285 + id: '',
  286 + entityType: '',
  287 + },
  288 + propagate: '',
  289 + propagateRelationTypes: [''],
  290 + schedule: {
  291 + type: 'string',
  292 + },
  293 + condition: {},
  294 + },
  295 + ],
  296 + });
  297 + //初始化创建条件
  298 + const initCreateRules = reactive({
  299 + id: Date.now() + Math.random() + '',
  300 + alarmType: '',
  301 + createRules: {},
  302 + propagate: false,
  303 + propagateRelationTypes: [''],
  304 + });
  305 + //接收临时启用规则数据
  306 + const receiveOpenRuleTempArr = ref<[]>([]);
  307 + //接收临时规则条件数据
  308 + const receiveRuleConditionTempArr = ref<[]>([]);
  309 + //创建条件总对象
  310 + const createRulesObj = ref({});
  311 + const addCreateRulesObj = reactive({
  312 + createRules: {},
  313 + });
  314 + const addChangeSeverity = ref({});
  315 + let addNewOpenRule = reactive({
  316 + schedule: {},
  317 + });
  318 + let addNewRuleTem = reactive({
  319 + condition: {},
  320 + });
  321 + const refAlarmDetailTemplate = ref(null);
  322 + const tempDetailTempArr = ref<[]>([]);
  323 + const tempOpenRuleTempArr = ref<[]>([]);
  324 + const tempRuleConditionTempArr = ref<[]>([]);
  325 + let addClearRule = reactive({});
  326 + //总的alarms数据
  327 + let allAlarms = ref<[]>([]);
  328 + const getClearObj = ref({});
  329 + const getAllObjTemp = ref({});
  330 + //报警类型数据
  331 + const alarmTypeGet = ref({});
  332 + const propagateAndpropagateRelationTypes = reactive({
  333 + propagate: '',
  334 + propagateRelationTypes: [],
  335 + });
  336 + let clearObj = reactive({
  337 + clearRule: {},
  338 + });
  339 + let kongClearOpenRuleObj = reactive({
  340 + schedule: {},
  341 + });
  342 + let kongClearRuleConditionObj = reactive({
  343 + condition: {},
  344 + });
  345 + //
  346 + const kongDetail = ref({});
  347 + let kongOpenRuleObj = reactive({
  348 + schedule: {},
  349 + });
  350 + let kongRuleConditionObj = reactive({
  351 + condition: {},
  352 + });
  353 +
276 354 const log = (e) => {
277 355 console.log(e);
278 356 };
... ... @@ -282,7 +360,6 @@
282 360 };
283 361 //删除告警配置
284 362 const deleteAlarmRule = (index: number) => {
285   - ruleNumber.value--;
286 363 unref(profileData).splice(index, 1);
287 364 };
288 365 // 上一步
... ... @@ -291,44 +368,7 @@
291 368 };
292 369 //添加报警规则
293 370 const addAlarmRule = () => {
294   - ruleNumber.value++;
295   - clearIndex.value++;
296   - unref(profileData).push({
297   - configuration: {
298   - type: '',
299   - },
300   - transportConfiguration: {
301   - type: '',
302   - },
303   - provisionConfiguration: {
304   - provisionDeviceSecret: '',
305   - },
306   - alarms: [
307   - {
308   - id: Date.now() + Math.random() + '',
309   - alarmType: '',
310   - createRules: {},
311   - propagate: false,
312   - propagateRelationTypes: [''],
313   - },
314   - ],
315   - clearRule: [
316   - {
317   - id: Date.now() + Math.random() + '',
318   - alarmDetails: '',
319   - dashboardId: {
320   - id: '',
321   - entityType: '',
322   - },
323   - propagate: '',
324   - propagateRelationTypes: [''],
325   - schedule: {
326   - type: 'string',
327   - },
328   - condition: {},
329   - },
330   - ],
331   - });
  371 + unref(profileData).push(initProfileData);
332 372 };
333 373 //TODO Mobile dashboard:
334 374 const [dashboardForm] = useForm({
... ... @@ -343,7 +383,7 @@
343 383 {
344 384 setFieldsValue: setRegisterForm,
345 385 resetFields: resetRegisterForm,
346   - validate: validateRegisterForm,
  386 + getFieldsValue: validateRegisterForm,
347 387 },
348 388 ] = useForm({
349 389 labelWidth: 120,
... ... @@ -357,7 +397,7 @@
357 397 {
358 398 setFieldsValue: setRegisterFormHighSetting,
359 399 resetFields: resetRegisterFormHighSetting,
360   - validate: validateRegisterFormHighSetting,
  400 + getFieldsValue: validateRegisterFormHighSetting,
361 401 },
362 402 ] = useForm({
363 403 labelWidth: 120,
... ... @@ -409,7 +449,6 @@
409 449 setFieldsValue: setRegisterFormCreateAlarm,
410 450 resetFields: resetRegisterFormCreateAlarm,
411 451 validate: validateRegisterFormCreateAlarm,
412   - updateSchema,
413 452 },
414 453 ] = useForm({
415 454 labelWidth: 120,
... ... @@ -494,77 +533,92 @@
494 533 setRegisterFormClearChangeDetail(v);
495 534 };
496 535
497   - const tempValue1: string = ref<string>('');
498   - // 添加‘创建条件’
499   - const addCreateRole = (index: number) => {
500   - updateSchema({
501   - field: 'default',
502   - componentProps: ({ formModel }) => {
503   - if (formModel.default == 'CRITICAL') {
504   - tempValue1.value = formModel.default;
505   - } else if (formModel.default == 'MAJOR') {
506   - tempValue1.value = formModel.default;
507   - } else if (formModel.default == 'MINOR') {
508   - tempValue1.value = formModel.default;
509   - } else if (formModel.default == 'WARNING') {
510   - tempValue1.value = formModel.default;
511   - } else if (formModel.default == 'INDETERMINATE') {
512   - tempValue1.value = formModel.default;
513   - }
514   - return {
515   - options: [
516   - {
517   - value: 'CRITICAL',
518   - label: '危险',
519   - disabled: tempValue1.value == 'CRITICAL',
520   - },
521   - {
522   - value: 'MAJOR',
523   - label: '重要',
524   - disabled: tempValue1.value == 'MAJOR',
525   - },
526   - {
527   - value: 'MINOR',
528   - label: '次要',
529   - disabled: tempValue1.value == 'MINOR',
530   - },
531   - {
532   - value: 'WARNING',
533   - label: '警告',
534   - disabled: tempValue1.value == 'WARNING',
535   - },
536   - {
537   - value: 'INDETERMINATE',
538   - label: '不确定',
539   - disabled: tempValue1.value == 'INDETERMINATE',
540   - },
541   - ],
542   - };
543   - },
  536 + const getRegisterFormChangeDetailFunc = () => {
  537 + changeGetDetailValue.value = getRegisterFormChangeDetail();
  538 + };
  539 + const getRegisterClearFormChangeDetailFunc = () => {
  540 + changeGetClearDetailValue.value = getRegisterFormClearChangeDetail();
  541 + };
  542 +
  543 + const emptyCreateRoleFunc = () => {
  544 + receiveOpenRuleTempArr.value = [];
  545 + receiveRuleConditionTempArr.value = [];
  546 + addNewOpenRule.schedule = {};
  547 + addNewRuleTem.condition = {};
  548 + };
  549 +
  550 + const getOpenRuleAndRuleCondition = () => {
  551 + addNewOpenRule.schedule = enableObj.value as never;
  552 + addNewRuleTem.condition = ruleObj.value as never;
  553 + tempOpenRuleTempArr.value.push(addNewOpenRule.schedule as never);
  554 + tempRuleConditionTempArr.value.push(addNewRuleTem.condition as never);
  555 + };
  556 + const getClearOpenRuleAndRuleCondition = () => {
  557 + kongClearOpenRuleObj.schedule = enableClearObj.value as never;
  558 + kongClearRuleConditionObj.condition = ruleLastObj.value as never;
  559 + };
  560 +
  561 + //传递报警数据
  562 + const validateRegisterFormHighSettingFunc = () => {
  563 + const val = validateRegisterFormHighSetting();
  564 + propagateAndpropagateRelationTypes.propagate = val.propagate;
  565 + propagateAndpropagateRelationTypes.propagateRelationTypes.push(
  566 + val.propagateRelationTypes as never
  567 + );
  568 + };
  569 + //报警类型数据
  570 + const validateRegisterFormFunc = () => {
  571 + const val1 = validateRegisterForm();
  572 + alarmTypeGet.value = val1;
  573 + };
  574 +
  575 + // 添加创建条件方法
  576 + const addCreateRuleFunc = async () => {
  577 + getRegisterFormChangeDetailFunc();
  578 + tempDetailTempArr.value.push(changeGetDetailValue.value as never);
  579 + console.log(tempDetailTempArr.value);
  580 + tempDetailTempArr.value.forEach((f1) => {
  581 + kongDetail.value = f1;
544 582 });
545   - unref(profileData)[index].alarms.push({
546   - id: Date.now() + Math.random() + '',
547   - alarmType: '',
548   - createRules: {},
549   - // clearRule: [
550   - // {
551   - // id: Date.now() + Math.random() + '',
552   - // alarmDetails: '',
553   - // dashboardId: {
554   - // id: '',
555   - // entityType: '',
556   - // },
557   - // propagate: '',
558   - // propagateRelationTypes: [''],
559   - // schedule: {
560   - // type: 'string',
561   - // },
562   - // condition: {},
563   - // },
564   - // ],
565   - propagate: false,
566   - propagateRelationTypes: [''],
  583 + addChangeSeverity.value = await validateRegisterFormCreateAlarm();
  584 + emptyCreateRoleFunc();
  585 + getOpenRuleAndRuleCondition();
  586 +
  587 + tempOpenRuleTempArr.value.forEach((f2) => {
  588 + kongOpenRuleObj.schedule = f2;
567 589 });
  590 +
  591 + tempRuleConditionTempArr.value.forEach((f3) => {
  592 + kongRuleConditionObj.condition = f3;
  593 + });
  594 +
  595 + createRulesObj.value[addChangeSeverity.value.default] = {
  596 + ...kongDetail.value,
  597 + ...addNewOpenRule,
  598 + ...addNewRuleTem,
  599 + ...kongOpenRuleObj,
  600 + ...kongRuleConditionObj,
  601 + };
  602 + addCreateRulesObj.createRules = createRulesObj.value;
  603 + };
  604 +
  605 + //清除报警规则
  606 + const addClearAlaramRule = () => {
  607 + getClearOpenRuleAndRuleCondition();
  608 + getRegisterClearFormChangeDetailFunc();
  609 + addClearRule = {
  610 + ...kongClearOpenRuleObj,
  611 + ...kongClearRuleConditionObj,
  612 + ...changeGetClearDetailValue.value,
  613 + };
  614 + clearObj.clearRule = { ...addClearRule };
  615 + getClearObj.value = clearObj;
  616 + };
  617 +
  618 + // 添加创建条件
  619 + const addCreateRole = async (index: number) => {
  620 + unref(profileData)[index]?.alarms.push(initCreateRules);
  621 + addCreateRuleFunc();
568 622 };
569 623 // 删除‘创建条件’
570 624 const deleteCondition = (index: number, createIndex: number) => {
... ... @@ -583,8 +637,8 @@
583 637 const getAllFieldsFunc = (v) => {
584 638 detailObj.value = v;
585 639 detailTemplateData.value = `
586   - 报警详细信息:${v.alarmDetails}
587   - `;
  640 + 报警详细信息:${v.alarmDetails}
  641 + `;
588 642 };
589 643 //启用规则
590 644 const getAllFieldsEnabFunc = (v) => {
... ... @@ -625,7 +679,7 @@
625 679 return f.label;
626 680 }
627 681 } catch (e) {
628   - console.log(e);
  682 + return e;
629 683 }
630 684 });
631 685 const findDayCustomByValue = findDay.map((f, i) => {
... ... @@ -634,7 +688,7 @@
634 688 return f.label;
635 689 }
636 690 } catch (e) {
637   - console.log(e);
  691 + return e;
638 692 }
639 693 });
640 694 enableTemplateData.value =
... ... @@ -642,13 +696,14 @@
642 696 ? `始终启用`
643 697 : v.schedule == 'SPECIFIC_TIME'
644 698 ? `
645   - 开始时间:${v.startsOn},结束时间:${v.endsOn},天数:${findDayByValue}
646   - `
  699 + 开始时间:${v.startsOn},结束时间:${v.endsOn},天数:${findDayByValue}
  700 + `
647 701 : `天数:${findDayCustomByValue},开始时间: ${v.startsOn1},结束时间:${v.endsOn1}`;
648 702 };
649 703 //规则条件
650   - const getAllFieldsRuleFunc = (v, v1) => {
  704 + const getAllFieldsRuleFunc = (v) => {
651 705 ruleObj.value = v;
  706 + console.log(v);
652 707 const findDay = [
653 708 { label: '等于', value: 'EQUAL' },
654 709 { label: '不等于', value: 'NOT_EQUAL' },
... ... @@ -669,10 +724,10 @@
669 724 }
670 725 });
671 726 ruleTemplateData.value = `
672   - 键名:${v.key1} 操作:${findRuleByValue?.label} 值:${v.value1}
673   - `;
  727 + 键名:${v.key1} 操作:${findRuleByValue?.label} 值:${v.value1}
  728 + `;
674 729
675   - ruleLastObj.value = v1;
  730 + // ruleLastObj.value = v1;
676 731 const predicate = {
677 732 operation: ruleObj.value.operation,
678 733 value: {
... ... @@ -715,8 +770,8 @@
715 770 const getAllClearFieldsFunc = (v) => {
716 771 detailClearObj.value = v;
717 772 detailClearTemplateData.value = `
718   - 报警详细信息:${v.alarmDetails}
719   - `;
  773 + 报警详细信息:${v.alarmDetails}
  774 + `;
720 775 };
721 776 //启用规则
722 777 const getAllClearFieldsEnabFunc = (v) => {
... ... @@ -757,7 +812,7 @@
757 812 return f.label;
758 813 }
759 814 } catch (e) {
760   - console.log(e);
  815 + return e;
761 816 }
762 817 });
763 818 const findDayCustomByValue = findDay.map((f, i) => {
... ... @@ -766,7 +821,7 @@
766 821 return f.label;
767 822 }
768 823 } catch (e) {
769   - console.log(e);
  824 + return e;
770 825 }
771 826 });
772 827 enableClearTemplateData.value =
... ... @@ -774,13 +829,15 @@
774 829 ? `始终启用`
775 830 : v.schedule == 'SPECIFIC_TIME'
776 831 ? `
777   - 开始时间:${v.startsOn},结束时间:${v.endsOn},天数:${findDayByValue}
778   - `
  832 + 开始时间:${v.startsOn},结束时间:${v.endsOn},天数:${findDayByValue}
  833 + `
779 834 : `天数:${findDayCustomByValue},开始时间: ${v.startsOn1},结束时间:${v.endsOn1}`;
780 835 };
781 836 //规则条件
782   - const getAllClearFieldsRuleFunc = (v, v1) => {
783   - ruleObj.value = v;
  837 + const getAllClearFieldsRuleFunc = (v) => {
  838 + ruleLastObj.value = v;
  839 + console.log(v);
  840 +
784 841 const findDay = [
785 842 { label: '等于', value: 'EQUAL' },
786 843 { label: '不等于', value: 'NOT_EQUAL' },
... ... @@ -801,10 +858,10 @@
801 858 }
802 859 });
803 860 ruleClearTemplateData.value = `
804   - 键名:${v.key1} 操作:${findRuleByValue?.label} 值:${v.value1}
805   - `;
  861 + 键名:${v.key1} 操作:${findRuleByValue?.label} 值:${v.value1}
  862 + `;
806 863
807   - ruleLastObj.value = v1;
  864 + // ruleLastObj.value = v1;
808 865 const predicate = {
809 866 operation: ruleObj.value.operation,
810 867 value: {
... ... @@ -842,6 +899,7 @@
842 899 };
843 900 Object.assign(addClearitionalObj.value, getValueConditon);
844 901 };
  902 +
845 903 //生成uuid
846 904 function generateUUID() {
847 905 let d = new Date().getTime();
... ... @@ -857,166 +915,29 @@
857 915 }
858 916 const handleFormStep3toStep4Next = async () => {
859 917 try {
860   - changeGetDetailValue.value = getRegisterFormChangeDetail();
861   - changeGetClearDetailValue.value = getRegisterFormClearChangeDetail();
862   - if (enableObj.value.schedule == 'CUSTOM') {
863   - // for (let i in enableObj.value) {
864   - // console.log(i);
865   - // // let o = {};
866   - // // if(enableObj.value[i]=='1')
867   - // // o[i] = enableObj.value[i];
868   - // // getSchduleCustomValue.value.push(o);
869   - // // getSchduleCustomValue.value.push(enableObj.value[i]);
870   - // }
871   - // switch (enableObj.value.daysOfWeek1[0]) {
872   - // case '1':
873   - // getSchduleCustomValue.value.push({
874   - // enabled: true,
875   - // dayOfWeek: enableObj.value.daysOfWeek1[0],
876   - // startsOn: enableObj.value.startsOn1,
877   - // endsOn: enableObj.value.endsOn1,
878   - // });
879   - // break;
880   - // case '2':
881   - // getSchduleCustomValue.value.push({
882   - // enabled: true,
883   - // dayOfWeek: enableObj.value.daysOfWeek2[0],
884   - // startsOn: enableObj.value.startsOn2,
885   - // endsOn: enableObj.value.endsOn2,
886   - // });
887   - // break;
888   - // case '3':
889   - // getSchduleCustomValue.value.push({
890   - // enabled: true,
891   - // dayOfWeek: enableObj.value.daysOfWeek3[0],
892   - // startsOn: enableObj.value.startsOn3,
893   - // endsOn: enableObj.value.endsOn3,
894   - // });
895   - // break;
896   - // }
897   - scheduleCustomValue.value = {
898   - type: enableObj.value.schedule,
899   - timezone: enableObj.value.timezone,
900   - items: getSchduleCustomValue.value,
901   - };
902   - }
903   - //清除报警规则---报警日程表
904   - if (enableClearObj.value.schedule == 'CUSTOM') {
905   - switch (enableClearObj.value.daysOfWeek1[0]) {
906   - case '1':
907   - getSchduleClearCustomValue.value.push({
908   - enabled: true,
909   - dayOfWeek: enableClearObj.value.daysOfWeek1[0],
910   - startsOn: enableClearObj.value.startsOn1,
911   - endsOn: enableClearObj.value.endsOn1,
912   - });
913   - break;
914   - case '2':
915   - getSchduleClearCustomValue.value.push({
916   - enabled: true,
917   - dayOfWeek: enableClearObj.value.daysOfWeek2[0],
918   - startsOn: enableClearObj.value.startsOn2,
919   - endsOn: enableClearObj.value.endsOn2,
920   - });
921   - break;
922   - case '3':
923   - getSchduleClearCustomValue.value.push({
924   - enabled: true,
925   - dayOfWeek: enableClearObj.value.daysOfWeek3[0],
926   - startsOn: enableClearObj.value.startsOn3,
927   - endsOn: enableClearObj.value.endsOn3,
928   - });
929   - break;
930   - }
931   - scheduleCustomClearValue.value = {
932   - type: enableClearObj.value.schedule,
933   - timezone: enableClearObj.value.timezone,
934   - items: getSchduleClearCustomValue.value,
935   - };
936   - }
937   - const scheduleClearValue = {
938   - type: enableClearObj.value.schedule,
939   - daysOfWeek: enableClearObj.value.daysOfWeek,
940   - endsOn: enableClearObj.value.endsOn,
941   - startsOn: enableClearObj.value.startOn,
942   - timezone: enableClearObj.value.timezone,
943   - };
944   - const getClearSchedule = {
945   - schedule:
946   - enableClearObj.value.schedule == 'CUSTOM'
947   - ? scheduleCustomClearValue.value
948   - : scheduleClearValue,
949   - };
950   - const getClearAdditionalProp = Object.assign(
951   - {},
952   - changeGetClearDetailValue.value,
953   - getClearSchedule
954   - );
955   - const scheduleValue = {
956   - type: enableObj.value.schedule,
957   - daysOfWeek: enableObj.value.daysOfWeek,
958   - endsOn: enableObj.value.endsOn,
959   - startsOn: enableObj.value.startOn,
960   - timezone: enableObj.value.timezone,
961   - };
962   - const getSchedule = {
963   - schedule:
964   - enableObj.value.schedule == 'CUSTOM' ? scheduleCustomValue.value : scheduleValue,
965   - };
966   -
967   - const getAdditionalProp = Object.assign({}, changeGetDetailValue.value, getSchedule);
968   - const getScheduleAndAlarmDetails = Object.assign(
969   - {},
970   - getAdditionalProp,
971   - additionalObj.value
972   - );
973   - const getScheduleAndClearAlarmDetails = Object.assign(
974   - {},
975   - getClearAdditionalProp,
976   - addClearitionalObj.value
977   - );
978   - const getIsWhereTypeValue: any = isWhereTypeValue.value;
979   - const getAdditionalPropObj = {
980   - [getIsWhereTypeValue]: getScheduleAndAlarmDetails,
981   - };
982   - const getCreateRulesAllObj = {
983   - createRules: getAdditionalPropObj,
984   - };
985   - const getClearRulesAllObj = {
986   - clearRule: getScheduleAndClearAlarmDetails,
987   - };
988   - const valueRegisterForm = await validateRegisterForm();
989   - const valueRegisterFormAndId = {
990   - alarmType: Object.values(valueRegisterForm)[0],
991   - };
  918 + validateRegisterFormFunc();
  919 + validateRegisterFormHighSettingFunc();
992 920 const objectId = {
993 921 id: generateUUID(),
994 922 };
995   - const valueRegisterFormHighSetting = await validateRegisterFormHighSetting();
996   - const valueRegisterFormCreateAlarm = await validateRegisterFormCreateAlarm();
997   - console.log(valueRegisterFormCreateAlarm);
998   - const getValueRegisterFormHighSetting = {
999   - propagate: valueRegisterFormHighSetting?.propagate,
1000   - propagateRelationTypes: [valueRegisterFormHighSetting?.propagateRelationTypes].flat(1),
1001   - };
1002   - Object.assign(
1003   - emptyObj.value,
1004   - valueRegisterFormAndId,
1005   - getValueRegisterFormHighSetting,
1006   - getCreateRulesAllObj,
1007   - getClearRulesAllObj,
1008   - objectId
1009   - );
1010   - if (alarmss.value.length == 0) {
1011   - alarmss.value.push(emptyObj.value);
1012   - }
1013   - const getAlarms = {
1014   - alarms: alarmss.value,
  923 + getRegisterFormChangeDetailFunc();
  924 + addCreateRuleFunc();
  925 + addClearAlaramRule();
  926 + console.log(addCreateRulesObj);
  927 + console.log(getClearObj.value);
  928 +
  929 + getAllObjTemp.value = {
  930 + ...addCreateRulesObj,
  931 + ...getClearObj.value,
  932 + ...objectId,
  933 + ...alarmTypeGet.value,
  934 + ...propagateAndpropagateRelationTypes,
1015 935 };
1016   - Object.assign(getAllFormData.value, getAlarms);
1017   - emit('next', getAllFormData.value);
  936 + allAlarms.value.push(getAllObjTemp.value as never);
  937 + emit('next', allAlarms.value);
1018 938 } catch (error) {}
1019 939 };
  940 +
1020 941 const [registerModal1, { openModal: openModal1 }] = useModal();
1021 942 const [registerModal2, { openModal: openModal2 }] = useModal();
1022 943 const [registerModal3, { openModal: openModal3 }] = useModal();
... ... @@ -1087,13 +1008,15 @@
1087 1008 };
1088 1009
1089 1010 return {
  1011 + getChildData5,
  1012 + getChildData6,
  1013 + refAlarmDetailTemplate,
1090 1014 resetRegisterFormChangeDetailFunc,
1091 1015 resetRegisterFormClearChangeDetailFunc,
1092 1016 setRegisterFormClearChangeDetailFunc,
1093 1017 setRegisterFormChangeDetailFunc,
1094 1018 registerFormChangeClearDetail,
1095 1019 registerFormChangeDetail,
1096   - ruleNumber,
1097 1020 resetEnableClearFormDataFunc,
1098 1021 resetTemplateClearFormDataFunc,
1099 1022 resetRulesClearFormDataFunc,
... ... @@ -1107,7 +1030,6 @@
1107 1030 retryTemplateFormDataFunc,
1108 1031 retryRulesFormDataFunc,
1109 1032 clearProfileDataFunc,
1110   - clearIndex,
1111 1033 retryRegisterFormFunc,
1112 1034 retryRegisterFormHighSettingmFunc,
1113 1035 retryRegisterFormCreateAlarmFunc,
... ...
  1 +{
  2 + "name": "1",
  3 + "defaultRuleChainId": "de8bf640-8892-11ec-ac19-e398562c8b61",
  4 + "defaultQueueName": "HighPriority",
  5 + "description": "1",
  6 + "icon": "",
  7 + "transportType": "DEFAULT",
  8 + "profileData": {
  9 + "alarms": [
  10 + {
  11 + "createRules": {
  12 + "MAJOR": {
  13 + "alarmDetails": "1",
  14 + "schedule": {
  15 + "type": "ANY_TIME",
  16 + "timezone": "Asia/Shanghai (UTC+08:00)"
  17 + },
  18 + "condition": {
  19 + "type": "TIME_SERIES",
  20 + "key1": "1",
  21 + "type1": "NUMERIC",
  22 + "operation": "GREATER_OR_EQUAL",
  23 + "value1": "1",
  24 + "id": 3
  25 + }
  26 + },
  27 + "MINOR": {
  28 + "alarmDetails": "2",
  29 + "schedule": {
  30 + "type": "ANY_TIME",
  31 + "timezone": "Asia/Shanghai (UTC+08:00)"
  32 + },
  33 + "condition": {
  34 + "type": "TIME_SERIES",
  35 + "key1": "2",
  36 + "type1": "NUMERIC",
  37 + "operation": "GREATER",
  38 + "value1": "2",
  39 + "id": 2
  40 + }
  41 + }
  42 + },
  43 + "clearRule": {
  44 + "schedule": {
  45 + "type": "ANY_TIME",
  46 + "timezone": "Asia/Shanghai (UTC+08:00)"
  47 + },
  48 + "condition": {
  49 + "type": "TIME_SERIES",
  50 + "key1": "3",
  51 + "type1": "NUMERIC",
  52 + "operation": "LESS_OR_EQUAL",
  53 + "value1": "3",
  54 + "id": 2
  55 + },
  56 + "alarmDetails": "3"
  57 + },
  58 + "id": "a5043fdc-2ad0-4d7c-8a29-fa7e8e18fe8d",
  59 + "alarmType": "0",
  60 + "propagate": true,
  61 + "propagateRelationTypes": ["0"]
  62 + }
  63 + ]
  64 + },
  65 + "alarmProfile": {
  66 + "alarmContactId": ["224a312c-4f52-41ef-9dce-2aac69ec2e85"],
  67 + "messageMode": ["PHONE_MESSAGE", "EMAIL_MESSAGE"]
  68 + }
  69 +}
... ...
... ... @@ -3,9 +3,8 @@ import { FormSchema } from '/@/components/Table';
3 3 export const formSchema: FormSchema[] = [
4 4 {
5 5 field: 'alarmDetails',
6   - label: '报警详细信息',
  6 + label: '',
7 7 colProps: { span: 17 },
8   - required: true,
9 8 component: 'Input',
10 9 componentProps: {
11 10 maxLength: 255,
... ...
1 1 <template>
2   - <BasicModal
3   - v-bind="$attrs"
4   - width="55rem"
5   - @register="register"
6   - :title="getTitle"
7   - @ok="handleSubmit"
8   - >
  2 + <div>
9 3 <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" />
10   - </BasicModal>
  4 + </div>
11 5 </template>
12 6 <script lang="ts">
13   - import { defineComponent, ref, computed, unref } from 'vue';
14   - import { BasicModal, useModalInner } from '/@/components/Modal';
  7 + import { defineComponent, ref } from 'vue';
15 8 import { BasicForm, useForm } from '/@/components/Form';
16 9 import { formSchema } from './config';
17 10
18 11 export default defineComponent({
19 12 name: 'DetailTemplate',
20 13 components: {
21   - BasicModal,
22 14 BasicForm,
23 15 },
24 16 emits: ['success', 'register', 'getAllFields'],
25   - setup(_, { emit }) {
26   - // const getValueData: any = ref({});
27   - const isUpdate = ref(true);
28   - const [registerForm, { getFieldsValue, resetFields }] = useForm({
  17 + setup() {
  18 + const fieldValue: any = ref({});
  19 + const [registerForm, { getFieldsValue }] = useForm({
29 20 labelWidth: 120,
30 21 schemas: formSchema,
31 22 });
32   - const getTitle = computed(() => (!unref(isUpdate) ? '新增详情模板' : '编辑详情模板'));
33   - const [register, { closeModal }] = useModalInner((data) => {
34   - isUpdate.value = !!data?.isUpdate;
35   - });
36   - const resetDataFunc = () => {
37   - resetFields();
38   - };
39   - const handleSubmit = () => {
40   - const values = getFieldsValue();
41   - emit('getAllFields', values);
42   - // let getV = {};
43   - // getAllFields(getV);
44   - closeModal();
  23 +
  24 + const getFieldsValueFunc = () => {
  25 + fieldValue.value = getFieldsValue();
  26 + return fieldValue.value;
45 27 };
46   - // function getAllFields(getV) {
47   - // const values = getFieldsValue();
48   - // getValueData.value = values;
49   - // getV = getValueData.value;
50   - // return getV;
51   - // }
  28 +
52 29 return {
53   - resetDataFunc,
54   - // getAllFields,
  30 + getFieldsValueFunc,
55 31 registerForm,
56   - handleSubmit,
57   - register,
58   - getTitle,
59 32 };
60 33 },
61 34 });
... ...
... ... @@ -23,7 +23,7 @@ export const isTimeAll = (type: string) => {
23 23
24 24 export const formSchema: FormSchema[] = [
25 25 {
26   - field: 'schedule',
  26 + field: 'type',
27 27 label: '报警日程表',
28 28 colProps: { span: 12 },
29 29 required: true,
... ... @@ -55,7 +55,7 @@ export const formSchema: FormSchema[] = [
55 55 ],
56 56 },
57 57 ifShow: ({ values }) =>
58   - isWenDu(Reflect.get(values, 'schedule')) || isTimeAll(Reflect.get(values, 'schedule')),
  58 + isWenDu(Reflect.get(values, 'type')) || isTimeAll(Reflect.get(values, 'type')),
59 59 },
60 60
61 61 {
... ... @@ -73,7 +73,7 @@ export const formSchema: FormSchema[] = [
73 73 },
74 74 ],
75 75 },
76   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  76 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
77 77 },
78 78 {
79 79 field: 'startsOn1',
... ... @@ -85,7 +85,7 @@ export const formSchema: FormSchema[] = [
85 85 colProps: {
86 86 span: 8,
87 87 },
88   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  88 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
89 89 },
90 90 {
91 91 field: 'endsOn1',
... ... @@ -97,7 +97,7 @@ export const formSchema: FormSchema[] = [
97 97 colProps: {
98 98 span: 8,
99 99 },
100   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  100 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
101 101 },
102 102
103 103 {
... ... @@ -115,7 +115,7 @@ export const formSchema: FormSchema[] = [
115 115 },
116 116 ],
117 117 },
118   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  118 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
119 119 },
120 120 {
121 121 field: 'startsOn2',
... ... @@ -127,7 +127,7 @@ export const formSchema: FormSchema[] = [
127 127 colProps: {
128 128 span: 8,
129 129 },
130   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  130 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
131 131 },
132 132 {
133 133 field: 'endsOn2',
... ... @@ -139,7 +139,7 @@ export const formSchema: FormSchema[] = [
139 139 colProps: {
140 140 span: 8,
141 141 },
142   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  142 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
143 143 },
144 144 {
145 145 field: 'daysOfWeek3',
... ... @@ -156,7 +156,7 @@ export const formSchema: FormSchema[] = [
156 156 },
157 157 ],
158 158 },
159   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  159 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
160 160 },
161 161 {
162 162 field: 'startsOn3',
... ... @@ -168,7 +168,7 @@ export const formSchema: FormSchema[] = [
168 168 colProps: {
169 169 span: 8,
170 170 },
171   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  171 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
172 172 },
173 173 {
174 174 field: 'endsOn3',
... ... @@ -180,7 +180,7 @@ export const formSchema: FormSchema[] = [
180 180 colProps: {
181 181 span: 8,
182 182 },
183   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  183 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
184 184 },
185 185 {
186 186 field: 'daysOfWeek4',
... ... @@ -197,7 +197,7 @@ export const formSchema: FormSchema[] = [
197 197 },
198 198 ],
199 199 },
200   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  200 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
201 201 },
202 202 {
203 203 field: 'startsOn4',
... ... @@ -209,7 +209,7 @@ export const formSchema: FormSchema[] = [
209 209 colProps: {
210 210 span: 8,
211 211 },
212   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  212 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
213 213 },
214 214 {
215 215 field: 'endsOn4',
... ... @@ -221,7 +221,7 @@ export const formSchema: FormSchema[] = [
221 221 colProps: {
222 222 span: 8,
223 223 },
224   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  224 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
225 225 },
226 226 {
227 227 field: 'daysOfWeek5',
... ... @@ -238,7 +238,7 @@ export const formSchema: FormSchema[] = [
238 238 },
239 239 ],
240 240 },
241   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  241 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
242 242 },
243 243 {
244 244 field: 'startsOn5',
... ... @@ -250,7 +250,7 @@ export const formSchema: FormSchema[] = [
250 250 colProps: {
251 251 span: 8,
252 252 },
253   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  253 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
254 254 },
255 255 {
256 256 field: 'endsOn5',
... ... @@ -262,7 +262,7 @@ export const formSchema: FormSchema[] = [
262 262 colProps: {
263 263 span: 8,
264 264 },
265   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  265 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
266 266 },
267 267 {
268 268 field: 'daysOfWeek6',
... ... @@ -279,7 +279,7 @@ export const formSchema: FormSchema[] = [
279 279 },
280 280 ],
281 281 },
282   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  282 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
283 283 },
284 284 {
285 285 field: 'startsOn6',
... ... @@ -291,7 +291,7 @@ export const formSchema: FormSchema[] = [
291 291 colProps: {
292 292 span: 8,
293 293 },
294   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  294 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
295 295 },
296 296 {
297 297 field: 'endsOn6',
... ... @@ -303,7 +303,7 @@ export const formSchema: FormSchema[] = [
303 303 colProps: {
304 304 span: 8,
305 305 },
306   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  306 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
307 307 },
308 308 {
309 309 field: 'daysOfWeek7',
... ... @@ -320,7 +320,7 @@ export const formSchema: FormSchema[] = [
320 320 },
321 321 ],
322 322 },
323   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  323 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
324 324 },
325 325 {
326 326 field: 'startsOn7',
... ... @@ -332,7 +332,7 @@ export const formSchema: FormSchema[] = [
332 332 colProps: {
333 333 span: 8,
334 334 },
335   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  335 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
336 336 },
337 337 {
338 338 field: 'endsOn7',
... ... @@ -344,7 +344,7 @@ export const formSchema: FormSchema[] = [
344 344 colProps: {
345 345 span: 8,
346 346 },
347   - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'schedule')),
  347 + ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')),
348 348 },
349 349
350 350 {
... ... @@ -392,7 +392,7 @@ export const formSchema: FormSchema[] = [
392 392 },
393 393 ],
394 394 },
395   - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'schedule')),
  395 + ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')),
396 396 },
397 397 {
398 398 field: 'startsOn',
... ... @@ -404,7 +404,7 @@ export const formSchema: FormSchema[] = [
404 404 componentProps: {
405 405 valueFormat: 'HH:mm:ss',
406 406 },
407   - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'schedule')),
  407 + ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')),
408 408 },
409 409 {
410 410 field: 'endsOn',
... ... @@ -416,6 +416,6 @@ export const formSchema: FormSchema[] = [
416 416 componentProps: {
417 417 valueFormat: 'HH:mm:ss',
418 418 },
419   - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'schedule')),
  419 + ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')),
420 420 },
421 421 ];
... ...
... ... @@ -158,6 +158,7 @@ export const step3CreateAlarm: FormSchema[] = [
158 158 {
159 159 field: 'default',
160 160 component: 'Select',
  161 + required: true,
161 162 label: '报警严重程度:',
162 163 colProps: {
163 164 span: 17,
... ...
... ... @@ -26,7 +26,6 @@ interface IAlarms {
26 26 id: string;
27 27 alarmType: string;
28 28 createRules: ICreateRule;
29   - // clearRule?: IClearRule[];
30 29 propagate: boolean;
31 30 propagateRelationTypes: string[];
32 31 }
... ... @@ -38,3 +37,12 @@ export interface IProfileData {
38 37 alarms?: IAlarms[];
39 38 clearRule?: IClearRule[];
40 39 }
  40 +
  41 +export interface IAddAlarms {
  42 + id: string;
  43 + alarmType: string;
  44 + createRules: [];
  45 + clearRule: {};
  46 + propagate: boolean;
  47 + propagateRelationTypes: string[];
  48 +}
... ...