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/store/onresize.js                     |    4 
 src/views/securityGuard/sfzJS.js          |   23 +++--
 src/views/securityGuard/securityGuard.vue |  157 +++++++++++++++++++-------------------
 3 files changed, 95 insertions(+), 89 deletions(-)

diff --git a/src/store/onresize.js b/src/store/onresize.js
index 3bad145..da66589 100644
--- a/src/store/onresize.js
+++ b/src/store/onresize.js
@@ -19,7 +19,9 @@
 var ms = 300;
 var lastClick = Date.now() - ms;
 // 初始化
-init();
+setTimeout(() => {
+    init();
+}, 500);
 // 改变窗口大小时重新设置 rem
 // window.onresize = function () {
 //     // 节流 
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>
diff --git a/src/views/securityGuard/sfzJS.js b/src/views/securityGuard/sfzJS.js
index c7c95a4..f127cdb 100644
--- a/src/views/securityGuard/sfzJS.js
+++ b/src/views/securityGuard/sfzJS.js
@@ -90,18 +90,19 @@
 }
 
 //连接方法
-function CertCtl_connect() {
-    var baseURL = "";
-    getUserIP(function (ip) {
-        // alert("Got IP! :" + ip);
-        baseURL = ip;
-    });
+function CertCtl_connect(fn) {
+    // var baseURL = "";
+    // getUserIP(function (ip) {
+    //     // alert("Got IP! :" + ip);
+    //     baseURL = ip;
+    // });
     // console.log(baseURL, 666666);
     var result = "";
-    var iParam1 = "1";
+    // var iParam1 = "1";
+    var urls = "http://127.0.0.1:18889/api/connect";
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://" + baseURL + ":18889/api/connect", false);
-    // CertCtl.xhr.open("POST", urls, false);
+    // CertCtl.xhr.open("POST", "http://" + baseURL + ":18889/api/connect", false);
+    CertCtl.xhr.open("POST", urls, false);
     //发送请求
     try {
         CertCtl.xhr.send();
@@ -114,10 +115,12 @@
     //返回值status      200: "OK"
     //					404: 未找到页面
     //当返回值readyState为4且status为200时,为查询成功
+    // console.log(CertCtl.xhr);
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
-        CertCtl.xhr.readyState = 1;
+        // CertCtl.xhr.readyState = 1;
     }
+    fn(CertCtl.xhr.responseText)
     return result;
 }
 

--
Gitblit v1.9.3