From 0c35e05ca9c90883e5073ea35232ea100f866a8f Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 19 Aug 2021 15:08:50 +0800
Subject: [PATCH] 保安公司管理
---
src/views/securityGuard/securityGuard.vue | 358 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 263 insertions(+), 95 deletions(-)
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 4c85429..3881882 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -1,5 +1,5 @@
<template>
- <el-row>
+ <el-row class="securityGuard">
<el-col :span="0" style="display: none">
<div class="box">
<el-scrollbar>
@@ -38,6 +38,14 @@
@on-load="onLoad"
>
<template slot="menuLeft">
+ <el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport1"
+ >批量导入
+ </el-button>
<el-button
type="danger"
style="display: none"
@@ -208,6 +216,24 @@
</template>
</avue-crud>
</el-dialog>
+ <el-dialog
+ title="保安员导入"
+ append-to-body
+ :visible.sync="excelBox1"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption1"
+ v-model="excelForm1"
+ :upload-after="uploadAfter1"
+ >
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate1">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog>
</basic-container>
</el-col>
</el-row>
@@ -221,19 +247,21 @@
update,
updatePlatform,
add,
+ securitySave,
grant,
resetPassword,
getUserPractitionersInfo,
saveOrUpdateUserPractitionersInfo,
} from "@/api/system/user";
import { getList } from "@/api/securityGuard/securityGuard";
-import { getDeptTree, getDeptLazyTree } from "@/api/system/dept";
-import { getRoleTree } from "@/api/system/role";
+import { getDeptLazyTree } from "@/api/system/dept";
+import { getRoleTree, getRoleDetail } from "@/api/system/role";
import { getPostList } from "@/api/system/post";
import { mapGetters } from "vuex";
import website from "@/config/website";
import { getToken } from "@/util/auth";
import { securityFormPageColumn } from "./data";
+import { mapState } from "vuex";
export default {
data() {
@@ -254,6 +282,35 @@
}
};
return {
+ securityid: "",
+ excelBox1: false,
+ excelForm1: {},
+ excelOption1: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "文件上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "文件上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data",
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/blade-user/import-user",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
form: {},
search: {},
roleBox: false,
@@ -269,6 +326,8 @@
currentPage: 1,
total: 0,
},
+ roleId: "1412226235153731586",
+ deptId: "1413470343230877697",
platformPage: {
pageSize: 10,
currentPage: 1,
@@ -318,12 +377,14 @@
tip: false,
searchShow: true,
searchMenuSpan: 6,
- border: false,
+ border: true, //liu
stripe: true,
+ align: "center",
index: true,
delBtnText: "注销",
selection: true,
viewBtn: true,
+ defaultExpandAll: true,
//dialogType: 'drawer',
dialogClickModal: false,
column: securityFormPageColumn,
@@ -335,21 +396,21 @@
icon: "el-icon-user-solid",
column: [
{
- label: "所属组织机构",
+ label: "所属保安公司",
prop: "deptId",
type: "tree",
- // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
- dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
+ dicUrl:
+ "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+ // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
props: {
label: "title",
value: "id",
},
// disabled: true,
- span: 24,
rules: [
{
required: true,
- message: "请选择组织机构",
+ message: "请选择保安公司",
trigger: "blur",
},
],
@@ -387,12 +448,12 @@
],
},
{
- label: "用户姓名",
+ label: "姓名",
prop: "realName",
rules: [
{
required: true,
- message: "请输入用户姓名",
+ message: "请输入姓名",
trigger: "blur",
},
{
@@ -403,15 +464,35 @@
],
},
{
- label: "用户编号",
- prop: "code",
- },
- {
- label: "用户昵称",
+ label: "昵称",
prop: "name",
},
{
- label: "所属行政区",
+ label: "个人照片",
+ type: "upload",
+ listType: "picture-img",
+ propsHttp: {
+ res: "data",
+ url: "link",
+ },
+ canvasOption: {
+ text: " ",
+ ratio: 0.1,
+ },
+ action: "/api/blade-resource/oss/endpoint/put-file",
+ tip: "只能上传jpg/png个人头像,且不超过500kb",
+ span: 12,
+ row: true,
+ prop: "myPicture",
+ },
+
+ // {
+ // label: "编号",
+ // prop: "code",
+ // },
+
+ {
+ label: "所属辖区",
prop: "jurisdiction",
// multiple: true,
type: "tree",
@@ -424,48 +505,70 @@
slot: true,
rules: [
{
- required: true,
- message: "请选择所属行政区",
- trigger: "click",
- },
- ],
- },
- {
- label: "所属角色",
- prop: "roleId",
- multiple: true,
- type: "tree",
- dicData: [],
- props: {
- label: "title",
- },
- checkStrictly: true,
- slot: true,
- rules: [
- {
- required: true,
- message: "请选择所属角色",
- trigger: "click",
- },
- ],
- },
- {
- label: "所属岗位",
- prop: "postId",
- type: "tree",
- multiple: true,
- dicData: [],
- props: {
- label: "postName",
- value: "id",
- },
- rules: [
- {
required: false,
- message: "请选择所属岗位",
+ message: "请选择所属辖区",
trigger: "click",
},
],
+ },
+ // {
+ // label: "所属角色",
+ // prop: "roleId",
+ // multiple: true,
+ // type: "tree",
+ // dicData: [],
+ // props: {
+ // label: "title",
+ // },
+ // checkStrictly: true,
+ // slot: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请选择所属角色",
+ // trigger: "click",
+ // },
+ // ],
+ // },
+ // {
+ // label: "所属岗位",
+ // prop: "postId",
+ // type: "tree",
+ // multiple: true,
+ // dicData: [],
+ // props: {
+ // label: "postName",
+ // value: "id",
+ // },
+ // rules: [
+ // {
+ // required: false,
+ // message: "请选择所属岗位",
+ // trigger: "click",
+ // },
+ // ],
+ // },
+ {
+ label: "是否持证",
+ prop: "hold",
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ type: "select",
+ rules: [
+ {
+ required: true,
+ message: "请选择",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "保安员证编号",
+ prop: "securitynumber",
+ hide: true,
},
{
label: "手机号码",
@@ -541,7 +644,7 @@
valueFormat: "yyyy-MM-dd",
},
{
- label: "用户性别",
+ label: "性别",
prop: "sex",
type: "select",
slot: true,
@@ -561,9 +664,11 @@
],
},
{
- label: "用户生日",
+ label: "生日",
type: "date",
prop: "birthday",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
},
],
},
@@ -575,7 +680,7 @@
{
prop: "UserPractitionersInfo",
type: "dynamic",
- border: false,
+ border: true, //liu
span: 24,
children: {
align: "left",
@@ -677,19 +782,19 @@
display: false,
},
{
- label: "用户姓名",
+ label: "姓名",
prop: "realName",
search: true,
display: false,
},
{
- label: "用户平台",
+ label: "平台",
prop: "userTypeName",
slot: true,
display: false,
},
{
- label: "用户平台",
+ label: "平台",
type: "select",
dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
props: {
@@ -704,13 +809,13 @@
rules: [
{
required: true,
- message: "请选择用户平台",
+ message: "请选择平台",
trigger: "blur",
},
],
},
{
- label: "用户拓展",
+ label: "拓展",
prop: "userExt",
type: "textarea",
minRows: 8,
@@ -816,14 +921,47 @@
});
return ids.join(",");
},
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
},
mounted() {
+ // this.option.column[0].hide = true
// 非保安单位模式默认加载管理组数据
if (!website.tenantMode) {
this.initData(website.tenantId);
}
+
+ //获取当前登录人员的角色信息
+ var roleIds = this.userInfo.role_id.split(",");
+ roleIds.forEach((roleId) => {
+ getRoleDetail(roleId).then((res) => {
+ var roleAlias = res.data.data.roleAlias;
+ if (
+ roleAlias == "保安公司管理员" ||
+ roleAlias == "保安" ||
+ roleAlias == "未持证保安"
+ ) {
+ const column = this.findObject(this.option.column, "deptId");
+ column.search = false;
+ }
+ });
+ });
},
methods: {
+ handleImport1() {
+ this.excelBox1 = true;
+ },
+ uploadAfter1(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox1 = false;
+ // this.refreshChange();
+ done();
+ },
+ handleTemplate1() {
+ window.open(`/api/examSubjectChoices/export-template`);
+ },
+
//行点击事件
rowClick(row) {
this.$router.push({
@@ -841,10 +979,10 @@
const column = this.findObject(this.option.group, "roleId");
column.dicData = res.data.data;
});
- getDeptTree(tenantId).then((res) => {
- const column = this.findObject(this.option.group, "deptId");
- column.dicData = res.data.data;
- });
+ // getDeptTree(tenantId).then((res) => {
+ // const column = this.findObject(this.option.group, "deptId");
+ // column.dicData = res.data.data;
+ // });
getPostList(tenantId).then((res) => {
const column = this.findObject(this.option.group, "postId");
column.dicData = res.data.data;
@@ -882,33 +1020,50 @@
entryTime: item.entryTime,
name: row.realName,
leaving: item.leaving,
- cardid: row.cardid,
+ securityid: row.id,
post: item.post,
responsibilities: item.responsibilities,
};
userPractitionersList.push(info);
});
}
- var IdCardNo = row.cardid;
- add(row).then(
+ const user = {
+ account: row.account,
+ address: row.address,
+ birthday: row.birthday,
+ cardid: row.cardid,
+ deptId: row.deptId,
+ education: row.education,
+ email: row.email,
+ height: row.height,
+ hold: row.hold,
+ jurisdiction: row.jurisdiction,
+ myPicture: row.myPicture,
+ name: row.name,
+ nation: row.nation,
+ nativeplace: row.nativeplace,
+ password: row.password,
+ password2: row.password2,
+ phone: row.phone,
+ politicaloutlook: row.politicaloutlook,
+ realName: row.realName,
+ registered: row.registered,
+ rtime: row.rtime,
+ securitynumber: row.securitynumber,
+ sex: row.sex,
+ };
+ const userMap = {
+ user: user,
+ userPractitionersInfo: userPractitionersList,
+ };
+ securitySave(userMap).then(
() => {
- const experience = {
- cardid: IdCardNo,
- userPractitionersInfo: userPractitionersList,
- };
- //新增从业信息
- saveOrUpdateUserPractitionersInfo(experience).then(() => {
- this.$message({
- type: "success",
- message: "操作成功!",
- });
+ this.$message({
+ type: "success",
+ message: "操作成功!",
});
this.initFlag = false;
this.onLoad(this.page);
- // this.$message({
- // type: "success",
- // message: "操作成功!",
- // });
done();
},
(error) => {
@@ -932,20 +1087,20 @@
entryTime: item.entryTime,
name: row.realName,
leaving: item.leaving,
- cardid: row.cardid,
+ securityid: row.id,
post: item.post,
responsibilities: item.responsibilities,
};
userPractitionersList.push(info);
});
}
- var IdCardNo = row.cardid;
+ var IdCardNo = row.id;
//值替换,education 放在页面会卡死
row.education = row.education1;
update(row).then(
() => {
const experience = {
- cardid: IdCardNo,
+ securityid: IdCardNo,
userPractitionersInfo: userPractitionersList,
};
//更新从业信息
@@ -957,10 +1112,6 @@
});
this.initFlag = false;
this.onLoad(this.page);
- // this.$message({
- // type: "success",
- // message: "操作成功!",
- // });
done();
},
(error) => {
@@ -970,7 +1121,7 @@
);
},
rowDel(row) {
- this.$confirm("确定将选择用户登记离职?", {
+ this.$confirm("确定将选择保安登记离职?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
@@ -1010,7 +1161,7 @@
this.$message.warning("请选择至少一条数据");
return;
}
- this.$confirm("确定将选择用户注销?", {
+ this.$confirm("确定将选择保安注销?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
@@ -1075,7 +1226,7 @@
done();
},
handleExport() {
- this.$confirm("是否导出用户数据?", "提示", {
+ this.$confirm("是否导出保安数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
@@ -1120,7 +1271,7 @@
}
var userInfo = res.data.data;
//获取用户从业信息
- getUserPractitionersInfo(userInfo.cardid).then((res1) => {
+ getUserPractitionersInfo(userInfo.id).then((res1) => {
that.form.UserPractitionersInfo = res1.data.data;
});
});
@@ -1143,8 +1294,25 @@
};
values = {
...params,
+ roleAlias: "111",
...this.query,
};
+
+ //获取当前登录人员的角色信息
+ var roleIds = this.userInfo.role_id.split(",");
+ roleIds.forEach((roleId) => {
+ getRoleDetail(roleId).then((res) => {
+ var roleAlias = res.data.data.roleAlias;
+ if (roleAlias == "保安公司管理员") {
+ values["deptId"] = this.userInfo.dept_id;
+ }
+ });
+ });
+
+ if (this.userInfo.role_id == "1414840172333842433") {
+ console.log("是公安add jurisdiction");
+ values["jurisdiction"] = this.userInfo.jurisdiction;
+ }
this.loading = true;
getList(page.currentPage, page.pageSize, values, this.treeDeptId).then(
(res) => {
--
Gitblit v1.9.3