钟日健
2022-02-08 2c461eb9efb980d55dfd7407ee70088fc90a4a7a
src/views/securityGuard/securityGuard.vue
@@ -16,10 +16,12 @@
    <el-col :span="24">
      <basic-container
        :class="[
          $store.state.control.windowWidth >= 1024 ? 'tooRowSearch' : '',
          $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
        ]"
      >
        <avue-crud
          class="tablesss"
          :key="option.height"
          :option="option"
          :search.sync="search"
          :table-loading="loading"
@@ -168,7 +170,7 @@
              :type="type"
              v-if="permission.securityGuard_delete && row.status != 2"
              @click.stop="rowStatus(row)"
              >离职登记
              >离职
            </el-button>
            <el-button
              icon="el-icon-edit"
@@ -397,9 +399,10 @@
    </el-col>
    <div
      :class="[
        'downSFZ',
        $store.state.control.windowWidth >= 1024
          ? 'downSFZqudong'
          : 'downSFZqudongS',
          : 'downSFZqudongS'
      ]"
    >
      <el-checkbox v-model="radio" :disabled="SFZloding"
@@ -435,10 +438,12 @@
  getUserPractitionersInfo,
  updatePaperTime,
  getzhiwen, //指纹
  checkAccountByUser
} from "@/api/system/user";
import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
import { getList } from "@/api/securityGuard/securityGuard";
import { getDeptLazyTree } from "@/api/system/dept";
import { getInformationDetails } from "@/api/securityUnit/securityUnit";
import { getRoleTree, getRoleDetail } from "@/api/system/role";
import { mapGetters } from "vuex";
import website from "@/config/website";
@@ -446,7 +451,7 @@
import { securityFormPageColumn } from "./data";
import { mapState } from "vuex";
import Qs from "qs";
import { MessageBox } from 'element-ui';
import { MessageBox } from "element-ui";
//加载指纹类
import Client from "./Client";
@@ -531,6 +536,35 @@
    function trim(str) {
      return str.replace(/(^\s*)|(\s*$)/g, "");
    }
    /**
     * 身份证号码账号校验
     */
    let useBack = "";
    function checkAccount(idCard, callback) {
      var data = {
        cardid: idCard
      };
      if (window.deptIdss) {
        data["deptId"] = window.deptIdss;
      }
      //调用接口校验
      if (useBack != idCard) {
        useBack = idCard;
        checkAccountByUser(data)
          .then(res => {
            useBack = "ok";
            callback();
          })
          .catch(error => {
            callback("当前身份证号码已录入!");
          });
      } else if (useBack == "ok") {
        callback();
      } else {
        console.log("cf");
        callback(new Error("当前身份证号码已录入!"));
      }
    }
    const validatePassCardid = (rule, value, callback) => {
      let ok = false;
      if (value.length == 18) {
@@ -550,7 +584,14 @@
      }
      if (ok) {
        callback();
        // console.log(this.nowCell,123456);
        if (this.type == 1 || this.nowCell == 2) {
          //修改不校验身份证hao
          callback();
        } else {
          //调用接口进行账户重复校验
          checkAccount(value, callback);
        }
      } else {
        callback(new Error("身份证错误"));
      }
@@ -601,7 +642,16 @@
        callback();
      }
    };
    // let table = document.getElementsByClassName("tablesss");
    // let heard = table[0].getElementsByClassName("avue-crud__search");
    // let usNum =
    //   this.windowWidth <= 1376 && this.windowHeight <= 778 ? 170 : 332;
    // // that.option.height = +h - (+heard[0].clientHeight + 332);
    // let optionHeight = +this.windowHeight - (+heard[0].clientHeight + +usNum);
    return {
      sort: "",
      type: 2,
      sortName: "",
      nowCell: "", //空为手动,2为身份证设备读取
      // 表格数据
      defaults: {},
@@ -631,7 +681,7 @@
        realName: "",
        securitynumber: "",
        cardid: "",
        registered: "",
        registered: ""
      },
      securityid: "",
      excelBox1: false,
@@ -650,18 +700,18 @@
            loadText: "文件上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
              res: "data"
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/blade-user/import-security?deptId=" + this.deptIds,
            action: "/api/blade-user/import-security?deptId=" + this.deptIds
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
            span: 24
          }
        ]
      },
      excelForm2: {},
      excelOption2: {
@@ -676,12 +726,12 @@
            loadText: "文件上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
              res: "data"
            },
            tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名",
            action: "/api/blade-resource/oss/endpoint/put-file-zip",
          },
        ],
            action: "/api/blade-resource/oss/endpoint/put-file-zip"
          }
        ]
      },
      form: {},
      search: {},
@@ -697,7 +747,7 @@
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
        ...this.$store.state.control.changePageSize
      },
      roleId: "1412226235153731586",
      deptId: "1413470343230877697",
