Răsfoiți Sursa

新增报警控制器必须选择报警主机

jiawuxian 2 ani în urmă
părinte
comite
832e2771aa

+ 8 - 0
src/api/system/device.js

@@ -9,6 +9,14 @@ export function listDevice(query) {
   })
 }
 
+export function listIdName(query) {
+  return request({
+    url: '/system/device/listidname',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询详细【请填写功能名称】
 export function getDevice(id) {
   return request({

+ 3 - 1
src/components/orgTree/orgDropDown.vue

@@ -52,7 +52,9 @@ export default {
           // let t=this.$refs.tree;
           // debugger;
           // this.$emit("input", response.data[0].id);
-          // this.$emit("select", response.data[0]);
+          if(this.val){
+            this.$emit("select", response.data[0]);
+          }
         }
       });
     },

+ 35 - 8
src/views/resumption/protection/dialog.edit.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="rule-type">
     <DialogCom
-      :title="id ? '编辑防区' : '新增防区'"
+      :title="id ? '编辑报警控制器' : '新增报警控制器'"
       :visible.sync="isShow"
       @close="onHide"
       width="500px"
@@ -23,17 +23,33 @@
               @select="onOrgSelect"
             />
           </el-form-item>
-          <el-form-item prop="name" label="防区名称:">
+          <el-form-item label="报警主机" prop="alarmHostId">
+            <el-select
+              label="报警主机"
+              v-model="formData.alarmHostId"
+              placeholder="请选择报警主机"
+              clearable
+              style="width:330px"
+            >
+              <el-option
+                v-for="host in alarmHostOptions"
+                :key="host.id"
+                :label="host.name"
+                :value="host.id"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="name" label="报警控制器名称:">
             <el-input
-            v-model="formData.name"
+              v-model="formData.name"
               :maxlength="50"
               name="name"
-              placeholder="请输入防区名称"
+              placeholder="请输入报警控制器名称"
               clearable
             />
           </el-form-item>
 
-          <el-form-item prop="type" label="24小时防区:">
+          <el-form-item prop="type" label="24小时报警控制器:">
             <el-switch
               v-model="formData.allHour"
               :active-value="1"
@@ -45,7 +61,7 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="isShow=false">取消</el-button>
+        <el-button @click="isShow = false">取消</el-button>
         <el-button type="primary" @click="onSubmit">确定</el-button>
       </div>
     </DialogCom>
@@ -55,6 +71,7 @@
 <script>
 import { mapState, mapMutations, mapGetters } from "vuex";
 import * as api from "@/api/resumption/protection";
+import { listIdName } from "@/api/system/device";
 import orgDropDown from "../../../components/orgTree/orgDropDown.vue";
 export default {
   data() {
@@ -62,10 +79,12 @@ export default {
       id: null,
       isShow: false,
       formData: this.reset(),
+      alarmHostOptions: [],
       // 机构树选项
       formDataRules: {
         orgId: [{ required: true, message: "请选择所属机构" }],
-        name: [{ required: true, message: "请输入防区名称" }],
+        name: [{ required: true, message: "请输入报警控制器名称" }],
+        alarmHostId: [{ required: true, message: "请选择报警主机" }],
       },
     };
   },
@@ -90,6 +109,7 @@ export default {
         orgName: null,
         name: null,
         allHour: 0,
+        alarmHostId: null,
       };
     },
     async refresh(id, other) {
@@ -103,7 +123,8 @@ export default {
 
     // 事件
     onHide() {
-      this.$refs.form.resetFields();     
+      this.$refs.form.resetFields();
+      this.formData = this.reset();
     },
     onSubmit() {
       this.$refs.form.validate(async (isValidate) => {
@@ -116,6 +137,12 @@ export default {
     onOrgSelect(node) {
       this.formData.orgPath = node.path;
       this.formData.orgName = node.shortName;
+      listIdName({ orgId: node.id, deviceType: 1, assetType: 2 }).then((d) => {
+        this.alarmHostOptions = d.data;
+        if(!d.data.find(i=>i.id==this.formData.alarmHostId)){
+          this.formData.alarmHostId  = null;
+        }       
+      });
     },
   },
   created() {},

+ 3 - 3
src/views/resumption/protection/dialog.history.vue

@@ -13,11 +13,11 @@
             <span>{{ protection.orgName }}</span>
           </div>
           <div style="margin-bottom: 20px">
-            <span>防区名称:</span>
+            <span>报警控制器名称:</span>
             <span>{{ protection.name }}</span>
           </div>
           <div style="margin-bottom: 20px">
-            <span> 24小时防区:</span>
+            <span> 24小时报警控制器:</span>
             <span>{{ protection.allHour ? "是" : "否" }}</span>
           </div>
           <div style="margin-bottom: 20px">
@@ -36,7 +36,7 @@
           </div>
           <el-table :data="tableData" border style="width: 100%">
             <el-table-column type="index" label="序号"></el-table-column>
-            <el-table-column prop="statusText" label="布防状态"
+            <el-table-column prop="statusText" label="布防状态"
               ><template slot-scope="r">
                 {{ getLabel(statusDict, r.row.status) }}
               </template></el-table-column

+ 13 - 22
src/views/resumption/protection/index.vue

@@ -29,11 +29,11 @@
               clearable
             />
           </el-form-item>
-          <el-form-item prop="status" label="防区状态">
+          <el-form-item prop="status" label="报警控制器状态">
             <el-select
-              label="防区状态"
+              label="报警控制器状态"
               v-model="queryParams.status"
-              placeholder="请选择防区状态"
+              placeholder="请选择报警控制器状态"
               clearable
             >
               <el-option
@@ -134,22 +134,14 @@
           ></el-table-column>
           <el-table-column
             prop="name"
-            label="防区名称"
+            label="报警控制器名称"
             v-if="columns[2].visible"
           >
-          </el-table-column>
-          <el-table-column
-            prop="allHour"
-            label="24小时防区"
-            v-if="columns[3].visible"
-            ><template slot-scope="r"
-              >{{ r.row.allHour ? "是" : "否" }}
-            </template>
-          </el-table-column>
+          </el-table-column>         
           <el-table-column
             prop="status"
-            label="防状态"
-            v-if="columns[4].visible"
+            label="布撤防状态"
+            v-if="columns[3].visible"
           >
             <template slot-scope="r"
               >{{ getLabel(dict.type.protection_status, r.row.status,"未知") }}
@@ -157,8 +149,8 @@
           </el-table-column>
           <el-table-column
             prop="statusUpdateTime"
-            label="布撤防时间"
-            v-if="columns[5].visible"
+            label="最后登记时间"
+            v-if="columns[4].visible"
           >
           </el-table-column>
           <el-table-column label="操作">
@@ -197,7 +189,7 @@
               >
               <el-popconfirm
                 @confirm="onDel(r.row.id)"
-                title="点击确定删除防区"
+                title="点击确定删除报警控制器"
               >
                 <el-button
                   size="mini"
@@ -274,10 +266,9 @@ export default {
       columns: [
         { key: 0, label: `序号`, visible: true },
         { key: 1, label: `所属机构`, visible: true },
-        { key: 2, label: `防区名称`, visible: true },
-        { key: 3, label: `24小时防区`, visible: true },
-        { key: 4, label: `防区状态`, visible: true },
-        { key: 5, label: `布撤防时间`, visible: true },
+        { key: 2, label: `报警控制器名称`, visible: true },
+        { key: 3, label: `报警控制器状态`, visible: true },
+        { key: 4, label: `布撤防时间`, visible: true },
       ],
     };
   },