From 67e064168d30a0c6b47207ed6fd2e0d91a459164 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Mon, 29 Nov 2021 11:20:22 +0800
Subject: [PATCH] +判断是否有身份证设备并开启设备驱动下载按钮

---
 src/views/securityGuard/securityGuard.vue |  157 ++++++++++++++++++++++++++--------------------------
 1 files changed, 79 insertions(+), 78 deletions(-)

diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index a92c995..f5b0bb5 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -393,6 +393,16 @@
         </div>
       </basic-container>
     </el-col>
+    <div
+      v-show="haveSEL == 'noDrive'"
+      :class="[
+        $store.state.control.windowWidth >= 1024
+          ? 'downSFZqudong'
+          : 'downSFZqudongS',
+      ]"
+    >
+      <a href="">未安装身份证驱动,点击下载</a>
+    </div>
   </el-row>
 </template>
 
@@ -518,7 +528,7 @@
       // 表格数据
       defaults: {},
       // 身份证设备数据
-      haveSEL: true, //是否存在设备
+      haveSEL: "", //设备状态
       cardShebei: "",
       intTime: "", //自动获取身份证;
       haveCardid: true, //读卡开关
@@ -1263,7 +1273,7 @@
       this.search["userType"] = 7;
       this.search["hold"] = "1";
     }
