dedsudiyu 7 月之前
父節點
當前提交
b30af1fb7e

+ 37 - 5
src/api/safetyCheck/indexDemoOne.js

@@ -260,6 +260,22 @@ export function securityCheckPlanUpdate(data) {
     data: data
   })
 }
+//检查计划-删除
+export function securityCheckPlanDelete(data) {
+  return request({
+    url: '/security/checkPlan/delete',
+    method: 'post',
+    data: data
+  })
+}
+//检查计划-检查批量完成
+export function securityCheckSetOptionFinishCheck(query) {
+  return request({
+    url: '/security/checkSetOption/finishCheck',
+    method: 'get',
+    params: query
+  })
+}
 //检查计划-详情
 export function securityCheckPlanFindCheckPlan(query) {
   return request({
@@ -334,17 +350,17 @@ export function securityCheckPlanCheckInfo(data) {
   })
 }
 //检查管理/自查管理-查询计划内实验室下未检查的检查项
-export function securityCheckSetOptionUnCheckList(data) {
+export function securityCheckSetOptionUnCheckList(query) {
   return request({
     url: '/security/checkSetOption/unCheckList',
-    method: 'post',
-    data: data
+    method: 'get',
+    params: query
   })
 }
 //检查管理/自查管理-开始检查第一次提交
-export function securityRecordCheckCommit(data) {
+export function securityCheckSetOptionCheckCommit(data) {
   return request({
-    url: '/security/record/checkCommit',
+    url: '/security/checkSetOption/checkCommit',
     method: 'post',
     data: data
   })
@@ -357,6 +373,22 @@ export function securityCheckDangerGetDangerId(query) {
     params: query
   })
 }
+//检查管理/自查管理-草稿查询
+export function securityDraftFindBySetOptionId(query) {
+  return request({
+    url: '/security/draft/findBySetOptionId',
+    method: 'get',
+    params: query
+  })
+}
+//检查管理/自查管理-批量下载
+export function securityCheckPlanBatchDownloadFile(data) {
+  return request({
+    url: '/security/checkPlan/batchDownloadFile',
+    method: 'post',
+    data: data
+  })
+}
 /**************************** 安全隐患 ****************************/
 // 检查隐患/自查隐患-列表
 export function securityCheckDangerList (data) {

+ 281 - 125
src/views/safetyCheck/collegeInspect/hiddenDangersReview/index.vue

@@ -6,72 +6,71 @@
         <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="reviewStatus==null?'p-check':''" @click="tableCheck(null)">全部</p>
+            <p :class="reviewStatus==0?'p-check':''" @click="tableCheck(0)">待复查</p>
+            <p :class="reviewStatus==1?'p-check':''" @click="tableCheck(1)">已复查</p>
           </div>
-          <el-form-item label="" prop="queryParamsData2">
-            <el-select v-model="queryParams.queryParamsData2" placeholder="检查类型" style="width:170px;">
-              <el-option
-                v-for="dict in optionList"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
+          <el-form-item label="" prop="planTitle">
+            <el-input
+              maxLength="30"
+              v-model="queryParams.planTitle"
+              placeholder="计划标题"
+              style="width: 150px"
+            />
           </el-form-item>
-          <el-form-item label="" prop="queryParamsData2">
-            <el-select v-model="queryParams.queryParamsData2" placeholder="楼栋" style="width:190px;">
-              <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
+              style="width: 150px"
+              placeholder="检查指标"
+              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="hazardCheckName">
+            <el-input
+              maxLength="30"
+              v-model="queryParams.hazardCheckName"
+              placeholder="模糊搜索检查指标项"
+              style="width: 170px"
+            />
           </el-form-item>
-          <el-form-item label="" prop="queryParamsData2" v-if="advancedType">
-            <el-select v-model="queryParams.queryParamsData2" placeholder="安全分类" style="width:170px;">
+          <el-form-item label="" prop="deptId">
+            <el-select v-model="queryParams.deptId" placeholder="学院单位" style="width: 180px">
               <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" v-if="advancedType">
-            <el-select v-model="queryParams.queryParamsData2" placeholder="安全分级" style="width:170px;">
+          <el-form-item label="" prop="levelId">
+            <el-select v-model="queryParams.levelId" placeholder="安全分级" style="width: 180px">
               <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;"
+              style="width: 200px"
             />
           </el-form-item>
-          <el-form-item label="" prop="queryParamsData1" v-if="advancedType">
+          <el-form-item label="" prop="rectifyName" v-if="advancedType">
             <el-input
               maxLength="30"
-              v-model="queryParams.queryParamsData1"
-              placeholder="计划标题"
-              style="width:170px;"
-            />
-          </el-form-item>
-          <el-form-item label="" prop="queryParamsData1" v-if="advancedType">
-            <el-input
-              maxLength="30"
-              v-model="queryParams.queryParamsData1"
-              placeholder="检查人"
-              style="width:170px;"
+              v-model="queryParams.rectifyName"
+              placeholder="整改人"
+              style="width: 200px"
             />
           </el-form-item>
           <el-form-item label="" prop="state" v-if="advancedType">
@@ -79,7 +78,7 @@
               :clearable="false"
               v-model="dateRange"
               size="small"
-              style="width: 240px"
+              style="width: 280px"
               value-format="yyyy-MM-dd"
               type="daterange"
               range-separator="-"
@@ -95,24 +94,34 @@
       <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="100" show-overflow-tooltip/>
-          <el-table-column label="检查项目" prop="content" width="260" show-overflow-tooltip/>
-          <el-table-column label="实验室" prop="content" width="165" show-overflow-tooltip/>
-          <el-table-column label="检查人" prop="content" width="80" show-overflow-tooltip/>
-          <el-table-column label="复查人" prop="content" width="80" show-overflow-tooltip/>
-          <el-table-column label="复查状态" prop="state" width="80" 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="checkName" width="100" show-overflow-tooltip/>
+          <el-table-column label="检查项目" prop="hazardCheckCode" width="260" show-overflow-tooltip>
             <template slot-scope="scope">
+              <span>{{scope.row.hazardCheckCode}} {{scope.row.hazardCheckName}}</span>
             </template>
           </el-table-column>
-          <el-table-column label="复查结果" prop="state" width="80" show-overflow-tooltip>
+          <el-table-column label="实验室" prop="subName" width="165" show-overflow-tooltip>
             <template slot-scope="scope">
+              <span>{{scope.row.subName}} {{scope.row.roomNum}}</span>
             </template>
           </el-table-column>
-          <el-table-column label="复查时间" prop="createTime" width="160" show-overflow-tooltip>
+          <el-table-column label="检查人" prop="createName" width="80" show-overflow-tooltip/>
+          <el-table-column label="复查人" prop="reviewName" width="80" show-overflow-tooltip/>
+          <el-table-column label="复查状态" prop="reviewStatus" width="80" show-overflow-tooltip>
             <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}") }}</span>
+              <span>{{scope.row.reviewStatus == 1?'已复查':(scope.row.reviewStatus == 0?'未复查':'')}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="复查结果" prop="examineResult" width="80" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{scope.row.examineResult == 1?'复查完毕':(scope.row.examineResult == 0?'退回整改':'')}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="复查时间" prop="reviewTime" width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.reviewTime,"{y}-{m}-{d} {h}:{i}") }}</span>
             </template>
           </el-table-column>
           <el-table-column label="操作" width="130" show-overflow-tooltip >
@@ -120,16 +129,16 @@
               <div class="table-button-box">
                 <p class="table-button-null"></p>
                 <p class="table-button-p"
+                   v-if="scope.row.reviewButtion"
                    @click="tableButton(1,scope.row)"
-
                 >复查</p>
                 <p class="table-button-p"
+                   v-if="!scope.row.reviewButtion"
                    @click="tableButton(2,scope.row)"
-
                 >详情</p>
                 <p class="table-button-p"
-                   @click="tableButton(4,scope.row)"
-
+                   v-if="scope.row.isAdmin"
+                   @click="tableButton(3,scope.row)"
                 >转移</p>
                 <p class="table-button-null"></p>
               </div>
@@ -149,24 +158,33 @@
                :visible.sync="dialogType" v-if="dialogType" @close="dialogOff()"
                :close-on-click-modal="false" :close-on-press-escape="false">
       <div class="hiddenDangersReview-dialog-max-box">
-        <p class="hiddenDangersReview-dialog-name">督导组名称</p>
+        <p class="hiddenDangersReview-dialog-name">{{dialogGroupName}}</p>
         <div class="hiddenDangersReview-dialog-box">
           <img src="@/assets/ZDimages/safetyCheck/icon_xyxc_cy.png">
           <p>成员列表</p>
         </div>
-        <el-table class="table-box table-null-img-20" border :data="dialogData.dialogList1">
+        <el-table class="table-box table-null-img-20" border :data="dialogDataList">
           <el-table-column label="" align="center" width="150">
             <template scope="scope">
-              <div class="check-img-box" @click="tableColumnCheck(scope.row.dialogDataId)">
-                <img src="@/assets/ZDimages/basicsModules/icon_fcrzy_wxz@1x.png" v-if="scope.row.dialogDataId != tableColumnType">
-                <img src="@/assets/ZDimages/basicsModules/icon_fcrzy_xz@1x.png" v-if="scope.row.dialogDataId == tableColumnType">
+              <div class="check-img-box" v-if="dialogUserId != scope.row.userId"
+                   @click="tableColumnCheck(scope.row)">
+                <img src="@/assets/ZDimages/basicsModules/icon_fcrzy_wxz@1x.png" v-if="scope.row.userId != reviewUserid">
+                <img src="@/assets/ZDimages/basicsModules/icon_fcrzy_xz@1x.png" v-if="scope.row.userId == reviewUserid">
               </div>