@@ -706,15 +756,15 @@
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
        ...this.$store.state.control.changePageSize
      },
      init: {
        roleTree: [],
        deptTree: [],
        deptTree: []
      },
      props: {
        label: "title",
        value: "key",
        value: "key"
      },
      roleGrantList: [],
      roleTreeObj: [],
@@ -723,14 +773,14 @@
      treeOption: {
        nodeKey: "id",
        lazy: true,
        treeLoad: function (node, resolve) {
        treeLoad: function(node, resolve) {
          const parentId = node.level === 0 ? 0 : node.data.id;
          getDeptLazyTree(parentId).then((res) => {
          getDeptLazyTree(parentId).then(res => {
            resolve(
              res.data.data.map((item) => {
              res.data.data.map(item => {
                return {
                  ...item,
                  leaf: !item.hasChildren,
                  leaf: !item.hasChildren
                };
              })
            );
@@ -743,17 +793,20 @@
          labelText: "标题",
          label: "title",
          value: "value",
          children: "children",
        },
          children: "children"
        }
      },
      choiceList: [],
      deptIdss: "",
      option: {
        searchIndex: 6, //收缩展示数量
        searchIcon: true, //搜索是否收缩
        height: "auto",
        calcHeight: 80,
        tip: true,
        searchShow: true,
        reserveSelection: true,
        selectable: (row) => {
        selectable: row => {
          if (
            row.hold !== "1" ||
            row.securitynumber == null ||
@@ -796,16 +849,16 @@
                // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
                props: {
                  label: "title",
                  value: "id",
                  value: "id"
                },
                // disabled: true,
                rules: [
                  {
                    required: true,
                    message: "请选择保安公司",
                    trigger: "blur",
                  },
                ],
                    trigger: "blur"
                  }
                ]
              },
              {
                label: "姓名",
@@ -815,15 +868,15 @@
                  {
                    required: true,
                    message: "请输入姓名",
                    trigger: "blur",
                    trigger: "blur"
                  },
                  {
                    min: 2,
                    max: 5,
                    message: "姓名长度在2到5个字符",
                  },
                ],
              },
                    message: "姓名长度在2到5个字符"
                  }
                ]
              }
              // {
              //   label: "登录账号",
              //   prop: "account",
@@ -859,7 +912,7 @@
              //     { required: true, validator: validatePass2, trigger: "blur" },
              //   ],
              // },
            ],
            ]
          },
          {
            label: "详细信息",
@@ -876,14 +929,14 @@
                  {
                    required: true,
                    message: "请输入身份证号",
                    trigger: "blur",
                    trigger: "blur"
                  },
                  {
                    required: true,
                    validator: validatePassCardid,
                    trigger: "blur",
                  },
                ],
                    trigger: "blur"
                  }
                ]
              },
              {
                label: "手机号码",
@@ -893,14 +946,14 @@
                  {
                    required: true,
                    message: "请输入手机号",
                    trigger: "blur",
                    trigger: "blur"
                  },
                  {
                    required: true,
                    validator: validatePassPhone,
                    trigger: "blur",
                  },
                ],
                    trigger: "blur"
                  }
                ]
              },
              // {
              //   label: "昵称",
@@ -912,17 +965,18 @@
                listType: "picture-img",
                propsHttp: {
                  res: "data",
                  url: "url",
                  url: "url"
                },
                canvasOption: {
                  text: " ",
                  ratio: 0.1,
                  ratio: 1.0
                },
                action: "/api/blade-resource/oss/endpoint/put-files",
                tip: "上传身份证一寸近期彩色正面免冠图象, (358像素(宽) × 441像素(高)、分辨率350dpi)且不超过500kb",
                tip:
                  "上传近期一寸彩色正面免冠图象, (358像素(宽) × 441像素(高)、分辨率350dpi)且不小于30kb,不超过500kb",
                span: 12,
                // row: true,
                prop: "avatar",
                prop: "avatar"
              },
              {
                label: "指纹信息",
@@ -940,7 +994,7 @@
                // tip: "只能上传jpg/png指纹信息,且不超过500kb",
                span: 12,
                // row: true,
                prop: "fingerprint",
                prop: "fingerprint"
              },
              //   {
              //     label: "指纹信息",
