heyang 2 年之前
父节点
当前提交
2d92c106e5

+ 16 - 0
src/api/laboratory/subject.js

@@ -391,3 +391,19 @@ export function delUserHaikang(id) {
     method: 'delete'
   })
 }
+//门禁授权日志列表
+export function entranceUserLogList(query) {
+  return request({
+    url: '/laboratory/haikang/userLog/list',
+    method: 'get',
+    params: query
+  })
+}
+//门禁授权日志列表
+export function queryHardByTypeList(query) {
+  return request({
+    url: '/laboratory/hardware/queryHardByType',
+    method: 'get',
+    params: query
+  })
+}

+ 24 - 27
src/views/comprehensive/laboratoryManagement/accessAuthorization/applicationjinan.vue

@@ -22,33 +22,31 @@
               clearable
               size="small"/>
           </el-form-item>
-          <el-form-item label="状态" prop="status" label-width="50px">
-            <el-select v-model="queryParamsData.status" clearable placeholder="请选择状态">
-              <el-option
-                v-for="item in optionsListTwo"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id">
-              </el-option>
-            </el-select>
-          </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="college" show-overflow-tooltip/>
-          <el-table-column label="实验室" align="center" prop="subjectName" show-overflow-tooltip/>
-          <el-table-column label="位置" align="center" prop="position" show-overflow-tooltip v-if="$store.state.settings.smartAlarmType == 1"/>
-          <el-table-column label="实验室负责人" align="center" prop="subjectName" show-overflow-tooltip/>
-          <el-table-column label="门禁" align="center" prop="subjectName" show-overflow-tooltip/>
-          <el-table-column label="授权人数" align="center" prop="safeUserName"  width="160px" show-overflow-tooltip/>
-          <el-table-column label="状态" align="center" prop="applyStatus" width="180px" show-overflow-tooltip>
-            <template slot-scope="scope">
-              <span>{{scope.row.applyStatus==1?'在线':(scope.row.applyStatus==2?'离线':'')}}</span>
-            </template>
-          </el-table-column>
+          <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"
@@ -63,7 +61,7 @@
 </template>
 
 <script>
