浏览代码

Merge branch 'master' of http://gcls-git.helxsoft.cn/GCLS/eep_page

zq 3 天之前
父节点
当前提交
cabd78bcd8

+ 1 - 1
.env

@@ -11,4 +11,4 @@ VUE_APP_BookWebSI = '/GCLSBookWebSI/ServiceInterface'
 VUE_APP_EepServer = '/EEPServer/SI'
 
 #version
-VUE_APP_VERSION = '2026.03.16'
+VUE_APP_VERSION = '2026.03.19'

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "eep_page",
-  "version": "2026.03.16",
+  "version": "2026.03.19",
   "private": true,
   "main": "main.js",
   "description": "智慧梧桐数字教材编辑器",

+ 18 - 2
src/views/book/courseware/create/components/question/article/Article.vue

@@ -79,10 +79,22 @@
           key="new_word"
           :data-new-word="data.new_word_list"
           @sureNewWords="sureNewWords"
+          :unified-attrib="data.unified_attrib ? data.unified_attrib : null"
         />
 
-        <Notes v-if="editWordIndex === 1" key="notes" :data-notes="data.notes_list" @sureNotes="sureNotes" />
-        <NewWord v-if="editWordIndex === 2" :data-new-word="data.other_word_list" @sureNewWords="sureOtherNewWords" />
+        <Notes
+          v-if="editWordIndex === 1"
+          key="notes"
+          :data-notes="data.notes_list"
+          @sureNotes="sureNotes"
+          :unified-attrib="data.unified_attrib ? data.unified_attrib : null"
+        />
+        <NewWord
+          v-if="editWordIndex === 2"
+          :data-new-word="data.other_word_list"
+          @sureNewWords="sureOtherNewWords"
+          :unified-attrib="data.unified_attrib ? data.unified_attrib : null"
+        />
       </template>
       <!-- </el-dialog> -->
       <!-- 添加图片 -->
@@ -195,6 +207,8 @@ export default {
             heightNumber: null,
             img_list: [],
             widthNumber: null,
+            chsBg: '#988ed6',
+            enBg: '#fff',
           },
           sourceList: [],
           sourcePosition: 'after',
@@ -436,6 +450,8 @@ export default {
                   heightNumber: null,
                   img_list: [],
                   widthNumber: null,
+                  chsBg: '#988ed6',
+                  enBg: '#fff',
                 },
                 sourceList: [],
                 sourcePosition: 'after',

+ 9 - 2
src/views/book/courseware/create/components/question/article/CheckArticle.vue

@@ -85,7 +85,7 @@
     >
       <div v-if="remark" class="remark">
         <div class="adult-book-input-item">
-          <span class="adult-book-lable">中文:</span>
+          <span class="adult-book-lable">标题:</span>
           <!-- <el-input
               v-model="remark.chs"
               class="adult-book-input"
@@ -106,7 +106,10 @@
           />
         </div>
         <div class="adult-book-input-item">
-          <span class="adult-book-lable">英文:</span>
+          <span class="adult-book-lable">标题背景色:</span> <el-color-picker v-model="remark.chsBg"></el-color-picker>
+        </div>
+        <div class="adult-book-input-item">
+          <span class="adult-book-lable">正文:</span>
           <!-- <el-input
               class="adult-book-input"
               type="textarea"
@@ -126,6 +129,10 @@
             :font-family="data?.unified_attrib?.font"
           />
         </div>
+        <div class="adult-book-input-item">
+          <span class="adult-book-lable">正文背景色:</span>
+          <el-color-picker v-model="remark.enBg"></el-color-picker>
+        </div>
         <div v-if="remark.img_list && remark.img_list.length == 0" class="adult-book-input-item">
           <el-upload action="no" accept="image/*" :show-file-list="false" :http-request="changeImage">
             <el-button>上传图片</el-button>

+ 13 - 1
src/views/book/courseware/create/components/question/article/NewWord.vue

