Browse Source

Merge branch 'web-v2-pro' of http://192.168.1.43:3000/git/sass-lab-web into web-v2-pro

dedsudiyu 2 years ago
parent
commit
62baad931d

BIN
src/assets/ZDimages/icon_wd_zw.png


BIN
src/assets/ZDimages/icon_znmj_lx.png


BIN
src/assets/ZDimages/icon_znmj_zx.png


BIN
src/assets/ZDimages/icon_zw_bk.png


+ 0 - 205
src/views/comprehensive/laboratoryManagement/accessAuthorization/application.vue

@@ -1,205 +0,0 @@
-<!--授权日志-->
-<template>
-  <div class="application">
-    <div class="application-page" v-if="pageType == 1">
-      <div class="title-box">
-        <div @click="titleClick(1)">
-          <p>门禁授权</p>
-          <p></p>
-        </div>
-        <div @click="titleClick(2)">
-          <p>授权日志</p>
-          <p class="bottom-p-color"></p>
-        </div>
-      </div>
-      <div class="application-min">
-        <el-form :model="queryParamsData" ref="queryForm" :inline="true">
-          <el-form-item label="关键字" prop="searchValue" label-width="68px">
-            <el-input
-              maxlength="20"
-              v-model="queryParamsData.searchValue"
-              placeholder="姓名/实验室"
-              clearable
-              size="small"/>
-          </el-form-item>
-          <!--          <el-form-item label="状态" prop="status" label-width="50px">-->
-          <!--            <el-select v-model="queryParamsData.operate" clearable placeholder="请选择状态">-->
-          <!--              <el-option-->
-          <!--                v-for="item in optionsListTwo"-->
-          <!--                :key="item.code"-->
-          <!--                :label="item.name"-->
-          <!--                :value="item.code">-->
-          <!--              </el-option>-->
-          <!--            </el-select>-->
-          <!--          </el-form-item>-->
-          <el-form-item>
-            <p class="inquire-button-one" @click="handleQuery" style="margin-right:10px;">查询</p>
-            <p class="reset-button-one" @click="resetQuery">重置</p>
-          </el-form-item>
-        </el-form>
-        <el-table v-loading="loading" border :data="tableList">
-          <el-table-column label="名称" align="center" prop="nickName" show-overflow-tooltip/>
-          <el-table-column label="类别" align="center" prop="userType" show-overflow-tooltip/>
-          <el-table-column label="门禁" align="center" prop="hardName" show-overflow-tooltip/>
-          <el-table-column label="实验室" align="center" prop="subName" show-overflow-tooltip/>
-          <el-table-column label="实验室所属学院" align="center" prop="deptName" show-overflow-tooltip/>
-          <el-table-column label="实验室位置" align="center" prop="posi"  width="160px" show-overflow-tooltip/>
-          <el-table-column label="操作内容" align="center" prop="remark"  width="160px" show-overflow-tooltip/>
-          <el-table-column label="操作时间" align="center" prop="createTime"  width="160px" show-overflow-tooltip/>
-          <el-table-column label="操作人" align="center" prop="createBy"  width="160px" show-overflow-tooltip/>
-        </el-table>
-        <pagination :page-sizes="[20, 30, 40, 50]"
-                    v-show="total>0"
-                    :total="total"
-                    :page.sync="queryParamsData.pageNum"
-                    :limit.sync="queryParamsData.pageSize"
-                    @pagination="getList"/>
-      </div>
-    </div>
-    <addPage v-if="pageType == 2"></addPage>
-  </div>
-</template>
-
-<script>
-import { applyList, entranceUserLogList } from '@/api/laboratory/subject'
-import addPage from "./addPage.vue";
-export default {
-  name: "application",
-  components: {
-    addPage
-  },
-  data(){
-    return{
-      pageType:1,
-      // table操作按钮校验
-      tableButtonType:this.hasPermiDom(['system:user_student:query','system:user_student:query']),
-      loading:false,
-      // 搜索数据
-      queryParamsData:{
-        pageNum:1,
-        pageSize:20,
-        searchValue:'',
-        operate:'',
-      },
-      // 搜索实际发送数据
-      queryParams:{
-        pageNum:1,
-        pageSize:20,
-      },
-      dateRange:[],
-      //数据数量
-      total:10,
-      tableList:[],
-      //审批状态
-      optionsListTwo:[{code:null,name:'全部'},{code:0,name:'离线'},{code:2,name:'在线'}],
-    }
-  },
-  created() {
-
-  },
-  mounted(){
-    this.getList();
-  },
-  methods:{
-    titleClick(type){
-      this.$parent.titleClick(type);
-    },
-    //页面状态切换
-    goPageButton(type){
-      if(type == 1){
-        this.pageType = 1;
-      }else if(type == 2){
-        this.pageType = 2;
-      }else if(type == 3){
-        this.resetQuery();
-        this.pageType = 1;
-      }
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParamsData.pageNum = 1;
-      this.queryParamsData.pageSize = 20;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.$set(this,'queryParamsData',{});
-      this.$set(this,'dateRange',[]);
-      this.handleQuery();
-    },
-    //获取数据列表
-    getList(){
-      if(this.dateRange&&this.dateRange.length>0) {
-        this.queryParamsData.startTime = this.dateRange[0];
-        this.queryParamsData.endTime = this.dateRange[1];
-      } else {
-        this.queryParamsData.startTime = null;
-        this.queryParamsData.endTime = null;
-      }
-      entranceUserLogList(this.queryParamsData).then(response => {
-        this.tableList = response.rows;
-        this.total = response.total
-      });
-    },
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.application{
-  flex:1;
-  display: flex;
-  flex-direction: column;
-  .application-page{
-    flex:1;
-    display: flex;
-    flex-direction: column;
-    overflow: hidden;
-    .title-box{
-      display: flex;
-      border-bottom:1px solid #E0E0E0;
-      margin-bottom:20px;
-      div{
-        height:80px;
-        margin-right:20px;
-        cursor: pointer;
-        p:nth-child(1){
-          font-size:18px;
-          text-align: center;
-          padding:0 20px;
-          margin-top:26px;
-        }
-        p:nth-child(2){
-          width:40px;
-          height:4px;
-          border-radius:40px;
-          margin:12px auto;
-        }
-        .top-p-color{
-          color: #0045AF;
-        }
-        .bottom-p-color{
-          background: #0045AF;
-        }
-      }
-      .buttonTitleColorA{
-        color:#0045AF;
-      }
-      .buttonTitleColorB{
-        color:#999999;
-      }
-    }
-    .application-min{
-      flex:1;
-      display: flex;
-      flex-direction: column;
-      overflow: hidden;
-      margin:0 20px!important;
-      .button-box{
-        display: flex;
-      }
-    }
-  }
-}
-
-</style>

+ 0 - 222
src/views/comprehensive/laboratoryManagement/accessAuthorization/authorize.vue

@@ -1,222 +0,0 @@
-<!--门禁授权-->
-<template>
-  <div class="authorize">
-    <div class="authorize-page" v-if="pageType == 1">
-      <div class="title-box">
-        <div>
-          <p class="top-p-color">门禁授权</p>
-          <p class="bottom-p-color"></p>
-        </div>
-        <div @click="titleClick(2)">
-          <p>授权日志</p>
-          <p></p>
-        </div>
-      </div>
-      <div class="authorize-min">
-        <el-form :model="queryParamsData" ref="queryForm" :inline="true">
-          <el-form-item label="关键字" prop="searchValue" label-width="68px">
-            <el-input
-              maxlength="20"
-              v-model="queryParamsData.searchValue"
-              placeholder="姓名/实验室"
-              clearable
-              size="small"/>
-          </el-form-item>
-          <el-form-item label="状态" prop="status" label-width="50px">
-            <el-select v-model="queryParamsData.operate" clearable placeholder="请选择状态">
-              <el-option
-                v-for="item in optionsListTwo"
-                :key="item.code"
-                :label="item.name"
-                :value="item.code">
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="分类" prop="zgType" label-width="80px">
-            <el-select v-model="queryParamsData.leadAuditStaus" placeholder="请选择" clearable size="small">
-              <el-option label="全部" value="" />
-              <el-option label="授权验证成功" value="0" />
-              <el-option label="授权验证失败" value="1" />
-            </el-select>
-          </el-form-item>
-          <el-form-item>
-            <p class="inquire-button-one" @click="handleQuery" style="margin-right:10px;">查询</p>
-            <p class="reset-button-one" @click="resetQuery">重置</p>
-          </el-form-item>
-        </el-form>
-        <el-table v-loading="loading" border :data="tableList">
-          <el-table-column label="所属学院" align="left" prop="deptName" />
-          <el-table-column label="实验室" align="left" prop="subName" />
-          <el-table-column label="位置" align="left" prop="posi"  />
-          <el-table-column label="实验室负责人" align="left" prop="adminName" />
-          <el-table-column label="门禁" align="left" prop="hardName" />
-          <el-table-column label="授权人数" align="left" prop="available"  />
-          <el-table-column label="验证方式失败数" align="left" prop="failNum"  />
-          <el-table-column label="状态" align="left" prop="operate" >
-            <template slot-scope="scope" v-if="scope.row.operate">
-              <span>{{scope.row.operate.name}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="操作" align="left" class-name="small-padding fixed-width"  width="120">
-            <template slot-scope="scope">
-              <div class="button-box">
-                <p class="table-min-button"
-                   v-hasPermi="['haikang:user:list']"
-                   @click="handleClick('',scope.row,'detail')"
-                >查看授权</p>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination :page-sizes="[20, 30, 40, 50]"
-                    v-show="total>0"
-                    :total="total"
-                    :page.sync="queryParams.pageNum"
-                    :limit.sync="queryParams.pageSize"
-                    @pagination="getList"/>
-      </div>
-    </div>
-    <lookImpower v-if="pageType == 2" :pageData="pageData"></lookImpower>
-  </div>
-</template>
-
-<script>
-import { getHaikangList } from '@/api/laboratory/subject'
-import lookImpower from "./lookImpower.vue";
-export default {
-  name: "authorize",
-  components: {
-    lookImpower
-  },
-  data(){
-    return{
-      pageType:1,
-      loading:false,
-      // 搜索数据
-      queryParamsData:{
-        pageNum:1,
-        pageSize:20,
-        searchValue:'',
-        operate:'',
-      },
-      // 搜索实际发送数据
-      queryParams:{
-        pageNum:1,
-        pageSize:20,
-      },
-      //数据数量
-      total:10,
-      tableList:[{}],
-      //审批状态
-      optionsListTwo:[{code:null,name:'全部'},{code:0,name:'离线'},{code:2,name:'在线'}],
-      //详情
-      pageData:{},
-    }
-  },
-  created() {
-
-  },
-  mounted(){
-    this.getList();
-  },
-  methods:{
-    handleClick(index,row,doType){
-      if(doType=='detail'){
-        this.pageType=2
-
-        this.pageData=row
-        console.log(this.pageData)
-      }else if(doType=='back'){
-        this.pageType=1
-      }
-
-    },
-    //操作接口
-    goPageButton(){
-      this.pageType = 1;
-    },
-    titleClick(type){
-      this.$parent.titleClick(type);
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParamsData.pageNum = 1;
-      this.queryParamsData.pageSize = 20;
-      this.queryParams = JSON.parse(JSON.stringify(this.queryParamsData));
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.$set(this,'queryParamsData',{});
-      this.$set(this,'queryParams',{});
-      this.handleQuery();
-    },
-    //获取数据列表
-    getList(){
-      this.queryParamsData = JSON.parse(JSON.stringify(this.queryParams));
-      getHaikangList(this.queryParamsData).then(response => {
-        this.tableList = response.rows;
-        this.total = response.total
-      });
-    },
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.authorize{
-  flex:1;
-  display: flex;
-  flex-direction: column;
-  .authorize-page{
-    flex:1;
-    display: flex;
-    flex-direction: column;
-    overflow: hidden;
-    .title-box{
-      display: flex;
-      border-bottom:1px solid #E0E0E0;
-      margin-bottom:20px;
-      div{
-        height:80px;
-        margin-right:20px;
-        cursor: pointer;
-        p:nth-child(1){
-          font-size:18px;
-          text-align: center;
-          padding:0 20px;
-          margin-top:26px;
-        }
-        p:nth-child(2){
-          width:40px;
-          height:4px;
-          border-radius:40px;
-          margin:12px auto;
-        }
-        .top-p-color{
-          color: #0045AF;
-        }
-        .bottom-p-color{
-          background: #0045AF;
-        }
-      }
-      .buttonTitleColorA{
-        color:#0045AF;
-      }
-      .buttonTitleColorB{
-        color:#999999;
-      }
-    }
-    .authorize-min{
-      flex:1;
-      display: flex;
-      flex-direction: column;
-      overflow: hidden;
-      margin:0 20px!important;
-      .button-box{
-        display: flex;
-      }
-    }
-  }
-}
-</style>

+ 0 - 54
src/views/comprehensive/laboratoryManagement/accessAuthorization/index.vue

@@ -1,54 +0,0 @@
-<template>
-  <div class="app-container accessAuthorization">
-    <!--门禁授权-->
-    <authorize v-if="pageType == 1"></authorize>
-    <!--授权日志-->
-    <application v-if="pageType == 2"></application>
-  </div>
-</template>
-
-<script>
-import authorize from "./authorize.vue";
-import application from "./application.vue";
-
-export default {
-  name: "index",
-  components: {
-    authorize,
-    application,
-  },
-  data() {
-    return {
-      pageType: 1,
-    }
-  },
-  created() {
-
-  },
-  mounted() {
-
-  },
-  methods: {
-    //选项卡切换
-    titleClick(type) {
-      if (this.pageType != type) {
-        this.pageType = type
-      }
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.accessAuthorization {
-  flex: 1;
-  display: flex !important;
-  flex-direction: column;
-  overflow: hidden;
-
-  * {
-    margin: 0;
-    font-weight: 500;
-  }
-}
-</style>

+ 0 - 306
src/views/comprehensive/laboratoryManagement/accessAuthorization/lookImpowerSearch.vue

@@ -1,306 +0,0 @@
-<!--
-=========================示例说明=========================
-<advanced-search :searchData="searchData"></advanced-search>
-import advancedSearch from "@/components/ZDcomponents/advancedSearch.vue"
-components: {
-  addPage,
-  advancedSearch
-},
-=========================必要参数=========================
-searchData:{
-  buttonList:[//按钮数组没有则为空
-    {
-      name:"新增",//按钮名称 只有再状态 1 时需要
-      type:"1", //按钮类型 1.按钮 2.导入 3.导出
-      parameter:"add",//按钮字符用于返回方法时的判断
-      hasPermi:['laboratory:gradeManage:add'] // 权限字段 如果没有则传空字符 hasPermi:"",
-    },
-    {
-      name:"导入",//按钮名称 只有再状态 1 时需要
-      type:"2", //按钮类型 1.按钮 2.导入 3.导出
-      parameter:"import",//按钮字符用于返回方法时的判断
-      hasPermi:['laboratory:gradeManage:import'] // 权限字段 如果没有则传空字符 hasPermi:"",
-    },
-    {
-      name:"导出",//按钮名称 只有再状态 1 时需要
-      type:"3", //按钮类型 1.按钮 2.导入 3.导出
-      parameter:"export",//按钮字符用于返回方法时的判断
-      hasPermi:['laboratory:gradeManage:export'] // 权限字段 如果没有则传空字符 hasPermi:"",
-    }
-  ],
-  searchList:[//搜索数组
-    {
-      name:"名称",//描述名称
-      key:"name",//键名 用于返回数据
-      value:"",//内容 用于组件内绑定数据
-      placeholder:"请输入名称",//输入提示
-      level:"1",//1.普通搜索 2.高级搜索  普通搜索默认会在高级搜索时显示
-      type:"1",//类型 1.input 2.select 3.TimePicker
-      universal:'10',//通用参数 input时为最大长度 //TimePicker时可不传
-      universal:[ //通用参数 select时为列表数据 //TimePicker时可不传
-        {label:"全部",value:""},{label:"开启",value:"1"},{label:"关闭",value:"0"},
-      ],
-      labelWidth:'100px',//label-width宽度  可传可不传 不传时为默认宽度
-      width:'200',//el-form-item 长度 可传可不传 不传时input/select默认180长度 TimePicker默认240长度
-    }
-  ]
-}
-=========================必要方法=========================
-//父组件必要此方法用于接收参数
-searchClick(type,data){
-  if(type == 1){ //type  1.查询
-    this.queryParams = JSON.parse(JSON.stringify(data));
-    this.queryParams.pageNum = 1;
-    this.queryParams.pageSize = 20;
-    this.getList();
-  }else if(type == 2){ //type  1.重置
-    this.queryParams = {
-      pageNum : 1,
-      pageSize:20,
-    };
-    this.getList();
-  }else if(type == 'add'){ //type  其他 自定义按钮
-    this.clickPageType(2);
-  }else if(type == 'import'){ //如果按钮类型是2或者3 这里data也会返回数据
-    console.log('data',data)
-  }else if(type == 'export'){ //如果按钮类型是2或者3 这里data也会返回数据
-    console.log('data',data)
-  }
-},
--->
-
-<template>
-  <div class="advancedSearchMaxBigBox">
-    <el-form ref="queryForm" :inline="true" v-if="!searchState">
-      <el-form-item :label="item.name" :label-width="item.labelWidth?item.labelWidth:'px'" prop="searchValue" v-for="item in searchData.searchList" v-if="item.level == 1">
-        <el-input v-if="item.type == 1" v-model="item.value" :maxlength="item.universal" :placeholder="item.placeholder" clearable
-                  :style="item.width?'width:'+item.width+'px;':'width: 180px;'"/>
-        <el-select v-if="item.type == 2" v-model="item.value" :placeholder="item.placeholder" clearable
-                   :style="item.width?'width:'+item.width+'px;':'width: 180px;'">
-          <el-option :key="minItem.value" :label="minItem.label" :value="minItem.value" v-for="minItem in item.universal"></el-option>
-        </el-select>
-        <el-date-picker v-if="item.type == 3" v-model="item.value" :clearable="false" value-format="yyyy-MM-dd"
-                        :style="item.width?'width:'+item.width+'px;':'width: 240px;'"
-                        type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <p class="inquire-button-one" @click="buttonClick(1)">查询</p>
-        <p class="reset-button-one" @click="buttonClick(2)">重置</p>
-      </el-form-item>
-      <el-form-item>
-        <p class="advanced-button" @click="stateSwitch">高级搜索</p>
-      </el-form-item>
-      <el-form-item style="float: right" v-for="item in searchData.buttonList" >
-        <p v-if="item.type == 1 && !item.hasPermi" class="inquire-button-one" style="width:120px;" @click="buttonClick(item.parameter)">{{item.name}}</p>
-        <p v-if="item.type == 1 && item.hasPermi" class="inquire-button-one" v-hasPermi="item.hasPermi" style="width:120px;" @click="buttonClick(item.parameter)">{{item.name}}</p>
-        <div style="float: right;" v-if="item.type == 2">
-          <el-dropdown @command="commandButton" v-hasPermi="item.hasPermi">
-            <div class="form-dropdown-box">
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzgxx_dr.png">
-              <p>导入</p>
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzggl_xljt.png">
-            </div>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{item:item,command:1}">下载模板</el-dropdown-item>
-              <el-dropdown-item style="margin:0 10px;color:#666;" :command="{item:item,command:2}">导入数据</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </div>
-        <div style="float: right; "  v-if="item.type == 3">
-          <el-dropdown @command="commandButton" v-hasPermi="item.hasPermi">
-            <div class="form-dropdown-box">
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzgxx_sc.png">
-              <p>导出</p>
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzggl_xljt.png">
-            </div>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{item:item,command:1}">导出全部数据</el-dropdown-item>
-              <el-dropdown-item style="margin:0 10px;color:#666;" :command="{item:item,command:2}">导出选中数据</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </div>
-      </el-form-item>
-    </el-form>
-    <el-form ref="queryForm" :inline="true" v-if="searchState">
-      <el-form-item :label="item.name" :label-width="item.labelWidth?item.labelWidth:'px'" prop="searchValue" v-for="item in searchData.searchList" >
-        <el-input v-if="item.type == 1" v-model="item.value" :maxlength="item.universal" :placeholder="item.placeholder" clearable
-                  :style="item.width?'width:'+item.width+'px;':'width: 180px;'"/>
-        <el-select v-if="item.type == 2" v-model="item.value" :placeholder="item.placeholder" clearable
-                   :style="item.width?'width:'+item.width+'px;':'width: 180px;'">
-          <el-option :key="minItem.value" :label="minItem.label" :value="minItem.value" v-for="minItem in item.universal"></el-option>
-        </el-select>
-        <el-date-picker v-if="item.type == 3" v-model="item.value" :clearable="false" value-format="yyyy-MM-dd"
-                        :style="item.width?'width:'+item.width+'px;':'width: 240px;'"
-                        type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期">
-        </el-date-picker>
-      </el-form-item>
-    </el-form>
-    <div class="advanced-max-big-box" v-if="searchState">
-      <div class="left-advanced-box"></div>
-      <div class="center-advanced-box">
-        <p class="inquire-button-one" @click="buttonClick(1)">查询</p>
-        <p class="reset-button-one" @click="buttonClick(2)">重置</p>
-      </div>
-      <div class="right-advanced-box">
-        <span class="ordinary-button" @click="stateSwitch">普通搜索</span>
-      </div>
-      <div v-for="item in searchData.buttonList">
-        <p v-if="item.type == 1" class="inquire-button-one"
-           v-hasPermi="item.hasPermi" style="width:120px;float: right;" @click="buttonClick(item.parameter)">{{item.name}}</p>
-        <div style="float: right;" v-if="item.type == 2">
-          <el-dropdown @command="commandButton" v-hasPermi="item.hasPermi">
-            <div class="form-dropdown-box">
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzgxx_dr.png">
-              <p>导入</p>
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzggl_xljt.png">
-            </div>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{item:item,command:1}">下载模板</el-dropdown-item>
-              <el-dropdown-item style="margin:0 10px;color:#666;" :command="{item:item,command:2}">导入数据</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </div>
-        <div style="float: right; "  v-if="item.type == 3">
-          <el-dropdown @command="commandButton" v-hasPermi="item.hasPermi">
-            <div class="form-dropdown-box">
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzgxx_sc.png">
-              <p>导出</p>
-              <img src="@/assets/ZDimages/personnelManagement/icon_jzggl_xljt.png">
-            </div>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{item:item,command:1}">导出全部数据</el-dropdown-item>
-              <el-dropdown-item style="margin:0 10px;color:#666;" :command="{item:item,command:2}">导出选中数据</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  name: "advancedSearch",
-  props:{
-    searchData:{}
-  },
-  data() {
-    return {
-      searchState:false,
-    }
-  },
-  created() {
-
-  },
-  mounted(){
-
-  },
-  methods: {
-    //普通/高级状态切换
-    stateSwitch(){
-      this.searchState = !this.searchState;
-    },
-    //导出/导入按钮
-    commandButton(data){
-      this.$parent.searchClick(data.item.parameter,data.command);
-    },
-    //按钮方法
-    buttonClick(type){
-      let self = this;
-      if(type == '1'){
-        //查找
-        let obj = {};
-        for(let i=0;i<self.searchData.searchList.length;i++){
-          if(self.searchState){
-            //高级搜索
-            obj[self.searchData.searchList[i].key] = self.searchData.searchList[i].value;
-          }else{
-            //普通搜索
-            if(self.searchData.searchList[i].level == '1'){
-              obj[self.searchData.searchList[i].key] = self.searchData.searchList[i].value;
-            }
-          }
-        }
-        self.$parent.searchClick(type,obj);
-      }else if(type == '2'){
-        //返回
-        for(let i=0;i<self.searchData.searchList.length;i++){
-          self.searchData.searchList[i].value = '';
-        }
-        self.$parent.searchClick(type);
-      }else{
-        self.$parent.searchClick(type);
-      }
-    },
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.advancedSearchMaxBigBox{
-  margin:0 20px;
-  .advanced-button{
-    margin:0 20px;
-    cursor: pointer;
-    line-height:40px;
-    font-weight:500;
-    font-size:14px;
-    color:#0183FA;
-  }
-  .advanced-max-big-box{
-    display: flex;
-    padding-bottom:20px;
-    padding-right:10px;
-    font-size:14px;
-    .left-advanced-box{
-      flex:1;
-    }
-    .center-advanced-box{
-
-    }
-    .right-advanced-box{
-      flex:1;
-      .ordinary-button{
-        margin:0 20px;
-        cursor: pointer;
-        line-height:40px;
-        font-weight:500;
-        font-size:14px;
-        color:#0183FA;
-      }
-    }
-  }
-  .form-dropdown-box{
-    display: flex;
-    margin:0;
-    padding:0 10px;
-    cursor: pointer;
-    height:40px;
-    img:nth-child(1){
-      width:16px;
-      height:16px;
-      margin-top:12px;
-    }
-    p{
-      width:47px;
-      text-align: center;
-      font-size:14px;
-      margin:0;
-      line-height:40px;
-    }
-    img:nth-child(3){
-      width:10px;
-      height:6px;
-      margin-top:17px;
-    }
-  }
-}
-</style>
-<style lang="scss">
-.advancedSearchMaxBigBox{
-  .el-range-editor--medium.el-input__inner{
-    height:40px;
-  }
-}
-</style>

+ 0 - 997
src/views/comprehensive/laboratoryManagement/subject/deviceList.vue

@@ -1,997 +0,0 @@
-<!--物联设备配置-->
-<template>
-  <div class="deviceList scrollbar-box">
-    <div class="title-box">
-      <p class="left-title">传感器</p>
-      <p class="right-button reset-button-one" @click="backPage">返回</p>
-    </div>
-    <div class="for-max-box">
-      <div class="for-big-box" v-for="(item,index) in listCgq" :key="index">
-        <p class="for-title-p">{{subjectData.room}}-{{item.type.name}}传感器{{index+1}}</p>
-        <div class="for-text-box">
-          <p>网关编号:</p>
-          <el-tooltip class="item" effect="dark" :content="item.gatewayId" placement="top">
-            <p>{{item.gatewayId}}</p>
-          </el-tooltip>
-        </div>
-        <div class="for-button-box">
-          <p @click="editData(5,item)"><i class="el-icon-edit-outline"></i>编辑</p>
-          <p></p>
-          <p @click="delSensor(item)"><i class="el-icon-delete"></i>删除</p>
-        </div>
-      </div>
-      <p class="add-for-p" @click="addData(1)"><i class="el-icon-plus"></i>添加传感器</p>
-    </div>
-    <div class="title-box">
-      <p class="left-title">智能门禁</p>
-    </div>
-    <div class="for-max-box">
-      <div class="for-big-box" v-for="(item,index) in listHK" :key="index" style="width: 350px">
-        <p class="for-title-p">{{item.type.name}}-{{item.name}}</p>
-        <div class="for-text-box">
-          <p>门禁编号:</p>
-          <el-tooltip class="item" effect="dark" :content="item.hardwareNum" placement="top">
-            <p>{{item.hardwareNum}}</p>
-          </el-tooltip>
-        </div>
-        <div class="for-text-box">
-          <p>门禁授权:</p>
-          <el-checkbox-group v-model="item.controlScope==null?[]:item.controlScope.split(',')" style="margin-top: 6px" disabled>
-            <el-checkbox label="1" style="margin-right: 8px">关联安全准入</el-checkbox>
-            <el-checkbox label="2">关联白名单</el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="for-button-box">
-          <p @click="editData('editEntrance',item)"><i class="el-icon-edit-outline"></i>编辑</p>
-          <p></p>
-          <p @click="delEntrance(item)"><i class="el-icon-delete"></i>删除</p>
-        </div>
-      </div>
-      <p class="add-for-p" @click="addData('addEntrance')" style="width: 350px;height: 158px;" v-if="listHK.length<3"><i class="el-icon-plus"></i>添加智能门禁</p>
-    </div>
-    <div class="title-box">
-      <p class="left-title">一体机</p>
-    </div>
-    <div class="for-max-box">
-      <div class="for-big-box" v-for="(item,index) in listYtj" :key="index">
-        <p class="for-title-p">{{subjectData.room}}-{{item.type.name}}{{index+1}}</p>
-        <div class="for-text-box">
-          <p>一体机编号:</p>
-          <el-tooltip class="item" effect="dark" :content="item.hardwareNum" placement="top">
-            <p>{{item.hardwareNum}}</p>
-          </el-tooltip>
-        </div>
-        <div class="for-button-box">
-          <p @click="editData(6,item)"><i class="el-icon-edit-outline"></i>编辑</p>
-          <p></p>
-          <p @click="delHardware(item)"><i class="el-icon-delete"></i>删除</p>
-        </div>
-      </div>
-      <p class="add-for-p" @click="addData(2)"><i class="el-icon-plus"></i>添加一体机</p>
-    </div>
-    <div class="title-box">
-      <p class="left-title">控制设备</p>
-    </div>
-    <div class="for-max-box">
-      <div class="for-big-box-two" v-for="(item,index) in listkzsb" :key="index">
-        <p class="for-title-p">{{subjectData.room}}-{{item.type.name}}传感器{{index+1}}</p>
-        <div class="for-text-box">
-          <p>设备编号:</p>
-          <el-tooltip class="item" effect="dark" :content="item.relayCode" placement="top">
-            <p>{{item.relayCode}}</p>
-          </el-tooltip>
-        </div>
-        <div class="for-text-box">
-          <p>设备路由:</p>
-          <p>{{item.bit}}</p>
-        </div>
-        <div class="for-button-box">
-          <p @click="editData(7,item)"><i class="el-icon-edit-outline"></i>编辑</p>
-          <p></p>
-          <p @click="delHardwareTwo(item)"><i class="el-icon-delete"></i>删除</p>
-        </div>
-      </div>
-      <p class="add-for-p-two" @click="addData(3)"><i class="el-icon-plus"></i>添加控制设备</p>
-    </div>
-    <div class="title-box">
-      <p class="left-title">摄像头</p>
-    </div>
-    <div class="for-max-box">
-      <div class="for-big-box" v-for="(item,index) in listSpjk" :key="index">
-        <p class="for-title-p">{{subjectData.room}}-{{item.type.name}}{{index+1}}</p>
-        <div class="for-text-box">
-          <p>摄像头编号:</p>
-          <p></p>
-        </div>
-        <div class="for-text-box">
-          <p></p>
-          <el-tooltip class="item" effect="dark" :content="item.hardwareNum" placement="top">
-            <p>{{item.hardwareNum}}</p>
-          </el-tooltip>
-        </div>
-        <div class="for-button-box">
-          <p @click="editData(8,item)"><i class="el-icon-edit-outline"></i>编辑</p>
-          <p></p>
-          <p @click="delHardwareThree(item)"><i class="el-icon-delete"></i>删除</p>
-        </div>
-      </div>
-      <p class="add-for-p-two" @click="addData(4)"><i class="el-icon-plus"></i>添加摄像头</p>
-    </div>
-    <el-dialog :title="title" :visible.sync="addType" v-if="addType" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
-        <div v-if="upType == 1 || upType == 5">
-          <el-form-item label="传感器类型" prop="type">
-            <el-select v-model="form.type" placeholder="请选择传感器类型" style="width:320px;">
-              <el-option
-                v-for="item in sensorAddOptions"
-                :key="item.enumName"
-                :label="item.name"
-                :value="item.enumName">
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="网关编号" prop="gatewayId">
-            <el-input v-model="form.gatewayId" placeholder="请输入网关编号"
-                      maxlength="30" style="width:320px;"/>
-          </el-form-item>
-          <el-form-item label="路由" prop="routeNum">
-            <el-input v-model="form.routeNum" oninput="value=value.replace(/[^0-9.]/g,'')" maxlength="2" placeholder="请输入路由" style="width:320px;"></el-input>
-          </el-form-item>
-          <el-form-item label="传感器参数" prop="configName">
-            <el-input v-model="form.configName"  placeholder="请输入传感器参数"
-                      maxlength="30" style="width:320px;"></el-input>
-          </el-form-item>
-          <el-form-item label="状态参数" prop="configStatus">
-            <el-input v-model="form.configStatus"  placeholder="请输入状态参数"
-                      maxlength="30" style="width:320px;"></el-input>
-          </el-form-item>
-        </div>
-        <div v-if="upType == 2 || upType == 6">
-          <el-form-item label="一体机名称" prop="name">
-            <el-input
-              style="width:320px;"
-              v-model="form.name"
-              placeholder="请输入一体机名称"
-              maxlength="8"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="一体机类型" prop="pcType">
-            <el-select v-model="form.pcType" placeholder="请选择一体机类型" style="width:320px;">
-              <el-option label="管控一体机" value="0" />
-              <el-option label="学习一体机" value="1" />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="一体机编号" prop="hardwareNum">
-            <el-input
-              style="width:320px;"
-              v-model="form.hardwareNum"
-              placeholder="请输入一体机编号"
-              maxlength="30"
-              size="small"
-            />
-          </el-form-item>
-        </div>
-        <div v-if="upType == 3 || upType == 7">
-          <el-form-item label="设备类型" prop="type">
-            <el-select v-model="form.type" placeholder="请选择设备类型" style="width:320px;" :disabled="disabledType">
-              <el-option key="1" label="电源开关" value="1"></el-option>
-              <el-option key="2" label="智能通风" value="2"></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="设备版本" prop="hardwareType">
-            <el-radio-group v-model="form.hardwareType">
-              <el-radio :label="1">老继电器</el-radio>
-              <el-radio :label="2">新继电器</el-radio>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="设备编号" prop="relayCode">
-            <el-input v-model="form.relayCode" placeholder="请输入设备编号"
-                      maxlength="30" style="width:320px;"/>
-          </el-form-item>
-          <el-form-item label="设备路由" prop="bit">
-            <el-input v-model="form.bit" oninput="value=value.replace(/[^0-9.]/g,'')" maxlength="2" placeholder="请输入路由" style="width:320px;"></el-input>
-          </el-form-item>
-          <el-form-item label="设备参数" prop="configName" v-if="form.hardwareType == 2">
-            <el-input v-model="form.configName" maxlength="30" placeholder="请输入设备参数" style="width:320px;"></el-input>
-          </el-form-item>
-          <el-form-item label="参数状态" prop="configStatus" v-if="form.hardwareType == 2">
-            <el-input v-model="form.configStatus" maxlength="30" placeholder="请输入参数状态" style="width:320px;"></el-input>
-          </el-form-item>
-        </div>
-        <div v-if="upType == 4 || upType == 8">
-          <el-form-item label="摄像头编号" prop="hardwareNum">
-            <el-input v-model="form.hardwareNum" placeholder="摄像头编号"
-                      maxlength="30" style="width:320px;"/>
-          </el-form-item>
-        </div>
-        <div v-if="upType == 'addEntrance'||  upType=='editEntrance'">
-          <el-form-item label="门禁编号" prop="hardwareNum">
-            <el-input
-              style="width:320px;"
-              v-model="form.hardwareNum"
-              placeholder="请输入门禁编号"
-              maxlength="20"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="门禁名称" prop="name" >
-            <el-input
-              style="width:320px;"
-              v-model="form.name"
-              placeholder="请输入门禁名称"
-              maxlength="8"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="IP" prop="ipAddress" >
-            <el-input
-              style="width:320px;"
-              v-model="form.ipAddress"
-              placeholder="请输入IP"
-              maxlength="15"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="端口" prop="port" >
-            <el-input
-              style="width:320px;"
-              v-model="form.port"
-              placeholder="请输入端口"
-              maxlength="6"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="设备管理证号" prop="harUser" >
-            <el-input
-              style="width:320px;"
-              v-model="form.harUser"
-              placeholder="请输入设备管理证号"
-              maxlength="30"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="设备管理密码" prop="harPsw" >
-            <el-input
-              style="width:320px;"
-              v-model="form.harPsw"
-              placeholder="请输入设备管理密码"
-              maxlength="30"
-              size="small"
-            />
-          </el-form-item>
-          <el-form-item label="门禁权限" style="margin-bottom: 0">
-            <el-checkbox-group v-model="form.controlScope">
-              <el-checkbox label="1" >关联安全准入</el-checkbox>
-              <el-checkbox label="2">关联白名单</el-checkbox>
-            </el-checkbox-group>
-          </el-form-item>
-          <p style="margin:0 20px 0 104px;color: #FD2A2A;">关联之后申请安全准入或者白名单后自动授权门禁,不关联则需要单独授权门禁</p>
-        </div>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="cancel">取 消</el-button>
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listBySubjectId,addSensor,putSensor,delSensor,addHardware,putHardware,delHardware } from "@/api/laboratory/subject";
-import { getSensorList } from "@/api/laboratory/sensor";
-export default {
-  name: "deviceList",
-  props:{
-    subjectData:{},
-  },
-  data() {
-    return {
-      title:"",
-      addType:false,
-      listCgq:[],  //传感器
-      listYtj:[],  //一体机
-      listkzsb:[],
-      listSpjk:[],   //摄像头
-      listHK:[],//智能门禁
-      form:{
-      },
-      // 表单校验
-      rules: {
-        name:[
-          {required: true, message: '请输入名称', trigger: 'blur'},
-          { required: true, message: "请输入名称", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        type:[
-          {required: true, message: '类型不能为空', trigger: 'blur'}
-        ],
-        gatewayId:[
-          {required: true, message: '网关不能为空', trigger: 'blur'},
-          { required: true, message: "网关不能为空", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        hardwareNum:[
-          { required: true, message: "请输入编号", trigger: "blur" },
-          { required: true, message: "请输入编号", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        pcType: [
-          { required: true, message: "请选择类型", trigger: "blur" },
-        ],
-        hardwareType: [
-          { required: true, message: "请选择设备版本", trigger: "blur" },
-        ],
-        relayCode: [
-          { required: true, message: "请输入设备编号", trigger: "blur" },
-          { required: true, message: "请输入设备编号", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        bit: [
-          { required: true, message: "请输入路由", trigger: "blur" },
-          { required: true, message: "请输入路由", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        ipAddress: [
-          { required: true, message: "请输入IP", trigger: "blur" },
-          { required: true, message: "请输入IP", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        port: [
-          { required: true, message: "请输入端口", trigger: "blur" },
-          { required: true, message: "请输入端口", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-
-        harUser: [
-          { required: true, message: "请输入设备管理证号", trigger: "blur" },
-          { required: true, message: "请输入设备管理证号", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        harPsw: [
-          { required: true, message: "请输入设备管理密码", trigger: "blur" },
-          { required: true, message: "请输入设备管理密码", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-
-      },
-      //提交类型
-      upType:"",
-      //传感器类型
-      sensorAddOptions: [],
-    }
-  },
-  created() {
-    this.listBySubjectId();
-    this.getSensorList();
-  },
-  mounted(){
-
-  },
-  methods:{
-    // 取消按钮
-    cancel() {
-      this.addType = false;
-    },
-    // 提交
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if(this.upType == 1){
-            //新增传感器
-            this.addSensor();
-          }else if(this.upType == 5){
-            //编辑传感器
-            this.putSensor();
-          }else if(this.upType == 2){
-            //新增一体机
-            this.addHardware();
-          }else if(this.upType == 6){
-            //编辑一体机
-            this.putHardware();
-          }else if(this.upType == 3){
-            //新增控制设备
-            this.addHardwareTwo();
-          }else if(this.upType == 7){
-            //编辑控制设备
-            this.putHardwareTwo();
-          }else if(this.upType == 4){
-            //新增控制设备
-            this.addHardwareThree();
-          }else if(this.upType == 8){
-            //编辑控制设备
-            this.putHardwareThree();
-          }else if(this.upType == 'addEntrance'){
-            //新增智能门禁
-            this.addEntrance();
-          }else if(this.upType == 'editEntrance'){
-            //编辑智能门禁
-            this.editEntrance();
-          }
-        }
-      });
-    },
-    //删除智能门禁
-    delEntrance(item){
-      this.$confirm('确认要删除该智能门禁?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        //  确定
-        delHardware(item.id).then((response) => {
-          this.msgSuccess(response.msg)
-          this.addType = false;
-          this.listBySubjectId();
-        });
-      }).catch(function() {
-        //  取消
-      });
-    },
-    //新增摄像头
-    addHardwareThree(){
-      let obj = {
-        type:4,
-        hardwareNum:this.form.hardwareNum,
-        subjectId:this.subjectData.id,
-        deptId:this.subjectData.deptId,
-        deptName:this.subjectData.deptName,
-      }
-      addHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //编辑摄像头
-    putHardwareThree(){
-      let obj = {
-        id:this.form.id,
-        hardwareNum:this.form.hardwareNum,
-        subjectId:this.form.subjectId,
-        deptId:this.form.deptId,
-        deptName:this.form.deptName,
-      }
-      putHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //删除摄像头
-    delHardwareThree(item){
-      this.$confirm('确认要删除该摄像头?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        //  确定
-        delHardware(item.id).then((response) => {
-          this.msgSuccess(response.msg)
-          this.addType = false;
-          this.listBySubjectId();
-        });
-      }).catch(function() {
-        //  取消
-      });
-    },
-    //新增控制设备
-    addHardwareTwo(){
-      let obj = {
-        type:this.form.type,
-        hardwareType:this.form.hardwareType,
-        relayCode:this.form.relayCode,
-        bit:this.form.bit,
-        configName:this.form.configName,
-        configStatus:this.form.configStatus,
-        subjectId:this.subjectData.id,
-        deptId:this.subjectData.deptId,
-        deptName:this.subjectData.deptName,
-      }
-      addHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //编辑控制设备
-    putHardwareTwo(){
-      let obj = {
-        id:this.form.id,
-        hardwareType:this.form.hardwareType,
-        relayCode:this.form.relayCode,
-        bit:this.form.bit,
-        configName:this.form.configName,
-        configStatus:this.form.configStatus,
-        subjectId:this.form.subjectId,
-        deptId:this.form.deptId,
-        deptName:this.form.deptName,
-      }
-      putHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //删除控制设备
-    delHardwareTwo(item){
-      this.$confirm('确认要删除该一体机?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        //  确定
-        delHardware(item.id).then((response) => {
-          this.msgSuccess(response.msg)
-          this.addType = false;
-          this.listBySubjectId();
-        });
-      }).catch(function() {
-        //  取消
-      });
-    },
-    //添加一体机
-    addHardware(){
-      let obj = {
-        type:0,
-        name:this.form.name,
-        pcType:this.form.pcType,
-        hardwareNum:this.form.hardwareNum,
-        subjectId:this.subjectData.id,
-        deptId:this.subjectData.deptId,
-        deptName:this.subjectData.deptName,
-      }
-      addHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //编辑一体机
-    putHardware(){
-      let obj = {
-        id:this.form.id,
-        name:this.form.name,
-        pcType:this.form.pcType,
-        hardwareNum:this.form.hardwareNum,
-      }
-      putHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //删除一体机
-    delHardware(item){
-      this.$confirm('确认要删除该一体机?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        //  确定
-        delHardware(item.id).then((response) => {
-          this.msgSuccess(response.msg)
-          this.addType = false;
-          this.listBySubjectId();
-        });
-      }).catch(function() {
-        //  取消
-      });
-    },
-    //添加传感器
-    addSensor(){
-      let obj = {
-        type:this.form.type,
-        gatewayId:this.form.gatewayId,
-        routeNum:this.form.routeNum,
-        configName:this.form.configName,
-        configStatus:this.form.configStatus,
-        subjectId:this.subjectData.id
-      }
-      addSensor(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //编辑传感器
-    putSensor(){
-      let obj = {
-        type:this.form.type,
-        id:this.form.id,
-        gatewayId:this.form.gatewayId,
-        routeNum:this.form.routeNum,
-        configName:this.form.configName,
-        configStatus:this.form.configStatus,
-      }
-      putSensor(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //删除传感器
-    delSensor(item){
-      this.$confirm('确认要删除该传感器?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      }).then(() => {
-        //  确定
-        delSensor(item.id).then((response) => {
-          this.msgSuccess(response.msg)
-          this.addType = false;
-          this.listBySubjectId();
-        });
-      }).catch(function() {
-        //  取消
-      });
-    },
-    //新增智能门禁
-    addEntrance(){
-      let obj = {
-        type:11,
-        subjectId:this.subjectData.id,
-        hardwareNum:this.form.hardwareNum,
-        name:this.form.name,
-        ipAddress:this.form.ipAddress,
-        port:this.form.port,
-        harUser:this.form.harUser,
-        harPsw:this.form.harPsw,
-        controlScope:this.form.controlScope.join(','),
-      }
-      addHardware(obj).then(response => {
-        if(response.code==200){
-          this.msgSuccess(response.msg)
-          this.addType = false;
-          this.listBySubjectId();
-        }else if(response.code==205){
-          this.$confirm(response.msg, "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(() => {
-            //  确定
-            this.$router.push({ path: '/comprehensive/laboratoryManagement/accessAuthorization' });
-          }).catch(function() {
-            //  取消
-          });
-        }
-      });
-    },
-    //编辑智能门禁
-    editEntrance(){
-      let obj = {
-        id:this.form.id,
-        hardwareNum:this.form.hardwareNum,
-        name:this.form.name,
-        ipAddress:this.form.ipAddress,
-        port:this.form.port,
-        harUser:this.form.harUser,
-        harPsw:this.form.harPsw,
-        controlScope:this.form.controlScope.join(','),
-        subjectId:this.subjectData.id
-      }
-      putHardware(obj).then(response => {
-        this.msgSuccess(response.msg)
-        this.addType = false;
-        this.listBySubjectId();
-      });
-    },
-    //添加
-    addData(type){
-      // this.resetForm("form");
-      if(type == 1){
-        this.title = '新增传感器';
-        this.$set(this,'form',{
-          type:"",
-          gatewayId:"",
-          routeNum:"",
-          configName:"",
-          configStatus:"",
-        });
-      }else if(type == 2){
-        this.title = '新增一体机';
-        this.$set(this,'form',{
-          name:"",
-          pcType:"",
-          hardwareNum:"",
-        });
-      }else if(type == 3){
-        this.title = '新增控制设备';
-        this.form.hardwareType = 1;
-        this.disabledType = false;
-        this.$set(this,'form',{
-          type:"",
-          hardwareType:"",
-          relayCode:"",
-          bit:"",
-          configName:"",
-          configStatus:"",
-        });
-      }else if(type == 4){
-        this.title = '新增摄像头';
-        this.$set(this,'form',{
-          hardwareNum:"",
-        });
-      }else if(type == 'addEntrance'){
-        this.title = '新增智能门禁';
-        this.$set(this,'form',{
-          hardwareNum:"",
-          name:"",
-          ipAddress:"",
-          port:"",
-          harUser:"",
-          harPsw:"",
-          controlScope:[],
-        });
-      }
-      this.addType = true;
-      this.upType = type;
-    },
-    //编辑
-    editData(type,row){
-      if(type == 5){
-        this.title = '编辑传感器';
-        this.$set(this,'form',JSON.parse(JSON.stringify(row)));
-        this.$set(this.form,'type',JSON.parse(JSON.stringify(row.type.enumName)));
-      }else if(type == 6){
-        this.title = '编辑一体机';
-        this.$set(this,'form',JSON.parse(JSON.stringify(row)));
-        this.$set(this.form,'pcType',JSON.parse(JSON.stringify(row.pcType+'')));
-      }else if(type == 7){
-        this.title = '编辑控制设备';
-        this.disabledType = true;
-        this.$set(this,'form',JSON.parse(JSON.stringify(row)));
-        this.$set(this.form,'type',JSON.parse(JSON.stringify(row.type.code+'')));
-      }else if(type == 8){
-        this.title = '编辑摄像头';
-        this.$set(this,'form',JSON.parse(JSON.stringify(row)));
-      }else if(type == 'editEntrance'){
-        this.title = '编辑智能门禁';
-        this.$set(this,'form',JSON.parse(JSON.stringify(row)));
-        if(row.controlScope){
-          this.form.controlScope=row.controlScope.split(',')
-        }else{
-          this.form.controlScope=[]
-        }
-
-      }
-      this.addType = true;
-      this.upType = type;
-    },
-    //获取列表
-    listBySubjectId(){
-      let obj = {
-        subjectId:this.subjectData.id
-      };
-      console.log("obj",obj)
-      listBySubjectId(obj).then(response => {
-        this.$set(this,'listCgq',response.data.listCgq);
-        this.$set(this,'listYtj',response.data.listYtj);
-        this.$set(this,'listkzsb',response.data.listkzsb);
-        this.$set(this,'listSpjk',response.data.listSpjk);
-        this.$set(this,'listHK',response.data.listHK);
-      });
-    },
-    //返回上一页
-    backPage(){
-      this.$parent.clickPage(1);
-    },
-    //传感器类型
-    getSensorList(){
-      getSensorList().then(response => {
-        this.sensorAddOptions = response.data;
-      });
-    },
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.deviceList{
-  flex:1;
-  display: flex;
-  flex-direction: column;
-  padding-bottom:20px;
-  border-radius:10px!important;
-  margin:5px 20px 20px 10px!important;
-  box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1) !important;
-  *{
-    margin:0;
-  }
-  .title-box{
-    display: flex;
-    margin:0 20px;
-    .left-title{
-      flex:1;
-      height:80px;
-      line-height:80px;
-      color:#0045AF;
-      font-size:18px;
-    }
-    .right-button{
-      margin:20px 0;
-    }
-  }
-  .for-max-box{
-    margin:0 40px;
-    font-weight:500;
-    .for-big-box{
-      border: 1px solid #E0E0E0;
-      display: inline-block;
-      overflow: hidden;
-      width:280px;
-      min-height:130px;
-      padding-bottom:10px;
-      border-radius: 6px;
-      margin:0 20px 20px 0;
-      .for-title-p{
-        background: rgba(182,214,254,1);
-        color:#0183FA;
-        font-size:16px;
-        line-height:40px;
-        display:block;
-        overflow:hidden;
-        text-overflow:ellipsis;
-        white-space:nowrap;
-        padding:0 16px;
-        margin-bottom:10px;
-        font-weight:700;
-      }
-      .for-text-box{
-        display: flex;
-        padding:0 23px;
-        p{
-          font-size:14px;
-          line-height:30px;
-          flex:1;
-        }
-        p:nth-child(1){
-          color:#333;
-          text-align: left;
-        }
-        p:nth-child(2){
-          color:#999;
-          text-align: right;
-          overflow:hidden;
-          text-overflow:ellipsis;
-          white-space:nowrap;
-        }
-      }
-      .for-button-box{
-        display: flex;
-        line-height:26px;
-        margin-top:10px;
-        p{
-          text-align: center;
-          font-size:14px;
-          color:#666666;
-        }
-        p:nth-child(1){
-          flex:1;
-          cursor: pointer;
-          i{
-            color:#1151b4;
-            margin-right:10px;
-          }
-        }
-        p:nth-child(2){
-          width:2px;
-          height:14px;
-          margin:6px 0;
-          background: #CCCCCC;
-        }
-        p:nth-child(3){
-          flex:1;
-          cursor: pointer;
-          i{
-            color:#ff6868;
-            margin-right:10px;
-          }
-        }
-      }
-    }
-    .for-big-box-two{
-      border: 1px solid #E0E0E0;
-      display: inline-block;
-      overflow: hidden;
-      width:280px;
-      min-height:158px;
-      padding-bottom:10px;
-      border-radius: 6px;
-      margin:0 20px 20px 0;
-      .for-title-p{
-        background: rgba(182,214,254,1);
-        color:#0183FA;
-        font-size:16px;
-        line-height:40px;
-        display:block;
-        overflow:hidden;
-        text-overflow:ellipsis;
-        white-space:nowrap;
-        padding:0 16px;
-        margin-bottom:10px;
-        font-weight:700;
-      }
-      .for-text-box{
-        display: flex;
-        padding:0 23px;
-        p{
-          font-size:14px;
-          line-height:30px;
-          flex:1;
-        }
-        p:nth-child(1){
-          text-align: left;
-          color:#333;
-        }
-        p:nth-child(2){
-          color:#999;
-          text-align: right;
-          overflow:hidden;
-          text-overflow:ellipsis;
-          white-space:nowrap;
-        }
-      }
-      .for-button-box{
-        display: flex;
-        line-height:26px;
-        margin-top:10px;
-        p{
-          text-align: center;
-          font-size:14px;
-          color:#666666;
-        }
-        p:nth-child(1){
-          flex:1;
-          cursor: pointer;
-          i{
-            color:#1151b4;
-            margin-right:10px;
-          }
-        }
-        p:nth-child(2){
-          width:2px;
-          height:14px;
-          margin:6px 0;
-          background: #CCCCCC;
-        }
-        p:nth-child(3){
-          flex:1;
-          cursor: pointer;
-          i{
-            color:#ff6868;
-            margin-right:10px;
-          }
-        }
-      }
-    }
-    .add-for-p{
-      font-size:14px;
-      border: 1px solid #E0E0E0;
-      display: inline-block;
-      overflow: hidden;
-      width:280px;
-      height:130px;
-      line-height:130px;
-      text-align: center;
-      border-radius: 6px;
-      color:#999999;
-      cursor: pointer;
-      margin:0 20px 20px 0;
-      i{
-        margin-right:10px;
-      }
-    }
-    .add-for-p-two{
-      font-size:14px;
-      border: 1px solid #E0E0E0;
-      display: inline-block;
-      overflow: hidden;
-      width:280px;
-      height:158px;
-      line-height:158px;
-      text-align: center;
-      border-radius: 6px;
-      color:#999999;
-      cursor: pointer;
-      margin:0 20px 20px 0;
-      i{
-        margin-right:10px;
-      }
-    }
-  }
-}
-</style>

File diff suppressed because it is too large
+ 0 - 1403
src/views/comprehensive/laboratoryManagement/subject/indexOne.vue


File diff suppressed because it is too large
+ 0 - 1377
src/views/comprehensive/laboratoryManagement/subject/indexTwo.vue


File diff suppressed because it is too large
+ 0 - 1021
src/views/comprehensive/personnel/student/index.vue


File diff suppressed because it is too large
+ 0 - 1538
src/views/comprehensive/personnel/teacher/index.vue


+ 0 - 941
src/views/mine/index.vue

@@ -1,941 +0,0 @@
-<template>
-  <div class="mine">
-    <!--<navbar />-->
-    <div class="mine-page">
-      <div class="left-max-box scrollbar-box">
-        <p class="left-title">个人中心</p>
-        <div class="left-user-img">
-          <userAvatar :user="user" />
-        </div>
-        <p class="left-name">{{user.nickName}}</p>
-        <p class="left-num">{{user.userType=='11'?'工号:':(user.userType=='22'?'学号:':'其他:')}}{{user.userName}}</p>
-        <div class="left-text-max-box">
-          <div class="left-text-big-box">
-            <div class="left-text-big-box-left">
-              <img v-if="user.userType == '22'" src="@/assets/ZDimages/mine/icon_grzx_xl.png">
-              <img v-else src="@/assets/ZDimages/mine/icon_grzx_zc.png">
-              <p>{{user.education?user.education:'未设置'}}</p>
-            </div>
-            <div class="left-text-big-box-right">
-              <img class="img-two" v-if="user.userType == '22'" src="@/assets/ZDimages/mine/icon_grzx_zy.png">
-              <img class="img-one" v-else src="@/assets/ZDimages/mine/icon_grzx_zw.png">
-              <p>{{user.major?user.major:'未设置'}}</p>
-            </div>
-          </div>
-          <div class="left-text-min-box">
-            <img src="@/assets/ZDimages/mine/icon_grzx_sjh.png">
-            <p>{{user.phonenumber?user.phonenumber:'未设置'}}</p>
-          </div>
-          <div class="left-text-min-box">
-            <img src="@/assets/ZDimages/mine/icon_grzx_yx.png">
-            <p>{{user.email?user.email:'未设置'}}</p>
-          </div>
-          <div class="left-text-min-box">
-            <img src="@/assets/ZDimages/mine/icon_grzx_bgl.png">
-            <p>{{user.deptName?user.deptName:'未设置'}}</p>
-          </div>
-        </div>
-        <div class="left-type-text-max-box">
-          <div>
-            <p>联系方式</p>
-            <p :class="user.phonenumber?'p-color-a':'p-color-b'">{{user.phonenumber?'已设置':'未设置'}}</p>
-          </div>
-          <div>
-            <p>系统头像</p>
-            <p :class="user.avatar?'p-color-a':'p-color-b'">{{user.avatar?'已设置':'未设置'}}</p>
-          </div>
-          <div>
-            <p>人脸照片</p>
-            <p :class="user.faceImg?'p-color-a':'p-color-b'">{{user.faceImg?'已设置':'未设置'}}</p>
-          </div>
-          <div>
-            <p>电子签名</p>
-            <p :class="user.signature?'p-color-a':'p-color-b'">{{user.signature?'已设置':'未设置'}}</p>
-          </div>
-        </div>
-      </div>
-      <div class="right-max-box scrollbar-box">
-        <div class="right-title-box">
-          <div class="title-button-min-box" @click="buttonTypeClick(1)">
-            <p :class="buttonType == '1'?'bottomColor':''">基本资料</p>
-            <p :class="buttonType == '1'?'bottomBack':''"></p>
-          </div>
-          <div class="title-button-min-box" @click="buttonTypeClick(2)">
-            <p :class="buttonType == '2'?'bottomColor':''">安全设置</p>
-            <p :class="buttonType == '2'?'bottomBack':''"></p>
-          </div>
-          <p class="right-null-p"></p>
-          <!--<p class="reset-button-one right-out-button" @click="outButton">返回</p>-->
-        </div>
-        <div v-if="buttonType == 1">
-          <el-form :model="userform" ref="userform" :rules="rules" :inline="true" >
-            <div>
-              <el-form-item class="form-item-min input-number-none-box" label="联系方式:" prop="phonenumber" label-width="120px">
-                <el-input-number
-                  :max="19999999999"
-                  v-model="userform.phonenumber"
-                  placeholder="请输入联系方式"
-                  clearable/>
-              </el-form-item>
-              <el-form-item class="form-item-min" label="邮箱:" prop="email" label-width="120px">
-                <el-input
-                  maxlength="40"
-                  v-model="userform.email"
-                  placeholder="请输入邮箱"
-                  clearable
-                  style="width:200px;"
-                  size="small"
-                />
-              </el-form-item>
-              <el-form-item class="form-item-min" label="出生年月:" prop="dateBirth" label-width="120px">
-                <el-date-picker
-                  v-model="userform.dateBirth"
-                  value-format="yyyy-MM-dd"
-                  type="date"
-                  style="width:200px;"
-                  placeholder="请选择出生日期">
-                </el-date-picker>
-              </el-form-item>
-            </div>
-            <div>
-              <el-form-item class="form-item-min" label="人脸照片:" prop="searchValue" label-width="120px">
-                <div class="up-data-box" style="width:200px;">
-                  <div class="up-data-min-box" style="display: flex;">
-                    <div class="up-data-button" v-if="!user.faceImg" @click="upFaceOpenClick(2)">
-                      <p>+</p>
-                      <p>上传</p>
-                    </div>
-                    <img class="img-one" :src="user.faceImg" v-if="user.faceImg" @click="upFaceOpenClick(2)">
-                  </div>
-                </div>
-              </el-form-item>
-              <el-form-item class="form-item-min" label="电子签名:" prop="searchValue" label-width="120px">
-                <div class="up-data-box">
-                  <div class="up-data-min-box" style="display: flex;">
-                    <el-upload
-                      class="position-button"
-                      :action="uploadImgUrlTwo"
-                      :show-file-list="false"
-                      :auto-upload="false"
-                      :on-change="signatureChange"
-                      accept="image/jpeg,image/gif,image/png"
-                      :headers="headers"
-                      :before-upload="beforeAvatarUpload">
-                      <div class="up-data-button" v-if="!user.signature">
-                        <p>+</p>
-                        <p>上传</p>
-                      </div>
-                      <img class="img-two" :src="user.signature" v-if="user.signature">
-                    </el-upload>
-                  </div>
-                </div>
-              </el-form-item>
-              <el-form-item class="form-item-min" label="指纹:" prop="searchValue" label-width="120px">
-                <div class="fingerprint_no" v-if="Quantity==0">
-                  <p>暂未录入指纹</p>
-                  <p>(请在小程序端操作)</p>
-                </div>
-                <div class="fingerprint_yes" v-if="Quantity!=0">
-                  <div class="fingerprint_yes_img">
-                    <img src="@/assets/ZDimages/icon_zw_bk.png">
-                    <img src="@/assets/ZDimages/icon_wd_zw.png">
-                  </div>
-                  <p>已录入{{Quantity}}个指纹</p>
-                </div>
-              </el-form-item>
-            </div>
-          </el-form>
-          <p class="type-one-max-box add-button-one-120" @click="upDataProfile">保存</p>
-        </div>
-        <div v-if="buttonType == 2">
-          <el-form :model="form" ref="form" :inline="true" :rules="rules">
-            <div>
-              <el-form-item class="form-item-min" label="原始密码:" prop="oldPassword" label-width="120px">
-                <el-input
-                  maxlength="16"
-                  type="password"
-                  v-model.trim="form.oldPassword"
-                  placeholder="请输入原始密码"
-                  clearable
-                  size="small"
-                />
-              </el-form-item>
-              <el-form-item class="form-item-min" label="新密码:" prop="newPassword" label-width="120px">
-                <el-input
-                  maxlength="16"
-                  type="password"
-                  v-model.trim="form.newPassword"
-                  placeholder="请输入新密码"
-                  clearable
-                  size="small"
-                />
-              </el-form-item>
-              <el-form-item class="form-item-min" label="确认密码:" prop="confirmPassword" label-width="120px">
-                <el-input
-                  maxlength="16"
-                  type="password"
-                  v-model.trim="form.confirmPassword"
-                  placeholder="请确认密码"
-                  clearable
-                  size="small"
-                />
-              </el-form-item>
-              <span class="type-one-max-box add-button-one-120" style="margin-left:20px;display: inline-block;" @click="submit">保存</span>
-            </div>
-          </el-form>
-        </div>
-      </div>
-    </div>
-    <!--电子签名-->
-    <el-dialog class="up-img-box" title="上传电子签名" :visible.sync="upImgOpen" width="600px" append-to-body>
-      <p>示例</p>
-      <img class="img-one" src="@/assets/ZDimages/icon_scdzqm_sl.png">
-      <p>正楷签名</p>
-      <div class="cropper-box">
-        <vueCropper
-          ref="cropper"
-          :img="option.img"
-          :outputSize="option.outputSize"
-          :outputType="option.outputType"
-          :info="option.info"
-          :canScale="option.canScale"
-          :autoCrop="option.autoCrop"
-          :autoCropWidth="option.autoCropWidth"
-          :autoCropHeight="option.autoCropHeight"
-          :fixed="option.fixed"
-          :fixedNumber="option.fixedNumber"
-          :full="option.full"
-          :fixedBox="option.fixedBox"
-          :canMove="option.canMove"
-          :canMoveBox="option.canMoveBox"
-          :original="option.original"
-          :centerBox="option.centerBox"
-          :height="option.height"
-          :infoTrue="option.infoTrue"
-          :maxImgSize="option.maxImgSize"
-          :enlarge="option.enlarge"
-          :mode="option.mode"
-          @realTime="realTime"
-          @imgLoad="imgLoad"
-        ></vueCropper>
-        <p class="cropper-button" @click="upImgButton">保存查看</p>
-        <el-upload
-          class="position-button"
-          :action="uploadImgUrl"
-          :show-file-list="false"
-          :auto-upload="false"
-          :on-change="signatureChange"
-          accept="image/jpeg,image/gif,image/png"
-          :headers="headers"
-          :before-upload="beforeAvatarUpload">
-          <p style="position: absolute;right:100px;top:10px;z-index:1;color:#fff;background:#14AE10;cursor: pointer;padding:5px 10px;margin:0;border-radius:6px;">选择签名</p>
-        </el-upload>
-      </div>
-      <p style="color:#999;">请将签名置于选择框内以便提高识别度</p>
-      <img class="cropper-img" v-if="signatureData" :src="signatureData">
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="upImgOpenClick(1)">取 消</el-button>
-        <el-button type="primary" @click="upSignatureData">确 定</el-button>
-      </div>
-    </el-dialog>
-    <!--上传照片-->
-    <el-dialog class="up-img-box" title="上传照片" :visible.sync="upFaceOpen" width="600px" append-to-body>
-      <el-upload
-        ref="faceUpLoad"
-        class="position-button"
-        :action="uploadImgUrl"
-        :show-file-list="false"
-        :auto-upload="false"
-        :on-change="faceChange"
-        accept="image/jpeg,image/gif,image/png"
-        :on-success="(res)=>handleAvatarSuccess(res)"
-        :headers="headers"
-        :before-upload="beforeAvatarUpload">
-        <div v-if="!upFaceUrl" style="width:300px;height:300px;border: 1px dashed #E0E0E0;cursor: pointer;margin:20px 130px 0;">
-          <p style="text-align: center;color:#999;font-weight:500;font-size: 20px;line-height:300px;margin:0;">+</p>
-        </div>
-        <div v-if="upFaceUrl" class="scrollbar-box" style="width:560px;margin:0 auto;max-height:700px;overflow-y: scroll">
-          <img :src="upFaceUrl" style="max-width:560px;border: 1px dashed #E0E0E0;cursor: pointer;margin:0 auto;">
-        </div>
-      </el-upload>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="faceButton(1)">取 消</el-button>
-        <el-button type="primary" @click="faceButton(2)">确 定</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { Navbar } from '@/layout/components'
-import userAvatar from "./userAvatar";
-import { getUserProfile,updateUserPwd,changePhone,genSign,updateSignature,upDataProfile,fingerprintQuantity} from "@/api/system/user";
-import { getToken } from "@/utils/auth";
-export default {
-  name: "mine",
-  components: {
-    Navbar,
-    userAvatar
-  },
-  data(){
-    const equalToPassword = (rule, value, callback) => {
-      if (this.form.confirmPassword !== value) {
-        callback(new Error("两次输入的密码不一致"));
-      } else {
-        callback();
-      }
-    };
-    const equalToPasswordTwo = (rule, value, callback) => {
-      if (this.form.newPassword !== value) {
-        callback(new Error("两次输入的密码不一致"));
-      } else {
-        callback();
-      }
-    };
-    const validatePass = (rule, value, callback) => {
-      let reg = /^(?![A-z0-9]+$)(?=.[^%&',;=?$\x22])(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{8,16}$/
-      console.log("reg.test(value)",reg.test(value))
-      if(reg.test(value)){
-        callback()
-      }else{
-        return callback(new Error('密码应在8-16位包括数字和字母与特殊字符'));
-      }
-    };
-    return{
-      buttonType:'1',
-      uploadImgUrl: window.location.href.split('://')[0]+'://' + process.env.VUE_APP_BASE_API + "/laboratory/studentinfo/commit/face", // 上传的图片服务器地址
-      uploadImgUrlTwo: window.location.href.split('://')[0]+'://' + process.env.VUE_APP_BASE_API + "/file/upload", // 上传的图片服务器地址
-      headers: {
-        Authorization: "Bearer " + getToken(),
-      },
-      pageType:false,
-      user: {},
-      roleGroup: {},
-      postGroup: {},
-      activeTab: "resetPwd",
-      form:{
-        oldPassword:"",
-        newPassword:"",
-        confirmPassword:""
-      },
-      userform:{},
-      userformData:{},
-      open:false,
-      phoneForm:{
-        phone:"",
-      },
-      // 表单校验
-      rules: {
-        oldPassword: [
-          { required: true, message: "旧密码不能为空", trigger: "blur" },
-        ],
-        newPassword: [
-          { required: true, message: "新密码不能为空", trigger: "blur" },
-          { min: 8, max: 16, message: "长度在 8 到 16 个字符", trigger: "blur" },
-          { required: true, validator: equalToPassword, trigger: "blur" },
-          { required: true, message: "请输入8-16位密码,不能输入连续性和重复性的密码,密码中需要包含:大写字母、小写字符、数字和字符", validator: validatePass, trigger: "blur" }
-        ],
-        confirmPassword: [
-          { required: true, message: "确认密码不能为空", trigger: "blur" },
-          { min: 8, max: 16, message: "长度在 8 到 16 个字符", trigger: "blur" },
-          { required: true, validator: equalToPasswordTwo, trigger: "blur" },
-          { required: true, message: "请输入8-16位密码,不能输入连续性和重复性的密码,密码中需要包含:大写字母、小写字符、数字和字符", validator: validatePass, trigger: "blur" }
-        ],
-        phonenumber: [
-          { required: true, message: "请输入11位手机号码", trigger: "blur" },
-          { validator: this.checkPhone, trigger: 'blur' },
-          // { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
-          { required: true, message: "请输入11位手机号码", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        // phone: [
-        //   { required: true, message: "请输入手机号码", trigger: "blur" },
-        //   { required: true, message: "请输入手机号码", validator: this.spaceJudgment, trigger: "blur" }
-        // ],
-        // email: [
-        //   { required: true, message: "请输入邮箱地址", trigger: "blur" },
-        //   { required: true, message: "请输入正确的邮箱地址", type: 'email'},
-        //   { required: true, message: "请输入邮箱地址", validator: this.spaceJudgment, trigger: "blur" }
-        // ],
-        // dateBirth: [
-        //   { required: true, message: "请选择出生日期", trigger: "blur" }
-        // ],
-      },
-      //上传签名开关
-      upImgOpen:false,
-      option:{
-        img: '', // 裁剪图片的地址
-        outputSize: 1,       //裁剪生成图片的质量(可选0.1 - 1)
-        outputType: 'png',  //裁剪生成图片的格式(jpeg || png || webp)
-        info: true,          //图片大小信息
-        canScale: true,      //图片是否允许滚轮缩放
-        autoCrop: true,      //是否默认生成截图框
-        autoCropWidth: 240,  //默认生成截图框宽度
-        autoCropHeight: 80, //默认生成截图框高度
-        fixed: true,         //是否开启截图框宽高固定比例
-        fixedNumber: [3, 1], //截图框的宽高比例
-        full: false,         //false按原比例裁切图片,不失真
-        fixedBox: true,      //固定截图框大小,不允许改变
-        canMove: false,      //上传图片是否可以移动
-        canMoveBox: true,    //截图框能否拖动
-        original: false,     //上传图片按照原始比例渲染
-        centerBox: false,    //截图框是否被限制在图片里面
-        height: true,        //是否按照设备的dpr 输出等比例图片
-        infoTrue: false,     //true为展示真实输出图片宽高,false展示看到的截图框宽高
-        maxImgSize: 3000,    //限制图片最大宽度和高度
-        enlarge: 1,          //图片根据截图框输出比例倍数
-        mode: '560px 400px'  //图片默认渲染方式
-      },
-      previews:{},
-      //上传人脸
-      upFaceOpen:false,
-      upFaceUrl:"",
-      //临时签名数据
-      signatureData:"",
-      Quantity:0,//指纹录取数量
-    }
-  },
-  created() {
-    this.getUser();
-    this.fingerprintQuantityFun();
-  },
-  methods: {
-    //修改用户信息
-    upDataProfile(){
-      this.$refs["userform"].validate(valid => {
-        if (valid) {
-          if(!this.userform.phonenumber&&!this.userform.email&&!this.userform.dateBirth){
-            this.msgError('联系方式/邮箱/出生年月,请至少填写一项进行修改')
-            return
-          }
-          if((this.userform.phonenumber == this.userformData.phonenumber)&&
-            (this.userform.email == this.userformData.email)&&
-            (this.userform.dateBirth == this.userformData.dateBirth)){
-            this.msgError('联系方式/邮箱/出生年月,请至少修改一项再进行保存操作')
-            return
-          }
-          // let obj = JSON.parse(JSON.stringify(this.userform));
-          let obj = {};
-          obj.phonenumber = this.userform.phonenumber;
-          if(this.userform.email){
-            let regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
-            if(!regex.test(this.userform.email)){
-              this.msgError('请输入正确的邮箱地址')
-              return
-            }else{
-              obj.email = this.userform.email;
-            }
-          }else {
-            obj.email = '';
-          }
-          if(this.userform.dateBirth){
-            obj.dateBirth = this.userform.dateBirth;
-          }else{
-            obj.dateBirth = '';
-          }
-          obj.userId = this.user.userId;
-          upDataProfile(obj).then(response => {
-            this.msgSuccess('操作成功');
-            this.getUser();
-          });
-        }
-      })
-    },
-    //手机号验证
-    checkPhone(rule, value, callback) {
-      if (!value) {
-        return callback(new Error('手机号码不能为空'))
-      } else {
-        if(value == '19999999999'){
-          return callback(new Error('请输入正确的手机号码'))
-        }
-        const reg = /^1[3|4|5|7|8|9][0-9]\d{8}$/
-        if (reg.test(value)) {
-          callback()
-        } else {
-          return callback(new Error('请输入正确的手机号码'))
-        }
-      }
-    },
-    //修改按钮密码
-    submit() {
-      let self = this;
-      self.$refs["form"].validate(valid => {
-        if (valid) {
-          this.$confirm('确定要修改吗', "警告", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(function() {
-            self.updateUserPwd();
-          }).then(() => {
-          }).catch(() => {});
-        }
-      });
-    },
-    //指纹-查询用户指纹录取数量
-    fingerprintQuantityFun(){
-      let _this=this;
-      fingerprintQuantity(localStorage.getItem('userId')).then(response => {
-          if(response.code == 200){
-            _this.Quantity=response.data;
-          }
-        }
-      );
-    },
-    //修改密码接口
-    updateUserPwd(){
-      updateUserPwd(this.form.oldPassword, this.form.newPassword).then(
-        response => {
-          this.form.oldPassword = "";
-          this.form.newPassword = "";
-          this.form.confirmPassword = "";
-          this.msgSuccess("修改成功");
-        }
-      );
-    },
-    //返回按钮
-    outButton(){
-      this.$router.go(-1)
-    },
-    //页面按钮点击
-    buttonTypeClick(type){
-      if(this.buttonType != type){
-        this.buttonType = type;
-      }
-    },
-    //获取信息
-    getUser() {
-      getUserProfile().then(response => {
-        this.user = response.data;
-        this.roleGroup = response.roleGroup;
-        this.postGroup = response.postGroup;
-        let obj = {
-          phonenumber:response.data.phonenumber,
-          email:response.data.email,
-          dateBirth:response.data.dateBirth,
-        }
-        this.$set(this,'userform',JSON.parse(JSON.stringify(obj)));
-        this.$set(this,'userformData',JSON.parse(JSON.stringify(obj)));
-        this.pageType = true;
-      });
-    },
-    //上传签名
-    upSignatureData(){
-      if(!this.signatureData){
-        this.msgError('请先选择签名上传并保存查看')
-      }
-      var blob = this.dataURLtoBlob(this.signatureData);
-      var file = this.blobToFile(blob, 'dx.jpg');
-      let formData = new FormData();
-      formData.append('file',file,"DX.jpg")
-      console.log("formData",formData);
-      updateSignature(formData).then(response => {
-        if(response.code == 200){
-          this.msgSuccess("操作成功");
-          this.upImgOpen = false;
-          this.getUser();
-        }
-      });
-    },
-    //照片页面开关
-    upFaceOpenClick(type){
-      if(type == 1){
-        this.upFaceOpen = false;
-      }else if (type == 2){
-        this.upFaceUrl = this.user.faceImg;
-        this.upFaceOpen = true;
-      }
-    },
-    //签名页面开关
-    upImgOpenClick(type){
-      if(type == 1){
-        this.upImgOpen = false;
-      }else if (type == 2){
-        this.option.img = this.user.signature;
-        this.signatureData = this.user.signature;
-        this.upImgOpen = true;
-      }
-    },
-    //确定签名
-    upImgButton(){
-      let self = this;
-      this.$refs.cropper.getCropBlob(async (data) => {
-        let formData = new FormData();
-        formData.append('file',data,"DX.jpg")
-        genSign(formData).then(response => {
-          if(response.code == 200){
-            this.signatureData = 'data:image/png;base64,'+response.data;
-          } else {
-            this.msgError(response.msg)
-          }
-        });
-      })
-    },
-    //照片选择
-    faceChange(val){
-      const windowURL = window.URL || window.webkitURL;
-      this.upFaceUrl = windowURL.createObjectURL(val.raw)
-    },
-    //签名选择
-    signatureChange(val){
-      const windowURL = window.URL || window.webkitURL;
-      this.option.img = windowURL.createObjectURL(val.raw)
-      this.signatureData = "";
-      this.upImgOpen = true;
-    },
-    // 照片上传按钮
-    faceButton(type){
-      if(type==1){
-        this.upFaceOpen = false;
-      }else if(type == 2){
-        this.$refs.faceUpLoad.submit();
-      }
-    },
-    //上传
-    handleAvatarSuccess(res, type) {
-      if(res.code == 200){
-        this.user.faceImg = res.data.cardUrl;
-        this.upFaceOpen = false;
-        this.getUser();
-        this.msgSuccess(res.msg)
-        this.$forceUpdate()
-      }else{
-        this.msgError(res.msg)
-      }
-    },
-    beforeAvatarUpload(file) {
-      let type = false;
-      if (file.type == 'image/png' || file.type == 'image/jpeg' || file.type == 'image/gif') {
-        type = true;
-      }else{
-        this.$message.error('只能上传png/jpeg/gif格式图片');
-        type = false;
-      }
-      return type;
-    },
-    // 实时预览函数
-    realTime(data) {
-      console.log("实时预览函数",data)
-      this.previews = data;
-    },
-    //图片加载的回调 imgLoad 返回结果success, error
-    imgLoad (msg) {
-      console.log("图片加载的回调",msg)
-      // console.log('imgLoad')
-      // console.log(msg)
-    },
-    //将base64转换为blob
-    dataURLtoBlob: function(dataurl) {
-      var  arr = dataurl.split(',')
-      var  mime = arr[0].match(/:(.*?);/)[1]
-      var  bstr = atob(arr[1])
-      var  n = bstr.length
-      var  u8arr = new Uint8Array(n)
-      while (n--) {
-        u8arr[n] = bstr.charCodeAt(n);
-      }
-      return new Blob([u8arr], { type: mime });
-    },
-    //将blob转换为file
-    blobToFile: function(theBlob, fileName){
-      theBlob.lastModifiedDate = new Date();
-      theBlob.name = fileName;
-      return theBlob;
-    },
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.mine{
-  height:100%;
-  width:100%;
-  display: flex;
-  flex-direction: column;
-  overflow: hidden;
-  *{
-    margin:0;
-  }
-  .mine-page{
-    flex:1;
-    display: flex;
-    overflow: hidden;
-    .left-max-box{
-      width:300px;
-      /*margin:20px;*/
-      margin:5px 20px 20px 10px;
-      box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-      border-radius:10px;
-      .left-title{
-        font-size:18px;
-        text-align: center;
-        line-height: 30px;
-        margin-top:30px;
-        color:#0045af;
-      }
-      .left-user-img{
-        width:130px;
-        height:130px;
-        overflow: hidden;
-        border-radius:50%;
-        margin:30px auto 20px;
-      }
-      .left-name{
-        font-size:20px;
-        line-height:43px;
-        text-align: center;
-      }
-      .left-num{
-        font-size:16px;
-        line-height:38px;
-        text-align: center;
-      }
-      .left-text-max-box{
-        border-top:1px dashed #dedede;
-        border-bottom:1px dashed #dedede;
-        margin:24px 10px 0;
-        padding:20px 0;
-        .left-text-big-box{
-          display: flex;
-          .left-text-big-box-left{
-            width:100px;
-            height:38px;
-            display: flex;
-            margin-right:10px;
-            img{
-              width:16px;
-              height:16px;
-              margin:11px 10px 0;
-            }
-            p{
-              flex:1;
-              font-size:14px;
-              line-height:38px;
-            }
-          }
-          .left-text-big-box-right{
-            height:38px;
-            flex:1;
-            display: flex;
-            .img-one{
-              width:16px;
-              height:14px;
-              margin:12px 10px 0;
-            }
-            .img-two{
-              width:16px;
-              height:16px;
-              margin:11px 10px 0;
-            }
-            p{
-              flex:1;
-              font-size:14px;
-              line-height:38px;
-            }
-          }
-        }
-        .left-text-min-box{
-          display: flex;
-          height:38px;
-          img{
-            width:16px;
-            height:16px;
-            margin:11px 10px 0;
-          }
-          p{
-            flex:1;
-            font-size:14px;
-            line-height:38px;
-          }
-        }
-      }
-      .left-type-text-max-box{
-        padding:20px 0;
-        div{
-          display: flex;
-          p{
-            flex:1;
-            font-size:14px;
-            color:#333;
-            line-height:40px;
-          }
-          p:nth-child(1){
-            text-align: left;
-            margin-left:32px;
-          }
-          p:nth-child(2){
-            text-align: right;
-            margin-right:48px;
-          }
-          .p-color-a{
-            color:#06B924;
-          }
-          .p-color-b{
-            color:#FF9735;
-          }
-        }
-      }
-    }
-    .right-max-box{
-      flex:1;
-      /*margin:20px 20px 20px 0;*/
-      margin:5px 20px 20px 0;
-      box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-      border-radius:10px;
-      display: flex;
-      flex-direction: column;
-      .right-title-box{
-        display: flex;
-        border-bottom:1px solid #dedede;
-        .title-button-min-box{
-          height:90px;
-          margin:0 20px;
-          cursor: pointer;
-          p:nth-child(1){
-            margin-top:6px;
-            line-height:78px;
-            font-size:16px;
-          }
-          p:nth-child(2){
-            height:6px;
-            border-radius:4px;
-          }
-          .bottomColor{
-            color:#0045AF;
-          }
-          .bottomBack{
-            background:#0045AF ;
-          }
-        }
-        .right-null-p{
-          flex:1;
-        }
-        .right-out-button{
-          margin:20px;
-        }
-      }
-      .type-one-max-box{
-        width:100px;
-        margin:40px auto;
-      }
-      .up-data-box{
-        display: inline-block;
-        width:280px;
-        line-height:20px;
-        margin-bottom:30px;
-        .up-data-min-box{
-          .up-data-title{
-            font-size:15px;
-            color:#333;
-          }
-          .up-data-button{
-            width:120px;
-            height:120px;
-            border: 1px dashed #E0E0E0;
-            cursor: pointer;
-            p{
-              text-align: center;
-              color:#999;
-              font-weight:500;
-            }
-            p:nth-child(1){
-              font-size: 20px;
-              line-height:40px;
-              margin-top:20px;
-            }
-            p:nth-child(2){
-              font-size: 16px;
-
-            }
-          }
-          .img-one{
-            width:120px;
-            height:120px;
-          }
-          .img-two{
-            width: 240px;
-            height:80px;
-          }
-        }
-      }
-      .fingerprint_no{
-        >p:nth-of-type(1){
-          color: #666666;
-        }
-        >p:nth-of-type(2){
-          color: #F56C6C;
-        }
-      }
-      .fingerprint_yes{
-        .fingerprint_yes_img{
-          width: 122px;
-          height: 142px;
-          position: relative;
-          >img:nth-of-type(1){
-            width: 122px;
-            height: 142px;
-            position: absolute;
-          }
-          >img:nth-of-type(2){
-            width: 65px;
-            height: 88px;
-            position: absolute;
-            left: 29px;
-            top: 29px;
-          }
-        }
-        >p{
-          color: #666;
-          text-align: center;
-        }
-      }
-      .form-item-min{
-        margin-top:40px;
-      }
-    }
-  }
-}
-</style>
-<style lang="scss">
-.up-img-box{
-  .el-dialog__body{
-    padding-top:0;
-  }
-  .img-one{
-    width:560px;
-    height:150px;
-  }
-  .cropper-img{
-    display: block;
-    border:1px solid #e0e0e0;
-    width:360px;
-    height:120px;
-    margin:0 auto;
-  }
-  .cropper-box{
-    width:560px;
-    height:270px;
-    position: relative;
-    .cropper-button{
-      position: absolute;
-      right:10px;top:10px;
-      z-index:1;
-      background: #0183FA;
-      color:#fff;
-      cursor: pointer;
-      padding:5px 10px;
-      margin:0;
-      border-radius:6px;
-    }
-  }
-}
-.mine{
-  .mine-page{
-    .input-number-none-box{
-      input{
-        text-align: left;
-      }
-    }
-  }
-}
-</style>

+ 0 - 116
src/views/secureAccess/approval/index.vue

@@ -1,116 +0,0 @@
-<!--准入资格审核-->
-<template>
-  <div class="app-container approval">
-    <div class="top-big-box" v-if="pageType==1||pageType==2||pageType==3">
-      <div>
-        <p :class="pageType==1?'color_one':'color_99'" @click="tableClick(1)">待审核</p>
-        <p :class="{'back_one':pageType==1}"></p>
-      </div>
-      <div>
-        <p :class="pageType==2?'color_one':'color_99'" @click="tableClick(2)">已通过</p>
-        <p :class="{'back_one':pageType==2}"></p>
-      </div>
-      <div>
-        <p :class="pageType==3?'color_one':'color_99'" @click="tableClick(3)">未通过</p>
-        <p :class="{'back_one':pageType==3}"></p>
-      </div>
-      <p class="null-p"></p>
-      <!--<p class="add-button-one-120" @click="tableClick(4)"-->
-      <!--&gt;<i class="el-icon-plus"></i>准入资格配置</p>-->
-    </div>
-    <pending v-if="pageType==1"></pending>
-    <passed v-if="pageType==2"></passed>
-    <failed v-if="pageType==3"></failed>
-    <!--<configuration v-if="pageType==4"></configuration>-->
-    <info-page v-if="pageType==5" :infoData="infoData"></info-page>
-  </div>
-</template>
-<script>
-  import pending from "./pending.vue";
-  import passed from "./passed.vue";
-  import failed from "./failed.vue";
-  // import configuration from "./configuration.vue";
-  import infoPage from "./infoPage.vue";
-
-export default {
-  components: {
-    pending,
-    passed,
-    failed,
-    // configuration,
-    infoPage
-  },
-  name: "Approval",
-  data() {
-    return {
-      pageType:1,
-      pageTypeTwo:1,
-      infoData:{
-        type:null,
-        list:0,//type=0,审核,1查看
-      }
-    };
-  },
-  created() {
-
-  },
-  methods: {
-    pageClick(type,row){
-      this.infoData.type = type;
-      this.infoData.list = row;
-      this.pageType = 5;
-    },
-    pageOff(){
-      // this.pageType = JSON.parse(JSON.stringify(this.pageTypeTwo));
-      this.pageType = this.pageTypeTwo;
-    },
-    //选项卡切换
-    tableClick(type){
-      if(this.pageType!=type){
-        if(type == 4){
-          // this.pageTypeTwo = JSON.parse(JSON.stringify(this.pageType));
-          this.pageTypeTwo = this.pageType;
-        }
-        this.pageType = type;
-      }
-    },
-  }
-};
-</script>
-<style scoped lang="scss">
-  .approval {
-    display: flex!important;
-    flex-direction: column;
-    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-    padding:20px!important;
-    .top-big-box{
-      display: flex;
-      border-bottom:2px solid #E0E0E0;
-      margin-top:-9px;
-      margin-bottom:32px;
-      div{
-        cursor:pointer;
-        width:128px;
-        p:nth-child(1){
-          line-height:58px;
-          font-size:18px;
-          text-align: center;
-          margin:0;
-        }
-        p:nth-child(2){
-          width:80px;
-          height:4px;
-          margin:0 auto;
-          border-radius:1px;
-        }
-      }
-      .null-p{
-        flex:1;
-      }
-      .add-button-one-120{
-        margin-top:9px;
-        margin-right:20px;
-      }
-    }
-  }
-</style>

+ 0 - 176
src/views/secureAccess/whitelist/index.vue

@@ -1,176 +0,0 @@
-<!--白名单列表-->
-<template>
-  <div class="app-container whitelist">
-    <div class="whitelist-page" v-if="pageType == 1">
-      <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
-        <el-form-item label="关键字" prop="userName">
-          <el-input
-            v-model="queryParams.searchValue"
-            placeholder="姓名/工号/联系方式"
-            clearable
-            maxLength="30"
-            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-item style="float: right;">
-          <el-button
-            style="margin-left: 20px"
-            type="primary"
-            plain
-            icon="el-icon-plus"
-            size="mini"
-            @click="pageClick(2)"
-            v-hasPermi="['laboratory:whitelist:add']"
-          >新增</el-button>
-        </el-form-item>
-      </el-form>
-      <el-table v-loading="loading" border :data="safe_bookList" >
-        <el-table-column label="姓名" align="left" prop="userName"/>
-        <el-table-column label="工号" align="left" prop="userNumber"/>
-        <el-table-column label="联系方式" align="left" prop="userTelephone"/>
-        <el-table-column label="学院" align="left" prop="deptName"/>
-        <el-table-column label="操作" align="center" width="160" v-if="tableButtonType">
-          <template slot-scope="scope">
-            <div class="button-box">
-              <p class="table-min-button"
-                 style="margin-right: 10px"
-                 @click="pageEditClick(2,scope.row)"
-                 v-hasPermiAnd="['laboratory:whitelist:query','laboratory:whitelist:edit']"
-              >编辑</p>
-              <p class="table-min-button"
-                 @click="delButton(scope.row)"
-                 v-hasPermi="['laboratory:whitelist:remove']"
-              >移除</p>
-            </div>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination :page-sizes="[20, 30, 40, 50]"
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageNum"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </div>
-    <add-page v-if="pageType == 2" :pageData="pageData"></add-page>
-  </div>
-</template>
-
-<script>
-  import { whitelistList,whitelistDel } from "@/api/laboratory/whitelist";
-  import addPage from './addPage.vue'
-  export default {
-    components:{
-      addPage
-    },
-    name: "whitelist",
-    data() {
-      return {
-        tableButtonType:this.hasPermiDom(['laboratory:whitelist:query','laboratory:whitelist:edit','laboratory:whitelist:remove']),
-        pageType:1,
-        // 遮罩层
-        loading: false,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 实验室安全制度表格数据
-        safe_bookList: [],
-        // 查询参数
-        queryParams: {
-          pageNum: 1,
-          pageSize:20,
-          searchValue: null,
-        },
-        pageData:{},
-      };
-    },
-    created() {
-      this.getList();
-    },
-    methods: {
-      delButton(item){
-        let self = this;
-        this.$confirm('确定移除当前准入信息,移除后将无法进入实验室?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          self.whitelistDel(item);
-        }).then(() => {}).catch(() => {});
-      },
-      whitelistDel(item){
-        whitelistDel(item.id).then(response => {
-          this.msgSuccess("删除成功");
-          this.getList();
-        });
-      },
-      getList(){
-        this.loading = true;
-        whitelistList(this.queryParams).then(response => {
-          this.safe_bookList = response.rows;
-          this.loading = false;
-        });
-      },
-      //新增
-      pageClick(type){
-        if(this.pageType != type){
-          this.pageType = type;
-          this.pageData= {};
-          if(type == 1){
-            this.getList();
-          }
-        }
-      },
-      //编辑
-      pageEditClick(type,item){
-        if(this.pageType != type){
-          this.pageType = type;
-          this.pageData=item;
-          if(type == 1){
-            this.getList();
-          }
-        }
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.pageNum = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.queryParams.searchValue='';
-        this.handleQuery();
-      },
-      handleDelete(){
-
-      },
-    }
-  };
-</script>
-
-<style scoped lang="scss">
-  .whitelist {
-    display: flex !important;
-    flex-direction: column;
-    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-    .whitelist-page{
-      flex:1;
-      display: flex;
-      flex-direction: column;
-      padding:11px 20px 20px!important;
-      .button-box{
-        margin:0 auto;
-        width:190px;
-        display: flex;
-      }
-    }
-  }
-</style>

+ 0 - 278
src/views/securityCheck/release/index.vue

@@ -1,278 +0,0 @@
-<!--安全检查发布记录-->
-<template>
-  <div class="app-container releasePage">
-    <div class="releasePageMin" v-if="pageType == 1">
-      <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-        <el-form-item label="检查名称" prop="releaseDescribe">
-          <el-input
-            v-model="queryParams.releaseDescribe"
-            placeholder="请输入检查名称"
-            clearable
-            size="small"
-          />
-        </el-form-item>
-        <el-form-item label="发布时间" label-width="70px">
-          <el-date-picker
-            :clearable="false"
-            v-model="dateRange"
-            size="small"
-            style="width: 240px"
-            value-format="yyyy-MM-dd"
-            type="daterange"
-            range-separator="-"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
-          ></el-date-picker>
-        </el-form-item>
-        <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="releaseList" @selection-change="handleSelectionChange">
-        <!--<el-table-column type="selection" width="55" align="center" />-->
-        <!--<el-table-column label="创建人id" align="center" prop="id" />-->
-        <el-table-column label="检查名称" align="left" prop="releaseDescribe" />
-        <el-table-column label="实验室数量" align="left" prop="laboratorNum" />
-        <el-table-column label="隐患数量" align="left" prop="laboratorYhsl" />
-        <el-table-column label="已整改" align="left" prop="laboratorYzg" />
-        <el-table-column label="发布时间" align="left" prop="strTime" />
-        <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="120" v-if="tableButtonType">
-          <template slot-scope="scope">
-            <div class="button-box" style="display: flex;margin-left:20px;">
-            <p class="table-min-button"
-               @click="goPageInfo(2,scope.row)"
-               v-hasPermi="['laboratory:checkRecord:list']"
-            >查看</p>
-            </div>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageNum"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </div>
-    <list-page v-if="pageType == 2" :checkId="checkId"></list-page>
-    <!-- 添加或修改检查发布关系对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="检查表主键id" prop="checkId">
-          <el-input v-model="form.checkId" placeholder="请输入检查表主键id" />
-        </el-form-item>
-        <el-form-item label="描述" prop="releaseDescribe">
-          <el-input v-model="form.releaseDescribe" placeholder="请输入描述" />
-        </el-form-item>
-        <el-form-item label="创建人id" prop="createByid">
-          <el-input v-model="form.createByid" placeholder="请输入创建人id" />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listRelease, getRelease, delRelease, addRelease, updateRelease } from "@/api/laboratory/release";
-import listPage from "./listPage.vue"
-
-export default {
-  name: "Release",
-  components: {
-    listPage
-  },
-  data() {
-    return {
-      tableButtonType:this.hasPermiDom(['laboratory:checkRecord:list']),
-      pageType:1,
-      checkId:"",
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 检查发布关系表格数据
-      releaseList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize:20,
-        checkId: null,
-        releaseDescribe: null,
-        createByid: null,
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      dateRange:[]
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    //页面状态切换
-    goPageInfo(type,row){
-      if(type == 2){
-        this.pageType = 2;
-        this.checkId = row.checkId;
-      }else if(type == 1){
-        this.pageType = 1;
-        this.getList();
-      }
-    },
-    /** 查询检查发布关系列表 */
-    getList() {
-      this.loading = true;
-      if(this.dateRange&&this.dateRange.length>0){
-        this.queryParams.beginTime=this.dateRange[0]
-        this.queryParams.endTime=this.dateRange[1]
-      }else{
-        this.queryParams.beginTime=null;
-        this.queryParams.endTime=null
-      }
-      listRelease(this.queryParams).then( response => {
-        this.releaseList =  response.rows;
-        this.total =  response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        checkId: null,
-        releaseDescribe: null,
-        createByid: null,
-        createBy: null,
-        createTime: null,
-        remark: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.queryParams.beginTime = "";
-      this.queryParams.endTime = "";
-      // this.resetForm("queryForm");
-      this.$set(this,'queryParams',{
-        pageNum: 1,
-        pageSize:20,
-        releaseDescribe:"",
-      });
-      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
-      getRelease(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) {
-            updateRelease(this.form).then( response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addRelease(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 delRelease(ids);
-      }).then(() => {
-        this.getList();
-        this.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('laboratory/release/export', {
-        ...this.queryParams
-      }, `laboratory_release.xlsx`)
-    }
-  }
-};
-</script>
-<style scoped lang="scss">
-  .releasePage{
-    flex:1;
-    display: flex;
-    flex-direction: column;
-    overflow: hidden !important;
-    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
-    .releasePageMin{
-      flex: 1;
-      display: flex;
-      flex-direction: column;
-      overflow: hidden !important;
-      padding: 20px 20px 20px;
-    }
-  }
-</style>