Bladeren bron

fix: bug修复

TIANYONG 11 maanden geleden
bovenliggende
commit
0bba80cfa8

+ 3 - 0
src/page-instrument/custom-plugins/work-ealuating/index.tsx

@@ -80,6 +80,9 @@ export default defineComponent({
 			getWorkData();
 			// verifyMembershipServices();
 		});
+		expose({
+			getWorkData
+		})		
 		return () => <div></div>;
 	},
 });

+ 2 - 1
src/page-instrument/custom-plugins/work-home/index.tsx

@@ -102,7 +102,8 @@ export default defineComponent({
 			// verifyMembershipServices();
 		});
 		expose({
-			handleAdd
+			handleAdd,
+			getWorkData
 		})
 		return () => (
 			<div class={styles.homework}>

+ 14 - 1
src/page-instrument/custom-plugins/work-index/index.tsx

@@ -5,8 +5,10 @@ import { getQuery } from "/src/utils/queryString";
 import { api_lessonTrainingTrainingStudentDetail } from "../../api";
 import { headTopData } from "../../header-top";
 import { evaluatingData } from "/src/view/evaluating";
+import state from "/src/state";
 
 const workHomeRef = ref();
+const workEvaluatRef = ref();
 
 export const data = reactive({
 	/** 作业类型:练习PRACTICE, 评测EVALUATION */
@@ -20,6 +22,17 @@ export const HANDLE_WORK_ADD = () => {
 	}
 };
 
+// 刷新谱面后,设置作业选段
+export const resetSection = () => {
+	if (data.trainingType === "PRACTICE"){
+		workHomeRef.value?.getWorkData();
+	}
+	if (data.trainingType === "EVALUATION") {
+		workHomeRef.value?.getWorkData();
+	}
+	state.workSectionNeedReset = false;
+};
+
 export default defineComponent({
 	name: "workIndex",
 	setup(props) {
@@ -56,7 +69,7 @@ export default defineComponent({
 				{data.trainingType === "PRACTICE" && <WorkHome ref={workHomeRef} workeData={data.worke} />}
 				{/* 评测作业 */}
 				{data.trainingType === "EVALUATION" && (
-					<WorkEaluating workeData={data.worke} />
+					<WorkEaluating ref={workEvaluatRef} workeData={data.worke} />
 				)}
 			</>
 		);

+ 4 - 2
src/page-instrument/view-detail/index.tsx

@@ -22,7 +22,7 @@ import Tick, { handleInitTick } from "/src/view/tick";
 import FollowPractice, { followData } from "/src/view/follow-practice";
 import FollowModel from "../follow-model";
 import RecordingTime from "../custom-plugins/recording-time";
-import WorkIndex from "../custom-plugins/work-index";
+import WorkIndex, { resetSection } from "../custom-plugins/work-index";
 import TheMusicList, { isMusicList } from "../component/the-music-list";
 import { storeData } from "/src/store";
 import ViewFigner from "../view-figner";
@@ -277,7 +277,9 @@ export default defineComponent({
 
       evaluatCreateMusicPlayer();
       resetPlaybackToStart();
-
+      if (state.workSectionNeedReset) {
+        resetSection();
+      }
       // pushAppMusic();
       // console.timeEnd("渲染加载耗时");
     };

+ 7 - 1
src/state.ts

@@ -547,6 +547,8 @@ const state = reactive({
   xmlHasLyric: false,
   /** 生成图片的模式 */
   isCreateImg: false,
+  /** 切换谱面后,作业选段是否需要刷新 */
+  workSectionNeedReset: false,
 });
 const browserInfo = browser();
 let offset_duration = 0;
@@ -1418,7 +1420,8 @@ const setState = (data: any, index: number) => {
   /**
    * 单曲,指法根据用户当前的乐器来显示,如果没有则取musicSheetSoundList第一个track
    */
-  let musicalCode = !storeData.user?.instrumentId ? data.musicSheetSoundList?.find((item:any)=>{ return item.audioPlayType === "PLAY" })?.track || '' : data.musicSheetSoundList?.find((item: any) => item?.musicalInstrumentId == storeData.user?.instrumentId && item.audioPlayType === "PLAY")?.track || '';
+  const currentInstrumentId = query.instrumentId || storeData.user?.instrumentId;
+  let musicalCode = !currentInstrumentId ? data.musicSheetSoundList?.find((item:any)=>{ return item.audioPlayType === "PLAY" })?.track || '' : data.musicSheetSoundList?.find((item: any) => item?.musicalInstrumentId == currentInstrumentId && item.audioPlayType === "PLAY")?.track || '';
   const pitchSubject = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === subjectCode.toLocaleLowerCase())
   const pitchMusical = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === musicalCode.toLocaleLowerCase())
   state.subjectCodeId = pitchSubject ? pitchSubject.id : 0
@@ -1864,6 +1867,9 @@ export const refreshMusicSvg = () => {
   clearSelection();
   resetBaseRate();
   state.activeMeasureIndex = -1;
+  if (query.workRecord) {
+    state.workSectionNeedReset = true;
+  }
   // 销毁旋律线
   destroySmoothAnimation()
   musicScoreRef.value?.refreshMusicScore()