From 96cf0b3e2d552a10ed090e0f07dc5d219eb4f68c Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 08 Jul 2021 23:45:58 +0800
Subject: [PATCH] 保安员入职登记实现
---
src/views/securityGuard/securityGuard.vue | 469 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 271 insertions(+), 198 deletions(-)
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 187d854..9a23823 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -30,7 +30,7 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad">
- <template slot="menuLeft">
+ <!-- <template slot="menuLeft">
<el-button type="danger"
size="small"
plain
@@ -38,7 +38,7 @@
v-if="permission.user_delete"
@click="handleDelete">删 除
</el-button>
- </template>
+ </template> -->
<template slot-scope="{row}"
slot="tenantName">
<el-tag>{{row.tenantName}}</el-tag>
@@ -55,10 +55,10 @@
slot="userTypeName">
<el-tag>{{row.userTypeName}}</el-tag>
</template>
- <template slot-scope="{ row }" slot="online_status">
+ <template slot-scope="{ row }" slot="status">
<el-tag
>{{
- row.online_status == "0" ? "离线" : row.online_status == "1" ? "在线" : "离线"
+ row.status == "0" ? "已离职" : row.status == "1" ? "在职" : "已离职"
}}
</el-tag>
</template>
@@ -120,15 +120,14 @@
import {
getUser,
getUserPlatform,
- remove,
update,
updatePlatform,
add,
grant,
- resetPassword
+ getUserPractitionersInfo
} from "@/api/system/user";
import {getList} from "@/api/securityGuard/securityGuard";
- import {getDeptTree, getDeptLazyTree} from "@/api/system/dept";
+ import {getDeptTree} from "@/api/system/dept";
import {getRoleTree} from "@/api/system/role";
import {getPostList} from "@/api/system/post";
import {mapGetters} from "vuex";
@@ -173,30 +172,6 @@
roleTreeObj: [],
treeDeptId: '',
treeData: [],
- treeOption: {
- nodeKey: 'id',
- lazy: true,
- treeLoad: function (node, resolve) {
- const parentId = (node.level === 0) ? 0 : node.data.id;
- getDeptLazyTree(parentId).then(res => {
- resolve(res.data.data.map(item => {
- return {
- ...item,
- leaf: !item.hasChildren
- }
- }))
- });
- },
- addBtn: false,
- menu: false,
- size: 'small',
- props: {
- labelText: '标题',
- label: 'title',
- value: 'value',
- children: 'children'
- }
- },
option: {
height: 'auto',
calcHeight: 54,
@@ -208,17 +183,13 @@
index: true,
selection: true,
viewBtn: true,
- menuWidth:350,
+ delBtnText:'离职登记',
+ editBtnText:'修改',
+ menuWidth:200,
//dialogType: 'drawer',
dialogClickModal: false,
column: [
- {
- label: "登录账号",
- prop: "account",
- searchSpan:4,
- search: true,
- display: false
- },
+
{
label: "用户姓名",
@@ -234,11 +205,15 @@
slot:true,
display: false
},
+
{
label: "籍贯",
prop: "nativePlace",
- search: true,
- searchSpan:4,
+ display: false
+ },
+ {
+ label: "民族",
+ prop: "nation",
display: false
},
{
@@ -250,17 +225,20 @@
display: false
},
{
- label: "所属部门",
- prop: "deptName",
- slot: true,
+ label: "学历",
+ prop: "education",
display: false,
- width:260
- },
- {
- label: "在职状态",
- prop: "online_status",
- slot: true,
- display: false
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+ props: {
+ label: "dictValue",
+ value: "dictKey"
+ },
+ type:"select",
+ rules: [{
+ required: true,
+ message: "请选择学历",
+ trigger: "blur"
+ }],
},
{
label: "联系电话",
@@ -270,23 +248,69 @@
{
label: "邮箱",
prop: "email",
+ display: false,
+ width:150
+ },
+ {
+ label: "入职时间",
+ prop: "rtime",
display: false
},
-
{
- label: "创建时间",
- prop: "createTime",
+ label: "所属部门",
+ prop: "deptName",
+ slot: true,
+ searchSpan:4,
+ display: false,
+ search:true,
+ width:260
+ },
+ {
+ label: "岗位",
+ prop: "postName",
+ slot: true,
display: false
+ },
+ {
+ label: "入职时间",
+ prop: "rtime",
+ type: "datetime",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ searchRange: true,
+ searchSpan: 6,
+ hide: true,
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入时间",
+ trigger: "blur"
+ }
+ ]
+ },
+
+ {
+ label: "在职状态",
+ prop: "status",
+ slot: true,
+ display: false,
+ searchSpan:3,
+ search:true
}
],
group: [
{
label: '基础信息',
prop: 'baseInfo',
+ labelWidth:"110",
icon: 'el-icon-user-solid',
column: [
{
- label: "所属客户",
+ label: "所属保安单位",
prop: "tenantId",
type: "tree",
dicUrl: "/api/blade-system/tenant/select",
@@ -294,59 +318,13 @@
label: "tenantName",
value: "tenantId"
},
- hide: !website.tenantMode,
- addDisplay: website.tenantMode,
- editDisplay: website.tenantMode,
- viewDisplay: website.tenantMode,
- rules: [{
- required: true,
- message: "请输入所属租户",
- trigger: "click"
- }],
+ disabled:true,
span: 24,
},
{
label: "登录账号",
prop: "account",
- rules: [{
- required: true,
- message: "请输入登录账号",
- trigger: "blur"
- }],
- },
- {
- label: "用户平台",
- type: "select",
- dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
- props: {
- label: "dictValue",
- value: "dictKey"
- },
- dataType: "number",
- slot: true,
- prop: "userType",
- rules: [{
- required: true,
- message: "请选择用户平台",
- trigger: "blur"
- }]
- }
- ]
- },
- {
- label: '详细信息',
- prop: 'detailInfo',
- icon: 'el-icon-s-order',
- column: [
- {
- label: "用户昵称",
- prop: "name",
- hide: true,
- rules: [{
- required: true,
- message: "请输入用户昵称",
- trigger: "blur"
- }]
+ disabled:true
},
{
label: "用户姓名",
@@ -362,13 +340,95 @@
}]
},
{
+ label: "用户昵称",
+ prop: "name"
+ },
+ {
label: "手机号码",
prop: "phone",
- overHidden: true
+ overHidden: true,
+ rules: [{
+ required: true,
+ message: "请输入手机号",
+ trigger: "blur"
+ }]
},
{
label: "电子邮箱",
prop: "email",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "身份证号",
+ prop: "cardid",
+ hide: true,
+ overHidden: true,
+ rules: [{
+ required: true,
+ message: "请输入身份证号",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "籍贯",
+ prop: "nativePlace",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "民族",
+ prop: "nation",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "最高学历",
+ prop: "education",
+ type: "select",
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+ props: {
+ label: "dictValue",
+ value: "dictKey"
+ },
+ dataType: "number",
+ slot: true,
+ rules: [{
+ required: true,
+ message: "请选择学历",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "政治面貌",
+ prop: "politicaloutlook",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "身高",
+ prop: "height",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "联系地址",
+ prop: "address",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "户口所在地",
+ prop: "registered",
+ hide: true,
+ overHidden: true
+ },
+ {
+ label: "入职时间",
+ prop: "rtime",
+ type:'date',
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
hide: true,
overHidden: true
},
@@ -396,78 +456,82 @@
label: "用户生日",
type: "date",
prop: "birthday",
- format: "yyyy-MM-dd hh:mm:ss",
- valueFormat: "yyyy-MM-dd hh:mm:ss",
hide: true
- },
- {
- label: "账号状态",
- prop: "statusName",
- hide: true,
- display: false
}
]
},
{
- label: '职责信息',
- prop: 'dutyInfo',
- icon: 'el-icon-s-custom',
+ label: '从业信息',
+ prop: 'detailInfo',
+ icon: 'el-icon-s-order',
column: [
- {
- label: "用户编号",
- prop: "code",
- },
- {
- label: "所属角色",
- prop: "roleId",
- multiple: true,
- type: "tree",
- dicData: [],
- props: {
- label: "title"
- },
- checkStrictly: true,
- slot: true,
- addDisplay:false,
- editDisplay:false,
- viewDisplay:true,
- // rules: [{
- // required: true,
- // message: "请选择所属角色",
- // trigger: "click"
- // }]
- },
- {
- label: "所属部门",
- prop: "deptId",
- type: "cascader",
- //multiple: true,
- 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"
- },
-
- },
- ]
- },
+ {
+ prop: 'UserPractitionersInfo',
+ type: 'dynamic',
+ border: false,
+ span:24,
+ children: {
+ align: 'left',
+ headerAlign: 'center',
+ type:'form',
+ rowAdd:(done)=>{
+ console.log(done,111);
+ done({
+ input:'默认值'
+ });
+ },
+ rowDel:(row,done)=>{
+ console.log(row,222);
+ done();
+ },
+ column: [
+ {
+ width: 200,
+ label: '单位名称',
+ prop: "companyname",
+ formslot: true,
+ }, {
+ width: 200,
+ label: '部门',
+ prop: "department",
+ formslot: true,
+ }, {
+ width: 200,
+ label: '岗位',
+ prop: "post",
+ formslot: true,
+ }, {
+ width: 200,
+ label: '岗位职责',
+ prop: "responsibilities",
+ formslot: true,
+ }, {
+ width: 200,
+ label: '入职时间',
+ type:'date',
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ prop: "entryTime",
+ formslot: true,
+ }, {
+ width: 200,
+ label: '离职时间',
+ type:'date',
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ prop: "departureTime",
+ formslot: true,
+ }, {
+ width: 200,
+ label: '离职原因',
+ prop: "leaving",
+ formslot: true,
+ }
+ ]
+ }
+ },
+ ]
+ }
]
},
data: [],
@@ -613,10 +677,11 @@
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
- addBtn: this.vaildData(this.permission.user_add, false),
- viewBtn: this.vaildData(this.permission.user_view, false),
+ addBtn: this.vaildData(null, false),
+ // addBtn: this.vaildData(this.permission.user_add, false),
+ viewBtn: this.vaildData(null, false),
delBtn: this.vaildData(this.permission.user_delete, false),
- editBtn: this.vaildData(this.permission.user_edit, false)
+ editBtn: this.vaildData(null, false)
};
},
platformPermissionList() {
@@ -640,6 +705,7 @@
if (!website.tenantMode) {
this.initData(website.tenantId);
}
+
},
methods: {
nodeClick(data) {
@@ -722,13 +788,14 @@
});
},
rowDel(row) {
- this.$confirm("确定将选择数据删除?", {
+ this.$confirm("确定将选择用户登记离职?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
- return remove(row.id);
+ row.status="0";
+ return update(row);
})
.then(() => {
this.onLoad(this.page);
@@ -756,28 +823,28 @@
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
- handleDelete() {
- if (this.selectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
- }
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- return remove(this.ids);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- this.$refs.crud.toggleSelection();
- });
- },
+ // handleDelete() {
+ // if (this.selectionList.length === 0) {
+ // this.$message.warning("请选择至少一条数据");
+ // return;
+ // }
+ // this.$confirm("确定将选择用户登记离职?", {
+ // confirmButtonText: "确定",
+ // cancelButtonText: "取消",
+ // type: "warning"
+ // })
+ // .then(() => {
+ // return remove(this.ids);
+ // })
+ // .then(() => {
+ // this.onLoad(this.page);
+ // this.$message({
+ // type: "success",
+ // message: "操作成功!"
+ // });
+ // this.$refs.crud.toggleSelection();
+ // });
+ // },
handleGrant() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
@@ -798,7 +865,7 @@
handleImport() {
this.excelBox = true;
},
- uploadAfter(res, done, loading, column) {
+ uploadAfter(done) {
this.excelBox = false;
this.refreshChange();
done();
@@ -816,9 +883,15 @@
window.open(`/api/blade-user/export-template?${this.website.tokenHeader}=${getToken()}`);
},
beforeOpen(done, type) {
+ var that = this;
if (["edit", "view"].includes(type)) {
getUser(this.form.id).then(res => {
this.form = res.data.data;
+ var userInfo = res.data.data;
+ //获取用户从业信息
+ getUserPractitionersInfo(userInfo.cardid).then(res1 =>{
+ that.form.UserPractitionersInfo = res1.data.data;
+ })
if (this.form.hasOwnProperty("deptId")) {
this.form.deptId = this.form.deptId.split(",");
}
--
Gitblit v1.9.3