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)