| | |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | :defaults.sync="defaults" |
| | | :before-close="beforeClose" |
| | | > |
| | | <!-- @row-update="rowUpdate" --> |
| | | <template slot="menuLeft"> |
| | |
| | | title="点击查看所属公司情况" |
| | | @click="rowClickSelf(row.deptId)" |
| | | >{{ row.deptName }} |
| | | </el-tag |
| | | > |
| | | </el-tag> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="tenantName"> |
| | | <el-tag>{{ row.tenantName }}</el-tag> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | // 身份证引入 |
| | | import CertCtl from "./sfzJS"; |
| | | import { |
| | | getUser, |
| | | getUserPlatform, |
| | |
| | | if (!test.test(value)) { |
| | | callback(new Error("请输入正确身份证号码")); |
| | | } else { |
| | | //加入校验18岁到60岁的 |
| | | oldy = +value.slice(6, 10); |
| | | oldm = +value.slice(10, 12); |
| | | oldd = +value.slice(12, 14); |
| | | ok = |
| | | year - oldy < 18 || year - oldy > 60 |
| | | ? false |
| | | : year - oldy == 18 |
| | | ? mouth < oldm |
| | | ? false |
| | | : mouth > oldm |
| | | ? true |
| | | : day < oldd |
| | | ? false |
| | | : true |
| | | : year - oldy == 60 |
| | | ? mouth < oldm |
| | | ? true |
| | | : mouth > oldm |
| | | ? false |
| | | : day <= oldd |
| | | ? false |
| | | : true |
| | | : true; |
| | | if (ok) { |
| | | // //加入校验18岁到60岁的 |
| | | // oldy = +value.slice(6, 10); |
| | | // oldm = +value.slice(10, 12); |
| | | // oldd = +value.slice(12, 14); |
| | | // ok = |
| | | // year - oldy < 18 || year - oldy > 60 |
| | | // ? false |
| | | // : year - oldy == 18 |
| | | // ? mouth < oldm |
| | | // ? false |
| | | // : mouth > oldm |
| | | // ? true |
| | | // : day < oldd |
| | | // ? false |
| | | // : true |
| | | // : year - oldy == 60 |
| | | // ? mouth < oldm |
| | | // ? true |
| | | // : mouth > oldm |
| | | // ? false |
| | | // : day <= oldd |
| | | // ? false |
| | | // : true |
| | | // : true; |
| | | // if (ok) { |
| | | callback(); |
| | | } else { |
| | | // callback(new Error("根据国家要求,需在18岁至60岁")); |
| | | callback(new Error("年龄不符")); |
| | | } |
| | | // } else { |
| | | // // callback(new Error("根据国家要求,需在18岁至60岁")); |
| | | // callback(new Error("年龄不符")); |
| | | // } |
| | | } |
| | | }; |
| | | const validatePassPhone = (rule, value, callback) => { |
| | |
| | | } |
| | | }; |
| | | return { |
| | | // 表格数据 |
| | | defaults: {}, |
| | | // 身份证设备数据 |
| | | cardShebei: "", |
| | | intTime: "", //自动获取身份证; |
| | | haveCardid: true, //读卡开关 |
| | | // 指纹数据 |
| | | isopen: false, //识别是否需要传指纹进去(解决异步传递后指纹DOM不存在的问题) |
| | | zhiwenImg: "", |
| | |
| | | searchShow: true, |
| | | reserveSelection: true, |
| | | selectable: (row) => { |
| | | if (row.hold !== "1" || row.securitynumber == null || row.securitynumber == '') { |
| | | if ( |
| | | row.hold !== "1" || |
| | | row.securitynumber == null || |
| | | row.securitynumber == "" |
| | | ) { |
| | | return false; |
| | | } else { |
| | | return true; |
| | |
| | | { |
| | | label: "姓名", |
| | | prop: "realName", |
| | | disabled: false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | }, |
| | | beforeCreate() { |
| | | }, |
| | | beforeCreate() {}, |
| | | created() { |
| | | // console.log(this.userInfo, 9999); |
| | | if (this.userInfo.role_name == "办证管理员") { |
| | |
| | | this.search["hold"] = "1"; |
| | | } |
| | | |
| | | if (this.userInfo.account == "南昌市保安服务总公司" || this.userInfo.account == "押运分公司") { |
| | | if ( |
| | | this.userInfo.account == "南昌市保安服务总公司" || |
| | | this.userInfo.account == "押运分公司" |
| | | ) { |
| | | this.option.column.push({ |
| | | label: "持枪证编号", |
| | | prop: "guncode", |
| | | width: 90, |
| | | addDisplay: false, |
| | | editDisplay: false |
| | | }) |
| | | editDisplay: false, |
| | | }); |
| | | |
| | | this.option.group[1].column.push({ |
| | | label: "持枪证编号", |
| | | prop: "guncode", |
| | | }) |
| | | }); |
| | | |
| | | this.excelOption1.column[0].action = "/api/blade-user/import-securityYy?deptId=" + this.userInfo.dept_id |
| | | |
| | | this.excelOption1.column[0].action = |
| | | "/api/blade-user/import-securityYy?deptId=" + this.userInfo.dept_id; |
| | | } |
| | | |
| | | }, |
| | | mounted() { |
| | | // this.option.column[0].hide = true |
| | |
| | | done(); |
| | | }, |
| | | handleTemplate1() { |
| | | if (this.userInfo.account == "南昌市保安服务总公司" || this.userInfo.account == "押运分公司") { |
| | | if ( |
| | | this.userInfo.account == "南昌市保安服务总公司" || |
| | | this.userInfo.account == "押运分公司" |
| | | ) { |
| | | window.open(`/api/blade-user/export-template-securityYy`); |
| | | return |
| | | return; |
| | | } |
| | | window.open(`/api/blade-user/export-template-security`); |
| | | }, |
| | |
| | | const data = { |
| | | ids: str, |
| | | createUser: this.userInfo.user_id, |
| | | type: 1 |
| | | type: 1, |
| | | }; |
| | | return securityApply(data); |
| | | }) |
| | |
| | | const data = { |
| | | ids: str, |
| | | createUser: this.userInfo.user_id, |
| | | type: 2 |
| | | type: 2, |
| | | }; |
| | | return securityApply(data); |
| | | }) |
| | |
| | | } |
| | | //序列号url形式,用&拼接 |
| | | data = Qs.stringify(data); |
| | | window.open(`/api/blade-user/export-security-info?${this.website.tokenHeader}=${getToken()}&`+data); |
| | | window.open( |
| | | `/api/blade-user/export-security-info?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` + data |
| | | ); |
| | | }); |
| | | }, |
| | | rowSave(row, done, loading) { |
| | |
| | | "离职原因", |
| | | { |
| | | confirmButtonText: "确定", |
| | | callback: (action) => { |
| | | }, |
| | | callback: (action) => {}, |
| | | } |
| | | ); |
| | | }, |
| | |
| | | }); |
| | | this.refreshChange(); |
| | | }) |
| | | .catch(() => { |
| | | }); |
| | | .catch(() => {}); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定注销当前用户?", { |
| | |
| | | }=${getToken()}` |
| | | ); |
| | | }, |
| | | openClosegroup(val) { |
| | | let ql = /realName|nation|cardid|registered|sex/; |
| | | for (let k in this.option.group) { |
| | | for (let i in this.option.group[k].column) { |
| | | if (ql.test(this.option.group[k].column[i].prop)) { |
| | | this.option.group[k].column[i]["disabled"] = val; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | setIntervals: function () { |
| | | let that = this; |
| | | this.intTime = setInterval(function () { |
| | | if (!that.haveCardid) { |
| | | //定时读卡 |
| | | let result = CertCtl.readCert(); |
| | | if (result == "") { |
| | | console.log("未启动读卡插件!"); |
| | | } else { |
| | | var resultObj = eval("(" + result + ")"); |
| | | //resultFlag为0代表读卡成功 |
| | | if (resultObj.resultFlag == "0") { |
| | | //回显相关数据 |
| | | // console.log(resultObj, 123); |
| | | const data = resultObj.resultContent; |
| | | that.haveCardid = true; |
| | | // console.log(data, 789); |
| | | // that.defaults.cardid.display = true; |
| | | // that.defaults.cardid.value = "123"; |
| | | // console.log(that.defaults); |
| | | that.form.realName = data.partyName; |
| | | that.form.cardid = data.certNumber; |
| | | that.form.nation = data.nation; |
| | | that.form.registered = data.certAddress; |
| | | that.form.sex = data.certType; |
| | | //禁止编辑 |
| | | that.openClosegroup(true); |
| | | //赋值数据 |
| | | // that.obj = { |
| | | // name: data.partyName, |
| | | // national: data.nation, |
| | | // certAddress: data.certAddress, |
| | | // sex: |
| | | // data.certType == 0 |
| | | // ? "未知" |
| | | // : data.certType == 1 |
| | | // ? "男" |
| | | // : data.certType == 2 |
| | | // ? "女" |
| | | // : data.certType == 9 |
| | | // ? "未说明" |
| | | // : "未能识别", |
| | | // imgs: "data:image/bmp;base64," + data.identityPic, |
| | | // yxqend: |
| | | // data.expDate.slice(0, 4) + |
| | | // "-" + |
| | | // data.expDate.slice(4, 6) + |
| | | // "-" + |
| | | // data.expDate.slice(6, 8), |
| | | // yxqstart: |
| | | // data.effDate.slice(0, 4) + |
| | | // "-" + |
| | | // data.effDate.slice(4, 6) + |
| | | // "-" + |
| | | // data.effDate.slice(6, 8), |
| | | // birthday: |
| | | // data.bornDay.slice(0, 4) + |
| | | // "-" + |
| | | // data.bornDay.slice(4, 6) + |
| | | // "-" + |
| | | // data.bornDay.slice(6, 8), |
| | | // id: data.certNumber, |
| | | // qfjg: data.certOrg, |
| | | // }; |
| | | // that.$store.commit("setCardInfor", that.obj); |
| | | // that.$store.commit("setCardidState", true); |
| | | } else if (resultObj.resultFlag == "-1") { |
| | | if (resultObj.errorMsg == "端口打开失败") { |
| | | console.log("读卡器未连接"); |
| | | } else { |
| | | // console.log(resultObj.errorMsg); |
| | | //无卡片提醒 |
| | | } |
| | | } else if (resultObj.resultFlag == "-2") { |
| | | console.log(resultObj.errorMsg); |
| | | } |
| | | } |
| | | } else { |
| | | // console.log("停止获取"); |
| | | } |
| | | }, 2000); |
| | | }, |
| | | beginSFZ() { |
| | | try { |
| | | // 开始连接设备 |
| | | //调用对应的连接方法,并赋值给result |
| | | this.cardShebei = CertCtl.connect(); |
| | | //如果result为空,代表读卡插件未启动 |
| | | if (this.cardShebei == "") { |
| | | console.log("未启动读卡插件!"); |
| | | } else { |
| | | //result页面回显 |
| | | console.log("ok!"); |
| | | } |
| | | } catch (e) {} |
| | | this.haveCardid = false; |
| | | if (this.intTime) { |
| | | clearInterval(this.intTime); |
| | | this.setIntervals(); |
| | | } else { |
| | | this.setIntervals(); |
| | | } |
| | | }, |
| | | closeSFZ() { |
| | | if (this.intTime) { |
| | | clearInterval(this.intTime); |
| | | // this.setIntervals(); |
| | | } else { |
| | | // this.setIntervals(); |
| | | } |
| | | this.haveCardid = true; |
| | | this.cardShebei = ""; |
| | | //可以编辑 |
| | | this.openClosegroup(false); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | var that = this; |
| | | // console.log(type, 123); |
| | | this.beginSFZ(); |
| | | if (["edit", "view"].includes(type)) { |
| | | getUser(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | |
| | | this.initFlag = true; |
| | | done(); |
| | | }, |
| | | beforeClose(done, type) { |
| | | this.closeSFZ(); |
| | | done(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if (roleAlias == "保安公司管理员" || roleAlias == "保安" || roleAlias == "分公司管理员") { |
| | | if ( |
| | | roleAlias == "保安公司管理员" || |
| | | roleAlias == "保安" || |
| | | roleAlias == "分公司管理员" |
| | | ) { |
| | | //去除保安公司查询 |
| | | const column = that.findObject(that.option.column, "deptId"); |
| | | column.search = false; |
| | |
| | | ); |
| | | importColumn.action = |
| | | "/api/blade-user/import-security?deptId=" + this.deptIds; |
| | | } else if (roleAlias == "公安管理员" || roleAlias == "administrator") { |
| | | } else if ( |
| | | roleAlias == "公安管理员" || |
| | | roleAlias == "administrator" |
| | | ) { |
| | | params["jurisdiction"] = that.userInfo.jurisdiction; |
| | | var columnDept = that.findObject(that.option.column, "deptId"); |
| | | columnDept.dicUrl = |
| | |
| | | that.userInfo.jurisdiction; |
| | | |
| | | //审查状态查询开启 |
| | | var columnExaminationType = that.findObject(that.option.column, "examinationType"); |
| | | var columnExaminationType = that.findObject( |
| | | that.option.column, |
| | | "examinationType" |
| | | ); |
| | | columnExaminationType.search = true; |
| | | columnExaminationType.hide = false; |
| | | } else if (roleAlias == "培训公司管理员") { |
| | |
| | | ColumnDeptUpdate1.dicUrl = |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697"; |
| | | } |
| | | |
| | | |
| | | let values = { |
| | | ...params, |