Procházet zdrojové kódy

项目管理新增成员列表与修改

dsy před 1 dnem
rodič
revize
4f9f5ddb80

+ 42 - 1
src/views/personal_workbench/project/ProductionEditorialManage.vue

@@ -13,6 +13,8 @@
           </span>
         </div>
         <span class="link" @click="visibleAuditSteps = true">设置审核步骤</span>
+        <div class="member-list">{{ member_list.map((member) => member.name).join(';') }}</div>
+        <span class="link" @click="selectMembers">修改</span>
         <div class="operator flex">
           <span class="link" @click="openBookUnifiedTitle()">教材标题设置</span>
           <span class="link" @click="openBookUnifiedAttrib()">教材样式设置</span>
@@ -171,6 +173,13 @@
     <UpdateName :name="name.name" :visible.sync="name.visible" @submit="updateName" />
     <BookUnifiedAttr :visible.sync="visibleAttr" :book-id="book_id" />
     <BookUnifiedTitle :visible.sync="visibleTitle" :book-id="book_id" />
+    <SelectMembers
+      :visible.sync="visibleMembers"
+      title="选择项目成员"
+      :selected-list="memberInfoList"
+      type="member"
+      @confirm="handleSelectedMembers"
+    />
   </div>
 </template>
 
@@ -184,8 +193,10 @@ import UpdateName from './components/UpdateName.vue';
 import BookUnifiedAttr from './components/BookUnifiedAttr.vue';
 import BookUnifiedTitle from './components/BookUnifiedTitle.vue';
 import VueDraggable from 'vuedraggable';
+import SelectMembers from '@/views/create_project/selectProjectMembers.vue';
 
-import { GetProjectBaseInfo } from '@/api/project';
+import { GetProjectBaseInfo, SetProjectMember } from '@/api/project';
+import { GetUserList_ID } from '@/api/user';
 import {
   ChapterGetBookChapterStructExpandList,
   ChapterAddChapterToBook,
@@ -213,6 +224,7 @@ export default {
     BookUnifiedAttr,
     BookUnifiedTitle,
     VueDraggable,
+    SelectMembers,
   },
   data() {
     return {
@@ -251,6 +263,8 @@ export default {
         targetId: '',
         dragging: false,
       },
+      memberInfoList: [], // 项目成员信息列表
+      visibleMembers: false,
     };
   },
   created() {
@@ -272,6 +286,7 @@ export default {
         this.member_list = member_list;
         this.book_info_PBE = book_info_PBE;
         this.audit_node_list = audit_node_list;
+        this.getUserList_ID();
       });
     },
     /**
@@ -653,6 +668,32 @@ export default {
           this.dragCtx.targetId = '';
         });
     },
+    /**
+     * 得到用户列表(指定ID)
+     */
+    getUserList_ID() {
+      const id_list = this.member_list.map((member) => member.id);
+      GetUserList_ID({ id_list }).then(({ user_list }) => {
+        this.memberInfoList = user_list;
+      });
+    },
+    selectMembers() {
+      this.visibleMembers = true;
+    },
+    /**
+     * 处理选择的成员
+     * @param {Array} selectedUsers - 选中的用户列表
+     */
+    handleSelectedMembers(selectedUsers) {
+      const user_id_list = selectedUsers.map((user) => user.id);
+      SetProjectMember({
+        project_id: this.book_id,
+        user_id_list,
+      }).then(() => {
+        this.$message.success('项目成员更新成功');
+        this.getProjectBaseInfo();
+      });
+    },
   },
 };
 </script>