|
@@ -21,6 +21,7 @@
|
|
:table-loading="loading"
|
|
:table-loading="loading"
|
|
:data="data"
|
|
:data="data"
|
|
ref="crud"
|
|
ref="crud"
|
|
|
|
+ :before-close="beforeClose"
|
|
v-model="form"
|
|
v-model="form"
|
|
:permission="permissionList"
|
|
:permission="permissionList"
|
|
@row-del="rowDel"
|
|
@row-del="rowDel"
|
|
@@ -72,7 +73,7 @@
|
|
slot="projectAndUserListForm"
|
|
slot="projectAndUserListForm"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
- class="flexStar"
|
|
|
|
|
|
+ class="flexStar martop10"
|
|
v-for="(item,key) in fromss.projectAndUserList"
|
|
v-for="(item,key) in fromss.projectAndUserList"
|
|
:key='key'
|
|
:key='key'
|
|
>
|
|
>
|
|
@@ -87,9 +88,16 @@
|
|
></el-input>
|
|
></el-input>
|
|
<el-input
|
|
<el-input
|
|
class="marleft10"
|
|
class="marleft10"
|
|
- v-model="fromss.projectAndUserList[key].roleType +' | '+fromss.projectAndUserList[key].roleName"
|
|
|
|
|
|
+ v-model="fromss.projectAndUserList[key].roleName"
|
|
:disabled="true"
|
|
:disabled="true"
|
|
></el-input>
|
|
></el-input>
|
|
|
|
+ <el-button
|
|
|
|
+ @click="deleteProject(key,type)"
|
|
|
|
+ class="marleft10"
|
|
|
|
+ type="danger"
|
|
|
|
+ icon="el-icon-delete"
|
|
|
|
+ circle
|
|
|
|
+ ></el-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -130,6 +138,7 @@
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
<!-- 用户类型自定义表单 -->
|
|
<!-- 用户类型自定义表单 -->
|
|
|
|
+
|
|
<template
|
|
<template
|
|
slot-scope="{type,disabled}"
|
|
slot-scope="{type,disabled}"
|
|
slot="roleIdsForm"
|
|
slot="roleIdsForm"
|
|
@@ -361,10 +370,10 @@ import {
|
|
} from "@/api/system/user";
|
|
} from "@/api/system/user";
|
|
import { getProjectList } from "@/api/manager/projectinfo";
|
|
import { getProjectList } from "@/api/manager/projectinfo";
|
|
|
|
|
|
-import { findContractByProjectId } from "@/api/manager/contractinfo";
|
|
|
|
|
|
+import { findContractByProjectId, removeUsersByIds } from "@/api/manager/contractinfo";
|
|
import { exportBlob } from "@/api/common";
|
|
import { exportBlob } from "@/api/common";
|
|
import { getDeptTree, getDeptLazyTree } from "@/api/system/dept";
|
|
import { getDeptTree, getDeptLazyTree } from "@/api/system/dept";
|
|
-import { getRoleTree, treeUser, findProjectAndContractList } from "@/api/system/role";
|
|
|
|
|
|
+import { roletree, treeUser, findProjectAndContractList, saveUserInfoByProjectTow } from "@/api/system/role";
|
|
import { getPostList } from "@/api/system/post";
|
|
import { getPostList } from "@/api/system/post";
|
|
import { mapGetters } from "vuex";
|
|
import { mapGetters } from "vuex";
|
|
import website from '@/config/website';
|
|
import website from '@/config/website';
|
|
@@ -497,7 +506,7 @@ export default {
|
|
label: "所属角色",
|
|
label: "所属角色",
|
|
prop: "roleName",
|
|
prop: "roleName",
|
|
slot: true,
|
|
slot: true,
|
|
- display: false
|
|
|
|
|
|
+ display: false,
|
|
},
|
|
},
|
|
{
|
|
{
|
|
label: "所属部门",
|
|
label: "所属部门",
|
|
@@ -553,7 +562,7 @@ export default {
|
|
rules: [{
|
|
rules: [{
|
|
required: true,
|
|
required: true,
|
|
message: "请输入所属租户",
|
|
message: "请输入所属租户",
|
|
- trigger: "click"
|
|
|
|
|
|
+ trigger: "change"
|
|
}],
|
|
}],
|
|
span: 24,
|
|
span: 24,
|
|
},
|
|
},
|
|
@@ -580,7 +589,7 @@ export default {
|
|
rules: [{
|
|
rules: [{
|
|
required: true,
|
|
required: true,
|
|
message: "请选择用户平台",
|
|
message: "请选择用户平台",
|
|
- trigger: "blur"
|
|
|
|
|
|
+ trigger: "change"
|
|
}]
|
|
}]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -664,14 +673,15 @@ export default {
|
|
type: "tree",
|
|
type: "tree",
|
|
dicData: [],
|
|
dicData: [],
|
|
props: {
|
|
props: {
|
|
- label: "title"
|
|
|
|
|
|
+ label: 'title',
|
|
|
|
+ value: 'id',
|
|
},
|
|
},
|
|
checkStrictly: true,
|
|
checkStrictly: true,
|
|
slot: true,
|
|
slot: true,
|
|
rules: [{
|
|
rules: [{
|
|
required: true,
|
|
required: true,
|
|
message: "请选择所属角色",
|
|
message: "请选择所属角色",
|
|
- trigger: "click"
|
|
|
|
|
|
+ trigger: "change"
|
|
}]
|
|
}]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -688,7 +698,7 @@ export default {
|
|
rules: [{
|
|
rules: [{
|
|
required: true,
|
|
required: true,
|
|
message: "请选择所属部门",
|
|
message: "请选择所属部门",
|
|
- trigger: "click"
|
|
|
|
|
|
+ trigger: "change"
|
|
}]
|
|
}]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -704,7 +714,7 @@ export default {
|
|
rules: [{
|
|
rules: [{
|
|
required: true,
|
|
required: true,
|
|
message: "请选择所属岗位",
|
|
message: "请选择所属岗位",
|
|
- trigger: "click"
|
|
|
|
|
|
+ trigger: "change"
|
|
}],
|
|
}],
|
|
},
|
|
},
|
|
]
|
|
]
|
|
@@ -736,10 +746,20 @@ export default {
|
|
label: "单位名称",
|
|
label: "单位名称",
|
|
prop: "companyName",
|
|
prop: "companyName",
|
|
span: 16,
|
|
span: 16,
|
|
|
|
+ rules: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: "请输入单位名称",
|
|
|
|
+ trigger: "change"
|
|
|
|
+ }],
|
|
}, {
|
|
}, {
|
|
label: "职位",
|
|
label: "职位",
|
|
prop: "position",
|
|
prop: "position",
|
|
span: 16,
|
|
span: 16,
|
|
|
|
+ rules: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: "请输入岗位信息",
|
|
|
|
+ trigger: "change"
|
|
|
|
+ }],
|
|
},
|
|
},
|
|
{
|
|
{
|
|
label: "允许登录",
|
|
label: "允许登录",
|
|
@@ -749,6 +769,11 @@ export default {
|
|
dicData: [
|
|
dicData: [
|
|
{ value: 1, label: '是' },
|
|
{ value: 1, label: '是' },
|
|
{ value: 0, label: '否' }],
|
|
{ value: 0, label: '否' }],
|
|
|
|
+ rules: [{
|
|
|
|
+ required: true,
|
|
|
|
+ message: "请选择是否允许登录",
|
|
|
|
+ trigger: "change"
|
|
|
|
+ }],
|
|
},
|
|
},
|
|
]
|
|
]
|
|
},
|
|
},
|
|
@@ -942,7 +967,6 @@ export default {
|
|
this.fromss.projectId = ''
|
|
this.fromss.projectId = ''
|
|
this.fromss.userId = ''
|
|
this.fromss.userId = ''
|
|
this.fromss.contractId = ''
|
|
this.fromss.contractId = ''
|
|
- this.fromss.projectAndUserList = ''
|
|
|
|
this.fromss.roleIds = '' //合同段Id
|
|
this.fromss.roleIds = '' //合同段Id
|
|
this.contractData = [] //合同段枚举
|
|
this.contractData = [] //合同段枚举
|
|
},
|
|
},
|
|
@@ -973,12 +997,12 @@ export default {
|
|
return tag = false
|
|
return tag = false
|
|
}
|
|
}
|
|
if (tag) {
|
|
if (tag) {
|
|
- this.saveUserInfoByProjectTow({
|
|
|
|
|
|
+ this.saveUserInfoByProjectTow([{
|
|
projectId: this.fromss.projectId,
|
|
projectId: this.fromss.projectId,
|
|
contractId: this.fromss.contractId,
|
|
contractId: this.fromss.contractId,
|
|
roleId: this.fromss.roleIds,
|
|
roleId: this.fromss.roleIds,
|
|
userId: this.fromss.userId
|
|
userId: this.fromss.userId
|
|
- })
|
|
|
|
|
|
+ }])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -1046,6 +1070,30 @@ export default {
|
|
this.findProjectAndContractList(row.id)
|
|
this.findProjectAndContractList(row.id)
|
|
this.$refs.crud.rowEdit(row, index)
|
|
this.$refs.crud.rowEdit(row, index)
|
|
},
|
|
},
|
|
|
|
+ deleteProject (key, type) {//删除参建项目按钮
|
|
|
|
+ if (type == 'add') {
|
|
|
|
+ delete this.fromss.projectAndUserList[key]
|
|
|
|
+ } else {
|
|
|
|
+ this.removeUsersByIds(this.fromss.projectAndUserList[key].id)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ beforeClose (done, type) {//弹框关闭事件
|
|
|
|
+ this.fromss = {
|
|
|
|
+ userId: '',//
|
|
|
|
+ projectAndUserList: [],
|
|
|
|
+ projectId: '',//参与项项目
|
|
|
|
+ contractId: '',//合同段
|
|
|
|
+ roleIds: '',//用户类型
|
|
|
|
+ },
|
|
|
|
+ done()
|
|
|
|
+ },
|
|
|
|
+ async removeUsersByIds (ids) {//删除参建项目
|
|
|
|
+ const { data: res } = await removeUsersByIds(ids)
|
|
|
|
+ console.log(res);
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.findProjectAndContractList(this.fromss.userId)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
async getProjectList () {//项目类型
|
|
async getProjectList () {//项目类型
|
|
const { data: res } = await getProjectList()
|
|
const { data: res } = await getProjectList()
|
|
console.log(res);
|
|
console.log(res);
|
|
@@ -1071,12 +1119,24 @@ export default {
|
|
const { data: res } = await findProjectAndContractList({ userId })
|
|
const { data: res } = await findProjectAndContractList({ userId })
|
|
console.log(res);
|
|
console.log(res);
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
|
|
+ res.data.forEach(val => {
|
|
|
|
+ if (val.roleType) {
|
|
|
|
+ val.roleName = val.roleName + ' | ' + val.roleType
|
|
|
|
+ }
|
|
|
|
+ })
|
|
this.fromss.projectAndUserList = res.data
|
|
this.fromss.projectAndUserList = res.data
|
|
}
|
|
}
|
|
},
|
|
},
|
|
async saveUserInfoByProjectTow (da) {//编辑添加参建项目
|
|
async saveUserInfoByProjectTow (da) {//编辑添加参建项目
|
|
|
|
+ console.log('ss');
|
|
const { data: res } = await saveUserInfoByProjectTow(da)
|
|
const { data: res } = await saveUserInfoByProjectTow(da)
|
|
console.log(res);
|
|
console.log(res);
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.fromss.projectId = '' //参与项项目
|
|
|
|
+ this.fromss.contractId = '' //合同段
|
|
|
|
+ this.fromss.roleIds = '' //用户类型
|
|
|
|
+ this.findProjectAndContractList(this.fromss.userId)
|
|
|
|
+ }
|
|
},
|
|
},
|
|
//#endregion
|
|
//#endregion
|
|
|
|
|
|
@@ -1087,7 +1147,7 @@ export default {
|
|
this.onLoad(this.page);
|
|
this.onLoad(this.page);
|
|
},
|
|
},
|
|
initData (tenantId) {
|
|
initData (tenantId) {
|
|
- getRoleTree(tenantId).then(res => {
|
|
|
|
|
|
+ roletree(tenantId).then(res => {
|
|
const column = this.findObject(this.option.group, "roleId");
|
|
const column = this.findObject(this.option.group, "roleId");
|
|
column.dicData = res.data.data;
|
|
column.dicData = res.data.data;
|
|
});
|
|
});
|
|
@@ -1131,7 +1191,7 @@ export default {
|
|
row.deptId = row.deptId.join(",");
|
|
row.deptId = row.deptId.join(",");
|
|
row.roleId = row.roleId.join(",");
|
|
row.roleId = row.roleId.join(",");
|
|
row.postId = row.postId.join(",");
|
|
row.postId = row.postId.join(",");
|
|
- update(row).then(() => {
|
|
|
|
|
|
+ update({ ...row, projectAndUserList: this.fromss.projectAndUserList }).then(() => {
|
|
this.initFlag = false;
|
|
this.initFlag = false;
|
|
this.onLoad(this.page);
|
|
this.onLoad(this.page);
|
|
this.$message({
|
|
this.$message({
|
|
@@ -1230,7 +1290,7 @@ export default {
|
|
if (this.selectionList.length === 1) {
|
|
if (this.selectionList.length === 1) {
|
|
this.roleTreeObj = this.selectionList[0].roleId.split(",");
|
|
this.roleTreeObj = this.selectionList[0].roleId.split(",");
|
|
}
|
|
}
|
|
- getRoleTree().then(res => {
|
|
|
|
|
|
+ roletree().then(res => {
|
|
this.roleGrantList = res.data.data;
|
|
this.roleGrantList = res.data.data;
|
|
this.roleBox = true;
|
|
this.roleBox = true;
|
|
});
|
|
});
|