+              <p v-if="dialogUserId == scope.row.userId" style="text-align: center!important;">负责人</p>
             </template>
           </el-table-column>
-          <el-table-column label="姓名" prop="name" show-overflow-tooltip/>
-          <el-table-column label="工号" prop="name" width="130" show-overflow-tooltip/>
-          <el-table-column label="所在部门" prop="content" width="188" show-overflow-tooltip/>
+          <el-table-column label="姓名" prop="userName" show-overflow-tooltip/>
+          <el-table-column label="工号" prop="account" width="130" show-overflow-tooltip/>
+          <el-table-column label="所在部门" prop="deptName" width="188" show-overflow-tooltip/>
         </el-table>
+        <pagination :page-sizes="[20, 30, 40, 50]"
+                    v-show="dialogTotal>0"
+                    :total="dialogTotal"
+                    :page.sync="dialogQueryParams.page"
+                    :limit.sync="dialogQueryParams.pageSize"
+                    @pagination="securityCheckDangerGetMemberList"
+        />
       </div>
       <div slot="footer" class="dialog-footer dialog-footer-box">
         <p class="dialog-footer-button-null"></p>
@@ -179,6 +197,17 @@
   </div>
 </template>
 <script>
+  import {
+    getDeptDropList,
+    laboratoryClassLevelGetList,
+  } from '@/api/commonality/permission'
+  import {
+    securityCheckOptionList,
+    securityCheckDangerReviewList,
+    securityCheckDangerGetMemberInfo,
+    securityCheckDangerGetMemberList,
+    securityCheckDangerUpdateByReview,
+  } from "@/api/safetyCheck/indexDemoOne";
   import initiateInspect from "@/views/safetyCheck/components/initiateInspect/initiateInspect.vue";
   export default {
     name: 'index',
@@ -191,63 +220,65 @@
         //页面状态
         pageType:1,
         //复查状态选项卡
-        tableButtonCheckType:1,
+        reviewStatus:null,
         //页面遮罩
         loading:false,
-        //下拉列表数据
-        optionList:[{value:true,label:'启用'},{value:false,label:'停用'}],
+        //学院列表
+        deptOption:[],
+        //分级下拉列表
+        levelOption:[],
+        //检查项下拉列表
+        cascaderData:[],
         //查询条件
         queryParams:{
           page:1,
           pageSize:20,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          planTitle:"",
+          hazardCheckPro :null,
+          hazardCheckName:"",
+          deptId :null,
+          levelId :null,
+          searchValue:"",
+          rectifyName:"",
         },
         //时间数据
         dateRange:[],
         //搜索模式切换
         advancedType:false,
         //列表数据
-        dataList:[{}],
+        dataList:[],
         //数据数量
         total:0,
         //组件传参
         initiateInspectData:{},
         //复查转移
-        dialogData:{
-          dialogData1:'督导组名称',
-          dialogList1:[
-            {
-              dialogDataId:1,
-              dialogDataType:false,
-              dialogDataName:'名称',
-              dialogDataNum:'工号',
-              dialogDataDept:'部门',
-            },
-            {
-              dialogDataId:2,
-              dialogDataType:false,
-              dialogDataName:'名称',
-              dialogDataNum:'工号',
-              dialogDataDept:'部门',
-            },
-          ],
+        dialogGroupName:'',
+        dialogUserId:'',
+        dialogQueryParams:{
+          page:1,
+          pageSize:20,
         },
+        dialogDataList:[],
+        dialogTotal:0,
         dialogType:false,
-        tableColumnType:null
+        dialogDangerId:'',
+        reviewUserid:null,
+        reviewName:null
       }
     },
     created () {
-
+      this.getDeptDropList();
+      this.laboratoryClassLevelGetList();
+      this.securityCheckOptionList();
     },
     mounted () {
-      //this.getList();
+      this.getList();
     },
     methods: {
       //复查状态选项卡切换
       tableCheck(type){
-        if (this.tableButtonCheckType !== type){
-          this.$set(this,'tableButtonCheckType',type);
+        if (this.reviewStatus !== type){
+          this.$set(this,'reviewStatus',type);
           this.resetQuery();
         }
       },
@@ -266,8 +297,13 @@
         this.$set(this,'queryParams',{
           page:1,
           pageSize:20,
-          queryParamsData1:"",
-          queryParamsData2 :null,
+          planTitle:"",
+          hazardCheckPro :null,
+          hazardCheckName:"",
+          deptId :null,
+          levelId :null,
+          searchValue:"",
+          rectifyName:"",
         });
         this.getList();
       },
@@ -275,18 +311,29 @@
       getList(){
         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 data = {
+          planTitle:obj.planTitle,
+          hazardCheckPro:obj.hazardCheckPro,
+          hazardCheckName:obj.hazardCheckName,
+          deptId:obj.deptId,
+          levelId:obj.levelId,
+        };
+        if(this.advancedType){
+          data.searchValue = obj.searchValue;
+          data.rectifyName = obj.searchValue;
+          if(this.dateRange[0]){
+            data.startTime = this.dateRange[0]+'T00:00:00'
+            data.endTime = this.dateRange[1]+'T23:59:59'
+          }else{
+            data.startTime = "";
+            data.endTime = "";
+          }
         }
-        // getListFunction(obj).then(response => {
-        //   this.$set(this,'loading',false);
-        //   this.$set(this,'dataList',response.data.records);
-        //   this.$set(this,'total',response.data.total);
-        // });
+        securityCheckDangerReviewList(data).then(response => {
+          this.$set(this,'loading',false);
+          this.$set(this,'dataList',response.data.records);
+          this.$set(this,'total',response.data.total);
+        });
       },
       //操作按钮
       tableButton(type,row){
@@ -296,26 +343,52 @@
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
           obj.showType = false;
-          obj.orderTitle = '隐患整改';
-          obj.orderType = '3';
+          obj.orderTitle = '复查验证';
+          obj.orderType = '5';
           this.$set(this,'initiateInspectData',obj);
         }else if(type == 2){
           //详情
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
           obj.showType = true;
-          obj.orderTitle = '整改详情';
-          obj.orderType = '4';
+          obj.orderTitle = '复查详情';
+          obj.orderType = '6';
           this.$set(this,'initiateInspectData',obj);
-        }else if(type == 4){
+        }else if(type == 3){
           //转移
-          this.dialogOpen();
+          this.$set(this.dialogQueryParams,'page',1);
+          this.$set(this,'dialogDangerId',row.dangerId);
+          this.securityCheckDangerGetMemberInfo(row.dangerId);
         }else if(type == 6){
           //返回并刷新
           this.$set(this,'pageType',1);
           this.getList();
         }
       },
+      //督导组信息查询
+      securityCheckDangerGetMemberInfo(dangerId){
+        securityCheckDangerGetMemberInfo({dangerId:dangerId}).then(response => {
+          this.$set(this,'dialogGroupName',response.data.groupName);
+          this.$set(this,'dialogUserId',response.data.userId);
+          this.$nextTick(()=>{
+            this.securityCheckDangerGetMemberList(dangerId);
+          })
+        });
+      },
+      //督导组人员查询
+      securityCheckDangerGetMemberList(dangerId){
+        let obj = JSON.parse(JSON.stringify(this.dialogQueryParams))
+        obj.dangerId = dangerId;
+        securityCheckDangerGetMemberList(obj).then(response => {
+          this.$set(this,'dialogDataList',response.data.records);
+          this.$set(this,'dialogTotal',response.data.total);
+          this.$nextTick(()=>{
+            if(!this.dialogType){
+              this.dialogOpen();
+            }
+          })
+        });
+      },
       /******** 转移弹窗 ********/
       //弹层关闭
       dialogOff(){
@@ -323,21 +396,104 @@
       },
       //弹层开启
       dialogOpen(){
-        this.$set(this,'tableColumnType',null);
+        this.$set(this,'reviewUserid',null);
         this.$set(this,'dialogType',true);
       },
       //弹层确定
       dialogSubmit(){
-        if(!this.tableColumnType){
+        if(!this.reviewUserid){
           this.msgError('请选择复查转移人')
           return
         }
-        this.$set(this,'dialogType',false);
+        let obj = {
+          dangerId:this.dialogDangerId,
+          reviewUserid:this.reviewUserid,
+          reviewName:this.reviewName,
+        };
+        securityCheckDangerUpdateByReview(obj).then(response => {
+          this.msgSuccess(response.message)
+          this.$set(this,'dialogType',false);
+        });
       },
       tableColumnCheck(row) {
-        if(this.tableColumnType != row){
-          this.$set(this,'tableColumnType',row);
+        if(this.reviewUserid != row.userId){
+          this.$set(this,'reviewUserid',row.userId);
+          this.$set(this,'reviewName',row.userName);
+        }
+      },
+      //学院列表
+      getDeptDropList() {
+        getDeptDropList({ deptName: '', level: 2, deptType: 1 }).then(response => {
+          this.$set(this, 'deptOption', response.data)
+        })
+      },
+      //分级下拉列表
+      laboratoryClassLevelGetList(){
+        laboratoryClassLevelGetList({}).then(response => {
+          this.$set(this,'levelOption',response.data);
+        });
+      },
+      //检查项列表
+      securityCheckOptionList() {
+        securityCheckOptionList({}).then(response => {
+          let list = this.getCascaderData(JSON.parse(JSON.stringify(response.data)),3)
+          this.$nextTick(()=>{
+            this.$set(this, 'cascaderData', list)
+          })
+        })
+      },
+      //检查项格式处理
+      getCascaderData(list,type) {
+        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].level == type){
+            delete list[i].children
+          }else if (list[i].children) {
+            if (list[i].children[0]) {
+              list[i].children = self.getCascaderData(list[i].children,type)
+            } else {
+              list.splice(i, 1)
+              i--
+            }
+          } else {
+            list.splice(i, 1)
+            i--
+          }
+        }
+        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].level == type){
+            delete list[i].children
+          }else if (list[i].children) {
+            if (list[i].children[0]) {
+              list[i].children = self.getCascaderData(list[i].children,type)
+            } else {
+              list.splice(i, 1)
+              i--
+            }
+          } else {
+            list.splice(i, 1)
+            i--
+          }
+        }
+        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].level == type){
+            delete list[i].children
+          }else if (list[i].children) {
+            if (list[i].children[0]) {
+              list[i].children = self.getCascaderData(list[i].children,type)
+            } else {
+              list.splice(i, 1)
+              i--
+            }
+          } else {
+            list.splice(i, 1)
+            i--
+          }
         }
