Ver código fonte

Merge branch 'web-v2' into web-v2-pro

dedsudiyu 1 ano atrás
pai
commit
b8d3b057dd

+ 2 - 2
.env.production

@@ -6,9 +6,9 @@ ENV = 'production'
 
 # ####################版本差异字段####################
 
-# VUE_APP_VERSION_DIFFERENCE_FIELD = 'kuangYeDaXue_nanHu'
+ VUE_APP_VERSION_DIFFERENCE_FIELD = 'kuangYeDaXue_nanHu'
 # VUE_APP_VERSION_DIFFERENCE_FIELD = 'suZhouDaXue'
-VUE_APP_VERSION_DIFFERENCE_FIELD = 'xiBeiNongLinDaXue'
+#VUE_APP_VERSION_DIFFERENCE_FIELD = 'xiBeiNongLinDaXue'
 
 # ####################外网接口配置####################
 

+ 93 - 21
README.md

@@ -1,30 +1,102 @@
-## 开发
+# 更新日期 2023/07/17
+## 一.开发
 
-```bash
-# 克隆项目
-git clone https://gitee.com/y_project/RuoYi-Vue
+    # 安装依赖
+    npm install
+    
+    # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
+    npm install --registry=https://registry.npm.taobao.org
+    
+    # 启动服务
+    npm run dev
 
-# 进入项目目录
-cd ruoyi-ui
+浏览器访问 http://localhost:80
 
-# 安装依赖
-npm install
+## 二.发布
 
-# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
-npm install --registry=https://registry.npm.taobao.org
+    # 构建测试环境
+    npm run build:stage
+    
+    # 构建生产环境
+    npm run build:prod
+    
+## 三.版本相关
 
-# 启动服务
-npm run dev
-```
+### 1.版本差异字段
+>##### 配置文件在 .env.development 与 .env.production 文件内
+    ├─src
+    │  └─.env.development         (开发配置)
+    │  └─.env.production          (打包配置)
 
-浏览器访问 http://localhost:80
+>##### VUE_APP_VERSION_DIFFERENCE_FIELD字段,可通过配置不同的字符来展示各版本差异化内容
+     矿业大学-环测学院
+     VUE_APP_VERSION_DIFFERENCE_FIELD = 'kuangYeDaXue_nanHu'
+     苏州大学
+     VUE_APP_VERSION_DIFFERENCE_FIELD = 'suZhouDaXue'
+     西北农林大学
+     VUE_APP_VERSION_DIFFERENCE_FIELD = 'xiBeiNongLinDaXue'
+
+### 2.版本分支关系
+>##### 修改时务必注意版本分支关系,从底层开始迭代
+    ├─3.3.1-dspf (定时排风版本)
+    ├─3.3.2-dzxxp (电子信息牌版本)
+    │  ├─suzhouDX-web (苏州大学-当前线上版本)
+    │  ├─suzhouDX-web (化工学院-当前线上版本)
+    │  └─suzhouDX-web (安全学院-当前线上版本)
+    ├─3.3.4-kdyh (矿大优化版本)
+    │  └─nhkd-web (环测学院-当前线上版本)
+    ├─3.3.3-AnQuanJianCha (新安全检查版本)
+    │  ├─3.3.5-BaoJingZhuaPai&DianHuaBaoJing (报警抓拍&电话报警版本)
+    │  └─3.3.6-zzjg&jzbj (组织架构&建筑布局版本)
 
-## 发布
+### 3.多页面路由配置方法用于展示各版本差异化内容(即将废弃,留作备案)
+#### 3.1针对矿大项目修改      针对布局与疏散图 适配多楼栋 多楼层
+>##### 路由配置示意
+    ├─views
+    │  ├─comprehensive
+    │  │  └─laboratoryManagement
+    │  │     ├─building
+    │  │     │  └─indexOne.vue
+    │  │     └─subject
+    │  │         └─indexTwo.vue
+    │  └─emergencyManagement
+    │     └─evacuation
+    │        └─emergencyEvacuation
+    │            ├─indexOne.vue
+    │            └─performEvacuationOne.vue
 
