lex-xin 8 mesi fa
parent
commit
e0e0d01567

+ 1 - 1
src/components/TheMessageDialog/index.module.less

@@ -1,5 +1,5 @@
 .studentRemove {
-  padding: 12px 40px 0;
+  padding: 12px 35px 0;
 
   p {
     font-size: max(18px, 14Px);

+ 3 - 1
src/styles/index.less

@@ -124,11 +124,13 @@ body>.n-drawer-container-relative {
 }
 
 .searchDate, .searchDateDefault {
+  font-size: max(18px, 13Px);
+  --n-height: max(40px, 36Px) !important;
+  
   --n-padding: 0 28px !important;
   background: linear-gradient( 312deg, #1B7AF8 0%, #3CBBFF 100%);
   border-radius: 8px;
   // line-height: 41px;
-  font-size: 18px !important;
   font-weight: 600 !important;
 
   .n-button__state-border, .n-button__border {

+ 4 - 0
src/views/classList/index.module.less

@@ -914,6 +914,10 @@
   display: flex;
   align-items: center;
 
+  span {
+    flex-shrink: 0;
+  }
+
   .sortIcon {
     margin-left: 7px;
     width: 13px;

+ 21 - 5
src/views/home/components/practiceData.tsx

@@ -149,7 +149,10 @@ export default defineComponent({
       },
       key: 'publishCount',
       sorter: true,
-      sortOrder: false as any
+      sortOrder: false as any,
+      render(row: any) {
+        return row.publishCount || 0
+      }
     });
 
     const publishScoreRef = reactive({
@@ -160,7 +163,10 @@ export default defineComponent({
       },
       key: 'publishScore',
       sorter: true,
-      sortOrder: false as any
+      sortOrder: false as any,
+      render(row: any) {
+        return row.publishScore || 0
+      }
     });
 
     const publishTimeRef = reactive({
@@ -171,7 +177,10 @@ export default defineComponent({
       },
       key: 'publishTime',
       sorter: true,
-      sortOrder: false as any
+      sortOrder: false as any,
+      render(row: any) {
+        return row.publishTime || '--'
+      }
     });
 
     const copyTo = (text: string) => {
@@ -221,7 +230,14 @@ export default defineComponent({
         },
         {
           title: '乐器',
-          key: 'instrumentName'
+          key: 'instrumentName',
+          render(row: any) {
+            return (
+              <>
+                {row.instrumentName || '--'}
+              </>
+            )
+          }
         },
         practiceDurationRef,
         practiceDaysRef,
@@ -231,7 +247,7 @@ export default defineComponent({
           title: () => <span style={{ display: 'flex', alignItems: 'center' }}>发布作品 <NTooltip showArrow={false}>
           {{
             trigger: () => (
-                <img src={iconQuestion} style={{ width: '16px', height: '16px', marginLeft: '4px', cursor: 'pointer' }}  />
+                <img src={iconQuestion} class={styles.tipImg}   />
             ),
             default: () => '筛选时间段内评测是否发布作品'
           }}

+ 7 - 0
src/views/home/index2.module.less

@@ -923,3 +923,10 @@
     height: 13px;
   }
 }
+
+.tipImg {
+  width: 16px;
+  height: 16px;
+  margin-left: 4px;
+  cursor: pointer;
+}

+ 10 - 1
src/views/prepare-lessons/components/lesson-main/courseware-head/index.tsx

@@ -149,6 +149,7 @@ export default defineComponent({
               status={checkForms.value[0]}
               onUpdate:value={() => {
                 checkForms.value[0] = forms.name ? '' : 'error';
+                eventGlobal.emit('coursewareHeadSyncData', getForms())
               }}
             />
           </div>
@@ -204,7 +205,9 @@ export default defineComponent({
               </NTooltip>
             </span>
 
-            <NSwitch v-model:value={forms.autoPlay} />
+            <NSwitch v-model:value={forms.autoPlay} onUpdate:value={() => {
+              eventGlobal.emit('coursewareHeadSyncData', getForms())
+            }} />
           </div>
           <div class={styles.btnItem}>
             <span class={styles.btnTitle}>
@@ -223,6 +226,9 @@ export default defineComponent({
                     <NSwitch
                       v-model:value={forms.openFlag}
                       disabled={!forms.openFlagEnable}
+                      onUpdate:value={() => {
+                        eventGlobal.emit('coursewareHeadSyncData', getForms())
+                      }}
                     />
                   ),
                   default: () =>
@@ -233,6 +239,9 @@ export default defineComponent({
               <NSwitch
                 v-model:value={forms.openFlag}
                 disabled={!forms.openFlagEnable}
+                onUpdate:value={() => {
+                  eventGlobal.emit('coursewareHeadSyncData', getForms())
+                }}
               />
             )}
           </div>

+ 22 - 10
src/views/prepare-lessons/components/lesson-main/courseware/addCourseware.tsx

@@ -149,7 +149,8 @@ export default defineComponent({
                 title: sub.bizInfo.name,
                 dataJson: sub.dataJson,
                 instrumentIds: sub.instrumentIds, // 素材编号
-                isError: checkCurrentIsInstrument(sub.instruments, sub.type), // 是否异常 当前素材是否在选中的乐器里面
+                isAllSubject: sub.isAllSubject,
+                isError: checkCurrentIsInstrument(sub.instrumentIds, sub.type, sub.isAllSubject), // 是否异常 当前素材是否在选中的乐器里面
                 // isCollect: !!sub.favoriteFlag,
                 isSelected: sub.source === 'PLATFORM' ? true : false,
                 audioPlayTypeArray: sub.audioPlayTypes
@@ -192,7 +193,7 @@ export default defineComponent({
     };
 
     /** 检测当前素材是否包含所选声部 */
-    const checkCurrentIsInstrument = (instruments: string, type: string) => {
+    const checkCurrentIsInstrument = (instruments: string, type: string, isAllSubject = false) => {
       // 当前素材是否在选中的乐器里面
       let isError = false 
       if(forms.subjects.length <= 0) {
@@ -204,7 +205,7 @@ export default defineComponent({
         return false
       }
       forms.subjects.forEach((item: any) => {
-        if(!instruments?.includes(item)) {
+        if(!instruments?.includes(item) && !isAllSubject) {
           isError = true
         }
       })
@@ -290,7 +291,7 @@ export default defineComponent({
           return;
         }
         if (forms.subjects.length <= 0) {
-          message.error('请选择声部');
+          message.error('请选择课件声部');
           forms.messageOperation.visiable = false;
           return;
         }
@@ -524,7 +525,7 @@ export default defineComponent({
           return;
         }
         if (forms.subjects.length <= 0) {
-          message.error('请选择声部');
+          message.error('请选择课件声部');
           return;
         }
         if (forms.coursewareList.length <= 0) {
@@ -622,11 +623,11 @@ export default defineComponent({
 
     const addItem = (item: any, point?: any) => {
       if(forms.subjects.length <= 0) {
-        message.error('请先选择乐器')
+        message.error('请先选择课件乐器')
         eventGlobal.emit('checkCoursewareForm', 'subject')
         return
       }
-      item.isError = checkCurrentIsInstrument(item.instrumentIds, item.type) // 是否异常
+      item.isError = checkCurrentIsInstrument(item.instrumentIds, item.type, item.isAllSubject) // 是否异常
       if (forms.coursewareList.length <= 0) {
         // 添加到临时对象
         forms.addCoursewareItem = item;
@@ -726,6 +727,14 @@ export default defineComponent({
       onSubmit();
     };
 
+    const syncLeftFormData = (item: any) => {
+      forms.subjects = item.subjects;
+      forms.openFlagEnable = item.openFlagEnable;
+      forms.autoPlay = item.autoPlay;
+      forms.name = item.name;
+      forms.openFlag = item.openFlag;
+    }
+
     // 声部变化时
     const onCourseWareSubjectChange = (subjects: any) => {
       forms.subjects = subjects
@@ -735,7 +744,7 @@ export default defineComponent({
       forms.coursewareList.forEach((item: any) => {
         const childList = item.list || []
         childList.forEach((child: any) => {
-          child.isError = checkCurrentIsInstrument(child.instrumentIds, child.type)
+          child.isError = checkCurrentIsInstrument(child.instrumentIds, child.type, child.isAllSubject)
           if(child.isError) {
             isTips = true
           }
@@ -766,6 +775,8 @@ export default defineComponent({
       eventGlobal.on('coursewareClosed', onCancelCourseware);
       // 保存
       eventGlobal.on('coursewareSave', onSubmitCourseware);
+      eventGlobal.on('coursewareHeadSyncData', syncLeftFormData);
+      
     });
 
     onUnmounted(() => {
@@ -774,6 +785,7 @@ export default defineComponent({
       eventGlobal.off('coursewareSubjectChange', onCourseWareSubjectChange)
       eventGlobal.off('coursewareClosed', onCancelCourseware);
       eventGlobal.off('coursewareSave', onSubmitCourseware);
+      eventGlobal.off('coursewareHeadSyncData', syncLeftFormData);
     });
 
     // 当列表数据更新时同步缓存数据
@@ -894,7 +906,8 @@ export default defineComponent({
                             refFlag: dropItem.refFlag,
                             isCollect: dropItem.isCollect,
                             isSelected: dropItem.isSelected,
-                            isError: checkCurrentIsInstrument(dropItem.instrumentIds, dropItem.type), // 是否异常
+                            isAllSubject: dropItem.isAllSubject,
+                            isError: checkCurrentIsInstrument(dropItem.instrumentIds, dropItem.type, dropItem.isAllSubject), // 是否异常
                             content: dropItem.content,
                             audioPlayTypeArray: dropItem.audioPlayTypeArray,
                             removeFlag: false,
@@ -902,7 +915,6 @@ export default defineComponent({
                           },
                           evt.newDraggableIndex
                         );
-                        // checkCurrentInstrumentTip(checkCurrentIsInstrument(dropItem.instrumentIds, dropItem.type))
                       }
                     }}
                     onDrag={(event: any) => {

+ 2 - 0
src/views/prepare-lessons/components/resource-main/components/resource-item/index.tsx

@@ -99,6 +99,7 @@ export default defineComponent({
             containAccompaniment: row.containAccompaniment,
             content: row.content,
             instrumentIds: row.instrumentIds,
+            isAllSubject: row.isAllSubject,
             sourceForm: 'resource-item',
             audioPlayTypeArray: row.audioPlayTypes
               ? row.audioPlayTypes.split(',')
@@ -159,6 +160,7 @@ export default defineComponent({
           isSelected: item.isSelected,
           audioPlayTypeArray: item.audioPlayTypeArray,
           instrumentIds: item.instrumentIds,
+          isAllSubject: item.isAllSubject,
           content: item.content,
           removeFlag: false
         });

+ 2 - 0
src/views/prepare-lessons/model/select-resources/select-item/index.tsx

@@ -112,6 +112,7 @@ export default defineComponent({
             isSelected: row.sourceFrom === 'PLATFORM' ? true : false,
             refFlag: row.refFlag,
             instrumentIds: row.instrumentIds,
+            isAllSubject: row.isAllSubject,
             audioPlayTypeArray: row.audioPlayTypes
               ? row.audioPlayTypes.split(',')
               : [],
@@ -155,6 +156,7 @@ export default defineComponent({
           isSelected: item.isSelected,
           audioPlayTypeArray: item.audioPlayTypeArray,
           instrumentIds: item.instrumentIds,
+          isAllSubject: item.isAllSubject,
           content: item.content,
           removeFlag: false
         });

+ 11 - 4
src/views/studentList/components/evaluationRecords.tsx

@@ -109,7 +109,7 @@ export default defineComponent({
       {{
         trigger: () => (
           <div class={styles.cell}>
-            {title}
+            <span>{title}</span>
             <img
               class={styles.sortIcon}
               src={
@@ -209,7 +209,10 @@ export default defineComponent({
       },
       key: 'userMusicTime',
       sorter: true,
-      sortOrder: false as any
+      sortOrder: false as any,
+      render(row: any) {
+        return row.userMusicTime || '--'
+      }
     });
 
     const columns = () => {
@@ -249,7 +252,10 @@ export default defineComponent({
         },
         {
           title: '乐器',
-          key: 'instrumentName'
+          key: 'instrumentName',
+          render(row: any) {
+            return row.instrumentName || '--'
+          }
         },
         evaluationProgressRef,
         scoreRef,
@@ -266,6 +272,7 @@ export default defineComponent({
         userMusicTimeRef,
         {
           title: '操作',
+          fixed: 'right',
           key: 'id',
           render(row: any) {
             return (
@@ -447,7 +454,7 @@ export default defineComponent({
       // 下载资源
       const fileUrl = row.videoFilePath || row.recordFilePath;
       const filename =
-        row.musicSheetName + route.query.studentName + ( row.userMusicTime ? dayjs( row.userMusicTime) : '');
+        row.musicSheetName + '-' + route.query.studentName + '-' + ( row.userMusicTime ? dayjs(row.userMusicTime).format('YYYYMMDDHHmmss') : '');
       const sfixx = fileUrl.substring(fileUrl.lastIndexOf('.'));
       // 发起Fetch请求
       fetch(fileUrl)

+ 4 - 0
src/views/studentList/index.module.less

@@ -661,6 +661,10 @@
   display: flex;
   align-items: center;
 
+  span {
+    flex-shrink: 0;
+  }
+
   .sortIcon {
     margin-left: 7px;
     width: 13px;