Эх сурвалжийг харах

报警规则添加,修改。

wubiyu 1 жил өмнө
parent
commit
0225c3fec8

+ 1 - 1
.env.development

@@ -20,7 +20,7 @@ ENV = 'development'
 # VUE_APP_BASE_API = 'http://10.87.23.62:8080'
 #  VUE_APP_BASE_API = 'http://localhost:8080'
 # 开发环境v
-VUE_APP_BASE_API = 'http://10.87.21.107:8080'
+VUE_APP_BASE_API = 'http://10.87.23.46:8081'
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
 

+ 33 - 0
src/api/iot/alarmRule.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+// 新增报警规则界面初始化数据
+export function getAddAlarmRuleInit() {
+    return request({
+      url: '/iot/iot_alarm/getAddAlarmRule',
+      method: 'get',
+    })
+}
+
+// 根据报警规则ID获取规则数据 
+export function getAlarmRule(alarmRuleId) {
+    return request({
+      url: `/iot/iot_alarm/getRuleById/${alarmRuleId}`,
+      method: 'get',
+    })
+}
+
+export function getAlarmRules() {
+  return request({
+    url: `/iot/iot_alarm/getRules/`,
+    method: 'get',
+  })
+}
+
+// 保存或者更新告警规则
+export function saveAlarmRule(data) {
+    return request({
+      url: '/iot/iot_alarm/saveOrUpdateAlarmRule',
+      method: 'post',
+      data: data
+    })
+}

+ 191 - 52
src/views/warnRule/addDialogCom.vue

@@ -1,69 +1,79 @@
 <template>
   <div>
-    <el-form-item label="使用作息时间" prop="taskName">
-      <el-switch v-model="formData.taskName"> </el-switch>
-    </el-form-item>
-    <el-form-item label="时间模板" prop="taskName">
-      <el-select
-        v-model="formData.taskName"
-        clearable
-        label="规则类型"
-        placeholder="请选择规则类型"
-        prop="orgType"
-      >
-        <el-option
-          v-for="item in dict.type.core_check_type"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-        >
-        </el-option>
-      </el-select>
-    </el-form-item>
-    <div><el-button type="primary" size="medium">新增规则</el-button></div>
-    <div v-for="(item, index) in tableList" :key="item" class="ruleDiv">
+    <!-- <div>{{ datas }}</div>
+    <br />
+    <div>{{ sourceTypeList }}</div> -->
+    <el-row>
+      <el-col :span="14">
+        <el-row>
+          <el-col :span="24">
+            <el-radio-group v-model="weekDay">
+              <el-radio-button label="1">星期一</el-radio-button>
+              <el-radio-button label="2">星期二</el-radio-button>
+              <el-radio-button label="3">星期三</el-radio-button>
+              <el-radio-button label="4">星期四</el-radio-button>
+              <el-radio-button label="5">星期五</el-radio-button>
+              <el-radio-button label="6">星期六</el-radio-button>
+              <el-radio-button label="7">星期日</el-radio-button>
+            </el-radio-group>
+          </el-col>
+        </el-row>
+      </el-col>
+      <el-col :span="10">
+        <el-row type="flex" justify="end">
+          <el-col :span="11">
+            <el-button type="primary" size="medium" @click="addBtnClick">新增规则</el-button>
+            <el-button type="primary" @click="copyToClick">复制到所有</el-button>
+          </el-col>
+        </el-row>
+      </el-col>
+    </el-row>
+    <el-empty
+      v-if="datas[sourceType] == undefined || datas[sourceType][weekDay] == undefined || datas[sourceType][weekDay].length == 0"
+      description="未找到数据"></el-empty>
+
+    <div v-else v-for="(item, index) in datas[sourceType][weekDay]" :key="item" class="ruleDiv">
+
       <div class="sonruleDiv">