@@ -8,6 +8,8 @@
       :placeholder="'输入标题'"
       toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
       class="title-box"
+      :font-size="unifiedAttrib?.font_size"
+      :font-family="unifiedAttrib?.font"
     />
     <div class="option-list">
       <div class="table-node">
@@ -111,6 +113,8 @@
             v-model="item.cixing"
             :inline="true"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
           />
         </div>
         <div class="table-item" style="width: 200px">
@@ -129,6 +133,8 @@
             :inline="true"
             :placeholder="'多个释义用;隔开'"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
           />
         </div>
         <div class="table-item" style="width: 200px">
@@ -137,6 +143,8 @@
             v-model="item.collocation"
             :inline="true"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
           />
         </div>
         <div class="table-item" style="width: 300px">
@@ -146,6 +154,8 @@
             :inline="true"
             :placeholder="'多条例句用回车'"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
           />
         </div>
         <div class="table-item" style="width: 100px">
@@ -298,6 +308,7 @@
 </template>
 
 <script>
+import ModuleMixin from '../../common/ModuleMixin';
 import SoundRecord from '@/views/book/courseware/create/components/question/fill/components/SoundRecord.vue';
 import UploadAudio from '@/views/book/courseware/create/components/question/fill/components/UploadAudio.vue';
 import SelectUpload from '@/views/book/courseware/create/components/common/SelectUpload.vue';
@@ -326,7 +337,8 @@ export default {
     UploadPicture,
     CheckSubtitles,
   },