-    this.userInfo.rname.forEach(roleName=>{
+    this.userInfo.rname.forEach((roleName) => {
       if (
         roleName == "保安公司管理员" ||
         roleName == "保安" ||
@@ -1275,23 +1285,21 @@
         //默认全部展开
         column.defaultExpandAll = true;
         column.dicUrl =
-          "/api/blade-system/dept/security_lazy-tree?deptId="+this.userInfo.dept_id;
-      }else if(roleName == "公安管理员" ||
-        roleName == "administrator"){
+          "/api/blade-system/dept/security_lazy-tree?deptId=" +
+          this.userInfo.dept_id;
+      } else if (roleName == "公安管理员" || roleName == "administrator") {
         var columnDept = that.findObject(that.option.column, "deptId");
-            columnDept.dicUrl =
-              "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
-              that.userInfo.jurisdiction;
-      }else {
-          //查询保安单位信息(包含子级)
+        columnDept.dicUrl =
+          "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
+          that.userInfo.jurisdiction;
+      } else {
+        //查询保安单位信息(包含子级)
         const column = this.findObject(this.option.column, "deptId");
         // column.search = false;
         //默认全部展开
-        column.dicUrl =
-          "/api/blade-system/dept/security_lazy-tree";
+        column.dicUrl = "/api/blade-system/dept/security_lazy-tree";
       }
-    })
-
+    });
 
     if (
       this.userInfo.account == "南昌市保安服务总公司" ||
@@ -1755,11 +1763,11 @@
         //导出
         if (this.userInfo.role_name == "保安公司管理员") {
           //如果是保安公司管理员
-          if(this.search.deptId){
-              data["deptId"] = this.search.deptId;
-            }else{
-              data["deptId"] = this.userInfo.dept_id;
-            }
+          if (this.search.deptId) {
+            data["deptId"] = this.search.deptId;
+          } else {
+            data["deptId"] = this.userInfo.dept_id;
+          }
         }
         if (this.userInfo.role_name == "培训公司管理员") {
           //如果是培训公司管理员
@@ -2086,51 +2094,29 @@
     olondSFZ() {
       // console.log(123456);
       var that = this;
-      try {
-        // 开始连接设备
-        //调用对应的连接方法,并赋值给result
-        this.cardShebei = CertCtl.connect();
-        //如果result为空,代表读卡插件未启动
-        if (this.cardShebei == "") {
-          console.log("未启动读卡插件!1");
-          that.haveSEL = false;
+      //   // 开始连接设备
+      //   //调用对应的连接方法,并赋值给result
+      this.cardShebei = CertCtl.connect((res) => {
+        let k = "";
+        try {
+          k = JSON.parse(res);
+        } catch (error) {
+          k = res;
+        }
+        // console.log(k);
+        if (k == "") {
+          that.haveSEL = "noDrive";
+          console.log("连接身份证设备失败,请安装驱动");
           return;
+        }
+        if (k.resultFlag == 0) {
+          that.haveSEL = "connectionSucceeded";
+          console.log("连接身份证设备成功");
         } else {
-          //result页面回显
-          console.log("ok!");
+          that.haveSEL = "noEquipment";
+          console.log("连接身份证设备失败,请重新连接设备");
         }
-      } catch (e) {
-        // that.haveSEL = false;
-        that.haveSEL = true;
-        // console.log(e, 123);
-        return;
-      }
-      let result = CertCtl.readCert();
-      if (result == "") {
-        console.log("未启动读卡插件!2");
-        that.haveSEL = false;
-        return;
-      } else {
-        var resultObj = eval("(" + result + ")");
-        //resultFlag为0代表读卡成功
-        if (resultObj.resultFlag == "0") {
-          //回显相关数据
-          console.log("身份证设备连接成功");
-          that.haveSEL = true;
-        } else if (resultObj.resultFlag == "-1") {
-          if (resultObj.errorMsg == "端口打开失败") {
-            console.log("读卡器未连接");
-            that.haveSEL = false;
-          } else {
-            console.log(resultObj.errorMsg);
-            //无卡片提醒
-            that.haveSEL = true;
-          }
-        } else if (resultObj.resultFlag == "-2") {
-          console.log(resultObj.errorMsg);
-          that.haveSEL = false;
-        }
-      }
+      });
     },
     setIntervals: function () {
       let that = this;
@@ -2184,19 +2170,7 @@
       }, 2000);
     },
     beginSFZ() {
-      if (this.haveSEL) {
-        try {
-          // 开始连接设备
-          //调用对应的连接方法,并赋值给result
-          this.cardShebei = CertCtl.connect();
-          //如果result为空,代表读卡插件未启动
-          if (this.cardShebei == "") {
-            console.log("未启动读卡插件!");
-          } else {
-            //result页面回显
-            console.log("ok!");
-          }
-        } catch (e) {}
+      if (this.haveSEL == "connectionSucceeded") {
         this.haveCardid = false;
         if (this.intTime) {
           clearInterval(this.intTime);
@@ -2309,15 +2283,16 @@
             //   "/api/blade-system/dept/security_lazy-tree?deptId="+that.userInfo.dept_id;
             const deptColumn = that.findObject(that.option.group, "deptId");
             deptColumn.dicUrl =
-              "/api/blade-system/dept/security_lazy-tree?deptId="+that.userInfo.dept_id;
+              "/api/blade-system/dept/security_lazy-tree?deptId=" +
+              that.userInfo.dept_id;
             //禁止编辑
             // deptColumn.disabled = true;
             deptColumn.value = that.userInfo.dept_id;
             that.isSecurity = false;
             //如果是保安公司管理员
-            if(this.search.deptId){
+            if (this.search.deptId) {
               params["deptId"] = this.search.deptId;
-            }else{
+            } else {
               params["deptId"] = that.userInfo.dept_id;
             }
             //导入action 修改
@@ -2334,7 +2309,8 @@
             params["jurisdiction"] = that.userInfo.jurisdiction;
             var ColumnDeptUpdate = that.findObject(that.option.group, "deptId");
             ColumnDeptUpdate.dicUrl =
-              "/api/blade-system/dept/security_lazy-tree?jurisdiction=" + that.userInfo.jurisdiction;
+              "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
+              that.userInfo.jurisdiction;
 
             //审查状态查询开启
             var columnExaminationType = that.findObject(
@@ -2692,4 +2668,29 @@
 //   text-align: center;
 //   border: 1px dashed #8c939d;
 // }
+
+.downSFZqudong {
+  position: absolute;
+  right: 239px;
+  top: 153px;
+  font-size: 14px;
+  a {
+    text-decoration: underline;
+    &:hover {
+      color: rgb(36, 143, 231);
+    }
+  }
+}
+.downSFZqudongS {
+  position: absolute;
+  right: 30px;
+  top: 10px;
+  font-size: 14px;
+  a {
+    text-decoration: underline;
+    &:hover {
+      color: rgb(36, 143, 231);
+    }
+  }
+}
 </style>

--
Gitblit v1.9.3