-        <div>{{ index + 1 }}.属性规则</div>
-        <el-select v-model="value" placeholder="请选择">
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option> </el-select
-        >--<el-select v-model="value" placeholder="请选择">
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option> </el-select
-        >--<el-select v-model="value" placeholder="请选择">
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
+        <el-time-picker placeholder="开始时间" value-format="HH:mm:ss" v-model="item.times" is-range range-separator="至"
+          @input="timeInput(item.times)" clearable=false clear-icon="">
+
+        </el-time-picker>&nbsp;&nbsp;
+        <el-select v-model="item.fieldcode" placholeder="请选择属性" @change="sourceTypeItemChanged(item, item.fieldcode)">
+          <el-option v-for="sourceTypeItem in sourceTypeList" :key="sourceTypeItem.sysFieldCode"
+            :label="sourceTypeItem.name" :value="sourceTypeItem.sysFieldCode">
           </el-option>
-        </el-select>
-        <el-button type="primary">移除</el-button>
+        </el-select>&nbsp;&nbsp;
+        <el-select v-model="item.operator" placeholder="请选择操作" @change="operatorChanged(item, item.operator)">
+          <el-option v-for="operatorsItem in item.operators" :key="operatorsItem.key" :label="operatorsItem.value"
+            :value="operatorsItem.key">
+          </el-option>
+        </el-select>&nbsp;&nbsp;
+        <el-select v-model="item.value" placeholder="请选择操作" @change="valueChanged(item, item.value)">
+          <el-option v-for="sourceValueItem in item.sourceValues" :key="sourceValueItem.key"
+            :label="sourceValueItem.value" :value="sourceValueItem.key" @click.native="sourceValueItemClick(sourceValueItem,item)">
+          </el-option>
+        </el-select>&nbsp;&nbsp;
+        <el-button type="primary" @click.native="removeClick(item, index)">移除</el-button>
       </div>
     </div>
   </div>
 </template>
 <script>
