diff --git a/src/views/iot/devicemodel/index.vue b/src/views/iot/devicemodel/index.vue index 1b8cf46c..f844aa4d 100644 --- a/src/views/iot/devicemodel/index.vue +++ b/src/views/iot/devicemodel/index.vue @@ -149,6 +149,12 @@ link type="primary" @click="openForm('update', scope.row.id)" +
+ + 新增告警规则 + +
+ + + + + + + + + + + + + + + + @@ -546,6 +574,15 @@ const ruleForm = reactive>({ ruleValue: undefined, }) +const createRuleDialogVisible = ref(false) +const createRuleFormLoading = ref(false) +const createRuleFormRef = ref() +const createRuleForm = reactive({ + identifier: 'ALARM', + fieldName: '', + defaultValue: '报警', +}) + const extraPointRules = ref< Array<{ id?: number @@ -601,6 +638,17 @@ const isRunningIdentifier = computed(() => { return (ruleForm.identifier || '').toString().toUpperCase() === 'RUNNING' }) +const openCreateRuleForm = () => { + if (!attributeModelId.value) { + message.error('请先选择模型') + return + } + createRuleForm.identifier = 'ALARM' + createRuleForm.fieldName = '报警' + createRuleForm.defaultValue = '报警' + createRuleDialogVisible.value = true +} + const openRuleForm = (row: DeviceModelRuleVO & { pointRulesVOList?: any[] }) => { ruleForm.id = row.id ruleForm.identifier = row.identifier @@ -703,6 +751,29 @@ const handleAddPointRule = () => { }) } +const handleCreateRuleSubmit = async () => { + if (!attributeModelId.value) return + if (!createRuleForm.fieldName) { + message.warning('请输入名称') + return + } + try { + createRuleFormLoading.value = true + const payload = { + identifier: createRuleForm.identifier, + fieldName: createRuleForm.fieldName, + defaultValue: createRuleForm.defaultValue, + modelId: attributeModelId.value, + } + await request.post({ url: '/iot/device-model-rules/create', data: payload }) + message.success('新增成功') + createRuleDialogVisible.value = false + await getRuleList() + } finally { + createRuleFormLoading.value = false + } +} + const handleRemovePointRule = (index: number) => { if (index < 0 || index >= extraPointRules.value.length) return extraPointRules.value.splice(index, 1)