liuyg
2021-11-29 67e064168d30a0c6b47207ed6fd2e0d91a459164
+判断是否有身份证设备并开启设备驱动下载按钮
3 files modified
184 ■■■■ changed files
src/store/onresize.js 4 ●●● patch | view | raw | blame | history
src/views/securityGuard/securityGuard.vue 157 ●●●● patch | view | raw | blame | history
src/views/securityGuard/sfzJS.js 23 ●●●●● patch | view | raw | blame | history
src/store/onresize.js
@@ -19,7 +19,9 @@
var ms = 300;
var lastClick = Date.now() - ms;
// 初始化
init();
setTimeout(() => {
    init();
}, 500);
// 改变窗口大小时重新设置 rem
// window.onresize = function () {
//     // 节流 
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>
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;
}