-```bash
-# 构建测试环境
-npm run build:stage
+>##### 静态路由修改项  
+    path: '/emergencyEvacuationBig' 地址修改为  emergencyEvacuationBigOne  
+    path: '/' 地址修改为  home  
+  
+>##### 其他修改项
+    项目名称修改 => 实验室安全智能监测与控制系统
+    取消按钮首页注释  layout => components => Navbar.vue
+        
+#### 3.2针对空军四医大项目   实验室-物联设备配置只有传感器与智能门禁
+>##### 路由配置示意
+    ├─views
+    │  ├─comprehensive
+    │  │  ├─laboratoryManagement
+    │  │  │  └─subject
+    │  │  │     └─indexOne.vue
+    │  │  ├─message
+    │  │  │  └─noticeconfig
+    │  │  │     └─indexOne.vue
+    │  │  ├─system
+    │  │  │  └─publicConfig
+    │  │  │     └─indexOne.vue
+    │  │  └─personnel
+    │  │     └─teacher
+    │  │        └─indexOne.vue
+    │  └─mine
+    │     └─indexOne.vue
 
-# 构建生产环境
-npm run build:prod
-```
+>##### 静态路由修改项
+    path: '/login' 地址修改为  loginOne
+    path: '/' 地址修改为  loginOne
+    
+>##### 其他修改项
+    项目名称修改 => 危化品智能存储管理系统
+    按钮首页注释掉  layout => components => Navbar.vue
+    

+ 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
+  })
+}
+
+

+ 73 - 6
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" v-if="item.isArrest">抓拍</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>
@@ -221,10 +224,42 @@
           </el-form-item>
         </div>
         <div v-if="upType == 4 || upType == 8">
+          <el-form-item label="硬件名称" prop="name">
+            <el-input
+              v-model="form.name"
+              placeholder="请输入硬件名称"
+              clearable
+              size="small"
+              maxLength="8"
+              style="width:320px;"
+            />
+          </el-form-item>
           <el-form-item label="摄像头编号" prop="hardwareNum">
             <el-input v-model="form.hardwareNum" placeholder="摄像头编号"
                       maxlength="30" style="width:320px;"/>
           </el-form-item>
+          <el-form-item label="硬件IP" prop="ipAddress">
+            <el-input
+              v-model="form.ipAddress"
+              placeholder="请输入硬件IP"
+              clearable
+              size="small"
+              maxLength="20"
+              style="width:320px;"
+            />
+          </el-form-item>
+          <el-form-item label="类型" >
+<!--            <el-radio-group v-model="form.pcType">-->
+<!--              <el-radio :label="0">火焰算法</el-radio>-->
+<!--              <el-radio :label="1">穿戴识别</el-radio>-->
+<!--              <el-radio :label="2">违规带离抓拍</el-radio>-->
+<!--            </el-radio-group>-->
+            <el-checkbox-group v-model="form.subType">
+              <el-checkbox label="0">火焰算法</el-checkbox>
+              <el-checkbox label="1">穿戴识别</el-checkbox>
+              <el-checkbox label="2">违规带离抓拍</el-checkbox>
+            </el-checkbox-group>
+          </el-form-item>
         </div>
         <div v-if="upType == 'addEntrance'||  upType=='editEntrance'">
           <el-form-item label="门禁编号" prop="hardwareNum">
