Ver código fonte

修改新增/修改家族树

Alex 4 anos atrás
pai
commit
100969480c

+ 10 - 2
src/api/system/member.js

@@ -24,11 +24,19 @@ export function listNotTree(query) {
     params: query
   })
 }
+// 查询已在家族树的成员 列表
+export function listInTree(query) {
+  return request({
+    url: '/system/member/inTreeList',
+    method: 'get',
+    params: query
+  })
+}
 
 // 查询家族成员详细
-export function getMember(id) {
+export function getMember(familyId,id) {
   return request({
-    url: '/system/member/get/' + id,
+    url: '/system/member/get/'+familyId+"/" + id,
     method: 'get'
   })
 }

+ 3 - 1
src/views/system/family/detail/member.vue

@@ -343,8 +343,10 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      debugger
       const id = row.memberId || this.ids
-      getMember(id).then(response => {
+      const familyId = this.queryParams.familyId;
+      getMember(familyId,id).then(response => {
         this.form = response.data;
         this.form.familyId = this.queryParams.familyId;
         this.open = true;

+ 44 - 9
src/views/system/family/detail/treeList.vue

@@ -24,7 +24,7 @@
           type="primary"
           icon="el-icon-plus"
           size="mini"
-          :disabled="single"
+          :disabled="singleAdd"
           @click="handleAdd"
           v-hasPermi="['system:member:add']"
         >添加</el-button>
@@ -93,12 +93,15 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal=false>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
 
-        <el-form-item label="父辈" prop="father">
-          <el-input v-model="form.father" placeholder="" :readonly="readonly"/>
+        <el-form-item label="父辈" prop="parentId">
+          <!-- <el-input v-model="form.father" placeholder="" readonly /> -->
+          <el-select v-model="form.parentId" placeholder="请选择" :disabled="enableFather">
+            <el-option v-for="member in treeMemberOptions" :key="member.memberId" :label="member.name" :value="member.memberId"></el-option>
+          </el-select>
         </el-form-item>
 
         <el-form-item label="姓名" prop="memberId">
-          <el-select v-model="form.memberId" placeholder="请选择">
+          <el-select v-model="form.memberId" placeholder="请选择" :disabled="enableMember">
             <el-option v-for="member in memberOptions" :key="member.memberId" :label="member.name" :value="member.memberId"></el-option>
           </el-select>
         </el-form-item>
@@ -117,7 +120,7 @@
 
 <script>
 import { getFamily } from "@/api/system/family";
-import { listTree,listNotTree,getMember, delMember, addMember, updateMember,saveToTree,delToTree } from "@/api/system/member";
+import { listMember,listTree,listInTree,listNotTree,getMember, delMember, addMember, updateMember,saveToTree,delToTree } from "@/api/system/member";
 
 export default {
   name: "Tree",
@@ -129,8 +132,11 @@ export default {
       loadings: false,
       // 选中数组
       ids: [],
+      enableFather: true,
+      enableMember: true,
       // 非单个禁用
       single: true,
+      singleAdd: true,
       // 非多个禁用
       multiple: true,
       // 显示搜索条件
@@ -146,8 +152,10 @@ export default {
       readonly: false,
       // 成员
       memberOptions:[],
+      treeMemberOptions:[],
       genderOptions:[],
-      parentId: null,
+      // 默认第一代
+      parentId: 0,
       father: null,
       // 查询参数
       memberParams: {
@@ -187,6 +195,15 @@ export default {
         this.familyName = response.data.fullName;
       });
     },
+    /** 查询家族成员列表 */
+    getMemberList() {
+      const params = {
+        familyId: this.queryParams.familyId
+      }
+      listMember(params).then(response => {
+        this.memberOptions = response.rows;
+      });
+    },
     getNotTree() {
       this.memberParams.familyId = this.queryParams.familyId;
       listNotTree(this.memberParams).then(response => {
@@ -194,6 +211,13 @@ export default {
         console.log(this.memberOptions)
       });
     },
+    getInTree() {
+      this.memberParams.familyId = this.queryParams.familyId;
+      listInTree(this.memberParams).then(response => {
+        this.treeMemberOptions = response.data;
+        console.log(this.treeMemberOptions)
+      });
+    },
     /** 查询家族成员列表 */
     getList() {
       this.loading = true;
@@ -201,6 +225,10 @@ export default {
         this.memberList = response.rows;
         this.total = response.total;
         this.loading = false;
+        if(this.memberList.length <= 0) {
+          // 家族树没有人时,允许添加第一个人
+          this.singleAdd = false;
+        }
       });
     },
     // 性别 字典翻译
@@ -251,6 +279,7 @@ export default {
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.memberId)
       this.single = selection.length!==1
+      this.singleAdd = selection.length!==1
       this.multiple = !selection.length
 
       if(selection.length===1){
@@ -265,18 +294,24 @@ export default {
       this.form.father = this.father;
       this.open = true;
       this.title = "添加成员至家族树";
+      this.enableFather = true;
+      this.enableMember = false;
       this.getNotTree();
+      this.getInTree();
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.enableFather = false;
+      this.enableMember = true;
       const id = row.memberId || this.ids
-      getMember(id).then(response => {
+      const familyId = this.queryParams.familyId;
+      getMember(familyId,id).then(response => {
         this.form = response.data;
-        this.form.familyId = this.queryParams.familyId;
         this.open = true;
         this.title = "修改家族树成员";
-        this.getNotTree();
+        this.getMemberList();
+        this.getInTree();
       });
     },
     addForm(){