dedsudiyu 11 mēneši atpakaļ
vecāks
revīzija
96b76fd9b1
28 mainītis faili ar 1329 papildinājumiem un 3819 dzēšanām
  1. 1 0
      src/api/commonality/permission.js
  2. 8 0
      src/api/integratedManagement/index.js
  3. 1 3
      src/views/chemicalManage/inventoryManagement/inventoryStatistics/inventoryList.vue
  4. 1 2
      src/views/chemicalManage/inventoryManagement/inventoryStatistics/listPage.vue
  5. 283 0
      src/views/hierarchicalControl/conditionsSettings/addPage.vue
  6. 235 0
      src/views/hierarchicalControl/conditionsSettings/index.vue
  7. 249 0
      src/views/hierarchicalControl/executeResult/index.vue
  8. 121 0
      src/views/hierarchicalControl/executeResult/infoPage.vue
  9. 0 897
      src/views/hierarchicalControl/hierarchicalControl/gradeManage/addPage.vue
  10. 0 439
      src/views/hierarchicalControl/hierarchicalControl/gradeManage/index.vue
  11. 0 234
      src/views/hierarchicalControl/hierarchicalControl/gradeManage/subjectList.vue
  12. 0 254
      src/views/hierarchicalControl/hierarchicalControl/gradeManage/userList.vue
  13. 0 414
      src/views/hierarchicalControl/hierarchicalControl/gradeManageRecord/index.vue
  14. 0 322
      src/views/hierarchicalControl/hierarchicalControl/gradeManageRecord/infoPage.vue
  15. 0 76
      src/views/hierarchicalControl/hierarchicalControl/gradeManageRecord/previewPage.vue
  16. 0 455
      src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/addPage.vue
  17. 0 343
      src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/index.vue
  18. 0 285
      src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/infoPage.vue
  19. 0 78
      src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/previewPage.vue
  20. 251 0
      src/views/hierarchicalControl/workExecute/index.vue
  21. 163 0
      src/views/hierarchicalControl/workExecute/infoPage.vue
  22. 5 5
      src/views/integratedManagement/laboratoryManagement/classifiedGrading/classified.vue
  23. 1 1
      src/views/integratedManagement/laboratoryManagement/safetyInfoCategory/safetyInfoCategory.vue
  24. 1 4
      src/views/integratedManagement/laboratoryManagement/subject/index.vue
  25. 1 1
      src/views/integratedManagement/laboratoryManagement/subject/infoPage.vue
  26. 4 4
      src/views/integratedManagement/messageNotice/warningNotice/forewarningConfig.vue
  27. 3 1
      src/views/safetyEducationExam/safeLearning/el_course/coursePreview.vue
  28. 1 1
      src/views/safetyEducationExam/safeLearning/safeLearning/learning.vue

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

@@ -287,6 +287,7 @@ export function systemUserSelect(data) {
 /*                      自定义用户查询-带分页
 * userType              0.系统用户 1.教职工 2.学生  (必传)
 * userName              用户名
+* searchValue           用户名/手机号/卡号
 * mobile                手机号
 * cardNum               卡号
 * account               账号

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

@@ -148,6 +148,14 @@ export function laboratoryClassTypeGetClassCriteria(query) {
     params: query
   })
 }
+//分级认定条件
+export function laboratoryClassTypeGetClassCriteriaLevel(query) {
+  return request({
+    url: '/laboratory/classType/getClassCriteriaLevel',
+    method: 'get',
+    params: query
+  })
+}
 //安全分类列表
 export function laboratoryClassTypeList(data) {
   return request({

+ 1 - 3
src/views/chemicalManage/inventoryManagement/inventoryStatistics/inventoryList.vue

@@ -187,8 +187,7 @@
         loading:false,
         //状态
         statusOptions:[
-          {label:'请选择状态',value:''},
-          {label:'未使用',value:'-1'},
+          {label:'未使用',value:'0'},
           {label:'使用中',value:'1'},
           {label:'超时未归还',value:'2'},
         ],
@@ -196,7 +195,6 @@
         categoryOptions:[],
         //级别
         levelOptions:[
-          {label:'请选择级别',value:''},
           {label:'管控',value:'1'},
           {label:'非管控',value:'2'},
         ],

+ 1 - 2
src/views/chemicalManage/inventoryManagement/inventoryStatistics/listPage.vue

@@ -135,8 +135,7 @@
         pageType:1,
         //状态
         statusOptions:[
-          {label:'请选择状态',value:''},
-          {label:'未使用',value:'-1'},
+          {label:'未使用',value:'0'},
           {label:'使用中',value:'1'},
           {label:'超时未归还',value:'2'},
         ],

+ 283 - 0
src/views/hierarchicalControl/conditionsSettings/addPage.vue

@@ -0,0 +1,283 @@
+<template>
+  <div class="page-container conditionsSettings-addPage">
+    <div class="page-top-title-box">
+      <p class="page-top-title-name-p">{{newData.id?'编辑':'新增'}}</p>
+      <p class="page-top-title-out-p" @click="backPage">返回</p>
+      <p class="page-top-title-add-p" @click="submitForm">提交</p>
+    </div>
+    <div class="content-box scrollbar-box">
+      <el-form class="add-form-box" :model="newData" ref="form" :rules="rules" label-width="110px">
+        <div>
+          <el-form-item label="管控名称" prop="name">
+            <el-input v-model="newData.name" placeholder="请输入管控名称" maxLength="20" style="width:260px;"></el-input>
+          </el-form-item>
+          <el-form-item label="二级单位" prop="deptId">
+            <el-select v-model="newData.deptId" placeholder="请选择二级单位" style="width: 260px">
+              <el-option
+                v-for="dict in deptOptions"
+                :key="dict.deptId"
+                :label="dict.deptName"
+                :value="dict.deptId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <div>
+          <el-form-item label="安全分类" prop="typeId">
+            <el-select v-model="newData.typeId" placeholder="请选择安全分类" style="width: 260px">
+              <el-option
+                v-for="dict in typeList"
+                :key="dict.typeId"
+                :label="dict.typeName"
+                :value="dict.typeId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="安全分类" prop="levelId">
+            <el-select v-model="newData.levelId" placeholder="请选择安全分级" style="width: 260px">
+              <el-option
+                v-for="dict in levelList"
+                :key="dict.levelId"
+                :label="dict.levelName"
+                :value="dict.levelId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <el-form-item label="管控描述" prop="describe">
+          <el-input type="textarea" resize="none" style="width:630px;" show-word-limit
+                    :rows="4"
+                    v-model="newData.describe" placeholder="请输入管控描述" maxlength="100"/>
+        </el-form-item>
+        <el-form-item label="执行人员" prop="userList">
+          <div class="max-big-user-box" style="width:1400px;">
+            <div class="for-user-box" style="display: inline-block;border:1px solid #0045AF;border-radius:4px;padding:0 10px;margin:5px 20px 5px 0;"
+                 v-for="(item,index) in newData.userList" :key="index">
+              <div class="for-user-min-box" style="display: flex;">
+                <p class="user-name-p" style="width:200px;line-height:30px;font-size:14px;color:#0045AF;">{{item.userName}}</p>
+                <p class="user-del-button el-icon-error"  style="cursor: pointer;line-height:30px;color:#999;" @click="delUser(index)"></p>
+              </div>
+            </div>
+          </div>
+          <p class="add-button-p" style="margin:5px 0 0 0;cursor: pointer;text-align: center;font-size:14px;border-radius:4px;width:140px;line-height:30px;color:#0183FA;border:1px solid #0183FA;" @click="shadeOpen" v-if="!newData.userList[9]">添加人员</p>
+        </el-form-item>
+      </el-form>
+    </div>
+    <el-dialog class="conditionsSettings-dialog" title='添加人员' width="460px" append-to-body
+               :visible.sync="shadeType" v-if="shadeType" @close="dialogOff()"
+               :close-on-click-modal="false" :close-on-press-escape="false">
+      <div>
+        <el-form :model="shadeForm" ref="shadeForm" :inline="true" :rules="shadeRules">
+          <el-form-item label="人员查询" prop="userId" class="form-item" label-width="90px">
+            <el-select
+              style="width:300px;"
+              v-model="shadeForm.userId"
+              filterable
+              remote
+              clearable
+              reserve-keyword
+              @change="userChange"
+              placeholder="请输入姓名/工号/手机号"
+              :remote-method="userSelectList">
+              <el-option
+                v-for="item in optionsUser"
+                :key="item.userId"
+                :label="item.userName"
+                :value="item.userId">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div slot="footer" class="dialog-footer dialog-footer-box">
+        <p class="dialog-footer-button-null"></p>
+        <p class="dialog-footer-button-info" @click="shadeOut()">取消</p>
+        <p class="dialog-footer-button-primary" @click="shadeUp">提交</p>
+        <p class="dialog-footer-button-null"></p>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import {
+    getDeptDropList,
+    laboratoryClassTypeGetList,
+    laboratoryClassLevelGetList,
+    systemUserSelect
+  } from '@/api/commonality/permission'
+  //import { getDicts } from "@/api/commonality/noPermission";
+  //import { systemUserSelect } from "@/api/commonality/permission";
+  //import { getInfo } from "@/api/basicsModules/index";
+  export default {
+    name: 'addPage',
+    props:{
+      propsData:{},
+    },
+    data(){
+      return{
+        newData:{
+          name:'',
+          describe:'',
+          deptId:'',
+          typeId:'',
+          levelId:'',
+          userList:[],
+        },
+        //下拉列表数据
+        deptOptions:[],
+        typeList:[],
+        levelList:[],
+        rules: {
+          name: [
+            { required: true, message: "请输入管控名称", trigger: "blur" },
+            { required: true, message: "请输入管控名称", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          describe: [
+            { required: true, message: "请输入管控描述", trigger: "blur" },
+            { required: true, message: "请输入管控描述", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          deptId: [
+            { required: true, message: "请选择二级单位", trigger: "blur" },
+          ],
+          typeId: [
+            { required: true, message: "请选择安全分类", trigger: "blur" },
+          ],
+          levelId: [
+            { required: true, message: "请选择安全分级", trigger: "blur" },
+          ],
+          userList: [
+            { required: true, message: "请选择执行人员", trigger: "blur" },
+          ],
+        },
+        shadeRules: {
+          userId: [
+            { required: true, message: "请选择人员", trigger: "blur" },
+          ],
+        },
+        shadeType:false,
+        // 人员查询列表
+        userName: '',
+        userId: '',
+        optionsUser: [],
+        shadeForm:{},
+      }
+    },
+    created(){
+      this.getDeptDropList();
+      this.laboratoryClassTypeGetList();
+      this.laboratoryClassLevelGetList();
+    },
+    mounted(){
+
+    },
+    methods:{
+      // 返回按钮
+      backPage(){
+        this.$parent.tableButton(6);
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+
+          }
+        })
+      },
+      /** 查询学院列表 */
+      getDeptDropList() {
+        getDeptDropList({ deptName: '', level: 2, deptType: 1 }).then(response => {
+          this.$set(this, 'deptOptions', response.data)
+        })
+      },
+      //查询安全分级
+      laboratoryClassLevelGetList() {
+        laboratoryClassLevelGetList({}).then(response => {
+          this.$set(this, 'levelList', response.data)
+        })
+      },
+      //查询安全分类
+      laboratoryClassTypeGetList() {
+        laboratoryClassTypeGetList({}).then(response => {
+          this.$set(this, 'typeList', response.data)
+        })
+      },
+      //弹层开启
+      shadeOpen() {
+        this.$set(this, 'userName', '')
+        this.$set(this, 'userId', '')
+        this.$set(this.shadeForm, 'userId', '')
+        this.$set(this, 'optionsUser', [])
+        this.$set(this, 'shadeType', true)
+      },
+      //关闭弹层
+      shadeOut() {
+        this.$set(this, 'userName', '')
+        this.$set(this, 'userId', '')
+        this.$set(this.shadeForm, 'userId', '')
+        this.$set(this, 'optionsUser', [])
+        this.$set(this, 'shadeType', false)
+      },
+      //弹窗确定
+      shadeUp() {
+        let self = this;
+        this.$refs['shadeForm'].validate(valid => {
+          if (valid) {
+            for (let i=0;i<self.newData.userList.length;i++){
+              if (self.newData.userList[i].userId == this.userId){
+                this.msgError('人员已存在')
+                return
+              }
+            }
+            this.newData.userList.push({
+              userName:this.userName,
+              userId:this.userId,
+            });
+            this.shadeOut();
+          }
+        })
+      },
+      //人员选择
+      userChange(val) {
+        let self = this
+        for (let i = 0; i < self.optionsUser.length; i++) {
+          if (self.optionsUser[i].userId == val) {
+            this.$set(this, 'userName', self.optionsUser[i].userName)
+            this.$set(this, 'userId', self.optionsUser[i].userId)
+          }
+        }
+      },
+      //查询
+      userSelectList(query) {
+        if (query !== '' && query.length > 1) {
+          systemUserSelect({
+            'userName': query,
+            'userType': '',
+          }).then(response => {
+            this.$set(this, 'optionsUser', response.data)
+          })
+        } else {
+          this.$set(this, 'optionsUser', [])
+        }
+      },
+      delUser(index){
+        this.newData.userList.splice(index,1)
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .conditionsSettings-addPage{
+    .content-box{
+      flex:1;
+      display: flex;
+      padding:20px;
+      .add-form-box{
+        .el-form-item{
+          display: inline-block;
+        }
+      }
+    }
+  }
+</style>

+ 235 - 0
src/views/hierarchicalControl/conditionsSettings/index.vue

@@ -0,0 +1,235 @@
+<!-- 条件设置 -->
+<template>
+  <div class="app-container conditionsSettings">
+    <div class="page-container conditionsSettingsPage" v-if="pageType === 1">
+      <div class="page-form-title-box">
+        <el-form :model="queryParams" class="form-box" ref="queryForm"
+                 :inline="true" style="width:100%;">
+          <el-form-item label="" prop="searchValue">
+            <el-input
+              maxLength="30"
+              v-model="queryParams.searchValue"
+              placeholder="管控名称"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="" prop="deptId">
+            <el-select v-model="queryParams.deptId" placeholder="二级单位" style="width: 200px">
+              <el-option
+                v-for="dict in deptOptions"
+                :key="dict.deptId"
+                :label="dict.deptName"
+                :value="dict.deptId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="typeId">
+            <el-select v-model="queryParams.typeId" placeholder="安全分类" style="width: 200px">
+              <el-option
+                v-for="dict in typeList"
+                :key="dict.typeId"
+                :label="dict.typeName"
+                :value="dict.typeId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="levelId">
+            <el-select v-model="queryParams.levelId" placeholder="安全分级" style="width: 200px">
+              <el-option
+                v-for="dict in levelList"
+                :key="dict.levelId"
+                :label="dict.levelName"
+                :value="dict.levelId"
+              ></el-option>
+            </el-select>
+          </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-add-common-style-button"
+             style="float: right;"
+             @click="tableButton(1)"
+             v-hasPermiRouter="['demo:demo:add']"
+          >新增</p>
+        </el-form>
+      </div>
+      <div class="page-content-box">
+        <el-table class="table-box" v-loading="loading" border :data="dataList">
+          <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="200" show-overflow-tooltip/>
+          <el-table-column label="安全分级" prop="content" width="200" show-overflow-tooltip/>
+          <el-table-column label="创建人" prop="content" width="200" show-overflow-tooltip/>
+          <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 v-if="tableButtonType">
+            <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)"
+                   v-hasPermiRouter="['demo:demo:edit']"
+                >编辑</p>
+                <p class="table-button-p"
+                   @click="tableButton(3,scope.row)"
+                   v-hasPermiRouter="['demo:demo:del']"
+                >删除</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,
+    laboratoryClassTypeGetList,
+    laboratoryClassLevelGetList,
+  } 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:edit','demo:demo:del',]),
+        //页面状态
+        pageType:1,
+        //页面遮罩
+        loading:false,
+        //下拉列表数据
+        deptOptions:[],
+        typeList:[],
+        levelList:[],
+        //查询条件
+        queryParams:{
+          page:1,
+          pageSize:20,
+          searchValue:"",
+          deptId :null,
+          typeId :null,
+          levelId :null,
+        },
+        //列表数据
+        dataList:[],
+        //数据数量
+        total:0,
+        //组件传参
+        propsData:{},
+      }
+    },
+    created () {
+
+    },
+    mounted () {
+      this.getDeptDropList();
+      this.laboratoryClassTypeGetList();
+      this.laboratoryClassLevelGetList();
+      this.getList();
+    },
+    methods: {
+      //查询按钮
+      handleQuery(){
+        this.$set(this.queryParams,'page',1);
+        this.getList();
+      },
+      //重置按钮
+      resetQuery(){
+        this.$set(this,'dateRange',[])
+        this.$set(this,'queryParams',{
+          page:1,
+          pageSize:20,
+          searchValue:"",
+          deptId :null,
+          typeId :null,
+          levelId :null,
+        });
+        this.getList();
+      },
+      //获取数据列表
+      getList(){
+        this.$set(this,'dataList',[{}]);
+        this.$set(this,'total',1);
+        // getListFunction(this.queryParams).then(response => {
+        //   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 = false;
+          this.$set(this,'propsData',obj);
+        }else if(type == 3){
+          //删除
+          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 == 6){
+          //返回并刷新
+          this.$set(this,'pageType',1);
+          this.getList();
+        }
+      },
+      /** 查询学院列表 */
+      getDeptDropList() {
+        getDeptDropList({ deptName: '', level: 2, deptType: 1 }).then(response => {
+          this.$set(this, 'deptOptions', response.data)
+        })
+      },
+      //查询安全分级
+      laboratoryClassLevelGetList() {
+        laboratoryClassLevelGetList({}).then(response => {
+          this.$set(this, 'levelList', response.data)
+        })
+      },
+      //查询安全分类
+      laboratoryClassTypeGetList() {
+        laboratoryClassTypeGetList({}).then(response => {
+          this.$set(this, 'typeList', response.data)
+        })
+      },
+    },
+  }
+</script>
+<style scoped lang="scss">
+  .conditionsSettings{
+    .conditionsSettingsPage{
+
+    }
+  }
+</style>

+ 249 - 0
src/views/hierarchicalControl/executeResult/index.vue