-  import { applyList } from "@/api/laboratory/subject";
+import { applyList, entranceUserLogList } from '@/api/laboratory/subject'
   import addPage from "./addPage.vue";
   export default {
     name: "application",
@@ -80,6 +78,8 @@
         queryParamsData:{
           pageNum:1,
           pageSize:20,
+          searchValue:'',
+          operate:'',
         },
         // 搜索实际发送数据
         queryParams:{
@@ -91,7 +91,7 @@
         total:10,
         tableList:[],
         //审批状态
-        optionsListTwo:[{id:'0',name:'全部'},{id:'1',name:'待审核'},{id:'2',name:'已驳回'},{id:'3',name:'已授权'}],
+        optionsListTwo:[{code:null,name:'全部'},{code:0,name:'离线'},{code:2,name:'在线'}],
       }
     },
     created() {
@@ -119,19 +119,16 @@
       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.$set(this,'dateRange',[]);
         this.handleQuery();
       },
       //获取数据列表
       getList(){
-        this.queryParamsData = JSON.parse(JSON.stringify(this.queryParams));
         if(this.dateRange&&this.dateRange.length>0) {
           this.queryParamsData.startTime = this.dateRange[0];
           this.queryParamsData.endTime = this.dateRange[1];
@@ -139,7 +136,7 @@
           this.queryParamsData.startTime = null;
           this.queryParamsData.endTime = null;
         }
-        applyList(this.queryParamsData).then(response => {
+        entranceUserLogList(this.queryParamsData).then(response => {
           this.tableList = response.rows;
           this.total = response.total
         });

+ 1 - 1
src/views/comprehensive/laboratoryManagement/accessAuthorization/authorizejinan.vue

@@ -100,7 +100,7 @@ import { getHaikangList } from '@/api/laboratory/subject'
         total:10,
         tableList:[{}],
         //审批状态
-        optionsListTwo:[{code:'',name:'全部'},{code:0,name:'离线'},{code:2,name:'在线'}],
+        optionsListTwo:[{code:null,name:'全部'},{code:0,name:'离线'},{code:2,name:'在线'}],
         //详情
         pageData:{},
       }

+ 29 - 15
src/views/comprehensive/laboratoryManagement/accessAuthorization/lookImpower.vue

@@ -28,7 +28,7 @@
             v-model="dateRange"
             size="small"
             style="width: 240px"
-            value-format="yyyy-MM-dd"
+            value-format="yyyy-MM-dd HH:mm:ss"
             type="daterange"
             range-separator="-"
             start-placeholder="开始日期"
@@ -130,7 +130,7 @@
         <i></i>
         <i @click="toggleSelection()">清除选项</i>
       </div>
-      <el-table ref="multipleTable" :key="randomKey" border tooltip-effect="dark" :row-key="getRowKeys" :data="dialogTable"
+      <el-table ref="multipleTable"  border tooltip-effect="dark" :row-key="getRowKeys" :data="dialogTable"
                 highlight-current-row @selection-change="handleSelectionChange" style="cursor: pointer;height:500px;">
         <el-table-column type="selection"  width="55" :reserve-selection="true" align="center"></el-table-column>
         <el-table-column label="所属单位" align="left" prop="deptName"/>
@@ -140,7 +140,7 @@
         <el-table-column label="身份" align="left" prop="positionName" v-if="userType==2"/>
         <el-table-column label="验证方式" align="left" prop="verifyMode">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.verifyMode" @change="verifyModeFun(scope.row,$event)" clearable >
+            <el-select v-model="scope.row.verifyMode" @change="verifyModeFun()" clearable >
               <el-option
                 v-for="item in verifyWayList"
                 :key="item.key"
@@ -153,6 +153,7 @@
         <el-table-column label="失效时间" align="left" prop="invalidTime">
           <template slot-scope="scope">
             <el-date-picker
+              @blur="invalidTimeFun(scope.row,$event)"
               v-model="scope.row.invalidTime"
               value-format="yyyy-MM-dd"
               type="date"
@@ -197,11 +198,9 @@
 </template>
 
 <script>
-import { supplierDelete, supplierList, supplierStop } from '@/api/gasManage3_0/gasManage'
 import { listStudentUser, listTeacherUser } from '@/api/system/user_student'
 import { listDepartments } from '@/api/system/dept'
 import { AddImpowerHaikang, delUserHaikang, getHaikangQueryTypes, getHaikangUserList } from '@/api/laboratory/subject'
-import { gasManageAdd } from '@/api/gasManage3_0/gasManageSYD'
 
 export default {
   name: "Approval",
@@ -213,7 +212,6 @@ export default {
   },
   data() {
     return {
-      randomKey:Math.random(),
       loading:false,
       // 查询参数
       queryParams: {
@@ -221,6 +219,7 @@ export default {
         pageSize:20,
         searchValue:'',
         userType:'',
+        hardId:'',
         startTime:'',
         endTime:'',
       },
@@ -246,6 +245,7 @@ export default {
         verifyMode:'',
       },
       unifyDeploy:false,
+      //提交
       form:{}
     };
 
@@ -253,11 +253,17 @@ export default {
   },
   methods: {
       //弹出层表格里验证方式改变重新赋值
-      verifyModeFun(item,e){
-        item=e
+      verifyModeFun(){
         //通过改变数组数据刷新视图
         this.dialogTable.pop()
       },
+      //弹出层表格里失效时间改变重新赋值
+        invalidTimeFun(item,e){
+          this.dialogTable.splice(1,0);
+
+      },
+
+
     //获取当前日期
       getdate() {
         var date = new Date();
@@ -278,7 +284,7 @@ export default {
       //查询
       onSearch() {
         this.dialogForm.pageNo = 1;
-        this.getUserRoleBySub();
+        this.getUserList(this.userType);
       },
       //重置
       resetForm() {
@@ -300,6 +306,7 @@ export default {
       //监听关联记录弹窗关闭
       handleClose(){
         console.log('弹窗关闭');
+        this.$refs.multipleTable.clearSelection();
       },
       //取消选中
       toggleSelection(rows) {
@@ -369,7 +376,7 @@ export default {
               this.total = response.total;
               this.loading = false;
               this.dialogTable.forEach(function(item) {
-                  item.verifyMode='faceOrFpOrCardOrPw'
+                  item.verifyMode='cardOrfaceOrPw'
                   item.invalidTime=_this.getdate()
               })
             }
@@ -380,7 +387,7 @@ export default {
               this.total = response.total;
               this.loading = false;
               this.dialogTable.forEach(function(item) {
-                item.verifyMode='faceOrFpOrCardOrPw'
+                item.verifyMode='cardOrfaceOrPw'
                 item.invalidTime=_this.getdate()
               })
             }
@@ -405,8 +412,12 @@ export default {
       },
       /** 弹框重置按钮操作 */
       resetQuery() {
+        this.dateRange=[];
         this.queryParams.searchValue = "";
-        this.queryParams.status = "";
+        this.queryParams.userType = "";
+        this.queryParams.startTime = "";
+        this.queryParams.endTime = "";
+
         this.handleQuery();
       },
       //返回
@@ -416,6 +427,7 @@ export default {
       },
       getList(){
         let _this=this;
+
         if(this.dateRange&&this.dateRange.length>0) {
           this.queryParams.startTime=this.dateRange[0]
           this.queryParams.endTime=this.dateRange[1]
@@ -445,11 +457,12 @@ export default {
             })
           }
           _this.form.detailList=arr;
-          _this.form.hardId=this.pageData.hardId
           setTimeout(function () {
             AddImpowerHaikang(_this.form).then(response => {
               if(response.code==200){
-                this.msgSuccess("新增成功");
+                _this.msgSuccess("新增成功");
+                _this.dialogVisible=false;
+                _this.getList();
               }
             });
           },100)
@@ -462,7 +475,8 @@ export default {
       },
   },
   mounted() {
-    console.log(this.pageData)
+    this.queryParams.hardId=this.pageData.hardId;
+    this.form.hardId=this.pageData.hardId;
     this.listDepartments();
     this.getHaikangQueryTypes()
     this.getList()

+ 28 - 6
src/views/comprehensive/laboratoryManagement/subject/indexjinan.vue

@@ -222,13 +222,13 @@
               />
             </div>
             <div class="bottom-entrance-box" v-if="rightButtonType == 5">
-              <div class="entrance" v-for="(item,index) in entranceList">
-                <p :class="item.status==1?'entrance_l_yes':'entrance_l_no'">{{item.status==1?'在线':'离线'}}</p>
-                <img class="entrance_c" v-if="item.status==1" src="@/assets/ZDimages/icon_znmj_zx.png">
-                <img class="entrance_c" v-if="item.status==0"  src="@/assets/ZDimages/icon_znmj_lx.png">
+              <div class="entrance" v-for="(item,index) in entranceList" v-if="item.operate">
+                <p :class="item.operate.code==2?'entrance_l_yes':'entrance_l_no'">{{item.operate.code==2?'在线':'离线'}}</p>
+                <img class="entrance_c" v-if="item.operate.code==2" src="@/assets/ZDimages/icon_znmj_zx.png">
+                <img class="entrance_c" v-if="item.operate.code!=2"  src="@/assets/ZDimages/icon_znmj_lx.png">
                 <div class="entrance_r">
                   <p>门禁名称:{{item.name}}</p>
-                  <p>门禁编号:{{item.num}}</p>
+                  <p>门禁编号:{{item.hardwareNum}}</p>
                 </div>
               </div>
               <img class="null-data-img" src="@/assets/ZDimages/null-data.png" v-if="entranceList.length<=0">
@@ -268,7 +268,14 @@
 import mqtt from 'mqtt'
 import flvjs from 'flv.js'
 import { hardWareControl,alarmControl } from "@/api/laboratory/hardware";
-import { authListSubject,subjectInfo,updateSubject,mangerVoice,startUrl, } from "@/api/laboratory/subject";
+import {
+  authListSubject,
+  subjectInfo,
+  updateSubject,
+  mangerVoice,
+  startUrl,
+  queryHardByTypeList, getHaikangUserList
+} from '@/api/laboratory/subject'
 import { filterDept } from "@/api/medicUniversity-3_1/index";
 import addSubject from "./addSubject.vue";
 import deviceList from "./deviceListjinan.vue";
@@ -383,6 +390,7 @@ export default {
     this.getDeptList();
     // this.subscriptionMQTT();
     this.getList();
+   // this.queryHardByTypeList();
   },
   methods:{
     goAlarmRecord(){
@@ -390,6 +398,18 @@ export default {
         path: `/chemicalLibrary/alarmRecord`,
       })
     },
+    //智能门禁
+    queryHardByTypeList(){
+      let _this=this;
+      let obj={
+        subjectId:'85',
+        type:'HK_DOOR',
+      }
+      queryHardByTypeList(obj).then( response => {
+        let res=response.data;
+        _this.entranceList=res;
+      });
+    },
     //报警器开启关闭方法
     changeIsNeedCaptchaAlarm(row){
       let self = this;
@@ -720,6 +740,8 @@ export default {
           }else{
             this.$set(this.checkedSubject,'videoData',[]);
           }
+        }else if(type==5){
+          this.queryHardByTypeList();
         }
       }
     },