+        return list
       },
     },
   }

+ 215 - 162
src/views/safetyCheck/collegeInspect/selfInspectionManage/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,58 +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:150px;">
+            <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="queryParamsData1">
-              <el-input
-                maxLength="30"
-                v-model="queryParams.queryParamsData1"
-                placeholder="实验室/房间号"
-                style="width:155px;"
-              />
+            <el-form-item label="" prop="buildId">
+              <el-select v-model="queryParams.buildId" placeholder="楼栋" style="width:150px;">
+                <el-option
+                  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>
-            <!--与我相关-->
-            <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>
+            <el-form-item label="" prop="searchValue" v-if="advancedType">
+              <el-input
+                maxLength="30"
+                v-model="queryParams.searchValue"
+                placeholder="实验室/房间号"
+                style="width:170px;"
+              />
+            </el-form-item>
             <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>
@@ -113,25 +122,31 @@
         <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="操作" width="180" show-overflow-tooltip >
+            <el-table-column label="检查人" prop="checkUserNames" width="230" show-overflow-tooltip/>
+            <el-table-column label="操作" width="240" show-overflow-tooltip >
               <template slot-scope="scope">
                 <div class="table-button-box">
                   <p class="table-button-null"></p>
                   <p class="table-button-p"
-                     @click="tableButton(2,scope.row)"
+                     @click="tableButton(1,scope.row)"
 
                   >检查项</p>
                   <p class="table-button-p"
-                     @click="tableButton(3,scope.row)"
+                     v-if='scope.row.manageStatus !=2'
+                     @click="tableButton(2,scope.row)"
 
                   >开始检查</p>
+                  <p class="table-button-p"
+                     v-if='scope.row.manageStatus !=2'
+                     @click="tableButton(3,scope.row)"
+
+                  >检查完成</p>
                   <p class="table-button-null"></p>
                 </div>
               </template>
@@ -148,40 +163,64 @@
       </div>
     </div>
     <checkItem :propsData="propsData" v-if="pageType === 2"></checkItem>
+    <initiateInspect v-if="pageType == 3" :initiateInspectData="initiateInspectData"></initiateInspect>
   </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,
+    securityCheckSetOptionFinishCheck,
+  } from '@/api/safetyCheck/indexDemoOne'
   import checkItem from "@/views/safetyCheck/components/checkItem.vue";
+  import initiateInspect from "@/views/safetyCheck/components/initiateInspect/initiateInspect.vue";
   export default {
     name: 'index',
     components: {
-     checkItem
+      checkItem,
+      initiateInspect,
     },
     data () {
       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:2,
+          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:[],
@@ -195,65 +234,30 @@
         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:[],
+        //检查组件
+        initiateInspectData:{},
       }
     },
     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){
@@ -281,11 +285,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);
@@ -297,24 +296,53 @@
         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();
+        });
+      },
+      getTitleListTwo(){
+        securityCheckPlanTitleList(this.leftQueryParams).then(response => {
+          this.$set(this,'leftListData',response.data.records);
+          this.$set(this,'titleTotal',response.data.total);
+          this.getList();
+        });
+      },
       //获取数据列表
       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);
@@ -324,54 +352,65 @@
       tableButton(type,row){
         let self = this;
         if(type == 1){
-          //新增
-          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;
           this.$set(this,'propsData',obj);
-        }else if(type == 3){
-          //编辑
-          this.$set(this,'pageType',2);
+        }else if(type == 2){
+          //开始检查
+          this.$set(this,'pageType',3);
           let obj = JSON.parse(JSON.stringify(row))
+          obj.freeChoiceType = true;
           obj.showType = false;
-          this.$set(this,'propsData',obj);
-        }else if(type == 4){
-          //删除
-          this.$confirm('是否确认删除?', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-          }).then(() => {
-            deleteFunction({id:row.id}).then(response => {
-              self.msgSuccess(response.message)
-              self.getList();
-            });
-          }).catch(() => {});
-        }else if(type == 5){
-          //启用&停用
-          let text = row.state  ? "停用" : "启用";
-          this.$confirm('是否确认' + text + '?', "警告", {
+          obj.orderTitle = '开始检查';
+          obj.orderType = '1';
+          this.$set(this,'initiateInspectData',obj);
+        }else if(type == 3){
+          //批量完成
+          this.$confirm(`是否确认检查完成?`, "提示", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
             type: "warning"
-          }).then(function() {
-          }).then(() => {
-            stateFunction({id:row.id,state:!row.state,}).then(response => {
+          }).then(async () => {
+            securityCheckSetOptionFinishCheck({manageId:row.manageId }).then(response => {
               self.msgSuccess(response.message)
-              self.getList();
+              self.getTitleListTwo();
             });
-          }).catch(() => {});
+          }).catch(() => {
+
+          })
         }else if(type == 6){
           //返回并刷新
           this.$set(this,'pageType',1);
-          this.getList();
+          this.getTitleListTwo();
         }
       },
+      /*********************************** 学院/楼栋/分类/分级 ***********************************/
+      //学院下拉列表
+      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>
@@ -385,8 +424,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;
@@ -440,6 +485,9 @@
                 .left-list-progress-box{
                   flex:1;
                   padding-top:15px;
+                  ::v-deep .el-progress-bar{
+                    margin-right: -62px;
+                  }
                 }
               }
               .check-left-list-for-box{
@@ -447,6 +495,11 @@
               }
             }
           }
+          .left-list-for-null-p{
+            text-align: center;
+            line-height:400px;
+            color:#999;
+          }
         }
       }
       .page-content-center-box{

+ 23 - 19
src/views/safetyCheck/collegeInspect/selfInspectionProject/index.vue

@@ -5,7 +5,7 @@
       <div class="page-form-title-box">
         <el-form :model="queryParams" class="form-box" ref="queryForm"
                  :inline="true" style="width:100%;">
-          <div class="table-college-college-toggle-box">
+          <div class="table-school-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>
@@ -55,6 +55,7 @@
           <p class="page-submit-common-style-button"
              style="float: right;"
              @click="tableButton(1)"
+
           >创建计划</p>
         </el-form>
       </div>
@@ -86,18 +87,19 @@
             </template>
           </el-table-column>
           <el-table-column label="创建人" prop="createName" width="100" show-overflow-tooltip/>
-          <el-table-column label="创建时间" prop="createTime" width="180" show-overflow-tooltip>
+          <el-table-column label="创建时间" prop="createTime" width="160" 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="操作" width="130" show-overflow-tooltip >
+          <el-table-column label="操作" width="220" show-overflow-tooltip >
             <template slot-scope="scope">
               <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)"
+
                 >详情</p>
                 <p class="table-button-p"
                    v-if="scope.row.planStatus==0"
@@ -105,6 +107,11 @@
 
                 >编辑</p>
                 <p class="table-button-p"
+                   @click="tableButton(5,scope.row)"
+
+                >检查明细</p>
+                <p class="table-button-p"
+                   v-if="scope.row.planStatus==0"
                    @click="tableButton(4,scope.row)"
 
                 >删除</p>
@@ -123,17 +130,21 @@
       </div>
     </div>
     <projectAddPage :propsData="propsData" v-if="pageType === 2"></projectAddPage>
+    <inspect-statistics :propsData="propsData" v-if="pageType === 5"></inspect-statistics>
   </div>
 </template>
 <script>
   import {
     securityCheckPlanList,
+    securityCheckPlanDelete,
   } from '@/api/safetyCheck/indexDemoOne'
   import projectAddPage from "@/views/safetyCheck/components/projectAddPage.vue";