@@ -0,0 +1,249 @@
+<!-- 执行结果 -->
+<template>
+  <div class="app-container executeResult">
+    <div class="page-container executeResultPage" v-if="pageType === 1">
+      <div class="page-form-title-box">
+        <el-form :model="queryParams" class="form-box" ref="queryForm"
+                 :inline="true" style="width:100%;">
+          <el-form-item label="" prop="searchValue">
+            <el-input
+              maxLength="30"
+              v-model="queryParams.searchValue"
+              placeholder="管控名称"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="" prop="deptId">
+            <el-select v-model="queryParams.deptId" placeholder="二级单位" style="width: 200px">
+              <el-option
+                v-for="dict in deptOptions"
+                :key="dict.deptId"
+                :label="dict.deptName"
+                :value="dict.deptId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="typeId">
+            <el-select v-model="queryParams.typeId" placeholder="安全分类" style="width: 200px">
+              <el-option
+                v-for="dict in typeList"
+                :key="dict.typeId"
+                :label="dict.typeName"
+                :value="dict.typeId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="levelId">
+            <el-select v-model="queryParams.levelId" placeholder="安全分级" style="width: 200px">
+              <el-option
+                v-for="dict in levelList"
+                :key="dict.levelId"
+                :label="dict.levelName"
+                :value="dict.levelId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
+          <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
+        </el-form>
+      </div>
+      <div class="page-content-box">
+        <el-table class="table-box" v-loading="loading" border :data="dataList">
+          <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="200" show-overflow-tooltip/>
+          <el-table-column label="安全分级" prop="content" width="200" show-overflow-tooltip/>
+          <el-table-column label="状态" prop="content" width="200" show-overflow-tooltip/>
+          <el-table-column label="执行人" prop="content" width="200" show-overflow-tooltip/>
+          <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 v-if="tableButtonType">
+            <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)"
+                   v-hasPermiRouter="['demo:demo:detail']"
+                >详情</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>
+    <info-page :propsData="propsData" v-if="pageType === 2"></info-page>
+  </div>
+</template>
+<script>
+  import {
+    getDeptDropList,
+    laboratoryClassTypeGetList,
+    laboratoryClassLevelGetList,
+  } from '@/api/commonality/permission'
+  //import { getDicts } from "@/api/commonality/noPermission";
+  //import { systemUserSelect } from "@/api/commonality/permission";
+  //import { getInfo } from "@/api/basicsModules/index";
+  import infoPage from "./infoPage.vue";
+  export default {
+    name: 'index',
+    components: {
+      infoPage
+    },
+    data () {
+      return {
+        tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
+        //页面状态
+        pageType:1,
+        //页面遮罩
+        loading:false,
+        //下拉列表数据
+        deptOptions:[],
+        typeList:[],
+        levelList:[],
+        //查询条件
+        queryParams:{
+          page:1,
+          pageSize:20,
+          searchValue:"",
+          deptId :null,
+          typeId :null,
+          levelId :null,
+        },
+        //时间数据
+        dateRange:[],
+        //列表数据
+        dataList:[],
+        //数据数量
+        total:0,
+        //组件传参
+        propsData:{},
+      }
+    },
+    created () {
+
+    },
+    mounted () {
+      this.getDeptDropList();
+      this.laboratoryClassTypeGetList();
+      this.laboratoryClassLevelGetList();
+      this.getList();
+    },
+    methods: {
+      //查询按钮
+      handleQuery(){
+        this.$set(this.queryParams,'page',1);
+        this.getList();
+      },
+      //重置按钮
+      resetQuery(){
+        this.$set(this,'dateRange',[])
+        this.$set(this,'queryParams',{
+          page:1,
+          pageSize:20,
+          searchValue:"",
+          deptId :null,
+          typeId :null,
+          levelId :null,
+        });
+        this.getList();
+      },
+      //获取数据列表
+      getList(){
+        this.$set(this,'dataList',[{}]);
+        this.$set(this,'total',1);
+        // getListFunction(this.queryParams).then(response => {
+        //   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({ deptName: '', level: 2, deptType: 1 }).then(response => {
+          this.$set(this, 'deptOptions', response.data)
+        })
+      },
+      //查询安全分级
+      laboratoryClassLevelGetList() {
+        laboratoryClassLevelGetList({}).then(response => {
+          this.$set(this, 'levelList', response.data)
+        })
+      },
+      //查询安全分类
+      laboratoryClassTypeGetList() {
+        laboratoryClassTypeGetList({}).then(response => {
+          this.$set(this, 'typeList', response.data)
+        })
+      },
+    },
+  }
+</script>
+<style scoped lang="scss">
+  .executeResult{
+    .executeResultPage{
+
+    }
+  }
+</style>

+ 121 - 0
src/views/hierarchicalControl/executeResult/infoPage.vue

