dedsudiyu 7 kuukautta sitten
vanhempi
commit
7a134b791e

+ 3 - 3
src/api/commonality/permission.js

@@ -638,11 +638,11 @@ export function systemUserEditUser(data) {
   })
 }
 //实验室危险源类型下拉列表
-export function laboratorySubRelInfoGetHazardTypeList(data) {
+export function laboratorySubRelInfoGetHazardTypeList(query) {
   return request({
     url: '/laboratory/subRelInfo/getHazardTypeList',
-    method: 'post',
-    data: data
+    method: 'get',
+    params: query
   })
 }
 // 根据当前登录人获取校级及以下 或 当前与院级下拉列表(如果是校级会获取当前校级和校级下院级下拉列表/如果是院级则获取当前院级下拉列表)

+ 63 - 3
src/api/safetyCheck/indexDemoOne.js

@@ -252,14 +252,30 @@ export function securityCheckPlanAdd(data) {
     data: data
   })
 }
-//检查计划-查询全校实验室数量
-export function laboratorySubRelInfoGetAllSubNum(data) {
+//检查计划-编辑
+export function securityCheckPlanUpdate(data) {
   return request({
-    url: '/laboratory/subRelInfo/getAllSubNum',
+    url: '/security/checkPlan/update',
     method: 'post',
     data: data
   })
 }
+//检查计划-详情
+export function securityCheckPlanFindCheckPlan(query) {
+  return request({
+    url: '/security/checkPlan/findCheckPlan',
+    method: 'get',
+    params: query
+  })
+}
+//检查计划-查询全校实验室数量
+export function laboratorySubRelInfoGetAllSubNum(query) {
+  return request({
+    url: '/laboratory/subRelInfo/getAllSubNum',
+    method: 'get',
+    params: query
+  })
+}
 //检查计划-实验室查询穿梭框
 export function laboratorySubRelInfoConditionSubjectInfo(data) {
   return request({
@@ -284,6 +300,33 @@ export function checkPlanHideHistoryPlanTitle(query) {
     params: query
   })
 }
+/**************************** 检查管理/自查管理 ****************************/
+//检查管理/自查管理-计划列表
+export function securityCheckPlanTitleList(data) {
+  return request({
+    url: '/security/checkPlan/titleList',
+    method: 'post',
+    data: data
+  })
+}
+//检查管理/自查管理-计划下实验室列表
+export function securityCheckManageList(data) {
+  return request({
+    url: '/security/checkManage/list',
+    method: 'post',
+    data: data
+  })
+}
+//检查管理/自查管理-计划下-实验室下-检查项列表
+export function securityCheckSetOptionList(data) {
+  return request({
+    url: '/security/checkSetOption/list',
+    method: 'post',
+    data: data
+  })
+}
+
+
 /**************************** 安全检查-公共部分 ****************************/
 // 根据检查项与实验室 查询触发次数 subId实验室ID hazardCheckId检查项ID
 export function securityCheckPhotoGetCheckNumBySub(query) {
@@ -309,3 +352,20 @@ export function securityCheckGroupFindGroupList(data) {
     data: data
   })
 }
+//督导组成员查询
+export function securityCheckGroupMemberGroupMemberList(data) {
+  return request({
+    url: '/security/checkGroupMember/groupMemberList',
+    method: 'post',
+    data: data
+  })
+}
+
+//计划内督导组成员查询
+export function securityMemberPlanMemberList(data) {
+  return request({
+    url: '/security/member/planMemberList',
+    method: 'post',
+    data: data
+  })
+}

+ 2 - 1
src/main.js

@@ -16,7 +16,7 @@ import './assets/icons'
 import './permission'
 import cal from '@/utils/calculation';
 import { getConfigKey,getDicts } from "@/api/commonality/noPermission";
-import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels,
+import { parseTime, timeToTimestamp, resetForm, addDateRange, selectDictLabel, selectDictLabels,
         handleTree, spaceJudgment, spaceJudgmentHTML, isNum, urlJudge, uploadUrl,
         judgmentNetworkReturnAddress,versionField, clickCopy } from "@/utils/ruoyi";
 import Pagination from "@/components/Pagination";
@@ -52,6 +52,7 @@ Vue.prototype.cal = cal
 Vue.prototype.getDicts = getDicts
 Vue.prototype.getConfigKey = getConfigKey
 Vue.prototype.parseTime = parseTime
+Vue.prototype.timeToTimestamp = timeToTimestamp
 Vue.prototype.resetForm = resetForm
 Vue.prototype.addDateRange = addDateRange
 Vue.prototype.selectDictLabel = selectDictLabel

+ 11 - 0
src/utils/ruoyi.js

@@ -101,6 +101,17 @@ export function parseTime(time, pattern) {
 	return time_str
 }
 
+// YYYY-MM-dd 转时间戳
+export function timeToTimestamp(time) {
+  let timestamp = Date.parse(new Date(time).toString());
+  // 在JavaScript中,new Date().getTime()得到的是13位的时间戳;
+  // 若要获取10位的时间戳需除以1000,获取13位的时间戳不需要除以1000;
+  timestamp = timestamp / 1000
+  // console.log(time + "的时间戳为:" + timestamp);
+  return timestamp;
+  // 2023-12-24 22:14:29的时间戳为:1703427269000
+}
+
 // 表单重置
 export function resetForm(refName) {
 	if (this.$refs[refName]) {

+ 62 - 42
src/views/safetyCheck/collegeInspect/selfInspectionProject/index.vue

@@ -5,14 +5,14 @@
       <div class="page-form-title-box">
         <el-form :model="queryParams" class="form-box" ref="queryForm"
                  :inline="true" style="width:100%;">
-          <div class="table-school-college-toggle-box">
-            <p :class="tableButtonCheckType==1?'p-check':''" @click="tableCheck(1)">全部</p>
-            <p :class="tableButtonCheckType==2?'p-check':''" @click="tableCheck(2)">未开始</p>
-            <p :class="tableButtonCheckType==3?'p-check':''" @click="tableCheck(3)">进行中</p>
-            <p :class="tableButtonCheckType==4?'p-check':''" @click="tableCheck(4)">已结束</p>
+          <div class="table-college-college-toggle-box">
+            <p :class="planStatus===''?'p-check':''" @click="tableCheck('')">全部</p>
+            <p :class="planStatus===0?'p-check':''" @click="tableCheck(0)">未开始</p>
+            <p :class="planStatus===1?'p-check':''" @click="tableCheck(1)">进行中</p>
+            <p :class="planStatus===2?'p-check':''" @click="tableCheck(2)">已结束</p>
           </div>
-          <el-form-item label="" prop="queryParamsData2">
-            <el-select v-model="queryParams.queryParamsData2" placeholder="检查类型" style="width: 150px">
+          <el-form-item label="" prop="checkTypeValue">
+            <el-select v-model="queryParams.checkTypeValue" placeholder="检查类型" style="width: 150px">
               <el-option
                 v-for="dict in optionList"
                 :key="dict.value"
@@ -21,18 +21,18 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item label="" prop="queryParamsData1">
+          <el-form-item label="" prop="searchValue">
             <el-input
               maxLength="30"
-              v-model="queryParams.queryParamsData1"
+              v-model="queryParams.searchValue"
               placeholder="计划标题"
               style="width: 200px"
             />
           </el-form-item>
-          <el-form-item label="" prop="queryParamsData1">
+          <el-form-item label="" prop="createName">
             <el-input
               maxLength="30"
-              v-model="queryParams.queryParamsData1"
+              v-model="queryParams.createName"
               placeholder="创建人"
               style="width: 150px"
             />
@@ -62,24 +62,31 @@
       <div class="page-content-box">
         <el-table class="table-box" v-loading="loading" border :data="dataList">
           <el-table-column label="序号" type="index" width="60"/>
-          <el-table-column label="计划标题" prop="name"  show-overflow-tooltip/>
-          <el-table-column label="检查类型" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="计划周期" prop="content" width="250" show-overflow-tooltip/>
-          <el-table-column label="检查进度" prop="content" width="175" show-overflow-tooltip>
+          <el-table-column label="计划标题" prop="planTitle"  show-overflow-tooltip/>
+          <el-table-column label="检查类型" prop="checkTypeName" width="100" show-overflow-tooltip/>
+          <el-table-column label="计划周期" prop="cycleStartTime" width="250" show-overflow-tooltip>
             <template slot-scope="scope">
-              <el-progress :percentage="100"></el-progress>
+              <span>{{ parseTime(scope.row.cycleStartTime,"{y}-{m}-{d}") }}</span>
+              至
+              <span>{{ parseTime(scope.row.cycleEndTime,"{y}-{m}-{d}") }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="整改进度" prop="content" width="175" show-overflow-tooltip>
+          <el-table-column label="检查进度" prop="checkProgress" width="175" show-overflow-tooltip>
             <template slot-scope="scope">
-              <el-progress :percentage="50"></el-progress>
+              <el-progress :percentage="scope.row.checkProgress"></el-progress>
             </template>
           </el-table-column>
+          <!--<el-table-column label="整改进度" prop="content" width="175" show-overflow-tooltip>-->
+          <!--<template slot-scope="scope">-->
+          <!--<el-progress :percentage="50"></el-progress>-->
+          <!--</template>-->
+          <!--</el-table-column>-->
           <el-table-column label="状态" prop="state" width="100" show-overflow-tooltip>
             <template slot-scope="scope">
+              {{scope.row.planStatus==0?'未开始':(scope.row.planStatus==1?'进行中':(scope.row.planStatus==2?'已结束':''))}}
             </template>
           </el-table-column>
-          <el-table-column label="创建人" prop="content" width="100" show-overflow-tooltip/>
+          <el-table-column label="创建人" prop="createName" width="100" show-overflow-tooltip/>
           <el-table-column label="创建时间" prop="createTime" width="180" show-overflow-tooltip>
             <template slot-scope="scope">
               <span>{{ parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}") }}</span>
@@ -90,10 +97,12 @@
               <div class="table-button-box">
                 <p class="table-button-null"></p>
                 <p class="table-button-p"
+                   v-if="scope.row.planStatus!=0"
                    @click="tableButton(2,scope.row)"
                    v-hasPermiRouter="['demo:demo:detail']"
                 >详情</p>
                 <p class="table-button-p"
+                   v-if="scope.row.planStatus==0"
                    @click="tableButton(3,scope.row)"
                    v-hasPermiRouter="['demo:demo:edit']"
                 >编辑</p>
@@ -115,41 +124,43 @@
         />
       </div>
     </div>
-    <!--<add-page :propsData="propsData" v-if="pageType === 2"></add-page>-->
+    <projectAddPage :propsData="propsData" v-if="pageType === 2"></projectAddPage>
   </div>
 </template>
 <script>
-  //import { getDicts } from "@/api/commonality/noPermission";
-  //import { systemUserSelect } from "@/api/commonality/permission";
-  //import { getInfo } from "@/api/basicsModules/index";
-  //import addPage from "./addPage.vue";
+  import {
+    securityCheckPlanList,
+  } from '@/api/safetyCheck/indexDemoOne'
+  import projectAddPage from "@/views/safetyCheck/components/projectAddPage.vue";
   export default {
     name: 'index',
-    //components: {
-    //  addPage
-    //},
+    components: {
+      projectAddPage
+    },
     data () {
       return {
         tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
         //页面状态
         pageType:1,
         //计划状态选项卡
-        tableButtonCheckType:1,
+        planStatus:'',
         //页面遮罩
         loading:false,
         //下拉列表数据
-        optionList:[{value:true,label:'启用'},{value:false,label:'停用'}],
+        optionList:[],
         //查询条件
         queryParams:{
           page:1,
           pageSize:20,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          checkCategory:2,
+          checkTypeValue:"",
+          searchValue :"",
+          createName :"",
         },
         //时间数据
         dateRange:[],
         //列表数据
-        dataList:[{}],
+        dataList:[],
         //数据数量
         total:0,
         //组件传参
@@ -157,16 +168,19 @@
       }
     },
     created () {
-
+      //检查类型字典
+      this.getDicts("check_type").then(response => {
+        this.$set(this,'optionList',response.data);
+      });
     },
     mounted () {
-      //this.getList();
+      this.getList();
     },
     methods: {
       //整改状态选项卡切换
       tableCheck(type){
-        if (this.tableButtonCheckType !== type){
-          this.$set(this,'tableButtonCheckType',type);
+        if (this.planStatus !== type){
+          this.$set(this,'planStatus',type);
           this.resetQuery();
         }
       },
@@ -181,8 +195,10 @@
         this.$set(this,'queryParams',{
           page:1,
           pageSize:20,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          checkCategory:2,
+          checkTypeValue:"",
+          searchValue :"",
+          createName :"",
         });
         this.getList();
       },
@@ -197,7 +213,8 @@
           obj.startTime = "";
           obj.endTime = "";
         }
-        getListFunction(obj).then(response => {
+        obj.planStatus = this.planStatus;
+        securityCheckPlanList(obj).then(response => {
           this.$set(this,'loading',false);
           this.$set(this,'dataList',response.data.records);
           this.$set(this,'total',response.data.total);
@@ -209,18 +226,21 @@
         if(type == 1){
           //新增
           this.$set(this,'pageType',2);
-          this.$set(this,'propsData',{});
+          this.$set(this,'propsData',{
+            rank:'college'
+          });
         }else if(type == 2){
           //详情
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
           obj.showType = true;
+          obj.rank = 'college';
           this.$set(this,'propsData',obj);
         }else if(type == 3){
           //编辑
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
-          obj.showType = false;
+          obj.rank = 'college';
           this.$set(this,'propsData',obj);
         }else if(type == 4){
           //删除
@@ -261,7 +281,7 @@
 <style scoped lang="scss">
   .selfInspectionProject{
     .selfInspectionProjectPage{
-      .table-school-college-toggle-box{
+      .table-college-college-toggle-box{
         overflow: hidden;
         display: inline-block;
         margin-right:10px;

+ 134 - 53
src/views/safetyCheck/components/checkItem.vue

@@ -3,7 +3,7 @@
   <div class="page-container checkItem">
     <div class="page-container checkItem" v-if="pageType == 1">
       <div class="page-top-title-box">
-        <p class="page-top-title-name-p">实验室名称</p>
+        <p class="page-top-title-name-p">{{propsData.subName}}</p>
         <p class="page-top-title-out-p" @click="backPage">返回</p>
       </div>
       <div class="content-box scrollbar-box">
@@ -11,23 +11,24 @@
           <el-form :model="queryParams" class="form-box" ref="queryForm"
                    :inline="true" style="width:100%;">
             <div class="table-school-college-toggle-box">
-              <p :class="tableButtonCheckType==1?'p-check':''" @click="tableCheck(1)">全部</p>
-              <p :class="tableButtonCheckType==2?'p-check':''" @click="tableCheck(2)">待检查</p>
-              <p :class="tableButtonCheckType==3?'p-check':''" @click="tableCheck(3)">检查中</p>
-              <p :class="tableButtonCheckType==4?'p-check':''" @click="tableCheck(4)">已检查</p>
+              <p :class="checkStatus==null?'p-check':''" @click="tableCheck(null)">全部</p>
+              <p :class="checkStatus==0?'p-check':''" @click="tableCheck(0)">待检查</p>
+              <p :class="checkStatus==2?'p-check':''" @click="tableCheck(2)">检查中</p>
+              <p :class="checkStatus==1?'p-check':''" @click="tableCheck(1)">已检查</p>
             </div>
-            <el-form-item label="" prop="queryParamsData2">
-              <el-select v-model="queryParams.queryParamsData2" placeholder="一级指标" style="width: 200px">
-                <el-option
-                  v-for="dict in optionList"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                />
-              </el-select>
+            <el-form-item label="" prop="hazardCheckPro">
+              <el-cascader
+                placeholder="请选择检查项目"
+                style="width:200px;"
+                v-model="queryParams.hazardCheckPro"
+                filterable
+                :show-all-levels="false"
+                :options="cascaderData"
+                :props="{ value: 'id', label: 'labelName',emitPath:false }"
+                ></el-cascader>
             </el-form-item>
-            <el-form-item label="" prop="queryParamsData2">
-              <el-select v-model="queryParams.queryParamsData2" placeholder="检查结果" style="width: 200px">
+            <el-form-item label="" prop="checkFlag">
+              <el-select v-model="queryParams.checkFlag" placeholder="检查结果" style="width: 200px">
                 <el-option
                   v-for="dict in optionList"
                   :key="dict.value"
@@ -36,10 +37,10 @@
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="" prop="queryParamsData1">
+            <el-form-item label="" prop="createName">
               <el-input
                 maxLength="30"
-                v-model="queryParams.queryParamsData1"
+                v-model="queryParams.createName"
                 placeholder="检查人"
                 style="width: 200px"
               />
@@ -57,15 +58,6 @@
                 end-placeholder="结束日期"
               ></el-date-picker>
             </el-form-item>
-            <!--与我相关-->
-            <div class="form-button-max-big-box-me">
-              <div class="form-button-big-box-me">
-                <div :class="queryParams.myRelated==1?'checkDiv-me':''" @click="topRightClickType">
-                  <p class="text-p-me">与我相关</p>
-                  <p class="el-icon-check icon-p-me" v-if="queryParams.myRelated==1"></p>
-                </div>
-              </div>
-            </div>
             <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
             <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
           </el-form>
@@ -73,18 +65,26 @@
         <div class="page-content-box" style="padding-top:0;">
           <el-table class="table-box" v-loading="loading" border :data="dataList">
             <el-table-column label="序号" type="index" width="60"/>
-            <el-table-column label="检查项目" prop="name"  show-overflow-tooltip/>
-            <el-table-column label="隐患描述" prop="content" width="400" show-overflow-tooltip/>
-            <el-table-column label="检查结果" prop="content" width="150" show-overflow-tooltip/>
-            <el-table-column label="检查人" prop="content" width="150" show-overflow-tooltip/>
+            <el-table-column label="检查项目" prop="name"  show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span>{{scope.row.hazardCheckCode}} {{scope.row.hazardCheckName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="隐患描述" prop="hazardDescribe" width="400" show-overflow-tooltip/>
+            <el-table-column label="检查结果" prop="checkFlag" width="150" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span>{{scope.row.checkStatus!=1?'-':(scope.row.checkFlag?'符合':'不符合')}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="检查人" prop="createName" width="150" show-overflow-tooltip/>
             <el-table-column label="检查时间" prop="createTime" width="180" show-overflow-tooltip>
               <template slot-scope="scope">
                 <span>{{ parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}") }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="状态" prop="state" width="150" show-overflow-tooltip>
+            <el-table-column label="状态" prop="checkStatus" width="150" show-overflow-tooltip>
               <template slot-scope="scope">
-
+                <span>{{scope.row.checkStatus == '0'?'未开始':(scope.row.checkStatus == '1'?'已完成':(scope.row.checkStatus == '2'?'检查中':''))}}</span>
               </template>
             </el-table-column>
             <el-table-column label="操作" width="150" show-overflow-tooltip v-if="tableButtonType">
@@ -129,7 +129,10 @@
 <script>
   //import { getDicts } from "@/api/commonality/noPermission";
   //import { systemUserSelect } from "@/api/commonality/permission";
-  //import { getInfo } from "@/api/basicsModules/index";
+  import {
+    securityCheckOptionList,
+    securityCheckSetOptionList,
+  } from '@/api/safetyCheck/indexDemoOne'
   import initiateInspect from "@/views/safetyCheck/components/initiateInspect/initiateInspect.vue";
   export default {
     name: 'checkItem',
@@ -143,25 +146,29 @@
       return{
         tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
         //页面状态
-        pageType:2,
+        pageType:1,
         //状态选项卡
-        tableButtonCheckType:1,
+        checkStatus:null,
         //页面遮罩
         loading:false,
         //下拉列表数据
-        optionList:[{value:true,label:'启用'},{value:false,label:'停用'}],
+        optionList:[
+          {value:1,label:'符合'},
+          {value:0,label:'不符合'},
+        ],
+        cascaderData:[],
         //查询条件
         queryParams:{
           page:1,
           pageSize:20,
-          myRelated:1,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          hazardCheckPro:null,
+          checkFlag :null,
+          createName :'',
         },
         //时间数据
         dateRange:[],
         //列表数据
-        dataList:[{}],
+        dataList:[],
         //数据数量
         total:0,
       }
@@ -170,21 +177,17 @@
 
     },
     mounted(){
-
+      this.securityCheckOptionList();
+      this.getList();
     },
     methods:{
       //选项卡切换
       tableCheck(type){
-        if (this.tableButtonCheckType !== type){
-          this.$set(this,'tableButtonCheckType',type);
+        if (this.checkStatus !== type){
+          this.$set(this,'checkStatus',type);
           this.resetQuery();
         }
       },
-      //与我相关按钮
-      topRightClickType(){
-        this.$set(this.queryParams,'myRelated',this.queryParams.myRelated==1?0:1);
-        this.handleQuery();
-      },
       // 返回按钮
       backPage(){
         this.$parent.tableButton(6);
@@ -200,9 +203,9 @@
         this.$set(this,'queryParams',{
           page:1,
           pageSize:20,
-          myRelated:1,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          hazardCheckPro:null,
+          checkFlag :null,
+          createName :'',
         });
         this.getList();
       },
@@ -217,12 +220,90 @@
           obj.startTime = "";
           obj.endTime = "";
         }
-        getListFunction(obj).then(response => {
+        obj.manageId = this.propsData.manageId
+        obj.checkStatus = this.checkStatus
+        securityCheckSetOptionList(obj).then(response => {
           this.$set(this,'loading',false);
           this.$set(this,'dataList',response.data.records);
           this.$set(this,'total',response.data.total);
         });
       },
+      securityCheckOptionList(){
+        securityCheckOptionList({}).then(response => {
+          let list = this.getCascaderData(response.data);
+          this.$set(this,'cascaderData',list);
+        });
+      },
+      getCascaderData(list){
+        let self = this;
+        for(let i=0;i<list.length;i++){
+          list[i].labelName = list[i].code? list[i].code +' '+ list[i].name:list[i].name
+          if(list[i].children){
+            if(list[i].children[0]){
+              list[i].children = self.getCascaderData(list[i].children);
+            }else{
+              if(list[i].level != 3){
+                list.splice(i,1);
+                i--
+              }else{
+                delete list[i].children
+              }
+            }
+          }else{
+            if(list[i].level != 3){
+              list.splice(i,1);
+              i--
+            }else{
+              delete list[i].children
+            }
+          }
+        }
+        for(let i=0;i<list.length;i++){
+          list[i].labelName = list[i].code? list[i].code +' '+ list[i].name:list[i].name
+          if(list[i].children){
+            if(list[i].children[0]){
+              list[i].children = self.getCascaderData(list[i].children);
+            }else{
+              if(list[i].level != 3){
+                list.splice(i,1);
+                i--
+              }else{
+                delete list[i].children
+              }
+            }
+          }else{
+            if(list[i].level != 3){
+              list.splice(i,1);
+              i--
+            }else{
+              delete list[i].children
+            }
+          }
+        }
+        for(let i=0;i<list.length;i++){
+          list[i].labelName = list[i].code? list[i].code +' '+ list[i].name:list[i].name
+          if(list[i].children){
+            if(list[i].children[0]){
+              list[i].children = self.getCascaderData(list[i].children);
+            }else{
+              if(list[i].level != 3){
+                list.splice(i,1);
+                i--
+              }else{
+                delete list[i].children
+              }
+            }
+          }else{
+            if(list[i].level != 3){
+              list.splice(i,1);
+              i--
+            }else{
+              delete list[i].children
+            }
+          }
+        }
+        return list
+      },
       //操作按钮
       tableButton(type,row){
         let self = this;

+ 324 - 34
src/views/safetyCheck/components/projectAddPage.vue

@@ -46,13 +46,13 @@
               </el-form-item>
               <div class="intersect-inspect-box" @click="intersectInspectCheck"
                    :class="dialogForm.crossCheck?'intersect-inspect-check-box':''">
-                <p>交叉检</p>
+                <p>交叉检</p>
                 <img v-if="dialogForm.crossCheck" src="@/assets/ZDimages/safetyCheck/icom_xjjc_jcjc@1x.png">
               </div>
             </div>
-            <div class="content-right-form-display">
+            <div class="content-right-form-display" v-if="!lookInfoType">
               <el-form-item label="检查范围" prop="checkRange">
-                <el-radio-group v-model="dialogForm.checkRange" :disabled="lookInfoType">
+                <el-radio-group v-model="dialogForm.checkRange" @change="checkRangeChange" :disabled="lookInfoType" style="min-width:90px;">
                   <el-radio :label="1" v-if="schoolCollegeType == 'school'">全校</el-radio>
                   <el-radio :label="3">实验室</el-radio>
                 </el-radio-group>
@@ -61,7 +61,17 @@
                    v-if="dialogForm.checkRange == 3">
                 <p @click="subCheckButton(1)">待检查实验室</p>
               </div>
-              <p class="sub-num-p" v-if="dialogForm.checkRange == 3">待检查实验室共{{dialogForm.subNum}}间</p>
+              <p class="sub-num-p" v-if="dialogForm.checkRange == 3">待检查实验室共{{dialogForm.subjectNum}}间</p>
+            </div>
+            <div class="content-right-form-display" v-if="lookInfoType">
+              <el-form-item label="检查范围" prop="checkRange">
+              </el-form-item>
+              <p class="sub-num-p" v-if="dialogForm.checkRange == 1" style="margin-right:20px;">全校检查</p>
+              <p class="sub-num-p" v-if="dialogForm.checkRange == 3" style="margin-right:20px;">实验室检查</p>
+              <p class="sub-num-p" style="margin-right:20px;">待检查实验室共{{dialogForm.subjectNum}}间</p>
+              <div class="sub-button-box" style="margin-left:0;" v-if="dialogForm.checkRange == 3">
+                <p @click="subCheckButton(1)">查看实验室</p>
+              </div>
             </div>
             <div class="content-right-form-display">
               <el-form-item label="计划周期" prop="dateRange">
@@ -102,19 +112,22 @@
                   :value="item.groupId">
                 </el-option>
               </el-select>
+              <span class="user-button-span" v-if="dialogForm.checkGroupId" @click="lookMemberList">成员列表</span>
             </el-form-item>
             <el-form-item label="检查要求:" prop="checkDemand">
               <el-input
+                v-if="!lookInfoType"
                 :disabled="lookInfoType"
                 type="textarea"
                 :autosize="{ minRows: 4, maxRows: 4}"
                 placeholder="请输入检查要求"
                 v-model="dialogForm.checkDemand"
-                maxlength="100"
+                maxlength="200"
                 resize="none"
                 show-word-limit
                 style="width:450px">
               </el-input>
+              <p v-if="lookInfoType" class="checkDemand-textarea-p">{{dialogForm.checkDemand?dialogForm.checkDemand:'无'}}</p>
             </el-form-item>
             <el-form-item label="材料附件:">
               <div class="avatar-uploader-button-box" v-if="dialogForm.uploadDtoList.length<10&&!lookInfoType">
@@ -157,7 +170,7 @@
             <p class="project-title-p" style="margin-top:20px;border-top:1px solid #e0e0e0;">检查设置</p>
             <div class="inspect-for-max-big-box" v-for="(item,index) in dialogForm.checkPlanSetDtoList" :key="index">
               <p class="for-index-p">{{index+1}}</p>
-              <img src="@/assets/ZDimages/safetyCheck/icon_jcsz_gb@1x.png" class="del-button" v-if="dialogForm.checkPlanSetDtoList[1]" @click="delInspect(index)">
+              <img src="@/assets/ZDimages/safetyCheck/icon_jcsz_gb@1x.png" class="del-button" v-if="dialogForm.checkPlanSetDtoList[1]&&!lookInfoType" @click="delInspect(index)">
               <el-form-item label="检查名称" :prop="'checkPlanSetDtoList.'+index+'.checkName'" :rules="rules.checkName" style="margin-top:20px;">
                 <el-input v-model="item.checkName" :disabled="lookInfoType" clearable placeholder="请输入检查名称" maxLength="20" style="width:450px;"></el-input>
               </el-form-item>
@@ -166,7 +179,9 @@
                   :disabled="lookInfoType"
                   style="width:450px;"
                   v-model="item.checkStartTime"
+                  value-format="yyyy-MM-dd"
                   type="date"
+                  :picker-options="pickerOptions"
                   placeholder="请选择检查开始日期">
                 </el-date-picker>
               </el-form-item>
@@ -176,7 +191,9 @@
                     :disabled="lookInfoType"
                     style="width:450px;"
                     v-model="item.rectifyDeadline"
+                    value-format="yyyy-MM-dd"
                     type="date"
+                    :picker-options="pickerOptions"
                     placeholder="请选整改期限">
                   </el-date-picker>
                 </el-form-item>
@@ -187,16 +204,16 @@
                   <p class="overdue-p">逾期未完成整改关闭实验室</p>
                 </div>
                 <div class="overdue-check-box" v-if="item.overdueUnrectify">
-                  <p class="overdue-p">逾期未完成整改关闭实验室</p>
+                  <p class="overdue-p" style="margin-left:20px;">逾期未完成整改关闭实验室</p>
                 </div>
               </div>
               <div class="content-right-form-display">
-                <el-form-item label="检查项目来源" prop="checkBasisIds">
-                  <el-select v-model="dialogForm.checkBasisIds"
+                <el-form-item label="检查项目来源"  :prop="'checkPlanSetDtoList.'+index+'.checkBasisIds'" :rules="rules.checkBasisIds">
+                  <el-select v-model="item.checkBasisIds"
                              multiple
-                             collapse-tags
+                             :collapse-tags="!lookInfoType"
                              :disabled="lookInfoType"
-                             @change="checkBasis"
+                             @change="(val)=>checkBasis(val,index)"
                              placeholder="请选择检查项目来源" style="width: 450px">
                     <el-option
                       v-for="dict in inspectSource"
@@ -214,6 +231,34 @@
         </el-form>
       </div>
     </div>
+
+    <el-dialog class="memberData-dialog-box"
+               :close-on-click-modal="false"
+               title="成员列表" :visible.sync="lookMemberType" v-if="lookMemberType"
+               width="600px" append-to-body>
+      <p class="memberData-dialog-title-p">{{dialogForm.checkGroupName}}</p>
+      <p class="memberData-dialog-user-p">督导组负责人:{{memberUserName}}</p>
+      <div class="memberData-dialog-content-box">
+        <el-table class="table-box" border :data="memberData">
+          <el-table-column label="序号" type="index" width="50"/>
+          <el-table-column label="姓名" prop="userName" show-overflow-tooltip/>
+          <el-table-column label="工号" prop="account" width="150" show-overflow-tooltip/>
+          <el-table-column label="所在部门" prop="deptName" width="200" show-overflow-tooltip/>
+        </el-table>
+        <pagination :page-sizes="[20, 30, 40, 50]"
+                    v-show="memberTotal>0"
+                    :total="memberTotal"
+                    :page.sync="memberQueryParams.page"
+                    :limit.sync="memberQueryParams.pageSize"
+                    @pagination="getUserList"
+        />
+      </div>
+      <div slot="footer" class="dialog-footer dialog-footer-box">
+        <p class="dialog-footer-button-null"></p>
+        <p class="dialog-footer-button-primary" @click="lookMemberList()">关闭</p>
+        <p class="dialog-footer-button-null"></p>
+      </div>
+    </el-dialog>
     <fullScreenFileLook ref="fullScreenFileLook"></fullScreenFileLook>
     <sub-dialog v-if="subCheckType" :subCheckData="subCheckData" :schoolCollegeType="schoolCollegeType"></sub-dialog>
   </div>
@@ -229,6 +274,11 @@
     checkPlanHideHistoryPlanTitle,
     securityCheckBasisGetList,
     securityCheckGroupFindGroupList,
+    securityCheckGroupMemberGroupMemberList,
+    securityMemberPlanMemberList,
+    securityCheckPlanAdd,
+    securityCheckPlanUpdate,
+    securityCheckPlanFindCheckPlan,
   } from '@/api/safetyCheck/indexDemoOne'
   //import { getDicts } from "@/api/commonality/noPermission";
   //import { systemUserSelect } from "@/api/commonality/permission";
@@ -271,8 +321,9 @@
           checkTypeValue:null,
           checkTypeName:'',
           crossCheck:false,
-          checkRange:1,
-          subNum:0,
+          checkRange:null,
+          subIds:[],
+          subjectNum:0,
           dateRange:[],
           checkGroupId:null,
           checkGroupName:'',
@@ -323,6 +374,15 @@
         //实验室选择
         subCheckType:false,
         subCheckData:[],
+        //督导组成员
+        lookMemberType:false,
+        memberData:[],
+        memberTotal:0,
+        memberQueryParams:{
+          page:1,
+          pageSize:20,
+        },
+        memberUserName:'',
       }
     },
     created(){
@@ -337,25 +397,32 @@
         this.getDicts("check_type").then(response => {
           this.$set(this,'inspectType',response.data);
         });
+        //检查依据-下拉列表
         this.securityCheckBasisGetList();
+        if(this.propsData.rank == 'school'){
+          //school学校
+          this.$set(this,'schoolCollegeType','school');
+        }else if (this.propsData.rank == 'college'){
+          //college学院
+          this.$set(this,'schoolCollegeType','college');
+        }
         if(this.propsData.showType){
           //查看
           this.$set(this,'lookInfoType',true);
+          //详情接口
+          this.securityCheckPlanFindCheckPlan();
         }else{
+          //查询历史标题列表
           this.checkPlanGetHistoryPlanTitles();
           this.$set(this,'lookInfoType',false);
-          if(this.propsData.rank == 'school'){
-            //school学校
-            this.$set(this,'schoolCollegeType','school');
-          }else if (this.propsData.rank == 'college'){
-            //college学院
-            this.$set(this,'schoolCollegeType','college');
-            this.laboratorySubRelInfoGetAllSubNum();
-          }
           if (this.propsData.planId){
             //编辑
+            //详情接口
+            this.securityCheckPlanFindCheckPlan();
           } else {
             //新增
+            //查询全校实验室数量
+            this.laboratorySubRelInfoGetAllSubNum();
           }
         }
       },
@@ -411,8 +478,8 @@
         let self = this;
         for(let i=0;i<self.supervisorOptions.length;i++){
           if(self.supervisorOptions[i].groupId == e){
-            self.$set(self.newData,"checkGroupId",self.supervisorOptions[i].groupId);
-            self.$set(self.newData,"checkGroupName",self.supervisorOptions[i].groupName);
+            self.$set(self.dialogForm,"checkGroupId",self.supervisorOptions[i].groupId);
+            self.$set(self.dialogForm,"checkGroupName",self.supervisorOptions[i].groupName);
           }
         }
       },
@@ -488,12 +555,103 @@
       },
       /** 提交按钮 */
       submitForm() {
+        let self = this;
         this.$refs["form"].validate(valid => {
           if (valid) {
-
+            //实验室检测
+            if(self.dialogForm.checkRange == 3 && this.dialogForm.subjectNum<1){
+              self.msgError('请选择实验室')
+              return
+            }
+            //计划周期检查
+            if(self.dialogForm.dateRange[0] == self.dialogForm.dateRange[1]){
+              self.msgError('计划周期的开始时间与结束时间不能相同')
+              return
+            }
+            //日期检测
+            for(let i=0;i<self.dialogForm.checkPlanSetDtoList.length;i++){
+              if(self.dialogForm.checkPlanSetDtoList[i].checkStartTime == self.dialogForm.checkPlanSetDtoList[i].rectifyDeadline){
+                self.msgError('第'+(i+1)+'个检查的检查开始日期与整改期限不能相同')
+                return
+              }
+              if(self.timeToTimestamp(self.dialogForm.checkPlanSetDtoList[i].checkStartTime)<self.timeToTimestamp(self.dialogForm.dateRange[0]) ||
+                self.timeToTimestamp(self.dialogForm.checkPlanSetDtoList[i].checkStartTime)>self.timeToTimestamp(self.dialogForm.dateRange[1])){
+                self.msgError('第'+(i+1)+'个检查的检查开始日期必须在计划周期内')
+                return
+              }
+              if(self.timeToTimestamp(self.dialogForm.checkPlanSetDtoList[i].rectifyDeadline)<self.timeToTimestamp(self.dialogForm.dateRange[0]) ||
+                self.timeToTimestamp(self.dialogForm.checkPlanSetDtoList[i].rectifyDeadline)>self.timeToTimestamp(self.dialogForm.dateRange[1])){
+                self.msgError('第'+(i+1)+'个检查的整改期限必须在计划周期内')
+                return
+              }
+            }
+            let obj = JSON.parse(JSON.stringify(this.dialogForm))
+            obj.checkPlanSetDtoList.forEach((item)=>{
+              item.checkBasisIds = item.checkBasisIds+'';
+            })
+            let newData = {
+              planTitle:obj.planTitle,
+              checkTypeName:obj.checkTypeName,
+              checkTypeValue:obj.checkTypeValue,
+              crossCheck:obj.crossCheck,
+              checkRange:obj.checkRange,
+              subIds:obj.checkRange == 1 ? '' : obj.subIds + '',
+              subjectNum:obj.subjectNum,
+              cycleStartTime:obj.dateRange[0],
+              cycleEndTime:obj.dateRange[1],
+              checkGroupId:obj.checkGroupId,
+              checkGroupName:obj.checkGroupName,
+              checkDemand:obj.checkDemand,
+              checkPlanSetDtoList:obj.checkPlanSetDtoList,
+              uploadDtoList:obj.uploadDtoList,
+            }
+            if(obj.planId){
+              newData.planId = obj.planId;
+              securityCheckPlanUpdate(newData).then(response => {
+                this.msgSuccess(response.message)
+                this.$parent.tableButton(6);
+              });
+            }else{
+              if(this.schoolCollegeType == 'school'){
+                newData.checkCategory = 1;
+              }else if(this.schoolCollegeType == 'college'){
+                newData.checkCategory = 2;
+              }
+              securityCheckPlanAdd(newData).then(response => {
+                this.msgSuccess(response.message)
+                this.$parent.tableButton(6);
+              });
+            }
           }
         })
       },
+      //计划详情
+      securityCheckPlanFindCheckPlan(){
+        securityCheckPlanFindCheckPlan({planId:this.propsData.planId}).then(response => {
+          response.data.checkPlanSetDtoList.forEach((item)=>{
+            item.checkBasisIds = item.checkBasisIds.split(',');
+          })
+          let obj = {
+            planId:response.data.planId,
+            planTitle:response.data.planTitle,
+            checkCategory:response.data.checkCategory,
+            checkTypeName:response.data.checkTypeName,
+            checkTypeValue:response.data.checkTypeValue,
+            crossCheck:response.data.crossCheck,
+            checkRange:response.data.checkRange,
+            subIds:response.data.checkRange == 1 ? [] : response.data.subIds.split(','),
+            subjectNum:response.data.subjectNum,
+            dateRange:[response.data.cycleStartTime,response.data.cycleEndTime],
+            checkGroupId:response.data.checkGroupId,
+            checkGroupName:response.data.checkGroupName,
+            checkDemand:response.data.checkDemand,
+            checkPlanSetDtoList:response.data.checkPlanSetDtoList,
+            uploadDtoList:response.data.uploadDtoList,
+          };
+          this.$set(this,'supervisorOptions',[{groupId:response.data.checkGroupId,groupName:response.data.checkGroupName,}]);
+          this.$set(this,'dialogForm',obj);
+        });
+      },
       /*==========上传相关==========*/
       handleAvatarSuccess(res) {
         if(this.dialogForm.uploadDtoList.length>9){
@@ -573,19 +731,38 @@
         let url = localStorage.getItem('fileBrowseEnvironment')+item.fileUrl;
         this.$refs['fullScreenFileLook'].initialize(item.fileName,url,type);
       },
+      //检查范围切换
+      checkRangeChange(val){
+        if(val == 1){
+          this.laboratorySubRelInfoGetAllSubNum();
+        }else if(val == 3){
+          this.$set(this.dialogForm,'subjectNum',this.dialogForm.subIds.length);
+        }
+      },
       //实验室选择相关
       subCheckButton(type,obj){
         if(type == 1){
           //新增-编辑
-          this.$set(this,'subCheckData',{});
-          this.$set(this,'subCheckType',true);
-        }else if(type == 2){
-          //查看
-          this.$set(this,'subCheckData',{});
+          if(this.lookInfoType){
+            //查看
+            this.$set(this,'subCheckData',{
+              subIds:this.dialogForm.subIds,
+              showType:true,
+            });
+          }else{
+            //编辑
+            this.$set(this,'subCheckData',{
+              subIds:this.dialogForm.subIds,
+              showType:false,
+            });
+          }
           this.$set(this,'subCheckType',true);
         }else if(type == 3){
           //提交
-
+          this.$set(this.dialogForm,'subIds',obj);
+          this.$set(this.dialogForm,'subjectNum',obj.length);
+          this.$set(this,'subCheckType',false);
+          this.$set(this,'subCheckData',{});
         }else if(type == 4){
           //关闭
           this.$set(this,'subCheckType',false);
@@ -595,7 +772,7 @@
       //查询全校实验室数量
       laboratorySubRelInfoGetAllSubNum(){
         laboratorySubRelInfoGetAllSubNum({}).then(response => {
-          this.$set(this.dialogForm,'subNum',response.data);
+          this.$set(this.dialogForm,'subjectNum',response.data.subCount);
         });
       },
       //查询历史标题列表
@@ -634,9 +811,74 @@
         });
       },
       //选中检查依据
-      checkBasis(index,item){
-        console.log('checkBasis',index)
-        console.log('checkBasis',item)
+      checkBasis(val,index){
+        if(val[val.length-1] == '0'){
+          this.$set(this.dialogForm.checkPlanSetDtoList[index],'checkBasisIds',['0']);
+        }else if (val[4]){
+          val.splice(0,1)
+        }else{
+          let type = false;
+          val.forEach((item)=>{
+            if(item == 0){
+              type = true;
+            }
+          })
+          if(type){
+            this.$set(this.dialogForm.checkPlanSetDtoList[index],'checkBasisIds',[val[val.length-1]]);
+          }
+        }
+      },
+      //查看成员列表
+      lookMemberList(){
+        if(this.lookMemberType){
+          this.$set(this,'lookMemberType',false);
+        }else{
+          this.$set(this,'memberQueryParams',{
+            page:1,
+            pageSize:20,
+          });
+          this.$set(this,'lookMemberType',true);
+          if (this.dialogForm.planId){
+            this.securityMemberPlanMemberList();
+          }else{
+            this.securityCheckGroupMemberGroupMemberList();
+          }
+        }
+      },
+      getUserList(){
+        if (this.dialogForm.planId){
+          this.securityMemberPlanMemberList();
+        }else{
+          this.securityCheckGroupMemberGroupMemberList();
+        }
+      },
+      //督导组成员查询
+      securityCheckGroupMemberGroupMemberList(){
+        let obj = JSON.parse(JSON.stringify(this.memberQueryParams))
+        obj.checkGroupId = this.dialogForm.checkGroupId
+        securityCheckGroupMemberGroupMemberList(obj).then(response => {
+          response.data.records.forEach((item)=>{
+            if(item.isAdmin){
+              this.$set(this,'memberUserName',item.userName)
+            }
+          });
+          this.$set(this,'memberData',response.data.records);
+          this.$set(this,'memberTotal',response.data.total);
+        });
+      },
+      //计划内督导组成员查询
+      securityMemberPlanMemberList(){
+        let obj = JSON.parse(JSON.stringify(this.memberQueryParams))
+        obj.planId = this.dialogForm.planId
+        securityMemberPlanMemberList(obj).then(response => {
+          response.data.records.forEach((item)=>{
+            if(item.isAdmin){
+              this.$set(this,'memberUserName',item.userName)
+            }
+          });
+          this.$set(this,'memberData',response.data.records);
+          this.$set(this,'memberTotal',response.data.total);
+        });
       },
     },
   }
@@ -903,6 +1145,31 @@
 
         }
       }
+      .user-button-span{
+        display: inline-block;
+        color:#0183FA;
+        width:90px;
+        border:1px solid #0183FA;
+        border-radius:4px;
+        line-height:38px;
+        text-align: center;
+        margin-left:20px;
+        cursor: pointer;
+      }
+      .user-button-span:hover{
+        color:#fff;
+        background-color:#0183FA;
+      }
+      .checkDemand-textarea-p{
+        line-height:20px;
+        color:#333;
+        background-color: #F5F5F5;
+        border:1px solid #E0E0E0;
+        border-radius:4px;
+        width:450px;
+        padding:10px 15px;
+        font-size:14px;
+      }
       ::v-deep .el-input.is-disabled .el-input__inner{
         background-color: #f5f5f5;
         border: 1px solid #E0E0E0;
@@ -936,3 +1203,26 @@
     }
   }
 </style>
+<style lang="scss">
+  .memberData-dialog-box{
+    .el-dialog__body{
+      padding:20px 20px;
+      .memberData-dialog-title-p{
+        line-height:20px;
+        font-size:14px;
+        font-weight:700;
+      }
+      .memberData-dialog-user-p{
+        line-height:20px;
+        font-size:14px;
+        margin:10px 0 20px;
+      }
+      .memberData-dialog-content-box{
+        height:441px;
+        display: flex;
+        flex-direction:column;
+        overflow: hidden;
+      }
+    }
+  }
+</style>

+ 53 - 39
src/views/safetyCheck/components/subDialog.vue

@@ -56,9 +56,9 @@
               <el-select v-model="subQueryParamsLeft.hazardType" clearable placeholder="危险源标签" style="width: 144px">
                 <el-option
                   v-for="item in hazardTypeList"
-                  :key="item.levelId"
-                  :label="item.levelName"
-                  :value="item.levelId">
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -79,7 +79,7 @@
             <el-table-column label="实验室" align="center" prop="subName" show-overflow-tooltip>
               <template slot-scope="scope">{{scope.row.roomNum?scope.row.subName+'-'+scope.row.roomNum:scope.row.subName}}</template>
             </el-table-column>
-            <el-table-column label="分级分类" align="center" prop="deptName" show-overflow-tooltip width="140">
+            <el-table-column label="分级分类" align="center" prop="deptName" show-overflow-tooltip width="150">
               <template slot-scope="scope">
                 <span>{{scope.row.classTypeNames}}</span>
                 <span>-</span>
@@ -101,7 +101,7 @@
         <p class="el-icon-arrow-right" @click="subArrowButton(2)">到右边</p>
       </div>
       <div class="right-max-box">
-        <div class="dept-table-title-box">
+        <div class="dept-table-title-box" v-if="!lookInfoType">
           <p>已选实验室</p>
           <p v-if="!lookInfoType">{{subNumRight}}/{{subTotalRight}}</p>
           <p v-if="lookInfoType">{{subTotalRight}}</p>
@@ -152,9 +152,9 @@
               <el-select v-model="subQueryParamsRight.hazardType" clearable placeholder="危险源标签" :style="!lookInfoType?'width:144px':'width:140px'">
                 <el-option
                   v-for="item in hazardTypeList"
-                  :key="item.levelId"
-                  :label="item.levelName"
-                  :value="item.levelId">
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -175,14 +175,23 @@
             <el-table-column label="实验室" align="center" prop="subName" show-overflow-tooltip>
               <template slot-scope="scope">{{scope.row.roomNum?scope.row.subName+'-'+scope.row.roomNum:scope.row.subName}}</template>
             </el-table-column>
-            <el-table-column label="分级分类" align="center" prop="classTypeNames" show-overflow-tooltip width="140">
+            <el-table-column label="分级分类" align="center" prop="classTypeNames" show-overflow-tooltip width="150" v-if="!lookInfoType">
               <template slot-scope="scope">
                 <span>{{scope.row.classTypeNames}}</span>
                 <span>-</span>
                 <span :style="'color:'+scope.row.classLevelColor+';'">{{scope.row.classLevelName}}</span>
               </template>
             </el-table-column>
-            <el-table-column label="学院" align="center" prop="deptName" show-overflow-tooltip width="150"/>
+            <el-table-column label="学院" align="center" prop="deptName" show-overflow-tooltip width="150" v-if="!lookInfoType"/>
+            <el-table-column label="学院" align="center" prop="deptName" show-overflow-tooltip width="250" v-if="lookInfoType"/>
+            <el-table-column label="楼栋" align="center" prop="buildName" show-overflow-tooltip width="200" v-if="lookInfoType"/>
+            <el-table-column label="分类" align="center" prop="classTypeNames" show-overflow-tooltip width="150" v-if="lookInfoType"/>
+            <el-table-column label="分级" align="center" prop="classLevelName" show-overflow-tooltip width="150" v-if="lookInfoType">
+              <template slot-scope="scope">
+                <span :style="'color:'+scope.row.classLevelColor+';'">{{scope.row.classLevelName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="负责人" align="center" prop="deptName" show-overflow-tooltip width="220" v-if="lookInfoType"/>
           </el-table>
           <pagination layout="total, prev, pager, next, jumper"
                       v-show="subTotalRight>0"
@@ -195,8 +204,9 @@
     </div>
     <div slot="footer" class="dialog-footer dialog-footer-box" style="display: flex">
       <p class="dialog-footer-button-null"></p>
-      <p class="dialog-footer-button-info" @click="addDialogOff">取消</p>
-      <p class="dialog-footer-button-primary" v-if="!lookInfoType" @click="addUserButton">确定</p>
+      <p class="dialog-footer-button-info" @click="addDialogOff" v-if="!lookInfoType">取消</p>
+      <p class="dialog-footer-button-primary" @click="addUserButton" v-if="!lookInfoType">确定</p>
+      <p class="dialog-footer-button-primary" @click="addDialogOff" v-if="lookInfoType">确认</p>
       <p class="dialog-footer-button-null"></p>
     </div>
   </el-dialog>
@@ -260,14 +270,14 @@
 
     },
     mounted(){
+      this.$set(this,'dialogTableSubDataList',this.subCheckData.subIds);
+      this.$set(this,'lookInfoType',this.subCheckData.showType);
       //下拉框查询
       this.getDeptDropList();
       this.systemBuildingGetOptList();
       this.laboratoryTypeConfigGetList();
       this.laboratoryLevelConfigGetLevelTitleList();
       this.laboratorySubRelInfoGetHazardTypeList();
-      //选择实验室
-      this.$set(this,'dialogTableSubDataList',JSON.parse(JSON.stringify(this.subCheckData)));
       this.subResetQueryLeft();
       this.subResetQueryRight();
     },
@@ -279,23 +289,26 @@
       //确定按钮
       addUserButton(){
         let self = this;
-        //实验室选择页面确定
-        let obj = {
-          list : [],
-          ids : [],
+        if(!this.dialogTableSubDataList[0]){
+          this.msgError('请勾选实验室')
+          return
         }
+        //实验室选择页面确定
+        // let list = [];
+        let ids = [];
         for(let o=0;o<self.dialogTableSubDataList.length;o++){
-          obj.ids.push(self.dialogTableSubDataList[o].subId)
-          let obj = {
-            subId:self.dialogTableSubDataList[o].subId,
-            subjectName:self.dialogTableSubDataList[o].subjectName,
-            typeId:self.dialogTableSubDataList[o].typeId,
-            levelId:self.dialogTableSubDataList[o].levelId,
-            collegeName:self.dialogTableSubDataList[o].collegeName,
-          };
-          obj.list.push(obj)
+          ids.push(self.dialogTableSubDataList[o])
+          // let obj = {
+          //   subId:self.dialogTableSubDataList[o].subId,
+          //   subjectName:self.dialogTableSubDataList[o].subjectName,
+          //   typeId:self.dialogTableSubDataList[o].typeId,
+          //   levelId:self.dialogTableSubDataList[o].levelId,
+          //   collegeName:self.dialogTableSubDataList[o].collegeName,
+          // };
+          // list.push(obj)
         }
-        this.subCheckButton(3,obj);
+        // console.log('list',list)
+        this.$parent.subCheckButton(3,ids);
       },
       //查询
       subHandleQueryLeft(){
@@ -321,7 +334,7 @@
         let leftObj = JSON.parse(JSON.stringify(this.subQueryParamsLeft));
         leftObj.selectedSubIds = [];
         for(let i=0;i<self.dialogTableSubDataList.length;i++){
-          leftObj.selectedSubIds.push(self.dialogTableSubDataList[i].subId);
+          leftObj.selectedSubIds.push(self.dialogTableSubDataList[i]);
         }
         laboratorySubRelInfoConditionSubjectInfo(leftObj).then(response => {
           this.subTotalLeft = response.data.total;
@@ -352,7 +365,7 @@
         let rightObj = JSON.parse(JSON.stringify(this.subQueryParamsRight));
         rightObj.subIds = [];
         for(let i=0;i<self.dialogTableSubDataList.length;i++){
-          rightObj.subIds.push(self.dialogTableSubDataList[i].subId);
+          rightObj.subIds.push(self.dialogTableSubDataList[i]);
         }
         laboratorySubRelInfoConditionSubjectInfo(rightObj).then(response => {
           this.subTotalRight = response.data.total;
@@ -367,7 +380,7 @@
             let subIdsRight = JSON.parse(JSON.stringify(this.$refs.rightSubTable.selection))
             for(let i=0;i<subIdsRight.length;i++){
               for(let s=0;s<list.length;s++){
-                if(subIdsRight[i].subId == list[s].subId){
+                if(subIdsRight[i].subId == list[s]){
                   list.splice(s,1);
                   s--
                 }
@@ -385,14 +398,15 @@
             let list = JSON.parse(JSON.stringify(this.dialogTableSubDataList));
             let subIdsLeft = JSON.parse(JSON.stringify(this.$refs.leftSubTable.selection))
             for(let i=0;i<subIdsLeft.length;i++){
-              let obj = {
-                subId:subIdsLeft[i].subId,
-                subjectName:subIdsLeft[i].subName,
-                typeId:subIdsLeft[i].typeId,
-                levelId:subIdsLeft[i].levelId,
-                collegeName:subIdsLeft[i].deptName,
-              }
-              list.push(obj);
+              // let obj = {
+              //   subId:subIdsLeft[i].subId,
+              //   subjectName:subIdsLeft[i].subName,
+              //   typeId:subIdsLeft[i].typeId,
+              //   levelId:subIdsLeft[i].levelId,
+              //   collegeName:subIdsLeft[i].deptName,
+              // }
+              // list.push(obj);
+              list.push(subIdsLeft[i].subId);
             }
             this.$set(this,'dialogTableSubDataList',list);
             this.$refs.leftSubTable.clearSelection();

+ 1 - 1
src/views/safetyCheck/inspectProject/inspectProjectAccording/addPage.vue

@@ -8,7 +8,7 @@
     <div class="addPage-min safe-book-el-dialog">
       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="名称" prop="basisName" style="width:498px;">
-          <el-input v-model="form.basisName" placeholder="请输入检查依据模板名称" maxLength="20" style="width:500px;"/>
+          <el-input v-model="form.basisName" placeholder="请输入检查依据模板名称" maxLength="10" style="width:500px;"/>
         </el-form-item>
         <el-form-item label="检查项目" prop="hazardCheckPros" style="width:498px;">
           <div class="form-add-box">

+ 1 - 1
src/views/safetyCheck/inspectSupervisorGroup/addPage.vue

@@ -21,7 +21,7 @@
           ></el-switch>
         </el-form-item>
         <el-form-item label="督导组名称" prop="groupName">
-          <el-input :disabled="propsData.showType" v-model="newData.groupName" placeholder="请输入督导组名称" maxLength="20" style="width:693px;"></el-input>
+          <el-input :disabled="propsData.showType" v-model="newData.groupName" placeholder="请输入督导组名称" maxLength="15" style="width:693px;"></el-input>
         </el-form-item>
         <el-form-item label="上级部门" prop="deptId">
           <el-select :disabled="propsData.showType" v-model="newData.deptId"

+ 1 - 1
src/views/safetyCheck/safetyHazard/snapshotHazard/index.vue

@@ -218,7 +218,7 @@
 
     },
     mounted () {
-      //this.getList();
+      this.getList();
       this.getDeptDropList();
       this.systemBuildingGetOptList();
       this.laboratoryClassLevelGetList();

+ 165 - 129
src/views/safetyCheck/schoolInspect/inspectManage/index.vue

@@ -8,43 +8,51 @@
         <div>
           <el-form :model="leftQueryParams" class="form-box" ref="leftQueryForm"
                    :inline="true" style="width:100%;">
-            <el-form-item label="" prop="leftQueryParamsData1">
+            <el-form-item label="" prop="searchValue">
               <el-input
                 maxLength="30"
-                v-model="leftQueryParams.leftQueryParamsData1"
+                v-model="leftQueryParams.searchValue"
                 placeholder="计划标题"
                 clearable
                 @clear="leftClear"
-                style="width: 390px"
+                style="width: 365px"
               />
             </el-form-item>
             <p class="page-save-common-style-button" style="width:80px;display: inline-block" @click="leftHandleQuery">查询</p>
           </el-form>
         </div>
         <!--计划栏列表-->
-        <div class="left-list-box">
+        <div class="left-max-list-box scrollbar-box">
           <div class="left-list-for-max-big-box" v-for="(bigItem,bigIndex) in leftListData" :key="bigIndex">
             <div class="left-list-title-box" @click="leftBigCheckButton(bigIndex)">
               <p :class="bigIndex == leftBigCheckType?'el-icon-caret-bottom':'el-icon-caret-right'"></p>
-              <p>{{bigItem.leftData1}}</p>
-              <p>{{bigItem.leftData2}}</p>
+              <p>{{bigItem.planTitle}}</p>
+              <p>{{bigItem.checkTypeName}}</p>
             </div>
             <div class="left-list-box">
               <div class="left-list-for-box" v-if="bigIndex == leftBigCheckType"
                    @click="leftCheckButton(index)"
                    :class="index == leftCheckType ? 'check-left-list-for-box':''"
-                   v-for="(item,index) in bigItem.leftDataList" :key="index">
+                   v-for="(item,index) in bigItem.checkPlanSetVoList" :key="index">
                 <div class="left-list-text-box">
-                  <p>{{item.leftDataListData1}}</p>
-                  <p>检查开始时间:{{parseTime(item.leftDataListData2,"{y}-{m}-{d}")}}</p>
+                  <p>{{item.checkName}}</p>
+                  <p>检查开始时间:{{parseTime(item.checkStartTime,"{y}-{m}-{d}")}}</p>
                 </div>
                 <div class="left-list-progress-box">
-                  <el-progress :stroke-width="14" :percentage="item.leftDataListData4"></el-progress>
+                  <el-progress :stroke-width="14" :percentage="item.checkSetProgress"></el-progress>
                 </div>
               </div>
             </div>
           </div>
+          <p v-if="!leftListData[0]" class="left-list-for-null-p">暂无数据</p>
         </div>
+        <pagination :page-sizes="[20, 30, 40, 50]"
+                    v-show="titleTotal>0"
+                    :total="titleTotal"
+                    :page.sync="leftQueryParams.page"
+                    :limit.sync="leftQueryParams.pageSize"
+                    @pagination="getTitleList"
+        />
       </div>
       <div class="page-content-center-box"></div>
       <!--右侧数据表格-->
@@ -53,68 +61,59 @@
           <el-form :model="queryParams" class="form-box" ref="queryForm"
                    :inline="true" style="width:100%;">
             <div class="table-school-college-toggle-box">
-              <p :class="tableButtonCheckType==1?'p-check':''" @click="tableCheck(1)">全部</p>
-              <p :class="tableButtonCheckType==2?'p-check':''" @click="tableCheck(2)">待检查</p>
-              <p :class="tableButtonCheckType==3?'p-check':''" @click="tableCheck(3)">检查中</p>
-              <p :class="tableButtonCheckType==4?'p-check':''" @click="tableCheck(4)">已检查</p>
+              <p :class="tableButtonCheckType===''?'p-check':''" @click="tableCheck('')">全部</p>
+              <p :class="tableButtonCheckType===0?'p-check':''" @click="tableCheck(0)">待检查</p>
+              <p :class="tableButtonCheckType===1?'p-check':''" @click="tableCheck(1)">检查中</p>
+              <p :class="tableButtonCheckType===2?'p-check':''" @click="tableCheck(2)">已检查</p>
             </div>
-            <el-form-item label="" prop="queryParamsData2">
-              <el-select v-model="queryParams.queryParamsData2" placeholder="学院单位" style="width:157px;">
+            <el-form-item label="" prop="deptId">
+              <el-select v-model="queryParams.deptId" placeholder="学院单位" style="width:157px;">
                 <el-option
-                  v-for="dict in optionList"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
+                  v-for="dict in deptOption"
+                  :key="dict.deptId"
+                  :label="dict.deptName"
+                  :value="dict.deptId"
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="" prop="queryParamsData2">
-              <el-select v-model="queryParams.queryParamsData2" placeholder="楼栋" style="width:150px;">
+            <el-form-item label="" prop="buildId">
+              <el-select v-model="queryParams.buildId" placeholder="楼栋" style="width:150px;">
                 <el-option
-                  v-for="dict in optionList"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
+                  v-for="dict in buildOption"
+                  :key="dict.id"
+                  :label="dict.name"
+                  :value="dict.id"
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="" prop="queryParamsData2" v-if="advancedType">
-              <el-select v-model="queryParams.queryParamsData2" placeholder="安全分类" style="width:175px;">
+            <el-form-item label="" prop="typeId" v-if="advancedType">
+              <el-select v-model="queryParams.typeId" placeholder="安全分类" style="width:175px;">
                 <el-option
-                  v-for="dict in optionList"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
+                  v-for="dict in classOption"
+                  :key="dict.typeId"
+                  :label="dict.typeName"
+                  :value="dict.typeId"
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="" prop="queryParamsData2" v-if="advancedType">
-              <el-select v-model="queryParams.queryParamsData2" placeholder="安全分级" style="width:175px;">
+            <el-form-item label="" prop="levelId" v-if="advancedType">
+              <el-select v-model="queryParams.levelId" placeholder="安全分级" style="width:175px;">
                 <el-option
-                  v-for="dict in optionList"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
+                  v-for="dict in levelOption"
+                  :key="dict.levelId"
+                  :label="dict.levelName"
+                  :value="dict.levelId"
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="" prop="queryParamsData1" v-if="advancedType">
+            <el-form-item label="" prop="searchValue" v-if="advancedType">
               <el-input
                 maxLength="30"
-                v-model="queryParams.queryParamsData1"
+                v-model="queryParams.searchValue"
                 placeholder="实验室/房间号"
                 style="width:170px;"
               />
             </el-form-item>
-            <!--与我相关-->
-            <div class="form-button-max-big-box-me">
-              <div class="form-button-big-box-me">
-                <div :class="queryParams.myRelated==1?'checkDiv-me':''" @click="topRightClickType">
-                  <p class="text-p-me">与我相关</p>
-                  <p class="el-icon-check icon-p-me" v-if="queryParams.myRelated==1"></p>
-                </div>
-              </div>
-            </div>
             <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
             <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
             <p class="page-save-common-style-button" style="display: inline-block;margin-left:10px;" @click="searchToggle">{{advancedType?'普通搜索':'高级搜索'}}</p>
@@ -123,13 +122,13 @@
         <div class="page-conten-box page-content-right-bottom-box">
           <el-table class="table-box" v-loading="loading" border :data="dataList">
             <el-table-column label="序号" type="index" width="60"/>
-            <el-table-column label="实验室" prop="name"  show-overflow-tooltip/>
-            <el-table-column label="检查状态" prop="state" width="150" show-overflow-tooltip>
+            <el-table-column label="实验室" prop="subName"  show-overflow-tooltip/>
+            <el-table-column label="检查状态" prop="manageStatus" width="150" show-overflow-tooltip>
               <template slot-scope="scope">
-
+                <span>{{scope.row.manageStatus==0?'待检查':(scope.row.manageStatus==1?'检查中':(scope.row.manageStatus==2?'已检查':''))}}</span>
               </template>
             </el-table-column>
-            <el-table-column label="检查人" prop="content" width="230" show-overflow-tooltip/>
+            <el-table-column label="检查人" prop="checkUserNames" width="230" show-overflow-tooltip/>
             <el-table-column label="操作" width="180" show-overflow-tooltip v-if="tableButtonType">
               <template slot-scope="scope">
                 <div class="table-button-box">
@@ -139,6 +138,7 @@
                      v-hasPermiRouter="['demo:demo:detail']"
                   >检查项</p>
                   <p class="table-button-p"
+                     v-if='scope.row.manageStatus!=2'
                      @click="tableButton(3,scope.row)"
                      v-hasPermiRouter="['demo:demo:edit']"
                   >开始检查</p>
@@ -161,9 +161,16 @@
   </div>
 </template>
 <script>
-  //import { getDicts } from "@/api/commonality/noPermission";
-  //import { systemUserSelect } from "@/api/commonality/permission";
-  //import { getInfo } from "@/api/basicsModules/index";
+  import {
+    getDeptDropList,
+    systemBuildingGetOptList,
+    laboratoryClassLevelGetList,
+    laboratoryClassTypeGetList,
+  } from '@/api/commonality/permission'
+  import {
+    securityCheckPlanTitleList,
+    securityCheckManageList,
+  } from '@/api/safetyCheck/indexDemoOne'
   import checkItem from "@/views/safetyCheck/components/checkItem.vue";
   export default {
     name: 'index',
@@ -174,96 +181,72 @@
       return {
         tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
         //页面状态
-        pageType:2,
+        pageType:1,
         //复查状态选项卡
-        tableButtonCheckType:1,
+        tableButtonCheckType:'',
         //页面遮罩
         loading:false,
-        //下拉列表数据
-        optionList:[{value:true,label:'启用'},{value:false,label:'停用'}],
+        //学院
+        deptOption:[],
+        //楼栋
+        buildOption:[],
+        //分级
+        levelOption:[],
+        //分类
+        classOption:[],
         //计划查询条件
         leftQueryParams:{
-          leftQueryParamsData1:'',
+          checkCategory:1,
+          searchValue:'',
+          page:1,
+          pageSize:20,
         },
+        titleTotal:0,
         //查询条件
         queryParams:{
           page:1,
           pageSize:20,
           myRelated:1,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          deptId:null,
+          buildId:null,
+          typeId :null,
+          levelId :null,
+          searchValue:'',
         },
         //时间数据
         dateRange:[],
         //搜索模式切换
         advancedType:false,
         //列表数据
-        dataList:[{}],
+        dataList:[],
         //数据数量
         total:0,
         //组件传参
         propsData:{},
         leftBigCheckType:"0",
         leftCheckType:"0",
-        leftListData:[
-          {
-            leftData1:'计划名称计划名称计划名称计划名称',
-            leftData2:'检查类型',
-            leftData3:'1',
-            leftDataList:[
-              {
-                leftDataListData1:'第一次检查',
-                leftDataListData2:'2024-08-06T11:06:57',
-                leftDataListData3:'11',
-                leftDataListData4:50,
-              },
-              {
-                leftDataListData1:'第二次检查',
-                leftDataListData2:'2024-08-06T11:06:57',
-                leftDataListData3:'12',
-                leftDataListData4:60,
-              },
-            ],
-          },
-          {
-            leftData1:'计划名称计划名称计划名称计划名称',
-            leftData2:'检查类型',
-            leftData3:'2',
-            leftDataList:[
-              {
-                leftDataListData1:'第一次检查',
-                leftDataListData2:'2024-08-06T11:06:57',
-                leftDataListData3:'21',
-                leftDataListData4:50,
-              },
-              {
-                leftDataListData1:'第二次检查',
-                leftDataListData2:'2024-08-06T11:06:57',
-                leftDataListData3:'22',
-                leftDataListData4:60,
-              },
-            ],
-          }
-        ],
+        leftListData:[],
       }
     },
     created () {
 
     },
     mounted () {
-      //this.getList();
+      this.getTitleList();
+      this.getDeptDropList();
+      this.systemBuildingGetOptList();
+      this.laboratoryClassLevelGetList();
+      this.laboratoryClassTypeGetList();
     },
     methods: {
       //左侧清除查询按钮
       leftClear(){
-        this.$set(this.leftQueryParams,'leftQueryParamsData1','');
-        this.$set(this,'leftBigCheckType',0);
-        this.$set(this,'leftCheckType',0);
+        this.$set(this.leftQueryParams,'searchValue','');
+        this.getTitleList();
       },
       //左侧查询按钮
       leftHandleQuery(){
-        this.$set(this,'leftBigCheckType',0);
-        this.$set(this,'leftCheckType',0);
+        this.getTitleList();
       },
       //左侧计划切换
       leftBigCheckButton(index){
@@ -291,11 +274,6 @@
       searchToggle(){
         this.$set(this,'advancedType',!this.advancedType);
       },
-      //与我相关按钮
-      topRightClickType(){
-        this.$set(this.queryParams,'myRelated',this.queryParams.myRelated==1?0:1);
-        this.handleQuery();
-      },
       //查询按钮
       handleQuery(){
         this.$set(this.queryParams,'page',1);
@@ -307,24 +285,46 @@
         this.$set(this,'queryParams',{
           page:1,
           pageSize:20,
-          myRelated:1,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          deptId:null,
+          buildId:null,
+          typeId :null,
+          levelId :null,
+          searchValue:'',
         });
         this.getList();
       },
+      //获取计划数据列表
+      getTitleList(){
+        securityCheckPlanTitleList(this.leftQueryParams).then(response => {
+          this.$set(this,'leftListData',response.data.records);
+          this.$set(this,'titleTotal',response.data.total);
+          this.$set(this,'leftBigCheckType',0);
+          this.$set(this,'leftCheckType',0);
+          this.resetQuery();
+        });
+      },
       //获取数据列表
       getList(){
+        if(!this.leftListData[0]){
+          this.$set(this,'dataList',[]);
+          this.$set(this,'total',0);
+          return
+        }
         this.$set(this,'loading',true);
-        let obj = JSON.parse(JSON.stringify(this.queryParams))
-        if(this.dateRange[0]){
-          obj.startTime = this.dateRange[0]+'T00:00:00'
-          obj.endTime = this.dateRange[1]+'T23:59:59'
-        }else{
-          obj.startTime = "";
-          obj.endTime = "";
+        let obj = {
+          planSetId:this.leftListData[this.leftBigCheckType].checkPlanSetVoList[this.leftCheckType].planSetId,
+          page:this.queryParams.page,
+          pageSize:this.queryParams.pageSize,
+          manageStatus:this.tableButtonCheckType,
+          deptId:this.queryParams.deptId,
+          buildId:this.queryParams.buildId,
+        }
+        if(this.advancedType){
+          obj.searchValue = this.queryParams.searchValue;
+          obj.typeId = this.queryParams.typeId;
+          obj.levelId = this.queryParams.levelId;
         }
-        getListFunction(obj).then(response => {
+        securityCheckManageList(obj).then(response => {
           this.$set(this,'loading',false);
           this.$set(this,'dataList',response.data.records);
           this.$set(this,'total',response.data.total);
@@ -338,7 +338,7 @@
           this.$set(this,'pageType',2);
           this.$set(this,'propsData',{});
         }else if(type == 2){
-          //详情
+          //检查项列表
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
           obj.showType = true;
@@ -382,6 +382,31 @@
           this.getList();
         }
       },
+      /*********************************** 学院/楼栋/分类/分级 ***********************************/
+      //学院下拉列表
+      getDeptDropList(){
+        getDeptDropList({level: 2, deptType: 1 }).then(response => {
+          this.$set(this,'deptOption',response.data);
+        });
+      },
+      //楼栋下拉列表
+      systemBuildingGetOptList(){
+        systemBuildingGetOptList({}).then(response => {
+          this.$set(this,'buildOption',response.data);
+        });
+      },
+      //分级下拉列表
+      laboratoryClassLevelGetList(){
+        laboratoryClassLevelGetList({}).then(response => {
+          this.$set(this,'levelOption',response.data);
+        });
+      },
+      //分类下拉列表
+      laboratoryClassTypeGetList(){
+        laboratoryClassTypeGetList({}).then(response => {
+          this.$set(this,'classOption',response.data);
+        });
+      },
     },
   }
 </script>
@@ -395,8 +420,14 @@
 
       .page-content-left-box{
         width: 480px;
-        margin:20px;
-        .left-list-box{
+        display: flex;
+        flex-direction: column;
+        overflow: hidden;
+        margin:20px 0 20px 20px;
+        padding-right:10px;
+        .left-max-list-box{
+          flex:1;
+          padding-right:10px;
           .left-list-for-max-big-box{
             .left-list-title-box{
               cursor: pointer;
@@ -457,6 +488,11 @@
               }
             }
           }
+          .left-list-for-null-p{
+            text-align: center;
+            line-height:400px;
+            color:#999;
+          }
         }
       }
       .page-content-center-box{