Преглед на файлове

单点更新项目成员

dusenyao преди 1 месец
родител
ревизия
8a68d14a1a

+ 1 - 1
src/api/project.js

@@ -134,7 +134,7 @@ export function GetMyBookCoursewareTaskList_Edit(data) {
  */
 export function SubmitBookCoursewareToAuditFlow(data) {
   return http.post(
-    `${process.env.VUE_APP_EepServer}?MethodName=project_task_manager-SubmitBookCoursewareToAuditFlow`,
+    `${process.env.VUE_APP_EepServer}?MethodName=book_audit_manager-SubmitBookCoursewareToAuditFlow`,
     data,
   );
 }

+ 12 - 0
src/views/create_project/selectProjectMembers.vue

@@ -83,6 +83,10 @@ export default {
       type: String,
       default: '选择项目成员',
     },
+    selectedList: {
+      type: Array,
+      default: () => [],
+    },
   },
   data() {
     return {
@@ -96,6 +100,14 @@ export default {
       selectedUsers: [], // 选中的用户
     };
   },
+  watch: {
+    selectedList: {
+      handler(newVal) {
+        this.selectedUsers = newVal;
+      },
+      immediate: true,
+    },
+  },
   created() {
     this.getOrgIndexList();
     this.getUserList();

+ 45 - 31
src/views/personal_workbench/check_task/audit/index.vue

@@ -10,30 +10,32 @@
       </div>
       <div class="courseware">
         <span class="name-path">{{ courseware_info.name_path }}</span>
+        <span class="flow-nodename">{{ courseware_info.cur_audit_flow_node_name }}</span>
         <div class="operator">
-          <span class="link" v-if="isTrue(courseware_info.is_can_add_audit_remark)" @click="addRemark"
-            >添加审核意见</span
-          >
+          <span v-if="isTrue(courseware_info.is_can_add_audit_remark)" class="link" @click="addRemark">
+            添加审校批注
+          </span>
           <span
             v-if="isTrue(courseware_info.is_can_finish_audit)"
             class="link"
             @click="finishCoursewareCurFlowNodeAudit"
           >
-            审完成
+            审完成
           </span>
         </div>
       </div>
     </div>
     <div class="audit-content">
-      <main class="preview-main">
-        <span class="title">
-          <SvgIcon icon-class="menu-2" size="24" />
-          <span>{{ courseware_info.name_path }}</span>
-        </span>
-
-        <CoursewarePreview :data="data" :component-list="component_list" :background="background" />
-      </main>
-      <div class="remark-list-position"></div>
+      <div class="main-container">
+        <main class="preview-main">
+          <span class="title">
+            <SvgIcon icon-class="menu-2" size="24" />
+            <span>{{ courseware_info.name_path }}</span>
+          </span>
+
+          <CoursewarePreview :data="data" :component-list="component_list" :background="background" />
+        </main>
+      </div>
       <div class="remark-list">
         <h5>审校批注</h5>
         <ul v-if="remark_list.length > 0">
@@ -53,8 +55,8 @@
       :visible="visible"
       width="680px"
       :close-on-click-modal="false"
-      @close="dialogClose"
       class="audit-dialog"
+      @close="dialogClose"
     >
       <RichText
         v-model="remark_content"
@@ -65,9 +67,9 @@
       />
       <div slot="footer">
         <el-button @click="dialogClose">取消</el-button>
-        <el-button @click="addCoursewareAuditRemark(select_node)" type="primary" :loading="submit_loading"
-          >确定</el-button
-        >
+        <el-button type="primary" :loading="submit_loading" @click="addCoursewareAuditRemark(select_node)">
+          确定
+        </el-button>
       </div>
     </el-dialog>
   </div>
@@ -189,7 +191,7 @@ export default {
         id: this.id,
         is_pass: this.courseware_info.cur_audit_flow_node_type === 2 ? 'true' : 'false',
       }).then(() => {
-        this.$message.success('课件已提交审核');
+        this.$message.success('操作成功');
         this.getBookCoursewareInfo(this.id);
       });
     },