@@ -0,0 +1,121 @@
+<template>
+  <div class="page-container executeResult-infoPage">
+    <div class="page-top-title-box">
+      <p class="page-top-title-name-p">执行结果</p>
+      <p class="page-top-title-out-p" @click="backPage">返回</p>
+    </div>
+    <div class="content-box scrollbar-box">
+      <el-form class="add-form-box">
+        <div class="text-max-box">
+          <p>管控名称:</p>
+          <p>{{newData.data1}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>管控描述:</p>
+          <p>{{newData.data2}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>二级单位:</p>
+          <p>{{newData.data3}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>安全分类:</p>
+          <p>{{newData.data4}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>安全分级:</p>
+          <p>{{newData.data5}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>状态:</p>
+          <p>{{newData.data6?'已执行':'未执行'}}</p>
+        </div>
+        <div class="text-max-box" v-if="newData.data6">
+          <p>执行人:</p>
+          <p>{{newData.data7}}</p>
+        </div>
+        <div class="text-max-box" v-if="newData.data6">
+          <p>执行时间:</p>
+          <p>{{newData.data8}}</p>
+        </div>
+        <div class="text-max-box" v-if="newData.data6">
+          <p>执行备注:</p>
+          <p>{{newData.data9}}</p>
+        </div>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+  //import { getDicts } from "@/api/commonality/noPermission";
+  //import { systemUserSelect } from "@/api/commonality/permission";
+  //import { getInfo } from "@/api/basicsModules/index";
+  export default {
+    name: 'infoPage',
+    props:{
+      propsData:{},
+    },
+    data(){
+      return{
+        newData:{
+          data1:'管控名称',
+          data2:'管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述',
+          data3:'二级单位',
+          data4:'安全分类',
+          data5:'安全分级',
+          data6: false,
+          data7:'执行人',
+          data8:'执行时间',
+          data9:'执行备注',
+        },
+      }
+    },
+    created(){
+
+    },
+    mounted(){
+
+    },
+    methods:{
+      // 返回按钮
+      backPage(){
+        this.$parent.tableButton(6);
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+
+          }
+        })
+      }
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .executeResult-infoPage{
+    .content-box{
+      flex:1;
+      display: flex;
+      padding:20px;
+      .text-max-box{
+        display: flex;
+        p{
+          font-size: 16px;
+          line-height:40px;
+        }
+        p:nth-child(1){
+          width:120px;
+          text-align: right;
+        }
+        p:nth-child(2){
+          width:1200px;
+          line-height:20px;
+          padding:10px 0;
+        }
+      }
+    }
+  }
+</style>

+ 0 - 897
src/views/hierarchicalControl/hierarchicalControl/gradeManage/addPage.vue

@@ -1,897 +0,0 @@
-<!--新增/编辑管控-->
-<template>
-    <div class="gradeManage-addPage">
-      <el-form v-if="pageType == 1" class="gradeManage-addPage-min scrollbar-box" :model="form" ref="form" :rules="rules">
-        <div class="top-max-box">
-          <div class="top-title-box">
-            <p class="color_one">基本信息</p>
-            <p class="reset-button-one" @click="backPage">返回</p>
-          </div>
-          <div class="info-max-box">
-            <el-form-item label="管控名称" prop="name" label-width="80px" style="margin-bottom:20px;">
-              <el-input
-                style="width:180px;"
-                maxlength="15"
-                v-model="form.name"
-                placeholder="请输入管控名称"
-                clearable
-                size="small"
-              />
-            </el-form-item>
-            <el-form-item label="学院" prop="deptId" label-width="80px" style="margin-bottom:20px;">
-              <el-select v-model="form.deptId" placeholder="请选择学院" clearable style="width:180px;" @change="deptChange">
-                <el-option
-                  v-for="dict in deptList"
-                  :key="dict.deptId"
-                  :label="dict.deptName"
-                  :value="dict.deptId"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="实验室类型" prop="moldId" label-width="100px" style="margin-bottom:20px;">
-              <el-select v-model="form.moldId" placeholder="请选择实验室类型" clearable style="width:180px;">
-                <el-option
-                  v-for="dict in labMoldList"
-                  :key="dict.id"
-                  :label="dict.moldName"
-                  :value="dict.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="安全分类" prop="typeId" label-width="80px" style="margin-bottom:20px;">
-              <el-select v-model="form.typeId" placeholder="请选择安全分类" clearable style="width:180px;">
-                <el-option
-                  v-for="dict in typeList"
-                  :key="dict.id"
-                  :label="dict.typeName"
-                  :value="dict.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="安全分级" prop="level" label-width="80px" style="margin-bottom:20px;">
-              <el-select v-model="form.level" placeholder="请选择安全分级" clearable style="width:180px;">
-                <el-option
-                  v-for="dict in levelList"
-                  :key="dict.id"
-                  :label="dict.classifiedName"
-                  :value="dict.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="状态" prop="status" label-width="80px" style="margin-bottom:20px;">
-              <el-switch
-                class="switch captcha-img"
-                :active-value="1"
-                :inactive-value="0"
-                active-color="#0183FA"
-                inactive-color="#999"
-                v-model="form.status"
-                active-text="开"
-                inactive-text="关"
-              >
-              </el-switch>
-            </el-form-item>
-          </div>
-        </div>
-        <div class="bottom-max-box" v-for="(item,index) in form.ruleList" :key="index">
-          <div class="top-title-box" v-if="index == 0">
-            <p class="color_one">管控规则</p>
-          </div>
-          <div class="list-info-max-box">
-            <div class="list-info-top-box">
-              <el-form-item label="规则名称" :prop="'ruleList.'+ index +'.name'" :rules="rules.ruleName" label-width="100px" class="list-info-top-item">
-                <el-input
-                  maxlength="15"
-                  style="width:240px;"
-                  v-model="item.name"
-                  placeholder="请输入名称"
-                  clearable
-                  size="small"
-                />
-              </el-form-item>
-              <el-form-item label="规则描述" :prop="'ruleList.'+ index +'.remark'" :rules="rules.remark" label-width="100px" class="list-info-top-item">
-                <el-input
-                  maxlength="30"
-                  style="width:240px;"
-                  v-model="item.remark"
-                  placeholder="请输入规则描述"
-                  clearable
-                  size="small"
-                />
-              </el-form-item>
-              <p class="list-info-top-del el-icon-delete" v-if="index != 0" @click="delFormBigList(index)"></p>
-            </div>
-            <div class="list-info-bottom-box"
-                 style="position: relative;border-bottom:1px dashed #dedede;"
-                 v-for="(minItem,minIndex) in item.ruleUserList" :key="minIndex">
-              <div style="margin-bottom:20px;">
-                <el-form-item label="确认周期" :prop="'ruleList.'+ index +'.ruleUserList.'+ minIndex +'.cycle'" :rules="rules.cycle" class="info-for-min-box" label-width="100px">
-                  <el-select v-model="minItem.cycle" placeholder="请选择确认周期" clearable @change="(e)=>cycleChange(item,minIndex,e,)" style="width:240px;">
-                    <el-option
-                      v-for="dict in minItem.cycleList"
-                      :key="dict"
-                      :label="dict"
-                      :value="dict"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="确认人员" :prop="'ruleList.'+ index +'.ruleUserList.'+ minIndex +'.type'" :rules="rules.type" class="info-for-min-box" label-width="100px">
-                  <el-select v-model="minItem.type" placeholder="请选择确认人员" clearable @change="(e)=>userTypeClick(e,minItem)" style="width:240px;">
-                    <el-option label="实验室负责人" :value="1" />
-                    <el-option label="实验室准入人员" :value="4" />
-                    <el-option label="当天进入实验室人员" :value="2" />
-                    <el-option label="选择人员" :value="3" />
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="选择人员" v-if="minItem.type == 3" :prop="'ruleList.'+ index +'.ruleUserList.'+ minIndex +'.userIds'" :rules="rules.userIds" label-width="100px" class="info-for-min-box">
-                  <p class="subjectButton" @click="userClick(index,minIndex)">{{minItem.userIds[0]?'已选择'+minItem.userList.length+'人':'选择人员'}}</p>
-                </el-form-item>
-              </div>
-              <div style="position: relative;margin-bottom:30px;">
-                <el-form-item label="执行方式" :prop="'ruleList.'+ index +'.ruleUserList.'+ minIndex +'.isAll'" :rules="rules.isAll" class="info-for-min-box" label-width="80px">
-                  <el-radio-group v-model="minItem.isAll" style="width:240px;">
-                    <el-radio :label="1" style="width:90px;margin:3px 0 0 10px;">多人执行</el-radio>
-                    <el-radio :label="0" style="width:90px;margin:3px 0 0 10px;">单人执行</el-radio>
-                  </el-radio-group>
-                </el-form-item>
-                <el-form-item label="需要上传材料" :prop="'ruleList.'+ index +'.ruleUserList.'+ minIndex +'.isUpload'" :rules="rules.isUpload" class="info-for-min-box" label-width="148px">
-                  <el-radio-group v-model="minItem.isUpload" style="width:240px;">
-                    <el-radio :label="1" style="width:60px;margin:3px 0 0 10px;">是</el-radio>
-                    <el-radio :label="0" style="width:60px;margin:3px 0 0 10px;">否</el-radio>
-                  </el-radio-group>
-                </el-form-item>
-                <el-tooltip placement="top" v-if="minItem.isUpload == 1" style="margin-left:10px;">
-                  <div slot="content">文档格式包含: pdf / docx
-                    <br/>视频格式包含: mp4
-                    <br/>图片格式包含: png / jpeg / gif
-                  </div>
-                  <p class="el-icon-question" style="color:#999;font-size:20px;position: absolute;left:680px;top:11px;"></p>
-                </el-tooltip>
-                <el-form-item label="文件格式" v-if="minItem.isUpload == 1"
-                              :prop="'ruleList.'+ index +'.ruleUserList.'+ minIndex +'.fileFormat'" :rules="rules.fileFormat" class="info-for-min-box" label-width="90px">
-                  <el-checkbox-group v-model="minItem.fileFormat" style="width:240px;">
-                    <el-checkbox label="1" style="width:60px;margin:0 0 0 10px;">文档</el-checkbox>
-                    <el-checkbox label="2" style="width:60px;margin:0 0 0 10px;">视频</el-checkbox>
-                    <el-checkbox label="3" style="width:60px;margin:0 0 0 10px;">图片</el-checkbox>
-                  </el-checkbox-group>
-                </el-form-item>
-              </div>
-              <p class="info-for-min-del el-icon-delete" style="position:absolute;top:50%;right:40px;margin-top:-10px;font-size:24px;" v-if="item.ruleUserList[1]" @click="delFormMinList(item,minIndex)"></p>
-            </div>
-            <p class="add-user-button reset-button-one" @click="addFormMinList(item)">+ 新增确认人员</p>
-          </div>
-        </div>
-        <p class="addBigButton" @click="addFormBigList">+ 新增管控规则</p>
-        <div class="add-button-bottom-box">
-          <p class="reset-button-one" @click="backPage">取消</p>
-          <p class="inquire-button-one" @click="submitForm">保存</p>
-        </div>
-      </el-form>
-      <div v-if="pageType == 2" class="user-list-page">
-        <div class="title-top-box">
-          <p>选择人员</p>
-          <p class="el-icon-close" @click="outUserClick"></p>
-        </div>
-        <div class="button-top-box">
-          <p></p>
-          <p class="add-button-two-90" @click="addUser">+ 新增管控人员</p>
-          <p class="inquire-button-one" @click="okUserClick">提交</p>
-        </div>
-        <div class="table-user-list-box">
-          <el-table border :data="tableUserListMin">
-            <el-table-column label="身份" align="left" prop="positionName"/>
-            <el-table-column label="名称" align="left" prop="nickName"/>
-            <el-table-column label="联系方式" align="left" prop="phonenumber"/>
-            <el-table-column label="学院" align="left" prop="deptName"/>
-            <el-table-column label="专业" align="left" prop="major">
-              <template slot-scope="scope">
-                {{scope.row.major ? scope.row.major : '--'}}
-              </template>
-            </el-table-column>
-            <el-table-column label="班级" align="left" prop="grade">
-              <template slot-scope="scope">
-                {{scope.row.gradeName ? scope.row.gradeName : '--'}}
-              </template>
-            </el-table-column>
-            <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="130">
-              <template slot-scope="scope">
-                <div class="table-button-box">
-                  <p class="table-button-null"></p>
-                  <p class="table-button-p" @click="delItem(scope.row)">删除</p>
-                  <p class="table-button-null"></p>
-                </div>
-              </template>
-            </el-table-column>
-          </el-table>
-          <pagination :page-sizes="[20, 30, 40, 50]"
-            style="margin-top:10px;"
-            :total="total"
-            layout="total, prev, pager, next, jumper"
-            :page.sync="queryParams.page"
-            :limit.sync="queryParams.pageSize"
-            @pagination="pageLit"
-          />
-        </div>
-      </div>
-      <subject-list ref="subjectOpen"></subject-list>
-      <user-list ref="userOpen"></user-list>
-    </div>
-</template>
-
-<script>
-  import { addGradeManage,getGradeManage,updateGradeManage } from "@/api/hierarchicalControl/index";
-  import { filterDept,queryOption,listInfo } from "@/api/commonality/permission";
-  import { listClassifiedAll,listClasstypeAll,listUser } from "@/api/commonality/noPermission";
-  import userList from "./userList.vue"
-  import subjectList from "./subjectList.vue"
-  export default {
-    name: "addPage",
-    components: {
-      subjectList,
-      userList
-    },
-    props:{
-      propsType:{},
-      propsId:{},
-    },
-    data() {
-      return {
-        pageType:1,
-        // 页面状态
-        subjectOpen:false,
-        //时间选择器数据
-        createTimeDate: [],
-        form:{
-          name:"",//名称
-          deptId:'',
-          deptName:"",//学院
-          subs:[],//选中实验室列表
-          subsData:[],
-          ruleList:[//添加选项
-            {
-              name:"",//名称
-              remark:"",//规则描述
-              ruleUserList:[
-                {
-                  type:"",//人员类型 1 实验室负责人,2 当天进入实验室人员,3 选择人员
-                  isAll:"",
-                  isUpload:"",//需要上传材料(0 否,1 是)
-                  fileFormat:[],
-                  cycle:"",//确认周期一天,一周,一月,一年
-                  cycleList:['一天','一周','一月','季度','半年','一年'],
-                  userIds:"",//选择人员id(多个逗号分隔,type=3时有效)
-                  userList:[]
-                }
-              ]
-            }
-          ]
-        },
-        // 表单校验
-        rules: {
-          name: [
-            { required: true, message: "请输入管控名称", trigger: "blur" },
-            { required: true, message: "请输入管控名称", validator: this.spaceJudgment, trigger: "blur" }
-          ],
-          ruleName:[
-            { required: true, message: "请输入规则名称", trigger: "blur" },
-            { required: true, message: "请输入规则名称", validator: this.spaceJudgment, trigger: "blur" }
-          ],
-          deptId: [
-            { required: true, message: "请选择学院", trigger: "blur" }
-          ],
-          subs: [
-            { required: true, message: "请选择实验室", trigger: "blur" }
-          ],
-          remark: [
-            { required: true, message: "请输入规则描述", trigger: "blur" },
-            { required: true, message: "请输入规则描述", validator: this.spaceJudgment, trigger: "blur" }
-          ],
-          type: [
-            { required: true, message: "请选择确认人员", trigger: "blur" }
-          ],
-          isAll: [
-            { required: true, message: "请选择执行方式", trigger: "blur" }
-          ],
-          isUpload: [
-            { required: true, message: "请选择是否需要上传材料", trigger: "blur" }
-          ],
-          cycle: [
-            { required: true, message: "请选择确认周期", trigger: "blur" }
-          ],
-          userIds: [
-            { required: true, message: "请选择人员", trigger: "blur" }
-          ],
-          fileFormat: [
-            { required: true, message: "请选择文件格式", trigger: "blur" }
-          ],
-        },
-        //时间限制
-        cycleList:['一天','一周','一月','季度','半年','一年'],
-        //用户选择index
-        userBigIndex:"",
-        userMinIndex:"",
-        //学院数据
-        deptList:[],
-        //实验室类型
-        labMoldList:[],
-        //分类数据
-        typeList:[],
-        //分级数据
-        levelList:[],
-        //table人员列表数据
-        tableUserIds:[],
-        tableUserList:[],
-        tableUserListMin:[],
-        total:0,
-        queryParams:{
-          page:1,
-          pageSize:20,
-        }
-      }
-    },
-    created() {
-
-    },
-    mounted(){
-      this.filterDept();
-      this.getListClassifiedAll();
-      this.getListClasstypeAll();
-      this.queryOption();
-      if(this.propsType){
-        this.getGradeManage();
-      }
-    },
-    methods: {
-      delItem(item){
-        let self = this;
-        for(let i=0;i<self.tableUserList.length;i++){
-          if(self.tableUserList[i].userId == item.userId){
-            self.tableUserList.splice(i,1);
-            self.pageLit();
-            break
-          }
-        }
-      },
-      //翻页处理
-      pageLit(){
-        let self = this;
-        let num = (this.queryParams.page - 1) * this.queryParams.pageSize;
-        let maxNum = num+10;
-        let list = [];
-        for(let i = num ;i<self.tableUserList.length;i++){
-          if(i<maxNum){
-            list.push(self.tableUserList[i]);
-          }
-        }
-        this.$set(this,'tableUserListMin',list);
-        this.$set(this,'total',this.tableUserList.length);
-      },
-      //获取学院
-      filterDept(){
-        filterDept().then(response => {
-          this.deptList = response.data;
-        });
-      },
-      //选中学院
-      deptChange(e){
-        let self = this;
-        for(let i=0;i<self.deptList.length;i++){
-          if(e == self.deptList[i].deptId){
-            this.form.deptName = self.deptList[i].deptName;
-            this.form.deptId = self.deptList[i].deptId;
-          }
-        }
-      },
-      //选中周期
-      cycleChange(item,minIndex,e){
-        this.$forceUpdate()
-        let num = 0;
-        for(let i=0;i<item.ruleUserList.length;i++){
-          if(item.ruleUserList[i].cycle == e){
-            num++
-          }
-        }
-        if(num>1){
-          item.ruleUserList[minIndex].cycle = '';
-          this.msgError('同一个规则下确认周期不能相同')
-        }
-      },
-      queryOption(){
-        queryOption({}).then(response=>{
-          if(response.code==200){
-            this.labMoldList=response.data
-          }
-        })
-      },
-      //查询安全分级
-      getListClassifiedAll(){
-        listClassifiedAll().then(response=>{
-          if(response.code==200){
-            this.levelList=response.data
-          }
-        })
-      },
-      //查询安全分类
-      getListClasstypeAll(){
-        listClasstypeAll().then(response=>{
-          if(response.code==200){
-            this.typeList=response.data;
-          }
-        });
-      },
-      //获取数据详情
-      getGradeManage(){
-        let self = this;
-        getGradeManage(this.propsId).then(response=>{
-          let userIds = "";
-          for(let i=0;i<response.data.ruleList.length;i++){
-            for(let o=0;o<response.data.ruleList[i].ruleUserList.length;o++){
-              userIds = userIds + response.data.ruleList[i].ruleUserList[o].userIds + ',';
-              this.$set(response.data.ruleList[i].ruleUserList[o],'userList',[]);
-              if (response.data.ruleList[i].ruleUserList[o].isUpload == 1 && response.data.ruleList[i].ruleUserList[o].fileFormat){
-                this.$set(response.data.ruleList[i].ruleUserList[o],'fileFormat',response.data.ruleList[i].ruleUserList[o].fileFormat.split(','));
-              }else{
-                this.$set(response.data.ruleList[i].ruleUserList[o],'fileFormat',[]);
-              }
-              if(response.data.ruleList[i].ruleUserList[o].type == 2){
-                response.data.ruleList[i].ruleUserList[o].cycleList = ['一天'];
-              }else{
-                response.data.ruleList[i].ruleUserList[o].cycleList = ['一天','一周','一月','季度','半年','一年'];
-              }
-            }
-          }
-          this.$set(this,'form',response.data);
-          //获取选中实验室列表
-          let subjectData = {
-            page:1,
-            pageSize:20,
-            subIds:response.data.subIds
-          };
-          listInfo(subjectData).then(response => {
-            this.$set(this.form,'subsData',response.rows)
-          });
-          //获取选中人员列表
-          let userData = {
-            page:1,
-            pageSize: 1000,
-            paramIds:userIds
-          }
-          listUser(userData).then(response => {
-            for(let a=0;a<response.rows.length;a++){
-              for(let i=0;i<self.form.ruleList.length;i++){
-                for(let o=0;o<self.form.ruleList[i].ruleUserList.length;o++){
-                  let text = response.rows[a].userId + '';
-                  if (self.form.ruleList[i].ruleUserList[o].userIds.indexOf(text) != -1){
-                    self.form.ruleList[i].ruleUserList[o].userList.push(response.rows[a]);
-                  }
-                }
-              }
-            }
-          });
-        });
-      },
-      //接收实验室列表数据
-      takeSubjectData(ids,data){
-        this.$set(this.form,'subs',ids);
-        this.$set(this.form,'subsData',data);
-        this.$refs.subjectOpen.show();
-      },
-      //接收人员列表数据
-      takeUserData(ids,data){
-        let self = this;
-        for(let i=0;i<data.length;i++){
-          self.tableUserList.push(data[i]);
-        }
-        // this.$set(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex],'userIds',ids);
-        // this.$set(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex],'userList',data);
-        this.$refs.userOpen.show();
-        this.pageLit();
-      },
-      //选择实验室
-      subjectTypeClick(){
-        if(this.form.subs[0]){
-          this.$refs.subjectOpen.show(this.form.subsData);
-        }else{
-          this.$refs.subjectOpen.show();
-        }
-      },
-      outUserClick(){
-        this.pageType = 1;
-      },
-      addUser(){
-        let self = this;
-        let list = [];
-        for (let i=0;i<self.tableUserList.length;i++) {
-          list.push(self.tableUserList[i].userId);
-        }
-        if(this.tableUserList[0]){
-          // this.$refs.userOpen.show(this.tableUserList);
-          this.$refs.userOpen.show(list);
-        }else{
-          this.$refs.userOpen.show();
-        }
-      },
-      //选择人员
-      userClick(index,minIndex){
-        this.pageType = 2;
-        this.$set(this,'userBigIndex',index);
-        this.$set(this,'userMinIndex',minIndex);
-        this.$set(this,'tableUserList',JSON.parse(JSON.stringify(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex].userList)))
-        this.pageLit();
-        // this.$set(this,'userBigIndex',index);
-        // this.$set(this,'userMinIndex',minIndex);
-        // if(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex].userIds[0]){
-        //   this.$refs.userOpen.show(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex].userList);
-        // }else{
-        //   this.$refs.userOpen.show();
-        // }
-      },
-      //确定选择人员
-      okUserClick(){
-        let self = this;
-        let ids = [];
-        for(let i=0;i<self.tableUserList.length;i++){
-          ids.push(self.tableUserList[i].userId);
-        }
-        this.$set(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex],'userIds',JSON.parse(JSON.stringify(ids)));
-        this.$set(this.form.ruleList[this.userBigIndex].ruleUserList[this.userMinIndex],'userList',JSON.parse(JSON.stringify(this.tableUserList)));
-        this.pageType = 1;
-      },
-      //页面切换按钮
-      pageTypeClick(type){
-        if(this.pageType != type){
-          if(type == 1){
-            this.pageType = 1;
-          }else if(type == 2){
-            this.pageType = 2;
-          }
-        }
-      },
-      //提交按钮
-      submitForm(type) {
-        let self = this;
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            //检测是否有多选人员
-            for(let i=0;i<self.form.ruleList.length;i++){
-              let type1 = 0;
-              let type2 = 0;
-              for(let o=0;o<self.form.ruleList[i].ruleUserList.length;o++){
-                if(self.form.ruleList[i].ruleUserList[o].type == 1){
-                  type1++
-                }else if(self.form.ruleList[i].ruleUserList[o].type == 2){
-                  type2++
-                }
-              }
-              if(type1>1){
-                this.msgError('名称为:'+self.form.ruleList[i].name+'的管控规则下,无法添加多条实验室负责人');
-                return
-              }
-              if(type2>1){
-                this.msgError('名称为:'+self.form.ruleList[i].name+'的管控规则下,无法添加多条当天进入实验室人员');
-                return
-              }
-            }
-            let form = JSON.parse(JSON.stringify(self.form));
-            for(let i=0;i<form.ruleList.length;i++){
-              for(let o=0;o<form.ruleList[i].ruleUserList.length;o++){
-                form.ruleList[i].ruleUserList[o].userIds = form.ruleList[i].ruleUserList[o].userIds + '';
-                if(form.ruleList[i].ruleUserList[o].isUpload == 1){
-                  form.ruleList[i].ruleUserList[o].fileFormat = form.ruleList[i].ruleUserList[o].fileFormat + '';
-                }else {
-                  form.ruleList[i].ruleUserList[o].fileFormat = '';
-                }
-              }
-            }
-            if(form.id){
-              this.updateGradeManage(form);
-            }else{
-              this.addGradeManage(form);
-            }
-          }
-        });
-      },
-      //编辑接口
-      updateGradeManage(obj){
-        updateGradeManage(obj).then(response=>{
-          this.msgSuccess("操作成功");
-          this.$parent.clickPageType(1);
-        });
-      },
-      //新增接口
-      addGradeManage(obj){
-        addGradeManage(obj).then(response=>{
-          this.msgSuccess("操作成功");
-          this.$parent.clickPageType(1);
-        });
-      },
-      //返回
-      backPage(){
-        this.$parent.clickPageType(1);
-      },
-      //新增管控规则
-      addFormBigList(){
-        let obj = {
-          name:"",
-          remark:"",
-          ruleUserList:[
-            {
-              type:"",//人员类型 1 实验室负责人,2 当天进入实验室人员,3 选择人员
-              isAll:"",
-              isUpload:"",//需要上传材料(0 否,1 是)
-              fileFormat:[],
-              cycle:"",//确认周期一天,一周,一月,一年
-              cycleList:['一天','一周','一月','季度','半年','一年'],
-              userIds:"",//选择人员id(多个逗号分隔,type=3时有效)
-              userList:[]
-            }
-          ]
-        }
-        this.form.ruleList.push(obj);
-        this.$forceUpdate();
-      },
-      //删除管控规则
-      delFormBigList(index){
-        this.form.ruleList.splice(index,1);
-        this.$forceUpdate();
-      },
-      //添加人员选项
-      addFormMinList(item){
-        let obj = {
-          type:"",//人员类型 1 实验室负责人,2 当天进入实验室人员,3 选择人员
-          isAll:"",
-          isUpload:"",//需要上传材料(0 否,1 是)
-          fileFormat:[],
-          cycle:"",//确认周期一天,一周,一月,一年
-          cycleList:['一天','一周','一月','季度','半年','一年'],
-          userIds:"",//选择人员id(多个逗号分隔,type=3时有效)
-          userList:[]
-        }
-        item.ruleUserList.push(obj);
-        this.$forceUpdate();
-      },
-      //删除人员选项
-      delFormMinList(item,minIndex){
-        item.ruleUserList.splice(minIndex,1);
-        this.$forceUpdate();
-      },
-      //选择人员类型
-      userTypeClick(e,minItem){
-        if(e == 2){
-          let list = ['一天'];
-          this.$set(minItem,'cycleList',list);
-          this.$set(minItem,'cycle','一天');
-        }else{
-          let list = ['一天','一周','一月','季度','半年','一年'];
-          this.$set(minItem,'cycleList',list);
-        }
-        // this.$set(this.form.ruleList[index].ruleUserList[minIndex],'cycle','一天');
-      },
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  .gradeManage-addPage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    overflow: hidden;
-    /*padding:0 20px!important;*/
-    *{
-      margin:0
-    }
-    .gradeManage-addPage-min{
-      .top-max-box{
-        padding:0 20px;
-        margin:5px 20px 20px 10px;
-        box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-        border-radius:10px;
-        .top-title-box{
-          display: flex;
-          border-bottom:1px solid #dedede;
-          p:nth-child(1){
-            flex:1;
-            line-height:80px;
-            font-size:18px;
-          }
-          p:nth-child(2){
-            width:100px;
-            margin:20px 0;
-          }
-          p:nth-child(3){
-            width:100px;
-            margin:20px 0 0 20px;
-          }
-        }
-        .info-max-box{
-          padding:30px 0;
-          margin:0 20px;
-          display: flex;
-          flex-wrap: wrap;
-          .subjectButton{
-            cursor:pointer;
-            display: inline-block;
-            text-align: center;
-            width: 220px;
-            height: 38px;
-            line-height:38px;
-            border-radius: 4px;
-            border: 1px solid #DCDFE6;
-            color:#999;
-            font-size: 14px;
-            font-weight:500;
-            background:#ffffff;
-            margin:0;
-          }
-          .subjectButton:hover{
-            color:#0183FA;
-            background:rgba(1,131,250,0.1);
-            border: 1px solid #0183FA;
-          }
-        }
-      }
-      .bottom-max-box{
-        margin:0 20px 20px 10px;
-        padding:0 20px 20px;
-        box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-        border-radius:10px;
-        .top-title-box{
-          display: flex;
-          border-bottom:1px solid #dedede;
-          p:nth-child(1){
-            flex:1;
-            line-height:80px;
-            font-size:18px;
-          }
-          p:nth-child(2){
-            width:100px;
-            margin:20px 0;
-          }
-          p:nth-child(3){
-            width:100px;
-            margin:20px 0 0 20px;
-          }
-        }
-        .list-info-max-box{
-          border-radius:10px;
-          .list-info-top-box{
-            padding: 30px 0;
-            border-bottom:1px solid #dedede;
-            .list-info-top-item{
-              display: inline-block;
-              margin-bottom: 20px;
-            }
-            .list-info-top-del{
-              display: inline-block;
-              margin-left:40px;
-              cursor: pointer;
-              color:#999;
-            }
-          }
-          .list-info-bottom-box{
-            padding:30px 0 0;
-            .info-for-min-box{
-              display: inline-block;
-            }
-            .info-for-min-del{
-              display: inline-block;
-              margin-left:20px;
-              cursor: pointer;
-              color:#999;
-            }
-            .subjectButton{
-              cursor:pointer;
-              display: inline-block;
-              text-align: center;
-              width: 220px;
-              height: 38px;
-              line-height:38px;
-              border-radius: 4px;
-              border: 1px solid #DCDFE6;
-              color:#999;
-              font-size: 14px;
-              font-weight:500;
-              background:#ffffff;
-              margin:0;
-            }
-            .subjectButton:hover{
-              color:#0183FA;
-              background:rgba(1,131,250,0.1);
-              border: 1px solid #0183FA;
-            }
-          }
-          .add-user-button{
-            margin:30px auto 0;
-            width:200px;
-            display: block;
-            border:none;
-            color:#0183FA;
-          }
-        }
-      }
-      .addBigButton{
-        width: 400px;
-        height: 40px;
-        margin:30px auto 0;
-        line-height:40px;
-        border-radius: 6px;
-        border:1px dashed #dedede;
-        color:#333;
-        font-size:14px;
-        background:#fff;
-        cursor: pointer;
-        text-align: center;
-      }
-      .add-button-bottom-box{
-        width:260px;
-        margin:30px auto;
-        display: flex;
-        p:nth-child(1){
-          display: block;
-          width:120px;
-          margin-right:20px;
-        }
-        p:nth-child(2){
-          display: block;
-          width:120px;
-        }
-      }
-    }
-    .user-list-page{
-      flex:1;
-      display: flex;
-      flex-direction: column;
-      overflow: hidden;
-      /*padding:0 20px;*/
-      margin:5px 20px 20px 10px;
-      box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-      border-radius:10px;
-      .title-top-box{
-        display: flex;
-        border-bottom:1px solid #dedede;
-        p:nth-child(1){
-          flex:1;
-          line-height:80px;
-          font-size:18px;
-          color:#0045af;
-          margin-left:30px;
-        }
-        p:nth-child(2){
-          font-size:24px;
-          width:40px;
-          line-height:40px;
-          color:#999;
-          text-align: center;
-          cursor: pointer;
-          margin:20px 30px;
-          border-radius:50%;
-        }
-        p:nth-child(2):hover{
-          background: #999;
-          color:#fff;
-        }
-      }
-      .button-top-box{
-        display: flex;
-        p:nth-child(1){
-          flex:1;
-        }
-        p:nth-child(2){
-          width:140px;
-          margin:20px 0;
-        }
-        p:nth-child(3){
-          margin:20px;
-        }
-      }
-      .table-user-list-box{
-        margin:0 20px 20px;
-        overflow: hidden;
-        flex:1;
-        display:flex;
-        flex-direction: column
-      }
-    }
-  }
-</style>

+ 0 - 439
src/views/hierarchicalControl/hierarchicalControl/gradeManage/index.vue

