Commit 67e1cea4bcdc68edf32c0e0967dba1b55385f9c7
Merge branch 'ft-dev' into 'main'
feat:新增场景联动新增按钮,删除按钮和编辑按钮权限,fix:修复设备配置编辑第三步数据回显和无法删除报警规则,修改设备配置文件夹名字 See merge request huang/yun-teng-iot-front!142
Showing
29 changed files
with
521 additions
and
1054 deletions
src/hooks/web/useGenerateUUID.ts
0 → 100644
| 1 | +//生成uuid | |
| 2 | +export function generateUUID() { | |
| 3 | + let d = new Date().getTime(); | |
| 4 | + if (window.performance && typeof window.performance.now === 'function') { | |
| 5 | + d += performance.now(); | |
| 6 | + } | |
| 7 | + const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |
| 8 | + const r = (d + Math.random() * 16) % 16 | 0; | |
| 9 | + d = Math.floor(d / 16); | |
| 10 | + return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16); | |
| 11 | + }); | |
| 12 | + return uuid; | |
| 13 | +} | ... | ... |
src/views/device/profile/cpns/config.ts
deleted
100644 → 0
| 1 | -import { FormSchema } from '/@/components/Form'; | |
| 2 | -import { findDictItemByCode } from '/@/api/system/dict'; | |
| 3 | -import { alarmContactGetPage } from '/@/api/device/deviceConfigApi'; | |
| 4 | - | |
| 5 | -export const alertContactsSchemas: FormSchema[] = [ | |
| 6 | - { | |
| 7 | - field: 'alarmContactId', | |
| 8 | - label: '告警通知联系人', | |
| 9 | - component: 'ApiSelect', | |
| 10 | - required: true, | |
| 11 | - componentProps: { | |
| 12 | - mode: 'multiple', | |
| 13 | - api: alarmContactGetPage, | |
| 14 | - labelField: 'username', | |
| 15 | - valueField: 'id', | |
| 16 | - resultField: 'items', | |
| 17 | - }, | |
| 18 | - }, | |
| 19 | - { | |
| 20 | - field: 'messageMode', | |
| 21 | - label: '告警通知方式', | |
| 22 | - required: true, | |
| 23 | - component: 'ApiSelect', | |
| 24 | - componentProps: { | |
| 25 | - mode: 'multiple', | |
| 26 | - api: findDictItemByCode, | |
| 27 | - params: { | |
| 28 | - dictCode: 'message_type', | |
| 29 | - }, | |
| 30 | - labelField: 'itemText', | |
| 31 | - valueField: 'itemValue', | |
| 32 | - }, | |
| 33 | - }, | |
| 34 | -]; |
src/views/device/profile/cpns/index.vue
deleted
100644 → 0
| 1 | -<template> | |
| 2 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="register" /> | |
| 3 | -</template> | |
| 4 | -<script lang="ts"> | |
| 5 | - import { defineComponent, ref } from 'vue'; | |
| 6 | - import { BasicForm, useForm } from '/@/components/Form/index'; | |
| 7 | - import { alertContactsSchemas } from './config'; | |
| 8 | - | |
| 9 | - export default defineComponent({ | |
| 10 | - components: { BasicForm }, | |
| 11 | - setup() { | |
| 12 | - const getValueData: any = ref({}); | |
| 13 | - const [register, { getFieldsValue, resetFields }] = useForm({ | |
| 14 | - schemas: alertContactsSchemas, | |
| 15 | - actionColOptions: { | |
| 16 | - span: 24, | |
| 17 | - }, | |
| 18 | - }); | |
| 19 | - function getAllFields(getV) { | |
| 20 | - const values = getFieldsValue(); | |
| 21 | - getValueData.value = values; | |
| 22 | - getV = getValueData.value; | |
| 23 | - return getV; | |
| 24 | - } | |
| 25 | - const customResetStep4AndFunc = () => { | |
| 26 | - resetFields(); | |
| 27 | - }; | |
| 28 | - return { | |
| 29 | - customResetStep4AndFunc, | |
| 30 | - getAllFields, | |
| 31 | - register, | |
| 32 | - }; | |
| 33 | - }, | |
| 34 | - }); | |
| 35 | -</script> |
src/views/device/profile/deviceConfigDetail.vue
deleted
100644 → 0
| 1 | -<template> | |
| 2 | - <div> | |
| 3 | - <BasicModal | |
| 4 | - :showCancelBtn="false" | |
| 5 | - :showOkBtn="false" | |
| 6 | - v-bind="$attrs" | |
| 7 | - width="55rem" | |
| 8 | - @register="register" | |
| 9 | - :title="getTitle" | |
| 10 | - > | |
| 11 | - <Tabs @change="handleChange" v-model:activeKey="activeKey"> | |
| 12 | - <TabPane key="1" tab="详情"> | |
| 13 | - <BasicForm | |
| 14 | - :showSubmitButton="false" | |
| 15 | - :showResetButton="false" | |
| 16 | - @register="registerDetail" | |
| 17 | - /> | |
| 18 | - </TabPane> | |
| 19 | - <TabPane key="2" tab="传输配置" force-render> | |
| 20 | - <BasicForm :showSubmitButton="false" :showResetButton="false" @register="registerTrans" | |
| 21 | - /></TabPane> | |
| 22 | - <TabPane key="3" tab="报警规则"> | |
| 23 | - <div style="padding-top: 10px"> | |
| 24 | - <div style="border-radius: 10px"> | |
| 25 | - <p style="font-weight: 900">报警规则</p> | |
| 26 | - <div class="input-style" style="margin-left: 15px"> | |
| 27 | - <BasicForm | |
| 28 | - :showSubmitButton="false" | |
| 29 | - :showResetButton="false" | |
| 30 | - @register="registerStep3Schemas" | |
| 31 | - /> | |
| 32 | - <BasicForm | |
| 33 | - :showSubmitButton="false" | |
| 34 | - :showResetButton="false" | |
| 35 | - @register="registerStep3HighSetting" | |
| 36 | - /> | |
| 37 | - <BasicForm | |
| 38 | - :showSubmitButton="false" | |
| 39 | - :showResetButton="false" | |
| 40 | - @register="registerStep3CreateAlarm" | |
| 41 | - /> | |
| 42 | - <BasicForm | |
| 43 | - :showSubmitButton="false" | |
| 44 | - :showResetButton="false" | |
| 45 | - @register="registerStep3RuleAlarm" | |
| 46 | - /> | |
| 47 | - <BasicForm | |
| 48 | - :showSubmitButton="false" | |
| 49 | - :showResetButton="false" | |
| 50 | - @register="registerStep3Condition" | |
| 51 | - /> | |
| 52 | - <BasicForm | |
| 53 | - :showSubmitButton="false" | |
| 54 | - :showResetButton="false" | |
| 55 | - @register="registerStep3Enable" | |
| 56 | - /> | |
| 57 | - <BasicForm | |
| 58 | - :showSubmitButton="false" | |
| 59 | - :showResetButton="false" | |
| 60 | - @register="registerStep3TemplateDetail" | |
| 61 | - /> | |
| 62 | - </div> | |
| 63 | - </div> | |
| 64 | - <div style="border-radius: 10px; margin-top: 15px"> | |
| 65 | - <p style="font-weight: 900">清除报警规则</p> | |
| 66 | - <div class="clear-input-style" style="margin-left: 15px"> | |
| 67 | - <BasicForm | |
| 68 | - :showSubmitButton="false" | |
| 69 | - :showResetButton="false" | |
| 70 | - @register="registerStep3ClearRuleAlarm" | |
| 71 | - /> | |
| 72 | - <BasicForm | |
| 73 | - :showSubmitButton="false" | |
| 74 | - :showResetButton="false" | |
| 75 | - @register="registerStep3ClearCondition" | |
| 76 | - /> | |
| 77 | - <BasicForm | |
| 78 | - :showSubmitButton="false" | |
| 79 | - :showResetButton="false" | |
| 80 | - @register="registerStep3ClearEnable" | |
| 81 | - /> | |
| 82 | - <BasicForm | |
| 83 | - :showSubmitButton="false" | |
| 84 | - :showResetButton="false" | |
| 85 | - @register="registerStep3ClearTemplateDetail" | |
| 86 | - /> | |
| 87 | - </div> | |
| 88 | - </div> | |
| 89 | - </div> | |
| 90 | - </TabPane> | |
| 91 | - <TabPane key="4" tab="告警管理"> | |
| 92 | - <BasicForm :showSubmitButton="false" :showResetButton="false" @register="registerContact" | |
| 93 | - /></TabPane> | |
| 94 | - </Tabs> | |
| 95 | - </BasicModal> | |
| 96 | - </div> | |
| 97 | -</template> | |
| 98 | -<script lang="ts"> | |
| 99 | - import { defineComponent, ref, computed, watch } from 'vue'; | |
| 100 | - import { BasicModal, useModalInner } from '/@/components/Modal'; | |
| 101 | - import { Tabs } from 'ant-design-vue'; | |
| 102 | - import { deviceConfigGetDetail } from '/@/api/device/deviceConfigApi'; | |
| 103 | - import { BasicForm, useForm } from '/@/components/Form/index'; | |
| 104 | - import { | |
| 105 | - step1Schemas, | |
| 106 | - step2Schemas, | |
| 107 | - step3Schemas, | |
| 108 | - step3ViewHighSetting, | |
| 109 | - step3CreateAlarm, | |
| 110 | - alertContactsSchemas, | |
| 111 | - } from './step/data'; | |
| 112 | - | |
| 113 | - import { formSchema as conditionFormSchema } from './step/cpns/alarmruleconditions/config'; | |
| 114 | - import { formSchema as enableSchema } from './step/cpns/enablerule/config'; | |
| 115 | - import { formSchema as detailSchema } from './step/cpns/detailtemplate/config'; | |
| 116 | - import { formSchema as echoFormSchema } from './step/cpns/alarmruleconditions/cpns/config'; | |
| 117 | - import { formSchema as conditionFormClearschema } from './step/cpns/alarmruleconditions/config'; | |
| 118 | - import { formSchema as enableClearSchema } from './step/cpns/enablerule/config'; | |
| 119 | - import { formSchema as detailClearSchema } from './step/cpns/detailtemplate/config'; | |
| 120 | - import { formSchema as echoFormClearSchema } from './step/cpns/alarmruleconditions/cpns/config'; | |
| 121 | - | |
| 122 | - export default defineComponent({ | |
| 123 | - name: 'ConfigDrawer', | |
| 124 | - components: { Tabs, TabPane: Tabs.TabPane, BasicModal, BasicForm }, | |
| 125 | - emits: ['success', 'register'], | |
| 126 | - setup() { | |
| 127 | - const activeKey = ref('1'); | |
| 128 | - const isUpdate = ref(true); | |
| 129 | - const descInfo: any = ref(null); | |
| 130 | - const dataInfo: any = ref(''); | |
| 131 | - const [registerDetail, { resetFields, setFieldsValue: setRegisterDetail }] = useForm({ | |
| 132 | - schemas: step1Schemas, | |
| 133 | - actionColOptions: { | |
| 134 | - span: 24, | |
| 135 | - }, | |
| 136 | - }); | |
| 137 | - const [registerTrans, { setFieldsValue: setRegisterTrans }] = useForm({ | |
| 138 | - schemas: step2Schemas, | |
| 139 | - actionColOptions: { | |
| 140 | - span: 24, | |
| 141 | - }, | |
| 142 | - }); | |
| 143 | - const [ | |
| 144 | - registerStep3Schemas, | |
| 145 | - { setFieldsValue: setRegisterStep3Schemas, resetFields: resetFieldsStep3Schemas }, | |
| 146 | - ] = useForm({ | |
| 147 | - schemas: step3Schemas, | |
| 148 | - actionColOptions: { | |
| 149 | - span: 24, | |
| 150 | - }, | |
| 151 | - }); | |
| 152 | - const [ | |
| 153 | - registerStep3HighSetting, | |
| 154 | - { setFieldsValue: setRegisterStep3HighSetting, resetFields: resetFieldsStep3HighSetting }, | |
| 155 | - ] = useForm({ | |
| 156 | - schemas: step3ViewHighSetting, | |
| 157 | - actionColOptions: { | |
| 158 | - span: 24, | |
| 159 | - }, | |
| 160 | - }); | |
| 161 | - const [ | |
| 162 | - registerStep3CreateAlarm, | |
| 163 | - { setFieldsValue: setRegisterStep3CreateAlarm, resetFields: resetFieldsStep3CreateAlarm }, | |
| 164 | - ] = useForm({ | |
| 165 | - schemas: step3CreateAlarm, | |
| 166 | - actionColOptions: { | |
| 167 | - span: 24, | |
| 168 | - }, | |
| 169 | - }); | |
| 170 | - const [ | |
| 171 | - registerContact, | |
| 172 | - { setFieldsValue: setRegisterContact, resetFields: resetFieldsContact }, | |
| 173 | - ] = useForm({ | |
| 174 | - schemas: alertContactsSchemas, | |
| 175 | - actionColOptions: { | |
| 176 | - span: 24, | |
| 177 | - }, | |
| 178 | - }); | |
| 179 | - const [ | |
| 180 | - registerStep3RuleAlarm, | |
| 181 | - { setFieldsValue: setRegisterStep3RuleAlarm, resetFields: resetFieldsStep3RuleAlarm }, | |
| 182 | - ] = useForm({ | |
| 183 | - schemas: echoFormSchema, | |
| 184 | - actionColOptions: { | |
| 185 | - span: 24, | |
| 186 | - }, | |
| 187 | - }); | |
| 188 | - const [ | |
| 189 | - registerStep3Condition, | |
| 190 | - { setFieldsValue: setRegisterStep3Condition, resetFields: resetFieldsrStep3Condition }, | |
| 191 | - ] = useForm({ | |
| 192 | - schemas: conditionFormSchema, | |
| 193 | - actionColOptions: { | |
| 194 | - span: 24, | |
| 195 | - }, | |
| 196 | - }); | |
| 197 | - const [ | |
| 198 | - registerStep3Enable, | |
| 199 | - { setFieldsValue: setRegisterStep3Enable, resetFields: resetFieldsStep3Enable }, | |
| 200 | - ] = useForm({ | |
| 201 | - schemas: enableSchema, | |
| 202 | - actionColOptions: { | |
| 203 | - span: 24, | |
| 204 | - }, | |
| 205 | - }); | |
| 206 | - const [ | |
| 207 | - registerStep3TemplateDetail, | |
| 208 | - { | |
| 209 | - setFieldsValue: setRegisterStep3TemplateDetail, | |
| 210 | - resetFields: resetFieldsStep3TemplateDetail, | |
| 211 | - }, | |
| 212 | - ] = useForm({ | |
| 213 | - schemas: detailSchema, | |
| 214 | - actionColOptions: { | |
| 215 | - span: 24, | |
| 216 | - }, | |
| 217 | - }); | |
| 218 | - | |
| 219 | - //清除报警 | |
| 220 | - const [ | |
| 221 | - registerStep3ClearRuleAlarm, | |
| 222 | - { | |
| 223 | - setFieldsValue: setRegisterStep3ClearRuleAlarm, | |
| 224 | - resetFields: resetFieldsStep3ClearRuleAlarm, | |
| 225 | - }, | |
| 226 | - ] = useForm({ | |
| 227 | - schemas: echoFormClearSchema, | |
| 228 | - actionColOptions: { | |
| 229 | - span: 24, | |
| 230 | - }, | |
| 231 | - }); | |
| 232 | - const [ | |
| 233 | - registerStep3ClearCondition, | |
| 234 | - { | |
| 235 | - setFieldsValue: setRegisterStep3ClearCondition, | |
| 236 | - resetFields: resetFieldsStep3ClearCondition, | |
| 237 | - }, | |
| 238 | - ] = useForm({ | |
| 239 | - schemas: conditionFormClearschema, | |
| 240 | - actionColOptions: { | |
| 241 | - span: 24, | |
| 242 | - }, | |
| 243 | - }); | |
| 244 | - const [ | |
| 245 | - registerStep3ClearEnable, | |
| 246 | - { setFieldsValue: setRegisterStep3ClearEnable, resetFields: resetFieldStep3ClearEnablel }, | |
| 247 | - ] = useForm({ | |
| 248 | - schemas: enableClearSchema, | |
| 249 | - actionColOptions: { | |
| 250 | - span: 24, | |
| 251 | - }, | |
| 252 | - }); | |
| 253 | - const [ | |
| 254 | - registerStep3ClearTemplateDetail, | |
| 255 | - { | |
| 256 | - setFieldsValue: setRegisterStep3ClearTemplateDetail, | |
| 257 | - resetFields: resetFieldStep3ClearTemplateDetail, | |
| 258 | - }, | |
| 259 | - ] = useForm({ | |
| 260 | - schemas: detailClearSchema, | |
| 261 | - actionColOptions: { | |
| 262 | - span: 24, | |
| 263 | - }, | |
| 264 | - }); | |
| 265 | - | |
| 266 | - const [register] = useModalInner(async (data) => { | |
| 267 | - activeKey.value = '1'; | |
| 268 | - isUpdate.value = !!data?.isUpdate; | |
| 269 | - const getV = await deviceConfigGetDetail(data.record.id); | |
| 270 | - descInfo.value = getV; | |
| 271 | - try { | |
| 272 | - resetFields(); | |
| 273 | - await setRegisterDetail({ ...descInfo.value }); | |
| 274 | - } catch (e) { | |
| 275 | - return e; | |
| 276 | - } | |
| 277 | - }); | |
| 278 | - const handleChange = (v) => { | |
| 279 | - try { | |
| 280 | - switch (v) { | |
| 281 | - // case '1': | |
| 282 | - // setRegisterDetail({ ...descInfo.value }); | |
| 283 | - // break; | |
| 284 | - case '2': | |
| 285 | - setRegisterTrans({ | |
| 286 | - transportType: descInfo.value.profileData?.transportConfiguration.type, | |
| 287 | - }); | |
| 288 | - break; | |
| 289 | - case '3': | |
| 290 | - setTimeout(() => { | |
| 291 | - resetFieldsStep3SchemasFunc(); | |
| 292 | - resetFieldsStep3HighSettingFunc(); | |
| 293 | - resetFieldsStep3CreateAlarmFunc(); | |
| 294 | - resetFieldsStep3RuleAlarmFunc(); | |
| 295 | - resetFieldsStep3RuleAlarmFunc1(); | |
| 296 | - resetFieldsrStep3ConditionFunc(); | |
| 297 | - resetFieldsStep3EnableFunc(); | |
| 298 | - resetFieldsStep3TemplateDetailFunc(); | |
| 299 | - resetFieldsStep3ClearRuleAlarmFunc(); | |
| 300 | - resetFieldsStep3ClearRuleAlarmlFunc(); | |
| 301 | - resetFieldsStep3ClearConditionFunc(); | |
| 302 | - resetFieldStep3ClearEnablelFunc(); | |
| 303 | - resetFieldStep3ClearTemplateDetailFunc(); | |
| 304 | - }, 100); | |
| 305 | - setTimeout(() => { | |
| 306 | - try { | |
| 307 | - setRegisterStep3Schemas({ | |
| 308 | - alarmType: descInfo.value.profileData?.alarms[0]?.alarmType, | |
| 309 | - }); | |
| 310 | - } catch (e) { | |
| 311 | - return e; | |
| 312 | - } | |
| 313 | - | |
| 314 | - try { | |
| 315 | - setRegisterStep3HighSetting({ | |
| 316 | - propagate: descInfo.value.profileData?.alarms[0]?.propagate, | |
| 317 | - propagateRelationTypes: | |
| 318 | - descInfo.value.profileData?.alarms[0]?.propagateRelationTypes[0], | |
| 319 | - }); | |
| 320 | - const getKey = Object.keys(descInfo.value.profileData?.alarms[0]?.createRules); | |
| 321 | - setRegisterStep3CreateAlarm({ | |
| 322 | - default: getKey[0], | |
| 323 | - }); | |
| 324 | - setRegisterStep3RuleAlarm({ | |
| 325 | - type: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
| 326 | - .condition[0].key.type, | |
| 327 | - key1: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
| 328 | - .condition[0].key.key, | |
| 329 | - type1: | |
| 330 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
| 331 | - .condition[0].valueType, | |
| 332 | - value1: | |
| 333 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
| 334 | - .condition[0].predicate.value.defaultValue, | |
| 335 | - operation: | |
| 336 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
| 337 | - .condition[0].predicate.operation, | |
| 338 | - }); | |
| 339 | - setRegisterStep3Condition({ | |
| 340 | - conditionType: | |
| 341 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.spec | |
| 342 | - .type, | |
| 343 | - }); | |
| 344 | - setRegisterStep3Enable({ | |
| 345 | - schedule: | |
| 346 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].schedule.type, | |
| 347 | - }); | |
| 348 | - setRegisterStep3TemplateDetail({ | |
| 349 | - alarmDetails: | |
| 350 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].alarmDetails, | |
| 351 | - }); | |
| 352 | - //清除报警 | |
| 353 | - setRegisterStep3ClearRuleAlarm({ | |
| 354 | - type: descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0].key | |
| 355 | - .type, | |
| 356 | - key1: descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0].key | |
| 357 | - .key, | |
| 358 | - type1: | |
| 359 | - descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0] | |
| 360 | - .valueType, | |
| 361 | - value1: | |
| 362 | - descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0] | |
| 363 | - .predicate.value.defaultValue, | |
| 364 | - operation: | |
| 365 | - descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0] | |
| 366 | - .predicate.operation, | |
| 367 | - }); | |
| 368 | - setRegisterStep3ClearCondition({ | |
| 369 | - conditionType: | |
| 370 | - descInfo.value.profileData?.alarms[0].clearRule.condition.spec.type, | |
| 371 | - }); | |
| 372 | - setRegisterStep3ClearEnable({ | |
| 373 | - schedule: descInfo.value.profileData?.alarms[0].clearRule.schedule.type, | |
| 374 | - }); | |
| 375 | - setRegisterStep3ClearTemplateDetail({ | |
| 376 | - alarmDetails: descInfo.value.profileData?.alarms[0].clearRule.alarmDetails, | |
| 377 | - }); | |
| 378 | - } catch (e) { | |
| 379 | - return e; | |
| 380 | - } | |
| 381 | - }, 1000); | |
| 382 | - break; | |
| 383 | - case '4': | |
| 384 | - setTimeout(() => { | |
| 385 | - resetFieldsContactFunc(); | |
| 386 | - }, 100); | |
| 387 | - setTimeout(() => { | |
| 388 | - try { | |
| 389 | - setRegisterContact({ | |
| 390 | - alarmContactId: descInfo.value.alarmProfile.alarmContactId, | |
| 391 | - messageMode: descInfo.value.alarmProfile.messageMode, | |
| 392 | - }); | |
| 393 | - } catch (e) { | |
| 394 | - return e; | |
| 395 | - } | |
| 396 | - }, 500); | |
| 397 | - | |
| 398 | - break; | |
| 399 | - } | |
| 400 | - } catch (e) { | |
| 401 | - return e; | |
| 402 | - } | |
| 403 | - }; | |
| 404 | - | |
| 405 | - const resetFieldsContactFunc = () => { | |
| 406 | - resetFieldsContact(); | |
| 407 | - }; | |
| 408 | - const resetFieldsStep3SchemasFunc = () => { | |
| 409 | - resetFieldsStep3Schemas(); | |
| 410 | - }; | |
| 411 | - | |
| 412 | - const resetFieldsStep3HighSettingFunc = () => { | |
| 413 | - resetFieldsStep3HighSetting(); | |
| 414 | - }; | |
| 415 | - const resetFieldsStep3CreateAlarmFunc = () => { | |
| 416 | - resetFieldsStep3CreateAlarm(); | |
| 417 | - }; | |
| 418 | - const resetFieldsStep3RuleAlarmFunc = () => { | |
| 419 | - resetFieldsStep3RuleAlarm(); | |
| 420 | - }; | |
| 421 | - | |
| 422 | - const resetFieldsrStep3ConditionFunc = () => { | |
| 423 | - resetFieldsrStep3Condition(); | |
| 424 | - }; | |
| 425 | - | |
| 426 | - const resetFieldsStep3RuleAlarmFunc1 = () => { | |
| 427 | - resetFieldsStep3RuleAlarm(); | |
| 428 | - }; | |
| 429 | - | |
| 430 | - const resetFieldsStep3EnableFunc = () => { | |
| 431 | - resetFieldsStep3Enable(); | |
| 432 | - }; | |
| 433 | - const resetFieldsStep3TemplateDetailFunc = () => { | |
| 434 | - resetFieldsStep3TemplateDetail(); | |
| 435 | - }; | |
| 436 | - //清除报警 | |
| 437 | - const resetFieldsStep3ClearRuleAlarmFunc = () => { | |
| 438 | - resetFieldsStep3ClearRuleAlarm(); | |
| 439 | - }; | |
| 440 | - const resetFieldsStep3ClearRuleAlarmlFunc = () => { | |
| 441 | - resetFieldsStep3ClearRuleAlarm(); | |
| 442 | - }; | |
| 443 | - const resetFieldsStep3ClearConditionFunc = () => { | |
| 444 | - resetFieldsStep3ClearCondition(); | |
| 445 | - }; | |
| 446 | - const resetFieldStep3ClearEnablelFunc = () => { | |
| 447 | - resetFieldStep3ClearEnablel(); | |
| 448 | - }; | |
| 449 | - const resetFieldStep3ClearTemplateDetailFunc = () => { | |
| 450 | - resetFieldStep3ClearTemplateDetail(); | |
| 451 | - }; | |
| 452 | - watch( | |
| 453 | - () => activeKey.value, | |
| 454 | - (v) => { | |
| 455 | - dataInfo.value = v; | |
| 456 | - } | |
| 457 | - ); | |
| 458 | - const getTitle = computed(() => { | |
| 459 | - return '设备配置详情'; | |
| 460 | - }); | |
| 461 | - | |
| 462 | - return { | |
| 463 | - resetFieldsContactFunc, | |
| 464 | - registerStep3ClearTemplateDetail, | |
| 465 | - registerStep3ClearEnable, | |
| 466 | - registerStep3ClearCondition, | |
| 467 | - registerStep3ClearRuleAlarm, | |
| 468 | - handleChange, | |
| 469 | - registerStep3TemplateDetail, | |
| 470 | - registerStep3Enable, | |
| 471 | - registerStep3Condition, | |
| 472 | - registerStep3RuleAlarm, | |
| 473 | - registerContact, | |
| 474 | - registerStep3HighSetting, | |
| 475 | - registerStep3CreateAlarm, | |
| 476 | - registerStep3Schemas, | |
| 477 | - registerTrans, | |
| 478 | - activeKey, | |
| 479 | - registerDetail, | |
| 480 | - register, | |
| 481 | - getTitle, | |
| 482 | - }; | |
| 483 | - }, | |
| 484 | - }); | |
| 485 | -</script> | |
| 486 | - | |
| 487 | -<style scoped lang="less"> | |
| 488 | - .input-style { | |
| 489 | - :deep .ant-form-item-control-input { | |
| 490 | - position: relative; | |
| 491 | - display: flex; | |
| 492 | - align-items: center; | |
| 493 | - min-height: 02px; | |
| 494 | - } | |
| 495 | - :deep.ant-col-24 { | |
| 496 | - display: block; | |
| 497 | - flex: 0 0 100%; | |
| 498 | - max-width: 100%; | |
| 499 | - margin-top: -20px; | |
| 500 | - } | |
| 501 | - } | |
| 502 | - | |
| 503 | - .clear-input-style { | |
| 504 | - :deep .ant-form-item-control-input { | |
| 505 | - position: relative; | |
| 506 | - display: flex; | |
| 507 | - align-items: center; | |
| 508 | - min-height: 02px; | |
| 509 | - } | |
| 510 | - :deep.ant-col-24 { | |
| 511 | - display: block; | |
| 512 | - flex: 0 0 100%; | |
| 513 | - max-width: 100%; | |
| 514 | - margin-top: -20px; | |
| 515 | - } | |
| 516 | - } | |
| 517 | -</style> |
src/views/device/profiles/DeviceProfileModal.vue
renamed from
src/views/device/profile/DeviceProfileModal.vue
| ... | ... | @@ -80,7 +80,7 @@ |
| 80 | 80 | 'handleStep2Next', |
| 81 | 81 | ], |
| 82 | 82 | setup(_, { emit }) { |
| 83 | - const { proxy } = getCurrentInstance(); | |
| 83 | + const { proxy } = getCurrentInstance() as any; | |
| 84 | 84 | const DeviceProfileStep1Ref = ref(null); |
| 85 | 85 | const DeviceProfileStep2Ref = ref(null); |
| 86 | 86 | const DeviceProfileStep3Ref = ref(null); |
| ... | ... | @@ -90,9 +90,9 @@ |
| 90 | 90 | const getStepOneData: any = ref({}); |
| 91 | 91 | const getStepTwoData: any = ref({}); |
| 92 | 92 | const getStepThreeData = ref([]); |
| 93 | - const editData = ref({}); | |
| 93 | + const editData: any = ref({}); | |
| 94 | 94 | let getBackendData = reactive({}); |
| 95 | - let getStepFourData = reactive({}); | |
| 95 | + let getStepFourData: any = reactive({}); | |
| 96 | 96 | const alarmProfileData = reactive({ |
| 97 | 97 | alarmProfile: { |
| 98 | 98 | alarmContactId: '', |
| ... | ... | @@ -112,6 +112,7 @@ |
| 112 | 112 | const isStatus: any = ref(null); |
| 113 | 113 | const isShowOkBtnFalse = ref(true); |
| 114 | 114 | const isShowRule = ref(true); |
| 115 | + const isEditAndChange = ref(true); | |
| 115 | 116 | |
| 116 | 117 | const getTitle = computed(() => |
| 117 | 118 | isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情' |
| ... | ... | @@ -135,6 +136,12 @@ |
| 135 | 136 | stepThreeData: {}, |
| 136 | 137 | }); |
| 137 | 138 | } else if (isUpdate.value == 2) { |
| 139 | + isGetStepThreeData.profileData.alarms.length = 0; | |
| 140 | + try { | |
| 141 | + proxy.$refs.DeviceProfileStep3Ref.clearEditAllRegisterFormFunc(); | |
| 142 | + } catch (e) { | |
| 143 | + return e; | |
| 144 | + } | |
| 138 | 145 | postEditId.value = data.record.id; |
| 139 | 146 | getBackendData = await deviceConfigGetDetail(postEditId.value); |
| 140 | 147 | editData.value = getBackendData; |
| ... | ... | @@ -253,7 +260,9 @@ |
| 253 | 260 | //回显创建报警规则和清除报警规则 |
| 254 | 261 | } |
| 255 | 262 | } |
| 256 | - function handleStep3Next(v) { | |
| 263 | + function handleStep3Next(v, v1) { | |
| 264 | + console.log(v1); | |
| 265 | + isEditAndChange.value = v1; | |
| 257 | 266 | current.value++; |
| 258 | 267 | getStepThreeData.value = v; |
| 259 | 268 | if (isUpdate.value == 1) { |
| ... | ... | @@ -295,8 +304,12 @@ |
| 295 | 304 | closeModal(); |
| 296 | 305 | emit('success'); |
| 297 | 306 | } else if (isUpdate.value == 2) { |
| 307 | + isGetStepThreeData.profileData.alarms = | |
| 308 | + isEditAndChange.value == true | |
| 309 | + ? editData.value.profileData.alarms | |
| 310 | + : getStepThreeData.value; | |
| 311 | + // isGetStepThreeData.profileData.alarms = getStepThreeData.value; | |
| 298 | 312 | postDeviceConfogData.value.id = postEditId.value; |
| 299 | - isGetStepThreeData.profileData.alarms = getStepThreeData.value; | |
| 300 | 313 | getStepFourData = await proxy.$refs.DeviceProfileStep4Ref.getAllFields(); |
| 301 | 314 | const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(','); |
| 302 | 315 | const getJoinMessageModeData = getStepFourData.messageMode.join(','); |
| ... | ... | @@ -322,11 +335,14 @@ |
| 322 | 335 | closeModal(); |
| 323 | 336 | try { |
| 324 | 337 | proxy.$refs.DeviceProfileStep4Ref.clearAlaramContactAndNoticeMethodFunc(); |
| 338 | + proxy.$refs.DeviceProfileStep3Ref.clearDetailTemplateFunc(); | |
| 339 | + proxy.$refs.DeviceProfileStep3Ref.clearEditAllRegisterFormFunc(); | |
| 325 | 340 | } catch (e) { |
| 326 | 341 | return e; |
| 327 | 342 | } |
| 328 | 343 | }; |
| 329 | 344 | return { |
| 345 | + // isEditFunc, | |
| 330 | 346 | isShowRule, |
| 331 | 347 | isShowOkBtnFalse, |
| 332 | 348 | isStatus, | ... | ... |
src/views/device/profiles/device.profile.data.ts
renamed from
src/views/device/profile/device.profile.data.ts
| ... | ... | @@ -2,8 +2,6 @@ import { BasicColumn } from '/@/components/Table'; |
| 2 | 2 | import { FormSchema } from '/@/components/Table'; |
| 3 | 3 | import { findDictItemByCode } from '/@/api/system/dict'; |
| 4 | 4 | import { MessageEnum } from '/@/enums/messageEnum'; |
| 5 | -// import { getOrganizationList } from '/@/api/system/system'; | |
| 6 | -// import { copyTransFun } from '/@/utils/fnUtils'; | |
| 7 | 5 | import { numberRule } from '/@/utils/rules'; |
| 8 | 6 | |
| 9 | 7 | export const columns: BasicColumn[] = [ |
| ... | ... | @@ -34,24 +32,11 @@ export const searchFormSchema: FormSchema[] = [ |
| 34 | 32 | field: 'name', |
| 35 | 33 | label: '配置名称', |
| 36 | 34 | component: 'Input', |
| 37 | - colProps: { span: 8 }, | |
| 35 | + colProps: { span: 6 }, | |
| 38 | 36 | componentProps: { |
| 39 | 37 | maxLength: 255, |
| 40 | 38 | placeholder: '请输入配置名称', |
| 41 | 39 | }, |
| 42 | - dynamicRules: () => { | |
| 43 | - return [ | |
| 44 | - { | |
| 45 | - required: false, | |
| 46 | - validator: (_, value) => { | |
| 47 | - if (String(value).length > 255) { | |
| 48 | - return Promise.reject('字数不超过255个字'); | |
| 49 | - } | |
| 50 | - return Promise.resolve(); | |
| 51 | - }, | |
| 52 | - }, | |
| 53 | - ]; | |
| 54 | - }, | |
| 55 | 40 | }, |
| 56 | 41 | ]; |
| 57 | 42 | |
| ... | ... | @@ -181,19 +166,6 @@ export const formSchema: FormSchema[] = [ |
| 181 | 166 | maxLength: 255, |
| 182 | 167 | placeholder: '请输入消息配置', |
| 183 | 168 | }, |
| 184 | - dynamicRules: () => { | |
| 185 | - return [ | |
| 186 | - { | |
| 187 | - required: false, | |
| 188 | - validator: (_, value) => { | |
| 189 | - if (String(value).length > 255) { | |
| 190 | - return Promise.reject('字数不超过255个字'); | |
| 191 | - } | |
| 192 | - return Promise.resolve(); | |
| 193 | - }, | |
| 194 | - }, | |
| 195 | - ]; | |
| 196 | - }, | |
| 197 | 169 | }, |
| 198 | 170 | { |
| 199 | 171 | field: 'id', |
| ... | ... | @@ -225,18 +197,5 @@ export const formSchema: FormSchema[] = [ |
| 225 | 197 | maxLength: 255, |
| 226 | 198 | placeholder: '请输入备注', |
| 227 | 199 | }, |
| 228 | - dynamicRules: () => { | |
| 229 | - return [ | |
| 230 | - { | |
| 231 | - required: false, | |
| 232 | - validator: (_, value) => { | |
| 233 | - if (String(value).length > 255) { | |
| 234 | - return Promise.reject('字数不超过255个字'); | |
| 235 | - } | |
| 236 | - return Promise.resolve(); | |
| 237 | - }, | |
| 238 | - }, | |
| 239 | - ]; | |
| 240 | - }, | |
| 241 | 200 | }, |
| 242 | 201 | ]; | ... | ... |
src/views/device/profiles/index.vue
renamed from
src/views/device/profile/index.vue
| ... | ... | @@ -5,7 +5,6 @@ |
| 5 | 5 | @selection-change="useSelectionChange" |
| 6 | 6 | @register="registerTable" |
| 7 | 7 | :rowSelection="{ type: 'checkbox' }" |
| 8 | - :rowClassName="setRowClassName" | |
| 9 | 8 | > |
| 10 | 9 | <template #toolbar> |
| 11 | 10 | <a-button type="primary" @click="handleCreate"> 新增设备配置 </a-button> |
| ... | ... | @@ -48,31 +47,24 @@ |
| 48 | 47 | </template> |
| 49 | 48 | </BasicTable> |
| 50 | 49 | <DeviceProfileModal @register="registerModal" @success="handleSuccess" /> |
| 51 | - <DeviceConfigDetail | |
| 52 | - ref="deviceDetailRef" | |
| 53 | - @register="registerModalDetail" | |
| 54 | - @success="handleSuccess" | |
| 55 | - /> | |
| 56 | 50 | <!-- <ExpExcelModal @register="register1" @success="defaultHeader" /> --> |
| 57 | 51 | </div> |
| 58 | 52 | </template> |
| 59 | 53 | <script lang="ts"> |
| 60 | - import { defineComponent, ref, reactive, getCurrentInstance } from 'vue'; | |
| 54 | + import { defineComponent, ref, reactive } from 'vue'; | |
| 61 | 55 | import { BasicTable, useTable, TableAction, BasicColumn } from '/@/components/Table'; |
| 62 | 56 | import { columns, searchFormSchema } from './device.profile.data'; |
| 63 | 57 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 64 | 58 | import { deviceConfigGetQuery, deviceConfigDelete } from '/@/api/device/deviceConfigApi'; |
| 65 | 59 | import { useModal } from '/@/components/Modal'; |
| 66 | 60 | import DeviceProfileModal from '/@/views/device/profile/DeviceProfileModal.vue'; |
| 67 | - import DeviceConfigDetail from '/@/views/device/profile/deviceConfigDetail.vue'; | |
| 68 | 61 | import { ImpExcel, ExcelData } from '/@/components/Excel'; |
| 69 | 62 | // import { jsonToSheetXlsx, ExportModalResult } from '/@/components/Excel'; |
| 70 | 63 | |
| 71 | 64 | export default defineComponent({ |
| 72 | 65 | name: 'DeviceProfileManagement', |
| 73 | - components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel, DeviceConfigDetail }, | |
| 66 | + components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel }, | |
| 74 | 67 | setup() { |
| 75 | - const { proxy } = getCurrentInstance(); | |
| 76 | 68 | const deviceDetailRef = ref(null); |
| 77 | 69 | let selectedRowKeys: string[] = reactive([]); |
| 78 | 70 | const getPathUrl = ref(''); |
| ... | ... | @@ -125,11 +117,11 @@ |
| 125 | 117 | const getName = getParam(getPathUrl.value, name); |
| 126 | 118 | getPathUrlName.value = decodeURIComponent(getName); |
| 127 | 119 | |
| 128 | - const setRowClassName = (record) => { | |
| 129 | - if (record.name === getPathUrlName.value) { | |
| 130 | - return 'rowcolor2'; | |
| 131 | - } | |
| 132 | - }; | |
| 120 | + // const setRowClassName = (record) => { | |
| 121 | + // if (record.name === getPathUrlName.value) { | |
| 122 | + // return 'rowcolor2'; | |
| 123 | + // } | |
| 124 | + // }; | |
| 133 | 125 | |
| 134 | 126 | const tableListRef = ref< |
| 135 | 127 | { |
| ... | ... | @@ -231,7 +223,7 @@ |
| 231 | 223 | return { |
| 232 | 224 | disabled, |
| 233 | 225 | deviceDetailRef, |
| 234 | - setRowClassName, | |
| 226 | + // setRowClassName, | |
| 235 | 227 | registerModalDetail, |
| 236 | 228 | // register1, |
| 237 | 229 | // defaultHeader, | ... | ... |
src/views/device/profiles/step/DeviceProfileStep1.vue
renamed from
src/views/device/profile/step/DeviceProfileStep1.vue
src/views/device/profiles/step/DeviceProfileStep2.vue
renamed from
src/views/device/profile/step/DeviceProfileStep2.vue
src/views/device/profiles/step/DeviceProfileStep3.vue
renamed from
src/views/device/profile/step/DeviceProfileStep3.vue
| ... | ... | @@ -67,24 +67,14 @@ |
| 67 | 67 | <div class="aic" style="border: 1px solid #bfbfbf"> |
| 68 | 68 | <div class="w-3/4" style="margin-left: 40px"> |
| 69 | 69 | <!-- 报警严重程度 --> |
| 70 | - <div style="margin-left: 10px; margin-top: 20px" | |
| 71 | - ><BasicForm v-if="childItem" @register="registerFormCreateAlarm" /> | |
| 72 | - <div> | |
| 73 | - <div | |
| 74 | - v-for="(i8, index8) in getStepThreeEditStatus ? createAlarmArray : []" | |
| 75 | - :key="index8" | |
| 76 | - style="position: relative" | |
| 77 | - > | |
| 78 | - <p | |
| 79 | - style="position: absolute; top: -10.2vh; left: 6.5vw; z-index: 1" | |
| 80 | - v-if="index8 == createIndex" | |
| 81 | - >{{ formatAlarmFunc(i8) }}</p | |
| 82 | - > | |
| 83 | - </div> | |
| 84 | - </div> | |
| 70 | + <div style="height: 2vh; margin-top: 0.8vh; margin-left: 0.35vw"> | |
| 71 | + <AlarmSeverity | |
| 72 | + ref="alarmSeverityRef" | |
| 73 | + :alarmSeverityInfo="getStepThreeEditStatus ? childItem : 1" | |
| 74 | + /> | |
| 85 | 75 | </div> |
| 86 | 76 | <!-- 报警严重程度 --> |
| 87 | - <div style="margin-left: 5px; margin-top: -35px"> | |
| 77 | + <div style="margin-left: 5px; margin-top: 35px"> | |
| 88 | 78 | <div style="color: #f5594e" class="ml-4" |
| 89 | 79 | >报警规则条件: |
| 90 | 80 | <Button |
| ... | ... | @@ -107,14 +97,6 @@ |
| 107 | 97 | >报警规则条件:{{ openRuleConditionComp(v2) }}</p |
| 108 | 98 | > |
| 109 | 99 | </template> |
| 110 | - <template | |
| 111 | - v-for="(vi, indexi) in isEditDataAndValue ? getEditDataAndValue : []" | |
| 112 | - :key="indexi" | |
| 113 | - > | |
| 114 | - <p v-if="indexi == createIndex && isEditDataAndValue" | |
| 115 | - >报警规则条件:{{ isEditDataAndValueFunc(vi) }}</p | |
| 116 | - > | |
| 117 | - </template> | |
| 118 | 100 | </div> |
| 119 | 101 | <div style="white-space: wrap; margin-top: 25px" class="mt-4 ml-4" |
| 120 | 102 | >报警启用规则: |
| ... | ... | @@ -144,27 +126,30 @@ |
| 144 | 126 | 启用方式:{{ openRuleComp(v1) }} |
| 145 | 127 | </p> |
| 146 | 128 | </template> |
| 129 | + <!-- 报警详情模板--> | |
| 147 | 130 | <div |
| 148 | 131 | class="mt-4 ml-4" |
| 149 | - style="margin-left: 0px; position: relative; margin-top: 25px" | |
| 150 | - >报警详情模板: | |
| 151 | - <div style="position: absolute; top: -5px; left: 106px; width: 581px"> | |
| 152 | - <BasicForm @register="registerFormChangeDetail" /> | |
| 153 | - </div> | |
| 154 | - <div | |
| 155 | - style="position: relative" | |
| 156 | - v-for="(i7, index7) in getStepThreeEditStatus | |
| 157 | - ? detailDetailModelArray | |
| 158 | - : []" | |
| 159 | - :key="index7" | |
| 160 | - > | |
| 161 | - <p | |
| 162 | - style="position: absolute; top: -2.3vh; left: 5.68vw" | |
| 163 | - v-if="index7 == createIndex" | |
| 164 | - >{{ i7 }}</p | |
| 165 | - > | |
| 132 | + style=" | |
| 133 | + margin-left: -0.2vw; | |
| 134 | + margin-top: 25px; | |
| 135 | + display: flex; | |
| 136 | + flex-direction: row; | |
| 137 | + justify-content: space-between; | |
| 138 | + width: 29vw; | |
| 139 | + height: 2vh; | |
| 140 | + " | |
| 141 | + > | |
| 142 | + <div style="width: 6vw; height: 2vh"> 报警详情模板: </div> | |
| 143 | + <div style="width: 25vw; height: 2vh"> | |
| 144 | + <DetailTemplate | |
| 145 | + ref="detailTemplateRef" | |
| 146 | + :detailTemplateInfo=" | |
| 147 | + getStepThreeEditStatus ? returnChildItem(childItem) : 1 | |
| 148 | + " | |
| 149 | + /> | |
| 166 | 150 | </div> |
| 167 | 151 | </div> |
| 152 | + <!-- 报警详情模板--> | |
| 168 | 153 | <div style="margin-top: 25px; position: relative"> |
| 169 | 154 | <div style="margin-left: -14px"> |
| 170 | 155 | <BasicForm @register="dashboardForm" /> |
| ... | ... | @@ -172,9 +157,10 @@ |
| 172 | 157 | </div> |
| 173 | 158 | </div> |
| 174 | 159 | </div> |
| 160 | + <!-- 移除按钮 --> | |
| 175 | 161 | <div |
| 176 | 162 | class="remove-type" |
| 177 | - style="display: inline-block; position: relative; top: -33vh; left: 39.4vw" | |
| 163 | + style="display: inline-block; position: relative; top: -25.2vh; left: 39.4vw" | |
| 178 | 164 | > |
| 179 | 165 | <img |
| 180 | 166 | v-if="isAddRuleStatus" |
| ... | ... | @@ -184,6 +170,7 @@ |
| 184 | 170 | src="../../../../assets/images/close.png" |
| 185 | 171 | /> |
| 186 | 172 | </div> |
| 173 | + <!-- 移除按钮 --> | |
| 187 | 174 | </div> |
| 188 | 175 | </div> |
| 189 | 176 | </div> |
| ... | ... | @@ -237,7 +224,6 @@ |
| 237 | 224 | @click="handleOpenClearAlaramRuleConditions" |
| 238 | 225 | >添加</Button |
| 239 | 226 | > |
| 240 | - | |
| 241 | 227 | <template |
| 242 | 228 | v-for="(v4, index4) in getStepThreeEditStatus |
| 243 | 229 | ? getFilterStepThreeEditClearArr |
| ... | ... | @@ -334,10 +320,8 @@ |
| 334 | 320 | import { |
| 335 | 321 | step3Schemas, |
| 336 | 322 | step3HighSetting, |
| 337 | - step3CreateAlarm, | |
| 338 | 323 | dashboardFormScheme, |
| 339 | 324 | isWhereType, |
| 340 | - isLostFocux, | |
| 341 | 325 | formChangeDetailSchema, |
| 342 | 326 | } from './data'; |
| 343 | 327 | import { PlusCircleOutlined } from '@ant-design/icons-vue'; |
| ... | ... | @@ -347,6 +331,9 @@ |
| 347 | 331 | import AlarmRuleConditions from './cpns/alarmruleconditions/index.vue'; |
| 348 | 332 | import { Button } from '/@/components/Button'; |
| 349 | 333 | export const isWhereTypeValueDisabled = ref(false); |
| 334 | + import AlarmSeverity from './cpns/alarmseverity/index.vue'; | |
| 335 | + import DetailTemplate from './cpns/detailtemplate/index.vue'; | |
| 336 | + import { generateUUID } from '/@/hooks/web/useGenerateUUID'; | |
| 350 | 337 | |
| 351 | 338 | export default defineComponent({ |
| 352 | 339 | components: { |
| ... | ... | @@ -357,12 +344,17 @@ |
| 357 | 344 | EnableRule, |
| 358 | 345 | AlarmRuleConditions, |
| 359 | 346 | Button, |
| 347 | + AlarmSeverity, | |
| 348 | + DetailTemplate, | |
| 360 | 349 | }, |
| 361 | - emits: ['prev', 'next', 'redo', 'handleFormStep3toStep4Next'], | |
| 350 | + emits: ['prev', 'next', 'redo', 'handleFormStep3toStep4Next', 'isEdit'], | |
| 362 | 351 | props: ['getAllStepThreeData', 'isAddOrEdit', 'isShowAddRule'], |
| 352 | + | |
| 363 | 353 | setup(props, { emit }) { |
| 354 | + const detailTemplateRef = ref(null); | |
| 355 | + const alarmSeverityRef = ref(null); | |
| 364 | 356 | const isAddRuleStatus = ref(true); |
| 365 | - const { proxy } = getCurrentInstance(); | |
| 357 | + const { proxy } = getCurrentInstance() as any; | |
| 366 | 358 | const changeGetDetailValue = ref({}); |
| 367 | 359 | const changeGetClearDetailValue = ref({}); |
| 368 | 360 | const getChildData1 = ref(null); |
| ... | ... | @@ -384,7 +376,7 @@ |
| 384 | 376 | const detailClearTemplateData: any = ref(null); |
| 385 | 377 | //重构 |
| 386 | 378 | //告警列表接口 |
| 387 | - let profileData = ref<IProfileData[]>([]); | |
| 379 | + let profileData: any = ref<IProfileData[]>([]); | |
| 388 | 380 | //初始化alarams数据 |
| 389 | 381 | const initProfileData = reactive({ |
| 390 | 382 | alarms: [ |
| ... | ... | @@ -407,7 +399,7 @@ |
| 407 | 399 | propagate: '', |
| 408 | 400 | propagateRelationTypes: [''], |
| 409 | 401 | schedule: { |
| 410 | - type: 'string', | |
| 402 | + type: '', | |
| 411 | 403 | }, |
| 412 | 404 | condition: {}, |
| 413 | 405 | }, |
| ... | ... | @@ -426,11 +418,11 @@ |
| 426 | 418 | //接收临时规则条件数据 |
| 427 | 419 | const receiveRuleConditionTempArr = ref<[]>([]); |
| 428 | 420 | //创建条件总对象 |
| 429 | - const createRulesObj = ref({}); | |
| 421 | + const createRulesObj: any = ref({}); | |
| 430 | 422 | let addCreateRulesObj = reactive({ |
| 431 | 423 | createRules: {}, |
| 432 | 424 | }); |
| 433 | - const addChangeSeverity = ref({}); | |
| 425 | + const addChangeSeverity: any = ref({}); | |
| 434 | 426 | let addNewOpenRule = reactive({ |
| 435 | 427 | schedule: {}, |
| 436 | 428 | }); |
| ... | ... | @@ -473,20 +465,21 @@ |
| 473 | 465 | condition: {}, |
| 474 | 466 | }); |
| 475 | 467 | let fliterTempRuleConditionTempArr = ref<[]>([]); |
| 476 | - let fliterTempOpenRuleTempArr = ref<[]>([]); | |
| 468 | + let fliterTempOpenRuleTempArr: any = ref<[]>([]); | |
| 477 | 469 | let fliterClearTempRuleConditionTempArr = ref<[]>([]); |
| 478 | - let fliterClearTempOpenRuleTempArr = ref<[]>([]); | |
| 470 | + let fliterClearTempOpenRuleTempArr: any = ref<[]>([]); | |
| 479 | 471 | const getStepThreeEditStatus: any = ref(false); |
| 480 | - const isEditDataAndValue = ref(false); | |
| 472 | + // const isEditDataAndValue = ref(false); | |
| 481 | 473 | const getStepThreeEditArr = ref<[]>([]); |
| 482 | - const getFilterStepThreeEditArr = ref<[]>([]); | |
| 483 | - const getFilterStepThreeEditClearArr = ref<[]>([]); | |
| 474 | + const getFilterStepThreeEditArr: any = ref<[]>([]); | |
| 475 | + const getFilterStepThreeEditClearArr: any = ref<[]>([]); | |
| 484 | 476 | const getFilterStepThreeClearDetailEditArr = ref<[]>([]); |
| 485 | 477 | let getIsShowAddRule = true; |
| 486 | 478 | const detailDetailModelArray = ref<[]>([]); |
| 487 | 479 | const createAlarmArray = ref<[]>([]); |
| 488 | 480 | const isLostFocuxStatus = ref(true); |
| 489 | - const getEditDataAndValue = ref<[]>([]); | |
| 481 | + // const getEditDataAndValue = ref<[]>([]); | |
| 482 | + const editIndex = ref(-1); | |
| 490 | 483 | |
| 491 | 484 | setTimeout(() => { |
| 492 | 485 | getIsShowAddRule = props.isShowAddRule; |
| ... | ... | @@ -558,19 +551,6 @@ |
| 558 | 551 | span: 24, |
| 559 | 552 | }, |
| 560 | 553 | }); |
| 561 | - //详情模板 | |
| 562 | - const [ | |
| 563 | - registerFormChangeDetail, | |
| 564 | - { getFieldsValue: getRegisterFormChangeDetail, resetFields: resetRegisterFormChangeDetail }, | |
| 565 | - ] = useForm({ | |
| 566 | - labelWidth: 120, | |
| 567 | - schemas: formChangeDetailSchema, | |
| 568 | - showResetButton: false, | |
| 569 | - showSubmitButton: false, | |
| 570 | - actionColOptions: { | |
| 571 | - span: 24, | |
| 572 | - }, | |
| 573 | - }); | |
| 574 | 554 | //清除详情模板 |
| 575 | 555 | const [ |
| 576 | 556 | registerFormChangeClearDetail, |
| ... | ... | @@ -588,36 +568,20 @@ |
| 588 | 568 | span: 24, |
| 589 | 569 | }, |
| 590 | 570 | }); |
| 591 | - // 添加创建条件表单 | |
| 592 | - const [ | |
| 593 | - registerFormCreateAlarm, | |
| 594 | - { | |
| 595 | - setFieldsValue: setRegisterFormCreateAlarm, | |
| 596 | - resetFields: resetRegisterFormCreateAlarm, | |
| 597 | - validate: validateRegisterFormCreateAlarm, | |
| 598 | - }, | |
| 599 | - ] = useForm({ | |
| 600 | - labelWidth: 120, | |
| 601 | - schemas: step3CreateAlarm, | |
| 602 | - showResetButton: false, | |
| 603 | - showSubmitButton: false, | |
| 604 | - actionColOptions: { | |
| 605 | - span: 24, | |
| 606 | - }, | |
| 607 | - }); | |
| 608 | 571 | |
| 609 | - const resetRegisterFormCreateAlarmFunc = () => { | |
| 610 | - resetRegisterFormCreateAlarm(); | |
| 572 | + //重置编辑数据 | |
| 573 | + const clearEditAllRegisterFormFunc = () => { | |
| 574 | + getFilterStepThreeEditArr.value.length = 0; | |
| 575 | + getFilterStepThreeEditArr.value = []; | |
| 611 | 576 | }; |
| 577 | + | |
| 612 | 578 | //重置表单数据 |
| 613 | 579 | const clearAllRegisterFormFunc = () => { |
| 614 | 580 | setTimeout(() => { |
| 615 | 581 | clearAlaramTypeValueFunc(); |
| 616 | 582 | clearTransmitAlarmFunc(); |
| 617 | - resetRegisterFormChangeDetailFunc(); | |
| 618 | 583 | resetRegisterFormClearChangeDetailFunc(); |
| 619 | 584 | resetAllTemplateFunc(); |
| 620 | - resetRegisterFormCreateAlarmFunc(); | |
| 621 | 585 | }, 10); |
| 622 | 586 | }; |
| 623 | 587 | //重置报警启用规则-报警规则条件 |
| ... | ... | @@ -647,10 +611,6 @@ |
| 647 | 611 | }); |
| 648 | 612 | }; |
| 649 | 613 | |
| 650 | - //重置详情模板数据 | |
| 651 | - const resetRegisterFormChangeDetailFunc = () => { | |
| 652 | - resetRegisterFormChangeDetail(); | |
| 653 | - }; | |
| 654 | 614 | //清除修改详情模板 |
| 655 | 615 | const resetRegisterFormClearChangeDetailFunc = () => { |
| 656 | 616 | resetRegisterFormClearChangeDetail(); |
| ... | ... | @@ -663,13 +623,8 @@ |
| 663 | 623 | const setTransmitAlarmFormFunc = (v) => { |
| 664 | 624 | setTransmitAlarmFunc(v); |
| 665 | 625 | }; |
| 666 | - const setRegisterFormCreateAlarmFunc = async () => { | |
| 667 | - setRegisterFormCreateAlarm({ | |
| 668 | - default: '', | |
| 669 | - }); | |
| 670 | - }; | |
| 671 | 626 | const openRuleComp = (v1) => { |
| 672 | - let openSchemObj = {}; | |
| 627 | + let openSchemObj: any = {}; | |
| 673 | 628 | for (let i in v1) { |
| 674 | 629 | if (i == 'CRITICAL') { |
| 675 | 630 | openSchemObj = v1[i]; |
| ... | ... | @@ -721,7 +676,7 @@ |
| 721 | 676 | |
| 722 | 677 | const openRuleConditionComp = (v2) => { |
| 723 | 678 | try { |
| 724 | - let openRuleConditObj = {}; | |
| 679 | + let openRuleConditObj: any = {}; | |
| 725 | 680 | for (let i in v2) { |
| 726 | 681 | if (i == 'CRITICAL') { |
| 727 | 682 | openRuleConditObj = v2[i]; |
| ... | ... | @@ -766,7 +721,7 @@ |
| 766 | 721 | getFilterStepThreeEditArr.value = []; |
| 767 | 722 | getFilterStepThreeEditClearArr.value = []; |
| 768 | 723 | getStepThreeEditStatus.value = v.isEditStatus; |
| 769 | - isEditDataAndValue.value = v.isEditStatus; | |
| 724 | + // isEditDataAndValue.value = v.isEditStatus; | |
| 770 | 725 | getStepThreeEditArr.value = v.stepThreeData; |
| 771 | 726 | if (getFilterStepThreeEditClearArr.value.length == 0) { |
| 772 | 727 | getFilterStepThreeEditClearArr.value.push(v.stepThreeClearData as never); |
| ... | ... | @@ -784,17 +739,6 @@ |
| 784 | 739 | createAlarmArray.value.push(i as never); |
| 785 | 740 | } |
| 786 | 741 | }; |
| 787 | - const formatAlarmFunc = (v) => { | |
| 788 | - return v == 'CRITICAL' | |
| 789 | - ? '危险' | |
| 790 | - : v == 'MAJOR' | |
| 791 | - ? '重要' | |
| 792 | - : v == 'MINOR' | |
| 793 | - ? '次要' | |
| 794 | - : v == 'WARNING' | |
| 795 | - ? '警告' | |
| 796 | - : '不确定'; | |
| 797 | - }; | |
| 798 | 742 | |
| 799 | 743 | //清除修改详情模板 |
| 800 | 744 | const setRegisterFormClearChangeDetailFunc = (v) => { |
| ... | ... | @@ -802,7 +746,18 @@ |
| 802 | 746 | }; |
| 803 | 747 | |
| 804 | 748 | const getRegisterFormChangeDetailFunc = () => { |
| 805 | - changeGetDetailValue.value = getRegisterFormChangeDetail(); | |
| 749 | + try { | |
| 750 | + changeGetDetailValue.value = proxy.$refs.detailTemplateRef.getFieldsValueFunc(); | |
| 751 | + } catch (e) { | |
| 752 | + return e; | |
| 753 | + } | |
| 754 | + }; | |
| 755 | + const clearDetailTemplateFunc = () => { | |
| 756 | + try { | |
| 757 | + proxy.$refs.detailTemplateRef.resetFieldsFunc(); | |
| 758 | + } catch (e) { | |
| 759 | + return e; | |
| 760 | + } | |
| 806 | 761 | }; |
| 807 | 762 | const getRegisterClearFormChangeDetailFunc = () => { |
| 808 | 763 | changeGetClearDetailValue.value = getRegisterFormClearChangeDetail(); |
| ... | ... | @@ -821,7 +776,7 @@ |
| 821 | 776 | tempOpenRuleTempArr.value.push(addNewOpenRule.schedule as never); |
| 822 | 777 | tempRuleConditionTempArr.value.push({ |
| 823 | 778 | condition: addNewRuleTem.condition.condition, |
| 824 | - }); | |
| 779 | + } as never); | |
| 825 | 780 | }; |
| 826 | 781 | |
| 827 | 782 | const getClearOpenRuleAndRuleCondition = () => { |
| ... | ... | @@ -845,32 +800,36 @@ |
| 845 | 800 | |
| 846 | 801 | // 添加创建条件方法 |
| 847 | 802 | const addCreateRuleFunc = async () => { |
| 848 | - getRegisterFormChangeDetailFunc(); | |
| 849 | - tempDetailTempArr.value.push(changeGetDetailValue.value as never); | |
| 850 | - tempDetailTempArr.value.forEach((f1) => { | |
| 851 | - kongDetail.value = f1; | |
| 852 | - }); | |
| 853 | - addChangeSeverity.value = await validateRegisterFormCreateAlarm(); | |
| 854 | - emptyCreateRoleFunc(); | |
| 855 | - getOpenRuleAndRuleCondition(); | |
| 803 | + try { | |
| 804 | + getRegisterFormChangeDetailFunc(); | |
| 805 | + tempDetailTempArr.value.push(changeGetDetailValue.value as never); | |
| 806 | + tempDetailTempArr.value.forEach((f1) => { | |
| 807 | + kongDetail.value = f1; | |
| 808 | + }); | |
| 809 | + addChangeSeverity.value = proxy.$refs.alarmSeverityRef.getFieldsValueFunc(); | |
| 810 | + emptyCreateRoleFunc(); | |
| 811 | + getOpenRuleAndRuleCondition(); | |
| 856 | 812 | |
| 857 | - tempOpenRuleTempArr.value.forEach((f2) => { | |
| 858 | - kongOpenRuleObj.schedule = f2; | |
| 859 | - }); | |
| 813 | + tempOpenRuleTempArr.value.forEach((f2) => { | |
| 814 | + kongOpenRuleObj.schedule = f2; | |
| 815 | + }); | |
| 860 | 816 | |
| 861 | - tempRuleConditionTempArr.value.forEach((f3) => { | |
| 862 | - kongRuleConditionObj.condition = f3; | |
| 863 | - }); | |
| 817 | + tempRuleConditionTempArr.value.forEach((f3) => { | |
| 818 | + kongRuleConditionObj.condition = f3; | |
| 819 | + }); | |
| 864 | 820 | |
| 865 | - createRulesObj.value[addChangeSeverity.value?.default] = { | |
| 866 | - ...kongDetail.value, | |
| 867 | - ...addNewOpenRule, | |
| 868 | - ...addNewRuleTem, | |
| 869 | - ...kongOpenRuleObj, | |
| 870 | - ...kongRuleConditionObj, | |
| 871 | - }; | |
| 872 | - addCreateRulesObj.createRules = createRulesObj.value; | |
| 873 | - initCreateRules.createRules = addCreateRulesObj; | |
| 821 | + createRulesObj.value[addChangeSeverity.value?.default] = { | |
| 822 | + ...kongDetail.value, | |
| 823 | + ...addNewOpenRule, | |
| 824 | + ...addNewRuleTem, | |
| 825 | + ...kongOpenRuleObj, | |
| 826 | + ...kongRuleConditionObj, | |
| 827 | + }; | |
| 828 | + addCreateRulesObj.createRules = createRulesObj.value; | |
| 829 | + initCreateRules.createRules = addCreateRulesObj; | |
| 830 | + } catch (e) { | |
| 831 | + return e; | |
| 832 | + } | |
| 874 | 833 | }; |
| 875 | 834 | |
| 876 | 835 | //清除报警规则 |
| ... | ... | @@ -894,6 +853,9 @@ |
| 894 | 853 | // 删除创建条件 |
| 895 | 854 | const deleteCondition = (index: number, createIndex: number) => { |
| 896 | 855 | profileData.value[index].alarms.splice(createIndex, 1); |
| 856 | + if (getStepThreeEditStatus.value) { | |
| 857 | + getFilterStepThreeEditArr.value.pop(); | |
| 858 | + } | |
| 897 | 859 | }; |
| 898 | 860 | |
| 899 | 861 | watch(isWhereType, (nV) => { |
| ... | ... | @@ -902,9 +864,6 @@ |
| 902 | 864 | isWhereTypeValueDisabled.value = true; |
| 903 | 865 | } |
| 904 | 866 | }); |
| 905 | - watch(isLostFocux, (nV) => { | |
| 906 | - isLostFocuxStatus.value = nV; | |
| 907 | - }); | |
| 908 | 867 | //报警规则 |
| 909 | 868 | //启用规则 |
| 910 | 869 | const getAllFieldsEnabFunc = (v) => { |
| ... | ... | @@ -917,36 +876,34 @@ |
| 917 | 876 | addNewRuleTem.condition.condition = ruleObj.value as never; |
| 918 | 877 | fliterTempRuleConditionTempArr.value.push({ |
| 919 | 878 | condition: addNewRuleTem.condition.condition, |
| 920 | - }); | |
| 921 | - | |
| 922 | - getEditDataAndValue.value.push({ | |
| 923 | - condition: addNewRuleTem.condition.condition, | |
| 924 | - }); | |
| 925 | - console.log(getEditDataAndValue.value); | |
| 879 | + } as never); | |
| 880 | + // getEditDataAndValue.value.push({ | |
| 881 | + // condition: addNewRuleTem.condition.condition, | |
| 882 | + // } as never); | |
| 926 | 883 | }; |
| 927 | 884 | //格式化编辑 |
| 928 | - const isEditDataAndValueFunc = (v) => { | |
| 929 | - let formatMap = v.condition.map((f) => { | |
| 930 | - return f.predicate.operation == 'EQUAL' | |
| 931 | - ? f.key.key + '等于' + f.predicate.value.defaultValue | |
| 932 | - : f.predicate.operation == 'STARTS_WITH' | |
| 933 | - ? f.key.key + '开始于' + f.predicate.value.defaultValue | |
| 934 | - : f.predicate.operation == 'ENDS_WITH' | |
| 935 | - ? f.key.key + '结束于' + f.predicate.value.defaultValue | |
| 936 | - : f.predicate.operation == 'NOT_CONTAINS' | |
| 937 | - ? f.key.key + '不包含' + f.predicate.value.defaultValue | |
| 938 | - : f.predicate.operation == 'NOT_EQUAL' | |
| 939 | - ? f.key.key + '不等于' + f.predicate.value.defaultValue | |
| 940 | - : f.predicate.operation == 'GREATER' | |
| 941 | - ? f.key.key + '大于' + f.predicate.value.defaultValue | |
| 942 | - : f.predicate.operation == 'LESS' | |
| 943 | - ? f.key.key + '小于' + f.predicate.value.defaultValue | |
| 944 | - : f.predicate.operation == 'GREATER_OR_EQUAL' | |
| 945 | - ? f.key.key + '大于或等于' + f.predicate.value.defaultValue | |
| 946 | - : f.key.key + '小于或等于' + f.predicate.value.defaultValue; | |
| 947 | - }); | |
| 948 | - return formatMap; | |
| 949 | - }; | |
| 885 | + // const isEditDataAndValueFunc = (v) => { | |
| 886 | + // let formatMap = v.condition.map((f) => { | |
| 887 | + // return f.predicate.operation == 'EQUAL' | |
| 888 | + // ? f.key.key + '等于' + f.predicate.value.defaultValue | |
| 889 | + // : f.predicate.operation == 'STARTS_WITH' | |
| 890 | + // ? f.key.key + '开始于' + f.predicate.value.defaultValue | |
| 891 | + // : f.predicate.operation == 'ENDS_WITH' | |
| 892 | + // ? f.key.key + '结束于' + f.predicate.value.defaultValue | |
| 893 | + // : f.predicate.operation == 'NOT_CONTAINS' | |
| 894 | + // ? f.key.key + '不包含' + f.predicate.value.defaultValue | |
| 895 | + // : f.predicate.operation == 'NOT_EQUAL' | |
| 896 | + // ? f.key.key + '不等于' + f.predicate.value.defaultValue | |
| 897 | + // : f.predicate.operation == 'GREATER' | |
| 898 | + // ? f.key.key + '大于' + f.predicate.value.defaultValue | |
| 899 | + // : f.predicate.operation == 'LESS' | |
| 900 | + // ? f.key.key + '小于' + f.predicate.value.defaultValue | |
| 901 | + // : f.predicate.operation == 'GREATER_OR_EQUAL' | |
| 902 | + // ? f.key.key + '大于或等于' + f.predicate.value.defaultValue | |
| 903 | + // : f.key.key + '小于或等于' + f.predicate.value.defaultValue; | |
| 904 | + // }); | |
| 905 | + // return formatMap; | |
| 906 | + // }; | |
| 950 | 907 | //格式化新增 |
| 951 | 908 | const formatAddRuleFunc = (v) => { |
| 952 | 909 | let formatMap = v.condition.map((f) => { |
| ... | ... | @@ -982,7 +939,7 @@ |
| 982 | 939 | addNewRuleTem.condition.condition = ruleLastObj.value as never; |
| 983 | 940 | fliterClearTempRuleConditionTempArr.value.push({ |
| 984 | 941 | condition: addNewRuleTem.condition.condition, |
| 985 | - }); | |
| 942 | + } as never); | |
| 986 | 943 | }; |
| 987 | 944 | |
| 988 | 945 | const formatClearRuleFunc = (v) => { |
| ... | ... | @@ -1008,19 +965,6 @@ |
| 1008 | 965 | return formatMap; |
| 1009 | 966 | }; |
| 1010 | 967 | |
| 1011 | - //生成uuid | |
| 1012 | - function generateUUID() { | |
| 1013 | - let d = new Date().getTime(); | |
| 1014 | - if (window.performance && typeof window.performance.now === 'function') { | |
| 1015 | - d += performance.now(); | |
| 1016 | - } | |
| 1017 | - let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |
| 1018 | - let r = (d + Math.random() * 16) % 16 | 0; | |
| 1019 | - d = Math.floor(d / 16); | |
| 1020 | - return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16); | |
| 1021 | - }); | |
| 1022 | - return uuid; | |
| 1023 | - } | |
| 1024 | 968 | const handleFormStep3toStep4Next = () => { |
| 1025 | 969 | try { |
| 1026 | 970 | validateRegisterFormFunc(); |
| ... | ... | @@ -1031,7 +975,6 @@ |
| 1031 | 975 | getRegisterFormChangeDetailFunc(); |
| 1032 | 976 | addCreateRuleFunc(); |
| 1033 | 977 | addClearAlaramRule(); |
| 1034 | - | |
| 1035 | 978 | getAllObjTemp = { |
| 1036 | 979 | ...alarmTypeGet.value, |
| 1037 | 980 | ...propagateAndpropagateRelationTypes, |
| ... | ... | @@ -1041,7 +984,7 @@ |
| 1041 | 984 | Object.assign(getAllObjTemp, addCreateRulesObj, getClearObj); |
| 1042 | 985 | }, 10); |
| 1043 | 986 | allAlarms.value.push(getAllObjTemp as never); |
| 1044 | - emit('next', allAlarms.value); | |
| 987 | + emit('next', allAlarms.value, getStepThreeEditStatus.value); | |
| 1045 | 988 | } catch (e) { |
| 1046 | 989 | return e; |
| 1047 | 990 | } |
| ... | ... | @@ -1073,6 +1016,7 @@ |
| 1073 | 1016 | }; |
| 1074 | 1017 | const handleOpenAlaramRuleConditions = () => { |
| 1075 | 1018 | isRuleAlarmRuleConditions.value = 3; |
| 1019 | + getStepThreeEditStatus.value = false; | |
| 1076 | 1020 | setTimeout(() => { |
| 1077 | 1021 | openModal3(true); |
| 1078 | 1022 | try { |
| ... | ... | @@ -1109,11 +1053,33 @@ |
| 1109 | 1053 | openModal6(true); |
| 1110 | 1054 | }, 10); |
| 1111 | 1055 | }; |
| 1056 | + const handleClickHidenEdit = (v) => { | |
| 1057 | + editIndex.value = v; | |
| 1058 | + }; | |
| 1059 | + const returnChildItem = (v) => { | |
| 1060 | + let openRuleConditObj: any = {}; | |
| 1061 | + for (let i in v) { | |
| 1062 | + if (i == 'CRITICAL') { | |
| 1063 | + openRuleConditObj = v[i]; | |
| 1064 | + } else if (i == 'MAJOR') { | |
| 1065 | + openRuleConditObj = v[i]; | |
| 1066 | + } else if (i == 'MINOR') { | |
| 1067 | + openRuleConditObj = v[i]; | |
| 1068 | + } else if (i == 'WARNING') { | |
| 1069 | + openRuleConditObj = v[i]; | |
| 1070 | + } else if (i == 'INDETERMINATE') { | |
| 1071 | + openRuleConditObj = v[i]; | |
| 1072 | + } | |
| 1073 | + } | |
| 1074 | + return openRuleConditObj.alarmDetails; | |
| 1075 | + }; | |
| 1112 | 1076 | |
| 1113 | 1077 | return { |
| 1078 | + clearEditAllRegisterFormFunc, | |
| 1079 | + returnChildItem, | |
| 1080 | + editIndex, | |
| 1114 | 1081 | isAddRuleStatusFunc, |
| 1115 | 1082 | isAddRuleStatus, |
| 1116 | - formatAlarmFunc, | |
| 1117 | 1083 | createAlarmArray, |
| 1118 | 1084 | formatClearRuleFunc, |
| 1119 | 1085 | formatAddRuleFunc, |
| ... | ... | @@ -1126,8 +1092,6 @@ |
| 1126 | 1092 | getFilterStepThreeEditArr, |
| 1127 | 1093 | getStepThreeEditStatus, |
| 1128 | 1094 | getStepThreeEditArr, |
| 1129 | - setRegisterFormCreateAlarmFunc, | |
| 1130 | - resetRegisterFormCreateAlarmFunc, | |
| 1131 | 1095 | initClearCreateRuleFunc, |
| 1132 | 1096 | fliterTempOpenRuleTempArr, |
| 1133 | 1097 | fliterTempRuleConditionTempArr, |
| ... | ... | @@ -1144,7 +1108,6 @@ |
| 1144 | 1108 | setRegisterFormClearChangeDetailFunc, |
| 1145 | 1109 | setRegisterFormChangeDetailFunc, |
| 1146 | 1110 | registerFormChangeClearDetail, |
| 1147 | - registerFormChangeDetail, | |
| 1148 | 1111 | clearProfileDataFunc, |
| 1149 | 1112 | setAlaramTypeFormFunc, |
| 1150 | 1113 | setTransmitAlarmFormFunc, |
| ... | ... | @@ -1184,15 +1147,18 @@ |
| 1184 | 1147 | addAlarmRule, |
| 1185 | 1148 | registerForm, |
| 1186 | 1149 | registerFormHighSetting, |
| 1187 | - registerFormCreateAlarm, | |
| 1188 | 1150 | addCreateRole, |
| 1189 | 1151 | deleteCondition, |
| 1190 | 1152 | setCreateRegisterFormChangeDetailFunc, |
| 1191 | 1153 | detailDetailModelArray, |
| 1192 | 1154 | isLostFocuxStatus, |
| 1193 | - isEditDataAndValue, | |
| 1194 | - getEditDataAndValue, | |
| 1195 | - isEditDataAndValueFunc, | |
| 1155 | + // isEditDataAndValue, | |
| 1156 | + // getEditDataAndValue, | |
| 1157 | + // isEditDataAndValueFunc, | |
| 1158 | + handleClickHidenEdit, | |
| 1159 | + alarmSeverityRef, | |
| 1160 | + detailTemplateRef, | |
| 1161 | + clearDetailTemplateFunc, | |
| 1196 | 1162 | }; |
| 1197 | 1163 | }, |
| 1198 | 1164 | }); | ... | ... |
src/views/device/profiles/step/DeviceProfileStep4.vue
renamed from
src/views/device/profile/step/DeviceProfileStep4.vue
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | <script lang="ts"> |
| 7 | 7 | import { defineComponent, ref } from 'vue'; |
| 8 | 8 | import { BasicForm, useForm } from '/@/components/Form/index'; |
| 9 | - import { alertContactsSchemas } from '../cpns/config'; | |
| 9 | + import { alertContactsSchemas } from './data'; | |
| 10 | 10 | |
| 11 | 11 | export default defineComponent({ |
| 12 | 12 | components: { | ... | ... |
src/views/device/profiles/step/cpns/alarmruleconditions/config.ts
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/config.ts
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/config.ts
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/config.ts
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/cpns/config.ts
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/cpns/config.ts
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/cpns/index.vue
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/cpns/index.vue
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/index.vue
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/index.vue
| ... | ... | @@ -106,7 +106,7 @@ |
| 106 | 106 | if (!unref(isUpdate)) { |
| 107 | 107 | getValue.value = getFieldsValue(); |
| 108 | 108 | getKeyAndValArr.value.push(getValue.value); |
| 109 | - mapGetKeyAndValArr = getKeyAndValArr.value.map((m) => { | |
| 109 | + mapGetKeyAndValArr = getKeyAndValArr.value.map((m: any) => { | |
| 110 | 110 | return { |
| 111 | 111 | key: { |
| 112 | 112 | type: m.type, |
| ... | ... | @@ -131,7 +131,7 @@ |
| 131 | 131 | } else { |
| 132 | 132 | getValue.value = getFieldsValue(); |
| 133 | 133 | getKeyAndValArr.value.push(getValue.value); |
| 134 | - mapGetKeyAndValArr = getKeyAndValArr.value.map((m) => { | |
| 134 | + mapGetKeyAndValArr = getKeyAndValArr.value.map((m: any) => { | |
| 135 | 135 | return { |
| 136 | 136 | key: { |
| 137 | 137 | type: m.type, |
| ... | ... | @@ -207,7 +207,6 @@ |
| 207 | 207 | } |
| 208 | 208 | watch(isWhereType, (v) => { |
| 209 | 209 | switch (v) { |
| 210 | - // console.log(v) | |
| 211 | 210 | case 'STRING': |
| 212 | 211 | getIsWhereType.value = v; |
| 213 | 212 | break; | ... | ... |
src/views/device/profiles/step/cpns/alarmruleconditions/index.vue
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/index.vue
| 1 | +import { FormSchema } from '/@/components/Table'; | |
| 2 | +import { ref } from 'vue'; | |
| 3 | +export const isWhereType = ref(null); | |
| 4 | + | |
| 5 | +export const formSchema: FormSchema[] = [ | |
| 6 | + { | |
| 7 | + field: 'default', | |
| 8 | + component: 'Select', | |
| 9 | + label: '报警严重程度:', | |
| 10 | + colProps: { | |
| 11 | + span: 17, | |
| 12 | + }, | |
| 13 | + componentProps() { | |
| 14 | + return { | |
| 15 | + options: [ | |
| 16 | + { | |
| 17 | + value: 'CRITICAL', | |
| 18 | + label: '危险', | |
| 19 | + }, | |
| 20 | + { | |
| 21 | + value: 'MAJOR', | |
| 22 | + label: '重要', | |
| 23 | + }, | |
| 24 | + { | |
| 25 | + value: 'MINOR', | |
| 26 | + label: '次要', | |
| 27 | + }, | |
| 28 | + { | |
| 29 | + value: 'WARNING', | |
| 30 | + label: '警告', | |
| 31 | + }, | |
| 32 | + { | |
| 33 | + value: 'INDETERMINATE', | |
| 34 | + label: '不确定', | |
| 35 | + }, | |
| 36 | + ], | |
| 37 | + onChange: (v) => { | |
| 38 | + isWhereType.value = v ? v : 'CRITICAL'; | |
| 39 | + }, | |
| 40 | + }; | |
| 41 | + }, | |
| 42 | + }, | |
| 43 | +]; | ... | ... |
src/views/device/profiles/step/cpns/alarmseverity/index.vue
renamed from
src/views/device/profile/step/cpns/detailtemplate/index.vue
| ... | ... | @@ -13,10 +13,11 @@ |
| 13 | 13 | components: { |
| 14 | 14 | BasicForm, |
| 15 | 15 | }, |
| 16 | + props: ['alarmSeverityInfo'], | |
| 16 | 17 | emits: ['success', 'register', 'getAllFields'], |
| 17 | - setup() { | |
| 18 | + setup(props) { | |
| 18 | 19 | const fieldValue: any = ref({}); |
| 19 | - const [registerForm, { getFieldsValue }] = useForm({ | |
| 20 | + const [registerForm, { getFieldsValue, setFieldsValue }] = useForm({ | |
| 20 | 21 | labelWidth: 120, |
| 21 | 22 | schemas: formSchema, |
| 22 | 23 | }); |
| ... | ... | @@ -26,6 +27,17 @@ |
| 26 | 27 | return fieldValue.value; |
| 27 | 28 | }; |
| 28 | 29 | |
| 30 | + const setFieldsValueFunc = () => { | |
| 31 | + if (props.alarmSeverityInfo != 1) { | |
| 32 | + let newArr = Object.keys(props.alarmSeverityInfo); | |
| 33 | + setTimeout(() => { | |
| 34 | + newArr.forEach((f) => { | |
| 35 | + setFieldsValue({ default: f }); | |
| 36 | + }); | |
| 37 | + }, 10); | |
| 38 | + } | |
| 39 | + }; | |
| 40 | + setFieldsValueFunc(); | |
| 29 | 41 | return { |
| 30 | 42 | getFieldsValueFunc, |
| 31 | 43 | registerForm, | ... | ... |
src/views/device/profiles/step/cpns/detailtemplate/config.ts
renamed from
src/views/device/profile/step/cpns/detailtemplate/config.ts
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | |
| 4 | + </div> | |
| 5 | +</template> | |
| 6 | +<script lang="ts"> | |
| 7 | + import { defineComponent, ref } from 'vue'; | |
| 8 | + import { BasicForm, useForm } from '/@/components/Form'; | |
| 9 | + import { formSchema } from './config'; | |
| 10 | + | |
| 11 | + export default defineComponent({ | |
| 12 | + name: 'DetailTemplate', | |
| 13 | + components: { | |
| 14 | + BasicForm, | |
| 15 | + }, | |
| 16 | + props: ['detailTemplateInfo'], | |
| 17 | + emits: ['success', 'register', 'getAllFields'], | |
| 18 | + setup(props) { | |
| 19 | + const fieldValue: any = ref({}); | |
| 20 | + const [registerForm, { getFieldsValue, setFieldsValue, resetFields }] = useForm({ | |
| 21 | + labelWidth: 120, | |
| 22 | + schemas: formSchema, | |
| 23 | + }); | |
| 24 | + | |
| 25 | + const getFieldsValueFunc = () => { | |
| 26 | + fieldValue.value = getFieldsValue(); | |
| 27 | + return fieldValue.value; | |
| 28 | + }; | |
| 29 | + const setFieldsValueFunc = () => { | |
| 30 | + if (props.detailTemplateInfo != 1) { | |
| 31 | + resetFields(); | |
| 32 | + setTimeout(() => { | |
| 33 | + setFieldsValue({ | |
| 34 | + alarmDetails: props.detailTemplateInfo, | |
| 35 | + }); | |
| 36 | + }, 10); | |
| 37 | + } | |
| 38 | + }; | |
| 39 | + setFieldsValueFunc(); | |
| 40 | + | |
| 41 | + const resetFieldsFunc = () => { | |
| 42 | + resetFields(); | |
| 43 | + }; | |
| 44 | + return { | |
| 45 | + resetFieldsFunc, | |
| 46 | + getFieldsValueFunc, | |
| 47 | + registerForm, | |
| 48 | + }; | |
| 49 | + }, | |
| 50 | + }); | |
| 51 | +</script> | ... | ... |
src/views/device/profiles/step/cpns/enablerule/config.ts
renamed from
src/views/device/profile/step/cpns/enablerule/config.ts
src/views/device/profiles/step/cpns/enablerule/index.vue
renamed from
src/views/device/profile/step/cpns/enablerule/index.vue
| ... | ... | @@ -23,7 +23,6 @@ |
| 23 | 23 | }, |
| 24 | 24 | emits: ['success', 'register', 'getAllFieldsEnab'], |
| 25 | 25 | setup(_, { emit }) { |
| 26 | - // const getValueData: any = ref({}); | |
| 27 | 26 | const isUpdate = ref(true); |
| 28 | 27 | const [registerForm, { getFieldsValue, resetFields }] = useForm({ |
| 29 | 28 | labelWidth: 120, |
| ... | ... | @@ -39,19 +38,10 @@ |
| 39 | 38 | const handleSubmit = () => { |
| 40 | 39 | const values = getFieldsValue(); |
| 41 | 40 | emit('getAllFieldsEnab', values); |
| 42 | - // let getV = {}; | |
| 43 | - // getAllFieldsEnab(getV); | |
| 44 | 41 | closeModal(); |
| 45 | 42 | }; |
| 46 | - // function getAllFieldsEnab(getV) { | |
| 47 | - // const values = getFieldsValue(); | |
| 48 | - // getValueData.value = values; | |
| 49 | - // getV = getValueData.value; | |
| 50 | - // return getV; | |
| 51 | - // } | |
| 52 | 43 | return { |
| 53 | 44 | resetDataFunc, |
| 54 | - // getAllFieldsEnab, | |
| 55 | 45 | registerForm, |
| 56 | 46 | handleSubmit, |
| 57 | 47 | register, | ... | ... |
src/views/device/profiles/step/data.ts
renamed from
src/views/device/profile/step/data.ts
| 1 | 1 | import { FormSchema } from '/@/components/Form'; |
| 2 | -// import { getOrganizationList } from '/@/api/system/system'; | |
| 3 | -// import { copyTransFun } from '/@/utils/fnUtils'; | |
| 4 | 2 | import { deviceConfigGetRuleChain } from '/@/api/device/deviceConfigApi'; |
| 5 | 3 | import { ref } from 'vue'; |
| 6 | 4 | import { findDictItemByCode } from '/@/api/system/dict'; |
| ... | ... | @@ -148,7 +146,6 @@ export const step3HighSetting: FormSchema[] = [ |
| 148 | 146 | ]; |
| 149 | 147 | |
| 150 | 148 | export const isWhereType = ref(null); |
| 151 | -export const isLostFocux = ref(true); | |
| 152 | 149 | |
| 153 | 150 | export const step3CreateAlarm: FormSchema[] = [ |
| 154 | 151 | { |
| ... | ... | @@ -185,9 +182,6 @@ export const step3CreateAlarm: FormSchema[] = [ |
| 185 | 182 | onChange: (v) => { |
| 186 | 183 | isWhereType.value = v ? v : 'INDETERMINATE'; |
| 187 | 184 | }, |
| 188 | - onFocus: () => { | |
| 189 | - isLostFocux.value = false; | |
| 190 | - }, | |
| 191 | 185 | }; |
| 192 | 186 | }, |
| 193 | 187 | }, |
| ... | ... | @@ -224,7 +218,9 @@ export const alertContactsSchemas: FormSchema[] = [ |
| 224 | 218 | field: 'alarmContactId', |
| 225 | 219 | label: '告警通知联系人', |
| 226 | 220 | component: 'ApiSelect', |
| 221 | + required: true, | |
| 227 | 222 | componentProps: { |
| 223 | + mode: 'multiple', | |
| 228 | 224 | placeholder: '请选择告警通知联系人', |
| 229 | 225 | api: alarmContactGetPage, |
| 230 | 226 | labelField: 'username', |
| ... | ... | @@ -236,7 +232,9 @@ export const alertContactsSchemas: FormSchema[] = [ |
| 236 | 232 | field: 'messageMode', |
| 237 | 233 | label: '告警通知方式', |
| 238 | 234 | component: 'ApiSelect', |
| 235 | + required: true, | |
| 239 | 236 | componentProps: { |
| 237 | + mode: 'multiple', | |
| 240 | 238 | placeholder: '请选择告警通知方式', |
| 241 | 239 | api: findDictItemByCode, |
| 242 | 240 | params: { |
| ... | ... | @@ -256,7 +254,7 @@ export const formChangeDetailSchema: FormSchema[] = [ |
| 256 | 254 | component: 'Input', |
| 257 | 255 | defaultValue: '', |
| 258 | 256 | componentProps: { |
| 259 | - placeholder: '.', | |
| 257 | + placeholder: '', | |
| 260 | 258 | maxLength: 255, |
| 261 | 259 | }, |
| 262 | 260 | }, | ... | ... |
src/views/device/profiles/step/index.t.ts
renamed from
src/views/device/profile/step/index.t.ts
| ... | ... | @@ -17,7 +17,6 @@ |
| 17 | 17 | import { BasicForm, useForm } from '/@/components/Form/index'; |
| 18 | 18 | import { Input } from 'ant-design-vue'; |
| 19 | 19 | import { useConditionDrawerSchema } from '../config'; |
| 20 | - // import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi'; | |
| 21 | 20 | |
| 22 | 21 | export default defineComponent({ |
| 23 | 22 | components: { CollapseContainer, BasicForm, [Input.name]: Input }, |
| ... | ... | @@ -96,14 +95,6 @@ |
| 96 | 95 | }, |
| 97 | 96 | }); |
| 98 | 97 | }; |
| 99 | - // const editSelectDevice = (v) => { | |
| 100 | - // updateSchema({ | |
| 101 | - // field: 'entityId', | |
| 102 | - // componentProps: { | |
| 103 | - // options: v, | |
| 104 | - // }, | |
| 105 | - // }); | |
| 106 | - // }; | |
| 107 | 98 | return { |
| 108 | 99 | updateFieldDeviceId, |
| 109 | 100 | resetFieldsValueFunc, | ... | ... |
| ... | ... | @@ -293,7 +293,7 @@ export const useTriggerDrawerSchema: FormSchema[] = [ |
| 293 | 293 | placeholder: '属性触发', |
| 294 | 294 | options: [ |
| 295 | 295 | { label: '属性触发', value: 'ATTRIBUTE' }, |
| 296 | - { label: '上下线触发', value: 'TIME_SERIES' }, | |
| 296 | + // { label: '上下线触发', value: 'ATTRIBUTE' }, | |
| 297 | 297 | ], |
| 298 | 298 | }, |
| 299 | 299 | ifShow: ({ values }) => |
| ... | ... | @@ -302,25 +302,25 @@ export const useTriggerDrawerSchema: FormSchema[] = [ |
| 302 | 302 | !isHand(Reflect.get(values, 'triggerType')), |
| 303 | 303 | colProps: { span: 12 }, |
| 304 | 304 | }, |
| 305 | - { | |
| 306 | - field: 'key1', | |
| 307 | - label: '', | |
| 308 | - component: 'Select', | |
| 309 | - componentProps: { | |
| 310 | - placeholder: '请选择上下线', | |
| 311 | - options: [ | |
| 312 | - { label: '上下线', value: '1' }, | |
| 313 | - { label: '上线', value: '2' }, | |
| 314 | - { label: '下线', value: '3' }, | |
| 315 | - ], | |
| 316 | - }, | |
| 317 | - colProps: { span: 12 }, | |
| 318 | - ifShow: ({ values }) => | |
| 319 | - isUpAndDown(Reflect.get(values, 'type1')) && | |
| 320 | - !isTime(Reflect.get(values, 'triggerType')) && | |
| 321 | - !isScene(Reflect.get(values, 'triggerType')) && | |
| 322 | - !isHand(Reflect.get(values, 'triggerType')), | |
| 323 | - }, | |
| 305 | + // { | |
| 306 | + // field: 'key1', | |
| 307 | + // label: '', | |
| 308 | + // component: 'Select', | |
| 309 | + // componentProps: { | |
| 310 | + // placeholder: '请选择上下线', | |
| 311 | + // options: [ | |
| 312 | + // { label: '上下线', value: '1' }, | |
| 313 | + // { label: '上线', value: '2' }, | |
| 314 | + // { label: '下线', value: '3' }, | |
| 315 | + // ], | |
| 316 | + // }, | |
| 317 | + // colProps: { span: 12 }, | |
| 318 | + // ifShow: ({ values }) => | |
| 319 | + // isUpAndDown(Reflect.get(values, 'type1')) && | |
| 320 | + // !isTime(Reflect.get(values, 'triggerType')) && | |
| 321 | + // !isScene(Reflect.get(values, 'triggerType')) && | |
| 322 | + // !isHand(Reflect.get(values, 'triggerType')), | |
| 323 | + // }, | |
| 324 | 324 | { |
| 325 | 325 | field: 'type2', |
| 326 | 326 | label: '', |
| ... | ... | @@ -369,7 +369,6 @@ export const useTriggerDrawerSchema: FormSchema[] = [ |
| 369 | 369 | maxLength: 16, |
| 370 | 370 | placeholder: '请输入比较值', |
| 371 | 371 | }, |
| 372 | - | |
| 373 | 372 | ifShow: ({ values }) => |
| 374 | 373 | isWenDu(Reflect.get(values, 'type2')) && |
| 375 | 374 | !isUpAndDown(Reflect.get(values, 'type1')) && | ... | ... |
| ... | ... | @@ -6,7 +6,9 @@ |
| 6 | 6 | :rowSelection="{ type: 'checkbox' }" |
| 7 | 7 | > |
| 8 | 8 | <template #toolbar> |
| 9 | - <a-button type="primary" @click="handleAdd"> 新增场景联动 </a-button> | |
| 9 | + <a-button v-if="isSysadmin || isCustomer || isPlatform" type="primary" @click="handleAdd"> | |
| 10 | + 新增场景联动 | |
| 11 | + </a-button> | |
| 10 | 12 | <a-button color="error" @click="handleDeleteOrBatchDelete(null)" :disabled="hasBatchDelete"> |
| 11 | 13 | 批量删除 |
| 12 | 14 | </a-button> |
| ... | ... | @@ -18,11 +20,13 @@ |
| 18 | 20 | label: '编辑', |
| 19 | 21 | icon: 'clarity:note-edit-line', |
| 20 | 22 | onClick: handleEdit.bind(null, record), |
| 23 | + ifShow: isTenant, | |
| 21 | 24 | }, |
| 22 | 25 | { |
| 23 | 26 | label: '删除', |
| 24 | 27 | icon: 'ant-design:delete-outlined', |
| 25 | 28 | color: 'error', |
| 29 | + ifShow: isTenant, | |
| 26 | 30 | popConfirm: { |
| 27 | 31 | title: '是否确认删除', |
| 28 | 32 | confirm: handleDeleteOrBatchDelete.bind(null, record), |
| ... | ... | @@ -40,7 +44,7 @@ |
| 40 | 44 | </div> |
| 41 | 45 | </template> |
| 42 | 46 | <script lang="ts"> |
| 43 | - import { defineComponent, getCurrentInstance, ref } from 'vue'; | |
| 47 | + import { defineComponent, getCurrentInstance, ref, computed } from 'vue'; | |
| 44 | 48 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
| 45 | 49 | import { useDrawer } from '/@/components/Drawer'; |
| 46 | 50 | import SceneLinkAgeDrawer from './useDrawer.vue'; |
| ... | ... | @@ -48,13 +52,22 @@ |
| 48 | 52 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 49 | 53 | import { screenLinkPageGetApi, screenLinkPageDeleteApi } from '/@/api/ruleengine/ruleengineApi'; |
| 50 | 54 | import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; |
| 55 | + import { RoleEnum } from '/@/enums/roleEnum'; | |
| 56 | + import { usePermission } from '/@/hooks/web/usePermission'; | |
| 57 | + import { useUserStore } from '/@/store/modules/user'; | |
| 51 | 58 | |
| 52 | 59 | export default defineComponent({ |
| 53 | 60 | name: 'Index', |
| 54 | 61 | components: { BasicTable, SceneLinkAgeDrawer, TableAction }, |
| 55 | 62 | emits: ['default', 'registerTable', 'registerDrawer', 'register'], |
| 56 | 63 | setup() { |
| 57 | - const { proxy } = getCurrentInstance(); | |
| 64 | + const { hasPermission } = usePermission(); | |
| 65 | + const userStore = useUserStore(); | |
| 66 | + const isTenant = computed(() => userStore.getRoleList.includes(RoleEnum.TENANT_ADMIN)); | |
| 67 | + const isCustomer = computed(() => userStore.getRoleList.includes(RoleEnum.CUSTOMER_USER)); | |
| 68 | + const isSysadmin = computed(() => userStore.getRoleList.includes(RoleEnum.SYS_ADMIN)); | |
| 69 | + const isPlatform = computed(() => userStore.getRoleList.includes(RoleEnum.PLATFORM_ADMIN)); | |
| 70 | + const { proxy } = getCurrentInstance() as any; | |
| 58 | 71 | const sceneLinkAgeDrawerRef: any = ref(null); |
| 59 | 72 | const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete( |
| 60 | 73 | screenLinkPageDeleteApi, |
| ... | ... | @@ -91,8 +104,6 @@ |
| 91 | 104 | }); |
| 92 | 105 | try { |
| 93 | 106 | setTimeout(() => { |
| 94 | - // proxy.$refs.sceneLinkAgeDrawerRef.defaultAddTrigger(); | |
| 95 | - // proxy.$refs.sceneLinkAgeDrawerRef.defaultAddCondition(); | |
| 96 | 107 | proxy.$refs.sceneLinkAgeDrawerRef.defaultAddAction(); |
| 97 | 108 | }, 50); |
| 98 | 109 | } catch (e) { |
| ... | ... | @@ -130,6 +141,12 @@ |
| 130 | 141 | reload(); |
| 131 | 142 | } |
| 132 | 143 | return { |
| 144 | + isPlatform, | |
| 145 | + isSysadmin, | |
| 146 | + isCustomer, | |
| 147 | + isTenant, | |
| 148 | + RoleEnum, | |
| 149 | + hasPermission, | |
| 133 | 150 | sceneLinkAgeDrawerRef, |
| 134 | 151 | useSelectionChange, |
| 135 | 152 | registerTable, | ... | ... |
| 1 | 1 | <template> |
| 2 | - <BasicDrawer | |
| 3 | - v-bind="$attrs" | |
| 4 | - @register="registerDrawer" | |
| 5 | - showFooter | |
| 6 | - :title="getTitle" | |
| 7 | - width="1000px" | |
| 8 | - @ok="handleSubmit" | |
| 9 | - @close="handleClose" | |
| 10 | - > | |
| 11 | - <div> | |
| 12 | - <BasicForm @register="registerForm" /> | |
| 13 | - <!-- 触发器 --> | |
| 14 | - <div style="border-radius: 4px"> | |
| 15 | - <template | |
| 16 | - v-for="(item, index) in isUpdate == false ? addTriggerPushData : editTriggerPushData" | |
| 17 | - :key="index" | |
| 18 | - > | |
| 19 | - <span style="display: none">{{ item + index }}</span> | |
| 20 | - <span style="position: relative; top: 3.2vh; left: 0.5vw">触发器 {{ index + 1 }}</span> | |
| 21 | - <div style="display: block"> | |
| 22 | - <AddTriggerForm | |
| 23 | - ref="refTriggerChild" | |
| 24 | - :editTriggerFather="isUpdate == false ? 1 : item" | |
| 25 | - :newFilterMapFather="isUpdate == false ? 1 : newFilterMap" | |
| 26 | - :deviceInfo="getDeviceInfo" | |
| 27 | - /> | |
| 28 | - </div> | |
| 29 | - <div style="height: 3vh"></div> | |
| 30 | - </template> | |
| 31 | - <div | |
| 32 | - style=" | |
| 33 | - display: flex; | |
| 34 | - width: 11vw; | |
| 35 | - height: 4vh; | |
| 36 | - flex-direction: row; | |
| 37 | - justify-content: space-between; | |
| 38 | - " | |
| 39 | - > | |
| 40 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
| 41 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addTrigger" | |
| 42 | - >新增触发器</Button | |
| 43 | - > | |
| 44 | - </div> | |
| 45 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
| 46 | - <Button | |
| 47 | - v-if="addTriggerPushData.length != 0 || editTriggerPushData.length != 0" | |
| 48 | - type="default" | |
| 49 | - style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
| 50 | - class="mt-5" | |
| 51 | - @click="removeTrigger" | |
| 52 | - > | |
| 53 | - <span style="color: white">删除</span></Button | |
| 54 | - > | |
| 2 | + <div> | |
| 3 | + <BasicDrawer | |
| 4 | + v-bind="$attrs" | |
| 5 | + @register="registerDrawer" | |
| 6 | + showFooter | |
| 7 | + :title="getTitle" | |
| 8 | + width="1000px" | |
| 9 | + @ok="handleSubmit" | |
| 10 | + @close="handleClose" | |
| 11 | + > | |
| 12 | + <div> | |
| 13 | + <BasicForm @register="registerForm" /> | |
| 14 | + <!-- 触发器 --> | |
| 15 | + <div style="border-radius: 4px"> | |
| 16 | + <template | |
| 17 | + v-for="(item, index) in isUpdate == false ? addTriggerPushData : editTriggerPushData" | |
| 18 | + :key="index" | |
| 19 | + > | |
| 20 | + <span style="display: none">{{ item + index }}</span> | |
| 21 | + <span style="position: relative; top: 3.2vh; left: 0.5vw">触发器 {{ index + 1 }}</span> | |
| 22 | + <div style="display: block"> | |
| 23 | + <AddTriggerForm | |
| 24 | + ref="refTriggerChild" | |
| 25 | + :editTriggerFather="isUpdate == false ? 1 : item" | |
| 26 | + :newFilterMapFather="isUpdate == false ? 1 : newFilterMap" | |
| 27 | + :deviceInfo="getDeviceInfo" | |
| 28 | + /> | |
| 29 | + </div> | |
| 30 | + <div style="height: 3vh"></div> | |
| 31 | + </template> | |
| 32 | + <div | |
| 33 | + style=" | |
| 34 | + display: flex; | |
| 35 | + width: 11vw; | |
| 36 | + height: 4vh; | |
| 37 | + flex-direction: row; | |
| 38 | + justify-content: space-between; | |
| 39 | + " | |
| 40 | + > | |
| 41 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
| 42 | + <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addTrigger" | |
| 43 | + >新增触发器</Button | |
| 44 | + > | |
| 45 | + </div> | |
| 46 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
| 47 | + <Button | |
| 48 | + v-if="addTriggerPushData.length != 0 || editTriggerPushData.length != 0" | |
| 49 | + type="default" | |
| 50 | + style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
| 51 | + class="mt-5" | |
| 52 | + @click="removeTrigger" | |
| 53 | + > | |
| 54 | + <span style="color: white">删除</span></Button | |
| 55 | + > | |
| 56 | + </div> | |
| 55 | 57 | </div> |
| 56 | 58 | </div> |
| 57 | - </div> | |
| 58 | - <div style="height: 5vh"></div> | |
| 59 | - <!-- 执行条件 --> | |
| 60 | - <div style="border-radius: 4px" class="condition-style"> | |
| 61 | - <template | |
| 62 | - v-for="(item, index) in isUpdate == false ? addConditionPushData : editConditionPushData" | |
| 63 | - :key="index" | |
| 64 | - > | |
| 65 | - <span style="display: none">{{ item + index }}</span> | |
| 66 | - <span style="position: relative; top: 3.2vh; left: 0.5vw">执行条件 {{ index + 1 }}</span> | |
| 67 | - | |
| 68 | - <div> | |
| 69 | - <AddConditiForm | |
| 70 | - :editConditionFather="isUpdate == false ? 1 : item" | |
| 71 | - :newConditionMapFather="isUpdate == false ? 1 : newConditionFilterMap" | |
| 72 | - :deviceInfo1="getDeviceInfo1" | |
| 73 | - ref="refConditionChild" | |
| 74 | - /> | |
| 75 | - </div> | |
| 76 | - <div style="height: 3vh"></div> | |
| 77 | - </template> | |
| 78 | - <div | |
| 79 | - style=" | |
| 80 | - display: flex; | |
| 81 | - width: 11vw; | |
| 82 | - height: 4vh; | |
| 83 | - flex-direction: row; | |
| 84 | - justify-content: space-between; | |
| 85 | - " | |
| 86 | - > | |
| 87 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
| 88 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addCondition" | |
| 89 | - >新增执行条件</Button | |
| 90 | - > | |
| 91 | - </div> | |
| 92 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
| 93 | - <Button | |
| 94 | - v-if="addConditionPushData.length != 0 || editConditionPushData.length != 0" | |
| 95 | - style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
| 96 | - type="default" | |
| 97 | - class="mt-5" | |
| 98 | - @click="removeCondition" | |
| 99 | - > | |
| 100 | - <span style="color: white">删除</span></Button | |
| 59 | + <div style="height: 5vh"></div> | |
| 60 | + <!-- 执行条件 --> | |
| 61 | + <div style="border-radius: 4px" class="condition-style"> | |
| 62 | + <template | |
| 63 | + v-for="(item, index) in isUpdate == false | |
| 64 | + ? addConditionPushData | |
| 65 | + : editConditionPushData" | |
| 66 | + :key="index" | |
| 67 | + > | |
| 68 | + <span style="display: none">{{ item + index }}</span> | |
| 69 | + <span style="position: relative; top: 3.2vh; left: 0.5vw" | |
| 70 | + >执行条件 {{ index + 1 }}</span | |
| 101 | 71 | > |
| 102 | - </div> | |
| 103 | - </div> | |
| 104 | - </div> | |
| 105 | - <!-- 执行动作 --> | |
| 106 | - <div style="height: 5vh"></div> | |
| 107 | - <div style="border-radius: 4px"> | |
| 108 | - <template | |
| 109 | - v-for="(item, index) in isUpdate == false ? addActionPushData : editActionPushData" | |
| 110 | - :key="index" | |
| 111 | - > | |
| 112 | - <span style="display: none">{{ item + index }}</span> | |
| 113 | - <span style="position: relative; top: 4.2vh; left: 0.65vw">执行动作 {{ index + 1 }}</span> | |
| 114 | 72 | |
| 115 | - <div> | |
| 116 | - <AddActionForm | |
| 117 | - :editActionFather="isUpdate == false ? 1 : item" | |
| 118 | - :newActionMapFather="isUpdate == false ? 1 : newActionFilterMap" | |
| 119 | - :deviceInfo2="getDeviceInfo2" | |
| 120 | - ref="refActionChild" | |
| 121 | - /> | |
| 122 | - </div> | |
| 123 | - <div style="height: 3vh"></div> | |
| 124 | - </template> | |
| 125 | - <div | |
| 126 | - style=" | |
| 127 | - display: flex; | |
| 128 | - width: 11vw; | |
| 129 | - height: 4vh; | |
| 130 | - flex-direction: row; | |
| 131 | - justify-content: space-between; | |
| 132 | - " | |
| 133 | - > | |
| 134 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
| 135 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addAction" | |
| 136 | - >新增执行动作</Button | |
| 137 | - > | |
| 73 | + <div> | |
| 74 | + <AddConditiForm | |
| 75 | + :editConditionFather="isUpdate == false ? 1 : item" | |
| 76 | + :newConditionMapFather="isUpdate == false ? 1 : newConditionFilterMap" | |
| 77 | + :deviceInfo1="getDeviceInfo1" | |
| 78 | + ref="refConditionChild" | |
| 79 | + /> | |
| 80 | + </div> | |
| 81 | + <div style="height: 3vh"></div> | |
| 82 | + </template> | |
| 83 | + <div | |
| 84 | + style=" | |
| 85 | + display: flex; | |
| 86 | + width: 11vw; | |
| 87 | + height: 4vh; | |
| 88 | + flex-direction: row; | |
| 89 | + justify-content: space-between; | |
| 90 | + " | |
| 91 | + > | |
| 92 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
| 93 | + <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addCondition" | |
| 94 | + >新增执行条件</Button | |
| 95 | + > | |
| 96 | + </div> | |
| 97 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
| 98 | + <Button | |
| 99 | + v-if="addConditionPushData.length != 0 || editConditionPushData.length != 0" | |
| 100 | + style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
| 101 | + type="default" | |
| 102 | + class="mt-5" | |
| 103 | + @click="removeCondition" | |
| 104 | + > | |
| 105 | + <span style="color: white">删除</span></Button | |
| 106 | + > | |
| 107 | + </div> | |
| 138 | 108 | </div> |
| 139 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
| 140 | - <Button | |
| 141 | - v-if="addActionPushData.length !== 0 || editActionPushData.length !== 0" | |
| 142 | - style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
| 143 | - type="default" | |
| 144 | - class="mt-5" | |
| 145 | - @click="removeAction" | |
| 146 | - > | |
| 147 | - <span style="color: white">删除</span></Button | |
| 109 | + </div> | |
| 110 | + <!-- 执行动作 --> | |
| 111 | + <div style="height: 5vh"></div> | |
| 112 | + <div style="border-radius: 4px"> | |
| 113 | + <template | |
| 114 | + v-for="(item, index) in isUpdate == false ? addActionPushData : editActionPushData" | |
| 115 | + :key="index" | |
| 116 | + > | |
| 117 | + <span style="display: none">{{ item + index }}</span> | |
| 118 | + <span style="position: relative; top: 4.2vh; left: 0.65vw" | |
| 119 | + >执行动作 {{ index + 1 }}</span | |
| 148 | 120 | > |
| 121 | + | |
| 122 | + <div> | |
| 123 | + <AddActionForm | |
| 124 | + :editActionFather="isUpdate == false ? 1 : item" | |
| 125 | + :newActionMapFather="isUpdate == false ? 1 : newActionFilterMap" | |
| 126 | + :deviceInfo2="getDeviceInfo2" | |
| 127 | + ref="refActionChild" | |
| 128 | + /> | |
| 129 | + </div> | |
| 130 | + <div style="height: 3vh"></div> | |
| 131 | + </template> | |
| 132 | + <div | |
| 133 | + style=" | |
| 134 | + display: flex; | |
| 135 | + width: 11vw; | |
| 136 | + height: 4vh; | |
| 137 | + flex-direction: row; | |
| 138 | + justify-content: space-between; | |
| 139 | + " | |
| 140 | + > | |
| 141 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
| 142 | + <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addAction" | |
| 143 | + >新增执行动作</Button | |
| 144 | + > | |
| 145 | + </div> | |
| 146 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
| 147 | + <Button | |
| 148 | + v-if="addActionPushData.length !== 0 || editActionPushData.length !== 0" | |
| 149 | + style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
| 150 | + type="default" | |
| 151 | + class="mt-5" | |
| 152 | + @click="removeAction" | |
| 153 | + > | |
| 154 | + <span style="color: white">删除</span></Button | |
| 155 | + > | |
| 156 | + </div> | |
| 149 | 157 | </div> |
| 158 | + <div style="height: 5vh"></div> | |
| 150 | 159 | </div> |
| 151 | - <div style="height: 5vh"></div> | |
| 152 | 160 | </div> |
| 153 | - </div> | |
| 154 | - </BasicDrawer> | |
| 161 | + </BasicDrawer> | |
| 162 | + </div> | |
| 155 | 163 | </template> |
| 156 | 164 | <script lang="ts"> |
| 157 | 165 | import { defineComponent, ref, computed, unref, reactive, getCurrentInstance, watch } from 'vue'; |
| ... | ... | @@ -182,7 +190,7 @@ |
| 182 | 190 | }, |
| 183 | 191 | emits: ['success', 'register', 'registerForm'], |
| 184 | 192 | setup(_, { emit }) { |
| 185 | - const { proxy } = getCurrentInstance(); | |
| 193 | + const { proxy } = getCurrentInstance() as any; | |
| 186 | 194 | const lastEditRefTriggerChildDataArray = ref<[]>([]); |
| 187 | 195 | const lastRefTriggerChildDataArray = ref<[]>([]); |
| 188 | 196 | const lastRefConditionChildDataArray = ref<[]>([]); |
| ... | ... | @@ -301,7 +309,6 @@ |
| 301 | 309 | } |
| 302 | 310 | } else { |
| 303 | 311 | try { |
| 304 | - emit('success'); | |
| 305 | 312 | kongTriggerObj = {}; |
| 306 | 313 | kongConditionObj = {}; |
| 307 | 314 | kongActionObj = {}; |
| ... | ... | @@ -364,6 +371,7 @@ |
| 364 | 371 | } |
| 365 | 372 | }); |
| 366 | 373 | }); |
| 374 | + emit('success'); | |
| 367 | 375 | } catch (e) { |
| 368 | 376 | return e; |
| 369 | 377 | } |
| ... | ... | @@ -464,7 +472,7 @@ |
| 464 | 472 | let newTriggerArray = addTriggerPushData.value.concat(refTriggerChildData); |
| 465 | 473 | let newConditionArray = addConditionPushData.value.concat(refConditionChildData); |
| 466 | 474 | let newActionArray = addActionPushData.value.concat(refActionChildData); |
| 467 | - (newTriggerArray as any) = newTriggerArray.map((m) => { | |
| 475 | + (newTriggerArray as any) = newTriggerArray.map((m: any) => { | |
| 468 | 476 | return { |
| 469 | 477 | triggerType: m?.triggerType, |
| 470 | 478 | entityId: m?.entityId || m?.entityId1 || m?.entityId2, |
| ... | ... | @@ -492,7 +500,7 @@ |
| 492 | 500 | }, |
| 493 | 501 | }; |
| 494 | 502 | }); |
| 495 | - (newConditionArray as any) = newConditionArray.map((m) => { | |
| 503 | + (newConditionArray as any) = newConditionArray.map((m: any) => { | |
| 496 | 504 | return { |
| 497 | 505 | triggerType: m?.triggerType, |
| 498 | 506 | entityId: m?.entityId, |
| ... | ... | @@ -597,7 +605,6 @@ |
| 597 | 605 | getAllFormData.doActions.forEach((f) => { |
| 598 | 606 | isKongNum = Object.keys(f).length; |
| 599 | 607 | }); |
| 600 | - | |
| 601 | 608 | if (getAllFormData.doActions.length == 1 && isKongNum == 0) |
| 602 | 609 | return createMessage.error('请填写执行动作'); |
| 603 | 610 | Object.assign(getAllFormData, getValuesFormData); |
| ... | ... | @@ -626,7 +633,7 @@ |
| 626 | 633 | if (!unref(isUpdate)) { |
| 627 | 634 | refTriggerChildDataFunc(); |
| 628 | 635 | unref(addTriggerPushData).push(refTriggerChildData as never); |
| 629 | - (addTriggerPushData.value as any) = addTriggerPushData.value.map((m) => { | |
| 636 | + (addTriggerPushData.value as any) = addTriggerPushData.value.map((m: any) => { | |
| 630 | 637 | return { |
| 631 | 638 | triggerType: m?.triggerType, |
| 632 | 639 | entityId: m?.entityId || m?.entityId1 || m?.entityId2, |
| ... | ... | @@ -644,7 +651,7 @@ |
| 644 | 651 | value: { |
| 645 | 652 | defaultValue: Number(m.value) == null ? 0 : Number(m.value), |
| 646 | 653 | }, |
| 647 | - operation: m.operation == null ? 'GREATER_OR_EQUAL' : m.operation, | |
| 654 | + operation: m.operation == null ? 'EQUAL' : m.operation, | |
| 648 | 655 | }, |
| 649 | 656 | }, |
| 650 | 657 | ], |
| ... | ... | @@ -684,7 +691,7 @@ |
| 684 | 691 | value: { |
| 685 | 692 | defaultValue: Number(m.value) == null ? 0 : Number(m.value), |
| 686 | 693 | }, |
| 687 | - operation: m.operation == null ? 'GREATER_OR_EQUAL' : m.operation, | |
| 694 | + operation: m.operation == null ? 'EQUAL' : m.operation, | |
| 688 | 695 | }, |
| 689 | 696 | }, |
| 690 | 697 | ], |
| ... | ... | @@ -725,7 +732,7 @@ |
| 725 | 732 | if (!unref(isUpdate)) { |
| 726 | 733 | refConditionChildDataFunc(); |
| 727 | 734 | unref(addConditionPushData).push(refConditionChildData as never); |
| 728 | - (addConditionPushData.value as any) = addConditionPushData.value.map((m) => { | |
| 735 | + (addConditionPushData.value as any) = addConditionPushData.value.map((m: any) => { | |
| 729 | 736 | return { |
| 730 | 737 | triggerType: m?.triggerType, |
| 731 | 738 | entityId: m?.entityId, | ... | ... |