-  props: ['dataNewWord'],
+  props: ['dataNewWord', 'unifiedAttrib'],
+  mixins: [ModuleMixin],
   data() {
     return {
       data: this.dataNewWord,

+ 13 - 5
src/views/book/courseware/create/components/question/article/Notes.vue

@@ -8,6 +8,8 @@
       :placeholder="'输入标题'"
       toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
       class="title-box"
+      :font-size="unifiedAttrib?.font_size"
+      :font-family="unifiedAttrib?.font"
     />
     <el-table :data="data.option" border style="width: 100%">
       <el-table-column fixed prop="number" label="序号" width="70">
@@ -22,8 +24,8 @@
             v-model="scope.row.con"
             :inline="true"
             :item-index="scope.$index"
-            :font-size="data?.unified_attrib?.font_size"
-            :font-family="data?.unified_attrib?.font"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             @handleRichTextBlur="handleBlurCon"
           />
@@ -35,8 +37,8 @@
             ref="richText"
             v-model="scope.row.pinyin"
             :inline="true"
-            :font-size="data?.unified_attrib?.font_size"
-            :font-family="data?.unified_attrib?.font"
+            :font-size="unifiedAttrib?.pinyin_size"
+            :font-family="'League'"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
           />
         </template>
@@ -48,6 +50,8 @@
             v-model="scope.row.interpret"
             :inline="true"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
           />
         </template>
       </el-table-column>
@@ -58,6 +62,8 @@
             v-model="scope.row.note"
             :inline="true"
             toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
+            :font-size="unifiedAttrib?.font_size"
+            :font-family="unifiedAttrib?.font"
           />
         </template>
       </el-table-column>
@@ -110,6 +116,7 @@
 </template>
 
 <script>
+import ModuleMixin from '../../common/ModuleMixin';
 import RichText from '@/components/RichText.vue';
 import UploadPicture from '../new_word/components/UploadPicture.vue';
 import { pinyinPositionLists } from '@/views/book/courseware/data/notes';
@@ -120,7 +127,8 @@ export default {
     RichText,
     UploadPicture,
   },
-  props: ['dataNotes'],
+  props: ['dataNotes', 'unifiedAttrib'],
+  mixins: [ModuleMixin],
   data() {
     return {
       data: this.dataNotes,

+ 38 - 5
src/views/book/courseware/create/components/question/dialogue_article/Article.vue

@@ -165,10 +165,17 @@
           />
         </div>
       </div>
-      <el-dialog title="标注" :visible.sync="remarkVisible" width="50%" :close-on-click-modal="false">
+      <el-dialog
+        title="标注"
+        :visible.sync="remarkVisible"
+        width="50%"
+        :close-on-click-modal="false"
+        :append-to-body="true"
+        v-if="remarkVisible"
+      >
         <div v-if="remark" class="remark">
           <div class="adult-book-input-item">
-            <span class="adult-book-lable">中文:</span>
+            <span class="adult-book-lable">标题:</span>
             <!-- <el-input
               v-model="remark.chs"
               class="adult-book-input"
@@ -189,7 +196,11 @@
             />
           </div>
           <div class="adult-book-input-item">
-            <span class="adult-book-lable">英文:</span>
+            <span class="adult-book-lable">标题背景色:</span>
+            <el-color-picker v-model="remark.chsBg"></el-color-picker>
+          </div>
+          <div class="adult-book-input-item">
+            <span class="adult-book-lable">正文:</span>
             <!-- <el-input
               class="adult-book-input"
               type="textarea"
@@ -209,6 +220,10 @@
               :font-family="data?.unified_attrib?.font"
             />
           </div>
+          <div class="adult-book-input-item">
+            <span class="adult-book-lable">正文背景色:</span>
+            <el-color-picker v-model="remark.enBg"></el-color-picker>
+          </div>
           <div v-if="remark.img_list && remark.img_list.length == 0" class="adult-book-input-item">
             <el-upload
               action="no"
@@ -291,10 +306,22 @@
           key="new_word"
           :data-new-word="data.new_word_list"
           @sureNewWords="sureNewWords"
+          :unified-attrib="data.unified_attrib ? data.unified_attrib : null"
         />
 
-        <Notes v-if="editWordIndex === 1" key="notes" :data-notes="data.notes_list" @sureNotes="sureNotes" />
-        <NewWord v-if="editWordIndex === 2" :data-new-word="data.other_word_list" @sureNewWords="sureOtherNewWords" />
+        <Notes
+          v-if="editWordIndex === 1"
+          key="notes"
+          :data-notes="data.notes_list"
+          @sureNotes="sureNotes"
+          :unified-attrib="data.unified_attrib ? data.unified_attrib : null"
+        />
+        <NewWord
+          v-if="editWordIndex === 2"
+          :data-new-word="data.other_word_list"
+          @sureNewWords="sureOtherNewWords"
+          :unified-attrib="data.unified_attrib ? data.unified_attrib : null"
+        />
       </template>
       <!-- </el-dialog> -->
       <CheckSubtitles
@@ -407,6 +434,8 @@ export default {
               heightNumber: null,
               img_list: [],
               widthNumber: null,
+              chsBg: '#988ed6',
+              enBg: '#fff',
             },
             type: 'image',
             para: '',
@@ -440,6 +469,8 @@ export default {
           heightNumber: null,
           img_list: [],
           widthNumber: null,
+          chsBg: '#988ed6',
+          enBg: '#fff',
         },
         type: 'text',
         paraIndex: 0,
@@ -467,6 +498,8 @@ export default {
             heightNumber: null,
             img_list: [],
             widthNumber: null,
+            chsBg: '#988ed6',
+            enBg: '#fff',
           },
           type: 'notice',
           paraIndex: 0,

+ 1 - 1
src/views/book/courseware/create/components/question/judge/Judge.vue

@@ -30,7 +30,7 @@
             <SvgIcon v-if="option_type === option_type_list[1].value" icon-class="cross" size="8" />
             <SvgIcon v-if="option_type === option_type_list[2].value" icon-class="circle" size="10" />
           </div>
-          <span v-if="data.option_list.length > 2" class="delete" @click="deleteOption(i)">
+          <span v-if="data.option_list.length > 1" class="delete" @click="deleteOption(i)">
             <SvgIcon icon-class="delete-2" width="12" height="12" />
           </span>
         </li>

+ 6 - 2
src/views/book/courseware/create/components/question/notes/Notes.vue

@@ -27,6 +27,7 @@
               :item-index="scope.$index"
               :font-size="data?.unified_attrib?.font_size"
               :font-family="data?.unified_attrib?.font"
+              :key="'richtext-1-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
               @handleRichTextBlur="handleBlurCon"
             />
@@ -38,8 +39,9 @@
               ref="richText"
               v-model="scope.row.pinyin"
               :inline="true"
-              :font-size="data?.unified_attrib?.font_size"
-              :font-family="data?.unified_attrib?.font"
+              :font-size="data?.unified_attrib?.pinyin_size"
+              :font-family="'League'"
+              :key="'richtext-2-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             />
           </template>
@@ -52,6 +54,7 @@
               :inline="true"
               :font-size="data?.unified_attrib?.font_size"
               :font-family="data?.unified_attrib?.font"
+              :key="'richtext-3-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             />
           </template>
@@ -64,6 +67,7 @@
               :inline="true"
               :font-size="data?.unified_attrib?.font_size"
               :font-family="data?.unified_attrib?.font"
+              :key="'richtext-4-' + scope.$index"
               toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
             />
           </template>

+ 4 - 1
src/views/book/courseware/create/components/question/video_interaction/ExerciseAdd.vue

@@ -2,7 +2,7 @@
   <div class="Exercise-add">
     <div class="type-box">
       <span>题型</span
-      ><el-select v-model="typeValue" size="small">
+      ><el-select v-model="typeValue" size="small" @change="handleChnageType">
         <el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value" />
       </el-select>
     </div>
@@ -125,6 +125,9 @@ export default {
     handleCancle() {
       this.$emit('handleCancle');
     },
+    handleChnageType() {
+      this.content = null;
+    },
   },
 };
 </script>

+ 1 - 0
src/views/book/courseware/create/components/question/voice_matrix/VoiceMatrix.vue

@@ -14,6 +14,7 @@
             <div v-for="(li, j) in item" :key="li.mark" class="matrix-item">
               <!-- eslint-disable max-len -->
               <RichText
+                v-if="property.isGetContent"
                 ref="richText"
                 v-model="li.content"
                 :font-size="data?.unified_attrib?.font_size"

+ 5 - 1
src/views/book/courseware/preview/common/AnswerAnalysis.vue

@@ -31,7 +31,6 @@
               v-for="file in item.answer_audio_list"
               :key="file.file_id"
               :file-id="file.file_id"
-              :file-name="file.file_name.slice(0, file.file_name.lastIndexOf('.'))"
               :audio-index="i"
             />
           </div>
@@ -48,6 +47,7 @@
               v-for="(file, j) in item.answer_video_list"
               :key="file.file_id"
               view-size="small"
+              view-method="independent"
               :file-id="file.file_id"
               :cur-video-index="j"
             />
@@ -264,6 +264,10 @@ export default {
   .el-dialog__body {
     max-height: 75vh;
     overflow: auto;
+
+    .audio-name {
+      display: none;
+    }
   }
 }
 </style>

+ 12 - 3
src/views/book/courseware/preview/components/dialogue_article/RemarkChs.vue

@@ -6,9 +6,14 @@
       (remarkDetail.chs || remarkDetail.en || (remarkDetail.img_list && remarkDetail.img_list.length > 0))
     "
     class="remarkChs"
-    :style="{ top: marginTop ? marginTop + 'px' : '0px' }"
+    :style="{ top: marginTop ? marginTop + 'px' : '0px', backgroundColor: remarkDetail.enBg ? remarkDetail.enBg : '' }"
   >
-    <div v-if="remarkDetail.chs" class="remark-chs" v-html="convertText(sanitizeHTML(remarkDetail.chs))"></div>
+    <div
+      :style="{ backgroundColor: remarkDetail.chsBg ? remarkDetail.chsBg : '' }"
+      v-if="remarkDetail.chs"
+      class="remark-chs"
+      v-html="convertText(sanitizeHTML(remarkDetail.chs))"
+    ></div>
     <div v-if="remarkDetail.en" class="remark-en" v-html="convertText(sanitizeHTML(remarkDetail.en))"></div>
     <div v-if="remarkDetail.img_list && remarkDetail.img_list.length > 0" class="remark-img">
       <el-image
@@ -59,7 +64,7 @@ export default {
   position: absolute;
   top: 0;
   box-sizing: border-box;
-  width: 95%;
+  width: 90%;
 
   // border: 1px solid rgba(0, 0, 0, 10%);
   border-radius: 8px;
@@ -68,10 +73,12 @@ export default {
   > .remark-chs {
     box-sizing: border-box;
     display: flex;
+    flex-flow: wrap;
     align-items: center;
     justify-content: center;
     width: 100%;
     min-height: 34px;
+    padding: 0 8px;
     font-size: 14px;
     font-weight: normal;
     line-height: 22px;
@@ -82,6 +89,7 @@ export default {
     border-radius: 8px 8px 0 0;
 
     :deep p {
+      width: 100%;
       margin: 0;
     }
   }
@@ -89,6 +97,7 @@ export default {
   > .remark-en {
     box-sizing: border-box;
     min-height: 34px;
+    padding: 0 8px;
     font-size: 14px;
     line-height: 22px;
     color: #000;

+ 30 - 31
src/views/book/courseware/preview/components/matching/MatchingPreview.vue

@@ -6,32 +6,35 @@
     <div class="main">
       <ul ref="list" class="option-list">
         <li v-for="(item, i) in data.option_list" :key="i" class="list-item">
-          <div
-            v-for="({ content, mark, multilingual, paragraph_list }, j) in item"
-            :key="mark"
-            :class="['item-wrapper', `item-${mark}`, computedAnswerClass(mark, i, j), { isMobile: isMobile }]"
-            :style="{
-              cursor: disabled ? 'default' : 'pointer',
-              flex: isMobile ? '0 1 auto' : '',
-              width: isMobile ? 'calc(50% - 8px)' : '',
-              overflow: isMobile ? 'auto' : '',
-            }"
-            @mousedown="mousedown($event, i, j, mark)"
-            @mouseup="mouseup($event, i, j, mark)"
-            @click="handleClickConnection($event, i, j, mark)"
-          >
-            <PinyinText
-              v-if="isEnable(data.property.view_pinyin)"
-              class="content"
-              :paragraph-list="paragraph_list"
-              :pinyin-position="data.property.pinyin_position"
-              :is-preview="true"
-            />
-            <span v-else class="content rich-text" v-html="convertText(sanitizeHTML(content))"></span>
-            <div v-if="showLang" class="lang">
-              {{ multilingual.find((item) => item.type === getLang())?.translation }}
+          <template v-for="({ content, mark, multilingual, paragraph_list }, j) in item">
+            <div
+              v-if="content"
+              :key="mark"
+              :class="['item-wrapper', `item-${mark}`, computedAnswerClass(mark, i, j), { isMobile: isMobile }]"
+              :style="{
+                cursor: disabled ? 'default' : 'pointer',
+                flex: isMobile ? '0 1 auto' : '',
+                width: isMobile ? 'calc(50% - 8px)' : '',
+                overflow: isMobile ? 'auto' : '',
+              }"
+              @mousedown="mousedown($event, i, j, mark)"
+              @mouseup="mouseup($event, i, j, mark)"
+              @click="handleClickConnection($event, i, j, mark)"
+            >
+              <PinyinText
+                v-if="isEnable(data.property.view_pinyin)"
+                class="content"
+                :paragraph-list="paragraph_list"
+                :pinyin-position="data.property.pinyin_position"
+                :is-preview="true"
+              />
+              <span v-else class="content rich-text" v-html="convertText(sanitizeHTML(content))"></span>
+              <div v-if="showLang" class="lang">
+                {{ multilingual.find((item) => item.type === getLang())?.translation }}
+              </div>
             </div>
-          </div>
+            <div v-else :key="mark" style="width: calc(50% - 36px)"></div>
+          </template>
         </li>
       </ul>
     </div>
@@ -542,26 +545,22 @@ export default {
 
     .list-item {
       display: flex;
-      column-gap: 8px;
+      column-gap: 72px;
       align-items: stretch;
       padding: 1px;
 
       .item-wrapper {
         position: relative;
         display: flex;
-        flex: 1;
         flex-wrap: wrap;
         column-gap: 24px;
         align-items: center;
+        width: calc(50% - 36px);
         min-height: 48px;
         padding: 12px 24px;
         background-color: $content-color;
         border-radius: 4px;
 
-        &:not(:last-child, .isMobile) {
-          margin-right: 64px;
-        }
-
         &.focus {
           background-color: #dcdbdd;
         }

+ 79 - 5
src/views/book/courseware/preview/components/new_word/NewWordPreview.vue

@@ -43,7 +43,7 @@
           </div>
 
           <div class="NPC-top-right">
-            <el-popover placement="right-start" width="60" trigger="hover">
+            <el-popover placement="right-start" width="60" trigger="click">
               <ul class="show-obj-list">
                 <li @click="handleShow('pinyin')">
                   <span>拼音</span
@@ -453,6 +453,12 @@
                               <p
                                 class="NPC-word-tab-common NPC-word-tab-cixing"
                                 :class="[/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(sItem.cixing) ? 'hasCn' : '']"
+                                :style="{
+                                  fontSize:
+                                    data.unified_attrib && data.unified_attrib.font_size
+                                      ? data.unified_attrib.font_size
+                                      : '',
+                                }"
                                 v-html="convertText(sanitizeHTML(sItem.cixing))"
                                 v-if="showObj.cixing"
                               ></p>
@@ -534,6 +540,12 @@
                                 class="NPC-word-tab-common NPC-word-tab-cixing"
                                 :class="[/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(sItem.cixing) ? 'hasCn' : '']"
                                 v-html="convertText(sanitizeHTML(sItem.cixing))"
+                                :style="{
+                                  fontSize:
+                                    data.unified_attrib && data.unified_attrib.font_size
+                                      ? data.unified_attrib.font_size
+                                      : '',
+                                }"
                               ></p>
 
                               <span
@@ -555,6 +567,12 @@
                           <p
                             class="NPC-word-tab-common NPC-word-tab-def"
                             v-html="convertText(sanitizeHTML(sItem.def_str))"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                            }"
                           ></p>
                           <span
                             v-if="
@@ -571,7 +589,15 @@
                         <div v-if="sItem.collocation && showObj.collocation">
                           <span class="collocation"
                             ><span>{{ convertText('搭配:') }}</span
-                            ><b v-html="convertText(sanitizeHTML(sItem.collocation))"></b
+                            ><b
+                              v-html="convertText(sanitizeHTML(sItem.collocation))"
+                              :style="{
+                                fontSize:
+                                  data.unified_attrib && data.unified_attrib.font_size
+                                    ? data.unified_attrib.font_size
+                                    : '',
+                              }"
+                            ></b
                           ></span>
                           <span v-if="showLang" class="">
                             {{
@@ -587,7 +613,15 @@
                           <span class="collocation"
                             ><span>{{ convertText('例句:') }}</span>
                             <div>
-                              <b v-html="convertText(sanitizeHTML(sItem.liju_list))"></b>
+                              <b
+                                v-html="convertText(sanitizeHTML(sItem.liju_list))"
+                                :style="{
+                                  fontSize:
+                                    data.unified_attrib && data.unified_attrib.font_size
+                                      ? data.unified_attrib.font_size
+                                      : '',
+                                }"
+                              ></b>
                             </div>
                           </span>
                           <span v-if="showLang" class="">
@@ -773,6 +807,12 @@
                           <p
                             class="NPC-word-tab-common NPC-word-tab-cixing"
                             :class="[/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(sItem.cixing) ? 'hasCn' : '']"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                            }"
                             v-html="convertText(sanitizeHTML(sItem.cixing))"
                           ></p>
                           <span
@@ -791,6 +831,12 @@
                           <p
                             class="NPC-word-tab-common NPC-word-tab-def"
                             v-html="convertText(sanitizeHTML(sItem.def_str))"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                            }"
                           ></p>
                           <span
                             v-if="
@@ -876,6 +922,12 @@
                           <p
                             class="NPC-word-tab-common NPC-word-tab-cixing"
                             :class="[/[\u4E00-\u9FA5\uF900-\uFA2D]/.test(sItem.cixing) ? 'hasCn' : '']"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                            }"
                             v-html="convertText(sanitizeHTML(sItem.cixing))"
                           ></p>
 
@@ -895,6 +947,12 @@
                           <p
                             class="NPC-word-tab-common NPC-word-tab-def"
                             v-html="convertText(sanitizeHTML(sItem.def_str))"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                            }"
                           ></p>
                           <span
                             v-if="
@@ -935,7 +993,15 @@
                       >
                         <span class="collocation"
                           ><span>{{ convertText('搭配:') }}</span
-                          ><b v-html="convertText(sanitizeHTML(sItem.collocation))"></b
+                          ><b
+                            v-html="convertText(sanitizeHTML(sItem.collocation))"
+                            :style="{
+                              fontSize:
+                                data.unified_attrib && data.unified_attrib.font_size
+                                  ? data.unified_attrib.font_size
+                                  : '',
+                            }"
+                          ></b
                         ></span>
                         <span v-if="showLang" class="">
                           {{
@@ -951,7 +1017,15 @@
                         <span class="collocation"
                           ><span>{{ convertText('例句:') }}</span>
                           <div>
-                            <b v-html="convertText(sanitizeHTML(sItem.liju_list))"></b>
+                            <b
+                              v-html="convertText(sanitizeHTML(sItem.liju_list))"
+                              :style="{
+                                fontSize:
+                                  data.unified_attrib && data.unified_attrib.font_size
+                                    ? data.unified_attrib.font_size
+                                    : '',
+                              }"
+                            ></b>
                           </div>
                         </span>
                         <span v-if="showLang" class="">

+ 16 - 3
src/views/book/courseware/preview/components/notes/NotesPreview.vue

@@ -133,9 +133,22 @@
                   </span>
                 </div>
               </div>
-              <div class="NPC-notes-trans" v-html="convertText(sanitizeHTML(item.interpret))"></div>
-
-              <div v-if="item.note" class="NPC-notes-note" v-html="convertText(sanitizeHTML(item.note))"></div>
+              <div
+                class="NPC-notes-trans"
+                :style="{
+                  fontSize: data.unified_attrib && data.unified_attrib.font_size ? data.unified_attrib.font_size : '',
+                }"
+                v-html="convertText(sanitizeHTML(item.interpret))"
+              ></div>
+
+              <div
+                v-if="item.note"
+                class="NPC-notes-note"
+                :style="{
+                  fontSize: data.unified_attrib && data.unified_attrib.font_size ? data.unified_attrib.font_size : '',
+                }"
+                v-html="convertText(sanitizeHTML(item.note))"
+              ></div>
               <div v-if="item.file_list[0]" class="NPC-notes-note-img">
                 <el-image
                   :src="item.file_list[0].file_url"

