Переглянути джерело

Merge branch 'iteration-20240729' into online

lex 9 місяців тому
батько
коміт
a4ea5df837
1 змінених файлів з 71 додано та 48 видалено
  1. 71 48
      src/views/co-ai/index.tsx

+ 71 - 48
src/views/co-ai/index.tsx

@@ -114,11 +114,10 @@ export default defineComponent({
     const showGuide = ref(false);
 
     const _actions = computed(() => {
-      return [
-        {
-          value: 'staff',
-          text: '五线谱'
-        },
+      const details = data.musics[data.musicIndex];
+      let { scoreType, isConvertibleScore } = details || {};
+
+      let action: any[] = [
         {
           value: 'first',
           text: '首调'
@@ -127,7 +126,20 @@ export default defineComponent({
           value: 'fixed',
           text: '固定调'
         }
-      ].map((item, index) => {
+      ];
+
+      if (
+        !(
+          ['JIAN', 'FIRST'].includes(scoreType) && isConvertibleScore === false
+        ) &&
+        !(isConvertibleScore === undefined || isConvertibleScore === null)
+      ) {
+        action.unshift({
+          value: 'staff',
+          text: '五线谱'
+        });
+      }
+      return action.map((item, index) => {
         return {
           ...item,
           color:
@@ -323,18 +335,6 @@ export default defineComponent({
 
     // 根据musicSheetType返回的值,判断是否显示切换声轨按钮
     const isEnsemble = computed(() => {
-      // const musics = data.musics[data.musicIndex]?.musicalInstruments;
-      // if (musics && musics.length) {
-      //   let list: any = [];
-      //   const arr = musics.forEach((item: any) => {
-      //     list.push({ name: item.name, code: item.code });
-      //   });
-      // }
-      // if (musics && musics.length > 1) {
-      //   return true;
-      // } else {
-      //   return false;
-      // }
       if (data.musics.length) {
         const musicSheetType = data.musics[data.musicIndex]?.musicSheetType;
         if (musicSheetType === 'SINGLE') {
@@ -347,6 +347,21 @@ export default defineComponent({
       }
     });
 
+    // 判断是否可转谱 - 为空也可以转谱
+    const checkConverTible = (isConvertibleScore: any, scoreType: string) => {
+      if (
+        isConvertibleScore ||
+        isConvertibleScore === '' ||
+        isConvertibleScore === undefined ||
+        isConvertibleScore === null ||
+        (['JIAN', 'FIRST'].includes(scoreType) && !isConvertibleScore)
+      ) {
+        return true;
+      } else {
+        return false;
+      }
+    };
+
     const getSubjecList = async () => {
       try {
         let subjectIds = state.user.data?.subjectId || '';
@@ -397,19 +412,18 @@ export default defineComponent({
         }
       } else {
         // showMusicImg: 'first' as 'staff' | 'first' | 'fixed',
-        const { defaultScore, transferFlag } =
-          details.musicalInstruments[0] || {};
-        let musicImgType: 'staff' | 'first' | 'fixed' = 'staff';
+        const { scoreType, isConvertibleScore } = details || {};
+        let musicImgType: 'staff' | 'first' | 'fixed' = 'first';
         musicImgType =
-          defaultScore === 'STAVE'
+          scoreType === 'STAVE'
             ? 'staff'
-            : defaultScore === 'JIAN'
+            : scoreType === 'JIAN'
             ? 'fixed'
-            : defaultScore === 'FIRST'
+            : scoreType === 'FIRST'
             ? 'first'
-            : 'staff';
+            : 'first';
         data.showMusicImg = musicImgType;
-        data.showTransBtn = transferFlag;
+        data.showTransBtn = checkConverTible(isConvertibleScore, scoreType);
       }
     };
 
@@ -461,29 +475,38 @@ export default defineComponent({
       let track = arr.find(
         (item: any) => item.value === data.selectMusicInstrumentIndex
       )?.track;
-      // track = track
-      //   .replace(/[0-9]+/g, '')
-      //   .replace(/\s/g, '')
-      //   .toLocaleLowerCase();
       track = trackToCode(track);
-      // console.log(123,track)
-      let musicRenderType: 'staff' | 'first' | 'fixed' = 'staff';
-      let canTrans = true;
-      data.musics[data.musicIndex]?.musicalInstruments.forEach((item: any) => {
-        if (item.code.toLocaleLowerCase() === track.toLocaleLowerCase()) {
-          musicRenderType =
-            item.defaultScore === 'STAVE'
-              ? 'staff'
-              : item.defaultScore === 'JIAN'
-              ? 'fixed'
-              : item.defaultScore === 'FIRST'
-              ? 'first'
-              : 'staff';
-          canTrans = item.transferFlag;
-        }
-      });
-      data.showTransBtn = canTrans;
-      data.showMusicImg = musicRenderType;
+
+      // let musicRenderType: 'staff' | 'first' | 'fixed' = 'staff';
+      // let canTrans = true;
+      // data.musics[data.musicIndex]?.musicalInstruments.forEach((item: any) => {
+      //   if (item.code.toLocaleLowerCase() === track.toLocaleLowerCase()) {
+      //     musicRenderType =
+      //       item.defaultScore === 'STAVE'
+      //         ? 'staff'
+      //         : item.defaultScore === 'JIAN'
+      //         ? 'fixed'
+      //         : item.defaultScore === 'FIRST'
+      //         ? 'first'
+      //         : 'staff';
+      //     canTrans = item.transferFlag;
+      //   }
+      // });
+      // data.showTransBtn = canTrans;
+      // data.showMusicImg = musicRenderType;
+      const details = data.musics[data.musicIndex];
+      const { scoreType, isConvertibleScore } = details || {};
+      let musicImgType: 'staff' | 'first' | 'fixed' = 'first';
+      musicImgType =
+        scoreType === 'STAVE'
+          ? 'staff'
+          : scoreType === 'JIAN'
+          ? 'fixed'
+          : scoreType === 'FIRST'
+          ? 'first'
+          : 'first';
+      data.showMusicImg = musicImgType;
+      data.showTransBtn = checkConverTible(isConvertibleScore, scoreType);
     };
     watch(
       () => data.musicIndex,