From 47a0f58d4334939b08a55b9356f94de23c8b1367 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 15 Jun 2022 14:56:26 +0800
Subject: [PATCH] 新增保安员导入
---
src/views/securityGuard/securityGuard.vue | 562 ++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 442 insertions(+), 120 deletions(-)
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index d535f26..4f34dd4 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -155,6 +155,15 @@
@click="handleExport"
>导出
</el-button>
+ <el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ v-if="permission.securityGuard_import_admin"
+ @click="handleImport3"
+ >保安员批量导入-制证
+ </el-button>
</template>
<template slot-scope="{ type, size, row }" slot="menu">
@@ -173,16 +182,25 @@
@click.stop="rowClick(row)"
>查看
</el-button>
- <br />
+ <br v-if="permission.securityGuard_view" />
+ <!-- <el-button
+ icon="el-icon-scissors"
+ :size="size"
+ :type="type"
+ v-if="permission.securityGuard_edit && row.status != 2"
+ @click="$refs.crud.rowEdit(row, index)"
+ >编辑
+ </el-button>
+ <br v-if="permission.securityGuard_edit && row.status != 2" /> -->
<el-button
icon="el-icon-scissors"
:size="size"
:type="type"
- v-if="permission.securityGuard_delete && row.status != 2"
- @click="$refs.crud.rowEdit(row, index)"
- >编辑
+ @click="accountUpdate(row)"
+ v-if="permission.securityGuard_edit && row.status != 2"
+ >账号修改
</el-button>
- <br v-if="permission.securityGuard_delete && row.status != 2" />
+ <br v-if="permission.securityGuard_edit && row.status != 2" />
<el-button
icon="el-icon-close"
:size="size"
@@ -217,6 +235,15 @@
v-if="permission.securityGuard_check"
@click.stop="rowCheck(row)"
>异常
+ </el-button>
+ <br v-if="permission.securityGuard_check" />
+ <el-button
+ icon="el-icon-money"
+ :size="size"
+ :type="type"
+ v-if="permission.securityGuard_check_apply"
+ @click.stop="rowCheckApply(row)"
+ >证件核实申请
</el-button>
<!-- <br />
<el-button
@@ -307,7 +334,7 @@
</template>
<!-- 自定义新增和编辑中的指纹信息 -->
- <!-- src="http://223.82.109.183:2081/zhba/upload/picture/85004574ae23472da37350b918960206.png" -->
+ <!-- src="http://61.131.136.25:2081/zhba/upload/picture/85004574ae23472da37350b918960206.png" -->
<template slot-scope="{ type, disabled }" slot="fingerprintForm">
<div class="zhiwenMain">
<!-- <img class="zhiwenImgs" :src="zhiwenImg" alt="" />
@@ -330,6 +357,26 @@
</div>
</template>
</avue-crud>
+ <el-dialog
+ title="账号修改"
+ :visible.sync="accountVisible"
+ width="width"
+ :modal="true"
+ :modal-append-to-body="true"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :before-close="dialogBeforeClose"
+ >
+ <avue-form
+ ref="formAccount"
+ :option="optionAccount"
+ v-model="formAccount"
+ @reset-change="emptytChangeAccount"
+ @submit="submit"
+ >
+ </avue-form>
+ </el-dialog>
<el-dialog
title="用户角色配置"
append-to-body
@@ -421,6 +468,24 @@
</avue-form>
</el-dialog>
<el-dialog
+ title="保安员导入-制证"
+ append-to-body
+ :visible.sync="excelBox3"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption3"
+ v-model="excelForm3"
+ :upload-after="uploadAfter3"
+ >
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate3">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog>
+ <el-dialog
title="个人照片批量上传"
append-to-body
:visible.sync="excelBox2"
@@ -432,6 +497,28 @@
:upload-after="uploadAfter2"
>
</avue-form>
+ </el-dialog>
+ <el-dialog
+ title="证件核实申请"
+ :visible.sync="securityCheckApplyvisible"
+ width="width"
+ :modal="true"
+ :modal-append-to-body="true"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :before-close="dialogBeforeClose"
+ >
+ <div>
+ <avue-form
+ ref="formSecurityCheckApply"
+ :option="optionSecurityCheckApply"
+ v-model="formSecurityCheckApply"
+ @reset-change="emptytChange"
+ @submit="submitSecurityCheckApply"
+ >
+ </avue-form>
+ </div>
</el-dialog>
<div style="position: fixed; top: 9999px; width: 100%; height: 100%">
<div class="certificate_box" id="certificateDom">
@@ -494,7 +581,7 @@
>
<!-- <div style="font-size: 14px">连接身份证设备失败</div> -->
<!-- v-show="haveSEL == 'noDrive'" -->
- <!-- href="http://223.82.109.183:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar" -->
+ <!-- href="http://61.131.136.25:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar" -->
<!-- <a href="javascript;">未安装身份证驱动,点击下载</a> -->
</div>
</el-row>
@@ -510,6 +597,8 @@
update,
updatePlatform,
securitySave,
+ updateAccount,
+ securitySaves,
grant,
resetPassword,
getUserPractitionersInfo,
@@ -518,6 +607,7 @@
checkAccountByUser
} from "@/api/system/user";
import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
+import { add } from "@/api/securityapplyRecord/securityapplyRecord";
import { getList } from "@/api/securityGuard/securityGuard";
import { getDeptLazyTree } from "@/api/system/dept";
import { getInformationDetails } from "@/api/securityUnit/securityUnit";
@@ -672,44 +762,6 @@
} else {
callback(new Error("身份证错误"));
}
- // console.log(oldy, oldm, oldd, year - oldy, mouth, day);
- // var test =
- // /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
- // 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) {
- // callback();
- // // } else {
- // // // callback(new Error("根据国家要求,需在18岁至60岁"));
- // // callback(new Error("年龄不符"));
- // }
-
- // }
};
const validatePassPhone = (rule, value, callback) => {
var test = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$/g;
@@ -719,12 +771,7 @@
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 {
startTimecc: null,
sort: "",
@@ -755,6 +802,7 @@
certificateYear: null,
certificateMonth: null,
certificateFlag: false,
+ accountVisible:false,
certificateObj: {
realName: "",
securitynumber: "",
@@ -764,7 +812,9 @@
securityid: "",
excelBox1: false,
excelBox2: false,
+ excelBox3: false,
isSecurity: true,
+ securityCheckApplyvisible: false,
excelForm1: {},
excelOption1: {
submitBtn: false,
@@ -791,6 +841,32 @@
}
]
},
+ excelForm3: {},
+ excelOption3: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "文件上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "文件上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data"
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/securityPaper/import-security-paper"
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24
+ }
+ ]
+ },
excelForm2: {},
excelOption2: {
submitBtn: false,
@@ -806,8 +882,8 @@
propsHttp: {
res: "data"
},
- tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名",
- action: "/api/blade-resource/oss/endpoint/put-file-zip"
+ tip: "请上传 zip 压缩文件,照片文件名以用户编号命名",
+ action: "/api/blade-resource/oss/endpoint/put-file-zips"
}
]
},
@@ -876,6 +952,131 @@
},
choiceList: [],
deptIdss: "",
+ optionSecurityCheckApply: {
+ height: "auto",
+ calcHeight: 30,
+ dialogWidth: 1000,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ stripe: true,
+ viewBtn: false,
+ addBtn: false,
+ editBtn: false,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 230,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "姓名",
+ prop: "realName",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入姓名",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "保安证编号",
+ prop: "number",
+ labelWidth: 110,
+ disabled: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入保安证编号",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "保安员证图片",
+ prop: "url",
+ labelWidth: 110,
+ type: "upload",
+ span: 24,
+ listType: "picture-img",
+ tip: "上传jpg/png文件,图片不超过1M",
+ propsHttp: {
+ res: "data",
+ url: "url"
+ },
+ canvasOption: {
+ text: " ",
+ ratio: 1.0
+ },
+ action: "/api/blade-resource/oss/endpoint/put-files",
+ rules: [
+ {
+ required: true,
+ message: "请上传保安员证图片",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "申请理由",
+ labelWidth: 110,
+ span: 24,
+ type: "textarea",
+ prop: "applyReason"
+ }
+ ]
+ },
+ optionAccount: {
+ height: "auto",
+ calcHeight: 30,
+ dialogWidth: 1000,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ stripe: true,
+ viewBtn: false,
+ addBtn: false,
+ editBtn: false,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 230,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "原账号",
+ prop: "oldAccount",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入原账号",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "新账号",
+ prop: "account",
+ labelWidth: 110,
+ rules: [
+ {
+ required: true,
+ message: "请输入新账号",
+ trigger: "blur"
+ }
+ ]
+ }
+ ]
+ },
+ formAccount: {},
+ formSecurityCheckApply: {},
option: {
searchIndex: 6, //收缩展示数量
searchIcon: true, //搜索是否收缩
@@ -899,7 +1100,7 @@
searchMenuSpan: 6,
stripe: true,
border: true,
- delBtn: true,
+ // delBtn: true,
align: "center",
index: true,
// delBtnText: "注销",
@@ -913,8 +1114,6 @@
...this.$store.state.control.clearOtherBut,
// addBtn: false,
editBtn: false,
- viewBtn: false,
- delBtn: false,
group: [
{
label: "基础信息",
@@ -1099,11 +1298,6 @@
{
label: "是否持证",
prop: "hold",
- // dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
- // props: {
- // label: "dictValue",
- // value: "dictKey",
- // },
type: "select",
dicData: [
{
@@ -1140,24 +1334,24 @@
}
]
},
- {
- 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: "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: "nation"
@@ -1437,8 +1631,8 @@
this.option.group,
"securitynumber"
);
- var emailcolumn = this.findObject(this.option.group, "email");
- // console.log(val,1234);
+ // var emailcolumn = this.findObject(this.option.group, "email");
+ console.log(val, 1234);
if (val == 1) {
securitynumbercolumn.display = true;
securitynumbercolumn.rules = [
@@ -1448,7 +1642,7 @@
trigger: "blur"
}
];
- emailcolumn.display = true;
+ // emailcolumn.display = true;
} else {
securitynumbercolumn.display = false;
securitynumbercolumn.rules = [
@@ -1458,7 +1652,7 @@
trigger: "blur"
}
];
- emailcolumn.display = false;
+ // emailcolumn.display = false;
}
},
immediate: true
@@ -1546,7 +1740,7 @@
return {
addBtn: this.vaildData(this.permission.securityGuard_add, false),
viewBtn: this.vaildData(null, false),
- delBtn: this.vaildData(this.permission.securityGuard_delete, false),
+ delBtn: this.vaildData(null, false),
editBtn: this.vaildData(this.permission.securityGuard_edit, false)
};
},
@@ -1592,7 +1786,11 @@
column.dicUrl =
"/api/blade-system/dept/security_lazy-tree?deptId=" +
this.userInfo.dept_id;
- } else if (roleName == "公安管理员" || roleName == "administrator" || this.userInfo.role_name == "民警") {
+ } else if (
+ roleName == "公安管理员" ||
+ roleName == "administrator" ||
+ this.userInfo.role_name == "民警"
+ ) {
var columnDept = that.findObject(that.option.column, "deptId");
columnDept.dicUrl =
"/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -1648,6 +1846,36 @@
// this.olondSFZ(); //检查身份证设备是否存在
},
methods: {
+ //账号修改
+ accountUpdate(row){
+ this.formAccount = {
+ id: row.id,
+ oldAccount: row.account,
+ account:"",
+ }
+ this.accountVisible = true;
+
+ },
+ //账号修改提交
+ submit(row, done, loading) {
+ var that = this;
+ updateAccount(row).then(
+ () => {
+ that.$refs.formAccount.resetFields();
+ that.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ that.accountVisible = false;
+ that.onLoad(that.page);
+ done();
+ },
+ error => {
+ window.console.log(error);
+ done();
+ }
+ );
+ },
checkDom(name, fn) {
// 声明定时器
let that = this;
@@ -1676,6 +1904,7 @@
// 首次执行
checkDom();
},
+
openccc() {
console.log(this.zhiwenImg);
// console.log(this.zhiwenChart);
@@ -1854,6 +2083,15 @@
handleImport1() {
this.excelBox1 = true;
},
+ handleImport3() {
+ this.excelBox3 = true;
+ },
+ uploadAfter3(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox3 = false;
+ this.refreshChange();
+ done();
+ },
uploadAfter1(res, done, loading, column) {
window.console.log(column);
this.excelBox1 = false;
@@ -1877,6 +2115,13 @@
this.website.tokenHeader
}=${getToken()}`
);
+ },
+ handleTemplate3() {
+ window.open(
+ `/api/securityPaper/export-template-security-paper?${
+ this.website.tokenHeader
+ }=${getToken()}`
+ );
},
handleImport2() {
this.excelBox2 = true;
@@ -2091,6 +2336,33 @@
});
});
},
+ // 证件核实申请
+ rowCheckApply(row) {
+ this.formSecurityCheckApply = {
+ id: null,
+ realName: row.realName,
+ userId: row.id
+ };
+ this.securityCheckApplyvisible = true;
+ },
+ //证件核实申请提交
+ submitSecurityCheckApply(row, done, loading) {
+ var that = this;
+ row["createUser"] = this.userInfo.Id;
+ add(row).then(() => {
+ that.$refs.formSecurityCheckApply.resetFields();
+ this.$message({
+ type: "success",
+ message: `操作成功`
+ });
+ this.securityCheckApplyvisible = false;
+ this.onLoad(this.page);
+ done();
+ });
+ error => {
+ window.console.log(error);
+ };
+ },
//保安员信息导出
handleExportSecurityInfo() {
this.$confirm("是否导出保安员信息数据?", "提示", {
@@ -2098,12 +2370,6 @@
cancelButtonText: "取消",
type: "warning"
}).then(() => {
- //获取查询条件
- // const { releaseTimeRange } = this.search;
- // if (releaseTimeRange) {
- // this.search["startTime"] = releaseTimeRange[0];
- // this.search["endTime"] = releaseTimeRange[1];
- // }
var data = {
cardid: this.search.cardid,
deptId: this.search.deptId,
@@ -2132,7 +2398,10 @@
//如果是培训公司管理员
data["trainingUnitId"] = this.userInfo.Id;
}
- if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
+ if (
+ this.userInfo.role_name == "公安管理员" ||
+ this.userInfo.role_name == "民警"
+ ) {
//如果是公安管理员
data["jurisdiction"] = this.userInfo.jurisdiction;
}
@@ -2203,20 +2472,47 @@
}
};
- securitySave(userMap).then(
- () => {
+ securitySaves(userMap).then(
+ res => {
+ // console.log(res.data,111111111111111111);
this.initFlag = false;
- this.$alert("账号为身份证号码,密码为身份证后六位", "温馨提示", {
- confirmButtonText: "确定",
- callback: action => {
- this.$message({
- type: "success",
- message: `操作成功`
- });
- this.onLoad(this.page);
- done();
- }
- });
+ if (res.data.code == 200) {
+ // this.$alert("新增成功,密码为身份证后六位", "温馨提示", {
+ // confirmButtonText: "确定",
+ // callback: action => {
+ // this.$message({
+ // type: "success",
+ // message: `操作成功`
+ // });
+ // this.onLoad(this.page);
+ // done();
+ // }
+ // });
+ this.$message({
+ type: "success",
+ message: `操作成功`
+ });
+ this.onLoad(this.page);
+ done();
+ }
+ //保安员证编号不匹配的情况
+ if (res.data.code == 201) {
+ this.$alert(
+ "用户新增成功!,密码为身份证后六位!注:当前保安证编号不匹配,请核实!",
+ "温馨提示",
+ {
+ confirmButtonText: "确定",
+ callback: action => {
+ this.$message({
+ type: "success",
+ message: `操作成功`
+ });
+ this.onLoad(this.page);
+ done();
+ }
+ }
+ );
+ }
},
error => {
window.console.log(error);
@@ -2244,13 +2540,32 @@
row["cell"] = this.nowCell;
}
update(row).then(
- () => {
+ res => {
this.initFlag = false;
this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
+ if (res.data.code == 200) {
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ }
+ if (res.data.code == 201) {
+ this.$alert(
+ "修改成功!注:当前保安证编号不匹配,请核实!",
+ "温馨提示",
+ {
+ confirmButtonText: "确定",
+ callback: action => {
+ this.$message({
+ type: "success",
+ message: `操作成功`
+ });
+ this.onLoad(this.page);
+ done();
+ }
+ }
+ );
+ }
done();
},
error => {
@@ -2455,7 +2770,7 @@
SFZopens() {
if (this.haveSEL == "noDrive") {
let url =
- "http://223.82.109.183:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar";
+ "http://61.131.136.25:2081/zhba/upload/20211201/64d8b76f3aecae93e18d015bbca89aba.rar";
window.open(url, "_self");
} else if (this.haveSEL == "noEquipment") {
this.radio = true;
@@ -2655,7 +2970,6 @@
},
//排序
sortChange(value) {
- // console.log(value, 51151515);
if (value.order == "ascending") {
this.sort = "asc";
}
@@ -2731,8 +3045,8 @@
"/api/blade-user/import-security?deptId=" + this.deptIds;
} else if (
roleAlias == "公安管理员" ||
- roleAlias == "administrator"
- || this.userInfo.role_name == "民警"
+ roleAlias == "administrator" ||
+ this.userInfo.role_name == "民警"
) {
params["jurisdiction"] = that.userInfo.jurisdiction;
var ColumnDeptUpdate = that.findObject(that.option.group, "deptId");
@@ -2740,13 +3054,21 @@
"/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
that.userInfo.jurisdiction;
- //审查状态查询开启
- var columnExaminationType = that.findObject(
- that.option.column,
- "examinationType"
+ //导入action 修改
+ const importColumn = that.findObject(
+ that.excelOption1.column,
+ "excelFile"
);
- columnExaminationType.search = true;
- columnExaminationType.hide = false;
+ importColumn.action =
+ "/api/blade-user/import-security?deptId=" + this.deptIds;
+
+ //审查状态查询开启
+ // var columnExaminationType = that.findObject(
+ // that.option.column,
+ // "examinationType"
+ // );
+ // columnExaminationType.search = true;
+ // columnExaminationType.hide = false;
} else {
var ColumnDeptUpdate1 = that.findObject(
that.option.group,
--
Gitblit v1.9.3