+ 13 - 13
src/views/personal_workbench/check_task/index.vue

@@ -25,11 +25,11 @@
       <div class="textbook-chapter">
         <div ref="chapterHeader" class="chapter-header">
           <span class="cell">教材内容</span>
-          <span class="cell">最后编辑人</span>
-          <span class="cell">最后编辑时间</span>
           <span class="cell">制作人</span>
           <span class="cell">我的审核节点</span>
           <span class="cell">状态</span>
+          <span class="cell">最后编辑人</span>
+          <span class="cell">最后编辑时间</span>
         </div>
         <div ref="chapterList" class="chapter-list">
           <div
@@ -56,8 +56,6 @@
             >
               {{ name }}
             </span>
-            <span>{{ isTrue(is_leaf_chapter) ? last_editor_name : '' }}</span>
-            <span>{{ isTrue(is_leaf_chapter) ? last_edit_time : '' }}</span>
             <span :title="producer_list.map((producer) => producer.name).join(';')">
               {{ producer_list.map((producer) => producer.name).join(';') }}
             </span>
@@ -65,6 +63,8 @@
               {{ my_audit_node_desc }}
             </span>
             <span class="status">{{ status_name }}</span>
+            <span>{{ isTrue(is_leaf_chapter) ? last_editor_name : '' }}</span>
+            <span>{{ isTrue(is_leaf_chapter) ? last_edit_time : '' }}</span>
           </div>
         </div>
       </div>
