index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <div class="task-preview">
  3. <MenuPage only-key="/personal_workbench/edit_task" />
  4. <CommonPreview :id="id" ref="preview" :project-id="project_id">
  5. <template #operator="{ courseware }">
  6. <span class="link" @click="saveCoursewareAsTemplate">保存为个人模板</span>
  7. <span v-if="isTrue(courseware.is_can_start_edit)" class="link" @click="editTask">开始编辑</span>
  8. <span v-if="isTrue(courseware.is_can_submit_audit)" class="link" @click="submitCoursewareToAuditFlow">
  9. 提交审校
  10. </span>
  11. <span class="link" @click="goBackBookList">返回教材列表</span>
  12. </template>
  13. </CommonPreview>
  14. </div>
  15. </template>
  16. <script>
  17. import MenuPage from '@/views/personal_workbench/common/menu.vue';
  18. import CommonPreview from '@/components/CommonPreview.vue';
  19. import { SubmitBookCoursewareToAuditFlow } from '@/api/project';
  20. import { isTrue } from '@/utils/validate';
  21. import { SaveCoursewareAsTemplatePersonal } from '@/api/template';
  22. export default {
  23. name: 'TaskPreviewPage',
  24. components: {
  25. MenuPage,
  26. CommonPreview,
  27. },
  28. data() {
  29. return {
  30. id: this.$route.params.id,
  31. project_id: this.$route.query.project_id,
  32. isTrue,
  33. };
  34. },
  35. methods: {
  36. goBackBookList() {
  37. this.$router.push({ path: '/personal_workbench/edit_task' });
  38. },
  39. editTask() {
  40. this.$router.push({
  41. path: `/personal_workbench/edit_task/edit/${this.$refs.preview.select_node}`,
  42. query: { project_id: this.project_id },
  43. });
  44. },
  45. /**
  46. * 提交课件到审校流程
  47. */
  48. submitCoursewareToAuditFlow() {
  49. SubmitBookCoursewareToAuditFlow({ id: this.$refs.preview.select_node }).then(() => {
  50. this.$message.success('课件已提交审校');
  51. this.$refs.preview.getBookCoursewareInfo(this.$refs.preview.select_node);
  52. });
  53. },
  54. /**
  55. * 保存为个人模板
  56. */
  57. saveCoursewareAsTemplate() {
  58. this.$confirm('确定要将当前课件保存为个人模板吗?', '提示', {
  59. confirmButtonText: '确定',
  60. cancelButtonText: '取消',
  61. type: 'warning',
  62. })
  63. .then(() => {
  64. SaveCoursewareAsTemplatePersonal({ courseware_id: this.$refs.preview.select_node }).then(() => {
  65. this.$message.success('已保存为个人模板');
  66. });
  67. })
  68. .catch(() => {});
  69. },
  70. },
  71. };
  72. </script>
  73. <style lang="scss" scoped>
  74. @use '@/styles/mixin.scss' as *;
  75. .task-preview {
  76. @include page-content(true);
  77. }
  78. </style>