Browse Source

修改生成谱面

lex 11 months ago
parent
commit
e792ee6e1c

+ 69 - 3
public/osmd/index.html

@@ -22,6 +22,10 @@
     .vf-text {
       display: none;
     }
+
+    #cursorImg-0 {
+      display: none;
+    }
   </style>
 </head>
 
@@ -32,10 +36,35 @@
     osmd.setOptions({
       backend: "svg",
       drawTitle: false,
-      drawPartNames: true,
+      drawPartNames: false,
       drawLyricist: false,
-      drawComposer: false,
     });
+    // osmd.EngravingRules.RenderMultipleRestMeasures = true;
+    // osmd.EngravingRules.CompactMode = true;
+    // osmd.EngravingRules.PageTopMarginNarrow = 5.0; // for compact mode
+    // osmd.EngravingRules.PageBottomMargin = 15.0;
+
+
+    // osmd.EngravingRules.DYMusicScoreType =
+    //     state.musicRenderType === EnumMusicRenderType.staff ? "staff" : "jianpu";
+    //   // 如果为固定调,需要加入全局
+    //   if (state.musicRenderType === EnumMusicRenderType.fixedTone) {
+    //     window.sett = {
+    //       keySignature: true,
+    //     };
+    //   }
+    // debugger
+    // console.log('osmd.EngravingRules')
+    // osmd.EngravingRules.StaffDistance = 1.0;
+    // osmd.EngravingRules.BetweenStaffDistance = 1.0;
+    // osmd.EngravingRules.MinimumStaffLineDistance = 1.0;
+    //osmd.EngravingRules.MinSkyBottomDistBetweenStaves = 1.0; // default 1.0. this can cause collisions with slurs and dynamics sometimes
+    osmd.EngravingRules.MinSkyBottomDistBetweenSystems = 3.0; // default 5.0
+    // note that osmd.EngravingRules === osmd.rules, since it's passed as a reference
+
+
+    osmd.EngravingRules.MinimumDistanceBetweenSystems = 1;
+    // osmd.setPageFormat('794x1123')
     osmd.setPageFormat('650x884')
     function getSvgPngToSize(osmd) {
       if (osmd) {
@@ -89,12 +118,49 @@
     }
     function resetRender(partIndex) {
       for (let i = 0; i < osmd.Sheet.Instruments.length; i++) {
-        // console.log(osmd.Sheet.Instruments[i].Name);
         osmd.Sheet.Instruments[i].Visible = i === partIndex;
       }
       render();
 
     }
+
+    function resetRenderPage(type, xmlUrl) {
+      let str = 'staff'
+      if (type === 'first') {
+        str = 'jianpu'
+        window.sett = {
+          keySignature: false,
+        };
+      } else if (type === 'fixed') {
+        str = 'jianpu'
+        window.sett = {
+          keySignature: true,
+        };
+      }
+
+      // osmd.EngravingRules.DYMusicScoreType =
+      //     state.musicRenderType === EnumMusicRenderType.staff ? "staff" : "jianpu";
+      //   // 如果为固定调,需要加入全局
+      //   if (state.musicRenderType === EnumMusicRenderType.fixedTone) {
+      //     window.sett = {
+      //       keySignature: true,
+      //     };
+      //   }
+      console.log(str, window.sett, '212')
+      osmd.EngravingRules.DYMusicScoreType = str
+      osmd
+        .load(xmlUrl)
+        .then(
+          function () {
+            // for (let i = 0; i < osmd.Sheet.Instruments.length; i++) {
+            //   // console.log(osmd.Sheet.Instruments[i].Name);
+            //   osmd.Sheet.Instruments[i].Visible = i === partIndex;
+            // }
+            osmd.zoom = .5
+            render();
+          }
+        );
+    }
   </script>
 </body>
 

File diff suppressed because it is too large
+ 0 - 0
public/osmd/opensheetmusicdisplay.min.js


+ 24 - 5
src/tenant/music/music-detail/new-index.tsx

@@ -109,6 +109,18 @@ export default defineComponent({
     const onChangeStaff = (type: string) => {
       staff.radio = type
       staff.status = false
+
+      if (type == 'first' && firstList.value.length <= 0) {
+        // showImg.value = firstList.value
+        resetRenderPage('first', staffData.musicXml)
+      } else if (type == 'fixed' && fixedList.value.length <= 0) {
+        // showImg.value = fixedList.value
+        resetRenderPage('fixed', staffData.musicXml)
+      } else {
+        if (staffList.value.length <= 0) {
+          resetRenderPage('staff', staffData.musicXml)
+        }
+      }
     }
     watch(
       () => staff.radio,
@@ -608,8 +620,8 @@ export default defineComponent({
           staffData.xmlPartList = partList
         }
 
-        // staffData.iframeSrc = `${location.origin}/osmd/index.html`
-        staffData.iframeSrc = `${location.origin}${location.pathname}osmd/index.html`
+        staffData.iframeSrc = `${location.origin}/osmd/index.html`
+        // staffData.iframeSrc = `${location.origin}${location.pathname}osmd/index.html`
         staffData.musicXml = musicDetail.value?.xmlFileUrl || ''
         staffData.partList = musicDetail.value?.background || []
         staffData.partList.forEach((part: any) => {
@@ -650,6 +662,13 @@ export default defineComponent({
         )
       }
     }
+
+    const resetRenderPage = (type: string, xmlUrl: string) => {
+      const iframeRef: any = document.getElementById('staffIframeRef')
+      if (iframeRef && iframeRef.contentWindow.renderXml) {
+        iframeRef.contentWindow.resetRenderPage(type, xmlUrl)
+      }
+    }
     const partColumns = computed(() => {
       return staffData.partList.map((item: any, index: number) => {
         const instrumentName = getInstrumentName(item.track)
@@ -842,7 +861,8 @@ export default defineComponent({
               : '') +
               (staffData.instrumentName ? `(${staffData.instrumentName})` : '')}
           </p>
-          {musicDetail.value?.musicSheetType === 'CONCERT' ? (
+          {musicDetail.value?.musicSheetType === 'CONCERT' ||
+          showImg.value.length <= 0 ? (
             <>
               {loading.value && (
                 <div>
@@ -955,12 +975,11 @@ export default defineComponent({
                         onDownloadApp()
                         return
                       }
-                      if(route.query.type ==='search') {
+                      if (route.query.type === 'search') {
                         router.push('train-tool')
                       } else {
                         router.back()
                       }
-
                     }}
                   >
                     开通训练教程

+ 1 - 1
vite.config.ts

@@ -12,7 +12,7 @@ function resolve(dir: string) {
 // https://vitejs.dev/config/
 // https://github.com/vitejs/vite/issues/1930 .env
 // const proxyUrl = 'https://online.colexiu.com/'
-const proxyUrl = 'https://dev.colexiu.com/'
+const proxyUrl = 'https://test.colexiu.com/'
 // const proxyUrl = 'http://192.168.3.14:8000/'
 export default defineConfig({
   base: './',

Some files were not shown because too many files changed in this diff