@@ -972,49 +1026,59 @@
                dicData: [
                  {
                    label: "是",
                    value: "1",
                    value: "1"
                  },
                  {
                    label: "否",
                    value: "2",
                    value: "2"
                  },
                  {
                    label: "已吊销",
                    value: "3",
                  },
                    value: "3"
                  }
                ],
                rules: [
                  {
                    required: true,
                    message: "请选择",
                    trigger: "blur",
                  },
                ],
                    message: "请选择是否有持证",
                    trigger: "blur"
                  }
                ]
              },
              {
                label: "保安员证编号",
                prop: "securitynumber",
                hide: true,
                display: true,
                rules: [
                  {
                    required: false,
                    message: "请输入保安员证编号",
                    trigger: "blur"
                  }
                ]
              },
              // {
              //   label: "发证日期",
              //   prop: "paperTime",
              //   hide: true,
              //   type: "date",
              //   format: "yyyy-MM-dd",
              //   valueFormat: "yyyy-MM-dd",
              // },
              {
                label: "电子邮箱",
                label: "保安证书照片",
                prop: "email",
                type: "upload",
                listType: "picture-img",
                display: true,
                propsHttp: {
                  res: "data",
                  url: "url"
                },
                canvasOption: {
                  text: " ",
                  ratio: 1.0
                },
                action: "/api/blade-resource/oss/endpoint/put-files",
                tip: "上传jpg,png格式图片,大小不超过2M",
                span: 12
              },
              // {
              //     label: "籍贯",
              //     prop: "nativeplace",
              // },
              {
                label: "民族",
                prop: "nation",
                prop: "nation"
              },
              {
                label: "最高学历",
@@ -1024,26 +1088,26 @@
                  "/api/blade-system/dict-biz/dictionary?code=educationType",
                props: {
                  label: "dictValue",
                  value: "dictKey",
                  value: "dictKey"
                },
                dataType: "number",
                slot: true,
                slot: true
              },
              {
                label: "政治面貌",
                prop: "politicaloutlook",
                prop: "politicaloutlook"
              },
              {
                label: "健康状态",
                prop: "healstats",
                prop: "healstats"
              },
              {
                label: "身高",
                prop: "height",
                prop: "height"
              },
              {
                label: "联系地址",
                prop: "address",
                prop: "address"
              },
              {
                label: "身份证住址",
@@ -1052,9 +1116,9 @@
                  {
                    required: true,
                    message: "请输入身份证住址",
                    trigger: "click",
                  },
                ],
                    trigger: "click"
                  }
                ]
              },
              {
                label: "所属辖区",
@@ -1064,7 +1128,7 @@
                dicUrl: "/api/jurisdiction/lazy-tree",
                props: {
                  label: "title",
                  value: "id",
                  value: "id"
                },
                checkStrictly: true,
                slot: true,
@@ -1072,9 +1136,9 @@
                  {
                    required: false,
                    message: "请选择所属辖区",
                    trigger: "click",
                  },
                ],
                    trigger: "click"
                  }
                ]
              },
              {
                label: "入职时间",
@@ -1086,9 +1150,9 @@
                  {
                    required: true,
                    message: "请输入入职时间",
                    trigger: "click",
                  },
                ],
                    trigger: "click"
                  }
                ]
              },
              {
                label: "性别",
@@ -1098,12 +1162,12 @@
                dicData: [
                  {
                    label: "男",
                    value: 1,
                    value: 1
                  },
                  {
                    label: "女",
                    value: 2,
                  },
                    value: 2
                  }
                  // {
                  //   label: "未知",
                  //   value: 3,
@@ -1113,10 +1177,10 @@
                  {
                    required: true,
                    message: "请选择性别",
                    trigger: "blur",
                  },
                ],
              },
                    trigger: "blur"
                  }
                ]
              }
              // {
              //   label: "生日",
              //   type: "date",
@@ -1124,9 +1188,9 @@
              //   format: "yyyy-MM-dd",
              //   valueFormat: "yyyy-MM-dd",
              // },
            ],
          },
        ],
            ]
          }
        ]
      },
      data: [],
      platformQuery: {},
@@ -1149,25 +1213,25 @@
            label: "登录账号",
            prop: "account",
            search: true,
            display: false,
            display: false
          },
          {
            label: "所属保安单位",
            prop: "tenantName",
            slot: true,
            display: false,
            display: false
          },
          {
            label: "姓名",
            prop: "realName",
            search: true,
            display: false,
            display: false
          },
          {
            label: "平台",
            prop: "userTypeName",
            slot: true,
            display: false,
            display: false
          },
          {
            label: "平台",
@@ -1175,7 +1239,7 @@
            dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
            props: {
              label: "dictValue",
              value: "dictKey",
              value: "dictKey"
            },
            dataType: "number",
            search: true,
@@ -1186,9 +1250,9 @@
              {
                required: true,
                message: "请选择平台",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "拓展",
@@ -1198,9 +1262,9 @@
            span: 24,
            overHidden: true,
            row: true,
            hide: true,
          },
        ],
            hide: true
          }
        ]
      },
      excelForm: {},
      excelOption: {
@@ -1215,10 +1279,10 @@
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
              res: "data"
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/blade-user/import-security",
            action: "/api/blade-user/import-security"
          },
          // {
          //   label: "数据覆盖",
