Kaynağa Gözat

管乐迷曲谱逻辑修改

skyblued 2 yıl önce
ebeveyn
işleme
182b059c91
30 değiştirilmiş dosya ile 138 ekleme ve 2917 silme
  1. 25 0
      npm-shrinkwrap.json
  2. 1 0
      package.json
  3. 59 52
      src/music-sheet/index.tsx
  4. 4 4
      src/pages/detail/state.ts
  5. 0 0
      src/subpages/colexiu/buttons/data/start.json
  6. 0 0
      src/subpages/colexiu/buttons/data/starting.json
  7. 18 39
      src/subpages/colexiu/buttons/evaluating.tsx
  8. BIN
      src/subpages/colexiu/buttons/icons/model-1.png
  9. BIN
      src/subpages/colexiu/buttons/icons/model-2.png
  10. BIN
      src/subpages/colexiu/buttons/icons/model-3.png
  11. 10 14
      src/subpages/colexiu/buttons/icons/reset.svg
  12. 2 2
      src/subpages/colexiu/buttons/index.module.less
  13. 1 1
      src/subpages/colexiu/buttons/index.tsx
  14. 2 2
      src/subpages/colexiu/buttons/model-wraper.module.less
  15. 1 1
      src/subpages/colexiu/buttons/player.tsx
  16. 1 20
      src/subpages/colexiu/index.tsx
  17. 4 4
      src/subpages/colexiu/popups/evaluating/content.tsx
  18. BIN
      src/subpages/colexiu/popups/evaluating/icons/1.png
  19. 0 730
      src/subpages/colexiu/popups/evaluating/icons/1.svg
  20. BIN
      src/subpages/colexiu/popups/evaluating/icons/2.png
  21. 0 540
      src/subpages/colexiu/popups/evaluating/icons/2.svg
  22. BIN
      src/subpages/colexiu/popups/evaluating/icons/3.png
  23. 0 514
      src/subpages/colexiu/popups/evaluating/icons/3.svg
  24. BIN
      src/subpages/colexiu/popups/evaluating/icons/4.png
  25. 0 488
      src/subpages/colexiu/popups/evaluating/icons/4.svg
  26. BIN
      src/subpages/colexiu/popups/evaluating/icons/5.png
  27. 0 498
      src/subpages/colexiu/popups/evaluating/icons/5.svg
  28. 1 1
      src/subpages/colexiu/popups/permission/index.module.less
  29. 0 6
      src/subpages/colexiu/uses/use-evaluat.ts
  30. 9 1
      yarn.lock

+ 25 - 0
npm-shrinkwrap.json

@@ -39,6 +39,7 @@
         "vantage-point-tree": "0.0.4",
         "vue": "^3.2.33",
         "vue-router": "^4.0.4",
+        "vue3-lottie": "^2.4.0",
         "wa-metro": "^1.1.2"
       },
       "devDependencies": {
@@ -10111,6 +10112,21 @@
         "@vue/shared": "3.2.33"
       }
     },
+    "node_modules/vue3-lottie": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/vue3-lottie/-/vue3-lottie-2.4.0.tgz",
+      "integrity": "sha512-arNBADu3vW+1Lf+Pw32mU9T6X7c1bMn1tBvJ0/uo+W0G/0UxHyCwoXzyYIKZWB0WoeEvdo5x7HCf8VH0J7rLsw==",
+      "dependencies": {
+        "lodash": "^4.17.21",
+        "lottie-web": "^5.8.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependencies": {
+        "vue": "^3.2"
+      }
+    },
     "node_modules/wa-metro": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/wa-metro/-/wa-metro-1.1.2.tgz",
@@ -18713,6 +18729,15 @@
       "integrity": "sha512-uN6PDEaYdU9aRO7mU+Dkr1uaY49hV3fucEDG/Vre/Qj8ct3RoJS16vcPrvKVzn69zDDjBV5b9Xw7fZA9r6b/Iw==",
       "requires": {}
     },
