Jelajahi Sumber

1、判断题最少为一个 2、语音矩阵组件富文本统一属性 3、答案参考答案修改问题 4、最后编辑人时间放到最后 5、连线题不显示无内容项 6、我的编辑任务增加交稿日期

dsy 4 hari lalu
induk
melakukan
e439c630bc

+ 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": "智慧梧桐数字教材编辑器",

+ 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>

+ 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>

+ 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;
         }

+ 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 {