|
|
@@ -11,14 +11,7 @@
|
|
|
@selectedComponent="curComponentData = $event"
|
|
|
>
|
|
|
<template #operator="{ courseware }">
|
|
|
- <el-popover placement="bottom" width="155" trigger="click">
|
|
|
- <el-link type="primary" @click="openCreateTemplateDialog(0)">保存本页为模板</el-link>
|
|
|
- <el-link type="primary" @click="openCreateTemplateDialog(3)">保存本课为模板</el-link>
|
|
|
- <el-link type="primary" @click="openCreateTemplateDialog(1)">保存本书为模板</el-link>
|
|
|
- <el-link type="primary" @click="openCreateTemplateDialog(0, 'true')">保存选择内容为模板</el-link>
|
|
|
- <span slot="reference" class="link save-template">保存为个人模板</span>
|
|
|
- </el-popover>
|
|
|
- <span class="link"></span>
|
|
|
+ <span class="link" @click="openCreateTemplateDialog">保存为个人模板</span>
|
|
|
<template v-if="isTrue(courseware.is_can_start_edit)">
|
|
|
<span class="link" @click="showSetBackground">背景设置</span>
|
|
|
<span class="link" @click="showSetComponentBackground">组件背景设置</span>
|
|
|
@@ -31,11 +24,7 @@
|
|
|
</template>
|
|
|
</CommonPreview>
|
|
|
|
|
|
- <CreateCoursewareAsTemplateVue
|
|
|
- :visible.sync="visibleTemplate"
|
|
|
- :scope="templateScope"
|
|
|
- @confirm="saveCoursewareAsTemplate"
|
|
|
- />
|
|
|
+ <CreateCoursewareAsTemplateVue :visible.sync="visibleTemplate" @confirm="saveCoursewareAsTemplate" />
|
|
|
|
|
|
<SetBackground
|
|
|
:visible.sync="visibleBackground"
|
|
|
@@ -88,8 +77,6 @@ export default {
|
|
|
project_id: this.$route.query.project_id,
|
|
|
isTrue,
|
|
|
visibleTemplate: false,
|
|
|
- templateScope: 0,
|
|
|
- is_select_part_courseware_mode: 'false',
|
|
|
background: {
|
|
|
background_image_url: '',
|
|
|
background_position: {},
|
|
|
@@ -135,20 +122,19 @@ export default {
|
|
|
},
|
|
|
/**
|
|
|
* 打开保存为个人模板的弹窗
|
|
|
- * @param {number} scope 模板范围 0-本页 1-本书 3-本课
|
|
|
- * @param {'false' | 'true'} part_courseware_mode 是否部分课件模式 模板范围为 0 时有效
|
|
|
*/
|
|
|
- openCreateTemplateDialog(scope, part_courseware_mode = 'false') {
|
|
|
+ openCreateTemplateDialog() {
|
|
|
this.visibleTemplate = true;
|
|
|
- this.templateScope = scope;
|
|
|
- this.is_select_part_courseware_mode = part_courseware_mode;
|
|
|
},
|
|
|
/**
|
|
|
* 保存为个人模板
|
|
|
* @param {object} form 模板信息
|
|
|
* @param {string} form.name 模板名称
|
|
|
- * @param {array} form.label_list 模板标签列表
|
|
|
+ * @param {string[]} form.label_list 模板标签列表
|
|
|
* @param {string} form.memo 模板备注
|
|
|
+ * @param {number} form.scope 模板范围
|
|
|
+ * @param {string} form.is_select_part_courseware_mode 是否选择部分课件模式
|
|
|
+ * @param {number} form.content_type 模板内容类型 0: 内容模板,1: 样式模板
|
|
|
*/
|
|
|
saveCoursewareAsTemplate(form) {
|
|
|
this.$confirm('确定保存为个人模板吗?', '提示', {
|
|
|
@@ -159,22 +145,32 @@ export default {
|
|
|
.then(() => {
|
|
|
this.visibleTemplate = false;
|
|
|
let courseware_info = {};
|
|
|
- if (this.is_select_part_courseware_mode === 'true') {
|
|
|
+ if (form.is_select_part_courseware_mode === 'true') {
|
|
|
courseware_info = this.$refs.preview.computedSelectedGroupCoursewareInfo();
|
|
|
- if (Object.keys(courseware_info).length === 0) {
|
|
|
+
|
|
|
+ if (courseware_info?.component_id_list.length === 0) {
|
|
|
this.$message.warning('请选择要保存的内容');
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
SaveCoursewareAsTemplatePersonal({
|
|
|
courseware_id: this.$refs.preview.select_node,
|
|
|
- scope: this.templateScope,
|
|
|
- is_select_part_courseware_mode: this.is_select_part_courseware_mode,
|
|
|
courseware_info,
|
|
|
...form,
|
|
|
- }).then(() => {
|
|
|
- this.$message.success('已保存为个人模板');
|
|
|
- });
|
|
|
+ })
|
|
|
+ .then(({ courseware_id }) => {
|
|
|
+ if (form.content_type === 0) {
|
|
|
+ return this.$message.success('已保存为个人模板');
|
|
|
+ }
|
|
|
+ this.$refs.preview.saveCoursewareStyleTemplate({
|
|
|
+ courseware_id,
|
|
|
+ is_select_part_courseware_mode: form.is_select_part_courseware_mode,
|
|
|
+ component_id_list: courseware_info?.component_id_list || [],
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('保存个人模板失败');
|
|
|
+ });
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
},
|
|
|
@@ -264,11 +260,6 @@ export default {
|
|
|
|
|
|
.task-preview {
|
|
|
@include page-content(true);
|
|
|
-
|
|
|
- .save-template {
|
|
|
- margin-right: -8px;
|
|
|
- vertical-align: text-top;
|
|
|
- }
|
|
|
}
|
|
|
</style>
|
|
|
|