+  import inspectStatistics from "@/views/safetyCheck/components/inspectStatistics.vue";
   export default {
     name: 'index',
     components: {
-      projectAddPage
+      projectAddPage,
+      inspectStatistics,
     },
     data () {
       return {
@@ -248,25 +259,18 @@
             type: "warning"
           }).then(function() {
           }).then(() => {
-            deleteFunction({id:row.id}).then(response => {
+            securityCheckPlanDelete({planId:row.planId}).then(response => {
               self.msgSuccess(response.message)
               self.getList();
             });
           }).catch(() => {});
         }else if(type == 5){
-          //启用&停用
-          let text = row.state  ? "停用" : "启用";
-          this.$confirm('是否确认' + text + '?', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-          }).then(() => {
-            stateFunction({id:row.id,state:!row.state,}).then(response => {
-              self.msgSuccess(response.message)
-              self.getList();
-            });
-          }).catch(() => {});
+          //检查明细
+          this.$set(this,'pageType',5);
+          let obj = JSON.parse(JSON.stringify(row))
+          obj.showType = true;
+          obj.rank = 'college';
+          this.$set(this,'propsData',obj);
         }else if(type == 6){
           //返回并刷新
           this.$set(this,'pageType',1);
@@ -279,7 +283,7 @@
 <style scoped lang="scss">
   .selfInspectionProject{
     .selfInspectionProjectPage{
-      .table-college-college-toggle-box{
+      .table-school-college-toggle-box{
         overflow: hidden;
         display: inline-block;
         margin-right:10px;

+ 77 - 2
src/views/safetyCheck/collegeWorktable/annualSecureInspect.vue

@@ -1,7 +1,13 @@
 <!-- 人员设备安全 -->
 <template>
   <div class="annualSecureInspect">
-    <dv-scroll-board v-if="showType" :config="config" style="width:927px;height:240px" />
+    <div class="title-max-box-position">
+      <div v-for="(item,index) in header" :key="index">
+        <p>{{item}}</p>
+      </div>
+    </div>
+    <div class="title-max-box"></div>
+    <dv-scroll-board v-if="showType" :config="config" style="width:927px;height:200px" />
   </div>
 </template>
 <script>
@@ -15,11 +21,11 @@
     },
     data () {
       return {
+        header: ['序号', '检查名称', '检查时间', '检查数', '隐患数', '整改数', '多次整改未完成', '整改完成率'],
         showType:false,
         config:{
           headerHeight:40,
           rowNum:5,
-          header: ['序号', '检查名称', '检查时间', '检查数', '隐患数', '整改数', '多次整改未完成', '整改完成率'],
           columnWidth:[57,190,210,80,80,80,130,100],
           headerBGC:'#F5F5F5',
           oddRowBGC:'#ffffff',
@@ -66,7 +72,76 @@
 </script>
 <style scoped lang="scss">
   .annualSecureInspect{
+    position: relative;
     width:927px;
+    .title-max-box{
+      height: 40px;
+    }
+    .title-max-box-position{
+      z-index:10;
+      position: absolute;
+      top:1px;
+      left:0;
+      display: flex;
+      width:927px;
+      height: 40px;
+      border:1px solid #dfe6ec;
+      background-color: #F5F5F5;
+      p{
+        font-weight:700;
+        text-align: center;
+        line-height:16px;
+        font-size:14px;
+      }
+      div{
+        height: 40px;
+        border-left:1px solid #dfe6ec;
+        align-items: center;
+        display: flex;
+        text-align: center;
+      }
+      div:nth-child(1){;
+        border-left:none;
+        p{
+          width:57px;
+        }
+      }
+      div:nth-child(2){
+        p{
+          width:188px;
+        }
+      }
+      div:nth-child(3){
+        p{
+          width:209px;
+        }
+      }
+      div:nth-child(4){
+        p{
+          width:79px;
+        }
+      }
+      div:nth-child(5){
+        p{
+          width:79px;
+        }
+      }
+      div:nth-child(6){
+        p{
+          width:79px;
+        }
+      }
+      div:nth-child(7){
+        p{
+          width:128px;
+        }
+      }
+      div:nth-child(8){
+        p{
+          width:99px;
+        }
+      }
+    }
     ::v-deep .dv-scroll-board{
       .header{
         border-left:1px solid #dfe6ec;

+ 24 - 5
src/views/safetyCheck/collegeWorktable/index.vue

@@ -82,17 +82,17 @@
             <hidden-danger-statistics-echarts :propsData="propsData"></hidden-danger-statistics-echarts>
           </div>
           <div class="center-r">
-            <div class="center-r-li">
+            <div class="center-r-li" @click="goPage('snapshot')">
               <img  src="@/assets/ZDimages/securityCheck/icon_gzzl_ssp@1x.png"/>
               <p>随手拍</p>
             </div>
             <div class="line"></div>
-            <div class="center-r-li">
+            <div class="center-r-li" @click="goPage('rectificationNotice')">
               <img  src="@/assets/ZDimages/securityCheck/icon_gzzl_zgtz@1x.png"/>
               <p>整改通知</p>
             </div>
             <div class="line"></div>
-            <div class="center-r-li">
+            <div class="center-r-li" @click="goPage('dataStatistics')">
               <img  src="@/assets/ZDimages/securityCheck/icon_gzzl_sjtj@1x.png"/>
               <p>数据统计</p>
             </div>
@@ -103,7 +103,7 @@
             <div class="min-title-box">
               <p></p>
               <p>{{yearData}}年学院名称实验室自查统计</p>
-              <p>查看全部</p>
+              <p @click="goPage('dataStatistics')">查看全部</p>
             </div>
             <div class="bottom-l-b">
               <annualSecureInspect :propsData="propsData"></annualSecureInspect>
@@ -113,7 +113,7 @@
             <div class="min-title-box">
               <p></p>
               <p>实验室全年指标隐患分布</p>
-              <p>查看全部</p>
+              <p @click="goPage('danger')">查看全部</p>
             </div>
             <div class="bottom-r-b">
               <annualHiddenDistribution :propsData="propsData"></annualHiddenDistribution>
@@ -180,6 +180,25 @@
 
     },
     methods:{
+      //页面跳转
+      goPage(type){
+        if (type == 'snapshot'){
+          //随手拍
+          this.$router.push({ path: '/safetyCheck/snapshot'});
+        } else if (type == 'rectificationNotice'){
+          //整改通知
+          this.$router.push({ path: '/safetyCheck/safetyHazard/rectificationNotice'});
+        } else if (type == 'dataStatistics'){
+          //数据统计
+          this.$router.push({ path: '/safetyCheck/dataStatistics'});
+        } else if (type == 'dataStatistics'){
+          //检查统计
+          this.$router.push({ path: '/safetyCheck/dataStatistics'});
+        } else if (type == 'danger'){
+          //隐患分布
+          this.$router.push({ path: '/safetyCheck/snapshot'});
+        }
+      },
       //查询用户身份
       securityIndexStatisticsUserIdentity(){
         securityIndexStatisticsUserIdentity().then(response => {

+ 22 - 11
src/views/safetyCheck/components/checkItem.vue

@@ -37,10 +37,10 @@
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="" prop="createName">
+            <el-form-item label="" prop="checkUserName">
               <el-input
                 maxLength="30"
-                v-model="queryParams.createName"
+                v-model="queryParams.checkUserName"
                 placeholder="检查人"
                 style="width: 200px"
               />
@@ -70,21 +70,34 @@
                 <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="hazardDescribe" width="400" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span v-if="scope.row.checkStatus == 0&&scope.row.checkDraftVo">{{scope.row.checkDraftVo.hazardDescribe}}</span>
+                <span v-else>{{scope.row.hazardDescribe}}</span>
+              </template>
+            </el-table-column>
             <el-table-column label="检查结果" prop="checkFlag" width="150" show-overflow-tooltip>
               <template slot-scope="scope">
-                <span>{{scope.row.checkStatus!=1?'-':(scope.row.checkFlag?'符合':'不符合')}}</span>
+                <span v-if="scope.row.checkStatus == 0&&scope.row.checkDraftVo">{{scope.row.checkDraftVo.checkFlag?'符合':'不符合'}}</span>
+                <span v-else>{{scope.row.checkStatus!=1?'-':(scope.row.checkFlag?'符合':'不符合')}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="检查人" prop="checkUserName" width="150" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span v-if="scope.row.checkStatus == 0&&scope.row.checkDraftVo">{{scope.row.checkDraftVo.checkUserName}}</span>
+                <span v-else>{{scope.row.checkUserName}}</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>
+                <span v-if="scope.row.checkStatus == 0&&scope.row.checkDraftVo">{{ parseTime(scope.row.checkDraftVo.checkTime,"{y}-{m}-{d} {h}:{i}") }}</span>
+                <span v-else>{{ parseTime(scope.row.checkTime,"{y}-{m}-{d} {h}:{i}") }}</span>
               </template>
             </el-table-column>
             <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>
+                <span v-if="scope.row.checkStatus == 0&&scope.row.checkDraftVo">检查中</span>
+                <span v-else>{{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>
@@ -162,7 +175,7 @@
           pageSize:20,
           hazardCheckPro:null,
           checkFlag :null,
-          createName :'',
+          checkUserName :'',
         },
         //时间数据
         dateRange:[],
@@ -206,7 +219,7 @@
           pageSize:20,
           hazardCheckPro:null,
           checkFlag :null,
-          createName :'',
+          checkUserName :'',
         });
         this.getList();
       },
@@ -314,7 +327,6 @@
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
           obj.manageId = this.propsData.manageId;
-          obj.processType = 'inspect';
           obj.showType = false;
           obj.orderTitle = '开始检查';
           obj.orderType = '1';
@@ -333,7 +345,6 @@
           this.$set(this,'pageType',2);
           let obj = JSON.parse(JSON.stringify(row))
           obj.manageId = this.propsData.manageId;
-          obj.processType = 'inspect';
           obj.showType = false;
           this.$set(this,'initiateInspectData',obj);
         }else if(type == 6){

+ 4 - 3
src/views/safetyCheck/components/initiateInspect/historyRecordsComponent.vue

@@ -2,7 +2,7 @@
 <template>
   <div class="page-container initiateInspect-historyRecordsComponent">
     <!--检查信息-->
-    <div>
+    <div v-if="!newData.checkFlag">
       <p class="content-right-title-min-p">
         隐患信息
         <span :class="newData.showType?'el-icon-arrow-down':'el-icon-arrow-up'" @click="infoShowButton"></span>
@@ -11,10 +11,10 @@
         <div class="right-text-box">
           <p class="right-text-name-p">隐患描述</p>
           <div class="right-text-text-box" style="width:704px;">
-            <p style="min-height:80px;">{{newData.hazardDescribe}}</p>
+            <p style="min-height:80px;">{{newData.hazardDescribe?newData.hazardDescribe:'-'}}</p>
           </div>
         </div>
-        <div class="right-text-box">
+        <div class="right-text-box" v-if="newData.uploadDtoList[0]">
           <p class="right-text-name-p">现场照片</p>
           <img class="for-img" :src="imgItem.fileUrl" @click="lookImg(newData.uploadDtoList,imgIndex)"
                v-for="(imgItem,imgIndex) in newData.uploadDtoList" :key="imgIndex">
@@ -127,6 +127,7 @@
     data(){
       return{
         newData:{
+          checkFlag:true,
           showType:true,
           hazardDescribe:"",
           uploadDtoList:[],

+ 170 - 92
src/views/safetyCheck/components/initiateInspect/initiateInspect.vue

@@ -120,13 +120,13 @@
             <div class="right-text-box">
               <p class="right-text-name-p">检查人</p>
               <div class="right-text-title-box">
-                <p>{{checkItemData.checkUserName}}-{{checkItemData.checkUserNumber}}</p>
+                <p>{{projectData.checkUserName}}-{{projectData.checkUserNumber}}</p>
               </div>
             </div>
             <div class="right-text-box">
               <p class="right-text-name-p" style="width:138px;">检查时间</p>
               <div class="right-text-title-box">
-                <p>{{checkItemData.checkTime}}</p>
+                <p>{{projectData.checkTime}}</p>
               </div>
             </div>
           </div>
@@ -140,6 +140,7 @@
           <div v-if="itemShowType_2" style="margin-top:20px;">
             <el-form-item label="检查项目" prop="hazardCheckPro">
               <el-cascader
+                v-if="!freeChoiceType"
                 :disabled="lookInfoType||!freeChoiceType"
                 placeholder="请选择检查项目"
                 style="width:700px;"
@@ -149,6 +150,17 @@
                 :options="cascaderData"
                 :props="{ value: 'id', label: 'labelName',emitPath:false }"
               ></el-cascader>
+              <el-cascader
+                v-if="freeChoiceType"
+                :disabled="lookInfoType"
+                placeholder="请选择检查项目"
+                style="width:700px;"
+                v-model="addForm.hazardCheckPro"
+                filterable
+                @change="hazardCheckProChange"
+                :options="cascaderData"
+                :props="{ value: 'id', label: 'labelName',emitPath:false }"
+              ></el-cascader>
             </el-form-item>
             <p class="dangers-num-p" v-if="dangersNum>0">此检查项在当前实验室累计出现 <span>{{dangersNum}}</span> 次隐患</p>
             <el-form-item label="检查要点" prop="hazardCheckPoint">
@@ -170,7 +182,7 @@
               </el-form-item>
               <el-form-item label="检查结果" prop="checkFlag" v-if="lookInfoType||projectData.checkStatus == 1">
                 <div class="check-button-border-box">
-                  <p>{{addForm.checkFlag == 0?'不符合':'符合'}}</p>
+                  <p>{{projectData.checkFlag == 0?'不符合':'符合'}}</p>
                   <img src="@/assets/ZDimages/safetyCheck/icom_xjjc_jcjc@1x.png">
                 </div>
               </el-form-item>
@@ -240,11 +252,13 @@
     securityCheckPlanCheckInfo,
     securityCheckPhotoGetCheckNumBySub,
     securityCheckOptionList,
-    securityRecordCheckCommit,
+    securityCheckSetOptionCheckCommit,
     securityCheckSetOptionUnCheckList,
     securityCheckDangerGetDangerId,
+    securityDraftFindBySetOptionId,
     securityCheckDangerCheckRectify,
     securityCheckDangerApprove,
+    securityCheckPlanBatchDownloadFile,
   } from '@/api/safetyCheck/indexDemoOne'
 
   export default {
@@ -285,6 +299,7 @@
         checkItemData: {},
         //检查项
         cascaderData: [],
+        cascaderDataList: [],
         dangerLevel: [],
         //子项展开状态
         itemShowType_1: true,
@@ -350,34 +365,48 @@
       },
       //开始检查计划详情
       securityCheckPlanCheckInfo() {
+        //type 初始化时为FALSE 提交再次调用为true
         let self = this
         securityCheckPlanCheckInfo({
           manageId: this.initiateInspectData.manageId,
-          // dangerId: this.initiateInspectData.dangerId ? this.initiateInspectData.dangerId : '',
-          setOptionId: this.initiateInspectData.setOptionId ? this.initiateInspectData.setOptionId : ''
+          setOptionId:this.initiateInspectData.setOptionId ? this.initiateInspectData.setOptionId : ''
         }).then(response => {
           this.$set(this, 'projectData', response.data)
           this.$set(this.projectData, 'uploadDtoList', response.data.uploadDtoList?response.data.uploadDtoList:[])
-          //有检查项ID时去查询检查项触发次数
-          if (this.projectData.hazardCheckPro) {
-            //查询次数
-            this.securityCheckPhotoGetCheckNumBySub()
-            if (this.projectData.checkStatus == 1) {
-              //已提交
-              this.securityCheckDangerGetDangerId();
-            } else if (this.projectData.checkStatus == 2) {
-              //草稿
-              this.$set(this.addForm, 'uploadDtoList', this.projectData.photoList?this.projectData.photoList:[])
-              this.$set(this.addForm, 'speechRemarksList', this.projectData.voiceList?this.projectData.voiceList:[])
-              this.$nextTick(() => {
-                for (let i = 0; i < self.addForm.speechRemarksList.length; i++) {
-                  self.addForm.speechRemarksList[i].playType = false
-                }
-              })
-              this.$set(this.addForm, 'checkFlag', this.projectData.checkFlag)
-              this.$set(this.addForm, 'hazardDescribe', this.projectData.hazardDescribe)
+          this.$nextTick(()=>{
+            //已制定检查项
+            if (this.projectData.hazardCheckPro) {
+              //查询次数
+              this.securityCheckPhotoGetCheckNumBySub()
+              if (this.projectData.checkStatus == 1) {
+                //已提交
+                this.securityCheckDangerGetDangerId();
+              } else if (this.projectData.checkStatus == 0&&this.initiateInspectData.checkDraftVo) {
+                //草稿
+                this.securityDraftFindBySetOptionId(this.initiateInspectData.setOptionId);
+              }else{
+                this.$set(this,'loadType',true);
+              }
+            }else{
+              //未指定检查项
+              this.$set(this,'loadType',true);
             }
-          }
+          })
+        })
+      },
+      //草稿数据查询
+      securityDraftFindBySetOptionId(setOptionId){
+        let self = this;
+        securityDraftFindBySetOptionId({setOptionId:setOptionId}).then(response => {
+          this.$set(this.addForm, 'uploadDtoList', response.data.photoList?response.data.photoList:[])
+          this.$set(this.addForm, 'speechRemarksList', response.data.voiceList?response.data.voiceList:[])
+          this.$nextTick(() => {
+            for (let i = 0; i < self.addForm.speechRemarksList.length; i++) {
+              self.addForm.speechRemarksList[i].playType = false
+            }
+          })
+          this.$set(this.addForm, 'checkFlag', response.data.checkFlag?response.data.checkFlag:0)
+          this.$set(this.addForm, 'hazardDescribe', response.data.hazardDescribe?response.data.hazardDescribe:'')
           this.$nextTick(() => {
             this.$set(this,'loadType',true);
           })
@@ -391,15 +420,22 @@
         }).then(response => {
           let obj = {
             orderInfo:{
-              hazardDescribe:response.data.hazardDescribe,
-              uploadDtoList:response.data.uploadDtoList,
+              hazardDescribe:this.projectData.hazardDescribe,
+              uploadDtoList:this.projectData.photoList,
+              checkFlag:this.projectData.checkFlag,
               showType:true,
             },
-            checkRectifyVoList:response.data.checkRectifyVoList?response.data.checkRectifyVoList:[]
+            checkRectifyVoList:[]
+          }
+          if(response.data){
+            obj.checkRectifyVoList = response.data.checkRectifyVoList?response.data.checkRectifyVoList:[]
           }
           this.$set(this,'checkItemData',response.data);
           this.$set(this,'historyRecordsComponentPropsData',obj);
           this.$set(this,'historyRecordsComponentPropsType',true);
+          this.$nextTick(() => {
+            this.$set(this,'loadType',true);
+          })
         })
       },
       //查询隐患发生次数
@@ -413,7 +449,19 @@
       },
       //手动选择检查项目
       hazardCheckProChange(val){
-
+        let self = this;
+        for (let i=0;i<self.cascaderDataList.length;i++){
+          if(val == self.cascaderDataList[i].hazardCheckPro){
+            self.$set(self.projectData,'setOptionId',self.cascaderDataList[i].setOptionId);
+            self.$set(self.projectData,'hazardCheckPoint',self.cascaderDataList[i].hazardCheckPoint);
+            self.$set(self.projectData,'hazardCheckPro',self.cascaderDataList[i].hazardCheckPro);
+            self.$nextTick(()=>{
+              self.securityDraftFindBySetOptionId(self.cascaderDataList[i].setOptionId);
+              self.securityCheckPhotoGetCheckNumBySub()
+            })
+            break
+          }
+        }
       },
       // 返回按钮
       backPage() {
@@ -425,7 +473,7 @@
           this.$refs['addForm'].validate(valid => {
             if (valid) {
               //保存草稿/继续检查/提交查看
-              this.securityRecordCheckCommit(type)
+              this.securityCheckSetOptionCheckCommit(type)
             }
           })
         } else if (type == 4) {
@@ -465,36 +513,36 @@
         }
       },
       //检查提交
-      securityRecordCheckCommit(type) {
+      securityCheckSetOptionCheckCommit(type) {
         let obj = {
           checkFlag: this.addForm.checkFlag,
           checkStatus: type == 1 ? '2' : 1,
-          recordId:this.projectData.checkStatus == 2?this.projectData.recordId:'',
           hazardDescribe: this.addForm.hazardDescribe,
-          manageId: this.initiateInspectData.manageId,
-          setOptionId: this.initiateInspectData.setOptionId,
+          setOptionId: this.freeChoiceType?this.projectData.setOptionId:this.initiateInspectData.setOptionId,
           photoList: this.addForm.uploadDtoList,
           voiceList: this.addForm.speechRemarksList,
         }
-        for(let i=0;i<obj.photoList.length;i++){
-          obj.photoList[i].fileType = 2;
-          obj.photoList[i].source = 2;
-        }
-        for(let i=0;i<obj.voiceList.length;i++){
-          obj.photoList[i].fileType = 3;
-          obj.photoList[i].source = 2;
-        }
-        securityRecordCheckCommit(obj).then(response => {
+        securityCheckSetOptionCheckCommit(obj).then(response => {
           this.msgSuccess(response.message)
           if (type == 1) {
             //保存草稿
             this.$parent.tableButton(6)
           } else if (type == 2) {
             //继续检查
+            this.$set(this,'addForm',{
+              checkFlag: 0,
+              hazardDescribe: '',
+              uploadDtoList: [],
+              speechRemarksList: []
+            })
+            this.$set(this,'dangersNum',0)
+            this.initialize()
           } else if (type == 3) {
             //提交查看
+            this.$set(this.initiateInspectData, 'setOptionId', this.projectData.setOptionId)
             this.securityCheckPlanCheckInfo();
             this.$set(this, 'lookInfoType', true)
+            this.$set(this.initiateInspectData, 'orderType', 2)
           }
         })
       },
@@ -585,92 +633,122 @@
       },
       // 下载全部
       downloadAll() {
-
+        this.download('security/checkPlan/batchDownloadFile', {
+          ...{planId:this.initiateInspectData.planId}
+        }, `材料附件.zip`)
       },
       //检查项列表
       securityCheckOptionList() {
         securityCheckOptionList({}).then(response => {
-          let list = this.getCascaderData(response.data)
-          this.$set(this, 'cascaderData', list)
+          let list = this.getCascaderData(JSON.parse(JSON.stringify(response.data)),3)
+          this.$nextTick(()=>{
+            this.$set(this, 'cascaderData', list)
+          })
         })
       },
       //未执行过的检查项列表
       securityCheckSetOptionUnCheckList(){
-        securityCheckSetOptionUnCheckList({
-          manageId: this.initiateInspectData.manageId,
-          searchValue: ''
-        }).then(response => {
-          let list = this.getCascaderData(response.data)
-          this.$set(this, 'cascaderData', list)
+        securityCheckOptionList({}).then(response => {
+          let maxList = this.getCascaderData(JSON.parse(JSON.stringify(response.data)),2)
+          this.$nextTick(()=>{
+            securityCheckSetOptionUnCheckList({
+              manageId: this.initiateInspectData.manageId,
+            }).then(response => {
+              if(response.data[0]){
+                this.$set(this,'cascaderDataList',response.data);
+                for(let i=0;i<maxList.length;i++){
+                  for(let o=0;o<maxList[i].children.length;o++){
+                    for(let x=0;x<response.data.length;x++){
+                      if(maxList[i].children[o].id == response.data[x].hazardCheckPro2){
+                        if(maxList[i].children[o].children){
+                          maxList[i].children[o].children.push({
+                            id: response.data[x].hazardCheckPro,
+                            name: response.data[x].hazardCheckName,
+                            mainPoint: response.data[x].hazardCheckPoint,
+                            hazardLevelName: null,
+                            code: response.data[x].hazardCheckCode,
+                            parentId: response.data[x].hazardCheckPro2,
+                            type: 1,
+                            level: 3,
+                            hazardReid: null,
+                          })
+                        }else{
+                          maxList[i].children[o].children = [{
+                            id: response.data[x].hazardCheckPro,
+                            name: response.data[x].hazardCheckName,
+                            mainPoint: response.data[x].hazardCheckPoint,
+                            hazardLevelName: null,
+                            code: response.data[x].hazardCheckCode,
+                            parentId: response.data[x].hazardCheckPro2,
+                            type: 1,
+                            level: 3,
+                            hazardReid: null,
+                          }]
+                        }
+                      }
+                    }
+                  }
+                }
+                let list = this.getCascaderData(JSON.parse(JSON.stringify(maxList)),3)
+                this.$nextTick(()=>{
+                  this.$set(this, 'cascaderData', list)
+                })
+              }else{
+                this.$parent.tableButton(6)
+              }
+            })
+          })
         })
       },
       //检查项格式处理
-      getCascaderData(list) {
+      getCascaderData(list,type) {
         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].level == type){
+            delete list[i].children
+          }else if (list[i].children) {
             if (list[i].children[0]) {
-              list[i].children = self.getCascaderData(list[i].children)
+              list[i].children = self.getCascaderData(list[i].children,type)
             } 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
             }
+          } else {
+            list.splice(i, 1)
+            i--
           }
         }
         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].level == type){
+            delete list[i].children
+          }else if (list[i].children) {
             if (list[i].children[0]) {
-              list[i].children = self.getCascaderData(list[i].children)
+              list[i].children = self.getCascaderData(list[i].children,type)
             } 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
             }
+          } else {
+            list.splice(i, 1)
+            i--
           }
         }
         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].level == type){
+            delete list[i].children
+          }else if (list[i].children) {
             if (list[i].children[0]) {
-              list[i].children = self.getCascaderData(list[i].children)
+              list[i].children = self.getCascaderData(list[i].children,type)
             } 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
             }
+          } else {
+            list.splice(i, 1)
+            i--
           }
         }
         return list

+ 1 - 1
src/views/safetyCheck/components/projectAddPage.vue

@@ -203,7 +203,7 @@
                   </div>
                   <p class="overdue-p">逾期未完成整改关闭实验室</p>
                 </div>
-                <div class="overdue-check-box" v-if="item.overdueUnrectify">
+                <div class="overdue-check-box" v-if="lookInfoType&&item.overdueUnrectify">
                   <p class="overdue-p" style="margin-left:20px;">逾期未完成整改关闭实验室</p>
                 </div>
               </div>

+ 0 - 289
src/views/safetyCheck/inspectJob/index.vue

@@ -1,289 +0,0 @@
-<!-- 检查作业 -->
-<template>
-  <div class="app-container inspectJob">
-    <div class="page-container inspectJobPage" v-if="pageType === 1">
-      <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="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>
-          </div>
-          <el-form-item label="" prop="deptId">
-            <el-select v-model="queryParams.deptId" placeholder="学院单位" style="width: 200px">
-              <el-option
-                v-for="dict in deptOption"
-                :key="dict.deptId"
-                :label="dict.deptName"
-                :value="dict.deptId"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="" prop="queryParamsData1">
-            <el-input
-              maxLength="30"
-              v-model="queryParams.queryParamsData1"
-              placeholder="计划标题"
-              style="width: 200px"
-            />
-          </el-form-item>
-          <el-form-item label="" prop="state">
-            <el-date-picker
-              :clearable="false"
-              v-model="dateRange"
-              size="small"
-              style="width: 240px"
-              value-format="yyyy-MM-dd"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            ></el-date-picker>
-          </el-form-item>
-          <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
-          <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
-          <!--<p class="page-submit-common-style-button"-->
-             <!--style="float: right;"-->
-             <!--@click="tableButton(1)"-->
-          <!--&gt;新增</p>-->
-        </el-form>
-      </div>
-      <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="200" show-overflow-tooltip/>
-          <el-table-column label="负责人" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="学院单位" prop="content" width="200" show-overflow-tooltip/>
-          <el-table-column label="检查项数量" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="不符合数量" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="状态" prop="state" width="100" show-overflow-tooltip>
-            <template slot-scope="scope">
-
-            </template>
-          </el-table-column>
-          <el-table-column label="更新时间" prop="createTime" width="200" 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="操作" width="200" show-overflow-tooltip >
-            <template slot-scope="scope">
-              <div class="table-button-box">
-                <p class="table-button-null"></p>
-                <p class="table-button-p"
-                   @click="tableButton(2,scope.row)"
-
-                >详情</p>
-                <p class="table-button-p"
-                   @click="tableButton(3,scope.row)"
-
-                >编辑</p>
-                <p class="table-button-p"
-                   @click="tableButton(4,scope.row)"
-
-                >删除</p>
-                <p class="table-button-null"></p>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination :page-sizes="[20, 30, 40, 50]"
-                    v-show="total>0"
-                    :total="total"
-                    :page.sync="queryParams.page"
-                    :limit.sync="queryParams.pageSize"
-                    @pagination="getList"
-        />
-      </div>
-    </div>
-    <!--<add-page :propsData="propsData" v-if="pageType === 2"></add-page>-->
-  </div>
-</template>
-<script>
-  import {
-    getDeptDropList,
-  } from '@/api/commonality/permission'
-  //import { getDicts } from "@/api/commonality/noPermission";
-  //import { systemUserSelect } from "@/api/commonality/permission";
-  //import { getInfo } from "@/api/basicsModules/index";
-  //import addPage from "./addPage.vue";
-  export default {
-    name: 'index',
-    //components: {
-    //  addPage
-    //},
-    data () {
-      return {
-        tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
-        //页面状态
-        pageType:1,
-        //计划状态选项卡
-        planStatus:'',
-        //页面遮罩
-        loading:false,
-        //下拉列表数据
-        deptOption:[],
-        //查询条件
-        queryParams:{
-          page:1,
-          pageSize:20,
-          queryParamsData1:"",
-          deptId :null,
-        },
-        //时间数据
-        dateRange:[],
-        //列表数据
-        dataList:[],
-        //数据数量
-        total:0,
-        //组件传参
-        propsData:{},
-      }
-    },
-    created () {
-      this.getDeptDropList();
-    },
-    mounted () {
-      //this.getList();
-    },
-    methods: {
-      //整改状态选项卡切换
-      tableCheck(type){
-        if (this.planStatus !== type){
-          this.$set(this,'planStatus',type);
-          this.resetQuery();
-        }
-      },
-      //查询按钮
-      handleQuery(){
-        this.$set(this.queryParams,'page',1);
-        this.getList();
-      },
-      //重置按钮
-      resetQuery(){
-        this.$set(this,'dateRange',[])
-        this.$set(this,'queryParams',{
-          page:1,
-          pageSize:20,
-          queryParamsData1:"",
-          deptId :null,
-        });
-        this.getList();
-      },
-      //获取数据列表
-      getList(){
-        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 = "";
-        }
-        getListFunction(obj).then(response => {
-          this.$set(this,'loading',false);
-          this.$set(this,'dataList',response.data.records);
-          this.$set(this,'total',response.data.total);
-        });
-      },
-      //操作按钮
-      tableButton(type,row){
-        let self = this;
-        if(type == 1){
-          //新增
-          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;
-          this.$set(this,'propsData',obj);
-        }else if(type == 3){
-          //编辑
-          this.$set(this,'pageType',2);
-          let obj = JSON.parse(JSON.stringify(row))
-          obj.showType = false;
-          this.$set(this,'propsData',obj);
-        }else if(type == 4){
-          //删除
-          this.$confirm('是否确认删除?', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-          }).then(() => {
-            deleteFunction({id:row.id}).then(response => {
-              self.msgSuccess(response.message)
-              self.getList();
-            });
-          }).catch(() => {});
-        }else if(type == 5){
-          //启用&停用
-          let text = row.state  ? "停用" : "启用";
-          this.$confirm('是否确认' + text + '?', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-          }).then(() => {
-            stateFunction({id:row.id,state:!row.state,}).then(response => {
-              self.msgSuccess(response.message)
-              self.getList();
-            });
-          }).catch(() => {});
-        }else if(type == 6){
-          //返回并刷新
-          this.$set(this,'pageType',1);
-          this.getList();
-        }
-      },//学院下拉列表
-      getDeptDropList(){
-        getDeptDropList({level: 2, deptType: 1 }).then(response => {
-          this.$set(this,'deptOption',response.data);
-        });
-      },
-    },
-  }
-</script>
-<style scoped lang="scss">
-  .inspectJob{
-    .inspectJobPage{
-      .table-school-college-toggle-box{
-        overflow: hidden;
-        display: inline-block;
-        margin-right:10px;
-        p{
-          display: inline-block;
-          text-align: center;
-          width:80px;
-          line-height:40px;
-          height:40px;
-          color:#333;
-          background-color: #fff;
-          border:1px solid #E0E0E0;
-          font-size:14px;
-          cursor: pointer;
-        }
-        p:nth-child(1){
-          border-top-left-radius: 4px;
-          border-bottom-left-radius: 4px;
-          /*border-right:none;*/
-        }
-        p:nth-child(3){
-          border-top-right-radius: 4px;
-          border-bottom-right-radius: 4px;
-          /*border-left:none;*/
-        }
-        .p-check{
-          border:1px solid #0183FA;
-          background-color: #0183FA;
-          color:#fff;
-        }
-      }
-    }
-  }
-</style>

+ 0 - 290
src/views/safetyCheck/inspectReport/index.vue

@@ -1,290 +0,0 @@
-<!-- 检查报告 -->
-<template>
-  <div class="app-container inspectReport">
-    <div class="page-container inspectReportPage" v-if="pageType === 1">
-      <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="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>
-          </div>
-          <el-form-item label="" prop="deptId">
-            <el-select v-model="queryParams.deptId" placeholder="学院单位" style="width: 200px">
-              <el-option
-                v-for="dict in deptOption"
-                :key="dict.deptId"
-                :label="dict.deptName"
-                :value="dict.deptId"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="" prop="queryParamsData1">
-            <el-input
-              maxLength="30"
-              v-model="queryParams.queryParamsData1"
-              placeholder="计划标题"
-              style="width: 200px"
-            />
-          </el-form-item>
-          <el-form-item label="" prop="state">
-            <el-date-picker
-              :clearable="false"
-              v-model="dateRange"
-              size="small"
-              style="width: 240px"
-              value-format="yyyy-MM-dd"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            ></el-date-picker>
-          </el-form-item>
-          <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
-          <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
-          <p class="page-submit-common-style-button"
-             style="float: right;"
-             @click="tableButton(1)"
-
-          >批量提交</p>
-        </el-form>
-      </div>
-      <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="200" show-overflow-tooltip/>
-          <el-table-column label="负责人" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="学院单位" prop="content" width="200" show-overflow-tooltip/>
-          <el-table-column label="检查项数量" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="不符合数量" prop="content" width="100" show-overflow-tooltip/>
-          <el-table-column label="状态" prop="state" width="100" show-overflow-tooltip>
-            <template slot-scope="scope">
-
-            </template>
-          </el-table-column>
-          <el-table-column label="更新时间" prop="createTime" width="200" 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="操作" width="200" show-overflow-tooltip >
-            <template slot-scope="scope">
-              <div class="table-button-box">
-                <p class="table-button-null"></p>
-                <p class="table-button-p"
-                   @click="tableButton(2,scope.row)"
-
-                >详情</p>
-                <p class="table-button-p"
-                   @click="tableButton(3,scope.row)"
-
-                >编辑</p>
-                <p class="table-button-p"
-                   @click="tableButton(4,scope.row)"
-
-                >删除</p>
-                <p class="table-button-null"></p>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination :page-sizes="[20, 30, 40, 50]"
-                    v-show="total>0"
-                    :total="total"
-                    :page.sync="queryParams.page"
-                    :limit.sync="queryParams.pageSize"
-                    @pagination="getList"
-        />
-      </div>
-    </div>
-    <!--<add-page :propsData="propsData" v-if="pageType === 2"></add-page>-->
-  </div>
-</template>
-<script>
-  import {
-    getDeptDropList,
-  } from '@/api/commonality/permission'
-  //import { getDicts } from "@/api/commonality/noPermission";
-  //import { systemUserSelect } from "@/api/commonality/permission";
-  //import { getInfo } from "@/api/basicsModules/index";
-  //import addPage from "./addPage.vue";
-  export default {
-    name: 'index',
-    //components: {
-    //  addPage
-    //},
-    data () {
-      return {
-        tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
-        //页面状态
-        pageType:1,
-        //计划状态选项卡
-        planStatus:'',
-        //页面遮罩
-        loading:false,
-        //下拉列表数据
-        deptOption:[],
-        //查询条件
-        queryParams:{
-          page:1,
-          pageSize:20,
-          queryParamsData1:"",
-          deptId :null,
-        },
-        //时间数据
-        dateRange:[],
-        //列表数据
-        dataList:[],
-        //数据数量
-        total:0,
-        //组件传参
-        propsData:{},
-      }
-    },
-    created () {
-      this.getDeptDropList();
-    },
-    mounted () {
-      //this.getList();
-    },
-    methods: {
-      //整改状态选项卡切换
-      tableCheck(type){
-        if (this.planStatus !== type){
-          this.$set(this,'planStatus',type);
-          this.resetQuery();
-        }
-      },
-      //查询按钮
-      handleQuery(){
-        this.$set(this.queryParams,'page',1);
-        this.getList();
-      },
-      //重置按钮
-      resetQuery(){
-        this.$set(this,'dateRange',[])
-        this.$set(this,'queryParams',{
-          page:1,
-          pageSize:20,
-          queryParamsData1:"",
-          deptId :null,
-        });
-        this.getList();
-      },
-      //获取数据列表
-      getList(){
-        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 = "";
-        }
-        getListFunction(obj).then(response => {
-          this.$set(this,'loading',false);
-          this.$set(this,'dataList',response.data.records);
-          this.$set(this,'total',response.data.total);
-        });
-      },
-      //操作按钮
-      tableButton(type,row){
-        let self = this;
-        if(type == 1){
-          //新增
-          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;
-          this.$set(this,'propsData',obj);
-        }else if(type == 3){
-          //编辑
-          this.$set(this,'pageType',2);
-          let obj = JSON.parse(JSON.stringify(row))
-          obj.showType = false;
-          this.$set(this,'propsData',obj);
-        }else if(type == 4){
-          //删除
-          this.$confirm('是否确认删除?', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-          }).then(() => {
-            deleteFunction({id:row.id}).then(response => {
-              self.msgSuccess(response.message)
-              self.getList();
-            });
-          }).catch(() => {});
-        }else if(type == 5){
-          //启用&停用
-          let text = row.state  ? "停用" : "启用";
-          this.$confirm('是否确认' + text + '?', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-          }).then(() => {
-            stateFunction({id:row.id,state:!row.state,}).then(response => {
-              self.msgSuccess(response.message)
-              self.getList();
-            });
-          }).catch(() => {});
-        }else if(type == 6){
-          //返回并刷新
-          this.$set(this,'pageType',1);
-          this.getList();
-        }
-      },
-      getDeptDropList(){
-        getDeptDropList({level: 2, deptType: 1 }).then(response => {
-          this.$set(this,'deptOption',response.data);
-        });
-      },
-    },
-  }
-</script>
-<style scoped lang="scss">
-  .inspectReport{
-    .inspectReportPage{
-      .table-school-college-toggle-box{
-        overflow: hidden;
-        display: inline-block;
-        margin-right:10px;
-        p{
-          display: inline-block;
-          text-align: center;
-          width:80px;
-          line-height:40px;
-          height:40px;
-          color:#333;
-          background-color: #fff;
-          border:1px solid #E0E0E0;
-          font-size:14px;
-          cursor: pointer;
-        }
-        p:nth-child(1){
-          border-top-left-radius: 4px;
-          border-bottom-left-radius: 4px;
-          /*border-right:none;*/
-        }
-        p:nth-child(3){
-          border-top-right-radius: 4px;
-          border-bottom-right-radius: 4px;
-          /*border-left:none;*/
-        }
-        .p-check{
-          border:1px solid #0183FA;
-          background-color: #0183FA;
-          color:#fff;
-        }
-      }
-    }
-  }
-</style>

+ 35 - 4
src/views/safetyCheck/schoolInspect/inspectManage/index.vue

@@ -129,7 +129,7 @@
               </template>
             </el-table-column>
             <el-table-column label="检查人" prop="checkUserNames" width="230" show-overflow-tooltip/>
-            <el-table-column label="操作" width="180" show-overflow-tooltip >
+            <el-table-column label="操作" width="240" show-overflow-tooltip >
               <template slot-scope="scope">
                 <div class="table-button-box">
                   <p class="table-button-null"></p>
@@ -138,10 +138,15 @@
 
                   >检查项</p>
                   <p class="table-button-p"
-                     v-if='scope.row.manageStatus!=2'
+                     v-if='scope.row.manageStatus !=2'
                      @click="tableButton(2,scope.row)"
 
                   >开始检查</p>
+                  <p class="table-button-p"
+                     v-if='scope.row.manageStatus !=2'
+                     @click="tableButton(3,scope.row)"
+
+                  >检查完成</p>
                   <p class="table-button-null"></p>
                 </div>
               </template>
@@ -171,6 +176,7 @@
   import {
     securityCheckPlanTitleList,
     securityCheckManageList,
+    securityCheckSetOptionFinishCheck,
   } from '@/api/safetyCheck/indexDemoOne'
   import checkItem from "@/views/safetyCheck/components/checkItem.vue";
   import initiateInspect from "@/views/safetyCheck/components/initiateInspect/initiateInspect.vue";
@@ -308,6 +314,13 @@
           this.resetQuery();
         });
       },
