dedsudiyu 1 year ago
parent
commit
eb4ba5ae40

+ 22 - 8
src/views/emergencyManagement/planExecuteRecord/planExecuteRecordDetail.vue

@@ -5,7 +5,7 @@
       <p class="page-top-title-name-p">详情</p>
       <p class="page-top-title-name-p">详情</p>
       <p class="page-top-title-out-p" @click="backPage">返回</p>
       <p class="page-top-title-out-p" @click="backPage">返回</p>
     </div>
     </div>
-    <div class="content-box">
+    <div class="content-box scrollbar-box">
       <div class="addPage_b_t">
       <div class="addPage_b_t">
         <div class="addPage_b_t_l">
         <div class="addPage_b_t_l">
           <div class="small_title">风险概况</div>
           <div class="small_title">风险概况</div>
@@ -46,6 +46,10 @@
           <div class="addPage_b_t_c_b" v-if="form">
           <div class="addPage_b_t_c_b" v-if="form">
             <!--            <img src="@/assets/images/login-background.jpg">-->
             <!--            <img src="@/assets/images/login-background.jpg">-->
             <video class="video" :src="form.recordVideo?form.recordVideo:''" autoplay controls></video>
             <video class="video" :src="form.recordVideo?form.recordVideo:''" autoplay controls></video>
+            <div class="video-button-box">
+              <p></p>
+              <p></p>
+            </div>
           </div>
           </div>
         </div>
         </div>
         <div class="addPage_b_t_r">
         <div class="addPage_b_t_r">
@@ -67,10 +71,15 @@
               <div class="for-planAxis-min-box">
               <div class="for-planAxis-min-box">
                 <div class="for-planAxis-top-box">
                 <div class="for-planAxis-top-box">
                   <p v-if="(item.riskStatus==1||item.riskStatus==2)">
                   <p v-if="(item.riskStatus==1||item.riskStatus==2)">
-                    {{index == 0?item.eventOperate+'('+item.riskPlanName+')':item.riskPlanName}}
+                    {{item.eventOperate+'('+(
+                    form.riskPlanLevel==1?'低风险':(
+                    form.riskPlanLevel==2?'中风险':(
+                    form.riskPlanLevel==3?'较高风险':(
+                    form.riskPlanLevel==4?'高风险':''))))
+                    +')'}}
                   </p>
                   </p>
                   <p v-if="(item.riskStatus==1||item.riskStatus==2)">
                   <p v-if="(item.riskStatus==1||item.riskStatus==2)">
-                    {{item.sensorJsonName}}:<span>{{item.sensorJsonValue}}</span>
+                    传感器:<span v-for="(minItem,minIndex) in item.sensorJson">{{minItem.sensorName}}:{{minItem.sensorValue}}</span>
                   </p>
                   </p>
                   <p v-if="(item.riskStatus==1||item.riskStatus==2)">时间:{{parseTime(item.createTime)}}</p>
                   <p v-if="(item.riskStatus==1||item.riskStatus==2)">时间:{{parseTime(item.createTime)}}</p>
                 </div>
                 </div>
@@ -83,7 +92,7 @@
                     {{item.eventOperate}}
                     {{item.eventOperate}}
                   </p>
                   </p>
                   <p v-if="(item.riskStatus!=1&& item.riskStatus!=2)">
                   <p v-if="(item.riskStatus!=1&& item.riskStatus!=2)">
-                    {{item.eventOperate}}:<span>{{item.sensorJsonValue}}</span>
+                    传感器:<span v-for="(minItem,minIndex) in item.sensorJson">{{minItem.sensorName}}:{{minItem.sensorValue}}</span>
                   </p>
                   </p>
                   <p v-if="(item.riskStatus!=1&& item.riskStatus!=2)">
                   <p v-if="(item.riskStatus!=1&& item.riskStatus!=2)">
                     时间:{{parseTime(item.createTime)}}
                     时间:{{parseTime(item.createTime)}}