@@ -1,439 +0,0 @@
-<!--分级管控管理-->
-<template>
-  <div class="gradeManage">
-    <div class="gradeManage-page" v-if="pageType == 1">
-      <advanced-search :searchData="searchData"></advanced-search>
-      <el-table v-loading="loading" border :data="gradeManageList" @selection-change="handleSelectionChange">
-        <!--<el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column label="管控名称" align="left" prop="name" show-overflow-tooltip/>
-        <el-table-column label="学院" align="left" prop="deptName" width="149" show-overflow-tooltip/>
-        <el-table-column label="实验室类型" align="left" prop="moldName" width="149">
-          <template slot-scope="scope">{{scope.row.moldName?scope.row.moldName:'--'}}</template>
-        </el-table-column>
-        <el-table-column label="安全分类" align="left" prop="typeName" width="130">
-          <template slot-scope="scope">{{scope.row.typeName?scope.row.typeName:'--'}}</template>
-        </el-table-column>
-        <el-table-column label="安全分级" align="left" prop="levelName" width="130">
-          <template slot-scope="scope">{{scope.row.levelName?scope.row.levelName:'--'}}</template>
-        </el-table-column>
-        <el-table-column label="管控规则数" align="left" prop="ruleNum" width="130"/>
-        <el-table-column label="状态" align="left" prop="status" width="149">
-          <template slot-scope="scope">
-            <span :class="scope.row.status == 1?'tableTypeColorA':(scope.row.status == 0?'tableTypeColorB':'')">{{scope.row.status == 1?'开启':(scope.row.status == 0?'关闭':'')}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="编辑人" align="left" prop="updateBy" width="149"/>
-        <el-table-column label="编辑时间" align="left" prop="updateTime" width="179"/>
-        <!--<el-table-column label="适配实验室数" align="left" prop="subNum" />-->
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px" v-if="tableButtonType">
-          <template slot-scope="scope">
-            <div class="table-button-box">
-              <p class="table-button-null"></p>
-              <p class="table-button-p"
-                 @click="clickPageType(3,scope.row)"
-                 v-hasPermiAnd="['laboratory:gradeManage:query','laboratory:gradeManage:edit']"
-              >编辑</p>
-              <p class="table-button-p"
-                 @click="handleDelete(scope.row)"
-                 v-hasPermi="['laboratory:gradeManage:remove']"
-              >删除</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>
-    <!-- 新增编辑 -->
-    <add-page v-if="pageType == 2" :propsType="propsType" :propsId="propsId"></add-page>
-    <!-- 添加或修改分级管控管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
-        </el-form-item>
-        <el-form-item label="安全分级ID" prop="level">
-          <el-input v-model="form.level" placeholder="请输入安全分级ID" />
-        </el-form-item>
-        <el-form-item label="安全分类ID" prop="typeId">
-          <el-input v-model="form.typeId" placeholder="请输入安全分类ID" />
-        </el-form-item>
-        <el-form-item label="适配实验室多选逗号分隔" prop="subIds">
-          <el-input v-model="form.subIds" placeholder="请输入适配实验室多选逗号分隔" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer dialog-footer-box">
-        <p class="dialog-footer-button-null"></p >
-        <p class="dialog-footer-button-info" @click="cancel">取消</p >
-        <p class="dialog-footer-button-primary" @click="submitForm">提交</p >
-        <p class="dialog-footer-button-null"></p >
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-  import { listGradeManage, getGradeManage, delGradeManage, addGradeManage, updateGradeManage } from "@/api/hierarchicalControl/index";
-  import { queryOption } from "@/api/commonality/permission";
-  import { listDepartments,listClassifiedAll,listClasstypeAll } from "@/api/commonality/noPermission";
-  import addPage from "./addPage.vue"
-  import advancedSearch from "@/components/ZDcomponents/advancedSearch.vue"
-
-  export default {
-    name: "GradeManage",
-    components: {
-      addPage,
-      advancedSearch
-    },
-    data() {
-      return {
-        tableButtonType:this.hasPermiDom(['laboratory:gradeManage:query','laboratory:gradeManage:edit','laboratory:gradeManage:remove']),
-        //页面状态
-        pageType:1,
-        // 遮罩层
-        loading: true,
-        // 选中数组
-        ids: [],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 分级管控管理表格数据
-        gradeManageList: [],
-        // 弹出层标题
-        title: "",
-        // 是否显示弹出层
-        open: false,
-        // 查询参数
-        queryParams: {
-          page: 1,
-          pageSize:20,
-          searchValue: null,
-          status:null,
-          typeId:null,
-          level:null,
-        },
-        // 表单参数
-        form: {},
-        // 表单校验
-        rules: {
-        },
-        // //分类数据
-        typeList:[],
-        // //分级数据
-        levelList:[],
-        propsType:false,
-        propsId:{},
-        //高级搜索组件参数
-        searchData:{
-          buttonList:[
-            {
-              name:"新增",
-              parameter:"add",
-              type:"1", //按钮类型 1.按钮 2.导入 3.导出
-              hasPermi:['laboratory:gradeManage:add'] // 权限字段
-            },
-          ],
-          searchList:[
-            {
-              name:"关键字",//名称
-              key:"searchValue",//键名 用于返回数据
-              value:"",//内容
-              placeholder:"请输入名称/学院",//输入提示
-              level:"1",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-              type:"1",//类型 1.input 2.select 3.TimePicker
-              universal:'10',//input 最大长度
-            },
-            {
-              name:"学院",//名称
-              key:"deptId",//键名 用于返回数据
-              value:"",//内容
-              placeholder:"请选择学院",//输入提示
-              level:"1",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-              type:"2",//类型 1.input 2.select 3.TimePicker
-              universal:[],//select列表数据
-            },
-            {
-              name:"安全分类",//名称
-              key:"typeId",//键名 用于返回数据
-              value:"",//内容
-              placeholder:"请选择安全分类",//输入提示
-              level:"1",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-              type:"2",//类型 1.input 2.select 3.TimePicker
-              universal:[],//select列表数据
-            },
-            {
-              name:"安全分级",//名称
-              key:"level",//键名 用于返回数据
-              value:"",//内容
-              placeholder:"请选择安全分级",//输入提示
-              level:"1",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-              type:"2",//类型 1.input 2.select 3.TimePicker
-              universal:[],//select列表数据
-            },
-            {
-              name:"状态",//名称
-              key:"status",//键名 用于返回数据
-              value:"",//内容
-              placeholder:"请选择状态",//输入提示
-              level:"2",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-              type:"2",//类型 1.input 2.select 3.TimePicker
-              universal:[
-                {label:"开启",value:"1"},{label:"关闭",value:"0"},
-              ],//select列表数据
-            },
-            {
-              name:"类型",//名称
-              key:"moldId",//键名 用于返回数据
-              value:"",//内容
-              placeholder:"请选择类型",//输入提示
-              level:"2",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-              type:"2",//类型 1.input 2.select 3.TimePicker
-              universal:[],//select列表数据
-            },
-          ]
-
-        }
-      };
-    },
-    created() {
-
-    },
-    mounted(){
-      this.getListClassifiedAll();
-      this.getListClasstypeAll();
-      this.listDepartments();
-      this.queryOption();
-      this.getList();
-    },
-    methods: {
-      //高级搜索按钮方法
-      searchClick(type,data){
-        if(type == 1){
-          this.queryParams = JSON.parse(JSON.stringify(data));
-          this.queryParams.page = 1;
-          this.queryParams.pageSize = 20;
-          this.getList();
-        }else if(type == 2){
-          this.queryParams = {
-            page : 1,
-            pageSize:20,
-          };
-          this.getList();
-        }else if(type == 'add'){
-          this.clickPageType(2);
-        }
-      },
-      //获取实验室类型
-      queryOption(){
-        queryOption({}).then(response => {
-          let list = [];
-          for(let i=0;i<response.data.length;i++){
-            list.push({label:response.data[i].moldName, value:response.data[i].id,})
-          }
-          this.searchData.searchList[5].universal = list;
-        });
-      },
-      //获取学院
-      listDepartments(){
-        listDepartments().then(response => {
-          let list = [];
-          for(let i=0;i<response.data.length;i++){
-            list.push({label:response.data[i].deptName, value:response.data[i].deptId,})
-          }
-          this.searchData.searchList[1].universal = list;
-        });
-      },
-      //查询安全分级
-      getListClassifiedAll(){
-        listClassifiedAll().then(response=>{
-          if(response.code==200){
-            // this.levelList=response.data
-            let list = [];
-            for(let i=0;i<response.data.length;i++){
-              list.push({label:response.data[i].classifiedName, value:response.data[i].id,})
-            }
-            this.searchData.searchList[3].universal = list;
-          }
-        })
-      },
-      //查询安全分类
-      getListClasstypeAll(){
-        listClasstypeAll().then(response=>{
-          if(response.code==200){
-            // this.typeList=response.data;
-            let list = [];
-            for(let i=0;i<response.data.length;i++){
-              list.push({label:response.data[i].typeName, value:response.data[i].id,})
-            }
-            this.searchData.searchList[2].universal = list;
-          }
-        });
-      },
-      //页面切换
-      clickPageType(type,row){
-        if(this.pageType != type){
-          if(type == 1){
-            this.getList();
-            this.pageType = 1;
-          }else if(type == 2){
-            this.pageType = 2;
-            this.propsType = false;
-          }else if(type == 3){
-            this.pageType = 2;
-            this.propsType = true;
-            this.propsId = row.id;
-          }
-        }
-      },
-      /** 查询分级管控管理列表 */
-      getList() {
-        this.loading = true;
-        listGradeManage(this.queryParams).then( response => {
-          this.gradeManageList =  response.rows;
-          this.total =  response.total;
-          this.loading = false;
-        });
-      },
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        this.reset();
-      },
-      // 表单重置
-      reset() {
-        this.form = {
-          id: null,
-          deptId: null,
-          deptName: null,
-          userId: null,
-          createBy: null,
-          createTime: null,
-          updateBy: null,
-          updateTime: null,
-          remark: null,
-          level: null,
-          typeId: null,
-          subIds: null
-        };
-        this.resetForm("form");
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.page = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        // this.resetForm("queryForm");
-        this.queryParams.searchValue=null;
-        this.queryParams.status=null;
-        this.queryParams.typeId=null;
-        this.queryParams.level=null;
-        this.handleQuery();
-      },
-      // 多选框选中数据
-      handleSelectionChange(selection) {
-        this.ids = selection.map(item => item.id)
-        this.single = selection.length!==1
-        this.multiple = !selection.length
-      },
-      /** 新增按钮操作 */
-      handleAdd() {
-        this.reset();
-        this.open = true;
-        this.title = "添加分级管控管理";
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.reset();
-        const id = row.id || this.ids
-        getGradeManage(id).then( response => {
-          this.form =  response.data;
-          this.open = true;
-          this.title = "修改分级管控管理";
-        });
-      },
-      /** 提交按钮 */
-      submitForm() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            if (this.form.id != null) {
-              updateGradeManage(this.form).then( response => {
-                this.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              });
-            } else {
-              addGradeManage(this.form).then( response => {
-                this.msgSuccess("新增成功");
-                this.open = false;
-                this.getList();
-              });
-            }
-          }
-        });
-      },
-      /** 删除按钮操作 */
-      handleDelete(row) {
-        const ids = row.id || this.ids;
-        this.$confirm('是否确认删除?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delGradeManage(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(() => {});
-      },
-      /** 导出按钮操作 */
-      handleExport() {
-        this.download('laboratory/gradeManage/export', {
-          ...this.queryParams
-        }, `laboratory_gradeManage.xlsx`)
-      }
-    }
-  };
-</script>
-
-<style lang="scss" scoped>
-  .gradeManage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    overflow: hidden;
-    .gradeManage-page{
-      flex:1;
-      display: flex!important;
-      flex-direction: column;
-      padding:15px 20px!important;
-      box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-      border-radius:10px;
-      margin:5px 20px 20px 10px;
-      overflow: hidden;
-    }
-    .button-box{
-      margin:0 auto;
-      width:190px;
-      display: flex;
-    }
-    .tableTypeColorA{
-      color:#2AA408;
-    }
-    .tableTypeColorB{
-      color:#FF3131;
-    }
-  }
-</style>

+ 0 - 234
src/views/hierarchicalControl/hierarchicalControl/gradeManage/subjectList.vue

