dedsudiyu 11 months ago
parent
commit
cf2f7362f4

+ 8 - 2
src/api/integratedManagement/index.js

@@ -327,8 +327,14 @@ export function laboratorySubRelInfoUpdateHazardSubRel(data) {
     data: data
   })
 }
-
-
+//实验室-详情获取危险源/关联配置信息
+export function laboratorySubRelInfoGetSubRelByCheckHazard(query) {
+  return request({
+    url: '/laboratory/subRelInfo/getSubRelByCheckHazard',
+    method: 'get',
+    params: query
+  })
+}
 //实验室-详情
 export function laboratorySubRelInfoGetDetailInfo(query) {
   return request({

+ 26 - 27
src/views/integratedManagement/laboratoryManagement/subject/associationConfiguration.vue

@@ -52,7 +52,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="离开检查是否上传照片:" prop="checkOutUpload" class="form-item">
-            <el-radio-group v-model="form.checkOutUpload" style="width:250px;" @change="radioChange">
+            <el-radio-group v-model="form.checkOutUpload" style="width:250px;">
               <el-radio :label="true" style="width:70px;margin-top:4px;">是</el-radio>
               <el-radio :label="false" style="width:70px;margin-top:4px;">否</el-radio>
             </el-radio-group>
@@ -74,7 +74,7 @@
         <div>
           <el-form-item label="穿戴检查项:"  prop="inspectCheckIn" class="form-item" v-if="form.inspectCheckIn">
             <el-select v-model="form.inspectCheckIn" multiple placeholder="请选择穿戴检查项目"
-                       @change="radioChange2" style="width:250px;">
+                       @change="radioChange" style="width:250px;">
               <el-option
                 v-for="dict in onepcOutcheckIn"
                 :key="dict.value"
@@ -84,7 +84,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="穿戴检查可跳过:" prop="inspectSkipped" class="form-item">
-            <el-radio-group v-model="form.inspectSkipped" style="width:250px;" @change="radioChange2">
+            <el-radio-group v-model="form.inspectSkipped" style="width:250px;" @change="radioChange">
               <el-radio :label="true" style="width:70px;margin-top:4px;">是</el-radio>
               <el-radio :label="false" style="width:70px;margin-top:4px;">否</el-radio>
             </el-radio-group>
@@ -321,10 +321,10 @@
         }else{
           this.$set(this.form,'inspectCheckCount',0)
         }
-
       }else{
 
       }
+      this.radioChange();
     },
     methods:{
       //展示二维码
@@ -429,40 +429,39 @@
       },
       //穿戴检查可跳过
       radioChange(){
+        let obj = {};
         if(!this.form.skipped){
-          let obj = {
-            checkIn:[
-              {required: true, message: '请选择穿戴检查项目', trigger: 'blur'}
-            ]
-          };
-          this.$set(this,'rules',obj);
-        }else if(this.form.skipped){
+          obj.checkIn = [{required: true, message: '请选择穿戴检查项目', trigger: 'blur'}]
+        }else{
           if(this.form.checkIn[0]){
-            let obj = {
-              checkIn:[
-                {required: true, message: '请选择穿戴检查项目', trigger: 'blur'}
-              ]
-            };
-            this.$set(this,'rules',obj);
-          }else{
-            this.$set(this,'rules',{});
-            this.$refs['form'].clearValidate();
+            obj.checkIn = [{required: true, message: '请选择穿戴检查项目', trigger: 'blur'}]
           }
         }
-      },
-      /**巡检人员  */
-      radioChange2(){
         if(!this.form.inspectSkipped){
+          obj.inspectCheckIn = [{required: true, message: '请选择穿戴检查项目', trigger: 'blur'}]
+        }else{
+          if(this.form.inspectCheckIn[0]){
+            obj.inspectCheckIn = [{required: true, message: '请选择穿戴检查项目', trigger: 'blur'}]
+          }
+        }
+        this.$set(this,'rules',obj);
+        this.$refs['form'].clearValidate();
+        return
+
+
+
+
+        if(!this.form.skipped){
           let obj = {
-            inspectCheckIn:[
+            checkIn:[
               {required: true, message: '请选择穿戴检查项目', trigger: 'blur'}
             ]
           };
           this.$set(this,'rules',obj);
-        }else if(this.form.inspectSkipped){
-          if(this.form.inspectCheckIn[0]){
+        }else if(this.form.skipped){
+          if(this.form.checkIn[0]){
             let obj = {
-              inspectCheckIn:[
+              checkIn:[
                 {required: true, message: '请选择穿戴检查项目', trigger: 'blur'}
               ]
             };

+ 130 - 69
src/views/integratedManagement/laboratoryManagement/subject/infoPage.vue

@@ -87,6 +87,7 @@
       </div>
       <!--右侧数据展示-->
       <div class="right-max-box scrollbar-box">
+        <!--传感器监测 上报时间 返回按钮-->
         <div class="all-title-box" style="height:40px;">
           <p></p>
           <p>传感器监测</p>
@@ -96,6 +97,7 @@
         </div>
         <p class="sensor-box" v-for="(item,index) in sensorList" :key="index">{{item.deviceName}}:<span>{{item.deviceValue}}{{item.unit}}</span></p>
         <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!sensorList[0]">
+        <!--物联控制-->
         <div class="all-title-box" style="height:40px;margin-top:20px;">
           <p></p>
           <p>物联控制</p>
@@ -118,15 +120,16 @@
           </div>
         </div>
         <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!hardwareList[0]">
-        <div class="all-title-box" style="height:40px;margin-top:20px;">
+        <!--视频监控-->
+        <div class="all-title-box" style="height:40px;margin-top:20px;" v-if="videoType">
           <p></p>
           <p>视频监控</p>
         </div>
-        <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!videoList[0]">
-        <mpegts-video style="display: inline-block" :videoProps="item" v-for="(item,index) in videoList" :key="index"></mpegts-video>
-
+        <div v-if="videoType">
+          <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!videoList[0]">
+          <mpegts-video style="display: inline-block;margin-bottom:10px;" :videoProps="item" v-for="(item,index) in videoList" :key="index"></mpegts-video>
+        </div>
         <!--广播-->
-
         <div class="all-title-box" style="height:40px;margin-top:10px;">
         <p></p>
         <p>语音广播</p>
@@ -137,51 +140,68 @@
             <p class="right-button" @click="handleAdd(item.deviceNo)">播放文字</p>
           </div>
         </div>
-        <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data.png" v-if="!loudspeakerList[0]">
-
+        <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!loudspeakerList[0]">
         <!--危险源信息-->
-
-        <!--<div class="all-title-box" style="height:40px;margin-top:10px;">-->
-          <!--<p></p>-->
-          <!--<p>危险源信息</p>-->
-        <!--</div>-->
-        <!--<div class="source-box">-->
-          <!--<span v-for="(item,index) in subjectData.hazardList" :key="index">{{index==0?item.label:'、'+item.label}}</span>-->
-        <!--</div>-->
-        <!--<img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data.png" v-if="!subjectData.hazardList[0]">-->
-        <!--<p class="null-p" v-if="!subjectData.hazardList[0]" >暂无危险源信息,请在更多操作-关联配置中进行添加</p>-->
-
+        <div class="all-title-box" style="height:40px;margin-top:10px;">
+          <p></p>
+          <p>危险源信息</p>
+        </div>
+        <div class="source-box" style="margin-bottom:20px;" v-if="checkInData.hazardNames">
+          <span>{{checkInData.hazardNames}}</span>
+        </div>
+        <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!checkInData.hazardNames">
         <!--检查项信息-->
-
-        <!--<div class="all-title-box" style="height:30px;">-->
-          <!--<p></p>-->
-          <!--<p>检查项信息</p>-->
-        <!--</div>-->
-        <!--<div class="inspection-box">-->
-          <!--<div>-->
-            <!--<p>穿戴检查项:</p>-->
-            <!--<p>-->
-              <!--<span v-for="(item,index) in subjectData.safeInfo.checkInData">{{index==0?item:'、'+item}}</span>-->
-              <!--<span v-if="!subjectData.safeInfo.checkInData">未设置</span>-->
-            <!--</p>-->
-          <!--</div>-->
-          <!--<div>-->
-            <!--<p>穿戴检查可跳过:</p>-->
-            <!--<p>{{subjectData.skipped == '1'?'是':(subjectData.skipped == '0'?'否':'')}}</p>-->
-          <!--</div>-->
-          <!--<div v-if="subjectData.skipped == 1">-->
-            <!--<p>穿戴检查识别上限:</p>-->
-            <!--<p>{{subjectData.checkCount?subjectData.checkCount:'未设置'}}</p>-->
-          <!--</div>-->
-          <!--<div>-->
-            <!--<p>离开检查项:</p>-->
-            <!--<p>-->
-              <!--<span v-for="(item,index) in subjectData.safeInfo.checkOutData">{{index==0?item:'、'+item}}</span>-->
-              <!--<span v-if="!subjectData.safeInfo.checkOutData">未设置</span>-->
-            <!--</p>-->
-          <!--</div>-->
-        <!--</div>-->
-
+        <div class="all-title-box" style="height:30px;">
+          <p></p>
+          <p>检查项信息</p>
+        </div>
+        <div class="inspection-box">
+          <div class="inspection-left-box">
+            <div v-if="checkInData.checkIn">
+              <p>穿戴检查项:</p>
+              <p>{{checkInData.checkIn}}</p>
+            </div>
+            <div v-if="checkInData.skipped">
+              <p>穿戴检查可跳过:</p>
+              <p>{{checkInData.skipped?'是':'否'}}</p>
+            </div>
+            <div v-if="checkInData.checkIn && checkInData.skipped">
+              <p>穿戴检查识别上限:</p>
+              <p>{{checkInData.checkCount}}次</p>
+            </div>
+            <div v-if="checkInData.signTime">
+              <p>签到有效时间:</p>
+              <p>{{checkInData.signTime}}小时</p>
+            </div>
+            <div v-if="checkInData.checkOutUpload">
+              <p>离开检查是否上传照片:</p>
+              <p>{{checkInData.checkOutUpload?'是':'否'}}</p>
+            </div>
+            <div v-if="checkInData.signTime">
+              <p>签到有效时间:</p>
+              <p>{{checkInData.signTime}}小时</p>
+            </div>
+          </div>
+          <div class="inspection-right-box">
+            <div v-if="checkInData.inspectCheckIn">
+              <p>穿戴检查项(巡查):</p>
+              <p>{{checkInData.inspectCheckIn}}</p>
+            </div>
+            <div v-if="checkInData.inspectSkipped">
+              <p>穿戴检查可跳过(巡查):</p>
+              <p>{{checkInData.inspectSkipped?'是':'否'}}</p>
+            </div>
+            <div v-if="checkInData.inspectCheckIn && checkInData.inspectSkipped">
+              <p>穿戴检查识别上限(巡查):</p>
+              <p>{{checkInData.inspectCheckCount}}次</p>
+            </div>
+            <div v-if="checkInData.inspectSignTime">
+              <p>签到有效时间(巡查):</p>
+              <p>{{checkInData.inspectSignTime}}小时</p>
+            </div>
+          </div>
+        </div>
+        <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png"  v-if="!checkInData.signTime && !checkInData.inspectSignTime">
       </div>
       <qr-code-dialog ref="qrCodeDialog" :qrCodeDialogData="qrCodeDialogData"></qr-code-dialog>
       <!--播放文字窗口-->
@@ -208,6 +228,7 @@
   import { controlsRestrictVerify } from '@/utils/index'
   import qrCodeDialog from "@/components/qrCodeDialog/index.vue"
   import mpegtsVideo from '@/components/mpegtsVideo/mpegtsVideo.vue'
+  import {laboratorySubRelInfoGetSubRelByCheckHazard} from '@/api/integratedManagement/index'
   import {
     iotSensorFindBySubId,
     iotHardwareFindByType,
@@ -247,14 +268,13 @@
               {required: true, message: '请输入播放文字', trigger: 'blur'},
               { required: true, message: "请输入播放文字", validator: this.spaceJudgment, trigger: "blur" }
             ],
-            type:[
-              {required: true, message: '请选择播报方式', trigger: 'blur'}
-            ],
           },
           //传感器数据
           sensorList:[],
           //硬件数据
           hardwareList:[],
+          //视频权限
+          videoType:false,
           //视频数据
           videoList:[
             {
@@ -272,6 +292,8 @@
               url:"ws://192.168.1.43:8230/rtp/440102004920000000010064_34020000001320000064.flv"        //(视频地址:必传)
             },
           ],
+          //危险源-关联配置数据
+          checkInData:{},
           //喇叭数据
           loudspeakerList:[],
           //MQTT请求参数-传感器
@@ -327,16 +349,29 @@
           iotHardwareFindByType({subjectId:this.subjectData.subId}).then(response => {
             this.$set(this,'hardwareList',response.data);
           })
+          //喇叭查询
           iotDeviceFindByType({ subjectId:this.subjectData.subId, typeKeyList:['horn'] }).then(response => {
             this.$set(this,'loudspeakerList',response.data);
           })
+          //危险源-关联配置查询
+          laboratorySubRelInfoGetSubRelByCheckHazard({ infoId:this.subjectData.infoId }).then(response => {
+            this.$set(this,'checkInData',response.data);
+          })
+
+          //视频查询
+          if(!controlsRestrictVerify('subHardwareControl')){
+            this.$set(this,'videoType',false);
+          }else{
+            this.$set(this,'videoType',true);
+          }
+
         },
         //播放文字
         handleAdd(deviceNo) {
-          // if(!controlsRestrictVerify('subHardwareControl')){
-          //   this.msgError('没有相关操作权限,请联系管理员')
-          //   return
-          // }
+          if(!controlsRestrictVerify('subHardwareControl')){
+            this.msgError('没有相关操作权限,请联系管理员')
+            return
+          }
           this.$set(this,'form',{
             deviceNo:deviceNo,
             text:'',
@@ -737,22 +772,48 @@
         }
       }
       .inspection-box{
-        div{
-          display: flex;
-          p:nth-child(1){
-            line-height:16px;
-            font-size:14px;
-            margin:11px 0;
-            color:#333;
+        display: flex;
+        .inspection-left-box{
+          flex:1;
+          div{
+            display: flex;
+            p:nth-child(1){
+              line-height:16px;
+              font-size:14px;
+              margin:11px 0;
+              color:#333;
+            }
+            p:nth-child(2){
+              flex:1;
+              line-height:16px;
+              font-size:14px;
+              margin:11px 0;
+              color:#999;
+              span{
+                color:#999;
+              }
+            }
           }
-          p:nth-child(2){
-            flex:1;
-            line-height:16px;
-            font-size:14px;
-            margin:11px 0;
-            color:#999;
-            span{
+        }
+        .inspection-right-box{
+          flex:1;
+          div{
+            display: flex;
+            p:nth-child(1){
+              line-height:16px;
+              font-size:14px;
+              margin:11px 0;
+              color:#333;
+            }
+            p:nth-child(2){
+              flex:1;
+              line-height:16px;
+              font-size:14px;
+              margin:11px 0;
               color:#999;
+              span{
+                color:#999;
+              }
             }
           }
         }

+ 4 - 9
src/views/integratedManagement/messageNotice/warningNotice/index.vue

@@ -59,7 +59,7 @@
           <p class="page-submit-common-style-button"
              style="float: right;"
              @click="tableButton(1)"
-             v-hasPermiRouter="['demo:demo:add']"
+             v-hasPermiRouter="['warning:config:detail']"
           >预警配置</p>
         </el-form>
       </div>
@@ -95,16 +95,11 @@
                 <p class="table-button-p"
                    @click="tableButton(2,scope.row)"
                    v-if="scope.row.noticeStatus==0 && scope.row.isHandlePeople"
-                   v-hasPermiRouter="['warning:event:edit']"
+                   v-hasPermiRouter="['warning:notice:edit']"
                 >处理</p>
                 <p class="table-button-p"
                    @click="tableButton(3,scope.row)"
-                   v-if="scope.row.noticeStatus==0 && scope.row.isHandlePeople==false"
-                   v-hasPermiRouter="['warning:event:detail']"
-                >详情</p>
-                <p class="table-button-p"
-                   @click="tableButton(3,scope.row)"
-                   v-if="scope.row.noticeStatus!=0"
+                   v-if="(scope.row.noticeStatus==0 && scope.row.isHandlePeople==false) || scope.row.noticeStatus!=0"
                    v-hasPermiRouter="['warning:notice:detail']"
                 >详情</p>
                 <p class="table-button-null"></p>
@@ -143,7 +138,7 @@
     },
     data () {
       return {
-        tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
+        tableButtonType:this.hasPermiDom(['warning:notice:edit','warning:notice:detail',]),
         //页面状态
         pageType:1,
         //页面遮罩

+ 8 - 8
src/views/integratedManagement/messageNotice/warningNotice/infoPage.vue

@@ -142,15 +142,13 @@
             </div>
           </div>
         </div>
-
-
       </div>
       <!--化学品报警抓拍 -->
       <div class="bottom-max-big-box" v-if="(infoData.warnType==1&&infoData.noticeStatus==1) || infoData.warnType==2 ||infoData.warnType==3">
         <p class="title-p">报警抓拍</p>
         <div class="img-list-box">
           <img v-for="(item,index) in infoData.snapImg" :key="index"
-               :src="item" @click="lookImg(index)">
+               :src="item" @click="lookImg(item,index)">
         </div>
       </div>
       <div class="bottom-max-big-box ">
@@ -184,7 +182,7 @@
             <p>{{infoData.handleTime}}</p>
           </div>
         </div>
-        <div class="text-max-big-box" v-if="(infoData.warnType == 1 &&infoData.chemicalWarnType == 1) || infoData.warnType == 2">
+        <div class="text-max-big-box" v-if="infoData.noticeStatus != 0 &&((infoData.warnType == 1 &&infoData.chemicalWarnType == 1) || infoData.warnType == 2)">
           <div class="text-box">
             <p>处理备注:</p>
             <p>{{infoData.handleNotes}}</p>
@@ -200,19 +198,19 @@
           <el-form :model="infoDataForm" ref="form" label-width="0">
             <el-form-item label="" prop="name">
               <span style="font-size:16px;">处理备注:</span>
-              <el-input v-model="infoDataForm.handleNotes" placeholder="请输入名称" maxLength="70" style="width:1325px;"></el-input>
+              <el-input v-model="infoDataForm.handleNotes" placeholder="请输入名称" maxLength="70" style="width:1325px;" v-hasPermiRouter="['warning:notice:edit']"></el-input>
             </el-form-item>
           </el-form>
           <div class="button-bottom-box">
             <p></p>
-            <p class="page-submit-common-style-button" @click="submitForm">处理</p>
+            <p class="page-submit-common-style-button" @click="submitForm" v-hasPermiRouter="['warning:notice:edit']">处理</p>
             <p></p>
           </div>
         </div>
       </div>
     </div>
     <!--全屏视图组件-->
-    <fullScreenView :fullScreenViewProps="infoData.data13" ref="fullScreenView"></fullScreenView>
+    <fullScreenView :fullScreenViewProps="fullScreenViewProps" ref="fullScreenView"></fullScreenView>
   </div>
 </template>
 
@@ -237,6 +235,7 @@ export default {
         noticeId:'',
         handleNotes:"",
       },
+      fullScreenViewProps:[],
     }
   },
   created(){
@@ -263,7 +262,8 @@ export default {
       });
     },
     // 照片预览
-    lookImg(index){
+    lookImg(item,index){
+      this.$set(this,'fullScreenViewProps',[item]);
       this.$refs['fullScreenView'].initialize(index);
     },
   },