@@ -211,14 +213,14 @@ export default {
     addCoursewareAuditRemark(id) {
       this.submit_loading = true;
       addCoursewareAuditRemark({
-        courseware_id: id ? id : this.id,
+        courseware_id: id || this.id,
         content: this.remark_content,
       })
         .then((res) => {
           this.submit_loading = false;
           if (res.status === 1) {
             this.visible = false;
-            this.getCoursewareAuditRemarkList(id ? id : this.id);
+            this.getCoursewareAuditRemarkList(id || this.id);
           }
         })
         .catch(() => {
@@ -248,7 +250,7 @@ export default {
           type: 'warning',
         })
         .then(function () {
-          deleteCoursewareAuditRemarkList({ id: id }).then((res) => {
+          deleteCoursewareAuditRemarkList({ id }).then((res) => {
             if (res.status === 1) {
               _this.getCoursewareAuditRemarkList(_this.select_node ? _this.select_node : _this.id);
               _this.$message({
@@ -270,6 +272,8 @@ export default {
 .audit {
   @include page-content(true);
 
+  overflow: hidden;
+
   &__header {
     .menu {
       display: flex;
@@ -283,22 +287,39 @@ export default {
       display: flex;
       flex-grow: 1;
       align-items: center;
-      justify-content: space-between;
       padding: 4px 8px;
 
       .name-path {
+        width: 400px;
         font-size: 14px;
       }
+
+      .flow-nodename {
+        flex: 1;
+      }
     }
   }
 
+  .main-container {
+    flex: 1;
+    min-width: 1110px;
+    overflow: auto;
+  }
+
   main.preview-main {
+    display: flex;
     flex: 1;
+    flex-direction: column;
+    row-gap: 5px;
     width: 1100px;
+    min-width: 1100px;
+    min-height: 100%;
     padding: 5px;
+    margin: 0 5px;
     background-color: #fff;
     border: 3px solid #f44444;
-    border-radius: 16px;
+    border-radius: 4px;
+    box-shadow: 0 2px 4px rgba(0, 0, 0, 10%);
 
     .title {
       display: inline-flex;
@@ -320,17 +341,10 @@ export default {
     display: flex;
     column-gap: 20px;
     min-width: 1400px;
-
-    .remark-list-position {
-      width: 300px;
-    }
+    height: calc(100vh - 175px);
 
     .remark-list {
-      position: fixed;
-      top: 170px;
-      right: 15px;
       width: 300px;
-      height: calc(100% - 180px);
       overflow: auto;
       border: 1px solid #e5e5e5;
 

+ 32 - 20
src/views/personal_workbench/project/ProjectInfoManage.vue

@@ -17,11 +17,11 @@
         class="project-form"
       >
         <el-form-item label="项目名称" prop="name" class="link-item">
-          <el-input v-model="project.name" placeholder="请输入项目名称" maxlength="20" />
+          <el-input v-model="project.name" placeholder="请输入项目名称" maxlength="20" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="项目分类" prop="category" class="link-item">
-          <el-input v-model="project.category" maxlength="30" />
+          <el-input v-model="project.category" maxlength="30" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="作品标签" prop="label_list" class="label-input link-item">
@@ -36,20 +36,20 @@
                 {{ tag }}
               </el-tag>
             </div>
-            <el-input v-model="labelInput" placeholder="请输入标签" @keyup.enter.native="labelChange" />
+            <el-input v-model="labelInput" placeholder="请输入标签" disabled @keyup.enter.native="labelChange" />
             <span class="link">更改</span>
           </div>
         </el-form-item>
         <el-form-item label="语种" prop="language" class="link-item">
-          <el-input v-model="project.language" type="text" placeholder="请输入语种" maxlength="20" />
+          <el-input v-model="project.language" type="text" placeholder="请输入语种" maxlength="20" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="所属课题" prop="topic" class="link-item">
-          <el-input v-model="project.topic" type="text" placeholder="请输入所属课题" />
+          <el-input v-model="project.topic" type="text" placeholder="请输入所属课题" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="出版单位" prop="publisher" class="link-item">
-          <el-input v-model="project.publisher" type="text" placeholder="请输入出版单位" maxlength="20" />
+          <el-input v-model="project.publisher" type="text" placeholder="请输入出版单位" maxlength="20" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="内容简介" prop="content_intro" class="link-item">
@@ -60,6 +60,7 @@
             maxlength="1500"
             show-word-limit
             placeholder="请输入内容简介"
+            disabled
           />
           <span class="link">更改</span>
         </el-form-item>
@@ -71,6 +72,7 @@
             maxlength="1500"
             show-word-limit
             placeholder="请输入选题背景"
+            disabled
           />
           <span class="link">更改</span>
         </el-form-item>
@@ -82,49 +84,51 @@
             maxlength="1500"
             show-word-limit
             placeholder="请输入作者简介"
+            disabled
           />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item prop="content_count_YG" class="link-item label-tworow">
           <span slot="label">预计容量<br />(课数)</span>
-          <el-input v-model="project.content_count_YG" type="number" />
+          <el-input v-model="project.content_count_YG" type="number" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="预计字数" prop="word_count_YG" class="link-item">
-          <el-input v-model="project.word_count_YG" type="number" />
+          <el-input v-model="project.word_count_YG" type="number" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="计划出版时间" prop="plan_publish_date" class="link-item">
-          <el-date-picker v-model="project.plan_publish_date" type="date" placeholder="选择日期" />
+          <el-date-picker v-model="project.plan_publish_date" type="date" placeholder="选择日期" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="读者对象" prop="reader" class="link-item">
-          <el-input v-model="project.reader" type="text" placeholder="请输入读者对象" maxlength="20" />
+          <el-input v-model="project.reader" type="text" placeholder="请输入读者对象" maxlength="20" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item prop="leader_id_list" class="link-item label-tworow">
           <span slot="label">邀请其他<br />项目组长</span>
-          <el-input v-model="leaderNames" type="text">
-            <el-button slot="append" @click="selectLeader">选择</el-button>
-          </el-input>
+          <el-input v-model="leaderNames" type="text" disabled />
           <span class="link">更改</span>
         </el-form-item>
         <el-form-item label="项目成员" prop="member_id_list" class="link-item">
-          <el-input v-model="memberNames" type="text">
-            <el-button slot="append" @click="selectMembers">选择</el-button>
-          </el-input>
-          <span class="link" @click="setProjectMember">更改</span>
+          <el-input v-model="memberNames" type="text" disabled />
+          <span class="link" @click="selectMembers">更改</span>
         </el-form-item>
         <el-form-item class="label-tworow">
           <span slot="label">已同意邀请成为<br />项目组长成员</span>
-          <el-input type="text" />
+          <el-input type="text" disabled />
         </el-form-item>
         <el-form-item label="创建人">
-          <el-input type="text" />
+          <el-input type="text" disabled />
         </el-form-item>
       </el-form>
 
-      <selectMembers :visible.sync="visibleMembers" :title="selectMembersTitle" @confirm="handleSelectedMembers" />
+      <selectMembers
+        :visible.sync="visibleMembers"
+        :title="selectMembersTitle"
+        :selected-list="list[type]"
+        @confirm="handleSelectedMembers"
+      />
     </main>
   </div>
 </template>
@@ -152,6 +156,10 @@ export default {
       type: '',
       leaderNames: '', // 组长姓名
       memberNames: '', // 组员姓名
+      list: {
+        leader: [],
+        member: [],
+      },
       project: {
         name: '',
         category: '',
@@ -213,6 +221,7 @@ export default {
       } else if (this.type === 'member') {
         this.memberNames = selectedUsers.map((user) => user.real_name).join(';');
         this.project.member_id_list = selectedUsers.map((user) => user.id);
+        this.setProjectMember();
       }
     },
     /**
@@ -224,8 +233,10 @@ export default {
       GetUserList_ID({ id_list }).then(({ user_list }) => {
         if (type === 'leader') {
           this.leaderNames = user_list.map((user) => user.real_name).join(', ');
+          this.list.leader = user_list;
         } else if (type === 'member') {
           this.memberNames = user_list.map((user) => user.real_name).join(', ');
+          this.list.member = user_list;
         }
       });
     },
@@ -236,6 +247,7 @@ export default {
         user_id_list: this.project.member_id_list,
       }).then(() => {
         this.$message.success('项目成员更新成功');
+        this.getProjectInfo();
       });
     },
   },