+      getTitleListTwo(){
+        securityCheckPlanTitleList(this.leftQueryParams).then(response => {
+          this.$set(this,'leftListData',response.data.records);
+          this.$set(this,'titleTotal',response.data.total);
+          this.getList();
+        });
+      },
       //获取数据列表
       getList(){
         if(!this.leftListData[0]){
@@ -349,13 +362,28 @@
           this.$set(this,'pageType',3);
           let obj = JSON.parse(JSON.stringify(row))
           obj.freeChoiceType = true;
-          obj.processType = 'inspect';
           obj.showType = false;
+          obj.orderTitle = '开始检查';
+          obj.orderType = '1';
           this.$set(this,'initiateInspectData',obj);
+        }else if(type == 3){
+          //批量完成
+          this.$confirm(`是否确认检查完成?`, "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(async () => {
+            securityCheckSetOptionFinishCheck({manageId:row.manageId }).then(response => {
+              self.msgSuccess(response.message)
+              self.getTitleListTwo();
+            });
+          }).catch(() => {
+
+          })
         }else if(type == 6){
           //返回并刷新
           this.$set(this,'pageType',1);
-          this.getList();
+          this.getTitleListTwo();
         }
       },
       /*********************************** 学院/楼栋/分类/分级 ***********************************/
@@ -457,6 +485,9 @@
                 .left-list-progress-box{
                   flex:1;
                   padding-top:15px;
+                  ::v-deep .el-progress-bar{
+                    margin-right: -62px;
+                  }
                 }
               }
               .check-left-list-for-box{

+ 3 - 1
src/views/safetyCheck/schoolInspect/inspectProject/index.vue

@@ -111,6 +111,7 @@
 
                 >检查明细</p>
                 <p class="table-button-p"
+                   v-if="scope.row.planStatus==0"
                    @click="tableButton(4,scope.row)"
 
                 >删除</p>
@@ -135,6 +136,7 @@
 <script>
   import {
     securityCheckPlanList,
+    securityCheckPlanDelete,
   } from '@/api/safetyCheck/indexDemoOne'
   import projectAddPage from "@/views/safetyCheck/components/projectAddPage.vue";
   import inspectStatistics from "@/views/safetyCheck/components/inspectStatistics.vue";
@@ -257,7 +259,7 @@
             type: "warning"
           }).then(function() {
           }).then(() => {
-            deleteFunction({id:row.id}).then(response => {
+            securityCheckPlanDelete({planId:row.planId}).then(response => {
               self.msgSuccess(response.message)
               self.getList();
             });

+ 77 - 2
src/views/safetyCheck/schoolWorktable/annualSecureInspect.vue

@@ -1,7 +1,13 @@
 <!-- 人员设备安全 -->
 <template>
   <div class="annualSecureInspect">
-    <dv-scroll-board v-if="showType" :config="config" style="width:927px;height:240px" />
+    <div class="title-max-box-position">
+      <div v-for="(item,index) in header" :key="index">
+        <p>{{item}}</p>
+      </div>
+    </div>
+    <div class="title-max-box"></div>
+    <dv-scroll-board v-if="showType" :config="config" style="width:927px;height:200px" />
   </div>
 </template>
 <script>
@@ -15,11 +21,11 @@
     },
     data () {
       return {
+        header: ['序号', '检查名称', '检查时间', '检查数', '隐患数', '整改数', '多次整改未完成', '整改完成率'],
         showType:false,
         config:{
           headerHeight:40,
           rowNum:5,
-          header: ['序号', '检查名称', '检查时间', '检查数', '隐患数', '整改数', '多次整改未完成', '整改完成率'],
           columnWidth:[57,190,210,80,80,80,130,100],
           headerBGC:'#F5F5F5',
           oddRowBGC:'#ffffff',
@@ -66,7 +72,76 @@
 </script>
 <style scoped lang="scss">
   .annualSecureInspect{
+    position: relative;
     width:927px;
+    .title-max-box{
+      height: 40px;
+    }
+    .title-max-box-position{
+      z-index:10;
+      position: absolute;
+      top:1px;
+      left:0;
+      display: flex;
+      width:927px;
+      height: 40px;
+      border:1px solid #dfe6ec;
+      background-color: #F5F5F5;
+      p{
+        font-weight:700;
+        text-align: center;
+        line-height:16px;
+        font-size:14px;
+      }
+      div{
+        height: 40px;
+        border-left:1px solid #dfe6ec;
+        align-items: center;
+        display: flex;
+        text-align: center;
+      }
+      div:nth-child(1){;
+        border-left:none;
+        p{
+          width:57px;
+        }
+      }
+      div:nth-child(2){
+        p{
+          width:188px;
+        }
+      }
+      div:nth-child(3){
+        p{
+          width:209px;
+        }
+      }
+      div:nth-child(4){
+        p{
+          width:79px;
+        }
+      }
+      div:nth-child(5){
+        p{
+          width:79px;
+        }
+      }
+      div:nth-child(6){
+        p{
+          width:79px;
+        }
+      }
+      div:nth-child(7){
+        p{
+          width:128px;
+        }
+      }
+      div:nth-child(8){
+        p{
+          width:99px;
+        }
+      }
+    }
     ::v-deep .dv-scroll-board{
       .header{
         border-left:1px solid #dfe6ec;

+ 24 - 5
src/views/safetyCheck/schoolWorktable/index.vue

@@ -82,17 +82,17 @@
             <hidden-danger-statistics-echarts :propsData="propsData"></hidden-danger-statistics-echarts>
           </div>
           <div class="center-r">
-            <div class="center-r-li">
+            <div class="center-r-li" @click="goPage('snapshot')">
               <img  src="@/assets/ZDimages/securityCheck/icon_gzzl_ssp@1x.png"/>
               <p>随手拍</p>
             </div>
             <div class="line"></div>
-            <div class="center-r-li">
+            <div class="center-r-li" @click="goPage('rectificationNotice')">
               <img  src="@/assets/ZDimages/securityCheck/icon_gzzl_zgtz@1x.png"/>
               <p>整改通知</p>
             </div>
             <div class="line"></div>
-            <div class="center-r-li">
+            <div class="center-r-li" @click="goPage('dataStatistics')">
               <img  src="@/assets/ZDimages/securityCheck/icon_gzzl_sjtj@1x.png"/>
               <p>数据统计</p>
             </div>
@@ -103,7 +103,7 @@
             <div class="min-title-box">
               <p></p>
               <p>{{yearData}}年全校实验室安全检查统计</p>
-              <p>查看全部</p>
+              <p @click="goPage('dataStatistics')">查看全部</p>
             </div>
             <div class="bottom-l-b">
               <annualSecureInspect :propsData="propsData"></annualSecureInspect>
@@ -113,7 +113,7 @@
             <div class="min-title-box">
               <p></p>
               <p>各单位全年指标隐患分布</p>
-              <p>查看全部</p>
+              <p @click="goPage('danger')">查看全部</p>
             </div>
             <div class="bottom-r-b">
               <annualHiddenDistribution :propsData="propsData"></annualHiddenDistribution>
@@ -179,6 +179,25 @@
     mounted(){
     },
     methods:{
+      //页面跳转
+      goPage(type){
+        if (type == 'snapshot'){
+          //随手拍
+          this.$router.push({ path: '/safetyCheck/snapshot'});
+        } else if (type == 'rectificationNotice'){
+          //整改通知
+          this.$router.push({ path: '/safetyCheck/safetyHazard/rectificationNotice'});
+        } else if (type == 'dataStatistics'){
+          //数据统计
+          this.$router.push({ path: '/safetyCheck/dataStatistics'});
+        } else if (type == 'dataStatistics'){
+          //检查统计
+          this.$router.push({ path: '/safetyCheck/dataStatistics'});
+        } else if (type == 'danger'){
+          //隐患分布
+          this.$router.push({ path: '/safetyCheck/snapshot'});
+        }
+      },
       //查询用户身份
       securityIndexStatisticsUserIdentity(){
         securityIndexStatisticsUserIdentity().then(response => {