+import dayjs from "dayjs";
 export default {
+  props: {
+    sourceType: String,
+    datas: Object,
+    sourceTypeList: Array,
+  },
   name: "SocWebAddDialogCom",
   dicts: [
-    
     "core_check_type",
-    
   ],
   data() {
     return {
+      weekDay: "1",
       value: "",
       formData: {
         taskName: "",
@@ -81,6 +91,38 @@ export default {
           name: "1",
           name1: "2",
         },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
+        {
+          name: "1",
+          name1: "2",
+        },
       ],
       options: [
         {
@@ -96,19 +138,116 @@ export default {
           label: "2",
         },
       ],
+      ruleDatas: {
+
+      },
     };
   },
 
-  mounted() {},
+  mounted() { },
 
-  methods: {},
+  methods: {
+    addBtnClick() {
+      if (this.datas[this.sourceType] == undefined) {
+        this.datas[this.sourceType] = {};
+      }
+      if (this.datas[this.sourceType][this.weekDay] == undefined) {
+        this.datas[this.sourceType][this.weekDay] = [];
+      }
+      let weekDayDatas = this.datas[this.sourceType][this.weekDay];
+      let newData = {
+        id: "",
+        ruleId: "",
+        fieldcode: "",
+        //@ApiModelProperty(value = "操作符,GT(大于)、GTE(大于等于)、LT(小于)、LTE(小于等	于)、EQUALS(等于)、STARTS_WITH(以什么开始)、	ENDS_WITH(以什么结束)、CONTAIN(包含)")
+        operator: "",
+        value: "",
+        valueText: "",
+        //@ApiModelProperty(value = "报警源类型:4:烟雾传感器;5: 温湿度采集器;6:水浸; 7:门磁、窗磁;8:卷帘门门磁;9:地磁;10燃气报警器;20:报警防区")
+        sourceType: this.sourceType,
+        //@ApiModelProperty(value = "规则使用周期:1.周一,2.周二,3.周三,4.周四,5.周五,6.周六,7.周日")
+        weekDay: this.weekDay,
+        startTime: "00:00:00",
+        endTime: "23:59:59",
+        times: ["00:00:00", "23:59:59"]
+      };
+      if (newData.fieldcode == undefined || newData.fieldcode == "") {
+        if (this.sourceTypeList != undefined && this.sourceTypeList.length > 0) {
+          newData.fieldcode = this.sourceTypeList[0].sysFieldCode;
+        }
+      }
+      if (newData.operator == undefined || newData.operator == "") {
+        if (this.sourceTypeList != undefined && this.sourceTypeList.length > 0 && this.sourceTypeList[0].operatorsList != undefined && this.sourceTypeList[0].operatorsList.length > 0) {
+          newData.operator = this.sourceTypeList[0].operatorsList[0].key
+        }
+      }
+      if (newData.value == undefined || newData.value == "") {
+        if (this.sourceTypeList != undefined && this.sourceTypeList.length > 0
+          && this.sourceTypeList[0].specsList != undefined && this.sourceTypeList[0].specsList.length > 0) {
+          newData.value = this.sourceTypeList[0].specsList[0].key
+          newData.valueText = this.sourceTypeList[0].specsList[0].value;
+        }
+      }
+      this.initDataItem(newData, newData.fieldcode);
+      weekDayDatas.push(newData);
+      this.$forceUpdate();
+    },
+    copyToClick() {
+      console.log(this.ruleDatas);
+    },
+    sourceTypeItemChanged(item, type) {
+      this.initDataItem(item, type);
+      this.$forceUpdate();
+    },
+    initDataItem(item, type) {
+      let exist = this.sourceTypeList.find(i => i.sysFieldCode == type)
+      if (exist == undefined) {
+        item.operators = [];
+        item.sourceValues = [];
+      }
+      else {
+        item.operators = exist.operatorsList;
+        item.sourceValues = exist.specsList;
+      }
+      return item;
+    },
+    operatorChanged(item, value) {
+      this.$forceUpdate();
+    },
+    valueChanged(item, value) {
+      this.$forceUpdate();
+    },
+    timeInput(value) {
+      console.log(value);
+      this.$forceUpdate();
+    },
+    removeClick(item, index) {
+      if (this.datas[this.sourceType] == undefined) {
+        this.datas[this.sourceType] = {};
+      }
+      if (this.datas[this.sourceType][this.weekDay] == undefined) {
+        this.datas[this.sourceType][this.weekDay] = [];
+      }
+      let weekDayDatas = this.datas[this.sourceType][this.weekDay];
+      if (weekDayDatas.length > index) {
+        weekDayDatas.splice(index, 1)
+        this.$forceUpdate();
+      }
+    },
+    sourceValueItemClick(sourceValueItem,item)
+    {
+      console.log(sourceValueItem,item);
+    }
+  },
 };
 </script>
 <style lang="scss" scoped>
 .ruleDiv {
   margin-top: 20px;
+
   .sonruleDiv {
     margin-top: 10px;
+
     .el-button {
       margin-left: 20px;
     }

+ 214 - 68
src/views/warnRule/dialog.vue

@@ -1,81 +1,43 @@
 <template>
   <div class="edu-training-edit">
-    <DialogCom title="新增告警规则" :visible.sync="isShow" width="60%">
-      <el-form
-        :model="formData"
-        size="small"
-        ref="form"
-        :inline="true"
-        label-position="right"
-        label-width="160px"
-        label-suffix=":"
-      >
-        <el-form-item label="规则名称" prop="taskName">
-          <el-input
-            v-model="formData.taskName"
-            placeholder="请输入规则名称"
-            clearable
-            maxlength="50"
-          />
+    <DialogCom title="新增告警规则" :visible.sync="isShow" width="67%">
+      <el-form :model="formData" size="small" ref="form" :inline="true" label-position="right" label-width="160px"
+        label-suffix=":" :rules="rules">
+        <el-form-item label="规则名称" prop="ruleName">
+          <el-input v-model="formData.ruleName" placeholder="请输入规则名称" clearable maxlength="50" />
         </el-form-item>
-        <el-form-item label="规则类型" prop="taskName">
-          <el-select
-            v-model="formData.taskName"
-            clearable
-            label="规则类型"
-            placeholder="请选择规则类型"
-            prop="orgType"
-          >
-            <el-option
-              v-for="item in dict.type.sys_org_type"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+        <el-form-item label="描述" prop="taskName">
+          <el-input v-model="formData.ruleDesc" placeholder="请输入描述" clearable maxlength="50" />
         </el-form-item>
         <el-form-item label="启用" prop="taskName">
-          <el-switch v-model="formData.taskName"> </el-switch>
-        </el-form-item>
-        <el-form-item label="描述" prop="taskName">
-          <el-input
-            v-model="formData.taskName"
-            placeholder="请输入描述"
-            clearable
-            maxlength="50"
-          />
+          <el-switch v-model="formData.enabled"> </el-switch>
         </el-form-item>
-        <el-tabs type="border-card">
-          <el-tab-pane label="报警防区"></el-tab-pane>
-          <el-tab-pane label="UPS"></el-tab-pane>
-          <el-tab-pane label="烟感"></el-tab-pane>
-          <el-tab-pane label="回路"></el-tab-pane>
-          <el-tab-pane label="温湿度"></el-tab-pane>
-          <el-tab-pane label="智能电表"></el-tab-pane>
-          <el-tab-pane label="水浸"></el-tab-pane>
-          <el-tab-pane label="门磁"></el-tab-pane>
-          <el-tab-pane label="卷帘门"></el-tab-pane>
-          <el-tab-pane label="地磁"></el-tab-pane>
-          <el-tab-pane label="燃气"></el-tab-pane>
-          
+        <el-tabs type="border-card" v-model="selectType" @tab-click="onTabClick">
+          <el-tab-pane v-for="item in sourceTypeList" :label="item.sourceTypeDes" :key="item.sourceType + ''"
+            :name="item.sourceType + ''"></el-tab-pane>
+
           <!-- 列表组件 -->
-          <addCom></addCom>
+          <addCom ref="soruceRlueCom" :sourceType="selectType" :sourceTypeList="selectSystemFields"
+            :datas="ruleExpresses"></addCom>
         </el-tabs>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="onHide">关闭</el-button>
+        <br />
+        <el-button @click="onHide">关闭</el-button>&nbsp;
+        <el-button @click="onOk">确认</el-button>
       </div>
     </DialogCom>
   </div>
 </template>
 
 <script>
+import * as iotApi from "@/api/iot/alarmRule.js";
 import { mapState, mapMutations } from "vuex";
 import addCom from '@/views/warnRule/addDialogCom.vue'
 import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
+import { getAddAlarmRuleInit } from "../../api/iot/alarmRule";
 export default {
-  components: { DataRangePicker,addCom },
+  components: { DataRangePicker, addCom },
   dicts: [
     "core_registration_project",
     "core_check_type",
@@ -85,8 +47,22 @@ export default {
   data() {
     const params = this.$route.params;
     return {
-      formData: {},
-      falg: false,
+      formData: {
+        id:"",
+        ruleName: "",
+        ruleDesc: "",
+        enabled: true,
+      },
+      ruleExpresses: {},
+      rules: {
+        ruleName: [
+          { required: true, message: "请输入规则名称", trigger: 'blur' }
+        ]
+      },
+      sourceTypeList: [],
+      sourceTypeDics: {},
+      selectType: "0",
+      selectSystemFields: [],
       labelStyle: {
         color: "#000",
         "text-align": "center",
@@ -108,9 +84,18 @@ export default {
   computed: {
     ...mapState(["loginUser"]),
   },
+  created() {
+
+  },
   methods: {
     ...mapMutations([]),
 
+    async getAlarmRule() {
+
+    },
+    addComChanged(sourceType) {
+      alert(sourceType);
+    },
     async refresh(id, other) {
       if (!id) {
         // this.reset(other);
@@ -122,43 +107,202 @@ export default {
         // });
       }
     },
-    async show(id, other = {}) {
-      // this.id = id;
-      // await this.refresh(id, other);
-      this.isShow = true;
+    async show(isAdd, ruleObj) {
+      let initData = await iotApi.getAddAlarmRuleInit();
+      if (initData.code != 200) {
+        this.$message("获取初始化数据失败");
+        return;
+      }
+      this.sourceTypeList = initData.data.sourceTypeList;
+      this.initSourceTypeDics();
+      this.selectType = initData.data.sourceTypeList[0].sourceType + '';
+      this.selectSystemFields = initData.data.sourceTypeList[0].systemFields;
+      if (isAdd) {
+        if (initData.data.sourceTypeList.length > 0) {
+          this.ruleExpresses = {};
+        }
+        this.isShow = true;
+      }
+      else {
+        if (ruleObj.iotAlarmRule == undefined) {
+          this.$message("未获取到报警规则");
+          return;
+        }
+        this.formData.id =ruleObj.iotAlarmRule.id; 
+        this.formData.ruleName = ruleObj.iotAlarmRule.name;
+        this.formData.ruleDesc = ruleObj.iotAlarmRule.remark;
+        this.formData.enabled = ruleObj.iotAlarmRule.enabled == 1 ? true : false;
+        this.ruleExpresses = this.convertToRuleExpresses(ruleObj.iotAlarmRuleExpressEditVosBySourceType);
+        console.log("ruleExpresses",this.ruleExpresses);
+        this.isShow = true;
+
+        console.log(ruleObj);
+      }
+
+    },
+    convertToRuleExpresses(ruleExpresFromServer) {
+      let ruleExpress = {};
+      console.log(ruleExpresFromServer);
+      if (ruleExpresFromServer == undefined)
+        return ruleExpress;
+      ruleExpresFromServer.forEach(i => {
+        if (ruleExpress[i.sourceType] == undefined) {
+          ruleExpress[i.sourceType] = {};
+        }
+
+        i.appAlarmRuleExpressList.forEach(ruleItem => {
+          if (ruleExpress[i.sourceType][ruleItem.weekDay + ""] == undefined) {
+            ruleExpress[i.sourceType][ruleItem.weekDay + ""] = [];
+          }
+          ruleItem.sourceType = ruleItem.sourceType + "";
+          ruleItem.weekDay = ruleItem.weekDay + "";
+          ruleItem.times = [ruleItem.startTime, ruleItem.endTime];
+          this.initDataItem(ruleItem, ruleItem.sourceType)
+          ruleExpress[i.sourceType][ruleItem.weekDay + ""].push(ruleItem);
+        })
+      })
+      return ruleExpress;
+    },
+    initDataItem(item, type) {
+      console.log("initDataItem");
+      let exist = this.sourceTypeList.find(i => `${i.sourceType}` == type)
+      if (exist == undefined) {
+        item.operators = [];
+        item.sourceValues = [];
+      }
+      else {
+        if(exist.systemFields!=undefined && exist.systemFields.length>0)
+        {
+
+          let existField = exist.systemFields.find(fieldItem=>fieldItem.sysFieldCode == item.fieldcode);
+          if(existField!=undefined)
+          {
+            item.operators = existField.operatorsList;
+            item.sourceValues = existField.specsList;
+          }
+        }
+      }
+      return item;
+    },
+    initSourceTypeDics() {
+      debugger;
+
+      this.sourceTypeList.forEach(i => {
+        if (this.sourceTypeDics[i.sourceType + ""] == undefined) {
+          i.operatorsListDic = {};
+          i.specsListDic = {};
+          i.systemFieldDic = {};
+          this.sourceTypeDics[i.sourceType + ""] = i;
+          i.systemFields.forEach(systemFieldItem => {
+            let systemFieldItemKey = `${i.sourceType}_${systemFieldItem.sysFieldCode}`;
+            if (i.systemFieldDic[systemFieldItemKey] = undefined) {
+              i.systemFieldDic[systemFieldItemKey] = systemFieldItem;
+            }
+
+            systemFieldItem.operatorsList.forEach(operator => {
+              let operatorKey = `${i.sourceType}_${systemFieldItem.sysFieldCode}_${operator.key}`;
+              if (i.operatorsListDic[operatorKey] == undefined) {
+                i.operatorsListDic[operatorKey] = operator;
+              }
+            })
+            systemFieldItem.specsList.forEach(specItem => {
+              let sysFieldValueKey = `${i.sourceType}_${systemFieldItem.sysFieldCode}_${specItem.key}`;
+              if (i.specsListDic[sysFieldValueKey] == undefined) {
+                i.specsListDic[sysFieldValueKey] = specItem;
+              }
+            })
+          })
+        }
+      });
+      console.log(this.sourceTypeDics);
+    },
+    onTabClick(e) {
+      this.selectSystemFields = this.sourceTypeList[new Number(e.index)].systemFields
     },
     // 事件
     onHide() {
       this.isShow = false;
     },
+    onOk() {
+      console.log("rules", this.ruleExpresses);
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          let submit = async () => {
+            let submitData = {};
+            submitData.id = this.formData.id;
+            submitData.name = this.formData.ruleName;
+            submitData.remark = this.formData.ruleDesc;
+            submitData.enabled = this.formData.enabled ? 1 : 0;
+            submitData.isdeleted = 0;
+            submitData.type = "alarm";
+            submitData.iotAlarmRuleExpressDtoList = [];
+          
+            for (let sourceTypeKey in this.ruleExpresses) {
+              for (let weekDicKey in this.ruleExpresses[sourceTypeKey]) {
+                let weekDatas = this.ruleExpresses[sourceTypeKey][weekDicKey];
+                weekDatas.forEach(i => {
+                  i.startTime = i.times[0];
+                  i.endTime = i.times[1];
+                  let specItem = `${i.sourceType}_${i.fieldcode}_${i.value}`
+                  i.valueText = this.sourceTypeDics[i.sourceType].specsListDic[specItem].value;
+                  submitData.iotAlarmRuleExpressDtoList.push(i);
+                })
+              }
+            }
+            console.log(submitData);
+            let rh = await iotApi.saveAlarmRule(submitData);
+            if (rh.code != 200) {
+              this.$message("添加失败");
+            }
+            console.log(rh);
+            this.isShow = false;
+            this.$emit("success");
+          }
+          
+          submit();
+        }
+        else {
+          alert("error");
+          this.isShow = false;
+        }
+      });
+    }
     // 事件
     //apimark//
   },
-  mounted() {},
+
+  mounted() {
+
+
+  },
 };
 </script>
 
 <style lang="scss">
-.edu-training-edit {
-}
+.edu-training-edit {}
+
 .titleDiv {
   margin-top: 20px;
   margin-bottom: 20px;
   border-left: 5px solid #008cd6;
   padding-left: 10px;
- 
+
 }
+
 .divCls {
   display: flex;
   flex-flow: wrap;
   align-items: center;
+
   .Fatherprogress {
     width: 400px;
     margin-bottom: 20px;
     margin-top: 20px;
+
     .progressName {
       font-size: 17px;
     }
+
     .progressMain {
       font-size: 14px;
       color: #8c8c8c;
@@ -166,11 +310,13 @@ export default {
       margin-left: 20px;
       // margin: 0 auto;
     }
+
     .el-progress__text {
       display: none;
     }
   }
 }
+
 .el-dialog__body {
   padding-top: 0px;
 }

+ 43 - 25
src/views/warnRule/index.vue

@@ -66,7 +66,7 @@
             </el-row>
           </div>
           <el-table
-            :data="taskList"
+            :data="alarmRules"
             border
             v-loading="loading"
             height="600"
@@ -92,10 +92,10 @@
                 </el-table>
               </template>
             </el-table-column>
-            <el-table-column label="名称" prop="taskName"> </el-table-column>
-            <el-table-column label="类型" prop="sbmc"> </el-table-column>
-            <el-table-column label="启用" prop="pp"> </el-table-column>
-            <el-table-column label="描述" prop="ip"> </el-table-column>
+            <el-table-column label="名称" prop="iotAlarmRule.name"> </el-table-column>
+            <el-table-column label="类型" prop="iotAlarmRule.type"> </el-table-column>
+            <el-table-column label="启用" prop="iotAlarmRule.enabled"> </el-table-column>
+            <el-table-column label="描述" prop="iotAlarmRule.remark"> </el-table-column>
 
             <el-table-column label="设备数" prop="wlzt"> </el-table-column>
             <el-table-column
@@ -110,7 +110,7 @@
                   size="mini"
                   type="text"
                   icon="el-icon-view"
-                  @click="lookView(scope.row)"
+                  @click="editRuleHandler(scope.row)"
                   v-hasPermi="['core:task:query']"
                   >编辑</el-button
                 >
@@ -134,7 +134,7 @@
             </el-table-column>
           </el-table>
 
-          <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
+          <dialog-info ref="infoDialog" @success="getList()"></dialog-info>
           <!-- 关联设备 -->
           <relevanceDialog ref="relevanceDialog"> </relevanceDialog>
           <pagination
@@ -160,6 +160,8 @@ import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
 import relevanceDialog from "@/views/warnRule/relevanceDialog.vue";
 import dayjs from "dayjs";
 import { mapGetters } from "vuex";
+import * as iotApi from "@/api/iot/alarmRule.js";
+
 export default {
   components: { OrgTree, DialogInfo, DataRangePicker, relevanceDialog },
   name: "Task",
@@ -218,6 +220,8 @@ export default {
       // 表单校验
       rules: {},
 
+      alarmRules:[],
+
       orgName: "",
     };
   },
@@ -230,23 +234,33 @@ export default {
   },
   methods: {
     /** 查询监控调阅任务列表 */
-    getList() {
-      this.taskList = [
-        {
-          taskName: "上班",
-          sbmc: "上班一键巡检",
-          pp: "启用",
-          ip: "暂无描述",
-          wlzt: "水浸(全部)",
-        },
-        {
-          taskName: "上班",
-          sbmc: "上班一键巡检",
-          pp: "启用",
-          ip: "暂无描述",
-          wlzt: "水浸(全部)",
-        },
-      ];
+    async getList() {
+
+     let rh = await iotApi.getAlarmRules();
+      if(rh.code != 200)
+      {
+        this.$message("获取数据失败");
+        return;
+      }
+      this.alarmRules = rh.data;
+      console.log(rh.data);
+
+      // this.taskList = [
+      //   {
+      //     taskName: "上班",
+      //     sbmc: "上班一键巡检",
+      //     pp: "启用",
+      //     ip: "暂无描述",
+      //     wlzt: "水浸(全部)",
+      //   },
+      //   {
+      //     taskName: "上班",
+      //     sbmc: "上班一键巡检",
+      //     pp: "启用",
+      //     ip: "暂无描述",
+      //     wlzt: "水浸(全部)",
+      //   },
+      // ];
       return;
       this.loading = true;
       listTask(this.queryParams).then((response) => {
@@ -314,7 +328,11 @@ export default {
       this.handleQuery();
     },
     addRuleHandler() {
-      this.$refs["infoDialog"].show("row.id", {});
+      this.$refs["infoDialog"].show(true, {});
+    },
+    editRuleHandler(ruleObj)
+    {
+      this.$refs["infoDialog"].show(false, ruleObj);
     },
     // 多选框选中数据
     handleSelectionChange(selection) {