heyang %!s(int64=2) %!d(string=hai) anos
pai
achega
fcb4116bf1

+ 37 - 0
src/api/laboratory/warningNotice.js

@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+// 预警通知-列表
+export function warningNoticeLogList(data) {
+  return request({
+    url: '/laboratory/warningNoticeLog/list',
+    method: 'post',
+    data: data
+  })
+}
+// 预警通知-详情
+export function warningNoticeLogDetail(query) {
+  return request({
+    url: '/laboratory/warningNoticeLog/getById',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 算法预警/危险源预警-新增
+export function warningConfigAdd(data) {
+  return request({
+    url: '/laboratory/warningConfig/addOrUpdate',
+    method: 'post',
+    data: data
+  })
+}
+// 算法预警/危险源预警-详情
+export function warningConfigList(query) {
+  return request({
+    url: '/laboratory/warningConfig/list',
+    method: 'get',
+    params: query
+  })
+}
+
+

+ 23 - 5
src/views/comprehensive/laboratoryManagement/subject/deviceList.vue

@@ -98,17 +98,20 @@
     </div>
     <div class="for-max-box">
       <div class="for-big-box" v-for="(item,index) in listSpjk" :key="index">
-        <p class="for-title-p">{{subjectData.room}}-{{item.type.name}}{{index+1}}</p>
+        <p class="camera">抓拍</p>
+        <p class="for-title-p" style="background: none;color: #333;margin-top: 12px;">{{subjectData.room}}-{{item.type.name}}{{index+1}}</p>
         <div class="for-text-box">
           <p>摄像头编号:</p>
-          <p></p>
-        </div>
-        <div class="for-text-box">
-          <p></p>
           <el-tooltip class="item" effect="dark" :content="item.hardwareNum" placement="top">
             <p>{{item.hardwareNum}}</p>
           </el-tooltip>
         </div>
+<!--        <div class="for-text-box">-->
+<!--          <p></p>-->
+<!--          <el-tooltip class="item" effect="dark" :content="item.hardwareNum" placement="top">-->
+<!--            <p>{{item.hardwareNum}}</p>-->
+<!--          </el-tooltip>-->
+<!--        </div>-->
         <div class="for-button-box">
           <p @click="editData(8,item)"><i class="el-icon-edit-outline"></i>编辑</p>
           <p></p>
@@ -1025,6 +1028,21 @@ export default {
       padding-bottom:10px;
       border-radius: 6px;
       margin:0 20px 20px 0;
+      position: relative;
+      .camera{
+        position: absolute;
+        right: 0;
+        top: 0;
+        width: 50px;
+        height: 30px;
+        background: #0183FA;
+        border-radius: 10px 0px 10px 0px;
+        font-size: 14px;
+        font-weight: 400;
+        color: #FFFFFF;
+        line-height: 30px;
+        text-align: center;
+      }
       .for-title-p{
         background: rgba(182,214,254,1);
         color:#0183FA;

+ 45 - 15
src/views/comprehensive/message/warningNotice/algorithmForewarning.vue

@@ -9,13 +9,13 @@
       <el-form class="form-max-box" ref="addForm" :model="addForm" :rules="rules" label-width="170px">
         <div class="form-top-box">
           <el-form-item class="form-item-box" label="穿戴抓拍周期" prop="num1">
-            <el-input-number style="width:320px" v-model="addForm.num1" placeholder="请输入抓拍周期(小时)" :min="1" :max="3" label=""></el-input-number>
+            <el-input-number style="width:320px" v-model="addForm.wearDetectionCycle" placeholder="请输入抓拍周期(小时)" :min="1" :max="3" label=""></el-input-number>
           </el-form-item>
           <el-form-item class="form-item-box" label="异常再识别数" prop="num2">
-            <el-input-number style="width:320px" v-model="addForm.num2" placeholder="请输入异常再识别数" :min="5" :max="10" label=""></el-input-number>
+            <el-input-number style="width:320px" v-model="addForm.anomalyCount" placeholder="请输入异常再识别数" :min="5" :max="10" label=""></el-input-number>
           </el-form-item>
           <el-form-item class="form-item-box" label="异常再识别率" prop="num3">
-            <el-input-number style="width:320px" v-model="addForm.num3" placeholder="请输入异常再识别率(%)" :min="70" :max="90" label=""></el-input-number>
+            <el-input-number style="width:320px" v-model="addForm.anomalyRate" placeholder="请输入异常再识别率(%)" :min="70" :max="90" label=""></el-input-number>
           </el-form-item>
         </div>
         <p class="form-title-p">穿戴识别</p>
@@ -24,7 +24,7 @@
           <div class="check-right-box check-right-box-A">
             <p>监测异常</p>
             <div>
-              <el-select v-model="systemData.num" placeholder="请选择" style="width:50px;height:30px;">
+              <el-select v-model="addForm.systemNotice" placeholder="请选择" style="width:50px;height:30px;">
                 <el-option
                   v-for="item in options"
                   :key="item.value"
@@ -42,7 +42,7 @@
           <div class="check-right-box check-right-box-A">
             <p>监测异常</p>
             <div>
-              <el-select v-model="shortMessageData.num" placeholder="请选择" style="width:50px;height:30px;">
+              <el-select v-model="addForm.messageNotice" placeholder="请选择" style="width:50px;height:30px;">
                 <el-option
                   v-for="item in options"
                   :key="item.value"
@@ -60,7 +60,7 @@
           <div class="check-right-box check-right-box-A">
             <p>监测异常</p>
             <div>
-              <el-select v-model="voiceData.num" placeholder="请选择" style="width:50px;height:30px;">
+              <el-select v-model="addForm.voiceNotcie" placeholder="请选择" style="width:50px;height:30px;">
                 <el-option
                   v-for="item in options"
                   :key="item.value"
@@ -85,6 +85,8 @@
 </template>
 
 <script>
+import { warningConfigAdd,warningConfigList} from '@/api/laboratory/warningNotice'
+import { gasApplyDetail } from '@/api/gasManage3_0/gasManage'
   export default {
     name: 'algorithmForewarning',
     data(){
@@ -94,10 +96,15 @@
           {value:"5",label:"5"},{value:"6",label:"6"},{value:"7",label:"7"},{value:"8",label:"8"},
           {value:"9",label:"9"},{value:"10",label:"10"}
         ],
-        addForm:{
-          num1:1,
-          num2:10,
-          num3:80,
+        addForm: {
+          id:'',
+          wearDetectionCycle:1,
+          anomalyCount:10,
+          anomalyRate:80,
+          systemNotice:3,//系统通知
+          messageNotice:3,//短信通知
+          voiceNotcie:3,//语音播报
+          warningType:1,
         },
         systemData:{
           num:3
@@ -109,13 +116,13 @@
           num:3
         },
         rules:{
-          num1: [
+          wearDetectionCycle: [
             { required: true, message: "请输入穿戴抓拍周期", trigger: "blur" },
           ],
-          num2: [
+          anomalyCount: [
             { required: true, message: "请输入异常再识别数", trigger: "blur" },
           ],
-          num3: [
+          anomalyRate: [
             { required: true, message: "请输入异常再识别率", trigger: "blur" },
           ],
         },
@@ -125,7 +132,7 @@
 
     },
     mounted(){
-
+      this.getInfo();
     },
     methods:{
       //选择
@@ -144,11 +151,34 @@
           this.$set(this.voiceData,'type',1);
         }
       },
+      /* 详情 */
+      getInfo(){
+        warningConfigList({warningType:'1'}).then( response => {
+          let res=response.data[0];
+          if(response.code==200 && res){
+            this.addForm.id=res.id
+            this.addForm.wearDetectionCycle=res.wearDetectionCycle
+            this.addForm.anomalyCount=res.anomalyCount
+            this.addForm.anomalyRate=res.anomalyRate
+            this.addForm.systemNotice=res.systemNotice
+            this.addForm.messageNotice=res.messageNotice
+            this.addForm.voiceNotcie=res.voiceNotcie
+            this.addForm.voiceNotcie=res.voiceNotcie
+          }
+        });
+
+      },
       //提交
       upDataButton(){
         this.$refs["addForm"].validate(valid => {
           if (valid) {
-
+            let obj=[];
+            obj.push(this.addForm)
+            warningConfigAdd(obj).then((response) => {
+                if(response.code==200){
+                  this.outButton();
+                }
+            });
           }
         })
       },

+ 57 - 25
src/views/comprehensive/message/warningNotice/index.vue

@@ -4,7 +4,7 @@
       <div class="title-box">
         <el-form :model="queryParams" class="form-box" ref="queryForm" :inline="true" label-width="80px">
           <el-form-item label="预警类型" prop="deptId" label-width="100px">
-            <el-select v-model="queryParams.deptId" clearable placeholder="全部" style="width:150px;">
+            <el-select v-model="queryParams.warningType" clearable placeholder="全部" style="width:150px;">
               <el-option
                 v-for="item in selectListA"
                 :key="item.key"
@@ -14,7 +14,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="预警方式" prop="deptId">
-            <el-select v-model="queryParams.deptId" clearable placeholder="全部" style="width:150px;">
+            <el-select v-model="queryParams.warningWay" clearable placeholder="全部" style="width:150px;">
               <el-option
                 v-for="item in selectListB"
                 :key="item.key"
@@ -60,16 +60,32 @@
       </div>
       <div class="content-box">
         <el-table  border :data="tableList" ref="multipleTable">
-          <el-table-column label="预警时间" align="center" prop="checkSchedule" show-overflow-tooltip />
-          <el-table-column label="预警类型" align="center" prop="checkSchedule" show-overflow-tooltip width="300"/>
-          <el-table-column label="预警内容" align="center" prop="checkSchedule" show-overflow-tooltip width="300"/>
-          <el-table-column label="预警方式" align="center" prop="createName" show-overflow-tooltip width="300"/>
-          <el-table-column label="实验室" sortable="custom" align="center" prop="createTime" show-overflow-tooltip width="300"/>
+          <el-table-column label="预警时间" align="center" prop="warningTime" show-overflow-tooltip/>
+          <el-table-column label="预警类型" align="center" prop="warningType" show-overflow-tooltip width="300">
+            <template slot-scope="scope">
+              <div class="table-button-box">
+                <span v-if="scope.row.warningType==1">算法识别</span>
+                <span v-if="scope.row.warningType==2">化学品</span>
+                <span v-if="scope.row.warningType==3">气瓶</span>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="预警内容" align="center" prop="warningContent" show-overflow-tooltip width="300"/>
+          <el-table-column label="预警方式" align="center" prop="warningWay" show-overflow-tooltip width="300">
+            <template slot-scope="scope">
+              <div class="table-button-box">
+                <span v-if="scope.row.warningWay==1">系统通知</span>
+                <span v-if="scope.row.warningWay==2">短信通知</span>
+                <span v-if="scope.row.warningWay==3">声光报警</span>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="实验室" sortable="custom" align="center" prop="subName" show-overflow-tooltip width="300"/>
           <el-table-column label="操作" align="center" prop="deptName" width="150">
             <template slot-scope="scope">
               <div class="table-button-box">
                 <p class="table-button-null"></p>
-                <p class="table-button-p">详情</p>
+                <p class="table-button-p" @click="clickPage(4,scope.row)">详情</p>
                 <p class="table-button-null"></p>
               </div>
             </template>
@@ -86,11 +102,12 @@
     </div>
     <algorithmForewarning v-if="pageType == 2"></algorithmForewarning>
     <sourceOfDangerForewarning v-if="pageType == 3"></sourceOfDangerForewarning>
-    <infoPage v-if="pageType == 4"></infoPage>
+    <infoPage :pageData="pageData" v-if="pageType == 4"></infoPage>
   </div>
 </template>
 
 <script>
+  import {warningNoticeLogList} from "@/api/laboratory/warningNotice";
   import algorithmForewarning from './algorithmForewarning.vue'
   import sourceOfDangerForewarning from './sourceOfDangerForewarning.vue'
   import infoPage from './infoPage.vue'
@@ -103,41 +120,58 @@
     },
     data(){
       return{
-        pageType:4,
-        selectListA:[{key:"1",value:"选项1"}],
-        selectListB:[{key:"1",value:"选项2"}],
-        queryParams:{},
+        pageType:1,
+        selectListA:[{key:'0',value:"全部"},{key:"1",value:"算法识别"},{key:"2",value:"化学品"},{key:"3",value:"气瓶"}],
+        selectListB:[{key:"",value:"全部"},{key:"1",value:"系统通知"},{key:"2",value:"短信通知"},{key:"3",value:"声光报警"}],
+        queryParams:{
+          pageNum: 1,
+          pageSize:20,
+          warningType:'0',//预警类型
+          warningWay:'',//预警方式
+          warningStartTime:'',
+          warningEndTime:'',
+        },
         dateRange:[],
         tableList:[],
         total:0,
+        pageData:{},
       }
     },
     created(){
 
     },
     mounted(){
-
+        this.getList()
     },
     methods:{
       goPage(type){
         if(type != this.pageType){
           this.$set(this,'pageType',type);
         }
+        if(type==1){
+          this.getList()
+        }
+      },
+      //详情
+      clickPage(type,row){
+        this.pageData.id=row.id
+        this.$set(this,'pageType',type);
+
       },
       //获取数据列表
       getList(){
         let obj = JSON.parse(JSON.stringify(this.queryParams))
         if(this.dateRange[0]){
-          obj.startTime = this.dateRange[0];
+          obj.warningStartTime = this.dateRange[0];
         }else{
-          obj.startTime = "";
+          obj.warningStartTime = "";
         }
         if(this.dateRange[1]){
-          obj.endTime = this.dateRange[1];
+          obj.warningEndTime = this.dateRange[1];
         }else{
-          obj.endTime = "";
+          obj.warningEndTime = "";
         }
-        checkManageList(obj).then(response => {
+        warningNoticeLogList(obj).then(response => {
           this.total = response.data.total;
           this.tableList = response.data.records;
         });
@@ -153,12 +187,10 @@
         this.$set(this,'queryParams',{
           pageNum:1,
           pageSize:20,
-          checkType:2,
-          manageStatus:'-1',
-          checkTimeSort:0,
-          searchValue:"",
-          deptId:"",
-          isSelf:0,
+          warningType:'',//预警类型
+          warningWay:'',//预警方式
+          warningStartTime:'',
+          warningEndTime:'',
         });
         this.handleQuery();
       },

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 61 - 42
src/views/comprehensive/message/warningNotice/infoPage.vue


+ 84 - 38
src/views/comprehensive/message/warningNotice/sourceOfDangerForewarning.vue

@@ -9,60 +9,60 @@
       <el-form class="form-max-box" ref="addForm" :model="addForm" :rules="rules" label-width="170px">
         <p class="form-title-p">化学品预警规则</p>
         <div class="form-top-box">
-          <el-form-item class="form-item-box" label="即将过期提醒" prop="num1">
-            <el-input-number style="width:320px" v-model="addForm.num1" placeholder="请输入即将过期提醒天数(天)" :min="5" :max="60" label=""></el-input-number>
+          <el-form-item class="form-item-box" label="即将过期提醒" prop="unexpiredWarnDays">
+            <el-input-number style="width:320px" v-model="addForm.unexpiredWarnDays" placeholder="请输入即将过期提醒天数(天)" :min="5" :max="60" label=""></el-input-number>
           </el-form-item>
-          <el-form-item class="form-item-box" label="过期提醒数" prop="num2">
-            <el-input-number style="width:320px" v-model="addForm.num2" placeholder="请输入化学品过期后提醒次数" :min="1" :max="5" label=""></el-input-number>
+          <el-form-item class="form-item-box" label="过期提醒数" prop="expiredWarnCount">
+            <el-input-number style="width:320px" v-model="addForm.expiredWarnCount" placeholder="请输入化学品过期后提醒次数" :min="1" :max="5" label=""></el-input-number>
           </el-form-item>
         </div>
         <el-form-item class="form-item-check-box" label="违规带离">
-          <el-checkbox-group v-model="addForm.check1">
+          <el-checkbox-group v-model="addForm.illegalRemoval">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListA" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListA" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item class="form-item-check-box" label="超时未归还">
-          <el-checkbox-group v-model="addForm.check2">
+          <el-checkbox-group v-model="addForm.timeout">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListB" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListB" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item class="form-item-check-box" label="化学品已过期">
-          <el-checkbox-group v-model="addForm.check3">
+          <el-checkbox-group v-model="addForm.expired">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListB" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListB" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item class="form-item-check-box" label="化学品即将过期">
-          <el-checkbox-group v-model="addForm.check4">
+          <el-checkbox-group v-model="addForm.unexpired">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListB" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListB" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <p class="form-title-p" style="margin-top:20px;margin-bottom:10px;">气瓶预警规则</p>
         <el-form-item class="form-item-check-box" label="违规带离">
-          <el-checkbox-group v-model="addForm.check5">
+          <el-checkbox-group v-model="addForm2.illegalRemoval">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListA" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListA" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item class="form-item-check-box" label="超时未归还">
-          <el-checkbox-group v-model="addForm.check6">
+          <el-checkbox-group v-model="addForm2.timeout">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListB" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListB" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item class="form-item-check-box" label="化学品已过期">
-          <el-checkbox-group v-model="addForm.check7">
+          <el-checkbox-group v-model="addForm2.expired">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListB" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListB" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
         <el-form-item class="form-item-check-box" label="化学品即将过期">
-          <el-checkbox-group v-model="addForm.check8">
+          <el-checkbox-group v-model="addForm2.unexpired">
             <el-checkbox style="width:100px;margin-top:2px;"
-                         v-for="item in checkListB" :value="item.key" :label="item.value" :key="item.key">{{item.value}}</el-checkbox>
+                         v-for="item in checkListB" :value="item.key" :label="item.key" :key="item.key">{{item.value}}</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
       </el-form>
@@ -77,30 +77,39 @@
 </template>
 
 <script>
+import { warningConfigAdd, warningConfigList } from '@/api/laboratory/warningNotice'
+
   export default {
     name: 'sourceOfDangerForewarning',
     data(){
       return{
         checkListA:[{key:"1",value:"系统通知"},{key:"2",value:"短信通知"},{key:"3",value:"声光报警"},],
         checkListB:[{key:"1",value:"系统通知"},{key:"2",value:"短信通知"}],
-        addForm:{
-          num1:7,
-          num2:2,
-          check1:[],
-          check2:[],
-          check3:[],
-          check4:[],
-          check5:[],
-          check6:[],
-          check7:[],
-          check8:[],
+        addForm:{//化学品
+          id:'',
+          unexpiredWarnDays:7,
+          expiredWarnCount:2,
+          illegalRemoval:[],
+          timeout:[],
+          expired:[],
+          unexpired:[],
+          warningType:2,
+
+        },
+        addForm2:{//气瓶
+          id:'',
+          illegalRemoval:[],
+          timeout:[],
+          expired:[],
+          unexpired:[],
+          warningType:3,
         },
         rules:{
-          num1: [
-            { required: true, message: "请输入穿戴抓拍周期", trigger: "blur" },
+          unexpiredWarnDays: [
+            { required: true, message: "请输入即将过期提醒天数(天)", trigger: "blur" },
           ],
-          num2: [
-            { required: true, message: "请输入异常再识别数", trigger: "blur" },
+          expiredWarnCount: [
+            { required: true, message: "请输入化学品过期后提醒次数", trigger: "blur" },
           ],
         },
       }
@@ -109,15 +118,52 @@
 
     },
     mounted(){
-
+      this.getInfo();
     },
     methods:{
-
+      /* 详情 */
+      getInfo(){
+        warningConfigList({warningType:'2'}).then( response => {
+          let res=response.data[0];
+          if(response.code==200 && res){
+            this.addForm.id=res.id
+            this.addForm.unexpiredWarnDays=res.unexpiredWarnDays
+            this.addForm.expiredWarnCount=res.expiredWarnCount
+            this.addForm.illegalRemoval=res.illegalRemoval.split(',')
+            this.addForm.timeout=res.timeout.split(',')
+            this.addForm.expired=res.expired.split(',')
+            this.addForm.unexpired=res.unexpired.split(',')
+          }
+        });
+        warningConfigList({warningType:'3'}).then( response => {
+          let res=response.data[0];
+          if(response.code==200 && res){
+            this.addForm2.id=res.id
+            this.addForm2.illegalRemoval=res.illegalRemoval.split(',')
+            this.addForm2.timeout=res.timeout.split(',')
+            this.addForm2.expired=res.expired.split(',')
+            this.addForm2.unexpired=res.unexpired.split(',')
+          }
+        });
+      },
       //提交
       upDataButton(){
         this.$refs["addForm"].validate(valid => {
           if (valid) {
-
+            let obj=[];
+            obj.push(this.addForm)
+            obj.push(this.addForm2)
+            for(let i=0;i<obj.length;i++){
+              obj[i].illegalRemoval=obj[i].illegalRemoval.join(',');
+              obj[i].timeout=obj[i].timeout.join(',');
+              obj[i].expired=obj[i].expired.join(',');
+              obj[i].unexpired=obj[i].unexpired.join(',');
+            }
+            warningConfigAdd(obj).then((response) => {
+              if(response.code==200){
+                this.outButton();
+              }
+            });
           }
         })
       },

+ 1 - 0
src/views/emergencyManagement/smartLoT/hardware/index.vue

@@ -230,6 +230,7 @@ export default {
 
       if(this.pageType == 'VIDEO_MONITOR'){
         this.$refs.surveillance.handleAdd();
+
       }else if(this.pageType == 'SWITCH'){
         this.$refs.power.handleAdd();
       }else if(this.pageType == 'AI_VENTILATION'){

+ 104 - 113
src/views/emergencyManagement/smartLoT/hardware/powerControl.vue

@@ -29,20 +29,6 @@
           <p v-else :class="scope.row.status==0?'table-type-color-red':''">{{scope.row.status==0?'离线':'未知'}}</p>
         </template>
       </el-table-column>
-      <!--<el-table-column label="开关" align="left" >-->
-        <!--<template slot-scope="scope">-->
-          <!--<el-switch-->
-            <!--class="switch"-->
-            <!--@change="switchChange(scope.row.deptId)"-->
-            <!--v-model="scope.row.deptId"-->
-            <!--:active-value="1"-->
-            <!--:inactive-value="0"-->
-            <!--active-text="开"-->
-            <!--inactive-text="关"-->
-          <!--&gt;-->
-          <!--</el-switch>-->
-        <!--</template>-->
-      <!--</el-table-column>-->
       <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="120" v-if="tableButtonType">
         <template slot-scope="scope">
           <div class="table-button-box">
@@ -80,94 +66,7 @@
       :before-close="handleClose">
       <div class="videoSurveillance-drawer-max-box">
         <div class="videoSurveillance-drawer-content">
-          <el-form ref="form" :model="form"  :rules="rules" label-width="80px">
-            <el-form-item label="硬件名称"  prop="name">
-              <el-input
-                v-model="form.name"
-                placeholder="请输入硬件名称"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-            <el-form-item label="硬件类型" v-if="pageType==''" prop="type">
-              <el-select v-model="form.type" placeholder="请选择硬件类型">
-                <el-option label="请选择硬件类型" value="" />
-                <el-option v-for="hardType in hardTypeOptions"
-                           :key="hardType.enumName"
-                           :label="hardType.name"
-                           :value="hardType.enumName">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="实验室" prop="subjectId">
-              <el-select v-model="form.subjectId" placeholder="请选择实验室">
-                <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
-                  <el-option style="max-width: 200px"
-                             :key="lab.id"
-                             :label="lab.name"
-                             :value="lab.id">
-                  </el-option>
-                </el-tooltip>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="继电器类型" label-width="1rem">
-              <el-radio-group v-model="form.hardwareType" @change="radioChange">
-                <el-radio :label="item.value" :key="item.value" v-for="(item,index) in hardwardTypeList">{{item.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="绑定继电器" prop="relayCode" v-if="form.hardwareType==1">
-              <el-select v-model="form.relayCode" placeholder="请选择继电器" clearable @change="loadRelayNum" @clear="loadClear">
-                <el-option v-for="relay in relayList"
-                           :key="relay.code"
-                           :label="relay.code"
-                           :value="relay.code">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="继电器编号"  prop="relayCode" v-if="form.hardwareType==2">
-              <el-input
-                v-model="form.relayCode"
-                placeholder="请输入继电器编号"
-                clearable
-                size="small"
-                maxlength="20"
-              />
-            </el-form-item>
-            <el-form-item label="继电器位置" prop="bit" >
-              <el-select v-model="form.bit" placeholder="请选择继电器位置" clearable >
-                <el-option v-for="lab in relayNumList"
-                           :key="lab.name"
-                           :label="lab.name"
-                           :value="lab.name">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="是否灭火主机" prop="isPcfire">
-              <el-radio-group v-model="form.isPcfire">
-                <el-radio :label="0">否</el-radio>
-                <el-radio :label="1">是</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="配置名称"  prop="relayCode" v-if="form.hardwareType==2">
-              <el-input
-                v-model="form.configName"
-                placeholder="请输入配置名称"
-                clearable
-                size="small"
-                maxLength="15"
-              />
-            </el-form-item>
-            <el-form-item label="配置状态"  prop="relayCode" v-if="form.hardwareType==2">
-              <el-input
-                v-model="form.configStatus"
-                placeholder="请输入配置状态"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-          </el-form>
+
         </div>
         <div class="videoSurveillance-bottom-button-box">
           <p></p>
@@ -176,6 +75,100 @@
         </div>
       </div>
     </el-drawer>
+    <el-dialog :title=dialogTitle :visible.sync="dialogVisible " @close="handleClose" width="500px" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form"  :rules="rules" label-width="120px">
+        <el-form-item label="硬件名称"  prop="name">
+          <el-input
+            v-model="form.name"
+            placeholder="请输入硬件名称"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+        <el-form-item label="硬件类型" v-if="pageType==''" prop="type">
+          <el-select v-model="form.type" placeholder="请选择硬件类型">
+            <el-option label="请选择硬件类型" value="" />
+            <el-option v-for="hardType in hardTypeOptions"
+                       :key="hardType.enumName"
+                       :label="hardType.name"
+                       :value="hardType.enumName">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="实验室" prop="subjectId">
+          <el-select v-model="form.subjectId" placeholder="请选择实验室">
+            <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
+              <el-option style="max-width: 200px"
+                         :key="lab.id"
+                         :label="lab.name"
+                         :value="lab.id">
+              </el-option>
+            </el-tooltip>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="继电器类型">
+          <el-radio-group v-model="form.hardwareType" @change="radioChange">
+            <el-radio :label="item.value" :key="item.value" v-for="(item,index) in hardwardTypeList">{{item.label}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="绑定继电器" prop="relayCode" v-if="form.hardwareType==1">
+          <el-select v-model="form.relayCode" placeholder="请选择继电器" clearable @change="loadRelayNum" @clear="loadClear">
+            <el-option v-for="relay in relayList"
+                       :key="relay.code"
+                       :label="relay.code"
+                       :value="relay.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="继电器编号"  prop="relayCode" v-if="form.hardwareType==2">
+          <el-input
+            v-model="form.relayCode"
+            placeholder="请输入继电器编号"
+            clearable
+            size="small"
+            maxlength="20"
+          />
+        </el-form-item>
+        <el-form-item label="继电器位置" prop="bit" >
+          <el-select v-model="form.bit" placeholder="请选择继电器位置" clearable >
+            <el-option v-for="lab in relayNumList"
+                       :key="lab.name"
+                       :label="lab.name"
+                       :value="lab.name">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否灭火主机" prop="isPcfire">
+          <el-radio-group v-model="form.isPcfire">
+            <el-radio :label="0">否</el-radio>
+            <el-radio :label="1">是</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="配置名称"  prop="relayCode" v-if="form.hardwareType==2">
+          <el-input
+            v-model="form.configName"
+            placeholder="请输入配置名称"
+            clearable
+            size="small"
+            maxLength="15"
+          />
+        </el-form-item>
+        <el-form-item label="配置状态"  prop="relayCode" v-if="form.hardwareType==2">
+          <el-input
+            v-model="form.configStatus"
+            placeholder="请输入配置状态"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="offDrawer">取消</el-button>
+        <el-button style="width:100px;" type="primary" @click="submitForm">提交</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -199,6 +192,8 @@
     name: "powerControl",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -400,11 +395,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -667,8 +658,8 @@
         this.form.hardwareType=1;
         this.form.isPcfire=0;
         this.form.type=this.pageType;
-        this.drawer = true;
-        this.title = "添加硬件";
+        this.dialogVisible = true;
+        this.dialogTitle = "添加硬件";
         this.getHardTypeList();
         this.getLabList();
         this.getRelayList();
@@ -690,8 +681,8 @@
           this.form = response.data;
           this.$forceUpdate;
           this.getRelayList()
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
         });
       },
       /** 提交按钮 */
@@ -708,13 +699,13 @@
             if (this.form.id != null) {
               updateHardware(this.form).then(response => {
                 this.msgSuccess("修改成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             } else {
               addHardware(this.form).then(response => {
                 this.msgSuccess("新增成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             }

+ 56 - 116
src/views/emergencyManagement/smartLoT/hardware/smartMachine.vue

@@ -1,59 +1,6 @@
 <!--硬件管理/智能一体机-->
 <template>
   <div class="smartMachine">
-    <!--<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" class="form-box">-->
-
-      <!--<el-form-item label="学院" prop="deptId">-->
-        <!--<el-select v-model="queryParams.deptId" placeholder="请选择学院" clearable @change="handleNodeClick">-->
-          <!--<el-option-->
-            <!--v-for="dict in deptOptions"-->
-            <!--:key="dict.deptId"-->
-            <!--:label="dict.deptName"-->
-            <!--:value="dict.deptId"-->
-          <!--&gt;</el-option>-->
-        <!--</el-select>-->
-      <!--</el-form-item>-->
-      <!--&lt;!&ndash;<el-form-item label="学院" prop="type">&ndash;&gt;-->
-        <!--&lt;!&ndash;<el-select v-model="queryParams.name" placeholder="请选择学院" clearable size="small">&ndash;&gt;-->
-          <!--&lt;!&ndash;<el-option label="请选择字典生成" value="" />&ndash;&gt;-->
-        <!--&lt;!&ndash;</el-select>&ndash;&gt;-->
-      <!--&lt;!&ndash;</el-form-item>&ndash;&gt;-->
-      <!--<el-form-item label="实验室" prop="subjectId">-->
-        <!--<el-select v-model="queryParams.subjectId" clearable placeholder="请选择实验室">-->
-          <!--<el-option-->
-            <!--v-for="item in subjectOptions"-->
-            <!--:key="item.id"-->
-            <!--:label="item.name"-->
-            <!--:value="item.id">-->
-          <!--</el-option>-->
-        <!--</el-select>-->
-      <!--</el-form-item>-->
-      <!--&lt;!&ndash;<el-form-item label="实验室" prop="type">&ndash;&gt;-->
-        <!--&lt;!&ndash;<el-select v-model="queryParams.factory" placeholder="请选择实验室" clearable size="small">&ndash;&gt;-->
-          <!--&lt;!&ndash;<el-option label="请选择字典生成" value="" />&ndash;&gt;-->
-        <!--&lt;!&ndash;</el-select>&ndash;&gt;-->
-      <!--&lt;!&ndash;</el-form-item>&ndash;&gt;-->
-      <!--<el-form-item label="状态" prop="operate">-->
-        <!--<el-select v-model="queryParams.operate" placeholder="请选择状态" clearable size="small">-->
-          <!--<el-option label="在线" value="ONLINE" />-->
-          <!--<el-option label="离线" value="OFFLINE" />-->
-          <!--<el-option label="开启" value="OPEN" />-->
-          <!--<el-option label="关闭" value="CLOSE" />-->
-        <!--</el-select>-->
-      <!--</el-form-item>-->
-      <!--<el-form-item style="float: right;">-->
-        <!--<el-col :span="1.5">-->
-          <!--<p class="add-button-one-120"-->
-             <!--@click="handleAdd"-->
-             <!--v-hasPermi="['laboratory:hardware:add']"-->
-          <!--&gt;<i class="el-icon-plus"></i>新增硬件</p>-->
-        <!--</el-col>-->
-      <!--</el-form-item>-->
-      <!--<el-form-item>-->
-        <!--<p class="inquire-button-one" @click="handleQuery">查询</p>-->
-        <!--<p class="reset-button-one" @click="resetQuery">重置</p>-->
-      <!--</el-form-item>-->
-    <!--</el-form>-->
     <el-table v-loading="loading" border :data="hardwareList" @selection-change="handleSelectionChange">
       <el-table-column label="名称" align="left" prop="name" />
       <el-table-column label="学院" align="left" prop="deptName" />
@@ -101,59 +48,7 @@
       :before-close="handleClose">
       <div class="videoSurveillance-drawer-max-box">
         <div class="videoSurveillance-drawer-content">
-          <el-form ref="form" :model="form"  :rules="rules" label-width="80px">
-            <el-form-item label="硬件名称"  prop="name">
-              <el-input
-                v-model="form.name"
-                placeholder="请输入硬件名称"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-            <el-form-item label="硬件类型" v-if="pageType==''" prop="type">
-              <el-select v-model="form.type" placeholder="请选择硬件类型">
-                <el-option label="请选择硬件类型" value="" />
-                <el-option v-for="hardType in hardTypeOptions"
-                           :key="hardType.enumName"
-                           :label="hardType.name"
-                           :value="hardType.enumName">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="设备编号" prop="hardwareNum">
-              <el-input
-                v-model="form.hardwareNum"
-                placeholder="请输入设备编号"
-                clearable
-                size="small"
-                maxlength="30"
-              />
-            </el-form-item>
-            <el-form-item label="实验室" prop="subjectId">
-              <el-select v-model="form.subjectId" placeholder="请选择实验室">
-                <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
-                  <el-option style="max-width: 200px"
-                             :key="lab.id"
-                             :label="lab.name"
-                             :value="lab.id">
-                  </el-option>
-                </el-tooltip>
-              </el-select>
-            </el-form-item>
 
-            <!--<el-form-item label="硬件位置" prop="position">-->
-              <!--<div class="map-box" :style="'width:'+mapData.widthData*3+'px;height:'+mapData.heightData*3+'px;'">-->
-                <!--<div v-for="(item,index1) in mapData.list" v-if="isUpdate"-->
-                     <!--:style="'top:'+item.y*3+'px;left:'+item.x*3+'px;'"-->
-                     <!--@mouseenter="moveClick(index1)"-->
-                     <!--@mousedown="move">-->
-                  <!--{{form.name?form.name:'未命名'}}-->
-                <!--</div>-->
-                <!--<p class="map-p" v-for="(item) in mapList"  :style="'top:'+item.y*3+'px;left:'+item.x*3+'px;'">{{item.name}}</p>-->
-              <!--</div>-->
-            <!--</el-form-item>-->
-          </el-form>
         </div>
         <div class="videoSurveillance-bottom-button-box">
           <p></p>
@@ -162,6 +57,53 @@
         </div>
       </div>
     </el-drawer>
+    <el-dialog :title=dialogTitle :visible.sync="dialogVisible " @close="handleClose" width="500px" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form"  :rules="rules">
+        <el-form-item label="硬件名称"  prop="name">
+          <el-input
+            v-model="form.name"
+            placeholder="请输入硬件名称"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+        <el-form-item label="硬件类型" v-if="pageType==''" prop="type">
+          <el-select v-model="form.type" placeholder="请选择硬件类型">
+            <el-option label="请选择硬件类型" value="" />
+            <el-option v-for="hardType in hardTypeOptions"
+                       :key="hardType.enumName"
+                       :label="hardType.name"
+                       :value="hardType.enumName">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设备编号" prop="hardwareNum">
+          <el-input
+            v-model="form.hardwareNum"
+            placeholder="请输入设备编号"
+            clearable
+            size="small"
+            maxlength="30"
+          />
+        </el-form-item>
+        <el-form-item label="实验室" prop="subjectId">
+          <el-select v-model="form.subjectId" placeholder="请选择实验室">
+            <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
+              <el-option style="max-width: 200px"
+                         :key="lab.id"
+                         :label="lab.name"
+                         :value="lab.id">
+              </el-option>
+            </el-tooltip>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="offDrawer">取消</el-button>
+        <el-button style="width:100px;" type="primary" @click="submitForm">提交</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -183,6 +125,8 @@
     name: "smartMachine",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -321,11 +265,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭吗?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -482,8 +422,8 @@
         }];
         this.isUpdate=true;
         this.form.type=this.pageType;
-        this.drawer = true;
-        this.title = "添加硬件";
+        this.dialogVisible = true;
+        this.dialogTitle = "添加硬件";
         this.getHardTypeList();
         this.getLabList();
         // this.reset();
@@ -508,8 +448,8 @@
         getHardwareDetail(queryParam).then(response => {
           this.form = response.data;
           this.$forceUpdate;
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
         });
       },
       /** 提交按钮 */
@@ -526,13 +466,13 @@
             if (this.form.id != null) {
               updateHardware(this.form).then(response => {
                 this.msgSuccess("修改成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             } else {
               addHardware(this.form).then(response => {
                 this.msgSuccess("新增成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             }

+ 93 - 88
src/views/emergencyManagement/smartLoT/hardware/smartVentilation.vue

@@ -69,83 +69,7 @@
       :before-close="handleClose">
       <div class="videoSurveillance-drawer-max-box">
         <div class="videoSurveillance-drawer-content">
-          <el-form ref="form" :model="form"  :rules="rules" label-width="80px">
-            <el-form-item label="硬件名称"  prop="name">
-              <el-input
-                v-model="form.name"
-                placeholder="请输入硬件名称"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-            <el-form-item label="实验室" prop="subjectId">
-              <el-select v-model="form.subjectId" placeholder="请选择实验室">
-                <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
-                  <el-option style="max-width: 200px"
-                             :key="lab.id"
-                             :label="lab.name"
-                             :value="lab.id">
-                  </el-option>
-                </el-tooltip>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="继电器类型" label-width="1rem" @change="radioChange">
-              <el-radio-group v-model="form.hardwareType">
-                <el-radio :label="item.value" :key="item.value" v-for="item in hardwardTypeList">{{item.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="通风类型" label-width="1rem">
-              <el-radio-group v-model="form.pcType">
-                <el-radio :label="item.value" :key="item.value" v-for="item in hardwardTypeListOne">{{item.label}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="绑定继电器" prop="relayCode" v-if="form.hardwareType==1">
-              <el-select v-model="form.relayCode" placeholder="请选择继电器" clearable @change="loadRelayNum" @clear="loadClear">
-                <el-option v-for="relay in relayList"
-                           :key="relay.code"
-                           :label="relay.code"
-                           :value="relay.code">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="继电器编号"  prop="relayCode" v-if="form.hardwareType==2">
-              <el-input
-                v-model="form.relayCode"
-                placeholder="请输入继电器编号"
-                clearable
-                size="small"
-                maxLength="15"
-              />
-            </el-form-item>
-            <el-form-item label="继电器位置" prop="bit">
-              <el-select v-model="form.bit" placeholder="请选择继电器位置" clearable>
-                <el-option v-for="lab in relayNumList"
-                           :key="lab.name"
-                           :label="lab.name"
-                           :value="lab.name">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="配置名称"  prop="relayCode" v-if="form.hardwareType==2">
-              <el-input
-                v-model="form.configName"
-                placeholder="请输入配置名称"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-            <el-form-item label="配置状态"  prop="relayCode" v-if="form.hardwareType==2">
-              <el-input
-                v-model="form.configStatus"
-                placeholder="请输入配置状态"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-          </el-form>
+
         </div>
         <div class="videoSurveillance-bottom-button-box">
           <p></p>
@@ -154,6 +78,89 @@
         </div>
       </div>
     </el-drawer>
+    <el-dialog :title=dialogTitle :visible.sync="dialogVisible " @close="handleClose" width="500px" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form"  :rules="rules" label-width="100px">
+        <el-form-item label="硬件名称"  prop="name">
+          <el-input
+            v-model="form.name"
+            placeholder="请输入硬件名称"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+        <el-form-item label="实验室" prop="subjectId">
+          <el-select v-model="form.subjectId" placeholder="请选择实验室">
+            <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
+              <el-option style="max-width: 200px"
+                         :key="lab.id"
+                         :label="lab.name"
+                         :value="lab.id">
+              </el-option>
+            </el-tooltip>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="继电器类型"  @change="radioChange">
+          <el-radio-group v-model="form.hardwareType">
+            <el-radio :label="item.value" :key="item.value" v-for="item in hardwardTypeList">{{item.label}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="通风类型">
+          <el-radio-group v-model="form.pcType">
+            <el-radio :label="item.value" :key="item.value" v-for="item in hardwardTypeListOne">{{item.label}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="绑定继电器" prop="relayCode" v-if="form.hardwareType==1">
+          <el-select v-model="form.relayCode" placeholder="请选择继电器" clearable @change="loadRelayNum" @clear="loadClear">
+            <el-option v-for="relay in relayList"
+                       :key="relay.code"
+                       :label="relay.code"
+                       :value="relay.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="继电器编号"  prop="relayCode" v-if="form.hardwareType==2">
+          <el-input
+            v-model="form.relayCode"
+            placeholder="请输入继电器编号"
+            clearable
+            size="small"
+            maxLength="15"
+          />
+        </el-form-item>
+        <el-form-item label="继电器位置" prop="bit">
+          <el-select v-model="form.bit" placeholder="请选择继电器位置" clearable>
+            <el-option v-for="lab in relayNumList"
+                       :key="lab.name"
+                       :label="lab.name"
+                       :value="lab.name">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="配置名称"  prop="relayCode" v-if="form.hardwareType==2">
+          <el-input
+            v-model="form.configName"
+            placeholder="请输入配置名称"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+        <el-form-item label="配置状态"  prop="relayCode" v-if="form.hardwareType==2">
+          <el-input
+            v-model="form.configStatus"
+            placeholder="请输入配置状态"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="offDrawer">取消</el-button>
+        <el-button style="width:100px;" type="primary" @click="submitForm">提交</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -176,6 +183,8 @@
     name: "smartVentilation",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -391,11 +400,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -645,8 +650,8 @@
         // this.form.type=this.pageType;
         this.$set(this.form,'type',this.pageType);
         this.$set(this.form,'pcType',0);
-        this.drawer = true;
-        this.title = "添加硬件";
+        this.dialogVisible = true;
+        this.dialogTitle = "添加硬件";
         this.getHardTypeList();
         this.getLabList();
         this.getRelayList();
@@ -673,8 +678,8 @@
           this.form = response.data;
           this.$forceUpdate;
           this.getRelayList()
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
         });
       },
       getLabList(){
@@ -700,13 +705,13 @@
             if (this.form.id != null) {
               updateHardware(this.form).then(response => {
                 this.msgSuccess("修改成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             } else {
               addHardware(this.form).then(response => {
                 this.msgSuccess("新增成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             }

+ 84 - 126
src/views/emergencyManagement/smartLoT/hardware/videoSurveillance.vue

@@ -1,56 +1,18 @@
 <!--硬件管理/视频监控-->
 <template>
   <div class="videoSurveillance">
-    <!--<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" class="form-box">-->
-
-      <!--<el-form-item label="学院" prop="deptId">-->
-        <!--<el-select v-model="queryParams.deptId" placeholder="请选择学院" clearable @change="handleNodeClick">-->
-          <!--<el-option-->
-            <!--v-for="dict in deptOptions"-->
-            <!--:key="dict.deptId"-->
-            <!--:label="dict.deptName"-->
-            <!--:value="dict.deptId"-->
-          <!--&gt;</el-option>-->
-        <!--</el-select>-->
-      <!--</el-form-item>-->
-
-      <!--<el-form-item label="实验室" prop="subjectId">-->
-        <!--<el-select v-model="queryParams.subjectId" clearable placeholder="请选择实验室">-->
-          <!--<el-option-->
-            <!--v-for="item in subjectOptions"-->
-            <!--:key="item.id"-->
-            <!--:label="item.name"-->
-            <!--:value="item.id">-->
-          <!--</el-option>-->
-        <!--</el-select>-->
-      <!--</el-form-item>-->
-
-      <!--<el-form-item label="状态" prop="operate">-->
-        <!--<el-select v-model="queryParams.operate" placeholder="请选择状态" clearable size="small">-->
-          <!--<el-option label="在线" value="ONLINE" />-->
-          <!--<el-option label="离线" value="OFFLINE" />-->
-          <!--<el-option label="开启" value="OPEN" />-->
-          <!--<el-option label="关闭" value="CLOSE" />-->
-        <!--</el-select>-->
-      <!--</el-form-item>-->
-      <!--<el-form-item style="float: right;">-->
-        <!--<el-col :span="1.5">-->
-          <!--<p class="add-button-one-120"-->
-             <!--@click="handleAdd"-->
-             <!--v-hasPermi="['laboratory:hardware:add']"-->
-          <!--&gt;<i class="el-icon-plus"></i>新增硬件</p>-->
-        <!--</el-col>-->
-      <!--</el-form-item>-->
-      <!--<el-form-item>-->
-        <!--<p class="inquire-button-one" @click="handleQuery">查询</p>-->
-        <!--<p class="reset-button-one" @click="resetQuery">重置</p>-->
-      <!--</el-form-item>-->
-    <!--</el-form>-->
     <el-table v-loading="loading" border :data="hardwareList" @selection-change="handleSelectionChange">
       <el-table-column label="名称" align="left" prop="name" />
       <el-table-column label="学院" align="left" prop="deptName" />
       <el-table-column label="实验室" align="left" prop="subjectName" />
       <el-table-column label="设备编号" align="left" prop="hardwareNum" />
+      <el-table-column label="抓拍摄像头" align="left" prop="hardwareNum" />
+      <el-table-column label="抓拍摄像头" align="left" >
+        <template slot-scope="scope">
+          <span v-if="scope.row.status==0">是</span>
+          <span v-if="scope.row.status==1">否</span>
+        </template>
+      </el-table-column>
       <el-table-column label="状态" align="left" >
         <template slot-scope="scope">
           <!-- <p :class="'table-type-color-red'">{{'离线'}}</p> -->
@@ -92,79 +54,76 @@
       :show-close="false"
       :before-close="handleClose">
       <div class="videoSurveillance-drawer-max-box">
-        <div class="videoSurveillance-drawer-content">
-          <el-form ref="form" :model="form"  :rules="rules" label-width="80px">
-            <el-form-item label="硬件名称" prop="name">
-              <el-input
-                :disabled="disabledType"
-                v-model="form.name"
-                placeholder="请输入硬件名称"
-                clearable
-                size="small"
-                maxLength="8"
-              />
-            </el-form-item>
-            <el-form-item label="硬件类型" v-if="pageType==''" prop="type">
-              <el-select v-model="form.type" placeholder="请选择硬件类型">
-                <el-option v-for="hardType in hardTypeOptions"
-                           :key="hardType.enumName"
-                           :label="hardType.name"
-                           :value="hardType.enumName">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="设备编号" prop="hardwareNum">
-              <el-input
-                :disabled="disabledType"
-                v-model="form.hardwareNum"
-                placeholder="请输入设备编号"
-                clearable
-                maxlength="30"
-                size="small"
-              />
-            </el-form-item>
-            <el-form-item label="实验室" prop="subjectId">
-              <el-select v-model="form.subjectId" placeholder="请选择实验室" :disabled="disabledType">
-                <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
-                  <el-option style="max-width: 200px"
-                             :key="lab.id"
-                             :label="lab.name"
-                             :value="lab.id">
-                  </el-option>
-                </el-tooltip>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="硬件IP" prop="ipAddress">
-              <el-input
-                :disabled="disabledType"
-                v-model="form.ipAddress"
-                placeholder="请输入硬件IP"
-                clearable
-                size="small"
-                maxLength="20"
-              />
-            </el-form-item>
 
-            <!--<el-form-item label="硬件位置" prop="position">-->
-              <!--<div class="map-box" :style="'width:'+mapData.widthData*3+'px;height:'+mapData.heightData*3+'px;'">-->
-                <!--<div v-for="(item,index1) in mapData.list" v-if="isUpdate"-->
-                     <!--:style="'top:'+item.y*3+'px;left:'+item.x*3+'px;'"-->
-                     <!--@mouseenter="moveClick(index1)"-->
-                     <!--@mousedown="move">-->
-                  <!--{{form.name?form.name:'未命名'}}-->
-                <!--</div>-->
-                <!--<p class="map-p" v-for="(item) in mapList"  :style="'top:'+item.y*3+'px;left:'+item.x*3+'px;'">{{item.name}}</p>-->
-              <!--</div>-->
-            <!--</el-form-item>-->
-          </el-form>
-        </div>
-        <div class="videoSurveillance-bottom-button-box">
-          <p></p>
-          <p @click="offDrawer">{{buttonType?'取消':'关闭'}}</p>
-          <p @click="submitForm" v-if="buttonType">提交</p>
-        </div>
+
       </div>
     </el-drawer>
+    <!-- -->
+    <el-dialog :title=dialogTitle :visible.sync="dialogVisible " @close="handleClose" width="500px" append-to-body :close-on-click-modal="false">
+      <el-form ref="form" :model="form"  :rules="rules" label-width="100px">
+        <el-form-item label="硬件名称" prop="name">
+          <el-input
+            :disabled="disabledType"
+            v-model="form.name"
+            placeholder="请输入硬件名称"
+            clearable
+            size="small"
+            maxLength="8"
+          />
+        </el-form-item>
+        <el-form-item label="硬件类型" v-if="pageType==''" prop="type">
+          <el-select v-model="form.type" placeholder="请选择硬件类型">
+            <el-option v-for="hardType in hardTypeOptions"
+                       :key="hardType.enumName"
+                       :label="hardType.name"
+                       :value="hardType.enumName">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设备编号" prop="hardwareNum">
+          <el-input
+            :disabled="disabledType"
+            v-model="form.hardwareNum"
+            placeholder="请输入设备编号"
+            clearable
+            maxlength="30"
+            size="small"
+          />
+        </el-form-item>
+        <el-form-item label="实验室" prop="subjectId">
+          <el-select v-model="form.subjectId" placeholder="请选择实验室" :disabled="disabledType">
+            <el-tooltip class="item" effect="dark" :content="lab.name" placement="top" v-for="lab in labListOptions">
+              <el-option style="max-width: 200px"
+                         :key="lab.id"
+                         :label="lab.name"
+                         :value="lab.id">
+              </el-option>
+            </el-tooltip>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="硬件IP" prop="ipAddress">
+          <el-input
+            :disabled="disabledType"
+            v-model="form.ipAddress"
+            placeholder="请输入硬件IP"
+            clearable
+            size="small"
+            maxLength="20"
+          />
+        </el-form-item>
+        <el-form-item label="类型" >
+          <el-radio-group v-model="form.type" :disabled="disabledType">
+            <el-radio :label="1">火焰算法</el-radio>
+            <el-radio :label="2">穿戴识别</el-radio>
+            <el-radio :label="3">违规带离抓拍</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="offDrawer">{{buttonType?'取消':'关闭'}}</el-button>
+        <el-button style="width:100px;" type="primary" @click="submitForm">提交</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -188,6 +147,8 @@
     name: "videoSurveillance",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -347,11 +308,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -580,8 +537,9 @@
         }];
         this.isUpdate=true;
         this.form.type=this.pageType;
-        this.drawer = true;
-        this.title = "添加硬件";
+        this.dialogVisible = true;
+
+        this.dialogTitle = "添加硬件";
         this.getHardTypeList();
         this.getLabList();
       },
@@ -601,8 +559,8 @@
         getHardwareDetail(queryParam).then(response => {
           this.form = response.data;
           this.$forceUpdate;
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
         });
       },
       /** 查看按钮操作 */
@@ -657,13 +615,13 @@
             if (this.form.id != null) {
               updateHardware(this.form).then(response => {
                 this.msgSuccess("修改成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             } else {
               addHardware(this.form).then(response => {
                 this.msgSuccess("新增成功");
-                this.drawer = false;
+                this.dialogVisible = false;
                 this.getList();
               });
             }