Browse Source

修改章节、课件名称

dusenyao 4 days ago
parent
commit
bb7d796941

+ 8 - 0
src/api/book.js

@@ -72,6 +72,14 @@ export function ChapterUpdateChapter(data) {
 }
 
 /**
+ * @description 修改课件名称
+ * @param {object} data
+ */
+export function ChapterUpdateCoursewareName(data) {
+  return http.post(`${process.env.VUE_APP_EepServer}?MethodName=book_chapter_manager-UpdateCoursewareName`, data);
+}
+
+/**
  * @description 删除章节
  * @param {object} data
  */

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

@@ -49,7 +49,7 @@
           <div class="audit nowrap-ellipsis" :title="auditor_desc">{{ auditor_desc }}</div>
           <div class="status"></div>
           <div class="operator">
-            <span class="link">修改</span>
+            <span class="link" @click="openUpdateNameDialog(id, name, is_leaf_chapter === 'true')">修改</span>
             <span class="link" @click="openSetProducer(id)">设置制作人</span>
             <span class="link" @click="openSetAuditor(id)">设置审校人</span>
             <span class="link danger" @click="is_leaf_chapter === 'true' ? deleteCourseware(id) : deleteChapter(id)">
@@ -87,6 +87,8 @@
       :member-list="member_list"
       @close="getBookChapterStructExpandList"
     />
+
+    <UpdateName :name="name.name" :visible.sync="name.visible" @submit="updateName" />
   </div>
 </template>
 
@@ -96,6 +98,7 @@ import SetUser from './components/SetUser.vue';
 import SetAuditSteps from './components/SetAuditSteps.vue';
 import MenuPage from '@/views/personal_workbench/common/menu.vue';
 import SetAuditor from './components/SetAuditor.vue';
+import UpdateName from './components/UpdateName.vue';
 
 import { GetProjectBaseInfo } from '@/api/project';
 import {
@@ -105,6 +108,8 @@ import {
   ChapterDeleteChapter,
   ChapterDeleteCourseware,
   ChapterSetProducer,
+  ChapterUpdateChapter,
+  ChapterUpdateCoursewareName,
 } from '@/api/book';
 
 export default {
@@ -115,6 +120,7 @@ export default {
     MenuPage,
     SetAuditSteps,
     SetAuditor,
+    UpdateName,
   },
   data() {
     return {
@@ -136,6 +142,12 @@ export default {
         visible: false, // 设置审校人弹窗
         id: '', // 章节ID
       },
+      name: {
+        name: '',
+        visible: false, // 修改章节名称弹窗
+        isCourse: false, // 是否是课件
+        id: '', // 章节ID
+      },
     };
   },
   created() {
@@ -264,6 +276,39 @@ export default {
         })
         .catch(() => {});
     },
+    /**
+     * 打开修改章节名称对话框
+     * @param {string} id - 章节ID
+     * @param {string} name - 名称
+     * @param {boolean} isCourse - 是否是课件
+     */
+    openUpdateNameDialog(id, name, isCourse) {
+      this.name = {
+        id,
+        name,
+        isCourse,
+        visible: true,
+      };
+    },
+    /**
+     * 修改章节名称
+     * @param {string} id - 章节ID
+     */
+    updateName(name) {
+      if (this.name.isCourse) {
+        ChapterUpdateCoursewareName({ id: this.name.id, name }).then(() => {
+          this.getBookChapterStructExpandList();
+          this.name.visible = false;
+          this.$message.success('课件名称修改成功');
+        });
+      } else {
+        ChapterUpdateChapter({ id: this.name.id, name }).then(() => {
+          this.getBookChapterStructExpandList();
+          this.name.visible = false;
+          this.$message.success('章节名称修改成功');
+        });
+      }
+    },
     openSetProducer(id) {
       this.producer.visible = true;
       this.producer.id = id;

+ 63 - 0
src/views/personal_workbench/project/components/UpdateName.vue

@@ -0,0 +1,63 @@
+<template>
+  <el-dialog
+    title="修改名称"
+    :visible="visible"
+    width="400px"
+    :close-on-click-modal="false"
+    class="add-chapter"
+    @close="dialogClose"
+  >
+    <el-form ref="form" :model="form" label-width="40px">
+      <el-form-item label="名称" prop="name">
+        <el-input v-model="form.name" placeholder="请输入名称" />
+      </el-form-item>
+    </el-form>
+
+    <div slot="footer">
+      <el-button @click="dialogClose">取消</el-button>
+      <el-button type="primary" @click="submit">确定</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+export default {
+  name: 'UpdateName',
+  props: {
+    visible: {
+      type: Boolean,
+      default: false,
+    },
+    name: {
+      type: String,
+      default: '',
+    },
+  },
+  data() {
+    return {
+      form: {
+        name: '',
+      },
+    };
+  },
+  watch: {
+    visible(newVal) {
+      if (newVal) {
+        this.form.name = this.name;
+      }
+    },
+  },
+  methods: {
+    dialogClose() {
+      this.$emit('update:visible', false);
+      this.form.name = '';
+    },
+    submit() {
+      this.$emit('submit', this.form.name);
+      this.dialogClose();
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>