@@ -293,14 +293,13 @@ export default {
         }
 
         :nth-child(2) {
-          width: 120px;
-          max-width: 120px;
+          width: 320px;
+          text-align: center;
         }
 
         :nth-child(3) {
-          width: 170px;
-          max-width: 170px;
-          font-weight: normal;
+          width: 140px;
+          text-align: center;
         }
 
         :nth-child(4) {
@@ -309,13 +308,14 @@ export default {
         }
 
         :nth-child(5) {
-          width: 320px;
-          text-align: center;
+          width: 120px;
+          max-width: 120px;
         }
 
         :last-child {
-          width: 140px;
-          text-align: center;
+          width: 170px;
+          max-width: 170px;
+          font-weight: normal;
         }
       }
 

+ 10 - 12
src/views/personal_workbench/edit_task/index.vue

@@ -25,10 +25,11 @@
       <div class="textbook-chapter">
         <div ref="chapterHeader" class="chapter-header">
           <span class="cell">教材内容</span>
-          <span class="cell">最后编辑人</span>
-          <span class="cell">最后编辑时间</span>
           <span class="cell">制作人</span>
+          <span class="cell">交稿日期</span>
           <span class="cell">状态</span>
+          <span class="cell">最后编辑人</span>
+          <span class="cell">最后编辑时间</span>
         </div>
         <div ref="chapterList" class="chapter-list">
           <div