@@ -567,7 +602,10 @@ export default {
     addHardwareThree(){
       let obj = {
         type:4,
+        name:this.form.name,
         hardwareNum:this.form.hardwareNum,
+        ipAddress:this.form.ipAddress,
+        subType:this.form.subType.toString(),
         subjectId:this.subjectData.id,
         deptId:this.subjectData.deptId,
         deptName:this.subjectData.deptName,
@@ -582,7 +620,10 @@ export default {
     putHardwareThree(){
       let obj = {
         id:this.form.id,
+        name:this.form.name,
         hardwareNum:this.form.hardwareNum,
+        ipAddress:this.form.ipAddress,
+        subType:this.form.subType.toString(),
         subjectId:this.form.subjectId,
         deptId:this.form.deptId,
         deptName:this.form.deptName,
@@ -885,6 +926,7 @@ export default {
         this.title = '新增摄像头';
         this.$set(this,'form',{
           hardwareNum:"",
+          subType:[],
         });
       }else if(type == 'addEntrance'){
         this.title = '新增智能门禁';
@@ -930,6 +972,11 @@ export default {
       }else if(type == 8){
         this.title = '编辑摄像头';
         this.$set(this,'form',JSON.parse(JSON.stringify(row)));
+        if(this.form.subType!='' && this.form.subType!=null ){
+          this.form.subType=this.form.subType.split(',')
+        }else{
+          this.form.subType=[];
+        }
       }else if(type == 'editEntrance'){
         this.title = '编辑智能门禁';
         this.$set(this,'form',JSON.parse(JSON.stringify(row)));
@@ -964,7 +1011,12 @@ export default {
           this.$set(this,'listkzsb',response.data.listkzsb);
         }
         if(response.data.listSpjk){
+          //判断是否是抓拍摄像头
+          for(let i=0; i< response.data.listSpjk.length;i++){
+            response.data.listSpjk[i].isArrest=(response.data.listSpjk[i].subType!=''&& response.data.listSpjk[i].subType!=null);
+          }
           this.$set(this,'listSpjk',response.data.listSpjk);
+
         }
         if(response.data.listHK){
           this.$set(this,'listHK',response.data.listHK);
@@ -1022,10 +1074,25 @@ export default {
       display: inline-block;
       overflow: hidden;
       width:280px;
-      min-height:130px;
+      min-height:158px;
       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();
+                }
+            });
           }
         })
       },

+ 64 - 24
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,24 @@
       </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"/>
+          <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 +94,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'
@@ -104,41 +113,74 @@
     data(){
       return{
         pageType:1,
-        selectListA:[{key:"1",value:"选项1"}],
-        selectListB:[{key:"1",value:"选项2"}],
-        queryParams:{},
+        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:"声光报警"},{key:"4",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;
+          //处理预警方式
+          for(let i=0;i<response.data.records.length;i++){
+            if(response.data.records[i].warningWay!='' && response.data.records[i].warningWay!=null){
+              response.data.records[i].warningWay=response.data.records[i].warningWay.replace(/1/, "系统通知")
+              response.data.records[i].warningWay=response.data.records[i].warningWay.replace(/2/, "短信通知")
+              response.data.records[i].warningWay=response.data.records[i].warningWay.replace(/3/, "声光报警")
+              response.data.records[i].warningWay=response.data.records[i].warningWay.replace(/4/, "语音播报")
+              if (response.data.records[i].warningWay.endsWith(',')) {
+                response.data.records[i].warningWay=response.data.records[i].warningWay.replace(/,/, " ")
+              }
+              response.data.records[i].warningWay= response.data.records[i].warningWay.replace(/,/g, "+");
+
+            }else{
+              response.data.records[i].warningWay='-'
+            }
+          }
           this.tableList = response.data.records;
         });
       },
@@ -153,12 +195,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();
       },

Diferenças do arquivo suprimidas por serem muito extensas
+ 80 - 61
src/views/comprehensive/message/warningNotice/infoPage.vue


+ 80 - 46
src/views/comprehensive/message/warningNotice/sourceOfDangerForewarning.vue

@@ -9,60 +9,48 @@
       <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>
-          </el-checkbox-group>
-        </el-form-item>
-        <el-form-item class="form-item-check-box" label="化学品已过期">
-          <el-checkbox-group v-model="addForm.check7">
-            <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>
-          </el-checkbox-group>
-        </el-form-item>
-        <el-form-item class="form-item-check-box" label="化学品即将过期">
-          <el-checkbox-group v-model="addForm.check8">
-            <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 +65,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 +106,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

@@ -231,6 +231,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'){

+ 102 - 139
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">
@@ -70,121 +56,100 @@
       @pagination="getList"
     />
     <!-- 添加或修改硬件对话框 -->
-    <el-drawer
-      class="videoSurveillance-drawer"
-      :visible.sync="drawer"
-      direction="rtl"
-      ref="drawer"
-      :with-header="false"
-      :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
-                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">
-              <el-select v-model="form.hardwareType" placeholder="请选择继电器" clearable @change="radioChange" @clear="loadClear">
-                <el-option v-for="relay in hardwardTypeList"
-                           :key="relay.value"
-                           :label="relay.label"
-                           :value="relay.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="绑定继电器" prop="relayCode" v-if="form.hardwareType==1 || form.hardwareType==3">
-              <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>
-          <p @click="offDrawer">取消</p>
-          <p @click="submitForm">提交</p>
-        </div>
+    <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 || form.hardwareType==3">
+          <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-drawer>
+    </el-dialog>
   </div>
 </template>
 
@@ -208,6 +173,8 @@
     name: "powerControl",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -423,11 +390,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -707,8 +670,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();
@@ -730,8 +693,8 @@
           this.form = response.data;
           this.$forceUpdate;
           this.getRelayList()
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
         });
       },
       /** 提交按钮 */
@@ -748,13 +711,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();
               });
             }

+ 91 - 114
src/views/emergencyManagement/smartLoT/hardware/smartVentilation.vue

