Browse Source

修改去掉多余的

lex-xin 2 months ago
parent
commit
760ea36958
2 changed files with 86 additions and 91 deletions
  1. 48 49
      src/tenant/music/music-detail/new-index.tsx
  2. 38 42
      src/views/music/music-detail/index.tsx

+ 48 - 49
src/tenant/music/music-detail/new-index.tsx

@@ -1,6 +1,6 @@
 import TheSticky from '@/components/the-sticky'
 import styles from './new-index.module.less'
-import { useEventListener, useThrottleFn, useWindowScroll } from '@vueuse/core'
+import { useThrottleFn } from '@vueuse/core'
 import { postMessage, promisefiyPostMessage } from '@/helpers/native-message'
 // import iconShare from '../../images/icon-share.png'
 import oStart from '../album-detail/icon-hart.png'
@@ -14,11 +14,8 @@ import {
   onMounted,
   onUnmounted,
   reactive,
-  ref,
-  toRaw,
-  watch
+  ref
 } from 'vue'
-import umiRequest from 'umi-request'
 import { useRoute, useRouter } from 'vue-router'
 import request from '@/helpers/request'
 import ColHeader from '@/components/col-header'
@@ -37,16 +34,16 @@ import {
   Picker
 } from 'vant'
 import { useRect } from '@vant/use'
-import { Vue3Lottie } from 'vue3-lottie'
+// import { Vue3Lottie } from 'vue3-lottie'
 import { getRandomKey, musicBuy } from '../music'
-import { getOssUploadUrl, state } from '@/state'
+import { state } from '@/state'
 import { browser, getHttpOrigin, moneyFormat } from '@/helpers/utils'
 import { orderStatus } from '@/views/order-detail/orderStatus'
-import AstronautJSON from './animate/refresh_anim.json'
+// import AstronautJSON from './animate/refresh_anim.json'
 // import ColShare from '@/components/col-share'
 import iconListen from './images/icon_listen.png'
-import iconTeacher from '@common/images/icon_teacher.png'
-import emtpy from './images/emtpy.png'
+// import iconTeacher from '@common/images/icon_teacher.png'
+// import emtpy from './images/emtpy.png'
 import { state as baseState } from '@/state'
 
 import activeButtonIcon from './images/icon_checkbox.png'
@@ -59,12 +56,7 @@ import Plyr from 'plyr'
 import 'plyr/dist/plyr.css'
 import Download from './download'
 import { getInstrumentName } from '@/constant/instruments'
-// import { getUploadSign, onOnlyFileUpload } from '@/helpers/oss-file-upload'
 import { svgtopng } from './formatSvgToImg'