@@ -1,234 +0,0 @@
-<!--分级管控/实验室列表-->
-<template>
-  <div class="subjectList" v-if="subjectOpen">
-    <el-dialog title="选择实验室" :visible.sync="subjectOpen" width="1500px" append-to-body :close-on-click-modal="false">
-      <div class="gradeManage-subjectList" style="height:626px;display: flex;flex-direction: column">
-        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
-          <el-form-item label="实验室" prop="name" label-width="80px">
-            <el-input
-              style="width:160px;"
-              maxlength="10"
-              v-model="queryParams.name"
-              placeholder="请输入实验室名称"
-              clearable
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="学院" prop="deptId">
-            <el-select style="width:160px;" v-model="queryParams.deptId" placeholder="请选择学院" clearable label-width="80px">
-              <el-option
-                v-for="dict in deptList"
-                :key="dict.deptId"
-                :label="dict.deptName"
-                :value="dict.deptId"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="安全分类" prop="typeId">
-            <el-select style="width:160px;" v-model="queryParams.typeId" placeholder="请选择安全分类" clearable label-width="80px">
-              <el-option
-                v-for="dict in typeList"
-                :key="dict.id"
-                :label="dict.typeName"
-                :value="dict.id"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="安全分级" prop="level">
-            <el-select style="width:160px;" v-model="queryParams.level" placeholder="请选择安全分级" clearable label-width="80px">
-              <el-option
-                v-for="dict in levelList"
-                :key="dict.id"
-                :label="dict.classifiedName"
-                :value="dict.id"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="实验室负责人" prop="adminName" label-width="100px">
-            <el-input
-              style="width:160px;"
-              maxlength="10"
-              v-model="queryParams.adminName"
-              placeholder="请输入姓名"
-              clearable
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item>
-            <p class="inquire-button-one" @click="handleQuery">查询</p>
-            <p class="reset-button-one" @click="resetQuery">重置</p>
-          </el-form-item>
-        </el-form>
-        <div class="sheet-expand-box" style="height:40px;display:flex;background:rgba(1,131,250,0.1);border-radius: 5px;margin-bottom:18px;font-size:14px;">
-          <i class="el-icon-warning" style="color:#0045AF;margin:10px 16px 0 14px;height:20px;width:20px;font-size:20px;display: block;"></i>
-          <p class="color_99" style="margin:0;width:132px;font-size:14px;height:40px;line-height:40px;">已选择 {{selectedNum}} 项</p>
-          <p class="color_one cursor_hover" style="margin:0;width:60px;font-size:14px;height:40px;line-height:40px;margin-right:20px;" @click="selectPage">全选本页</p>
-          <p class="color_warn cursor_hover" style="margin:0;width:60px;font-size:14px;height:40px;line-height:40px;margin-right:20px;" @click="clearSelection">清除选项</p>
-        </div>
-        <el-table v-loading="loading" border :data="subjectList" @selection-change="handleSelectionChange" ref="multipleTable" :row-key="getRowKeys">
-          <el-table-column type="selection" width="55" :reserve-selection="true" align="center" />
-          <el-table-column label="实验室" align="left" prop="name" />
-          <el-table-column label="学院" align="left" prop="deptName" />
-          <el-table-column label="安全分类" align="left" prop="typeName" />
-          <el-table-column label="安全分级" align="left" prop="levelName" />
-          <el-table-column label="实验室负责人" align="left" prop="adminName" />
-        </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 style="margin-top:30px;padding-top:20px;display: flex;border-top:1px solid #dedede">
-          <p style="flex:1;"></p>
-          <p style="margin-right:20px;" class="reset-button-one" @click="show(2)">取消</p>
-          <p class="inquire-button-one" @click="okButton">提交</p>
-        </div>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-  import { listInfo } from "@/api/commonality/permission";
-  import { listClassifiedAll,listClasstypeAll,listDepartments } from "@/api/commonality/noPermission";
-  export default {
-    name: "subjectList",
-    props:{
-
-    },
-    data() {
-      return {
-        subjectOpen:false,
-        loading:false,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        queryParams:{
-          page:1,
-          pageSize:20,
-        },
-        subjectList:[],
-        //已选中数量
-        selectedNum:0,
-        //已选中
-        ids:[],
-        idData:[],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        //分类数据
-        typeList:[],
-        //分级数据
-        levelList:[],
-      }
-    },
-    created(){
-
-    },
-    mounted(){
-      this.getListClasstypeAll();
-      this.getListClassifiedAll();
-      this.listDepartments();
-      this.getList();
-    },
-    methods:{
-      //确定按钮
-      okButton(){
-        if(!this.ids[0]){
-          this.msgError("请勾选实验室")
-          return
-        }
-        this.$parent.takeSubjectData(this.ids,this.idData);
-      },
-      //获取学院
-      listDepartments(){
-        listDepartments().then(response => {
-          this.deptList = response.data;
-        });
-      },
-      show(data){
-        let self = this;
-        this.subjectOpen = !this.subjectOpen;
-        if(data){
-          this.queryParams.page = 1;
-          setTimeout(function(){
-            for(let i=0;i<data.length;i++){
-              self.$refs.multipleTable.toggleRowSelection(data[i],true)
-            }
-            self.getList();
-          },100);
-        }
-      },
-      //获取数据列表
-      getList(){
-        this.loading = true;
-        listInfo(this.queryParams).then(response => {
-          this.subjectList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        });
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.page = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.queryParams = {};
-        this.handleQuery();
-      },
-      /*===记录勾选数据===
-        需要再el-table 添加  :row-key="getRowKeys"
-        需要在selection 添加 :reserve-selection="true"
-      */
-      getRowKeys(row) {
-        return row.id
-      },
-      //选择本页
-      selectPage(){
-        this.$refs.multipleTable.toggleAllSelection()
-      },
-      //清除选择
-      clearSelection(){
-        this.$refs.multipleTable.clearSelection()
-      },
-      // 多选框选中数据
-      handleSelectionChange(selection) {
-        this.selectedNum = selection.length;
-        this.ids = selection.map(item => item.id)
-        this.idData = selection.map(item => item)
-        this.single = selection.length!==1
-        this.multiple = !selection.length
-      },
-      //查询安全分级
-      getListClassifiedAll(){
-        listClassifiedAll().then(response=>{
-          if(response.code==200){
-            this.levelList=response.data
-          }
-        })
-      },
-      //查询安全分类
-      getListClasstypeAll(){
-        listClasstypeAll().then(response=>{
-          if(response.code==200){
-            this.typeList=response.data;
-          }
-        });
-      },
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  .subjectList{
-    height:700px;
-    display: flex!important;
-    flex-direction: column;
-  }
-</style>

+ 0 - 254
src/views/hierarchicalControl/hierarchicalControl/gradeManage/userList.vue

@@ -1,254 +0,0 @@
-<!--分级管控/人员列表-->
-<template>
-  <div class="userList" v-if="userOpen">
-    <el-dialog title="选择用户" :visible.sync="userOpen" width="1500px" append-to-body :close-on-click-modal="false">
-      <div class="gradeManage-userList" style="height:626px;display: flex;flex-direction: column">
-        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
-          <el-form-item label="关键字" prop="searchValue" label-width="80px">
-            <el-input
-              style="width:200px;"
-              maxlength="10"
-              v-model="queryParams.searchValue"
-              placeholder="请输入名称/联系方式"
-              clearable
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="身份" prop="position" label-width="50px">
-            <el-select style="width:200px;" v-model="queryParams.position" placeholder="请选择身份" clearable>
-              <el-option v-for="dict in typeList" :key="dict.postId" :label="dict.postName" :value="dict.postId"></el-option>
-            </el-select>
-          </el-form-item>
-          <!--<el-form-item label="工号/学号" prop="userName" label-width="80px">-->
-            <!--<el-input-->
-              <!--style="width:160px;"-->
-              <!--maxlength="20"-->
-              <!--v-model="queryParams.userName"-->
-              <!--placeholder="请输入工号/学号"-->
-              <!--clearable-->
-              <!--size="small"-->
-            <!--/>-->
-          <!--</el-form-item>-->
-          <!--<el-form-item label="联系方式" prop="phonenumber" label-width="80px">-->
-            <!--<el-input-->
-              <!--style="width:160px;"-->
-              <!--maxlength="11"-->
-              <!--v-model="queryParams.phonenumber"-->
-              <!--placeholder="请输入联系方式"-->
-              <!--clearable-->
-              <!--size="small"-->
-            <!--/>-->
-          <!--</el-form-item>-->
-          <el-form-item label="学院" prop="deptId" label-width="50px">
-            <el-select style="width:200px;" v-model="queryParams.deptId" placeholder="请选择学院" clearable>
-              <el-option
-                v-for="dict in deptList"
-                :key="dict.deptId"
-                :label="dict.deptName"
-                :value="dict.deptId"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item>
-            <p class="inquire-button-one" @click="handleQuery">查询</p>
-            <p class="reset-button-one" @click="resetQuery">重置</p>
-          </el-form-item>
-        </el-form>
-        <div class="sheet-expand-box" style="height:40px;display:flex;background:rgba(1,131,250,0.1);border-radius: 5px;margin-bottom:18px;font-size:14px;">
-          <i class="el-icon-warning" style="color:#0045AF;margin:10px 16px 0 14px;height:20px;width:20px;font-size:20px;display: block;"></i>
-          <p class="color_99" style="margin:0;width:132px;font-size:14px;height:40px;line-height:40px;">已选择 {{selectedNum}} 项</p>
-          <p class="color_one cursor_hover" style="margin:0;width:60px;font-size:14px;height:40px;line-height:40px;margin-right:20px;" @click="selectPage">全选本页</p>
-          <p class="color_warn cursor_hover" style="margin:0;width:60px;font-size:14px;height:40px;line-height:40px;margin-right:20px;" @click="clearSelection">清除选项</p>
-        </div>
-        <el-table v-loading="loading" border :data="userList" @selection-change="handleSelectionChange" ref="multipleTable" :row-key="getRowKeys">
-          <el-table-column type="selection" width="55" :reserve-selection="true" align="center" />
-          <el-table-column label="姓名" align="left" prop="nickName" />
-          <el-table-column label="身份" align="left" prop="positionName" />
-          <el-table-column label="工号/学号" align="left" prop="userName" />
-          <el-table-column label="联系方式" align="left" prop="phonenumber" />
-          <el-table-column label="学院" align="left" prop="dept.deptName" />
-        </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 style="margin-top:30px;padding-top:20px;display: flex;border-top:1px solid #dedede">
-          <p style="flex:1;"></p>
-          <p style="margin-right:20px;" class="reset-button-one" @click="show(2)">取消</p>
-          <p class="inquire-button-one" @click="okButton">提交</p>
-        </div>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-  import { filterDept } from "@/api/commonality/permission";
-  import { optionselect,listUser,listClassifiedAll,listClasstypeAll } from "@/api/commonality/noPermission";
-  export default {
-    name: "userList",
-    data() {
-      return {
-        userOpen:false,
-        loading:false,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        queryParams:{
-          page:1,
-          pageSize:20,
-          searchValue:"",
-          position:"",
-          deptId:"",
-        },
-        userList:[],
-        //已选中数量
-        selectedNum:0,
-        //已选中
-        ids:[],
-        idData:[],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        //分类数据
-        typeList:[],
-        //分级数据
-        levelList:[],
-        addUserList:[],
-      }
-    },
-    created(){
-
-    },
-    mounted(){
-      // this.getListClasstypeAll();
-      this.getListClassifiedAll();
-      this.filterDept();
-      this.optionselect();
-    },
-    methods:{
-      //确定按钮
-      okButton(){
-        if(!this.ids[0]){
-          this.msgError("请勾选人员")
-          return
-        }
-        this.$parent.takeUserData(this.ids,this.idData);
-      },
-      show(data){
-        let self = this;
-        this.resetQuery();
-        // this.getListClasstypeAll();
-        this.getListClassifiedAll();
-        this.filterDept();
-        this.optionselect();
-        this.userOpen = !this.userOpen;
-        if(data){
-          this.addUserList = data;
-          // this.queryParams.page = 1;
-          // setTimeout(function(){
-          //   for(let i=0;i<data.length;i++){
-          //     self.$refs.multipleTable.toggleRowSelection(data[i],true)
-          //   }
-          //   self.getList();
-          // },300);
-        }
-        self.getList();
-        // if(type == 1){
-        //   this.userOpen = true;
-        // }else if(type == 2){
-        //   this.userOpen = false;
-        // }
-      },
-      //获取学院
-      filterDept(){
-        filterDept().then(response => {
-          this.deptList = response.data;
-        });
-      },
-      //获取身份
-      optionselect(){
-        optionselect().then(response => {
-          this.typeList = response.data;
-        });
-      },
-      //获取数据列表
-      getList(){
-        this.loading = true;
-        let obj = JSON.parse(JSON.stringify(this.queryParams));
-        obj.ids = this.addUserList+'';
-        obj.include = true;
-        listUser(obj).then(response => {
-          this.userList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        });
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.page = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        // this.resetForm("queryForm");
-        this.queryParams.searchValue = "";
-        this.queryParams.position = "";
-        this.queryParams.deptId = "";
-        this.handleQuery();
-      },
-      /*===记录勾选数据===
-        需要再el-table 添加  :row-key="getRowKeys"
-        需要在selection 添加 :reserve-selection="true"
-      */
-      getRowKeys(row) {
-        return row.userId
-      },
-      //选择本页
-      selectPage(){
-        this.$refs.multipleTable.toggleAllSelection()
-      },
-      //清除选择
-      clearSelection(){
-        this.$refs.multipleTable.clearSelection()
-      },
-      // 多选框选中数据
-      handleSelectionChange(selection) {
-        this.selectedNum = selection.length;
-        this.ids = selection.map(item => item.userId);
-        this.idData = selection.map(item => item);
-        this.single = selection.length!==1
-        this.multiple = !selection.length
-      },
-      //查询安全分级
-      getListClassifiedAll(){
-        listClassifiedAll().then(response=>{
-          if(response.code==200){
-            this.levelList=response.data
-          }
-        })
-      },
-      //查询安全分类
-      getListClasstypeAll(){
-        listClasstypeAll().then(response=>{
-          if(response.code==200){
-            this.typeList=response.data;
-          }
-        });
-      },
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  .userList{
-    height:700px;
-    display: flex!important;
-    flex-direction: column;
-  }
-</style>

+ 0 - 414
src/views/hierarchicalControl/hierarchicalControl/gradeManageRecord/index.vue

@@ -1,414 +0,0 @@
-<!--分级管控执行-->
-<template>
-  <div class="app-container gradeManageRecord">
-    <div class="gradeManageRecord-page" v-if="pageType == 1">
-      <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
-        <el-form-item label="关键字" prop="searchValue" label-width="60px">
-          <el-input
-            style="width:150px;"
-            v-model="queryParams.searchValue"
-            placeholder="规则名称"
-            size="small"
-          />
-        </el-form-item>
-        <el-form-item label="学院" prop="deptId" label-width="46px">
-          <el-select v-model="queryParams.deptId" placeholder="请选择学院" clearable style="width:150px;">
-            <el-option
-              v-for="dict in deptList"
-              :key="dict.deptId"
-              :label="dict.deptName"
-              :value="dict.deptId"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="安全分类" prop="typeId">
-          <el-select v-model="queryParams.typeId" placeholder="请选择安全分类" clearable style="width:150px;">
-            <el-option
-              v-for="dict in typeList"
-              :key="dict.id"
-              :label="dict.typeName"
-              :value="dict.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="安全分级" prop="level">
-          <el-select v-model="queryParams.level" placeholder="请选择安全分级" clearable style="width:150px;">
-            <el-option
-              v-for="dict in levelList"
-              :key="dict.id"
-              :label="dict.classifiedName"
-              :value="dict.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="执行周期" prop="cycle">
-          <el-select v-model="queryParams.cycle" placeholder="请选择执行周期" clearable style="width:150px;">
-            <el-option
-              v-for="dict in cycleList"
-              :key="dict"
-              :label="dict"
-              :value="dict"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="状态" prop="status" label-width="40px">
-          <el-select v-model="queryParams.status" placeholder="请选择执行状态" clearable style="width:150px;">
-            <el-option label="未执行" value="0" />
-            <el-option label="已执行" value="2" />
-          </el-select>
-        </el-form-item>
-        <!--<el-form-item label="执行时间" prop="carryTime">-->
-          <!--<el-date-picker-->
-            <!--:clearable="false"-->
-            <!--v-model="createTimeDate"-->
-            <!--size="small"-->
-            <!--style="width: 240px"-->
-            <!--value-format="yyyy-MM-dd"-->
-            <!--type="daterange"-->
-            <!--range-separator="-"-->
-            <!--start-placeholder="开始日期"-->
-            <!--end-placeholder="结束日期"-->
-          <!--&gt;</el-date-picker>-->
-        <!--</el-form-item>-->
-        <el-form-item>
-          <p class="inquire-button-one" @click="handleQuery">查询</p>
-          <p class="reset-button-one" @click="resetQuery">重置</p>
-        </el-form-item>
-      </el-form>
-      <el-table v-loading="loading" border :data="gradeManageRecordList">
-        <el-table-column label="实验室" align="center" prop="subName" width="199" show-overflow-tooltip/>
-        <el-table-column label="规则名称" align="center" prop="ruleName" show-overflow-tooltip/>
-        <el-table-column label="类型" align="center" prop="moldName" width="149"/>
-        <el-table-column label="安全分类" align="center" prop="typeName" width="130"/>
-        <el-table-column label="安全分级" align="center" prop="levelName" width="130"/>
-        <el-table-column label="学院" align="center" prop="deptName" width="130" show-overflow-tooltip/>
-        <el-table-column label="执行周期" align="center" prop="cycle" width="149"/>
-        <!--<el-table-column label="执行人身份" align="center" prop="userPosition" />-->
-        <el-table-column label="状态" align="center" prop="status"width="149">
-          <template slot-scope="scope">
-            <span :class="scope.row.status==2?'tableTypeColorA':''">{{scope.row.status==0?'未执行':(scope.row.status==2?'已执行':'')}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="执行时间" align="center" prop="carryTime" width="130">
-          <template slot-scope="scope">{{scope.row.carryTime?scope.row.carryTime:'-'}}</template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" v-if="tableButtonType">
-          <template slot-scope="scope">
-            <div class="table-button-box">
-              <p class="table-button-null"></p>
-              <p class="table-button-p"
-                 @click="pageTypeClick(2,scope.row)"
-                 v-hasPermi="['laboratory:gradeManageRecord:query']"
-              >详情</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>
-    <info-page v-if="pageType == 2" :recordId="recordId"></info-page>
-    <!-- 添加或修改管控执行记录对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
-        </el-form-item>
-        <el-form-item label="规则ID" prop="ruleId">
-          <el-input v-model="form.ruleId" placeholder="请输入规则ID" />
-        </el-form-item>
-        <el-form-item label="规则名称" prop="ruleName">
-          <el-input v-model="form.ruleName" placeholder="请输入规则名称" />
-        </el-form-item>
-        <el-form-item label="实验室ID" prop="subId">
-          <el-input v-model="form.subId" placeholder="请输入实验室ID" />
-        </el-form-item>
-        <el-form-item label="执行用户ID" prop="joinUserId">
-          <el-input v-model="form.joinUserId" placeholder="请输入执行用户ID" />
-        </el-form-item>
-        <el-form-item label="执行人身份" prop="userPosition">
-          <el-input v-model="form.userPosition" placeholder="请输入执行人身份" />
-        </el-form-item>
-        <el-form-item label="执行状态">
-          <el-radio-group v-model="form.status">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="执行时间" prop="carryTime">
-          <el-date-picker clearable size="small"
-            v-model="form.carryTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择执行时间">
-          </el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer dialog-footer-box">
-        <p class="dialog-footer-button-null"></p >
-        <p class="dialog-footer-button-info" @click="cancel">取消</p >
-        <p class="dialog-footer-button-primary" @click="submitForm">提交</p >
-        <p class="dialog-footer-button-null"></p >
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-  import { gradeManageWorkInfo,listGradeManageRecord, getGradeManageRecord, delGradeManageRecord,
-  addGradeManageRecord, updateGradeManageRecord } from "@/api/hierarchicalControl/index";
-  import { queryOption } from "@/api/commonality/permission";
-  import { listClassifiedAll,listClasstypeAll,listDepartments } from "@/api/commonality/noPermission";
-  import infoPage from "./infoPage.vue"
-export default {
-  name: "GradeManageRecord",
-  components: {
-    infoPage
-  },
-  data() {
-    return {
-      tableButtonType:this.hasPermiDom(['laboratory:gradeManageRecord:query']),
-      //页面状态
-      pageType:1,
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 管控执行记录表格数据
-      gradeManageRecordList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        page: 1,
-        pageSize:20,
-        searchValue: null,
-        deptId: null,
-        status: null,
-      },
-      createTimeDate:[],
-      //学院列表
-      deptList:[],
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      recordId:"",
-      labMoldList:[],
-      levelList:[],
-      typeList:[],
-      cycleList:['一天','一周','一月','季度','半年','一年'],
-    };
-  },
-  created() {
-    this.getList();
-  },
-  mounted(){
-    this.listDepartments();
-    this.getListClassifiedAll();
-    this.getListClasstypeAll();
-    this.queryOption();
-  },
-  methods: {
-    queryOption(){
-      queryOption({}).then(response=>{
-        if(response.code==200){
-          this.labMoldList=response.data
-        }
-      })
-    },
-    //查询安全分级
-    getListClassifiedAll(){
-      listClassifiedAll().then(response=>{
-        if(response.code==200){
-          this.levelList=response.data
-        }
-      })
-    },
-    //查询安全分类
-    getListClasstypeAll(){
-      listClasstypeAll().then(response=>{
-        if(response.code==200){
-          this.typeList=response.data;
-        }
-      });
-    },
-    pageTypeClick(type,row){
-      if(this.pageType != type){
-        if(type == 1){
-          this.pageType = 1;
-        }else if(type == 2){
-          gradeManageWorkInfo(row.id).then( response => {
-            if (response.code == 504){
-              this.msgError(response.message);
-            }else if (response.code == 200){
-              this.recordId = row.id;
-              this.pageType = 2;
-            }
-          })
-        }
-      }
-    },
-    /** 查询管控执行记录列表 */
-    getList() {
-      if(this.createTimeDate[0]){
-        this.queryParams.statTime = this.createTimeDate[0];
-        this.queryParams.endTime = this.createTimeDate[1];
-      }else {
-        this.queryParams.statTime = null
-        this.queryParams.endTime = null
-      }
-      this.loading = true;
-      listGradeManageRecord(this.queryParams).then( response => {
-        this.gradeManageRecordList =  response.rows;
-        this.total =  response.total;
-        this.loading = false;
-      });
-    },
-    //获取学院
-    listDepartments(){
-      listDepartments().then(response => {
-        this.deptList = response.data;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        deptId: null,
-        deptName: null,
-        userId: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
-        remark: null,
-        ruleId: null,
-        ruleName: null,
-        subId: null,
-        joinUserId: null,
-        userPosition: null,
-        status: 0,
-        carryTime: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.page = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.createTimeDate = []
-      // this.resetForm("queryForm");
-      this.$set(this,'queryParams',{
-        page: 1,
-        pageSize:20,
-        searchValue: "",
-        deptId: "",
-        status: "",
-        endTime:"",
-        statTime:"",
-      });
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加管控执行记录";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getGradeManageRecord(id).then( response => {
-        this.form =  response.data;
-        this.open = true;
-        this.title = "修改管控执行记录";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateGradeManageRecord(this.form).then( response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addGradeManageRecord(this.form).then( response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$confirm('是否确认删除管控执行记录编号为"' + ids + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delGradeManageRecord(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('laboratory/gradeManageRecord/export', {
-        ...this.queryParams
-      }, `laboratory_gradeManageRecord.xlsx`)
-    }
-  }
-};
-</script>
-
-<style lang="scss" scoped>
-  .gradeManageRecord{
-    display: flex!important;
-    flex-direction: column;
-    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-    overflow: hidden;
-    .gradeManageRecord-page{
-      flex:1;
-      display: flex!important;
-      flex-direction: column;
-      padding:20px 20px!important;
-      overflow: hidden;
-    }
-    .tableTypeColorA{
-      color:#2AA408;
-    }
-  }
-</style>

+ 0 - 322
src/views/hierarchicalControl/hierarchicalControl/gradeManageRecord/infoPage.vue

@@ -1,322 +0,0 @@
-<template>
-  <div class="gradeManageRecord-infoPage" v-if="infoData">
-    <div class="gradeManageRecord-infoPage-min" v-if="pageType == 1">
-      <div class="title-max-box">
-        <p>基本信息</p>
-        <p class="reset-button-one" @click="backPage">返回</p>
-      </div>
-      <div class="top-subject-box">
-        <p :style="'color:'+infoData.fiedColor+';border:1px solid ;'+infoData.fiedColor+';'">{{infoData.levelName}}</p>
-        <p>{{infoData.subName}}</p>
-        <p>{{infoData.typeName}}</p>
-      </div>
-      <div class="top-info-box">
-        <div class="info-text-box">
-          <div>
-            <p>学院:</p>
-            <p>{{infoData.deptName}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>执行周期:</p>
-            <p>{{infoData.cycle}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>执行方式:</p>
-            <p>{{infoData.status==0?'未执行':(infoData.status==2?'已执行':'')}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>执行截止时间:</p>
-            <p :class="infoData.status == 0?'tableTypeColorA':''">{{infoData.endDate}}</p>
-          </div>
-        </div>
-        <!--<div class="info-text-box">-->
-        <!--<div>-->
-        <!--<p>执行人身份:</p>-->
-        <!--<p>{{infoData.userPosition}}</p>-->
-        <!--</div>-->
-        <!--</div>-->
-        <!--<div class="info-text-box">-->
-        <!--<div>-->
-        <!--<p>截止执行时间:</p>-->
-        <!--<p>{{infoData.endTime}}</p>-->
-        <!--</div>-->
-        <!--</div>-->
-      </div>
-      <div class="top-info-box">
-        <div class="info-text-box">
-          <div>
-            <p>规则名称:</p>
-            <p>{{infoData.ruleName}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>规则描述:</p>
-            <p>{{infoData.ruleRemark}}</p>
-          </div>
-        </div>
-      </div>
-      <div class="title-max-box">
-        <p>执行信息</p>
-      </div>
-      <!--<div class="bottom-item-box">-->
-      <!--<p>实际执行时间:</p>-->
-      <!--<p>{{infoData.carryTime}}</p>-->
-      <!--</div>-->
-      <!--<div class="bottom-item-box" v-if="infoData.detail">-->
-      <!--<p>执行描述:</p>-->
-      <!--<p>{{infoData.detail.remark}}</p>-->
-      <!--</div>-->
-      <div class="bottom-item-box bottom-item-box-one" v-if="infoData.status == 0">
-        <p>指定执行人员:</p>
-        <p>{{infoData.allUserName}}</p>
-      </div>
-      <div class="bottom-item-box bottom-item-box-one" v-if="infoData.status == 2">
-        <p>执行时间:</p>
-        <p>{{infoData.detail.createTime}}</p>
-      </div>
-      <div class="bottom-item-box" v-if="infoData.status == 2">
-        <p>执行人:</p>
-        <p>{{infoData.nickName}}</p>
-      </div>
-      <div class="bottom-item-box" v-if="infoData.status == 2">
-        <p>身份:</p>
-        <p>{{infoData.userPosition}}</p>
-      </div>
-      <div class="bottom-item-box" v-if="infoData.status == 2">
-        <p>执行描述:</p>
-        <p>{{infoData.detail.remark}}</p>
-      </div>
-      <div class="bottom-for-box" v-if="infoData.status == 2">
-        <p class="left-name-p">执行材料:</p>
-        <div class="right-max-box" v-if="infoData.detail.imgUrl">
-          <p v-for="(item,index) in infoData.detail.imgUrlList" :key="index">{{item.name}} <span @click="pageTypeClickMin(2,item)">查看</span></p>
-          <!--<a :href="item.url" v-for="(item,index) in infoData.detail.imgUrlList" :key="index">{{item.name}}</a>-->
-        </div>
-      </div>
-    </div>
-    <preview-page :previewData="previewData" v-if="pageType == 2"></preview-page>
-  </div>
-</template>
-
-<script>
-  import { gradeManageWorkInfo } from "@/api/hierarchicalControl/index";
-  import previewPage from "./previewPage.vue"
-  export default {
-    name: "infoPage",
-    components: {
-      previewPage
-    },
-    props:{
-      recordId:{},
-    },
-    data() {
-      return {
-        iframeSrc:"",
-        iframeIndex:0,
-        infoData:null,
-        pageType:1,
-        previewData:{},
-      }
-    },
-    created() {
-
-    },
-    mounted(){
-      this.gradeManageWorkInfo();
-    },
-    methods: {
-      pageTypeClickMin(type,item){
-        if (type == 1){
-          this.pageType = 1;
-          this.previewData = {};
-        } else {
-          this.previewData = item;
-          this.pageType = 2;
-        }
-      },
-      //点击切换文件
-      iframeClick(item,index){
-        this.iframeSrc = this.urlJudge(item.url)
-        this.iframeIndex = index;
-      },
-      gradeManageWorkInfo(){
-        gradeManageWorkInfo(this.recordId).then( response => {
-          if(response.data.detail){
-            if(response.data.detail.imgUrl){
-              response.data.detail.imgUrlList = [];
-              let nameList = response.data.detail.imgName.split(',')
-              let urlList = response.data.detail.imgUrl.split(',')
-              for(let i=0;i<urlList.length;i++){
-                if(urlList[i] !='' && urlList[i] != undefined){
-                  let obj = {
-                    name:nameList[i],
-                    url:urlList[i],
-                  };
-                  response.data.detail.imgUrlList.push(obj)
-                }
-              }
-              if(response.data.detail.imgUrlList[0]){
-                this.iframeSrc = this.urlJudge(response.data.detail.imgUrlList[0].url)
-                this.iframeIndex = 0;
-              }
-            }
-          }
-          this.infoData = response.data;
-        });
-      },
-      //返回
-      backPage(){
-        this.$parent.pageTypeClick(1);
-      },
-    }
-
-  }
-</script>
-
-<style lang="scss" scoped>
-  .gradeManageRecord-infoPage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    .gradeManageRecord-infoPage-min{
-      flex:1;
-      display: flex!important;
-      flex-direction: column;
-      padding:0 20px!important;
-
-    }
-    *{
-      margin:0;
-      padding:0;
-    }
-    .title-max-box{
-      display: flex;
-      border-bottom:1px solid #dedede;
-      p:nth-child(1){
-        flex:1;
-        font-size:18px;
-        line-height:80px;
-        color:#0045AF;
-      }
-      p:nth-child(2){
-        margin-top:20px;
-      }
-    }
-    .top-subject-box{
-      display: flex;
-      margin:30px 0 0 50px;
-      p:nth-child(1){
-        line-height:30px;
-        padding:0 16px;
-        border-radius:6px;
-        font-size:14px;
-        font-weight:500;
-        margin-right:18px;
-      }
-      p:nth-child(2){
-        line-height:30px;
-        font-size:16px;
-        color:#333;
-        margin-right:18px;
-      }
-      p:nth-child(3){
-        line-height:30px;
-        font-size:14px;
-        color:#333;
-        font-weight:500;
-      }
-    }
-    .top-info-box{
-      display: flex;
-      .info-text-box{
-        /*display: inline-block;*/
-        flex:1;
-        /*width:280px;*/
-        margin-top:30px;
-        div{
-          display: flex;
-          p{
-            font-size:14px;
-            font-weight: 500;
-          }
-          p:nth-child(1){
-            width:120px;
-            text-align: right;
-            color:#999;
-          }
-          p:nth-child(2){
-            flex:1;
-            color:#333;
-          }
-          .tableTypeColorA{
-            color:#FF6464!important;
-          }
-        }
-      }
-    }
-    .bottom-item-box-one{
-      margin-top:30px;
-    }
-    .bottom-item-box{
-      display: flex;
-      margin-bottom:20px;
-      p{
-        font-size:14px;
-        font-weight:500;
-      }
-      p:nth-child(1){
-        width:120px;
-        text-align: right;
-        color: #999;
-      }
-      p:nth-child(2){
-        flex:1;
-        color:#333;
-      }
-    }
-    .bottom-for-box{
-      display: flex;
-      .left-name-p{
-        width:120px;
-        text-align: right;
-        line-height:30px;
-        font-weight: 500;
-        font-size:14px;
-        color:#999999;
-      }
-      .right-max-box{
-        flex:1;
-        p{
-          font-weight: 500;
-          line-height:30px;
-          font-size:14px;
-          color:#0183FA;
-          span{
-            cursor: pointer;
-            margin-left:40px;
-          }
-        }
-        .colorA{
-          background: rgba(204,230,254,1);
-          color:#0183FA;
-        }
-        .colorB{
-          background: #e0e0e0;
-          color:#999;
-        }
-      }
-    }
-    .iframe-box{
-      margin:20px 40px;
-      width:1100px;
-      height:800px;
-    }
-  }
-</style>

+ 0 - 76
src/views/hierarchicalControl/hierarchicalControl/gradeManageRecord/previewPage.vue

@@ -1,76 +0,0 @@
-<template>
-  <div class="previewPage">
-    <div class="title-box">
-      <p>{{previewData.name}}</p>
-      <p class="reset-button-one" @click="backPage">返回</p>
-    </div>
-    <div class="info-box" v-if="iframeSrc">
-      <iframe
-        class="iframe"
-        :src="iframeSrc" scrolling="auto" frameborder="0">
-      </iframe>
-    </div>
-  </div>
-</template>
-
-<script>
-  export default {
-    name: "previewPage",
-    props:{
-      previewData:{},
-    },
-    data(){
-      return{
-        iframeSrc:"",
-      }
-    },
-    mounted(){
-      this.iframeSrcFunction();
-    },
-    methods: {
-      iframeSrcFunction(){
-        this.iframeSrc = this.urlJudge(this.previewData.url);
-      },
-      // 返回按钮
-      backPage(){
-        this.$parent.pageTypeClickMin(1);
-      },
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  .previewPage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    border-radius:10px;
-    *{
-      margin:0;
-    }
-    .title-box{
-      display: flex;
-      border-bottom:1px solid #dedede;
-      p:nth-child(1){
-        flex:1;
-        font-size:18px;
-        line-height:80px;
-        color:#0045AF;
-        padding-left:20px;
-      }
-      p:nth-child(2){
-        margin:20px;
-      }
-    }
-    .info-box{
-      margin:20px;
-      overflow-y: scroll;
-      flex:1;
-      display: flex;
-      flex-direction: column;
-      iframe{
-        flex:1;
-      }
-    }
-  }
-</style>

+ 0 - 455
src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/addPage.vue

@@ -1,455 +0,0 @@
-<template>
-  <div class="gradeManageRecord-addPage scrollbar-box">
-    <div class="gradeManageRecord-addPage-min" v-if="pageType == 1">
-      <div class="title-max-box">
-        <p>基本信息</p>
-        <p class="reset-button-one" @click="backPage">返回</p>
-      </div>
-      <div class="top-subject-box">
-        <!--<p :style="'color:'+infoData.fiedColor+';border:1px solid ;'+infoData.fiedColor+';'">啊啊啊啊啊啊啊</p>-->
-        <p :style="'color:'+addData.bigItem.levelColor+';border:1px solid '+addData.bigItem.levelColor+';'" v-if="addData.bigItem.levelName">{{addData.bigItem.levelName}}</p>
-        <p>{{addData.bigItem.subName}}</p>
-        <p>{{addData.bigItem.typeName}}</p>
-      </div>
-      <div class="top-info-box">
-        <div class="info-text-box">
-          <div>
-            <p>学院:</p>
-            <p>{{addData.bigItem.deptName}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>执行周期:</p>
-            <p>{{addData.minItem.cycle}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>执行方式:</p>
-            <p>{{addData.minItem.isAll == 1?'多人执行':(addData.minItem.isAll == 0?'单人执行':'')}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>执行截止时间:</p>
-            <!--<p :class="infoData.nickName?'tableTypeColorA':''">啊啊啊啊啊啊啊</p>-->
-            <p :class="addData.minItem.status == 0?'tableTypeColorA':''">{{addData.minItem.endDate}}</p>
-          </div>
-        </div>
-        <!--<div class="info-text-box">-->
-        <!--<div>-->
-        <!--<p>执行人身份:</p>-->
-        <!--<p>{{infoData.userPosition}}</p>-->
-        <!--</div>-->
-        <!--</div>-->
-        <!--<div class="info-text-box">-->
-        <!--<div>-->
-        <!--<p>截止执行时间:</p>-->
-        <!--<p>{{infoData.endTime}}</p>-->
-        <!--</div>-->
-        <!--</div>-->
-      </div>
-      <div class="top-info-box">
-        <div class="info-text-box">
-          <div>
-            <p>规则名称:</p>
-            <p>{{addData.minItem.ruleName}}</p>
-          </div>
-        </div>
-        <div class="info-text-box">
-          <div>
-            <p>规则描述:</p>
-            <p>{{addData.minItem.ruleRemark}}</p>
-          </div>
-        </div>
-      </div>
-      <p class="title-max-box">执行信息</p>
-      <el-form class="add-form-box" :model="form" ref="form" :rules="rules">
-        <el-form-item label="执行描述" prop="textarea" label-width="80px" style="margin:30px 0 0">
-          <el-input
-            style="width:500px;"
-            type="textarea"
-            resize="none"
-            maxLength="50"
-            :rows="6"
-            placeholder="请输入执行描述"
-            v-model="form.textarea">
-          </el-input>
-        </el-form-item>
-        <el-form-item label="执行材料" prop="list" label-width="80px" style="margin-top:30px;" v-if="addData.minItem.isUpload == 1">
-          <div class="upload-max-box">
-            <div class="left-upload-box">
-              <el-upload
-                class="upload-demo"
-                :action="uploadImgUrl"
-                :show-file-list="false"
-                drag
-                multiple
-                :on-success="(res)=>handleAvatarSuccess(res)"
-                :headers="headers"
-                :before-upload="beforeAvatarUpload">
-                <i class="el-icon-upload" style="color:#CCE6FE;margin-top:40px;"></i>
-                <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-              </el-upload>
-            </div>
-            <div class="right-upload-box">
-              <p v-if="documentType">文件请上传 pdf / docx 格式</p>
-              <p v-if="videoType">视频请上传 mp4</p>
-              <p v-if="pictureType">图片请上传 png / jpeg / gif 格式</p>
-            </div>
-          </div>
-          <!--<el-upload-->
-          <!--class="avatar-uploader"-->
-          <!--:action="uploadImgUrl"-->
-          <!--:show-file-list="false"-->
-          <!--:on-success="(res)=>handleAvatarSuccess(res)"-->
-          <!--:headers="headers"-->
-          <!--:before-upload="beforeAvatarUpload">-->
-          <!--<p class="reset-button-one left-button"><i class="el-icon-upload2" style="margin-right:10px;"></i>请上传执行材料</p>-->
-          <!--</el-upload>-->
-        </el-form-item>
-        <div class="right-for-max-box">
-          <div class="right-for-min-box" v-for="(item,index) in form.list" :key="index">
-            <!--<el-tooltip class="item" effect="dark" :content="item.name" placement="top" v-if="">-->
-              <!--<p>{{item.name}}</p>-->
-            <!--</el-tooltip>-->
-            <p>{{item.name}}</p>
-            <p @click="pageTypeClickMin(2,item)">查看</p>
-            <p @click="delItem(index)">删除</p>
-          </div>
-        </div>
-      </el-form>
-      <div class="bottom-button">
-        <!--<p class="reset-button-one" @click="backPage">取消</p>-->
-        <p class="inquire-button-one" @click="buttonClick">提交</p>
-      </div>
-    </div>
-    <preview-page :previewData="previewData" v-if="pageType == 2"></preview-page>
-  </div>
-</template>
-
-<script>
-  import { gradeManageWorkFinish } from "@/api/hierarchicalControl/index";
-  import { getToken } from "@/utils/auth";
-  import previewPage from "./previewPage.vue"
-  export default {
-    name: "addPage",
-    components: {
-      previewPage
-    },
-    props:{
-      addData:{},
-    },
-    data() {
-      return {
-        pageType:1,
-        uploadImgUrl: this.uploadUrl(), // 上传的图片服务器地址
-        headers: {
-          Authorization: "Bearer " + getToken(),
-        },
-        upDataName:[],
-        form:{
-          textarea:"",
-          list:[],
-        },
-        // 表单校验
-        rules: {
-          textarea: [
-            { required: true, message: "请输入执行描述", trigger: "blur" },
-            { required: true, message: "请输入执行描述", validator: this.spaceJudgment, trigger: "blur" }
-          ],
-          list: [
-            { required: true, message: "请上传执行材料", trigger: "blur" },
-            { required: true, message: "请上传执行材料", validator: this.spaceJudgment, trigger: "blur" }
-          ],
-        },
-        previewData:{},
-        documentType:false,
-        videoType:false,
-        pictureType:false,
-        indexOfList:[],
-      }
-    },
-    created() {
-      // this.$set(this,'form',this.addData.detail)
-    },
-    mounted(){
-      let self = this;
-      let list = this.addData.minItem.fileFormat.split(',');
-      for(let i=0;i<list.length;i++){
-        if(list[i] == '1'){
-          self.documentType = true;
-          self.indexOfList.push('application/pdf');
-          self.indexOfList.push('application/vnd.openxmlformats-officedocument.wordprocessingml.document');
-        }else if(list[i] == '2'){
-          self.videoType = true;
-          self.indexOfList.push('video/mp4');
-        }else if(list[i] == '3'){
-          self.pictureType = true;
-          self.indexOfList.push('image/png');
-          self.indexOfList.push('image/jpeg');
-          self.indexOfList.push('image/gif');
-        }
-      }
-    },
-    methods: {
-      //提交
-      buttonClick(){
-        let self = this;
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            this.$confirm('是否确认提交?', "警告", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning"
-            }).then(function() {
-              let obj = {
-                subId:self.addData.bigItem.subId,
-                ruleId:self.addData.minItem.ruleId,
-                ruleUserId:self.addData.minItem.ruleUserId,
-                isUpload:self.addData.minItem.isUpload,
-                endDate:self.addData.minItem.endDate,
-                detail:{
-                  remark:self.form.textarea,
-                  imgUrl:"",
-                  imgName:"",
-                },
-                ruleType:self.addData.minItem.ruleType
-              };
-              if(self.form.list[0]){
-                for(let i=0;i<self.form.list.length;i++){
-                  obj.detail.imgUrl = obj.detail.imgUrl + self.form.list[i].url + ','
-                  obj.detail.imgName = obj.detail.imgName + self.form.list[i].name + ','
-                }
-              }
-              gradeManageWorkFinish(obj).then( response => {
-                self.msgSuccess("操作成功");
-                self.$parent.pageTypeClick(1);
-              });
-            }).then(() => {
-            }).catch(() => {});
-          }
-        });
-      },
-      pageTypeClickMin(type,item){
-        if (type == 1){
-          this.pageType = 1;
-          this.previewData = {};
-        } else {
-          this.previewData = item;
-          this.pageType = 2;
-        }
-      },
-      //返回
-      backPage(){
-        this.$parent.pageTypeClick(1);
-      },
-      //删除上传项
-      delItem(index){
-        this.$confirm('是否确认删除?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-        }).then(() => {
-          this.form.list.splice(index,1);
-          this.$forceUpdate();
-        }).catch(() => {});
-      },
-      //上传相关
-      handleAvatarSuccess(res) {
-        if(this.form.list.length>4){
-          this.$message.error('最多上传5个文件');
-          return
-        }
-        let obj ={
-          name:this.upDataName,
-          url:res.data.url,
-        };
-        this.form.list.push(obj);
-        this.$forceUpdate()
-      },
-      beforeAvatarUpload(file) {
-        let type = false;
-        if(this.indexOfList.indexOf(file.type) == -1){
-          this.$message.error('上传文件格式错误');
-          type = false;
-        }else{
-          if(this.form.list.length>4){
-            this.$message.error('最多上传5个文件');
-            type = false;
-          }else{
-            this.upDataName = file.name;
-            type = true;
-          }
-        }
-        if(this.form.list.length>4){
-          this.$message.error('最多上传5个文件');
-          type = false;
-        }
-        return type;
-      },
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  .gradeManageRecord-addPage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    *{
-      margin:0;
-      padding:0;
-    }
-    .gradeManageRecord-addPage-min{
-      flex:1;
-      display: flex!important;
-      flex-direction: column;
-      margin:5px 20px 20px 10px!important;
-      box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1)!important;
-      border-radius:10px;
-      .title-max-box{
-        display: flex;
-        border-bottom:1px solid #dedede;
-        padding:0 20px!important;
-        p:nth-child(1){
-          flex:1;
-          font-size:18px;
-          line-height:80px;
-          color:#0045AF;
-        }
-        p:nth-child(2){
-          margin-top:20px;
-        }
-      }
-      .add-form-box{
-        padding:0 20px!important;
-
-      }
-      .top-subject-box{
-        display: flex;
-        margin:30px 0 0 50px;
-        padding:0 20px!important;
-        p:nth-child(1){
-          line-height:30px;
-          padding:0 16px;
-          border-radius:6px;
-          font-size:14px;
-          font-weight:500;
-          margin-right:18px;
-        }
-        p:nth-child(2){
-          line-height:30px;
-          font-size:16px;
-          color:#333;
-          margin-right:18px;
-        }
-        p:nth-child(3){
-          line-height:30px;
-          font-size:14px;
-          color:#333;
-          font-weight:500;
-        }
-      }
-      .top-info-box{
-        display: flex;
-        padding:0 20px!important;
-        .info-text-box{
-          /*display: inline-block;*/
-          flex:1;
-          /*width:280px;*/
-          margin-top:30px;
-          div{
-            display: flex;
-            p{
-              font-size:14px;
-              font-weight: 500;
-            }
-            p:nth-child(1){
-              width:120px;
-              text-align: right;
-              color:#999;
-            }
-            p:nth-child(2){
-              flex:1;
-              color:#333;
-            }
-            .tableTypeColorA{
-              color:#FF6464!important;
-            }
-          }
-        }
-      }
-      .title-max-box{
-        font-size:18px;
-        line-height:80px;
-        color:#0045AF;
-        border-bottom:1px solid #dedede;
-      }
-      .avatar-uploader{
-        .left-button{
-          width:200px;
-        }
-      }
-      .right-for-max-box{
-        margin:30px 0 0 80px;
-        overflow: hidden;
-        .right-for-min-box{
-          padding:0 11px;
-          margin:0 20px 20px 0;
-          border-radius:4px;
-          display: flex;
-          p{
-            font-weight:500;
-            font-size:12px;
-          }
-          p:nth-child(1){
-            width:300px;
-            color:#333;
-            display:block;
-            overflow:hidden;
-            text-overflow:ellipsis;
-            white-space:nowrap;
-          }
-          p:nth-child(2){
-            color:#0183FA;
-            margin:0 30px 0 60px;
-            cursor: pointer;
-          }
-          p:nth-child(3){
-            color:#0183FA;
-            cursor: pointer;
-
-          }
-        }
-      }
-      .bottom-button{
-        display: flex;
-        margin:40px auto;
-        p{
-          font-size:14px;
-        }
-        p:nth-child(1){
-          margin-right:30px;
-        }
-      }
-      .upload-max-box{
-        display: flex;
-        .right-upload-box{
-          margin-left:30px;
-          color:#9E9E9E;
-          font-size:14px;
-          font-weight:500;
-          padding-top:50px;
-          p{
-            margin:0;
-            line-height:30px;
-          }
-
-        }
-      }
-    }
-  }
-</style>

+ 0 - 343
src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/index.vue

@@ -1,343 +0,0 @@
-<!--分级管控工作-->
-<template>
-  <div class="gradeManageRecord">
-    <div class="gradeManageRecord-page " v-if="pageType == 1">
-      <el-form :model="queryParams" ref="queryForm" style="padding-bottom:20px;border-bottom:1px solid #dedede;margin-bottom:20px;" :inline="true" v-show="showSearch" label-width="80px">
-        <el-form-item label="关键字" prop="subName" label-width="60px">
-          <el-input
-            style="width:150px;"
-            v-model="queryParams.subName"
-            placeholder="实验室名称"
-            size="small"
-          />
-        </el-form-item>
-        <el-form-item label="学院" prop="deptId" label-width="56px">
-          <el-select v-model="queryParams.deptId" placeholder="请选择学院" clearable style="width:150px;">
-            <el-option
-              v-for="dict in deptList"
-              :key="dict.deptId"
-              :label="dict.deptName"
-              :value="dict.deptId"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="安全分类" prop="typeId">
-          <el-select v-model="queryParams.typeId" placeholder="请选择安全分类" clearable style="width:150px;">
-            <el-option
-              v-for="dict in typeList"
-              :key="dict.id"
-              :label="dict.typeName"
-              :value="dict.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="安全分级" prop="level">
-          <el-select v-model="queryParams.level" placeholder="请选择安全分级" clearable style="width:150px;">
-            <el-option
-              v-for="dict in levelList"
-              :key="dict.id"
-              :label="dict.classifiedName"
-              :value="dict.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="执行周期" prop="cycle">
-          <el-select v-model="queryParams.cycle" placeholder="请选择执行周期" clearable style="width:150px;">
-            <el-option
-              v-for="dict in cycleList"
-              :key="dict"
-              :label="dict"
-              :value="dict"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <!--<el-form-item label="执行时间" prop="carryTime">-->
-        <!--<el-date-picker-->
-        <!--:clearable="false"-->
-        <!--v-model="createTimeDate"-->
-        <!--size="small"-->
-        <!--style="width: 240px"-->
-        <!--value-format="yyyy-MM-dd"-->
-        <!--type="daterange"-->
-        <!--range-separator="-"-->
-        <!--start-placeholder="开始日期"-->
-        <!--end-placeholder="结束日期"-->
-        <!--&gt;</el-date-picker>-->
-        <!--</el-form-item>-->
-        <el-form-item>
-          <p class="inquire-button-one" style="margin:0 20px;" @click="handleQuery">查询</p>
-          <p class="reset-button-one" @click="resetQuery">重置</p>
-        </el-form-item>
-      </el-form>
-      <div class="for-max-big-box scrollbar-box">
-        <img v-if="!gradeManageList[0]" src="@/assets/ZDimages/basicsModules/null-data-1.png" style="width:300px;margin:200px auto;display: block">
-        <div class="for-max-box" v-for="(item,index) in gradeManageList" :key="index">
-          <div class="for-title-box">
-            <div class="for-title-type-box" :style="'color:'+item.levelColor+';border:1px solid '+item.levelColor+';'" v-if="item.levelName">
-              <!--<p>{{item.typeName}}</p>-->
-              <p>{{item.levelName}}</p>
-            </div>
-            <p class="for-title-name-p">{{item.subName}}</p>
-            <p class="for-title-dept-p">学院:{{item.deptName}}</p>
-          </div>
-          <el-table :data="item.detailList" border class="table-box">
-            <el-table-column label="规则名称" align="left" prop="ruleName" />
-            <!--<el-table-column label="截止执行时间" align="left" prop="endDate" width="200">-->
-            <!--<template slot-scope="scope">{{scope.row.endDate?scope.row.endDate:'-'}}</template>-->
-            <!--</el-table-column>-->
-            <el-table-column label="执行周期" align="left" prop="cycle" width="230"/>
-            <el-table-column label="截止执行时间" align="left" prop="carryTime" width="300">
-              <template slot-scope="scope">{{scope.row.endDate?scope.row.endDate:'-'}}</template>
-            </el-table-column>
-            <el-table-column label="操作" align="left" prop="text1" width="110">
-              <template slot-scope="scope">
-                <div class="table-button-box">
-                  <p class="table-button-null"></p>
-                  <p class="table-button-p" @click="pageTypeClick(2,item,scope.row)">完成</p>
-                  <p class="table-button-null"></p>
-                </div>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-      </div>
-    </div>
-    <add-page v-if="pageType == 2" :addData="addData"></add-page>
-    <info-page v-if="pageType == 3" :recordId="recordId"></info-page>
-  </div>
-</template>
-
-<script>
-import { gradeManageWorkList } from "@/api/hierarchicalControl/index";
-import { listClassifiedAll,listClasstypeAll,listDepartments } from "@/api/commonality/noPermission";
-import addPage from "./addPage.vue"
-import infoPage from "./infoPage.vue"
-export default {
-  name: "GradeManageWork",
-  components: {
-    addPage,
-    infoPage
-  },
-  data() {
-    return {
-      pageType:1,
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 分级��控管理表格数据
-      gradeManageList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        deptId: null,
-        deptName: null,
-        userId: null,
-        level: null,
-        typeId: null,
-        subIds: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      //提交传参
-      addData:{},
-      recordId:"",
-      deptList:[],
-      levelList:[],
-      typeList:[],
-      cycleList:['一天','一周','一月','季度','半年','一年'],
-    };
-  },
-  created() {
-    this.gradeManageWorkList();
-    this.listDepartments();
-    this.getListClassifiedAll();
-    this.getListClasstypeAll();
-  },
-  methods: {
-    //获取学院
-    listDepartments(){
-      listDepartments().then(response => {
-        this.deptList = response.data;
-      });
-    },
-    //查询安全分级
-    getListClassifiedAll(){
-      listClassifiedAll().then(response=>{
-        if(response.code==200){
-          this.levelList=response.data
-        }
-      })
-    },
-    //查询安全分类
-    getListClasstypeAll(){
-      listClasstypeAll().then(response=>{
-        if(response.code==200){
-          this.typeList=response.data;
-        }
-      });
-    },
-    handleQuery() {
-      this.gradeManageWorkList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.createTimeDate = []
-      // this.resetForm("queryForm");
-      this.$set(this,'queryParams',{
-        subName: "",
-        deptId: "",
-        typeId: "",
-        level:"",
-        cycle:"",
-      });
-      this.handleQuery();
-    },
-    gradeManageWorkList(){
-      gradeManageWorkList(this.queryParams).then( response => {
-        this.gradeManageList = response.data
-      });
-    },
-    pageTypeClick(type,item,row){
-      if(this.pageType != type){
-        if(type == 1){
-          this.pageType = 1;
-          this.gradeManageWorkList();
-        }else if(type == 2){
-          let obj = {
-            bigItem:item,
-            minItem:row
-          };
-          this.addData = JSON.parse(JSON.stringify(obj));
-          this.pageType = 2;
-        }
-      }
-      // if(this.pageType != type){
-        // if(type == 1){
-        //   this.gradeManageWorkList();
-        //   this.pageType = 1;
-        // }else if(type == 2){
-          // if(row.status==1){
-          //   let obj = {
-          //     subId:item.subId,
-          //     ruleId:row.ruleId,
-          //     ruleUserId:row.ruleUserId,
-          //     isUpload:row.isUpload,
-          //     endDate:row.endDate,
-          //     detail:{
-          //       remark:"",
-          //       imgUrl:"",
-          //     },
-          //     ruleType:row.ruleType
-          //   };
-          //   this.addData = JSON.parse(JSON.stringify(obj));
-          //   this.pageType = 2;
-          // }else if(row.status==2){
-          //   this.recordId = row.recordId;
-          //   this.pageType = 3;
-          // }
-        // }
-      // }
-    },
-
-  }
-};
-</script>
-
-<style lang="scss" scoped>
-  .gradeManageRecord{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    overflow: hidden;
-    *{
-      margin:0;
-      padding:0;
-    }
-    .top-button-box{
-      display: flex;
-      background: #CCE6FE ;
-      border-radius:10px;
-      height:60px;
-      margin:5px 20px 0 10px;
-      p{
-        line-height: 60px;
-        font-size:14px;
-        font-weight:500;
-        color:#0183FA;
-      }
-      p:nth-child(1){
-        flex:1;
-        margin-left:28px;
-      }
-      p:nth-child(2){
-        cursor: pointer;
-      }
-      i:nth-child(3){
-        line-height: 60px;
-        color:#0256FF ;
-        font-size:22px;
-        margin:0 33px;
-        cursor: pointer;
-      }
-    }
-    .gradeManageRecord-page{
-      flex:1;
-      display: flex!important;
-      flex-direction: column;
-      padding:20px 20px!important;
-      margin:5px 20px 20px 10px;
-      /*margin:20px 20px 20px 10px;*/
-      box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-      border-radius:10px;
-      overflow: hidden;
-      .for-max-big-box{
-        .for-max-box{
-          .for-title-box{
-            display: flex;
-            margin-bottom:20px;
-            .for-title-type-box{
-              padding:0 20px;
-              border-radius:4px;
-              margin-right:20px;
-              p{
-                text-align: center;
-                font-size:16px;
-                font-weight:500;
-                line-height:30px;
-              }
-            }
-            .for-title-name-p{
-              margin:0 45px 0 0;
-              line-height:32px;
-              font-size:16px;
-              font-weight:500;
-            }
-            .for-title-dept-p{
-              line-height:32px;
-              font-size:16px;
-              font-weight:500;
-            }
-          }
-          .table-box{
-            margin-bottom: 20px;
-          }
-        }
-      }
-    }
-  }
-</style>

+ 0 - 285
src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/infoPage.vue

@@ -1,285 +0,0 @@
-<template>
-  <div class="gradeManageRecord-infoPage scrollbar-box" v-if="infoData">
-    <div class="title-max-box">
-      <p>基本信息</p>
-      <p class="reset-button-one" @click="backPage">返回</p>
-    </div>
-    <div class="top-subject-box">
-      <p :style="'color:'+infoData.fiedColor+';border:1px solid ;'+infoData.fiedColor+';'">{{infoData.levelName}}</p>
-      <p>{{infoData.subName}}</p>
-      <p>{{infoData.typeName}}</p>
-    </div>
-    <div class="top-info-box">
-      <div class="info-text-box">
-        <div>
-          <p>学院:</p>
-          <p>{{infoData.ruleName}}</p>
-        </div>
-      </div>
-      <div class="info-text-box">
-        <div>
-          <p>执行周期:</p>
-          <p>{{infoData.subName}}</p>
-        </div>
-      </div>
-      <div class="info-text-box">
-        <div>
-          <p>执行方式:</p>
-          <p>{{infoData.status==1?'未执行':(infoData.status==2?'已执行':'')}}</p>
-        </div>
-      </div>
-      <div class="info-text-box">
-        <div>
-          <p>执行截止时间:</p>
-          <p :class="infoData.status == 0?'tableTypeColorA':''">{{infoData.nickName}}</p>
-        </div>
-      </div>
-      <!--<div class="info-text-box">-->
-      <!--<div>-->
-      <!--<p>执行人身份:</p>-->
-      <!--<p>{{infoData.userPosition}}</p>-->
-      <!--</div>-->
-      <!--</div>-->
-      <!--<div class="info-text-box">-->
-      <!--<div>-->
-      <!--<p>截止执行时间:</p>-->
-      <!--<p>{{infoData.endTime}}</p>-->
-      <!--</div>-->
-      <!--</div>-->
-    </div>
-    <div class="top-info-box">
-      <div class="info-text-box">
-        <div>
-          <p>规则名称:</p>
-          <p>{{infoData.ruleName}}</p>
-        </div>
-      </div>
-      <div class="info-text-box">
-        <div>
-          <p>规则描述:</p>
-          <p>{{infoData.subName}}</p>
-        </div>
-      </div>
-    </div>
-    <div class="title-max-box">
-      <p>执行信息</p>
-    </div>
-    <!--<div class="bottom-item-box">-->
-    <!--<p>实际执行时间:</p>-->
-    <!--<p>{{infoData.carryTime}}</p>-->
-    <!--</div>-->
-    <!--<div class="bottom-item-box" v-if="infoData.detail">-->
-    <!--<p>执行描述:</p>-->
-    <!--<p>{{infoData.detail.remark}}</p>-->
-    <!--</div>-->
-    <div class="bottom-item-box" v-if="infoData.detail">
-      <p>指定执行人员:</p>
-      <p>{{infoData.detail.remark}}</p>
-    </div>
-    <div class="bottom-for-box" v-if="infoData.detail">
-      <p class="left-name-p">执行材料:</p>
-      <div class="right-max-box" v-if="infoData.detail.imgUrl">
-        <p :class="iframeIndex == index ?'colorA':'colorB'" v-for="(item,index) in infoData.detail.imgUrlList" :key="index" @click="iframeClick(item,index)">{{item.name}}</p>
-        <!--<a :href="item.url" v-for="(item,index) in infoData.detail.imgUrlList" :key="index">{{item.name}}</a>-->
-      </div>
-    </div>
-    <iframe
-      class="iframe-box"
-      :src="iframeSrc" scrolling="auto" frameborder="0">
-    </iframe>
-  </div>
-</template>
-
-<script>
-import { gradeManageWorkInfo } from "@/api/hierarchicalControl/index";
-  export default {
-    name: "infoPage",
-    props:{
-      recordId:{},
-    },
-    data() {
-      return {
-        iframeSrc:"",
-        iframeIndex:0,
-        infoData:null
-      }
-    },
-    created() {
-
-    },
-    mounted(){
-      this.gradeManageWorkInfo();
-    },
-    methods: {
-      //点击切换文件
-      iframeClick(item,index){
-        this.iframeSrc = this.urlJudge(item.url);
-        this.iframeIndex = index;
-      },
-      gradeManageWorkInfo(){
-        gradeManageWorkInfo(this.recordId).then( response => {
-          if(response.data.detail.imgUrl){
-            response.data.detail.imgUrlList = [];
-            let nameList = response.data.detail.imgName.split(',')
-            let urlList = response.data.detail.imgUrl.split(',')
-            for(let i=0;i<urlList.length;i++){
-              if(urlList[i] !='' && urlList[i] != undefined){
-                let obj = {
-                  name:nameList[i],
-                  url:urlList[i],
-                };
-                response.data.detail.imgUrlList.push(obj)
-              }
-            }
-            if(response.data.detail.imgUrlList[0]){
-              this.iframeSrc = this.urlJudge(response.data.detail.imgUrlList[0].url);
-              this.iframeIndex = 0;
-            }
-          }
-          this.infoData = response.data;
-        });
-      },
-      //返回
-      backPage(){
-        this.$parent.pageTypeClick(1);
-      },
-    }
-
-  }
-</script>
-
-<style lang="scss" scoped>
-  .gradeManageRecord-infoPage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    padding:0 20px!important;
-    margin:5px 20px 20px 10px!important;
-    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1)!important;
-    border-radius:10px;
-    *{
-      margin:0;
-      padding:0;
-    }
-    .title-max-box{
-      display: flex;
-      border-bottom:1px solid #dedede;
-      p:nth-child(1){
-        flex:1;
-        font-size:18px;
-        line-height:80px;
-        color:#0045AF;
-      }
-      p:nth-child(2){
-        margin-top:20px;
-      }
-    }
-    .top-subject-box{
-      display: flex;
-      margin:30px 0 0 50px;
-      p:nth-child(1){
-        line-height:30px;
-        padding:0 16px;
-        border-radius:6px;
-        font-size:14px;
-        font-weight:500;
-        margin-right:18px;
-      }
-      p:nth-child(2){
-        line-height:30px;
-        font-size:16px;
-        color:#333;
-        margin-right:18px;
-      }
-      p:nth-child(3){
-        line-height:30px;
-        font-size:14px;
-        color:#333;
-        font-weight:500;
-      }
-    }
-    .top-info-box{
-      display: flex;
-      .info-text-box{
-        /*display: inline-block;*/
-        flex:1;
-        /*width:280px;*/
-        margin-top:30px;
-        div{
-          display: flex;
-          p{
-            font-size:14px;
-            font-weight: 500;
-          }
-          p:nth-child(1){
-            width:120px;
-            text-align: right;
-            color:#999;
-          }
-          p:nth-child(2){
-            flex:1;
-            color:#333;
-          }
-          .tableTypeColorA{
-            color:#FF6464!important;
-          }
-        }
-      }
-    }
-    .bottom-item-box{
-      display: flex;
-      margin-top:30px;
-      p{
-        font-size:14px;
-        font-weight:500;
-      }
-      p:nth-child(1){
-        width:120px;
-        text-align: right;
-        color: #999;
-      }
-      p:nth-child(2){
-        flex:1;
-        color:#333;
-      }
-    }
-    .bottom-for-box{
-      display: flex;
-      margin-top:30px;
-      .left-name-p{
-        width:120px;
-        text-align: right;
-        line-height:30px;
-        font-weight: 500;
-        font-size:14px;
-        color:#999999;
-      }
-      .right-max-box{
-        flex:1;
-        p{
-          font-weight: 500;
-          display: inline-block;
-          padding: 0 20px;
-          line-height:30px;
-          font-size:14px;
-          cursor: pointer;
-          border-radius:4px;
-          margin:0 20px 20px 0;
-        }
-        .colorA{
-          background: rgba(204,230,254,1);
-          color:#0183FA;
-        }
-        .colorB{
-          background: #e0e0e0;
-          color:#999;
-        }
-      }
-    }
-    .iframe-box{
-      margin:20px 40px;
-      width:1100px;
-      height:800px;
-    }
-  }
-</style>

+ 0 - 78
src/views/hierarchicalControl/hierarchicalControl/gradeManageWork/previewPage.vue

@@ -1,78 +0,0 @@
-<template>
-  <div class="previewPage">
-    <div class="title-box">
-      <p>{{previewData.name}}</p>
-      <p class="reset-button-one" @click="backPage">返回</p>
-    </div>
-    <div class="info-box" v-if="iframeSrc">
-      <iframe
-        class="iframe"
-        :src="iframeSrc" scrolling="auto" frameborder="0">
-      </iframe>
-    </div>
-  </div>
-</template>
-
-<script>
-  export default {
-    name: "previewPage",
-    props:{
-      previewData:{},
-    },
-    data(){
-      return{
-        iframeSrc:"",
-      }
-    },
-    mounted(){
-      this.iframeSrcFunction();
-    },
-    methods: {
-      iframeSrcFunction(){
-        this.iframeSrc = this.urlJudge(this.previewData.url);
-      },
-      // 返回按钮
-      backPage(){
-        this.$parent.pageTypeClickMin(1);
-      },
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  .previewPage{
-    flex:1;
-    display: flex!important;
-    flex-direction: column;
-    margin:5px 20px 20px 10px!important;
-    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1)!important;
-    border-radius:10px;
-    *{
-      margin:0;
-    }
-    .title-box{
-      display: flex;
-      border-bottom:1px solid #dedede;
-      p:nth-child(1){
-        flex:1;
-        font-size:18px;
-        line-height:80px;
-        color:#0045AF;
-        padding-left:20px;
-      }
-      p:nth-child(2){
-        margin:20px;
-      }
-    }
-    .info-box{
-      margin:20px;
-      overflow-y: scroll;
-      flex:1;
-      display: flex;
-      flex-direction: column;
-      iframe{
-        flex:1;
-      }
-    }
-  }
-</style>

+ 251 - 0
src/views/hierarchicalControl/workExecute/index.vue

@@ -0,0 +1,251 @@
+<!-- 工作执行 -->
+<template>
+  <div class="app-container workExecute">
+    <div class="page-container workExecutePage" v-if="pageType === 1">
+      <div class="page-form-title-box">
+        <el-form :model="queryParams" class="form-box" ref="queryForm"
+                 :inline="true" style="width:100%;">
+          <el-form-item label="" prop="searchValue">
+            <el-input
+              maxLength="30"
+              v-model="queryParams.searchValue"
+              placeholder="管控名称"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="" prop="deptId">
+            <el-select v-model="queryParams.deptId" placeholder="二级单位" style="width: 200px">
+              <el-option
+                v-for="dict in deptOptions"
+                :key="dict.deptId"
+                :label="dict.deptName"
+                :value="dict.deptId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="typeId">
+            <el-select v-model="queryParams.typeId" placeholder="安全分类" style="width: 200px">
+              <el-option
+                v-for="dict in typeList"
+                :key="dict.typeId"
+                :label="dict.typeName"
+                :value="dict.typeId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="" prop="levelId">
+            <el-select v-model="queryParams.levelId" placeholder="安全分级" style="width: 200px">
+              <el-option
+                v-for="dict in levelList"
+                :key="dict.levelId"
+                :label="dict.levelName"
+                :value="dict.levelId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
+          <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
+        </el-form>
+      </div>
+      <div class="page-content-box">
+        <el-table class="table-box" v-loading="loading" border :data="dataList">
+          <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="200" show-overflow-tooltip/>
+          <el-table-column label="安全分级" prop="content" width="200" show-overflow-tooltip/>
+          <el-table-column label="状态" prop="content" width="200" show-overflow-tooltip/>
+          <el-table-column label="执行人" prop="content" width="200" show-overflow-tooltip/>
+          <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 v-if="tableButtonType">
+            <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)"
+                   v-hasPermiRouter="['demo:demo:detail']"
+                >详情</p>
+                <p class="table-button-p"
+                   @click="tableButton(3,scope.row)"
+                   v-hasPermiRouter="['demo:demo:edit']"
+                >完成</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>
+    <info-page :propsData="propsData" v-if="pageType === 2"></info-page>
+  </div>
+</template>
+<script>
+  import {
+    getDeptDropList,
+    laboratoryClassTypeGetList,
+    laboratoryClassLevelGetList,
+  } from '@/api/commonality/permission'
+  //import { getDicts } from "@/api/commonality/noPermission";
+  //import { systemUserSelect } from "@/api/commonality/permission";
+  //import { getInfo } from "@/api/basicsModules/index";
+  import infoPage from "./infoPage.vue";
+  export default {
+    name: 'index',
+    components: {
+     infoPage
+    },
+    data () {
+      return {
+        tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
+        //页面状态
+        pageType:1,
+        //页面遮罩
+        loading:false,
+        //下拉列表数据
+        deptOptions:[],
+        typeList:[],
+        levelList:[],
+        //查询条件
+        queryParams:{
+          page:1,
+          pageSize:20,
+          deptId :null,
+          typeId :null,
+          levelId :null,
+        },
+        //时间数据
+        dateRange:[],
+        //列表数据
+        dataList:[],
+        //数据数量
+        total:0,
+        //组件传参
+        propsData:{},
+      }
+    },
+    created () {
+
+    },
+    mounted () {
+      this.getDeptDropList();
+      this.laboratoryClassTypeGetList();
+      this.laboratoryClassLevelGetList();
+      this.getList();
+    },
+    methods: {
+      //查询按钮
+      handleQuery(){
+        this.$set(this.queryParams,'page',1);
+        this.getList();
+      },
+      //重置按钮
+      resetQuery(){
+        this.$set(this,'dateRange',[])
+        this.$set(this,'queryParams',{
+          page:1,
+          pageSize:20,
+          deptId :null,
+          typeId :null,
+          levelId :null,
+        });
+        this.getList();
+      },
+      //获取数据列表
+      getList(){
+          this.$set(this,'dataList',[{}]);
+          this.$set(this,'total',1);
+        // getListFunction(this.queryParams).then(response => {
+        //   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({ deptName: '', level: 2, deptType: 1 }).then(response => {
+          this.$set(this, 'deptOptions', response.data)
+        })
+      },
+      //查询安全分级
+      laboratoryClassLevelGetList() {
+        laboratoryClassLevelGetList({}).then(response => {
+          this.$set(this, 'levelList', response.data)
+        })
+      },
+      //查询安全分类
+      laboratoryClassTypeGetList() {
+        laboratoryClassTypeGetList({}).then(response => {
+          this.$set(this, 'typeList', response.data)
+        })
+      },
+    },
+  }
+</script>
+<style scoped lang="scss">
+  .workExecute{
+    .workExecutePage{
+
+    }
+  }
+</style>

+ 163 - 0
src/views/hierarchicalControl/workExecute/infoPage.vue

@@ -0,0 +1,163 @@
+<template>
+  <div class="page-container workExecute-infoPage">
+    <div class="page-top-title-box">
+      <p class="page-top-title-name-p">工作执行</p>
+      <p class="page-top-title-out-p" @click="backPage">返回</p>
+      <p class="page-top-title-add-p" v-if="!newData.data6" @click="openDialog">完成</p>
+    </div>
+    <div class="content-box scrollbar-box">
+      <el-form class="add-form-box">
+        <div class="text-max-box">
+          <p>管控名称:</p>
+          <p>{{newData.data1}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>管控描述:</p>
+          <p>{{newData.data2}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>二级单位:</p>
+          <p>{{newData.data3}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>安全分类:</p>
+          <p>{{newData.data4}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>安全分级:</p>
+          <p>{{newData.data5}}</p>
+        </div>
+        <div class="text-max-box">
+          <p>状态:</p>
+          <p>{{newData.data6?'已执行':'未执行'}}</p>
+        </div>
+        <div class="text-max-box" v-if="newData.data6">
+          <p>执行人:</p>
+          <p>{{newData.data7}}</p>
+        </div>
+        <div class="text-max-box" v-if="newData.data6">
+          <p>执行时间:</p>
+          <p>{{newData.data8}}</p>
+        </div>
+        <div class="text-max-box" v-if="newData.data6">
+          <p>执行备注:</p>
+          <p>{{newData.data9}}</p>
+        </div>
+      </el-form>
+    </div>
+    <el-dialog class="conditionsSettings-dialog" title='执行完成' width="760px" append-to-body
+               :visible.sync="shadeType" v-if="shadeType" @close="dialogOff()"
+               :close-on-click-modal="false" :close-on-press-escape="false">
+      <div>
+        <el-form :model="addForm" ref="addForm" :inline="true" :rules="rules">
+          <el-form-item label="执行描述" prop="executeDescribe">
+            <el-input type="textarea" resize="none" style="width:630px;" show-word-limit
+                      :rows="4"
+                      v-model="addForm.describe" placeholder="请输入执行描述" maxlength="100"/>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div slot="footer" class="dialog-footer dialog-footer-box">
+        <p class="dialog-footer-button-null"></p>
+        <p class="dialog-footer-button-info" @click="shadeOut()">取消</p>
+        <p class="dialog-footer-button-primary" @click="submitForm">提交</p>
+        <p class="dialog-footer-button-null"></p>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  //import { getDicts } from "@/api/commonality/noPermission";
+  //import { systemUserSelect } from "@/api/commonality/permission";
+  //import { getInfo } from "@/api/basicsModules/index";
+  export default {
+    name: 'infoPage',
+    props:{
+      propsData:{},
+    },
+    data(){
+      return{
+        newData:{
+          data1:'管控名称',
+          data2:'管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述',
+          data3:'二级单位',
+          data4:'安全分类',
+          data5:'安全分级',
+          data6: true,
+          data7:'执行人',
+          data8:'执行时间',
+          data9:'执行备注',
+        },
+        addForm:{
+          executeDescribe:'',
+        },
+        rules: {
+          executeDescribe: [
+            { required: true, message: "请输入执行描述", trigger: "blur" },
+            { required: true, message: "请输入执行描述", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+        },
+        shadeType:false,
+      }
+    },
+    created(){
+
+    },
+    mounted(){
+
+    },
+    methods:{
+      // 返回按钮
+      backPage(){
+        this.$parent.tableButton(6);
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.$refs["addForm"].validate(valid => {
+          if (valid) {
+
+          }
+        })
+      },
+      openDialog(){
+        this.$set(this,'shadeType',true);
+      },
+      dialogOff(){
+        this.$set(this,'shadeType',false);
+        this.$set(this.addForm,'executeDescribe','');
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .workExecute-infoPage{
+    .content-box{
+      flex:1;
+      display: flex;
+      padding:20px;
+      .text-max-box{
+        display: flex;
+        p{
+          font-size: 16px;
+          line-height:40px;
+        }
+        p:nth-child(1){
+          width:120px;
+          text-align: right;
+        }
+        p:nth-child(2){
+          width:1200px;
+          line-height:20px;
+          padding:10px 0;
+        }
+      }
+      .add-execute-describe-box{
+        margin-top:10px;
+        padding-top:20px;
+        border-top:1px solid #dedede;
+      }
+    }
+  }
+</style>

+ 5 - 5
src/views/integratedManagement/laboratoryManagement/classifiedGrading/classified.vue

@@ -98,7 +98,7 @@ import {
   laboratoryClassLevelDelete,
   laboratoryClassLevelDetail,
   laboratoryClassLevelList,
-  laboratoryClassLevelUpdate, laboratoryClassTypeGetClassCriteria
+  laboratoryClassLevelUpdate, laboratoryClassTypeGetClassCriteriaLevel
 } from '@/api/integratedManagement/index'
 
     export default {
@@ -152,7 +152,7 @@ import {
     };
   },
   created() {
-    this.laboratoryClassTypeGetClassCriteria();
+    this.laboratoryClassTypeGetClassCriteriaLevel();
     this.getList();
   },
   methods: {
@@ -172,8 +172,8 @@ import {
       item.checkAll = checkedCount === item.smallClassList.length;
     },
     //分类认定条件
-    laboratoryClassTypeGetClassCriteria() {
-      laboratoryClassTypeGetClassCriteria().then( response => {
+    laboratoryClassTypeGetClassCriteriaLevel() {
+      laboratoryClassTypeGetClassCriteriaLevel().then( response => {
         response.data.forEach(function(item){
           item.allName='全选';
           item.checkAll=false;
@@ -230,7 +230,7 @@ import {
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.laboratoryClassTypeGetClassCriteria();
+      this.laboratoryClassTypeGetClassCriteriaLevel();
       this.reset();
       this.title = "新增安全分级";
       this.open = true;

+ 1 - 1
src/views/integratedManagement/laboratoryManagement/safetyInfoCategory/safetyInfoCategory.vue

@@ -66,7 +66,7 @@
             <p>{{scope.row.isSpecial==2?'是':'否'}}</p>
           </template>
         </el-table-column>
-        <el-table-column label="创建人" align="left" prop="createBy"/>
+        <el-table-column label="创建人" align="left" prop="createName"/>
         <el-table-column label="创建时间" align="left" prop="createTime">
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}") }}</span>

+ 1 - 4
src/views/integratedManagement/laboratoryManagement/subject/index.vue

@@ -64,7 +64,7 @@
                 <el-dropdown-item :command="{command:4}">下载二维码</el-dropdown-item>
               </el-dropdown-menu>
             </el-dropdown>
-            <el-form-item v-hasPermiRouter="['laboratory:subject:import']" style="float: right;">
+            <el-form-item v-hasPermiRouter="['system:subject:import']" style="float: right;">
               <import-component :importConfig="importConfig"></import-component>
             </el-form-item>
           </el-form>
@@ -120,9 +120,6 @@
                       <el-dropdown-item style="height:36px;line-height:36px;width:90px;text-align: center" command="3"
                                         v-hasPermiRouter="['system:subject:edit']">编辑
                       </el-dropdown-item>
-                      <el-dropdown-item style="height:36px;line-height:36px;width:90px;text-align: center" command="4"
-                                        v-hasPermiRouter="['laboratory:subject:remove']">删除
-                      </el-dropdown-item>
                     </el-dropdown-menu>
                   </el-dropdown>
                   <p class="table-button-null"></p>

+ 1 - 1
src/views/integratedManagement/laboratoryManagement/subject/infoPage.vue

@@ -93,7 +93,7 @@
           <p>传感器监测</p>
           <p v-if="lastOnlineTime">数据上报时间:{{parseTime(lastOnlineTime)}}</p>
           <p></p>
-          <p class="page-out-common-style-button" @click="backPage">返回</p>
+          <p class="page-out-common-style-button" style="line-height:40px;" @click="backPage">返回</p>
         </div>
         <p class="sensor-box" v-for="(item,index) in sensorList" :key="index">{{item.deviceName}}:<span>{{item.deviceValue}}{{item.unit}}</span></p>
         <img class="null-data-img" src="@/assets/ZDimages/basicsModules/null-data-1.png" v-if="!sensorList[0]">

+ 4 - 4
src/views/integratedManagement/messageNotice/warningNotice/forewarningConfig.vue

@@ -157,7 +157,7 @@
       <!--提示-->
       <div class="tips-box">
         <p>预警升级规则</p>
-        <p>化学品超时未归还、化学品违规带离预警升级配置</p>
+        <p>化学品超时未归还、化学品违规带离、化学品超期未入库预警升级配置</p>
       </div>
       <!--表格部分-->
       <div class="table-bottom-box">
@@ -422,9 +422,9 @@
           </div>
         </el-form>
       </div>
-      <div class="dialog-footer dialog-footer-box">
+      <div slot="footer" class="dialog-footer dialog-footer-box">
         <p class="dialog-footer-button-null"></p>
-        <p class="dialog-footer-button-info" @click="dialogOff()">取消</p>
+        <p class="dialog-footer-button-info" @click="dialogOff">取消</p>
         <p class="dialog-footer-button-primary" @click="dialogSubmit">提交</p>
         <p class="dialog-footer-button-null"></p>
       </div>
@@ -1033,7 +1033,7 @@
       userSelectList(query) {
         let self = this
         if (query !== '' && query.length > 1) {
-          systemUserSelect({ 'userName': query, 'userType': '', 'deptId': self.dialogForm.deptId }).then(response => {
+          systemUserSelect({ 'keyword': query, 'userType': '', 'deptId': self.dialogForm.deptId }).then(response => {
             this.$set(this, 'optionsUser', response.data)
           })
         } else {

+ 3 - 1
src/views/safetyEducationExam/safeLearning/el_course/coursePreview.vue

@@ -11,7 +11,7 @@
       <!--图片-->
       <img
         style="display: block;margin:0 auto;max-width:900px;"
-        v-if="exerciseData.postfix == 'png' || exerciseData.postfix == 'jpeg' || exerciseData.postfix == 'gif'"
+        v-if="exerciseData.postfix == 'png' || exerciseData.postfix == 'jpeg' || exerciseData.postfix == 'gif' || exerciseData.postfix == 'jpg'"
         :src="exerciseData.chapterData">
       <!--视频-->
       <video class="video-player vjs-custom-skin"
@@ -101,6 +101,8 @@
           this.getWord();
         }else if(this.exerciseData.type == 5){
           this.getRichText();
+        }else if(this.exerciseData.postfix == 'png' || this.exerciseData.postfix == 'jpeg' || this.exerciseData.postfix == 'gif' || this.exerciseData.postfix == 'jpg'){
+          this.loading = true;
         }
       },
       //富文本处理

+ 1 - 1
src/views/safetyEducationExam/safeLearning/safeLearning/learning.vue

@@ -27,7 +27,7 @@
         <!--图片-->
         <img
           style="display: block;margin:auto;"
-          v-if="learningData.postfix == 'png' || learningData.postfix == 'jpeg' || learningData.postfix == 'gif'"
+          v-if="learningData.postfix == 'png' || learningData.postfix == 'jpeg' || learningData.postfix == 'gif' || learningData.postfix == 'jpg'"
           :src="learningData.chapterData" >
         <video class="video-player vjs-custom-skin"
                style="width:1100px;height:619px;"