@@ -42,6 +43,7 @@
               last_editor_name,
               last_edit_time,
               is_leaf_chapter,
+              edit_end_date,
             } in node_list"
             :key="id"
             :style="computedNameStyle(deep, isTrue(is_my_edit_task))"
@@ -54,12 +56,13 @@
             >
               {{ name }}
             </span>
-            <span>{{ isTrue(is_leaf_chapter) ? last_editor_name : '' }}</span>
-            <span>{{ isTrue(is_leaf_chapter) ? last_edit_time : '' }}</span>
             <span :title="producer_list.map((producer) => producer.name).join(';')">
               {{ producer_list.map((producer) => producer.name).join(';') }}
             </span>
+            <span>{{ edit_end_date }}</span>
             <span class="status">{{ status_name }}</span>
+            <span>{{ isTrue(is_leaf_chapter) ? last_editor_name : '' }}</span>
+            <span>{{ isTrue(is_leaf_chapter) ? last_edit_time : '' }}</span>
           </div>
         </div>
       </div>
@@ -286,22 +289,17 @@ export default {
         border-right: $border;
       }
 
-      :nth-child(2) {
+      :nth-child(5) {
         width: 120px;
         max-width: 120px;
+        border-right: $border;
       }
 
-      :nth-child(3) {
+      :nth-child(6) {
         width: 170px;
         max-width: 170px;
         font-weight: normal;
       }
-
-      :last-child {
-        width: 140px;
-        max-width: 140px;
-        text-align: center;
-      }
     }
 
     .textbook-chapter {