@@ -272,9 +281,8 @@
       }
       }
       .addPage_b_t {
       .addPage_b_t {
         display: flex;
         display: flex;
-        justify-content: space-between;
         .addPage_b_t_l {
         .addPage_b_t_l {
-          width: 378px;
+          width: 450px;
           .addPage_b_t_l_b {
           .addPage_b_t_l_b {
             > li {
             > li {
               margin-bottom: 20px;
               margin-bottom: 20px;
@@ -291,7 +299,6 @@
                 color: #333333;
                 color: #333333;
               }
               }
               > i:nth-of-type(2) {
               > i:nth-of-type(2) {
-                width: 280px;
                 color: #666666;
                 color: #666666;
                 line-height: 16px;
                 line-height: 16px;
               }
               }
@@ -300,6 +307,7 @@
         }
         }
         .addPage_b_t_c {
         .addPage_b_t_c {
           width: 380px;
           width: 380px;
+          margin:0 90px 0 30px;
           .addPage_b_t_c_b {
           .addPage_b_t_c_b {
             width: 380px;
             width: 380px;
             height: 222px;
             height: 222px;
@@ -310,12 +318,18 @@
             .video {
             .video {
               width: 380px;
               width: 380px;
               height: 222px;
               height: 222px;
+              overflow: hidden;
+              display: block;
+            }
+            .video-button-box{
+              height:10px;
+              border:1px solid #dedede;
             }
             }
           }
           }
         }
         }
         .addPage_b_t_r {
         .addPage_b_t_r {
+          width: 458px;
           .addPage_b_t_r_b {
           .addPage_b_t_r_b {
-            width: 456px;
             > li {
             > li {
               margin-bottom: 20px;
               margin-bottom: 20px;
               > i {
               > i {

+ 80 - 16
src/views/iotDevice/hardwareManagement/hardwareEquipment/index.vue

@@ -182,24 +182,24 @@
             />
             />
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="状态" prop="state">
-          <el-radio-group v-model="dialogForm.state">
-            <el-radio :label="true" style="margin-left:20px;">启用</el-radio>
-            <el-radio :label="false">禁用</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="参数 A" prop="reservedOne">
-          <el-input v-model="dialogForm.reservedOne" placeholder="请输入名称"
+        <el-form-item :label="reservedNameOne" prop="reservedOne" v-if="reservedTypeOne">
+          <el-input v-model="dialogForm.reservedOne" :placeholder="'请输入'+reservedNameOne"
                     maxLength="10" style="width:320px;"/>
                     maxLength="10" style="width:320px;"/>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="参数 B" prop="reservedTwo">
-          <el-input v-model="dialogForm.reservedTwo" placeholder="请输入名称"
+        <el-form-item :label="reservedNameTwo" prop="reservedTwo" v-if="reservedTypeTwo">
+          <el-input v-model="dialogForm.reservedTwo" :placeholder="'请输入'+reservedNameTwo"
                     maxLength="10" style="width:320px;"/>
                     maxLength="10" style="width:320px;"/>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="参数 C" prop="reservedThree">
-          <el-input v-model="dialogForm.reservedThree" placeholder="请输入名称"
+        <el-form-item :label="reservedNameThree" prop="reservedThree" v-if="reservedTypeThree">
+          <el-input v-model="dialogForm.reservedThree" :placeholder="'请输入'+reservedNameThree"
                     maxLength="10" style="width:320px;"/>
                     maxLength="10" style="width:320px;"/>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="状态" prop="state">
+          <el-radio-group v-model="dialogForm.state">
+            <el-radio :label="true" style="margin-left:20px;">启用</el-radio>
+            <el-radio :label="false">禁用</el-radio>
+          </el-radio-group>
+        </el-form-item>
       </el-form>
       </el-form>
       <div slot="footer" class="dialog-footer dialog-footer-box">
       <div slot="footer" class="dialog-footer dialog-footer-box">
         <p class="dialog-footer-button-null"></p>
         <p class="dialog-footer-button-null"></p>
@@ -217,7 +217,8 @@
     iotHardwareList,
     iotHardwareList,
     iotHardwareDelete,
     iotHardwareDelete,
     iotHardwareTypeFindHardwareType,
     iotHardwareTypeFindHardwareType,
-    iotDeviceFindByType
+    iotDeviceFindByType,
+    iotAttributeDetail
 
 
   } from '@/api/iotDevice/index'
   } from '@/api/iotDevice/index'
   import { systemBuildingGetTreeList, laboratorySubRelInfoGetListByFloor } from '@/api/commonality/permission'
   import { systemBuildingGetTreeList, laboratorySubRelInfoGetListByFloor } from '@/api/commonality/permission'
@@ -294,6 +295,18 @@
           state: [
           state: [
             { required: true, message: '请选择状态', trigger: 'blur' },
             { required: true, message: '请选择状态', trigger: 'blur' },
             { required: true, message: '请选择状态', validator: this.spaceJudgment, trigger: 'blur' }
             { required: true, message: '请选择状态', validator: this.spaceJudgment, trigger: 'blur' }
+          ],
+          reservedOne: [
+            { required: true, message: '请输入参数', trigger: 'blur' },
+            { required: true, message: '请输入参数', validator: this.spaceJudgment, trigger: 'blur' }
+          ],
+          reservedTwo: [
+            { required: true, message: '请输入参数', trigger: 'blur' },
+            { required: true, message: '请输入参数', validator: this.spaceJudgment, trigger: 'blur' }
+          ],
+          reservedThree: [
+            { required: true, message: '请输入参数', trigger: 'blur' },
+            { required: true, message: '请输入参数', validator: this.spaceJudgment, trigger: 'blur' }
           ]
           ]
         },
         },
         //校区楼栋原始数据
         //校区楼栋原始数据
@@ -306,6 +319,13 @@
         subjectOption: [],
         subjectOption: [],
         //物联分类下拉列表
         //物联分类下拉列表
         iotTypeOptions:[],
         iotTypeOptions:[],
+        //硬件参数数据
+        reservedNameOne:'',
+        reservedTypeOne:false,
+        reservedNameTwo:'',
+        reservedTypeTwo:false,
+        reservedNameThree:'',
+        reservedTypeThree:false,
       }
       }
     },
     },
     created() {
     created() {
@@ -368,9 +388,44 @@
         this.relayList.forEach((item) => {
         this.relayList.forEach((item) => {
           if(val == item.id){
           if(val == item.id){
             self.$set(self.dialogForm, 'deviceNo', item.deviceNo)
             self.$set(self.dialogForm, 'deviceNo', item.deviceNo)
+            self.$set(self.dialogForm, 'attributeId', item.attributeId)
+            this.iotAttributeDetail(item.attributeId);
           }
           }
         });
         });
       },
       },
+      //查询物联分类属性详情
+      iotAttributeDetail(attributeId){
+        iotAttributeDetail({id:attributeId}).then(response => {
+          let list = response.data.relateField?JSON.parse(response.data.relateField):[];
+          list.forEach((item,index)=>{
+            if(index == 0){
+              if(item.state){
+                this.$set(this, 'reservedNameOne', item.relateFieldName)
+                this.$set(this, 'reservedTypeOne', true)
+              }else{
+                this.$set(this, 'reservedNameOne', '')
+                this.$set(this, 'reservedTypeOne', false)
+              }
+            }else if(index == 1){
+              if(item.state){
+                this.$set(this, 'reservedNameTwo', item.relateFieldName)
+                this.$set(this, 'reservedTypeTwo', true)
+              }else{
+                this.$set(this, 'reservedNameTwo', '')
+                this.$set(this, 'reservedTypeTwo', false)
+              }
+            }else if(index == 2){
+              if(item.state){
+                this.$set(this, 'reservedNameThree', item.relateFieldName)
+                this.$set(this, 'reservedTypeThree', true)
+              }else{
+                this.$set(this, 'reservedNameThree', '')
+                this.$set(this, 'reservedTypeThree', false)
+              }
+            }
+          })
+        })
+      },
       //根据类型查询物联设备
       //根据类型查询物联设备
       iotDeviceFindByType(val) {
       iotDeviceFindByType(val) {
         let obj = {
         let obj = {
@@ -400,6 +455,7 @@
           //编辑
           //编辑
           let obj = JSON.parse(JSON.stringify(row))
           let obj = JSON.parse(JSON.stringify(row))
           this.iotDeviceFindByType(row.deviceTypeKey)
           this.iotDeviceFindByType(row.deviceTypeKey)
+          this.iotAttributeDetail(row.attributeId);
           this.$set(this, 'dialogForm', obj)
           this.$set(this, 'dialogForm', obj)
           this.$set(this, 'dialogType', true)
           this.$set(this, 'dialogType', true)
         } else if (type == 4) {
         } else if (type == 4) {
@@ -454,11 +510,18 @@
           deviceTypeKey: '',
           deviceTypeKey: '',
           deviceId: '',
           deviceId: '',
           deviceNo: '',
           deviceNo: '',
+          attributeId:'',
           state: true,
           state: true,
           reservedOne:'',
           reservedOne:'',
           reservedTwo:'',
           reservedTwo:'',
           reservedThree:'',
           reservedThree:'',
         })
         })
+        this.$set(this, 'reservedNameOne', '')
+        this.$set(this, 'reservedTypeOne', false)
+        this.$set(this, 'reservedNameTwo', '')
+        this.$set(this, 'reservedTypeTwo', false)
+        this.$set(this, 'reservedNameThree', '')
+        this.$set(this, 'reservedTypeThree', false)
         this.$set(this, 'relayList', [])
         this.$set(this, 'relayList', [])
         this.$set(this, 'dialogType', true)
         this.$set(this, 'dialogType', true)
       },
       },
@@ -476,10 +539,11 @@
               deviceTypeKey: this.dialogForm.deviceTypeKey,
               deviceTypeKey: this.dialogForm.deviceTypeKey,
               deviceId: this.dialogForm.deviceId,
               deviceId: this.dialogForm.deviceId,
               deviceNo: this.dialogForm.deviceNo,
               deviceNo: this.dialogForm.deviceNo,
+              attributeId: this.dialogForm.attributeId,
               state: this.dialogForm.state,
               state: this.dialogForm.state,
-              reservedOne:this.dialogForm.reservedOne,
-              reservedTwo:this.dialogForm.reservedTwo,
-              reservedThree:this.dialogForm.reservedThree,
+              reservedOne:this.reservedTypeOne?this.dialogForm.reservedOne:'',
+              reservedTwo:this.reservedTypeTwo?this.dialogForm.reservedTwo:'',
+              reservedThree:this.reservedTypeThree?this.dialogForm.reservedThree:'',
             }
             }
             if (this.dialogForm.id) {
             if (this.dialogForm.id) {
               iotHardwareUpdate(obj).then(response => {
               iotHardwareUpdate(obj).then(response => {

+ 44 - 0
src/views/iotDevice/intelligenceIot/iotClassification/attributePage.vue

@@ -179,6 +179,22 @@
               </div>
               </div>
             </div>
             </div>
             <div class="iotClassification-dialog-form-right-box">
             <div class="iotClassification-dialog-form-right-box">
+              <!--关联硬件-->
+              <div class="for-argument-disposition-max-box">
+                <p class="for-argument-disposition-title-p">关联硬件:</p>
+                <div class="for-argument-disposition-big-box">
+                  <div class="for-argument-disposition-box" v-for="(item,index) in dialogForm.relateField" :key="index">
+                    <el-form-item label="" :prop="'relateField.'+index+'.relateFieldName'" :rules="item.state?dialogRules.relateFieldName:dialogRulesNo">
+                      <el-input v-model="item.relateFieldName" :disabled="!item.state"
+                                placeholder="请输入字段名称" maxLength="10" style="width:320px;">
+                        <template slot="append">
+                          <el-checkbox v-model="item.state">启用</el-checkbox>
+                        </template>
+                      </el-input>
+                    </el-form-item>
+                  </div>
+                </div>
+              </div>
               <el-form-item label="网络组件:" prop="networkId">
               <el-form-item label="网络组件:" prop="networkId">
                 <el-select v-model="dialogForm.networkId"
                 <el-select v-model="dialogForm.networkId"
                            placeholder="请选网络组件"
                            placeholder="请选网络组件"
@@ -330,7 +346,12 @@
             { required: true, message: "请输入值", trigger: "blur" },
             { required: true, message: "请输入值", trigger: "blur" },
             { required: true, message: "请输入值", validator: this.spaceJudgment, trigger: "blur" }
             { required: true, message: "请输入值", validator: this.spaceJudgment, trigger: "blur" }
           ],
           ],
+          relateFieldName: [
+            { required: true, message: "请输入字段名称", trigger: "blur" },
+            { required: true, message: "请输入字段名称", validator: this.spaceJudgment, trigger: "blur" }
+          ],
         },
         },
+        dialogRulesNo:{}
       }
       }
     },
     },
     created(){
     created(){
@@ -412,6 +433,11 @@
           networkId:'',
           networkId:'',
           state:true,
           state:true,
           params:[],
           params:[],
+          relateField:[
+            {relateFieldName:'',state:false},
+            {relateFieldName:'',state:false},
+            {relateFieldName:'',state:false},
+          ],
         });
         });
       },
       },
       //dialog提交按钮
       //dialog提交按钮
