Browse Source

fix: #8748,切换指法等会导致谱面重新渲染操作后,需要刷新小节

TIANYONG 1 year ago
parent
commit
2a481f77f5

+ 4 - 2
src/pages/detail/section-box/index.tsx

@@ -387,11 +387,12 @@ export default defineComponent({
             return null
             return null
           }
           }
           if (index === 0 && boundingBox) {
           if (index === 0 && boundingBox) {
+            // console.log('左',formatZoom(boundingBox.y) - 5, formatZoom(boundingBox.x),X,SettingState.sett.scoreSize)
             return (
             return (
               <div
               <div
                 style={{
                 style={{
                   position: 'absolute',
                   position: 'absolute',
-                  top: formatZoom(boundingBox.y) - 5 + 'px',
+                  top: formatZoom(boundingBox.y) + 'px',
                   left: formatZoom(boundingBox.x) + 'px',
                   left: formatZoom(boundingBox.x) + 'px',
                   height: formatZoom(boundingBox.height) + 'px',
                   height: formatZoom(boundingBox.height) + 'px',
                   border: `5px solid ${eyeBorderColor}`,
                   border: `5px solid ${eyeBorderColor}`,
@@ -403,11 +404,12 @@ export default defineComponent({
             )
             )
           }
           }
           if (index === 1 && boundingBox) {
           if (index === 1 && boundingBox) {
+            // console.log('右',formatZoom(boundingBox.y - 5), formatZoom(boundingBox.end_x),X)
             return (
             return (
               <div
               <div
                 style={{
                 style={{
                   position: 'absolute',
                   position: 'absolute',
-                  top: formatZoom(boundingBox.y - 5) + 'px',
+                  top: formatZoom(boundingBox.y) + 'px',
                   left: formatZoom(boundingBox.end_x) + 'px',
                   left: formatZoom(boundingBox.end_x) + 'px',
                   height: formatZoom(boundingBox.height) + 'px',
                   height: formatZoom(boundingBox.height) + 'px',
                   border: `5px solid ${eyeBorderColor}`,
                   border: `5px solid ${eyeBorderColor}`,

+ 2 - 0
src/pages/detail/state.ts

@@ -82,6 +82,8 @@ const state = reactive({
   multitrack: 0,
   multitrack: 0,
   /** 渐变速度版本 */
   /** 渐变速度版本 */
   gradualVersion: GradualVersion.BASE as GradualVersion,
   gradualVersion: GradualVersion.BASE as GradualVersion,
+  /** 是否需要刷新选段小节,谱面重新渲染后需要刷新选段小节 */
+  isNeedRefreshSection: false,
 })
 })
 
 
 export const isRhythmicExercises = () => {
 export const isRhythmicExercises = () => {

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

@@ -147,6 +147,7 @@ export default defineComponent({
         // })
         // })
         setTimeout(() => {
         setTimeout(() => {
           MusicSheetRef.value.reRender()
           MusicSheetRef.value.reRender()
+          detailState.isNeedRefreshSection = true
         }, 16)
         }, 16)
       }
       }
     }, 300)
     }, 300)

+ 8 - 1
src/subpages/colexiu/unitTest/index.tsx

@@ -1,4 +1,4 @@
-import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { defineComponent, onMounted, reactive, ref, watchEffect } from 'vue'
 import { useOriginSearch } from '../uses'
 import { useOriginSearch } from '../uses'
 import request from '/src/helpers/request'
 import request from '/src/helpers/request'
 import SettingState from '/src/pages/detail/setting-state'
 import SettingState from '/src/pages/detail/setting-state'
@@ -109,6 +109,13 @@ export default defineComponent({
       getUnitData()
       getUnitData()
       getlessonTrainingData()
       getlessonTrainingData()
     })
     })
+    watchEffect(() => {
+      // 监听是否需要刷新section小节
+      if (state.isNeedRefreshSection) {
+        setSection()
+        state.isNeedRefreshSection = false
+      }
+    })    
     return () => ''
     return () => ''
   },
   },
 })
 })