@@ -1250,13 +1314,63 @@
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
            span: 24
          }
        ]
      },
      tablevisible: true,
      isNotChangeSize: true //取消表格loging
    };
  },
  watch: {
    windowHeight() {
      let that = this;
      that.isNotChangeSize = false; //取消表格loging
      let d = {
        fn: function(h) {
          let table = document.getElementsByClassName("tablesss");
          let heard = table[0].getElementsByClassName("avue-crud__search");
          let usNum =
            that.windowWidth <= 1376 || that.windowHeight <= 778 ? 170 : 302;
          // // that.option.height = +h - (+heard[0].clientHeight + 332);
          // alert(h);
          let doit = height => {
            let hs = height || h;
            // alert(hs);
            // alert(heard[0].clientHeight);
            // alert(usNum);
            that.option.height = +hs - (+heard[0].clientHeight + +usNum);
            that.$nextTick(() => {
              that.refreshChange();
              setTimeout(() => {
                let d = {
                  that: this,
                  otherclass: ["downSFZ"],
                  haveOpen: true
                };
                //刷新表格后再次调整按钮
                that.$store.dispatch("TABLE_CHANGEBUTPOSITION", d);
                that.isNotChangeSize = true; //恢复表格loging
              }, 10);
            });
          };
          if (that.option.height == "auto") {
            //解决第一次未渲染成功会报错的问题
            setTimeout(() => {
              // console.log(
              //   document
              //     .getElementsByClassName("tablesss")[0]
              //     .getElementsByClassName("avue-crud__search")
              // );
              doit(window.innerHeight);
            }, 150);
          } else {
            doit();
          }
        }
      };
      this.$store.dispatch("WHchangeHight", d);
    },
    radio() {
      if (this.radio) {
        this.SFZloding = true;
@@ -1265,7 +1379,7 @@
        if (this.haveSEL != "noDrive" && this.haveSEL != "noEquipment") {
          this.$message({
            type: "warning",
            message: "关闭身份证设备识别!",
            message: "关闭身份证设备识别!"
          });
        }
      }
@@ -1275,32 +1389,73 @@
        this.initData(this.form.tenantId);
      }
    },
    "form.deptId": {
      handler(val) {
        if (val) {
          window.deptIdss = val;
        }
      },
      immediate: true
    },
    "form.hold": {
      handler(val) {
        var securitynumbercolumn = this.findObject(
          this.option.group,
          "securitynumber"
        );
        var emailcolumn = this.findObject(this.option.group, "email");
        // console.log(val,1234);
        if (val == 1) {
          securitynumbercolumn.display = true;
          securitynumbercolumn.rules = [
            {
              required: true,
              message: "请输入保安员证编号",
              trigger: "blur"
            }
          ];
          emailcolumn.display = true;
        } else {
          securitynumbercolumn.display = false;
          securitynumbercolumn.rules = [
            {
              required: false,
              message: "请输入保安员证编号",
              trigger: "blur"
            }
          ];
          emailcolumn.display = false;
        }
      },
      immediate: true
    },
    "form.fingerprint"() {
      let that = this;
      if (this.form.fingerprint != undefined) {
        that.isopen = true;
        let isoks = false;
        function sets(state, fingerprint, myPicture) {
        function sets(state, dom, fingerprint, myPicture) {
          isoks = state;
          var winzhiwen = document.getElementById("zhiwen").contentWindow;
          winzhiwen.setZhiwenData({
            imgBMP: fingerprint,
            // imgBMP: imgBMP,
            // CID_img_raw: CID_img_raw,
            featuredatas: myPicture,
            isoks: isoks,
          });
          dom.onload = function() {
            // var winzhiwen = document.getElementById("zhiwen").contentWindow;
            var winzhiwen = dom.contentWindow;
            winzhiwen.setZhiwenData({
              imgBMP: fingerprint,
              // imgBMP: imgBMP,
              // CID_img_raw: CID_img_raw,
              featuredatas: myPicture,
              isoks: isoks
            });
          };
        }
        setTimeout(() => {
          // if()
        var doZhiwen = dom => {
          if (!this.form.id) {
            sets(false);
            sets(false, dom);
            return;
          }
          // return;
          getzhiwen(this.form.id).then((res) => {
          getzhiwen(this.form.id).then(res => {
            const data = res.data.data;
            if (that.isopen) {
              if (
@@ -1309,13 +1464,27 @@
                data.myPicture != "" &&
                data.myPicture != undefined
              ) {
                sets(true, data.fingerprint, data.myPicture);
                sets(true, dom, data.fingerprint, data.myPicture);
              } else {
                sets(false);
                sets(false, dom);
              }
            }
          });
        }, 1800);
        };
        // setTimeout(() => {
        // var iframeDom = document.getElementById("zhiwen");
        //   console.log(iframeDom,111111);
        //   iframeDom.onload = function () {
        //     doZhiwen();
        //   };
        //   doZhiwen();
        // }, 2800);
        //判断是否加载完成指纹dom
        that.checkDom("", dom => {
          // console.log(dom);
          doZhiwen(dom);
        });
      } else {
        that.isopen = false;
      }
@@ -1328,16 +1497,16 @@
        const column = this.findObject(this.excelOption.column, "excelFile");
        column.action = `/api/blade-user/import-security?isCovered=${this.excelForm.isCovered}`;
      }
    },
    }
  },
  computed: {
    ...mapGetters(["userInfo", "permission"]),
    ...mapGetters(["userInfo", "permission", "windowHeight", "windowWidth"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.securityGuard_add, false),
        viewBtn: this.vaildData(null, false),
        delBtn: this.vaildData(this.permission.securityGuard_delete, false),
        editBtn: this.vaildData(this.permission.securityGuard_edit, false),
        editBtn: this.vaildData(this.permission.securityGuard_edit, false)
      };
    },
    platformPermissionList() {
@@ -1345,19 +1514,19 @@
        addBtn: false,
        viewBtn: false,
        delBtn: false,
        editBtn: this.vaildData(this.permission.user_edit, false),
        editBtn: this.vaildData(this.permission.user_edit, false)
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
      this.selectionList.forEach(ele => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
      userInfo: state => state.user.userInfo
    })
  },
  beforeCreate() {},
  created() {
@@ -1406,12 +1575,12 @@
        prop: "guncode",
        width: 90,
        addDisplay: false,
        editDisplay: false,
        editDisplay: false
      });
      this.option.group[1].column.push({
        label: "持枪证编号",
        prop: "guncode",
        prop: "guncode"
      });
      this.excelOption1.column[0].action =