@@ -434,6 +460,7 @@
               remark:this.dialogForm.remark,
               remark:this.dialogForm.remark,
               icon:this.dialogForm.icon,
               icon:this.dialogForm.icon,
               exceptionIcon:this.dialogForm.exceptionIcon,
               exceptionIcon:this.dialogForm.exceptionIcon,
+              relateField:JSON.stringify(this.dialogForm.relateField)
             }
             }
             //自定义参数
             //自定义参数
             let minObj = {};
             let minObj = {};
@@ -480,6 +507,7 @@
             icon:row.icon,
             icon:row.icon,
             exceptionIcon:row.exceptionIcon,
             exceptionIcon:row.exceptionIcon,
             state:row.state,
             state:row.state,
+            relateField:row.relateField?JSON.parse(row.relateField):[{relateFieldName:'',state:false},{relateFieldName:'',state:false},{relateFieldName:'',state:false}],
           }
           }
           //子标识判定
           //子标识判定
           if(this.attrTypeOptionsList[0]){
           if(this.attrTypeOptionsList[0]){
@@ -644,6 +672,22 @@
         flex: 1;
         flex: 1;
       }
       }
     }
     }
+    .for-argument-disposition-max-box{
+      display: flex;
+      .for-argument-disposition-title-p{
+        line-height:40px;
+        text-align: right;
+        font-size:14px;
+        color:#333;
+        width:98px;
+        margin:0 12px 20px 0;
+      }
+      .for-argument-disposition-big-box{
+        .for-argument-disposition-box{
+
+        }
+      }
+    }
     .for-params-max-box{
     .for-params-max-box{
       display: flex;
       display: flex;
       .for-params-title-p{
       .for-params-title-p{