+    "vue3-lottie": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/vue3-lottie/-/vue3-lottie-2.4.0.tgz",
+      "integrity": "sha512-arNBADu3vW+1Lf+Pw32mU9T6X7c1bMn1tBvJ0/uo+W0G/0UxHyCwoXzyYIKZWB0WoeEvdo5x7HCf8VH0J7rLsw==",
+      "requires": {
+        "lodash": "^4.17.21",
+        "lottie-web": "^5.8.1"
+      }
+    },
     "wa-metro": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/wa-metro/-/wa-metro-1.1.2.tgz",

+ 1 - 0
package.json

@@ -38,6 +38,7 @@
     "vantage-point-tree": "0.0.4",
     "vue": "^3.2.33",
     "vue-router": "^4.0.4",
+    "vue3-lottie": "^2.4.0",
     "wa-metro": "^1.1.2"
   },
   "devDependencies": {

+ 59 - 52
src/music-sheet/index.tsx

@@ -25,7 +25,7 @@ export default defineComponent({
   props: {
     isSoundEffect: {
       type: Boolean,
-      default: false
+      default: false,
     },
     score: {
       type: String,
@@ -72,49 +72,50 @@ export default defineComponent({
           svgEL?.setAttribute('width', _w)
           svgEL?.setAttribute('height', _w * ratio + '')
         }
-        emit('loaddingEnd')
       }
     }
+    const getNotePosition = (times: any[]) => {
+      for (let i = 0; i < times.length; i++) {
+        const item = times[i]
+
+        if (item?.svgElelent?.bbox) {
+          item.svgElelent.bbox.x *= detailState.zoom
+          item.svgElelent.bbox.y *= detailState.zoom
+          item.svgElelent.bbox.w *= detailState.zoom
+          item.svgElelent.bbox.h *= detailState.zoom
+        }
+        if (item.noteElement?.sourceMeasure?.verticalMeasureList?.[0]?.boundingBox) {
+          item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.absolutePosition.x *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.absolutePosition.y *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.size.width *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.size.height *= detailState.zoom
+        }
+        if (item.noteElement?.sourceMeasure?.verticalMeasureList?.[0]?.stave) {
+          item.noteElement.sourceMeasure.verticalMeasureList[0].stave.x *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].stave.y *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].stave.width *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].stave.height *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].stave.start_x *= detailState.zoom
+          item.noteElement.sourceMeasure.verticalMeasureList[0].stave.end_x *= detailState.zoom
+        }
+        if (item?.cursorBox?.move) {
+          console.log(detailState.zoom)
+          // console.log("🚀 ~ item.cursorBox.x", item.cursorBox.x * detailState.zoom, item?.svgElelent?.bbox?.x)
+          // item.cursorBox.x = item?.svgElelent?.bbox?.x ? formatZoom(item.svgElelent.bbox.x) : item.cursorBox.x * detailState.zoom
+          item.cursorBox.x *= detailState.zoom
+          item.cursorBox.y = item.cursorBox.y * detailState.zoom + 10
+          item.cursorBox.w *= detailState.zoom
+          item.cursorBox.h *= detailState.zoom
+        }
+      }
+      return times
+    }
     // 获取json数据
     const getMusicJson = async (url: string) => {
       const res = await axios.get(url)
       SettingState.sett.scoreSize = res?.osmd?.scoreSize || 'middle'
       if (res && Array.isArray(res.times)) {
-        for (let i = 0; i < res.times.length; i++) {
-          const item = res.times[i]
-
-          if (item?.svgElelent?.bbox) {
-            item.svgElelent.bbox.x *= detailState.zoom
-            item.svgElelent.bbox.y *= detailState.zoom
-            item.svgElelent.bbox.w *= detailState.zoom
-            item.svgElelent.bbox.h *= detailState.zoom
-          }
-          if (item.noteElement?.sourceMeasure?.verticalMeasureList?.[0]?.boundingBox) {
-            item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.absolutePosition.x *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.absolutePosition.y *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.size.width *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].boundingBox.size.height *= detailState.zoom
-          }
-          if (item.noteElement?.sourceMeasure?.verticalMeasureList?.[0]?.stave) {
-            item.noteElement.sourceMeasure.verticalMeasureList[0].stave.x *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].stave.y *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].stave.width *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].stave.height *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].stave.start_x *= detailState.zoom
-            item.noteElement.sourceMeasure.verticalMeasureList[0].stave.end_x *= detailState.zoom
-          }
-          if (item?.cursorBox?.move) {
-            // console.log(detailState.zoom)
-            // console.log("🚀 ~ item.cursorBox.x", item.cursorBox.x * detailState.zoom, item?.svgElelent?.bbox?.x)
-            // item.cursorBox.x = item?.svgElelent?.bbox?.x ? formatZoom(item.svgElelent.bbox.x) : item.cursorBox.x * detailState.zoom
-            item.cursorBox.x *= detailState.zoom
-            item.cursorBox.y = item.cursorBox.y * detailState.zoom + 10
-            item.cursorBox.w *= detailState.zoom
-            item.cursorBox.h *= detailState.zoom
-          }
-        }
-
-        detailState.times = res.times
+        detailState.times = getNotePosition(res.times) // res.times
         if (detailState.times?.[0]?.cursorBox?.move) {
           // 初始化cursor
           res.osmd.cursor = new Cursor({ ...detailState.times?.[0]?.cursorBox })
@@ -157,8 +158,12 @@ export default defineComponent({
       // console.log( SettingState.sett.keySignature, detailState.activeDetail)
       if (
         (SettingState.sett.type === 'staff' && !detailState?.activeDetail?.musicSvg) || // 没有五线谱缓存数据
-        (SettingState.sett.type === 'jianpu' && SettingState.sett.keySignature && !detailState?.activeDetail?.musicFirstSvg) || // 没有固定调缓存数据
-        (SettingState.sett.type === 'jianpu' && !SettingState.sett.keySignature && !detailState?.activeDetail?.musicJianSvg) // 没有首调缓存数据
+        (SettingState.sett.type === 'jianpu' &&
+          SettingState.sett.keySignature &&
+          !detailState?.activeDetail?.musicFirstSvg) || // 没有固定调缓存数据
+        (SettingState.sett.type === 'jianpu' &&
+          !SettingState.sett.keySignature &&
+          !detailState?.activeDetail?.musicJianSvg) // 没有首调缓存数据
       ) {
         setOsdm()
         return
@@ -168,10 +173,12 @@ export default defineComponent({
         if (SettingState.sett.type === 'staff' && detailState.activeDetail?.musicSvg) {
           renderData = JSON.parse(detailState.activeDetail.musicSvg)
         } else {
-          if (SettingState.sett.keySignature && detailState.activeDetail?.musicFirstSvg) { //固定调
+          if (SettingState.sett.keySignature && detailState.activeDetail?.musicFirstSvg) {
+            //固定调
             renderData = JSON.parse(detailState.activeDetail.musicFirstSvg)
-          } else { // 首调
-            if(detailState.activeDetail?.musicJianSvg){
+          } else {
+            // 首调
+            if (detailState.activeDetail?.musicJianSvg) {
               renderData = JSON.parse(detailState.activeDetail.musicJianSvg)
             }
           }
@@ -180,7 +187,7 @@ export default defineComponent({
         console.error(error)
         detailState.renderType = 'native'
       }
-      if (renderData && !props.isSoundEffect){
+      if (renderData && !props.isSoundEffect) {
         productJsonAndSvg(renderData)
       } else {
         setOsdm()
@@ -217,7 +224,7 @@ export default defineComponent({
     const setRender = async ({ score: s }: SetRenderOptions = {}) => {
       const renderScore = s || score.value
       // console.log(renderScore)
-      Toast('加载中,请稍后...')
+      // Toast('加载中,请稍后...')
       setTimeout(async () => {
         if (osmd && osmd.value && renderScore) {
           await osmd.value.clear()
@@ -238,14 +245,10 @@ export default defineComponent({
     }
 
     const reRender = async () => {
+      // if (detailState.renderType == 'cache'){
+      //   detailState.times = getNotePosition(detailState.times)
+      // }
       await osmd.value?.render()
-      // postMessage({
-      //   api: 'cloudLoading',
-      //   content: {
-      //     show: false,
-      //     type: 'fullscreen',
-      //   },
-      // })
     }
 
     const resetFormate = () => {
@@ -616,7 +619,11 @@ export default defineComponent({
 
     return () => {
       return (
-        <div id="svgContainer" class={styles.container} style={{ position: 'relative' }}>
+        <div
+          id="svgContainer"
+          class={styles.container}
+          style={{ position: 'relative', display: 'flex', justifyContent: 'center' }}
+        >
           <div ref={container}></div>
           {/* 小节覆盖层 */}
           {props.showSection && (

+ 4 - 4
src/pages/detail/state.ts

@@ -82,10 +82,10 @@ watchEffect(() => {
     state.isPercussion = state.subjectId == 23 || state.subjectId == 113
   }
   if (state.renderLoading) {
-    toastItem = Toast({
-      duration: 0,
-      message: '加载中...',
-    })
+    // toastItem = Toast({
+    //   duration: 0,
+    //   message: '加载中...',
+    // })
   } else {
     if (toastItem) {
       toastItem.close()

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
src/subpages/colexiu/buttons/data/start.json


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
src/subpages/colexiu/buttons/data/starting.json


+ 18 - 39
src/subpages/colexiu/buttons/evaluating.tsx

@@ -1,11 +1,8 @@
 import { Button, Toast } from 'vant'
 import { defineComponent, Directive, onBeforeUnmount, onMounted, Ref, ref, Teleport } from 'vue'
 import '@dotlottie/player-component'
-import ButtonIcon from './icon'
 import detailState from '/src/pages/detail/state'
 import SettingState from '/src/pages/detail/setting-state'
-import appState from '/src/state'
-import { Fraction } from '/osmd-extended/src'
 import {
   IPostMessage,
   listenerMessage,
@@ -21,13 +18,13 @@ import { startButtonShow } from './index'
 import { getLeveByScoreMeasure } from '/src/pages/detail/evaluating/helper'
 import Evaluating, { evaluatingShow } from '../popups/evaluating'
 // @ts-ignore
-import StartEvaluating from './dotlotties/start-evaluating.lottie?url'
 import iconStartEvaluating from './dotlotties/StartEvaluating.png'
 import iconRecord from './dotlotties/iconRecord.png'
 // @ts-ignore
-import Recording from './dotlotties/recording2.lottie?url'
-import request from '/src/helpers/request'
 import styles from './index.module.less'
+import { Vue3Lottie } from 'vue3-lottie'
+import startData from './data/start.json'
+import startingData from './data/starting.json'
 
 let backtime = 0
 
@@ -255,13 +252,11 @@ const startPlay = () => {
 
 const setPlayer = async () => {
   console.log('调用setPlayer')
-  // this.startloading = true
   runtime.clickTime = new Date().getTime()
   RuntimeUtils.resetPlayStatus()
   runtime.evaluatingTips = false
   if (detailState.isPauseRecording) {
     evaluating.value = false
-    // this.startloading = false
     startPlay()
     return
   }
@@ -276,6 +271,7 @@ const setPlayer = async () => {
     await connect()
     startPlay()
     setTimeout(() => {
+      console.log('关闭弹窗')
       Toast.clear()
       hint.close()
     }, 100)
@@ -410,36 +406,17 @@ const start = () => {
 }
 
 /**
- * 活动接口,Url中有设置并且仅在学生端提评分交数据
+ * 酷乐秀活动接口,Url中有设置并且仅在学生端提评分交数据
+ * 管乐团单元测验, url中有单元测验ID仅在学生端提评分交数据
  */
 const submitEvaluationScore = async (data: any) => {
-  if (detailState.setting && detailState.setting.mode === 'EVALUATING') {
+  const search = useOriginSearch()
+  if (search.unitId) {
     if (!canSubmit.value) {
       Toast('请完成整首曲目评测!')
       return
     }
-    try {
-      await request.post('/activity/evaluationScore', {
-        requestType: 'json',
-        data: {
-          userId: appState.user.userId,
-          score: data.score,
-          ...detailState.setting.submitData,
-        },
-      })
-    } catch (error) {}
-    canSubmit.value = false
-  }
-}
-
-/** 活动使用,只有在全部评测完成后才能提交,避免只是一小节就高分的情况 */
-const canSubmit = ref(false)
-
-/** 有单元测验时,存储分数缓存 */
-const setUnitReuslt = () => {
-  // 评测结束,如果是单元测验
-  const search = useOriginSearch()
-  if (search.unitId) {
+    /** 有单元测验时,存储分数缓存 */
     postMessage({
       api: 'setCache',
       content: {
@@ -448,13 +425,18 @@ const setUnitReuslt = () => {
           musicId: search.id || '',
           unitId: search.unitId || '',
           questionId: search.questionId || '',
-          score: (endResult.value as any)?.score || 0,
+          score: canSubmit.value ? ((endResult.value as any)?.score || 0) : 0,
         }),
       },
     })
+    canSubmit.value = false
   }
 }
 
+/** 活动使用,只有在全部评测完成后才能提交,避免只是一小节就高分的情况 */
+const canSubmit = ref(false)
+
+
 const sendResult = (evt?: IPostMessage) => {
   console.log('评测返回', evt?.content)
   if (evt?.content) {
@@ -465,7 +447,6 @@ const sendResult = (evt?: IPostMessage) => {
       endResult.value = data
       evaluatingShow.value = true
       submitEvaluationScore(data)
-      setUnitReuslt()
     } else if (evt?.content.header.commond === 'checkDone') {
       // 此处已经在校音中单独监听不做处理
     } else if (evt?.content.header.commond === 'checking') {
@@ -482,7 +463,7 @@ const sendResult = (evt?: IPostMessage) => {
       }
       const setEvaluatings = (note: any, data: any, dontTransition = false) => {
         const startNote = getBoundingBoxByverticalNote(note)
-        console.log(detailState.evaluatings, startNote)
+        // console.log(detailState.evaluatings, startNote)
         detailState.evaluatings = {
           ...detailState.evaluatings,
           [startNote.measureIndex]: {
@@ -610,16 +591,14 @@ export default defineComponent({
                     演奏前请调整好乐器,保证最佳演奏状态。<span class={styles.triangle}></span>
                   </div>
                 </div>
-                <img class={styles.dialogueIcon} src={iconStartEvaluating} />
-                {/* <dotlottie-player src={StartEvaluating} autoplay loop class={styles.animation} /> */}
+                <Vue3Lottie class={styles.dialogueIcon} animationData={startData}></Vue3Lottie>
               </div>
             </Teleport>
           ) : (
             <Teleport to="body" key="Recording">
               <div class={styles.dialogueBox}>
                 <div class={styles.inRadio}>收音中...</div>
-                <img class={styles.inRadioIcon} src={iconRecord} />
-                {/* <dotlottie-player src={Recording} autoplay loop class={styles.animation} /> */}
+                <Vue3Lottie class={styles.inRadioIcon} animationData={startingData}></Vue3Lottie>
               </div>
             </Teleport>
           )}

BIN
src/subpages/colexiu/buttons/icons/model-1.png


BIN
src/subpages/colexiu/buttons/icons/model-2.png


BIN
src/subpages/colexiu/buttons/icons/model-3.png


+ 10 - 14
src/subpages/colexiu/buttons/icons/reset.svg

@@ -1,23 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>暂停备份</title>
+    <title>回放</title>
     <defs>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="99.3846973%" id="linearGradient-1">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#FFFFFF" stop-opacity="0.589416077" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="99.3846973%" id="linearGradient-2">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#FFFFFF" stop-opacity="0.589416077" offset="100%"></stop>
+        <linearGradient x1="15.3622126%" y1="15.0876404%" x2="89.7647319%" y2="86.8644279%" id="linearGradient-1">
+            <stop stop-color="#FF9C63" offset="0%"></stop>
+            <stop stop-color="#FF7144" offset="100%"></stop>
         </linearGradient>
     </defs>
     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="主界面暂停" transform="translate(-677.000000, -301.000000)">
-            <g id="暂停备份" transform="translate(677.000000, 301.000000)">
-                <rect id="矩形" fill="#ff8057" x="0" y="0" width="40" height="40" rx="20"></rect>
-                <g id="编组" transform="translate(19.522776, 19.799926) scale(-1, 1) translate(-19.522776, -19.799926) translate(5.000000, 6.000000)">
-                    <path d="M13.3725568,0 L13.3563443,0 C7.68145471,0.0653974039 2.6664899,3.70847155 0.847834102,9.08655422 L0.817617962,9.15122482 C0.797302775,9.20165727 0.777069364,9.26566714 0.759461507,9.33689435 L0.732063087,9.4749694 L0.753800649,9.40595609 C0.272209238,10.8185203 0.0184121264,12.2987613 0.00193173024,13.7911355 C-0.123254569,21.2877541 5.85181356,27.4712437 13.3499838,27.5998518 L13.7189868,27.5922013 C17.2787984,27.468538 20.6206322,25.9074407 22.9897078,23.2690016 L23.2070631,23.0189694 L23.1449335,23.0794585 C23.2603529,22.9795146 23.362263,22.8649591 23.4480926,22.7386843 C23.6720399,22.329715 23.7570443,21.9501401 23.7376485,21.5686354 C23.6254619,20.6372478 22.888075,19.9766574 22.0070416,19.9661689 L21.8305569,19.9837288 C21.3964214,20.0763739 20.9897811,20.2687516 20.64277,20.5456526 L20.5375202,20.6466519 C18.7304559,22.7291273 16.1140168,23.9314266 13.357623,23.9459806 C7.96780108,23.8535225 3.63958992,19.4689892 3.57989406,14.0920329 L3.58062942,13.8130463 C3.49162395,8.28356315 7.87660023,3.74893628 13.3772597,3.65571168 L13.6826276,3.66341095 C16.9313146,3.79699016 19.8952317,5.57049175 21.5651633,8.35089652 L21.6090631,8.4259694 L21.1341843,8.63175621 L20.925866,8.71400596 C18.6892851,9.56846024 18.1787287,11.0457946 20.1238869,12.0193514 L20.5442371,12.2181679 L21.0321057,12.4617975 L21.6313166,12.7737254 L22.2220542,13.0890242 C22.5238873,13.2515877 22.8360126,13.4216673 23.1493276,13.5939227 L24.2374418,14.1981448 C25.8107445,15.0427057 27.0707432,14.4070096 27.5034432,12.6071061 L27.6808279,11.9061013 C27.9271949,10.9739797 28.2129083,10.0522959 28.537129,9.14382584 L28.5970631,8.9799694 L28.7969478,8.46456175 C29.623868,6.28961617 28.2971865,5.51302702 26.159053,6.46427584 L25.6914434,6.67968867 L24.9420631,6.9949694 L24.8465083,6.8181108 C22.5404703,2.66770793 18.1686454,0.041949839 13.3725568,0 Z" id="路径" fill="url(#linearGradient-1)"></path>
-                    <path d="M12.5618308,10.560238 L16.242904,16.2863518 C16.6908822,16.9832069 16.4891277,17.9112777 15.7922727,18.3592559 C15.5503267,18.5147926 15.2687637,18.5974882 14.9811363,18.5974882 L7.61898991,18.5974882 C6.79056278,18.5974882 6.11898991,17.9259153 6.11898991,17.0974882 C6.11898991,16.8098608 6.20168548,16.5282978 6.35722219,16.2863518 L10.0382954,10.560238 C10.4862736,9.86338291 11.4143444,9.66162839 12.1111995,10.1096066 C12.2919535,10.2258056 12.4456318,10.379484 12.5618308,10.560238 Z" id="三角形" fill="url(#linearGradient-2)" transform="translate(11.300063, 13.597488) rotate(-90.000000) translate(-11.300063, -13.597488) "></path>
+        <g id="练习模式" transform="translate(-690.000000, -301.000000)">
+            <g id="回放" transform="translate(690.000000, 301.000000)">
+                <rect id="矩形" fill="url(#linearGradient-1)" x="0" y="0" width="40" height="40" rx="20"></rect>
+                <g id="编组" transform="translate(8.999973, 9.000000)" fill="#F7FEFF" fill-rule="nonzero">
+                    <path d="M9.51352355,14.8088965 L14.4426517,11.5131243 C14.7975645,11.2762112 15.0000267,10.906183 15.0000267,10.5 C15.0000267,10.093729 14.7954865,9.72616587 14.4426517,9.48925271 L9.51352355,6.19101545 C9.32150732,6.06520761 9.12732886,6 8.93531262,6 C8.39450526,6 8.00002674,6.50783874 8.00002674,7.20422783 L8.00002674,13.7957722 C8.00002674,14.4946264 8.39245536,15 8.93531262,15 C9.12730078,15 9.32150732,14.9371694 9.51352355,14.8088965 L9.51352355,14.8088965 Z" id="路径"></path>
+                    <path d="M11.000126,0 C4.94999057,0 2.6737398e-05,4.94994286 2.6737398e-05,11 C-0.00433630668,12.9468633 0.525354644,14.8576368 1.53148049,16.5243714 C1.60245183,16.6431143 3.2927069,15.0052286 6.60007426,11.6110571 L2.31002239,10.3399429 C2.64002199,5.72002857 6.38001738,2.20002857 11.1100401,2.20002857 C15.9500628,2.20002857 19.9100865,6.15997143 19.9100865,11 C19.9100865,15.8400286 15.9500628,19.8000571 11.1100401,19.8000571 C9.46007074,19.8000571 7.9201012,19.36 6.60004569,18.5899429 L4.949962,20.1299143 C6.70995984,21.2300286 8.79998584,22 11.000126,22 C17.05009,22 22.0000267,17.0499714 22.0000267,11 C22.0000267,4.94994286 17.1600898,0 11.000126,0 L11.000126,0 Z" id="路径"></path>
                 </g>
             </g>
         </g>

+ 2 - 2
src/subpages/colexiu/buttons/index.module.less

@@ -295,7 +295,7 @@
 
   .dialogue {
     position: fixed;
-    bottom: 56px;
+    bottom: 45px;
   }
 
   .dialogue > div {
@@ -313,7 +313,7 @@
   }
   .dialogueIcon {
     width: 50px;
-    height: 56px;
+    height: 60px;
     margin-right: 14px;
   }
   .inRadioIcon {

+ 1 - 1
src/subpages/colexiu/buttons/index.tsx

@@ -305,7 +305,7 @@ export default defineComponent({
                     {
                       <Cell center title="摄像头">
                         <div style="display:flex;justify-content: flex-end;">
-                          <Switch disabled={!startButtonShow.value} v-model={SettingState.sett.camera} {...switchProps}>
+                          <Switch  v-model={SettingState.sett.camera} {...switchProps}>
                             off
                           </Switch>
                         </div>

+ 2 - 2
src/subpages/colexiu/buttons/model-wraper.module.less

@@ -10,8 +10,8 @@
     justify-content: center;
     background: rgba(255, 255, 255, 0.7);
     img {
-      width: 64px;
-      height: 24px;
+      width: 72px;
+      height: 28px;
       margin: 0 14px;
     }
   }

+ 1 - 1
src/subpages/colexiu/buttons/player.tsx

@@ -108,7 +108,7 @@ export default defineComponent({
                             cy="20"
                             r="16"
                             fill="none"
-                            stroke="#D9F5EF"
+                            stroke="#fff"
                             stroke-width="2"
                             stroke-linecap="round"
                           />

+ 1 - 20
src/subpages/colexiu/index.tsx

@@ -116,7 +116,7 @@ export default defineComponent({
       // console.log('settingFingeringChange')
       const { direction } = fingeringDetail.value as ITypeContentItem
       if (direction === 'vertical') {
-        Toast('加载中,请稍后...')
+        // Toast('加载中,请稍后...')
         setTimeout(() => {
           MusicSheetRef.value.reRender()
         }, 16)
@@ -163,7 +163,6 @@ export default defineComponent({
           type: 'fullscreen',
         },
       })
-      console.log('cloudLoading', false)
       detailState.initRendered = true
       // console.log('onRerender', osmd)
       console.log(search)
@@ -264,13 +263,6 @@ export default defineComponent({
 
     const onStartRender = async () => {
       renderLoading.value = true
-      postMessage({
-        api: 'cloudLoading',
-        content: {
-          show: true,
-          type: 'fullscreen',
-        },
-      })
     }
     const onRenderError = () => {
       // @ts-ignore
@@ -379,17 +371,6 @@ export default defineComponent({
                   onStartRender={onStartRender}
                   onRenderError={onRenderError}
                   onRerender={onRerender}
-                  onLoaddingEnd={() => {
-                    renderLoading.value = false
-                    ;(window as any).isLoading = false
-                    postMessage({
-                      api: 'cloudLoading',
-                      content: {
-                        show: false,
-                        type: 'fullscreen',
-                      },
-                    })
-                  }}
                 />
                 {needFingering && (
                   <Fingering

+ 4 - 4
src/subpages/colexiu/popups/evaluating/content.tsx

@@ -19,10 +19,10 @@ import { postMessage } from '/src/helpers/native-message'
 import { ResultContent } from './index'
 import { getLeveByScoreId } from '/src/pages/detail/evaluating/helper'
 
-import Image1 from './icons/5.svg'
-import Image2 from './icons/4.svg'
-import Image3 from './icons/3.svg'
-import Image4 from './icons/2.svg'
+import Image1 from './icons/5.png'
+import Image2 from './icons/4.png'
+import Image3 from './icons/3.png'
+import Image4 from './icons/2.png'
 import Image5 from './icons/1.png'
 import iconShare from './icons/icon-share.svg'
 import iconUpload from './icons/icon-upload.svg'

BIN
src/subpages/colexiu/popups/evaluating/icons/1.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 730
src/subpages/colexiu/popups/evaluating/icons/1.svg


BIN
src/subpages/colexiu/popups/evaluating/icons/2.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 540
src/subpages/colexiu/popups/evaluating/icons/2.svg


BIN
src/subpages/colexiu/popups/evaluating/icons/3.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 514
src/subpages/colexiu/popups/evaluating/icons/3.svg


BIN
src/subpages/colexiu/popups/evaluating/icons/4.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 488
src/subpages/colexiu/popups/evaluating/icons/4.svg


BIN
src/subpages/colexiu/popups/evaluating/icons/5.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 498
src/subpages/colexiu/popups/evaluating/icons/5.svg


+ 1 - 1
src/subpages/colexiu/popups/permission/index.module.less

@@ -39,7 +39,7 @@
   padding-bottom: 8px;
 }
 .btn {
-  width: 54px;
+  width: 61px;
   height: 17px;
   background-color: transparent;
   border: none;

+ 0 - 6
src/subpages/colexiu/uses/use-evaluat.ts

@@ -37,12 +37,6 @@ const setWiredStatus = (res?: IPostMessage) => {
   if (runtime.evaluatingStatus) {
     permissionPopup.active = 'earphone'
     permissionPopup.show = !res?.content.checkIsWired
-    // tuningStatus.value = true
-    // if (!permissionPopup.show) {
-    //   // erjiClicked.value = true
-    //   // tuningStatus.value = true
-
-    // }
     soundNeedShow()
   } else {
     permissionPopup.show = false

+ 9 - 1
yarn.lock

@@ -5952,7 +5952,7 @@
   "resolved" "https://registry.npmjs.org/vue-router/-/vue-router-4.0.4.tgz"
   "version" "4.0.4"
 
-"vue@^3.0.0", "vue@^3.2.25", "vue@^3.2.33", "vue@2 || 3", "vue@3.2.33":
+"vue@^3.0.0", "vue@^3.2", "vue@^3.2.25", "vue@^3.2.33", "vue@2 || 3", "vue@3.2.33":
   "integrity" "sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ=="
   "resolved" "https://registry.npmmirror.com/vue/-/vue-3.2.33.tgz"
   "version" "3.2.33"
@@ -5963,6 +5963,14 @@
     "@vue/server-renderer" "3.2.33"
     "@vue/shared" "3.2.33"
 
+"vue3-lottie@^2.4.0":
+  "integrity" "sha512-arNBADu3vW+1Lf+Pw32mU9T6X7c1bMn1tBvJ0/uo+W0G/0UxHyCwoXzyYIKZWB0WoeEvdo5x7HCf8VH0J7rLsw=="
+  "resolved" "https://registry.npmjs.org/vue3-lottie/-/vue3-lottie-2.4.0.tgz"
+  "version" "2.4.0"
+  dependencies:
+    "lodash" "^4.17.21"
+    "lottie-web" "^5.8.1"
+
 "wa-metro@^1.1.2":
   "integrity" "sha1-PqapBc99IDZJI3Az/baVcuqCAgI="
   "resolved" "https://registry.npmjs.org/wa-metro/-/wa-metro-1.1.2.tgz"

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor