dedsudiyu 1 hónapja
szülő
commit
d05c4bd6df

+ 8 - 0
src/api/commonality/permission.js

@@ -433,6 +433,14 @@ export function systemBuildingGetTreeList(data) {
     data: data
   })
 }
+//楼栋tree列表-新接口(用于布局管理/楼栋管理)
+export function systemBuildingTree(query) {
+  return request({
+    url: '/system/building/tree',
+    method: 'get',
+    params: query
+  })
+}
 
 /*根据校区/楼栋/楼层查询实验室列表
   deptId:'校区查询'

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

@@ -375,6 +375,14 @@ export function laboratoryBoardExportBoardInfo(query) {
     params: query
   })
 }
+//实验室-信息牌下载-获取信息牌配置信息
+export function laboratoryAppBoardMiddleInfo(query) {
+  return request({
+    url: '/laboratory/app/board/middleInfo',
+    method: 'get',
+    params: query
+  })
+}
 //实验室-排序修改
 export function laboratorySubRelInfoUpdateBySort(data) {
   return request({

+ 40 - 14
src/layout/components/AppMain.vue

@@ -2,7 +2,7 @@
   <section class="app-main">
     <div class="perform-evacuation-app-main-box" v-if="planType">
       <p>{{text}}</p>
-      <p @click="goPage">查看</p>
+      <p @click="goPage" v-if="buttonType">查看</p>
     </div>
     <transition name="fade-transform" mode="out-in">
       <!--<keep-alive :include="cachedViews">-->
@@ -13,6 +13,7 @@
 </template>
 
 <script>
+  import { itoOrVideoLimits} from '@/utils/index'
   import { laboratoryBigViewSelectTriggerInfo } from "@/api/commonality/permission";
   import mqtt from 'mqtt'
 export default {
@@ -35,6 +36,7 @@ export default {
       text:'',
       planType:false,
       planData:[],
+      buttonType:false,
     }
   },
   created() {
@@ -90,24 +92,48 @@ export default {
     laboratoryBigViewSelectTriggerInfo(){
       let self = this;
       laboratoryBigViewSelectTriggerInfo().then(response => {
-        // console.log('条幅触发',response.data);
         if(response.data[0]){
-          // console.log('条幅触发-有');
-          this.$set(this,'planData',response.data);
-          this.$set(this,'text',response.data[1]?'有多个实验室发生预案':'有实验室发生预案');
-          this.$set(this,'planType',true);
-          //传感器
-          let planSensorList = [];
+          let list1 = [];
+          let list2 = [];
           response.data.forEach((item)=>{
-            let list = JSON.parse(item.triggerUploadData)
-            list.forEach((minItem)=>{
-              planSensorList.push(minItem.deviceNo)
-            })
+            if(itoOrVideoLimits(item.adminId)){
+              list1.push(item);
+            }else{
+              list2.push(item);
+            }
           })
-          this.$store.dispatch('plan/setTitle', planSensorList)
+          if(list1[0]){
+            this.$set(this,'buttonType',true);
+            this.$set(this,'planData',list1);
+            this.$set(this,'text',list1[1]?'有多个实验室发生预案':'有实验室发生预案');
+            this.$set(this,'planType',true);
+            //传感器
+            let planSensorList = [];
+            list1.forEach((item)=>{
+              let list = JSON.parse(item.triggerUploadData)
+              list.forEach((minItem)=>{
+                planSensorList.push(minItem.deviceNo)
+              })
+            })
+            this.$store.dispatch('plan/setTitle', planSensorList)
+          }else{
+            this.$set(this,'buttonType',false);
+            this.$set(this,'planData',list2);
+            this.$set(this,'text',list2[1]?'有多个实验室发生预案':'有实验室发生预案');
+            this.$set(this,'planType',true);
+            //传感器
+            let planSensorList = [];
+            list2.forEach((item)=>{
+              let list = JSON.parse(item.triggerUploadData)
+              list.forEach((minItem)=>{
+                planSensorList.push(minItem.deviceNo)
+              })
+            })
+            this.$store.dispatch('plan/setTitle', planSensorList)
+          }
         }else{
-          // console.log('条幅触发-无');
           this.$set(this,'planType',false);
+          this.$set(this,'buttonType',false);
           this.$set(this,'planData',[]);
           this.$set(this,'text','');
           this.$store.dispatch('plan/setTitle', [])

+ 17 - 7
src/views/emergencyManagement/performEvacuation/performEvacuationData.vue

@@ -423,7 +423,7 @@
 </template>
 <script>
   import mqtt from 'mqtt'
-  import { controlsRestrictVerify} from '@/utils/index'
+  import { itoOrVideoLimits} from '@/utils/index'
   import { laboratoryBigViewGetBuildByBigView, laboratoryBigViewGetFloorByBigView,
     laboratoryExitLineGetRedisEvacuation,laboratoryExitLineExecuteEvacuation,
     laboratoryExitLineEndEvacuation,laboratoryBigViewOnLineUserList,
@@ -453,6 +453,8 @@
         buildId:'',
         floorId:'',
         //实验室选中/报警数据
+        subId:null,
+        adminId:null,
         checkSubId:null,
         //选中的喇叭ID
         checkLoudspeaker:null,
@@ -634,8 +636,10 @@
           this.laboratoryBigViewOnLineUserList();
           //查询实验室相关硬件
           this.iotBigViewHardwareFindByType();
-          //查询实验室相关摄像头
-          this.videoInitialize();
+          if(itoOrVideoLimits(this.adminId)){
+            //查询实验室相关摄像头
+            this.videoInitialize();
+          }
           //查询实验室相关传感器
           this.iotBigViewDeviceFindBySubId();
           //查询实验室相关喇叭
@@ -728,6 +732,7 @@
                       list[i].roomNum = response.data[0].buildLayoutVoList[o].roomNum;
                       list[i].subName = response.data[0].buildLayoutVoList[o].subName;
                       list[i].subId = response.data[0].buildLayoutVoList[o].subId;
+                      list[i].adminId = response.data[0].buildLayoutVoList[o].adminId;
                       list[i].onLineNum = response.data[0].buildLayoutVoList[o].onLineNum;
                       list[i].loginAdmin = response.data[0].buildLayoutVoList[o].loginAdmin;
                       list[i].levelColor = response.data[0].buildLayoutVoList[o].levelColor?hex2Rgba(response.data[0].buildLayoutVoList[o].levelColor):'';
@@ -750,6 +755,8 @@
                   this.$set(this,'subName',list[x].subName);
                   this.$set(this,'roomNum',list[x].roomNum);
                   this.$set(this,'checkSubId',list[x].subId);
+                  this.$set(this,'subId',list[x].subId);
+                  this.$set(this,'adminId',list[x].adminId);
                   break
                 }
               }
@@ -757,6 +764,7 @@
                 this.$set(this,'subName','');
                 this.$set(this,'roomNum','');
                 this.$set(this,'checkSubId','');
+                this.$set(this,'adminId','');
               }
               this.$set(this,'mapList',JSON.parse(JSON.stringify(list)));
               this.$set(this,'shadeMapList',JSON.parse(JSON.stringify(list)));
@@ -874,6 +882,7 @@
                     this.$set(this,'subName',self.mapList[o].subName);
                     this.$set(this,'roomNum',self.mapList[o].roomNum);
                     this.$set(this,'checkSubId',self.mapList[o].subId);
+                    this.$set(this,'adminId',self.mapList[o].adminId);
                     checkNum++
                     break
                   }
@@ -1155,7 +1164,7 @@
       },
       //喇叭播放文字
       iotBigViewSpeakerPlayText(){
-        if(!controlsRestrictVerify('performEvacuation')){
+        if(!itoOrVideoLimits(this.adminId)){
           this.msgError('没有相关操作权限,请联系管理员')
           return
         }
@@ -1385,6 +1394,7 @@
         //   if(item.loginAdmin){
             if((this.checkSubId != item.subId)&&item.subId!= -1&&item.type == 1){
               this.$set(this,'subId',item.subId);
+              this.$set(this,'adminId',item.adminId);
               this.$set(this,'checkSubId',item.subId);
               // let subText = item.roomType == '-99'?item.roomName:item.subName +' - '+ item.roomNum;
               // this.$set(this,'subText',subText);
@@ -1417,7 +1427,7 @@
       //开始/结束疏散按钮
       evacuationButton(){
         let self = this;
-        if(!controlsRestrictVerify('performEvacuation')){
+        if(!itoOrVideoLimits(this.adminId)){
           this.msgError('没有相关操作权限,请联系管理员')
           return
         }
@@ -1504,7 +1514,7 @@
       },
       //遮罩层开关/弹层提示确认
       shadeButton(type,text){
-        if(!controlsRestrictVerify('performEvacuation')){
+        if(!itoOrVideoLimits(this.adminId)){
           this.msgError('没有相关操作权限,请联系管理员')
           return
         }
@@ -1857,7 +1867,7 @@
       },
       //弹层开启
       dialogOpen(item){
-        if(!controlsRestrictVerify('performEvacuation')){
+        if(!itoOrVideoLimits(this.adminId)){
           this.msgError('没有相关操作权限,请联系管理员')
           return
         }

+ 4 - 4
src/views/integratedManagement/buildingManagement/index.vue

@@ -269,7 +269,7 @@
 </template>
 
 <script>
-  import { systemBuildingGetTreeList,} from "@/api/commonality/permission";
+  import { systemBuildingTree,} from "@/api/commonality/permission";
   import { getDicts,} from "@/api/commonality/noPermission";
   import { systemBuildingGetTreeAdd,systemBuildingGetUpdate,
     systemBuildingGetList,systemBuildingEditSortNum,systemBuildingEditDelete,
@@ -597,7 +597,7 @@
       },
       //获取学校/楼栋/楼层树状数据
       getTreeList() {
-        systemBuildingGetTreeList(this.threeParams).then(response => {
+        systemBuildingTree(this.threeParams).then(response => {
           if (response.data[0]) {
             for (let i = 0; i < response.data.length; i++) {
               response.data[i].onType = true
@@ -607,11 +607,11 @@
             }
             this.$set(this, 'treeList', response.data)
             this.clickCheckTree(response.data[0],1);
-            if (!this.checkTreeId) {
+            // if (!this.checkTreeId) {
               this.$set(this, 'checkTreeId', response.data[0].id)
               this.$set(this, 'yxName', response.data[0].name)
               this.$set(this, 'parentId', response.data[0].parentId)
-            }
+            // }
             let obj = {
               parentId: this.checkTreeId ? this.checkTreeId : response.data[0].id,
               // type:this.checkTreeType

+ 8 - 8
src/views/integratedManagement/laboratoryManagement/layoutManagement/index.vue

@@ -270,7 +270,7 @@
 <script>
   import buildingDetails from './buildingDetails.vue'
   import { getDicts,} from "@/api/commonality/noPermission";
-  import { systemBuildingGetTreeList,} from "@/api/commonality/permission";
+  import { systemBuildingTree,} from "@/api/commonality/permission";
   import { laboratoryBuildLayoutGetTreeSonList,laboratoryBuildLayoutList } from "@/api/integratedManagement/index";
   export default {
     name: 'newIndex',
@@ -356,7 +356,7 @@
 
     },
     mounted() {
-      this.systemBuildingGetTreeList()
+      this.systemBuildingTree()
       this.getDicts('layout_room_type').then(response => {
         this.roomTypeOptions = response.data
         this.clickCheckTree(response.data[0],1);
@@ -365,15 +365,15 @@
     },
     methods: {
       getTree(){
-        this.systemBuildingGetTreeList();
+        this.systemBuildingTree();
       },
       resetTree(){
         this.$set(this.threeParams,'name','');
-        this.systemBuildingGetTreeList();
+        this.systemBuildingTree();
       },
       //获取学校/楼栋/楼层数据
-      systemBuildingGetTreeList() {
-        systemBuildingGetTreeList(this.threeParams).then(response => {
+      systemBuildingTree() {
+        systemBuildingTree(this.threeParams).then(response => {
           if (response.data[0]) {
             for (let i = 0; i < response.data.length; i++) {
               response.data[i].onType = true
@@ -382,11 +382,11 @@
               }
             }
             this.$set(this, 'treeList', response.data)
-            if (!this.checkTreeId) {
+            // if (!this.checkTreeId) {
               this.$set(this, 'checkTreeId', response.data[0].id)
               this.$set(this, 'yxName', response.data[0].name)
               this.$set(this, 'parentId', response.data[0].parentId)
-            }
+            // }
             let obj = {
               id: this.checkTreeId ,
               type: this.checkTreeType,

+ 393 - 105
src/views/integratedManagement/laboratoryManagement/subject/index.vue

@@ -159,119 +159,200 @@
         <p @click="downloadImg">下载</p>
       </div>
       <div id="subject-dialog-print-box" ref="canvasImg">
-        <div class="subject-dialog-print-big-box">
-          <!--信息栏-->
-          <div class="subject-dialog-print-top-box">
-            <div class="subject-dialog-print-top-left-box">
-              <div class="subject-dialog-print-top-left-top-box">
-                <!--实验室名称-->
-                <div class="subject-dialog-name-box">
-                  <div class="title-box-1">
-                    <div class="title-box-2" :style="'background-color:'+dialogData.filedColor+';'">
-                      <div class="title-box-3">
-                        <p :style="'background-color:'+dialogData.filedColor+';'">
-                          {{dialogData.levelName}}丨{{dialogData.typeName}}</p>
-                      </div>
-                    </div>
-                  </div>
-                  <p class="title-p">实验室安全信息牌</p>
-                </div>
-                <!--实验室信息-->
-                <div class="subject-dialog-info-box">
-                  <div class="subject-dialog-info-left-box">
-                    <div class="subject-dialog-info-left-min-box">
-                      <div>
-                        <p class="text-p-left" style="margin-right:10px;">责</p>
-                        <p class="text-p-center">任</p>
-                        <p class="text-p-center">单</p>
-                        <p class="text-p-right" style="margin-left:10px;">位</p>
-                      </div>
-                      <p class="subject-dialog-info-left-p">: {{dialogData.deptName}}</p>
-                    </div>
-                    <div class="subject-dialog-info-left-min-box">
-                      <div>
-                        <p class="text-p-left" style="margin-right:6px;">实</p>
-                        <p class="text-p-center">验</p>
-                        <p class="text-p-center">室</p>
-                        <p class="text-p-center">名</p>
-                        <p class="text-p-right" style="margin-left:6px;">称</p>
-                      </div>
-                      <p class="subject-dialog-info-left-p">: {{dialogData.subjectName}} - {{dialogData.room}}</p>
-                    </div>
-                    <div class="subject-dialog-info-left-min-box">
-                      <div>
-                        <p class="text-p-left" style="margin-right:2px;">实</p>
-                        <p class="text-p-center">验</p>
-                        <p class="text-p-center">室</p>
-                        <p class="text-p-center">负</p>
-                        <p class="text-p-center">责</p>
-                        <p class="text-p-right" style="margin-left:2px;">人</p>
-                      </div>
-                      <p class="subject-dialog-info-left-p">: {{dialogData.adminName}}|{{dialogData.adminPhone}}</p>
-                    </div>
-                    <!--<div class="subject-dialog-info-left-min-box">-->
-                      <!--<div>-->
-                        <!--<p class="text-p-left" style="margin-right:2px;">实</p>-->
-                        <!--<p class="text-p-center">验</p>-->
-                        <!--<p class="text-p-center">室</p>-->
-                        <!--<p class="text-p-center">安</p>-->
-                        <!--<p class="text-p-center">全</p>-->
-                        <!--<p class="text-p-right" style="margin-left:2px;">员</p>-->
-                      <!--</div>-->
-                      <!--<p class="subject-dialog-info-left-p">: <span v-for="(item,index) in dialogData.safeUserVoList" :key="index">{{index!=0?' 、':''}}{{item.safeName}}|{{item.safePhone}}</span></p>-->
-                    <!--</div>-->
-                  </div>
-                  <div class="subject-dialog-info-right-box">
-                    <vue-qr style="display: block;height:110px;width:110px;"
-                            :text="identification+'?'+dialogData.qrCodeUrl" :size="300">
-                    </vue-qr>
-                  </div>
-                </div>
+        <div class="subject-dialog-top-max-big-box">
+          <div class="subject-dialog-top-level-box" :style="'background-color:'+dialogData.filedColor+';'">
+            <p>{{dialogData.levelName}}</p>
+            <p>{{dialogData.typeName}}</p>
+          </div>
+          <div class="subject-dialog-top-text1-box">
+            <div class="subject-dialog-top-text-box">
+              <div style="padding-right: 0;">
+                <p>单</p>
+                <p>位</p>
+                <p>名</p>
+                <p>称</p>
               </div>
-              <div class="subject-dialog-print-top-left-bottom-box">
-                <!--1号右侧信息栏-->
-                <div class="subject-dialog-print-top-left-bottom-left-box" v-if="dialogData.dataOne">
-                  <p class="data-title" :style="'background-color:'+dialogData.dataOne.showColour+';'">
-                    {{dialogData.dataOne.classifyName}}</p>
-                  <div class="data-for-text" v-if="dialogData.dataOne.classifyType == 1">
-                    <p v-for="(item,index) in dialogData.dataOne.classifyList" :key="index">{{index+1}}、{{item}}</p>
-                  </div>
-                  <div class="data-for-img" v-if="dialogData.dataOne.classifyType == 2">
-                    <img v-for="(item,index) in dialogData.dataOne.classifyList" :key="index" :src="item">
-                  </div>
-                </div>
-                <!--2号右侧信息栏-->
-                <div class="subject-dialog-print-top-left-bottom-right-box" v-if="dialogData.dataTwo">
-                  <p class="data-title" :style="'background-color:'+dialogData.dataTwo.showColour+';'">
-                    {{dialogData.dataTwo.classifyName}}</p>
-                  <div class="data-for-text" v-if="dialogData.dataTwo.classifyType == 1">
-                    <p v-for="(item,index) in dialogData.dataTwo.classifyList" :key="index">{{index+1}}、{{item}}</p>
-                  </div>
-                  <div class="data-for-img" v-if="dialogData.dataTwo.classifyType == 2">
-                    <img v-for="(item,index) in dialogData.dataTwo.classifyList" :key="index" :src="item">
-                  </div>
-                </div>
+              <p class="subject-dialog-top-text-p">{{dialogData.deptName}}</p>
+            </div>
+            <div class="subject-dialog-top-text-box">
+              <div style="padding-right: 9px;">
+                <p>实</p>
+                <p>验</p>
+                <p>室</p>
+                <p>名</p>
+                <p>称</p>
               </div>
+              <p class="subject-dialog-top-text-p">{{dialogData.subjectName}}</p>
             </div>
-            <!--3号右侧信息栏-->
-            <div class="subject-dialog-print-top-right-box" v-if="dialogData.dataThree">
-              <p class="data-title" :style="'background-color:'+dialogData.dataThree.showColour+';'">
-                {{dialogData.dataThree.classifyName}}</p>
-              <div class="data-for-text" v-if="dialogData.dataThree.classifyType == 1">
-                <p v-for="(item,index) in dialogData.dataThree.classifyList" :key="index">{{index+1}}、{{item}}</p>
+            <div class="subject-dialog-top-text-box">
+              <div>
+                <p>实</p>
+                <p>验</p>
+                <p>室</p>
+                <p>负</p>
+                <p>责</p>
+                <p>人</p>
               </div>
-              <div class="data-for-img" v-if="dialogData.dataThree.classifyType == 2">
-                <img v-for="(item,index) in dialogData.dataThree.classifyList" :key="index" :src="item">
+              <p class="subject-dialog-top-text-p">{{dialogData.adminName}}</p>
+            </div>
+          </div>
+          <div class="subject-dialog-top-text2-box">
+            <div class="subject-dialog-top-text-box">
+              <div>
+                <p>楼</p>
+                <p style="text-align: right">宇</p>
+              </div>
+              <p class="subject-dialog-top-text-p">{{dialogData.buildName}}</p>
+            </div>
+            <div class="subject-dialog-top-text-box">
+              <div>
+                <p style="text-align: left">房</p>
+                <p style="text-align: center">间</p>
+                <p style="text-align: right">号</p>
               </div>
+              <p class="subject-dialog-top-text-p">{{dialogData.room}}</p>
+            </div>
+            <div class="subject-dialog-top-text-box">
+              <div>
+                <p>负</p>
+                <p>责</p>
+                <p>人</p>
+                <p>电</p>
+                <p>话</p>
+              </div>
+              <p class="subject-dialog-top-text-p">{{dialogData.adminPhone}}</p>
             </div>
           </div>
-          <!--特殊类目-->
-          <div class="subject-dialog-print-button-box" v-if="dialogData.specialBrandInfo"
-               :style="'background:'+dialogData.specialBrandInfo.showColour+';'">
-            <span v-for="(item,index) in dialogData.specialBrandInfo.classifyList" :key="index">{{item}}</span>
+          <div class="subject-dialog-top-code-box">
+            <vue-qr style="display: block;height:164px;width:164px;margin:24px 18px;"
+                    :text="identification+'?'+dialogData.qrCodeUrl" :size="300">
+            </vue-qr>
+          </div>
+        </div>
+        <div class="subject-dialog-bottom-max-big-box">
+          <!--左侧图片部分-->
+          <div class="subject-dialog-bottom-left-max-big-box">
+            <div v-for="(item,index) in dialogData.imgList" class="for-max-box">
+              <p :style="'background-color:'+item.showColour+';'">{{item.classifyName}}</p>
+              <div>
+                <img v-for="(minItem) in item.classifyList" :src="minItem">
+              </div>
+            </div>
+          </div>
+          <!--右侧文字部分-->
+          <div class="subject-dialog-bottom-right-max-big-box">
+            <div v-for="(item,index) in dialogData.textList" class="for-max-box">
+              <p :style="'background-color:'+item.showColour+';'">{{item.classifyName}}</p>
+              <div>
+                <p v-for="(minItem) in item.classifyList">{{minItem}}</p>
+              </div>
+            </div>
           </div>
         </div>
       </div>
+      <!--<div id="subject-dialog-print-box" ref="canvasImg">-->
+        <!--<div class="subject-dialog-print-big-box">-->
+          <!--&lt;!&ndash;信息栏&ndash;&gt;-->
+          <!--<div class="subject-dialog-print-top-box">-->
+            <!--<div class="subject-dialog-print-top-left-box">-->
+              <!--<div class="subject-dialog-print-top-left-top-box">-->
+                <!--&lt;!&ndash;实验室名称&ndash;&gt;-->
+                <!--<div class="subject-dialog-name-box">-->
+                  <!--<div class="title-box-1">-->
+                    <!--<div class="title-box-2" :style="'background-color:'+dialogData.filedColor+';'">-->
+                      <!--<div class="title-box-3">-->
+                        <!--<p :style="'background-color:'+dialogData.filedColor+';'">-->
+                          <!--{{dialogData.levelName}}丨{{dialogData.typeName}}</p>-->
+                      <!--</div>-->
+                    <!--</div>-->
+                  <!--</div>-->
+                  <!--<p class="title-p">实验室安全信息牌</p>-->
+                <!--</div>-->
+                <!--&lt;!&ndash;实验室信息&ndash;&gt;-->
+                <!--<div class="subject-dialog-info-box">-->
+                  <!--<div class="subject-dialog-info-left-box">-->
+                    <!--<div class="subject-dialog-info-left-min-box">-->
+                      <!--<div>-->
+                        <!--<p class="text-p-left" style="margin-right:10px;">责</p>-->
+                        <!--<p class="text-p-center">任</p>-->
+                        <!--<p class="text-p-center">单</p>-->
+                        <!--<p class="text-p-right" style="margin-left:10px;">位</p>-->
+                      <!--</div>-->
+                      <!--<p class="subject-dialog-info-left-p">: {{dialogData.deptName}}</p>-->
+                    <!--</div>-->
+                    <!--<div class="subject-dialog-info-left-min-box">-->
+                      <!--<div>-->
+                        <!--<p class="text-p-left" style="margin-right:6px;">实</p>-->
+                        <!--<p class="text-p-center">验</p>-->
+                        <!--<p class="text-p-center">室</p>-->
+                        <!--<p class="text-p-center">名</p>-->
+                        <!--<p class="text-p-right" style="margin-left:6px;">称</p>-->
+                      <!--</div>-->
+                      <!--<p class="subject-dialog-info-left-p">: {{dialogData.subjectName}} - {{dialogData.room}}</p>-->
+                    <!--</div>-->
+                    <!--<div class="subject-dialog-info-left-min-box">-->
+                      <!--<div>-->
+                        <!--<p class="text-p-left" style="margin-right:2px;">实</p>-->
+                        <!--<p class="text-p-center">验</p>-->
+                        <!--<p class="text-p-center">室</p>-->
+                        <!--<p class="text-p-center">负</p>-->
+                        <!--<p class="text-p-center">责</p>-->
+                        <!--<p class="text-p-right" style="margin-left:2px;">人</p>-->
+                      <!--</div>-->
+                      <!--<p class="subject-dialog-info-left-p">: {{dialogData.adminName}}|{{dialogData.adminPhone}}</p>-->
+                    <!--</div>-->
+                  <!--</div>-->
+                  <!--<div class="subject-dialog-info-right-box">-->
+                    <!--<vue-qr style="display: block;height:110px;width:110px;"-->
+                            <!--:text="identification+'?'+dialogData.qrCodeUrl" :size="300">-->
+                    <!--</vue-qr>-->
+                  <!--</div>-->
+                <!--</div>-->
+              <!--</div>-->
+              <!--<div class="subject-dialog-print-top-left-bottom-box">-->
+                <!--&lt;!&ndash;1号右侧信息栏&ndash;&gt;-->
+                <!--<div class="subject-dialog-print-top-left-bottom-left-box" v-if="dialogData.dataOne">-->
+                  <!--<p class="data-title" :style="'background-color:'+dialogData.dataOne.showColour+';'">-->
+                    <!--{{dialogData.dataOne.classifyName}}</p>-->
+                  <!--<div class="data-for-text" v-if="dialogData.dataOne.classifyType == 1">-->
+                    <!--<p v-for="(item,index) in dialogData.dataOne.classifyList" :key="index">{{index+1}}、{{item}}</p>-->
+                  <!--</div>-->
+                  <!--<div class="data-for-img" v-if="dialogData.dataOne.classifyType == 2">-->
+                    <!--<img v-for="(item,index) in dialogData.dataOne.classifyList" :key="index" :src="item">-->
+                  <!--</div>-->
+                <!--</div>-->
+                <!--&lt;!&ndash;2号右侧信息栏&ndash;&gt;-->
+                <!--<div class="subject-dialog-print-top-left-bottom-right-box" v-if="dialogData.dataTwo">-->
+                  <!--<p class="data-title" :style="'background-color:'+dialogData.dataTwo.showColour+';'">-->
+                    <!--{{dialogData.dataTwo.classifyName}}</p>-->
+                  <!--<div class="data-for-text" v-if="dialogData.dataTwo.classifyType == 1">-->
+                    <!--<p v-for="(item,index) in dialogData.dataTwo.classifyList" :key="index">{{index+1}}、{{item}}</p>-->
+                  <!--</div>-->
+                  <!--<div class="data-for-img" v-if="dialogData.dataTwo.classifyType == 2">-->
+                    <!--<img v-for="(item,index) in dialogData.dataTwo.classifyList" :key="index" :src="item">-->
+                  <!--</div>-->
+                <!--</div>-->
+              <!--</div>-->
+            <!--</div>-->
+            <!--&lt;!&ndash;3号右侧信息栏&ndash;&gt;-->
+            <!--<div class="subject-dialog-print-top-right-box" v-if="dialogData.dataThree">-->
+              <!--<p class="data-title" :style="'background-color:'+dialogData.dataThree.showColour+';'">-->
+                <!--{{dialogData.dataThree.classifyName}}</p>-->
+              <!--<div class="data-for-text" v-if="dialogData.dataThree.classifyType == 1">-->
+                <!--<p v-for="(item,index) in dialogData.dataThree.classifyList" :key="index">{{index+1}}、{{item}}</p>-->
+              <!--</div>-->
+              <!--<div class="data-for-img" v-if="dialogData.dataThree.classifyType == 2">-->
+                <!--<img v-for="(item,index) in dialogData.dataThree.classifyList" :key="index" :src="item">-->
+              <!--</div>-->
+            <!--</div>-->
+          <!--</div>-->
+          <!--&lt;!&ndash;特殊类目&ndash;&gt;-->
+          <!--<div class="subject-dialog-print-button-box" v-if="dialogData.specialBrandInfo"-->
+               <!--:style="'background:'+dialogData.specialBrandInfo.showColour+';'">-->
+            <!--<span v-for="(item,index) in dialogData.specialBrandInfo.classifyList" :key="index">{{item}}</span>-->
+          <!--</div>-->
+        <!--</div>-->
+      <!--</div>-->
       <div class="subject-dialog-shade" v-if="dialogShadeType"></div>
     </el-dialog>
     <!--新增/编辑-->
@@ -305,7 +386,9 @@
     laboratorySubRelInfoGetHazardSubRelInfo,
     laboratorySubRelInfoUpdateBySort,
     laboratorySubRelInfoUpdateByControl,
-    laboratoryBoardExportBoardInfo, laboratoryLevelConfigGetLevelTitleList, laboratoryTypeConfigGetList
+    laboratoryBoardExportBoardInfo,
+    laboratoryAppBoardMiddleInfo,
+    laboratoryLevelConfigGetLevelTitleList, laboratoryTypeConfigGetList
   } from '@/api/integratedManagement/index'
   import indexRightPage from './indexRightPage/indexRightPage.vue'
   import addSubject from './addSubject.vue'
@@ -477,9 +560,28 @@
             })
             break
           case '5':
-            laboratoryBoardExportBoardInfo({
+            laboratoryAppBoardMiddleInfo({
               labId: row.subId
             }).then(response => {
+              response.data.imgList = [];
+              response.data.textList = [];
+              response.data.brandInfoSubjectVos.forEach((item,index)=>{
+                if(item.classifyType == 1){
+                  //文字
+                  if(!response.data.textList[1]){
+                    response.data.textList.push(item)
+                  }
+                }else if(item.classifyType == 2){
+                  //图片
+                  if(!response.data.imgList[2]){
+                    response.data.imgList.push(item)
+                  }
+                }
+              })
+              this.$set(this, 'dialogData', response.data)
+              this.$set(this, 'dialogType', true)
+              this.$set(this, 'dialogShadeType', false)
+              /****** 旧版本信息牌-开始 ******
               let textLength = 0
               let textIndex = null
               for (let i = 0; i < response.data.nonspecialBrandList.length; i++) {
@@ -523,6 +625,7 @@
                 this.$set(this, 'dialogType', true)
                 this.$set(this, 'dialogShadeType', false)
               })
+               ****** 旧版本信息牌-结束 ******/
             })
             break
           case '6':
@@ -1190,6 +1293,191 @@
           }
         }
       }
+      .subject-dialog-top-max-big-box{
+        width:1107px;
+        height:210px;
+        margin:46px 40px 0;
+        display: flex;
+        .subject-dialog-top-level-box{
+          width:120px;
+          height:210px;
+          border-top-left-radius:20px;
+          border-bottom-left-radius: 20px;
+          color:#fff;
+          p{
+            text-align: center;
+          }
+          p:nth-child(1){
+            margin-top:48px;
+            font-size:30px;
+            height:43px;
+            line-height: 43px;
+            overflow: hidden;
+          }
+          p:nth-child(2){
+            margin-top:15px;
+            font-size:24px;
+            height:35px;
+            line-height: 35px;
+            overflow: hidden;
+          }
+        }
+        .subject-dialog-top-text1-box{
+          flex:1;
+          border:2px solid #e0e0e0;
+          .subject-dialog-top-text-box:nth-child(1){
+            border:none;
+          }
+          .subject-dialog-top-text-box{
+            height:69px;
+            display: flex;
+            border-top:2px solid #e0e0e0;
+            div{
+              border-right:2px solid #e0e0e0;
+              display: flex;
+              padding:0 14px 0 10px;
+              width:158px;
+              line-height: 69px;
+              p{
+                flex:1;
+                font-size:22px;
+                color:#333;
+                /*text-align:justify;*/
+                /*text-align-last: justify;*/
+              }
+            }
+            .subject-dialog-top-text-p{
+              padding:0 10px;
+              flex:1;
+              display: flex;
+              align-items: center;
+              font-size:20px;
+              color:#333;
+              overflow: hidden;
+            }
+          }
+        }
+        .subject-dialog-top-text2-box{
+          width:363px;
+          border-top:2px solid #e0e0e0;
+          border-bottom:2px solid #e0e0e0;
+          .subject-dialog-top-text-box:nth-child(1){
+            border:none;
+          }
+          .subject-dialog-top-text-box{
+            height:69px;
+            border-top:2px solid #e0e0e0;
+            display: flex;
+            div{
+              border-right:2px solid #e0e0e0;
+              display: flex;
+              padding:0 28px 0 18px;
+              width:158px;
+              line-height: 69px;
+              p{
+                flex:1;
+                font-size:22px;
+                color:#333;
+                /*text-align:justify;*/
+                /*text-align-last: justify;*/
+              }
+            }
+            .subject-dialog-top-text-p{
+              padding:0 10px;
+              flex:1;
+              display: flex;
+              align-items: center;
+              font-size:20px;
+              color:#333;
+              overflow: hidden;
+            }
+          }
+        }
+        .subject-dialog-top-code-box{
+          width:199px;
+          height:210px;
+          border:2px solid #e0e0e0;
+        }
+      }
+      .subject-dialog-bottom-max-big-box{
+        display: flex;
+        width:1107px;
+        height:479px;
+        margin:20px 40px 0;
+        .subject-dialog-bottom-left-max-big-box{
+          flex:1;
+          .for-max-box:nth-child(1){
+            p{
+              border-top-left-radius: 20px;
+            }
+          }
+          .for-max-box:nth-child(3){
+            p{
+              border-bottom-left-radius: 20px;
+            }
+            div{
+              border-bottom:2px solid #e0e0e0;
+            }
+          }
+          .for-max-box{
+            display: flex;
+            p{
+              overflow: hidden;
+              color:#fff;
+              font-size:22px;
+              width:50px;
+              height:160px;
+              display: flex;
+              justify-content: center; /* 水平居中 */
+              align-items: center; /* 垂直居中 */
+              writing-mode: vertical-rl; /* 垂直排列文本 */
+              letter-spacing: 10px;
+              padding-top:10px;
+            }
+            div{
+              flex:1;
+              border-top:2px solid #e0e0e0;
+              padding:0 18px;
+              height:159px;
+              overflow: hidden;
+              img{
+                display: inline-block;
+                width:96px;
+                height:121px;
+                margin:20px 0 0 26px;
+              }
+            }
+          }
+        }
+        .subject-dialog-bottom-right-max-big-box{
+          width:260px;
+          height:479px;
+          border:2px solid #e0e0e0;
+          overflow: hidden;
+          .for-max-box{
+            display: flex;
+            flex-direction: column;
+            p{
+              padding-left:17px;
+              color:#fff;
+              font-size:22px;
+              height:50px;
+              line-height:50px;
+              overflow: hidden;
+            }
+            div{
+              overflow: hidden;
+              padding:10px 12px;
+              p{
+                font-size:18px;
+                height:30px;
+                line-height:30px;
+                color:#333;
+              }
+            }
+          }
+        }
+      }
     }
   }
 </style>

+ 9 - 3
src/views/systemManagement/organizationalStructure/index.vue

@@ -210,6 +210,7 @@
         },
         //列表数据
         dataList:[],
+        newDataList:[],
         //新增组织架构数据
         treeAddOpen:false,
         treeAddForm:{
@@ -278,7 +279,7 @@
 
     },
     mounted () {
-      this.getList();
+      this.getList('one');
     },
     methods: {
       addBlur(name,index){
@@ -375,12 +376,15 @@
         this.getList();
       },
       //获取数据列表
-      getList(){
+      getList(type){
         this.$set(this,'loading',true);
         let obj = JSON.parse(JSON.stringify(this.queryParams))
         getDeptList(obj).then(response => {
           this.$set(this,'loading',false);
           this.$set(this,'dataList',response.data);
+          if(type == 'one'){
+            this.$set(this,'newDataList',response.data);
+          }
           this.$set(this,'deptOptions',response.data);
           this.$set(this,'parentId',response.data[0].deptId);
         });
@@ -419,7 +423,7 @@
             deptType:obj.deptType,
           }
           this.$set(this,'treeForm',newObj);
-          let list = this.handleTreeList(row.deptId,this.dataList);
+          let list = this.handleTreeList(row.deptId,this.newDataList);
           this.$set(this,'deptOptionsOne',list);
           this.treeOpen = true;
         }else if(type == 3){
@@ -514,6 +518,8 @@
       },
       // 编辑时上级部门数组处理(剔除自身部门)
       handleTreeList(deptId,dataList){
+        console.log('deptId',deptId)
+        console.log('dataList',dataList)
         let list = JSON.parse(JSON.stringify(dataList))
         let self = this;
         for(let i=0;i<list.length;i++){