소스 검색

用户管理修改完成

admin 3 년 전
부모
커밋
37ac9dd870
2개의 변경된 파일91개의 추가작업 그리고 20개의 파일을 삭제
  1. 14 3
      src/api/system/role.js
  2. 77 17
      src/views/system/user.vue

+ 14 - 3
src/api/system/role.js

@@ -78,6 +78,17 @@ export const getRoleTree = () => {
     })
 }
 
+//所属角色
+export const roletree = () => {
+    return request({
+        url: '/api/blade-system/role/tree',
+        method: 'get',
+        params: {
+            tenantId: ''
+        }
+    })
+}
+
 export const getRoleTreeById = (roleId) => {
     return request({
         url: '/api/blade-system/role/tree-by-id',
@@ -110,8 +121,8 @@ export const findProjectAndContractList = (params) => {
 //编辑新增项目合同段信息
 export const saveUserInfoByProjectTow = (params) => {
     return request({
-        url: '/api/blade-manager/contractInfo/saveUserInfoByProjectTow  ',
-        method: 'get',
-        params
+        url: '/api/blade-manager/contractInfo/saveUserInfoByProjectTow',
+        method: 'post',
+        data: params
     })
 }

+ 77 - 17
src/views/system/user.vue

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