-// import { shareCall } from '@/teacher/share-page/share'
-import deepClone from '@/helpers/deep-clone'
-import { formatXML, getCustomInfo, onlyVisible } from './instrument'
-import { data } from 'browserslist'
 
 export default defineComponent({
   name: 'new-index',
@@ -81,22 +73,9 @@ export default defineComponent({
     const headers = ref(null)
     const footers = ref(null)
     const heightInfo = ref<any>('0')
-    const musicDetail = ref<any>(null)
     const audioFileUrl = ref('')
-    const showImg = ref([] as any)
-    const firstList = ref<Array<any>>([])
-    const fixedList = ref<Array<any>>([])
-    const staffList = ref<Array<any>>([])
-    const musicPdfUrl = ref('')
 
     const partColumns = ref<any>([])
-
-    const uploadImgs = ref<boolean>(false)
-    const defaultImgs = ref({
-      first: false,
-      fixed: false,
-      staff: false
-    })
     const downloadStatus = ref<boolean>(false)
     const staff = reactive({
       status: false,
@@ -110,6 +89,7 @@ export default defineComponent({
     const onChangeStaff = (type: string) => {
       staff.radio = type
       staff.status = false
+      staffData.imgs = []
       if (type == 'FIRST') {
         loading.value = false
         const tempPdf = staffData.details?.firstPdfUrl
@@ -391,6 +371,22 @@ export default defineComponent({
         (item: any) => item.value === staffData.selectedPartIndex
       )
     })
+
+    // 是否转谱不能转,默认谱面不是五线谱时
+    const defaultConvertible = computed(() => {
+      const details = staffData.details
+      let isConvertibleScore = details.isConvertibleScore
+      let isHiddenStaff = false // 是否隐藏五线谱转谱
+
+      if(!isConvertibleScore && ["FIRST", "JIAN"].includes(details.scoreType)) {
+        isConvertibleScore = true
+        isHiddenStaff = true
+      }
+      return {
+        isConvertibleScore,
+        isHiddenStaff
+      }
+    })
     /** 渲染五线谱 */
     // 长笛、单簧管、萨克斯、小号、长号、圆号、大号、上低音号
     // const sortList = {
@@ -447,22 +443,22 @@ export default defineComponent({
     }
 
     // 根据当前选中的声部和曲目筛选出对应的声轨
-    function filterSoundInfo(musicalInstruments: any) {
-      if (musicalInstruments.length <= 0) return null
-      // 老师端,加上乐器id
-      const instrumentIds = staffData.instrumentId //appState.instrumentId || appState.user?.instrumentId || route.query.instrumentId
-      if (instrumentIds) {
-        const item =
-          musicalInstruments.find((item: any) => {
-            return (
-              instrumentIds == item.musicalInstrumentId &&
-              item.audioPlayType == 'PLAY'
-            )
-          }) || null
-        return item
-      }
-      return null
-    }
+    // function filterSoundInfo(musicalInstruments: any) {
+    //   if (musicalInstruments.length <= 0) return null
+    //   // 老师端,加上乐器id
+    //   const instrumentIds = staffData.instrumentId //appState.instrumentId || appState.user?.instrumentId || route.query.instrumentId
+    //   if (instrumentIds) {
+    //     const item =
+    //       musicalInstruments.find((item: any) => {
+    //         return (
+    //           instrumentIds == item.musicalInstrumentId &&
+    //           item.audioPlayType == 'PLAY'
+    //         )
+    //       }) || null
+    //     return item
+    //   }
+    //   return null
+    // }
 
     // 获取PDF
     const getCurrentPdf = (item: any, scoreType: string) => {
@@ -542,7 +538,10 @@ export default defineComponent({
       }
 
       if (row.musicSheetType === 'SINGLE') {
-        staffData.musicPdfUrl = row.musicPdfUrl
+        staffData.musicPdfUrl = getCurrentPdf(
+          defaultShowStaff,
+          row.scoreType
+        )
         // 生成的图片
         // staffData.imgs = row.musicImg ? row.musicImg.split(',') : [];
       } else {
@@ -566,7 +565,7 @@ export default defineComponent({
           if (row.defaultScoreRender) {
             pdfUrl = getCurrentPdf(row, row.scoreType)
           } else {
-            staffData.musicPdfUrl = getCurrentPdf(
+            pdfUrl = getCurrentPdf(
               defaultShowStaff,
               row.scoreType
             )
@@ -895,7 +894,7 @@ export default defineComponent({
         </div>
 
         <div class={styles.musicContent}>
-          {staffData.details?.isConvertibleScore ? (
+          {defaultConvertible.value.isConvertibleScore && staffData.details?.musicSheetType === 'SINGLE' ? (
             <span
               class={styles.iconTransfer}
               style={{
@@ -1177,7 +1176,7 @@ export default defineComponent({
             <div class={styles.staffTitle}>转换曲谱</div>
             <RadioGroup v-model={staff.radio}>
               <CellGroup border={false}>
-                <Cell
+                {!defaultConvertible.value.isHiddenStaff ? <Cell
                   center
                   border={false}
                   class={staff.radio === 'STAVE' ? styles.active : ''}
@@ -1206,7 +1205,7 @@ export default defineComponent({
                       </Radio>
                     )
                   }}
-                </Cell>
+                </Cell> : ""}
                 <Cell
                   center
                   border={false}

+ 38 - 42
src/views/music/music-detail/index.tsx

@@ -6,10 +6,8 @@ import {
   onMounted,
   onUnmounted,
   reactive,
-  ref,
-  watch
+  ref
 } from 'vue'
-import umiRequest from 'umi-request'
 import { useRoute, useRouter } from 'vue-router'
 import request from '@/helpers/request'
 import ColHeader from '@/components/col-header'
@@ -18,43 +16,37 @@ import {
   Button,
   Cell,
   CellGroup,
-  Checkbox,
   Dialog,
   Icon,
   Image,
   Popup,
   RadioGroup,
-  Sticky,
   Tag,
   Radio,
   Toast,
   Picker
 } from 'vant'
-import qs from 'query-string'
 import styles from './index.module.less'
 // import Item from '../list/item'
 import { useRect } from '@vant/use'
-import { Vue3Lottie } from 'vue3-lottie'
 import { getRandomKey, musicBuy } from '../music'
-import { getOssUploadUrl, state } from '@/state'
+import { state } from '@/state'
 // import { useEventTracking } from '@/helpers/hooks'
 import ColSticky from '@/components/col-sticky'
 import { browser, getHttpOrigin, moneyFormat } from '@/helpers/utils'
 import { orderStatus } from '@/views/order-detail/orderStatus'
 import iconShare from '@/views/music/album/icon_share.svg'
 import iconAlbum from './images/icon_album.png'
-import iconAlbum2 from './images/icon_album2.png'
+// import iconAlbum2 from './images/icon_album2.png'
 import iconDownload from './images/icon_download.png'
 import iconChange from './images/icon-change.png'
 import iconAddCourse from './images/icon-add-course.png'
 import iconRemoveCourse from './images/icon-remove-course.png'
 
-import AstronautJSON from './animate/bigLoad.json'
 import ColShare from '@/components/col-share'
 import iconCollect from './images/icon_collect.png'
 import iconCollectActive from './images/icon_collect_active.png'
 import iconListen from './images/icon_listen.png'
-import emtpy from './images/emtpy.png'
 
 import activeButtonIcon from '@common/images/icon_checkbox.png'
 import inactiveButtonIcon from '@common/images/icon_checkbox_default.png'
@@ -125,6 +117,22 @@ export default defineComponent({
       return partColumns.value.find((item: any) => item.value === staffData.selectedPartIndex)
     })
 
+    // 是否转谱不能转,默认谱面不是五线谱时
+    const defaultConvertible = computed(() => {
+      const details = staffData.details
+      let isConvertibleScore = details.isConvertibleScore
+      let isHiddenStaff = false // 是否隐藏五线谱转谱
+
+      if(!isConvertibleScore && ["FIRST", "JIAN"].includes(details.scoreType)) {
+        isConvertibleScore = true
+        isHiddenStaff = true
+      }
+      return {
+        isConvertibleScore,
+        isHiddenStaff
+      }
+    })
+
     const downloadStatus = ref<boolean>(false)
     const staff = reactive({
       status: false,
@@ -561,18 +569,18 @@ export default defineComponent({
    }
 
    // 根据当前选中的声部和曲目筛选出对应的声轨
-   function filterSoundInfo(musicalInstruments: any) {
-    if(musicalInstruments.length <= 0) return null
-    // 老师端,加上乐器id
-    const instrumentIds = staffData.instrumentId //appState.instrumentId || appState.user?.instrumentId || route.query.instrumentId
-    if (instrumentIds) {
-      const item =  musicalInstruments.find((item: any) => {
-             return instrumentIds == item.musicalInstrumentId && item.audioPlayType == 'PLAY'
-          }) || null
-      return item
-    }
-    return null
-  }
+  //  function filterSoundInfo(musicalInstruments: any) {
+  //   if(musicalInstruments.length <= 0) return null
+  //   // 老师端,加上乐器id
+  //   const instrumentIds = staffData.instrumentId //appState.instrumentId || appState.user?.instrumentId || route.query.instrumentId
+  //   if (instrumentIds) {
+  //     const item =  musicalInstruments.find((item: any) => {
+  //            return instrumentIds == item.musicalInstrumentId && item.audioPlayType == 'PLAY'
+  //         }) || null
+  //     return item
+  //   }
+  //   return null
+  // }
 
   // 获取PDF
   const getCurrentPdf = (item: any, scoreType: string) => {
@@ -643,7 +651,7 @@ export default defineComponent({
     
 
     if (row.musicSheetType === "SINGLE") {
-      staffData.musicPdfUrl = row.musicPdfUrl;
+      staffData.musicPdfUrl = getCurrentPdf(row, row.scoreType)
       // 生成的图片
       // staffData.imgs = row.musicImg ? row.musicImg.split(',') : []; 
     } else {
@@ -965,7 +973,7 @@ export default defineComponent({
                   <span>切换乐器</span>
                 </div>
                 {/* 独奏的才有转谱功能 */}
-                {staffData.details?.isConvertibleScore && staffData.details?.musicSheetType === 'SINGLE' ? (
+                {defaultConvertible.value.isConvertibleScore && staffData.details?.musicSheetType === 'SINGLE' ? (
                   <div
                     class={styles.functionItem}
                     style={{
@@ -1020,18 +1028,8 @@ export default defineComponent({
 
             <div class={styles.musicContent}>
               {staffData.details.id ? (
-                <>
-                  {staffData.musicPdfUrl ? (
-                    <>
-                      {/* {loading.value && (
-                        <>
-                          <Vue3Lottie
-                            animationData={AstronautJSON}
-                            class={styles.finch}
-                          ></Vue3Lottie>
-                          <p class={styles.finchLoad}>加载中...</p>
-                        </>
-                      )} */}
+                staffData.musicPdfUrl ? (
+                    
                       <iframe
                         style={{
                           opacity: loading.value ? 0 : 1,
@@ -1043,7 +1041,6 @@ export default defineComponent({
                           loading.value = false;
                         }}
                       ></iframe>
-                    </>
                   ) : (
                     <>
                       <p class={styles.musicTitle}>
@@ -1081,8 +1078,7 @@ export default defineComponent({
                         }}
                       ></iframe>
                     </>
-                  )}
-                </>
+                  )
               ) : null}
             </div>
           </div>
@@ -1271,7 +1267,7 @@ export default defineComponent({
               <div class={styles.staffTitle}>选择转换曲谱</div>
               <RadioGroup v-model={staff.radio}>
                 <CellGroup border={false}>
-                  <Cell
+                  {!defaultConvertible.value.isHiddenStaff ? <Cell
                     center
                     border={false}
                     class={staff.radio === 'STAVE' ? styles.active : ''}
@@ -1300,7 +1296,7 @@ export default defineComponent({
                         </Radio>
                       )
                     }}
-                  </Cell>
+                  </Cell> : ""}
                   <Cell
                     center
                     border={false}