@@ -1419,6 +1588,15 @@
    }
  },
  mounted() {
    // let d = {
    //   that: this,
    //   otherclass: ["downSFZ"],
    //   haveOpen: true,
    //   flowHeight: 332,
    // };
    // this.$store.dispatch("TABLE_CHANGEBUTPOSITION", d);
    // console.log((this.$refs.crud._props.option.height = 200));
    this.changeButsPosition("TABLE_CHANGEBUTPOSITION");
    // this.option.column[0].hide = true
    // 非保安单位模式默认加载管理组数据
    if (!website.tenantMode) {
@@ -1434,6 +1612,45 @@
    // this.olondSFZ(); //检查身份证设备是否存在
  },
  methods: {
    checkDom(name, fn) {
      //  声明定时器
      let that = this;
      var timer = null;
      //  检查dom是否执行完成
      function checkDom() {
        let dom = document.getElementById("zhiwen");
        if (dom) {
          //  执行dom加载完成后的操作
          //  清除定时器
          if (!timer) {
            clearTimeout(timer);
          }
          if (fn) {
            //回调函数
            fn(dom);
            return;
          } else {
            return dom;
          }
        } else {
          //  自我调用
          timer = setTimeout(checkDom, 100);
        }
      }
      //  首次执行
      checkDom();
    },
    changeButsPosition(val) {
      let d = {
        that: this,
        otherclass: ["downSFZ"],
        haveOpen: true,
        from: "mounted"
      };
      // 开始就适应高度
      this.$store.commit("setWindowSizeHeightAdd");
      this.$store.dispatch("TABLE_CHANGEBUTPOSITION", d);
    },
    openccc() {
      console.log(this.zhiwenImg);
      // console.log(this.zhiwenChart);
@@ -1453,9 +1670,9 @@
      //初始化设备
      this.Client.beginFn = {
        fn: this.Client.CID_Init,
        CID5000: this.Client.CIDDeviceType.CID5000,
        CID5000: this.Client.CIDDeviceType.CID5000
      };
      this.Client.OnCID_Alg_Begin = function (code, msg) {
      this.Client.OnCID_Alg_Begin = function(code, msg) {
        //初始化机器返数据
        if (code == 1) {
          console.log("初始化成功");
@@ -1468,7 +1685,7 @@
          console.log("算法初始化发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_Close = function (code, msg) {
      this.Client.OnCID_Close = function(code, msg) {
        //关闭机器返数据
        if (code == 1) {
          console.log("关闭设备成功");
@@ -1484,7 +1701,7 @@
          console.log("关闭设备发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_BeginCapture = function (code, msg) {
      this.Client.OnCID_BeginCapture = function(code, msg) {
        //开始使用预览图片模式函数
        // console.log(code, "图片模式开始");
        if (code == 1) {
@@ -1493,7 +1710,7 @@
          console.log("开始采集发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_GetBmpData = function (code, msg, imagedata, feadata) {
      this.Client.OnCID_GetBmpData = function(code, msg, imagedata, feadata) {
        //使用预览图片模式 采集 BMP格式
        // console.log(msg, "图片模式采集");
        if (code == 1) {
@@ -1521,7 +1738,7 @@
      //     console.log("格式转换失败," + code + " " + msg);
      //   }
      // };
      this.Client.OnBmpToRaw = function (code, msg, imagedata) {
      this.Client.OnBmpToRaw = function(code, msg, imagedata) {
        //使用预览图片模式  BMP格式转换成RAW
        // console.log(code, msg, "BMP格式转换成RAW");
        if (code == 0) {
@@ -1534,7 +1751,7 @@
          alert("格式转换失败," + code + " " + msg);
        }
      };
      this.Client.OnCID_EndCapture = function (code, msg) {
      this.Client.OnCID_EndCapture = function(code, msg) {
        //使用预览图片模式  停止采集
        if (code == 1) {
          if (that.begin_cap) {
@@ -1545,7 +1762,7 @@
          console.log("停止采集发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_Alg_GetQualityScore = function (code, msg, score) {
      this.Client.OnCID_Alg_GetQualityScore = function(code, msg, score) {
        //停止获取
        console.log(
          "code:" + code + ";",
@@ -1575,7 +1792,7 @@
          console.log("获取质量分数发生错误   错误码:" + code);
        }
      };
      this.Client.OnCID_Alg_FeatureExtract = function (code, msg, featuredata) {
      this.Client.OnCID_Alg_FeatureExtract = function(code, msg, featuredata) {
        //获取特征
        if (code == 1) {
          that.zhiwenChart = featuredata;
@@ -1623,10 +1840,10 @@
        this.userInfo.account == "南昌市保安服务总公司" ||
        this.userInfo.account == "押运分公司"
      ) {
        window.open(`/api/blade-user/export-template-securityYy`);
        window.open(`/api/blade-user/export-template-securityYy?${this.website.tokenHeader}=${getToken()}`);
        return;
      }
      window.open(`/api/blade-user/export-template-security`);
      window.open(`/api/blade-user/export-template-security?${this.website.tokenHeader}=${getToken()}`);
    },
    handleImport2() {
      this.excelBox2 = true;
@@ -1642,7 +1859,7 @@
    rowClick(row) {
      this.$router.push({
        path: "/securityGuardDetail",
        query: { row: JSON.stringify(row) },
        query: { row: JSON.stringify(row) }
      });
    },
    //行点击事件
@@ -1682,7 +1899,7 @@
        onEnd: () => {
          this.updateUserInfo();
          // console.log('打印完成', Date.parse(new Date()));
        },
        }
      });
    },
    getNewTime() {
@@ -1718,14 +1935,21 @@
      const data = {
        id: this.certificateObj.id,
        userType: 6,
        paperTime: date,
        paperTime: date
      };
      updatePaperTime(data);
    },
    rowClickSelf(row) {
      this.$router.push({
        path: "/securityUnitChild",
        query: { fromSecunityGuardId: row },
    rowClickSelf(deptId) {
      var data = {
        departmentid: deptId
      };
      getInformationDetails(data).then(res => {
        var obj = res.data.data;
        var data = JSON.stringify(obj);
        this.$router.push({
          path: "/securityUnitChild",
          query: { data: data }
        });
      });
    },
    nodeClick(data) {
@@ -1753,7 +1977,7 @@
        this.roleBox = false;
        this.$message({
          type: "success",
          message: "操作成功!",
          message: "操作成功!"
        });
        this.onLoad(this.page);
      });
@@ -1769,7 +1993,7 @@
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning",
          type: "warning"
        }
      )
        .then(() => {
@@ -1784,15 +2008,15 @@
          const data = {
            ids: str,
            createUser: this.userInfo.user_id,
            type: 1,
            type: 1
          };
          return securityApply(data);
        })
        .then(() => {
          // this.$refs.crud.toggleSelection();
          this.$refs.crud.toggleSelection();
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
        });
    },
@@ -1807,7 +2031,7 @@
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning",
          type: "warning"
        }
      )
        .then(() => {
@@ -1822,15 +2046,15 @@
          const data = {
            ids: str,
            createUser: this.userInfo.user_id,
            type: 2,
            type: 2
          };
          return securityApply(data);
        })
        .then(() => {
          // this.$refs.crud.toggleSelection();
          this.$refs.crud.toggleSelection();
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
        });
    },
@@ -1839,7 +2063,7 @@
      this.$confirm("是否导出保安员信息数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      }).then(() => {
        //获取查询条件
        // const { releaseTimeRange } = this.search;
@@ -1859,7 +2083,7 @@
          examinationType: this.search.examinationType,
          dispatch: this.search.dispatch,
          isFingerprint: this.search.isFingerprint,
          isAvatar: this.search.isAvatar,
          isAvatar: this.search.isAvatar
        };
        // console.log(data,123456);
        //导出
@@ -1942,8 +2166,8 @@
          rtime: row.rtime,
          securitynumber: row.securitynumber,
          sex: row.sex,
          guncode: row.guncode,
        },
          guncode: row.guncode
        }
      };
      securitySave(userMap).then(
@@ -1951,17 +2175,17 @@
          this.initFlag = false;
          this.$alert("账号为身份证号码,密码为身份证后六位", "温馨提示", {
            confirmButtonText: "确定",
            callback: (action) => {
            callback: action => {
              this.$message({
                type: "success",
                message: `操作成功`,
                message: `操作成功`
              });
              this.onLoad(this.page);
              done();
            },
            }
          });
        },
        (error) => {
        error => {
          window.console.log(error);
          loading();
        }
@@ -1992,11 +2216,11 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          done();
        },
        (error) => {
        error => {
          window.console.log(error);
          loading();
        }
@@ -2008,7 +2232,7 @@
        "离职原因",
        {
          confirmButtonText: "确定",
          callback: (action) => {},
          callback: action => {}
        }
      );
    },
@@ -2016,16 +2240,16 @@
      this.$prompt("离职原因", "提示", {
        confirmButtonText: "确定离职",
        cancelButtonText: "取消",
        inputErrorMessage: "",
        inputErrorMessage: ""
      })
        .then(({ value }) => {
          row.reasonForLeav = value;
          row.status = "2";
          // return;
          update(row).then((res) => {
          update(row).then(res => {
            this.$message({
              type: "success",
              message: "操作成功",
              message: "操作成功"
            });
          });
          this.refreshChange();
@@ -2036,7 +2260,7 @@
      this.$confirm("确定注销当前用户?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          return remove(row.id);
@@ -2045,7 +2269,7 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
        });
    },
@@ -2053,7 +2277,7 @@
      this.$confirm("确定审查异常标记?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          row.examinationType = "1";
@@ -2063,7 +2287,7 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
        });
    },
@@ -2083,12 +2307,14 @@
      this.choiceList = [];
      for (let k in list) {
        this.choiceList.push({
          id: list[k].id,
          id: list[k].id
        });
      }
    },
    selectionClear() {
      // this.selectionList = [];
      this.sort = "";
      this.sortName = "";
      // this.$refs.crud.toggleSelection();
    },
    handleDelete() {
@@ -2099,7 +2325,7 @@
      this.$confirm("确定将选择保安注销?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          return remove(this.ids);
@@ -2108,7 +2334,7 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          this.$refs.crud.toggleSelection();
        });
@@ -2121,7 +2347,7 @@
      this.$confirm("确定将选择账号密码重置为123456?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          return resetPassword(this.ids);
@@ -2129,7 +2355,7 @@
        .then(() => {
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          this.$refs.crud.toggleSelection();
        });
@@ -2143,7 +2369,7 @@
      if (this.selectionList.length === 1) {
        this.roleTreeObj = this.selectionList[0].roleId.split(",");
      }
      getRoleTree().then((res) => {
      getRoleTree().then(res => {
        this.roleGrantList = res.data.data;
        this.roleBox = true;
      });
@@ -2164,7 +2390,7 @@
      this.$confirm("是否导出保安数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      }).then(() => {
        window.open(
          `/api/blade-user/export-user?${
@@ -2207,12 +2433,12 @@
      var that = this;
      //   // 开始连接设备
      //   //调用对应的连接方法,并赋值给result
      let lodings = (val) => {
        setTimeout((res) => {
      let lodings = val => {
        setTimeout(res => {
          that.SFZloding = val;
        }, 1000);
      };
      this.cardShebei = CertCtl.connect((res) => {
      this.cardShebei = CertCtl.connect(res => {
        let k = "";
        try {
          k = JSON.parse(res);
@@ -2226,7 +2452,7 @@
          that.sfzButTitle = "未安装身份证驱动,点击下载";
          this.$message({
            type: "warning",
            message: "连接身份证设备失败,请重新连接设备!",
            message: "连接身份证设备失败,请重新连接设备!"
          });
          that.radio = false;
          lodings(false);
@@ -2237,7 +2463,7 @@
          // console.log("连接身份证设备成功");
          this.$message({
            type: "success",
            message: "连接身份证设备成功!",
            message: "连接身份证设备成功!"
          });
          lodings(false);
        } else {
@@ -2246,16 +2472,16 @@
          // console.log("连接身份证设备失败,请重新连接设备!");
          this.$message({
            type: "warning",
            message: "连接身份证设备失败,请重新连接设备!",
            message: "连接身份证设备失败,请重新连接设备!"
          });
          that.radio = false;
          lodings(false);
        }
      });
    },
    setIntervals: function () {
    setIntervals: function() {
      let that = this;
      this.intTime = setInterval(function () {
      this.intTime = setInterval(function() {
        if (!that.haveCardid) {
          //定时读卡
          // console.log(that.haveCardid);
@@ -2337,15 +2563,21 @@
      var that = this;
      // console.log(type, 123);
      this.beginSFZ();
      if (["edit"].includes(type)) {
        this.type = 1;
      }
      if (["add"].includes(type)) {
        this.type = 2;
      }
      if (["edit", "view"].includes(type)) {
        getUser(this.form.id).then((res) => {
        getUser(this.form.id).then(res => {
          this.form = res.data.data;
          var d = {
            education1: res.data.data.education,
            education1: res.data.data.education
          };
          this.form = {
            ...this.form,
            ...d,
            ...d
          };
          // this.from["education1"] = res.data.data.education;
          if (this.form.hasOwnProperty("deptId")) {
@@ -2359,7 +2591,7 @@
          }
          var userInfo = res.data.data;
          //获取用户从业信息
          getUserPractitionersInfo(userInfo.id).then((res1) => {
          getUserPractitionersInfo(userInfo.id).then(res1 => {
            that.form.UserPractitionersInfo = res1.data.data;
          });
        });
@@ -2378,7 +2610,7 @@
    rowStyle({ row, column, rowIndex }) {
      if (row.examinationType == "1") {
        return {
          color: "#ff2727",
          color: "#ff2727"
        };
      }
    },
@@ -2390,26 +2622,47 @@
    },
    //排序
    sortChange(value) {
      console.log(value, 51151515);
      // console.log(value, 51151515);
      if (value.order == "ascending") {
        this.sort = "asc";
      }
      if (value.order == "descending") {
        this.sort = "desc";
      }
      this.sortName = value.prop;
      //字段匹配
      if (value.prop == "sexs") {
        this.sortName = "sex";
      }
      if (value.prop == "examinationType") {
        this.sortName = "examination_type";
      }
      if (value.prop == "userType") {
        this.sortName = "user_type";
      }
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      if (this.isNotChangeSize) {
        this.loading = true;
      }
      params = this.search;
      var that = this;
      //获取当前登录人员的角色信息
      var roleIds = this.userInfo.role_id.split(",");
      roleIds.forEach((roleId) => {
        getRoleDetail(roleId).then((res) => {
      roleIds.forEach(roleId => {
        getRoleDetail(roleId).then(res => {
          var roleAlias = res.data.data.roleAlias;
          if (roleAlias == "保安公司管理员") {
            that.option.group[1].column[4].dicData = [
              {
                label: "是",
                value: "1",
                value: "1"
              },
              {
                label: "否",
                value: "2",
              },
                value: "2"
              }
            ];
          }
          if (
@@ -2469,17 +2722,23 @@
              "/api/blade-system/dept/security_lazy-tree";
          }
          if (this.sort) {
            params["sort"] = this.sort;
          }
          if (this.sortName) {
            params["sortName"] = this.sortName;
          }
          let values = {
            ...params,
            ...params
          };
          values = {
            ...params,
            roleAlias: "111",
            ...that.query,
            ...that.query
          };
          that.loading = true;
          getList(page.currentPage, page.pageSize, values).then((res) => {
          getList(page.currentPage, page.pageSize, values).then(res => {
            const data = res.data.data;
            that.page.total = data.total;
            // var d = data.records;
@@ -2503,11 +2762,11 @@
          this.platformOnLoad(this.platformPage);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          done();
        },
        (error) => {
        error => {
          window.console.log(error);
          loading();
        }
@@ -2515,7 +2774,7 @@
    },
    platformBeforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getUserPlatform(this.platformForm.id).then((res) => {
        getUserPlatform(this.platformForm.id).then(res => {
          this.platformForm = res.data.data;
        });
      }
@@ -2554,7 +2813,7 @@
        page.pageSize,
        Object.assign(params, this.query),
        this.treeDeptId
      ).then((res) => {
      ).then(res => {
        const data = res.data.data;
        this.platformPage.total = data.total;
        this.platformData = data.records;
@@ -2565,25 +2824,31 @@
    //照片上传拦截
    uploadBefore(file, done, loading, column) {
      //如果你想修改file文件,由于上传的file是只读文件,必须复制新的file才可以修改名字,完后赋值到done函数里,如果不修改的话直接写done()即可
      if (file.type.indexOf("image/") == -1) {
        MessageBox.alert("上传图片格式错误,请上传图片类型,如:JPG,PNG后缀的文件。")
        loading();
        return false;
      }
      let data = window.URL.createObjectURL(new Blob([file]));
      this.filename = file;
      this.option.img = data;
      //判断文件大小
      const isLt1M = file.size >= 30*1024 && file.size <= 500*1024;
      if (!isLt1M) {
        MessageBox.alert("上传图片大小必须大于30KB,且小于500KB!")
        loading();
        return false;
      //判断角色
      if (this.userInfo.role_name != "administrator") {
        if (file.type.indexOf("image/") == -1) {
          MessageBox.alert(
            "上传图片格式错误,请上传图片类型,如:JPG,PNG后缀的文件。"
          );
          loading();
          return false;
        }
        let data = window.URL.createObjectURL(new Blob([file]));
        this.filename = file;
        this.option.img = data;
        //判断文件大小
        const isLt1M = file.size >= 30 * 1024 && file.size <= 500 * 1024;
        if (!isLt1M) {
          MessageBox.alert("上传图片大小必须大于30KB,且小于500KB!");
          loading();
          return false;
        }
        done();
        return isLt1M;
      }
      done();
      return isLt1M;
    },
  },
    }
  }
};
</script>