@@ -59,110 +59,89 @@
       @pagination="getList"
     />
     <!-- 添加或修改硬件对话框 -->
-    <el-drawer
-      class="videoSurveillance-drawer"
-      :visible.sync="drawer"
-      direction="rtl"
-      ref="drawer"
-      :with-header="false"
-      :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
-                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="继电器类型" prop="relayCode">
-              <el-select v-model="form.hardwareType" placeholder="请选择继电器" clearable @change="radioChange" @clear="loadClear">
-                <el-option v-for="relay in hardwardTypeList"
-                           :key="relay.value"
-                           :label="relay.label"
-                           :value="relay.value">
-                </el-option>
-              </el-select>
-            </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 || form.hardwareType==3">
-              <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>
-          <p @click="offDrawer">取消</p>
-          <p @click="submitForm">提交</p>
-        </div>
+    <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 || form.hardwareType==3">
+          <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-drawer>
+    </el-dialog>
   </div>
 </template>
 
@@ -185,6 +164,8 @@
     name: "smartVentilation",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -414,11 +395,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -684,8 +661,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();
@@ -712,8 +689,8 @@
           this.form = response.data;
           this.$forceUpdate;
           this.getRelayList()
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
         });
       },
       getLabList(){
@@ -739,13 +716,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 - 127
src/views/emergencyManagement/smartLoT/hardware/videoSurveillance.vue

@@ -1,56 +1,17 @@
 <!--硬件管理/视频监控-->
 <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="subType">
+        <template slot-scope="scope">
+          <span v-if="scope.row.subType!=''">是</span>
+          <span v-if="scope.row.subType==''">否</span>
+        </template>
+      </el-table-column>
       <el-table-column label="状态" align="left" >
         <template slot-scope="scope">
           <!-- <p :class="'table-type-color-red'">{{'离线'}}</p> -->
@@ -92,79 +53,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-checkbox-group v-model="subType">
+            <el-checkbox label="0">火焰算法</el-checkbox>
+            <el-checkbox label="1">穿戴识别</el-checkbox>
+            <el-checkbox label="2">违规带离抓拍</el-checkbox>
+          </el-checkbox-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 +146,8 @@
     name: "videoSurveillance",
     data() {
       return {
+        dialogVisible:false,
+        dialogTitle:'新增',
         tableButtonType:this.hasPermiDom(['laboratory:hardware:query','laboratory:hardware:query','laboratory:hardware:edit','laboratory:hardware:remove']),
         index:'',
         // 遮罩层
@@ -229,7 +189,10 @@
         // },
         hardTypeOptions:{},
         // 表单参数
-        form: {},
+        form: {
+
+        },
+        subType:[],
         // 表单校验
         rules: {
             name: [
@@ -347,11 +310,7 @@
       },
       //弹窗关闭前回调
       handleClose(done) {
-        this.$confirm('确认关闭?')
-          .then(_ => {
-            done();
-          })
-          .catch(_ => {});
+        this.dialogVisible=false;
       },
       //更多选项
       moreClick(item){
@@ -580,8 +539,10 @@
         }];
         this.isUpdate=true;
         this.form.type=this.pageType;
-        this.drawer = true;
-        this.title = "添加硬件";
+        this.subType=[];
+        this.dialogVisible = true;
+
+        this.dialogTitle = "添加硬件";
         this.getHardTypeList();
         this.getLabList();
       },
@@ -592,6 +553,7 @@
         this.mapData.list = [];
         this.isUpdate=true;
         this.form.type=this.pageType;
+
         this.getHardTypeList();
         this.getLabList();
         const id = row.id || this.ids
@@ -601,8 +563,11 @@
         getHardwareDetail(queryParam).then(response => {
           this.form = response.data;
           this.$forceUpdate;
-          this.title = "修改硬件";
-          this.drawer = true;
+          this.dialogTitle = "修改硬件";
+          this.dialogVisible = true;
+          if(response.data.subType){
+            this.subType=response.data.subType.split(',');
+          }
         });
       },
       /** 查看按钮操作 */
@@ -650,6 +615,7 @@
           verticalAxis:''
         }
         this.form.type=this.pageType;
+        this.form.subType=this.subType.toString();
         // this.form.hardwarePosition.horizontalAxis=this.mapData.list[0].top;
         // this.form.hardwarePosition.verticalAxis=this.mapData.list[0].left;
         this.$refs["form"].validate(valid => {
@@ -657,13 +623,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();
               });
             }