瀏覽代碼

同步线上代码

黄琪勇 3 月之前
父節點
當前提交
478908e062
共有 55 個文件被更改,包括 287 次插入273 次删除
  1. 8 8
      dist/colexiu.html
  2. 8 8
      dist/index.html
  3. 5 5
      dist/instrument.html
  4. 0 0
      dist/js/colexiu-37662591.js
  5. 0 0
      dist/js/colexiu-legacy-afdf8a8e.js
  6. 0 0
      dist/js/gym-08ed1ba1.js
  7. 0 0
      dist/js/gym-legacy-29dbe4a8.js
  8. 0 0
      dist/js/index-0beaeecb.js
  9. 1 1
      dist/js/index-5345375f.js
  10. 0 0
      dist/js/index-6c3bc664.js
  11. 0 0
      dist/js/index-914a771f.js
  12. 0 0
      dist/js/index-91f32971.js
  13. 0 0
      dist/js/index-97fa34d5.js
  14. 1 1
      dist/js/index-b151b087.js
  15. 0 0
      dist/js/index-b2444195.js
  16. 0 0
      dist/js/index-bce19e90.js
  17. 0 0
      dist/js/index-f320b076.js
  18. 1 1
      dist/js/index-legacy-20cc44fc.js
  19. 0 0
      dist/js/index-legacy-4d7f9acf.js
  20. 0 0
      dist/js/index-legacy-76ef9510.js
  21. 0 0
      dist/js/index-legacy-8dcd42a9.js
  22. 0 0
      dist/js/index-legacy-905a7c79.js
  23. 0 0
      dist/js/index-legacy-bd83cf40.js
  24. 0 0
      dist/js/index-legacy-bdf69429.js
  25. 0 0
      dist/js/index-legacy-d7a02ad4.js
  26. 0 0
      dist/js/index-legacy-df442536.js
  27. 1 1
      dist/js/index-legacy-ec69039e.js
  28. 0 0
      dist/js/instrument-37b3077c.js
  29. 0 0
      dist/js/instrument-legacy-35aacfce.js
  30. 0 0
      dist/js/modeView-0aba735f.js
  31. 0 0
      dist/js/modeView-legacy-884feaa9.js
  32. 0 0
      dist/js/orchestra-117cca24.js
  33. 0 0
      dist/js/orchestra-legacy-019f04ad.js
  34. 0 0
      dist/js/polyfills-e26b5460.js
  35. 0 0
      dist/js/polyfills-legacy-90771e26.js
  36. 0 0
      dist/js/report-share-afa28a08.js
  37. 0 0
      dist/js/report-share-legacy-ef20eb4d.js
  38. 9 9
      dist/orchestra.html
  39. 二進制
      dist/png/pitchHigh-8f66b326.png
  40. 二進制
      dist/png/pitchHigh-da85a052.png
  41. 二進制
      dist/png/pitchLow-3b53edc0.png
  42. 二進制
      dist/png/pitchLow-775a2f42.png
  43. 6 6
      dist/report-share.html
  44. 1 1
      src/page-gym/detail/index.tsx
  45. 1 1
      src/page-instrument/simple-detail/index.tsx
  46. 2 3
      src/page-instrument/view-detail/index.tsx
  47. 4 12
      src/page-instrument/view-detail/smoothAnimation/bird/index.tsx
  48. 0 2
      src/page-instrument/view-detail/smoothAnimation/index.ts
  49. 46 37
      src/view/music-score/index.tsx
  50. 7 0
      src/view/music-score/testCheck.tsx
  51. 二進制
      src/view/selection/imgs/pitchHigh.png
  52. 二進制
      src/view/selection/imgs/pitchLow.png
  53. 184 175
      src/view/selection/index.tsx
  54. 0 0
      stats.html
  55. 2 2
      vite.config.ts

+ 8 - 8
dist/colexiu.html

@@ -2,7 +2,7 @@
 <html lang="en">
 
 <head>
-  <script type="module" crossorigin src="./js/polyfills-9f4ec464.js"></script>
+  <script type="module" crossorigin src="./js/polyfills-e26b5460.js"></script>
 
   <meta charset="UTF-8" />
   <link rel="icon" type="image/svg+xml" href="./vite.svg" />
@@ -40,11 +40,11 @@
       },
     })
   </script>
-  <script type="module" crossorigin src="./js/colexiu-4e2230bc.js"></script>
-  <link rel="modulepreload" crossorigin href="./js/index-da01795a.js">
-  <link rel="modulepreload" crossorigin href="./js/index-9bd0ad03.js">
-  <link rel="modulepreload" crossorigin href="./js/index-336db82d.js">
-  <link rel="modulepreload" crossorigin href="./js/index-e3fb1d67.js">
+  <script type="module" crossorigin src="./js/colexiu-37662591.js"></script>
+  <link rel="modulepreload" crossorigin href="./js/index-97fa34d5.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b2444195.js">
+  <link rel="modulepreload" crossorigin href="./js/index-0beaeecb.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b151b087.js">
   <link rel="stylesheet" href="./css/index-c14a2cb8.css">
   <link rel="stylesheet" href="./css/colexiu-62f31c4f.css">
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};window.__vite_is_modern_browser=true;</script>
@@ -56,8 +56,8 @@
   <img id="loading" class="show" src="./loading.svg" alt="loading" />
   
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
-  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-97dc929c.js"></script>
-  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/colexiu-legacy-66e617cd.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-90771e26.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/colexiu-legacy-afdf8a8e.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 8 - 8
dist/index.html

@@ -2,7 +2,7 @@
 <html lang="ZH-cn">
 
 <head>
-  <script type="module" crossorigin src="./js/polyfills-9f4ec464.js"></script>
+  <script type="module" crossorigin src="./js/polyfills-e26b5460.js"></script>
 
   <meta charset="UTF-8">
   <link rel="icon" href="./favicon.ico" />
@@ -75,11 +75,11 @@
       }
     })
   </script>
-  <script type="module" crossorigin src="./js/gym-0f9773a5.js"></script>
-  <link rel="modulepreload" crossorigin href="./js/index-da01795a.js">
-  <link rel="modulepreload" crossorigin href="./js/index-9bd0ad03.js">
-  <link rel="modulepreload" crossorigin href="./js/index-d05028d4.js">
-  <link rel="modulepreload" crossorigin href="./js/index-e3fb1d67.js">
+  <script type="module" crossorigin src="./js/gym-08ed1ba1.js"></script>
+  <link rel="modulepreload" crossorigin href="./js/index-97fa34d5.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b2444195.js">
+  <link rel="modulepreload" crossorigin href="./js/index-914a771f.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b151b087.js">
   <link rel="modulepreload" crossorigin href="./js/plyr.min-c8c2777b.js">
   <link rel="stylesheet" href="./css/index-c14a2cb8.css">
   <link rel="stylesheet" href="./css/index-85f95688.css">
@@ -98,8 +98,8 @@
   <img id="loading" class="show" src="./loading.svg" alt="loading" />
   
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
-  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-97dc929c.js"></script>
-  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/gym-legacy-745a8c50.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-90771e26.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/gym-legacy-29dbe4a8.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 5 - 5
dist/instrument.html

@@ -2,7 +2,7 @@
 <html lang="en">
 
 <head>
-  <script type="module" crossorigin src="./js/polyfills-9f4ec464.js"></script>
+  <script type="module" crossorigin src="./js/polyfills-e26b5460.js"></script>
 
   <meta charset="UTF-8" />
   <meta name="viewport"
@@ -41,8 +41,8 @@
       })
     }
   </script>
-  <script type="module" crossorigin src="./js/instrument-0d0cd2e6.js"></script>
-  <link rel="modulepreload" crossorigin href="./js/index-da01795a.js">
+  <script type="module" crossorigin src="./js/instrument-37b3077c.js"></script>
+  <link rel="modulepreload" crossorigin href="./js/index-97fa34d5.js">
   <link rel="stylesheet" href="./css/index-c14a2cb8.css">
   <link rel="stylesheet" href="./css/instrument-118f68d3.css">
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};window.__vite_is_modern_browser=true;</script>
@@ -67,8 +67,8 @@
     var vConsole = new window.VConsole();
   </script>   -->
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
-  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-97dc929c.js"></script>
-  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/instrument-legacy-563a80ce.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-90771e26.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/instrument-legacy-35aacfce.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

File diff suppressed because it is too large
+ 0 - 0
dist/js/colexiu-37662591.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/colexiu-legacy-afdf8a8e.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/gym-08ed1ba1.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/gym-legacy-29dbe4a8.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-0beaeecb.js


+ 1 - 1
dist/js/index-78f5251d.js → dist/js/index-5345375f.js

@@ -1 +1 @@
-import{d as i,g as l,n as d,bM as e,c,m as r,h as s,au as u}from"./index-da01795a.js";const m="_skeleton_vtlsh_1",f="_detail_vtlsh_12",p="_container_vtlsh_20",a={skeleton:m,detail:f,container:p},y=i({name:"music-list",setup(){const n=l(),t=d({isLoading:!0,isProductLoading:!1,product:[{state:!1,name:"五线谱",type:e.staff,base64:""},{state:!1,name:"首调",type:e.firstTone,base64:""},{state:!1,name:"固定调",type:e.fixedTone,base64:""}]});c(()=>{window.appName="colexiu",r.xmlUrl=n.xmlUrl,t.isLoading=!1});const o=async()=>{console.log("渲染完成")};return()=>s("div",{class:a.detail},[s("div",{id:"scrollContainer",class:[a.container,"hideCursor"]},[!t.isLoading&&s(u,{onRendered:o},null)])])}});export{y as default};
+import{d as i,g as l,n as d,bM as e,c,m as r,h as s,au as u}from"./index-97fa34d5.js";const m="_skeleton_vtlsh_1",f="_detail_vtlsh_12",p="_container_vtlsh_20",a={skeleton:m,detail:f,container:p},y=i({name:"music-list",setup(){const n=l(),t=d({isLoading:!0,isProductLoading:!1,product:[{state:!1,name:"五线谱",type:e.staff,base64:""},{state:!1,name:"首调",type:e.firstTone,base64:""},{state:!1,name:"固定调",type:e.fixedTone,base64:""}]});c(()=>{window.appName="colexiu",r.xmlUrl=n.xmlUrl,t.isLoading=!1});const o=async()=>{console.log("渲染完成")};return()=>s("div",{class:a.detail},[s("div",{id:"scrollContainer",class:[a.container,"hideCursor"]},[!t.isLoading&&s(u,{onRendered:o},null)])])}});export{y as default};

File diff suppressed because it is too large
+ 0 - 0
dist/js/index-6c3bc664.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-914a771f.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-91f32971.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-97fa34d5.js


+ 1 - 1
dist/js/index-e3fb1d67.js → dist/js/index-b151b087.js

@@ -1 +1 @@
-import{b7 as l,d as i,h as a,bh as v,ba as r,bc as d,bz as _,bd as m,bA as w,bg as u,bk as g,F as A}from"./index-da01795a.js";const[$,y]=l("skeleton-title"),P={round:Boolean,titleWidth:r};var p=i({name:$,props:P,setup(t){return()=>a("h3",{class:y([{round:t.round}]),style:{width:v(t.titleWidth)}},null)}});const T=d(p);var z=T;const[B,D]=l("skeleton-avatar"),F={avatarSize:r,avatarShape:m("round")};var N=i({name:B,props:F,setup(t){return()=>a("div",{class:D([t.avatarShape]),style:_(t.avatarSize)},null)}});const R=d(N);var I=R;const s="100%",L={round:Boolean,rowWidth:{type:r,default:s}},[U,C]=l("skeleton-paragraph");var E=i({name:U,props:L,setup(t){return()=>a("div",{class:C([{round:t.round}]),style:{width:t.rowWidth}},null)}});const H=d(E);var O=H;const[V,c]=l("skeleton"),j="60%",q={row:w(0),round:Boolean,title:Boolean,titleWidth:r,avatar:Boolean,avatarSize:r,avatarShape:m("round"),loading:u,animate:u,rowWidth:{type:[Number,String,Array],default:s}};var x=i({name:V,inheritAttrs:!1,props:q,setup(t,{slots:o,attrs:h}){const f=()=>{if(t.avatar)return a(I,{avatarShape:t.avatarShape,avatarSize:t.avatarSize},null)},S=()=>{if(t.title)return a(z,{round:t.round,titleWidth:t.titleWidth},null)},k=n=>{const{rowWidth:e}=t;return e===s&&n===+t.row-1?j:Array.isArray(e)?e[n]:e},W=()=>Array(+t.row).fill("").map((n,e)=>a(O,{key:e,round:t.round,rowWidth:v(k(e))},null)),b=()=>o.template?o.template():a(A,null,[f(),a("div",{class:c("content")},[S(),W()])]);return()=>{var n;return t.loading?a("div",g({class:c({animate:t.animate,round:t.round})},h),[b()]):(n=o.default)==null?void 0:n.call(o)}}});const J=d(x);export{J as S};
+import{b7 as l,d as i,h as a,bh as v,ba as r,bc as d,bz as _,bd as m,bA as w,bg as u,bk as g,F as A}from"./index-97fa34d5.js";const[$,y]=l("skeleton-title"),P={round:Boolean,titleWidth:r};var p=i({name:$,props:P,setup(t){return()=>a("h3",{class:y([{round:t.round}]),style:{width:v(t.titleWidth)}},null)}});const T=d(p);var z=T;const[B,D]=l("skeleton-avatar"),F={avatarSize:r,avatarShape:m("round")};var N=i({name:B,props:F,setup(t){return()=>a("div",{class:D([t.avatarShape]),style:_(t.avatarSize)},null)}});const R=d(N);var I=R;const s="100%",L={round:Boolean,rowWidth:{type:r,default:s}},[U,C]=l("skeleton-paragraph");var E=i({name:U,props:L,setup(t){return()=>a("div",{class:C([{round:t.round}]),style:{width:t.rowWidth}},null)}});const H=d(E);var O=H;const[V,c]=l("skeleton"),j="60%",q={row:w(0),round:Boolean,title:Boolean,titleWidth:r,avatar:Boolean,avatarSize:r,avatarShape:m("round"),loading:u,animate:u,rowWidth:{type:[Number,String,Array],default:s}};var x=i({name:V,inheritAttrs:!1,props:q,setup(t,{slots:o,attrs:h}){const f=()=>{if(t.avatar)return a(I,{avatarShape:t.avatarShape,avatarSize:t.avatarSize},null)},S=()=>{if(t.title)return a(z,{round:t.round,titleWidth:t.titleWidth},null)},k=n=>{const{rowWidth:e}=t;return e===s&&n===+t.row-1?j:Array.isArray(e)?e[n]:e},W=()=>Array(+t.row).fill("").map((n,e)=>a(O,{key:e,round:t.round,rowWidth:v(k(e))},null)),b=()=>o.template?o.template():a(A,null,[f(),a("div",{class:c("content")},[S(),W()])]);return()=>{var n;return t.loading?a("div",g({class:c({animate:t.animate,round:t.round})},h),[b()]):(n=o.default)==null?void 0:n.call(o)}}});const J=d(x);export{J as S};

File diff suppressed because it is too large
+ 0 - 0
dist/js/index-b2444195.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-bce19e90.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-f320b076.js


+ 1 - 1
dist/js/index-legacy-50be34dd.js → dist/js/index-legacy-20cc44fc.js

@@ -1 +1 @@
-System.register(["./index-legacy-434b2c70.js"],(function(e,t){"use strict";var i,n,a,o,r,s,d,l,c=document.createElement("style");return c.textContent="._skeleton_vtlsh_1{position:fixed;left:0;top:0;width:100vw;height:100vh;padding:.53333rem .8rem;background-color:#fff;z-index:1000;--van-skeleton-paragraph-height: .8rem}._detail_vtlsh_12{width:100vw;height:100vh;overflow:hidden;overflow-y:auto;--header-height: 1.65333rem;background:var(--container-background)}._detail_vtlsh_12 ._container_vtlsh_20{margin:0 .26667rem;border-radius:.26667rem}._detail_vtlsh_12 #musicAndSelection{overflow:initial!important;height:initial!important;max-height:initial!important}\n",document.head.appendChild(c),{setters:[e=>{i=e.d,n=e.g,a=e.n,o=e.bM,r=e.c,s=e.m,d=e.h,l=e.au}],execute:function(){const t="_detail_vtlsh_12",c="_container_vtlsh_20";e("default",i({name:"music-list",setup(){const e=n(),i=a({isLoading:!0,isProductLoading:!1,product:[{state:!1,name:"五线谱",type:o.staff,base64:""},{state:!1,name:"首调",type:o.firstTone,base64:""},{state:!1,name:"固定调",type:o.fixedTone,base64:""}]});r((()=>{window.appName="colexiu",s.xmlUrl=e.xmlUrl,i.isLoading=!1}));const h=async()=>{console.log("渲染完成")};return()=>d("div",{class:t},[d("div",{id:"scrollContainer",class:[c,"hideCursor"]},[!i.isLoading&&d(l,{onRendered:h},null)])])}}))}}}));
+System.register(["./index-legacy-905a7c79.js"],(function(e,t){"use strict";var i,n,a,o,r,s,d,l,c=document.createElement("style");return c.textContent="._skeleton_vtlsh_1{position:fixed;left:0;top:0;width:100vw;height:100vh;padding:.53333rem .8rem;background-color:#fff;z-index:1000;--van-skeleton-paragraph-height: .8rem}._detail_vtlsh_12{width:100vw;height:100vh;overflow:hidden;overflow-y:auto;--header-height: 1.65333rem;background:var(--container-background)}._detail_vtlsh_12 ._container_vtlsh_20{margin:0 .26667rem;border-radius:.26667rem}._detail_vtlsh_12 #musicAndSelection{overflow:initial!important;height:initial!important;max-height:initial!important}\n",document.head.appendChild(c),{setters:[e=>{i=e.d,n=e.g,a=e.n,o=e.bM,r=e.c,s=e.m,d=e.h,l=e.au}],execute:function(){const t="_detail_vtlsh_12",c="_container_vtlsh_20";e("default",i({name:"music-list",setup(){const e=n(),i=a({isLoading:!0,isProductLoading:!1,product:[{state:!1,name:"五线谱",type:o.staff,base64:""},{state:!1,name:"首调",type:o.firstTone,base64:""},{state:!1,name:"固定调",type:o.fixedTone,base64:""}]});r((()=>{window.appName="colexiu",s.xmlUrl=e.xmlUrl,i.isLoading=!1}));const h=async()=>{console.log("渲染完成")};return()=>d("div",{class:t},[d("div",{id:"scrollContainer",class:[c,"hideCursor"]},[!i.isLoading&&d(l,{onRendered:h},null)])])}}))}}}));

File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-4d7f9acf.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-76ef9510.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-8dcd42a9.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-905a7c79.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-bd83cf40.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-bdf69429.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-d7a02ad4.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/index-legacy-df442536.js


+ 1 - 1
dist/js/index-legacy-19468dbb.js → dist/js/index-legacy-ec69039e.js

@@ -1 +1 @@
-System.register(["./index-legacy-434b2c70.js"],(function(t,a){"use strict";var r,e,n,l,o,i,s,u,d,p,v,h;return{setters:[t=>{r=t.b7,e=t.d,n=t.h,l=t.bh,o=t.ba,i=t.bc,s=t.bz,u=t.bd,d=t.bA,p=t.bg,v=t.bk,h=t.F}],execute:function(){const[a,c]=r("skeleton-title"),S={round:Boolean,titleWidth:o};var m=e({name:a,props:S,setup:t=>()=>n("h3",{class:c([{round:t.round}]),style:{width:l(t.titleWidth)}},null)}),y=i(m);const[b,w]=r("skeleton-avatar"),W={avatarSize:o,avatarShape:u("round")};var f=e({name:b,props:W,setup:t=>()=>n("div",{class:w([t.avatarShape]),style:s(t.avatarSize)},null)}),g=i(f);const k="100%",z={round:Boolean,rowWidth:{type:o,default:k}},[A,B]=r("skeleton-paragraph");var x=e({name:A,props:z,setup:t=>()=>n("div",{class:B([{round:t.round}]),style:{width:t.rowWidth}},null)}),j=i(x);const[F,N]=r("skeleton"),q={row:d(0),round:Boolean,title:Boolean,titleWidth:o,avatar:Boolean,avatarSize:o,avatarShape:u("round"),loading:p,animate:p,rowWidth:{type:[Number,String,Array],default:k}};var C=e({name:F,inheritAttrs:!1,props:q,setup(t,{slots:a,attrs:r}){const e=()=>{if(t.avatar)return n(g,{avatarShape:t.avatarShape,avatarSize:t.avatarSize},null)},o=()=>{if(t.title)return n(y,{round:t.round,titleWidth:t.titleWidth},null)},i=a=>{const{rowWidth:r}=t;return r===k&&a===+t.row-1?"60%":Array.isArray(r)?r[a]:r};return()=>{var s;return t.loading?n("div",v({class:N({animate:t.animate,round:t.round})},r),[a.template?a.template():n(h,null,[e(),n("div",{class:N("content")},[o(),Array(+t.row).fill("").map(((a,r)=>n(j,{key:r,round:t.round,rowWidth:l(i(r))},null)))])])]):null==(s=a.default)?void 0:s.call(a)}}});t("S",i(C))}}}));
+System.register(["./index-legacy-905a7c79.js"],(function(t,a){"use strict";var r,e,n,l,o,i,s,u,d,p,v,h;return{setters:[t=>{r=t.b7,e=t.d,n=t.h,l=t.bh,o=t.ba,i=t.bc,s=t.bz,u=t.bd,d=t.bA,p=t.bg,v=t.bk,h=t.F}],execute:function(){const[a,c]=r("skeleton-title"),S={round:Boolean,titleWidth:o};var m=e({name:a,props:S,setup:t=>()=>n("h3",{class:c([{round:t.round}]),style:{width:l(t.titleWidth)}},null)}),y=i(m);const[b,w]=r("skeleton-avatar"),W={avatarSize:o,avatarShape:u("round")};var f=e({name:b,props:W,setup:t=>()=>n("div",{class:w([t.avatarShape]),style:s(t.avatarSize)},null)}),g=i(f);const k="100%",z={round:Boolean,rowWidth:{type:o,default:k}},[A,B]=r("skeleton-paragraph");var x=e({name:A,props:z,setup:t=>()=>n("div",{class:B([{round:t.round}]),style:{width:t.rowWidth}},null)}),j=i(x);const[F,N]=r("skeleton"),q={row:d(0),round:Boolean,title:Boolean,titleWidth:o,avatar:Boolean,avatarSize:o,avatarShape:u("round"),loading:p,animate:p,rowWidth:{type:[Number,String,Array],default:k}};var C=e({name:F,inheritAttrs:!1,props:q,setup(t,{slots:a,attrs:r}){const e=()=>{if(t.avatar)return n(g,{avatarShape:t.avatarShape,avatarSize:t.avatarSize},null)},o=()=>{if(t.title)return n(y,{round:t.round,titleWidth:t.titleWidth},null)},i=a=>{const{rowWidth:r}=t;return r===k&&a===+t.row-1?"60%":Array.isArray(r)?r[a]:r};return()=>{var s;return t.loading?n("div",v({class:N({animate:t.animate,round:t.round})},r),[a.template?a.template():n(h,null,[e(),n("div",{class:N("content")},[o(),Array(+t.row).fill("").map(((a,r)=>n(j,{key:r,round:t.round,rowWidth:l(i(r))},null)))])])]):null==(s=a.default)?void 0:s.call(a)}}});t("S",i(C))}}}));

File diff suppressed because it is too large
+ 0 - 0
dist/js/instrument-37b3077c.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/instrument-legacy-35aacfce.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/modeView-0aba735f.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/modeView-legacy-884feaa9.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/orchestra-117cca24.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/orchestra-legacy-019f04ad.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/polyfills-e26b5460.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/polyfills-legacy-90771e26.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/report-share-afa28a08.js


File diff suppressed because it is too large
+ 0 - 0
dist/js/report-share-legacy-ef20eb4d.js


+ 9 - 9
dist/orchestra.html

@@ -2,7 +2,7 @@
 <html lang="en">
 
 <head>
-  <script type="module" crossorigin src="./js/polyfills-9f4ec464.js"></script>
+  <script type="module" crossorigin src="./js/polyfills-e26b5460.js"></script>
 
   <meta charset="UTF-8" />
   <!-- <link rel="icon" type="image/svg+xml" href="/vite.svg" /> -->
@@ -41,12 +41,12 @@
       transition: opacity .3s;
     }
   </style>
-  <script type="module" crossorigin src="./js/orchestra-7584b8f9.js"></script>
-  <link rel="modulepreload" crossorigin href="./js/index-da01795a.js">
-  <link rel="modulepreload" crossorigin href="./js/index-9bd0ad03.js">
-  <link rel="modulepreload" crossorigin href="./js/index-336db82d.js">
-  <link rel="modulepreload" crossorigin href="./js/index-d05028d4.js">
-  <link rel="modulepreload" crossorigin href="./js/index-e3fb1d67.js">
+  <script type="module" crossorigin src="./js/orchestra-117cca24.js"></script>
+  <link rel="modulepreload" crossorigin href="./js/index-97fa34d5.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b2444195.js">
+  <link rel="modulepreload" crossorigin href="./js/index-0beaeecb.js">
+  <link rel="modulepreload" crossorigin href="./js/index-914a771f.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b151b087.js">
   <link rel="stylesheet" href="./css/index-c14a2cb8.css">
   <link rel="stylesheet" href="./css/index-85f95688.css">
   <link rel="stylesheet" href="./css/orchestra-8bc1a9c0.css">
@@ -70,8 +70,8 @@
   </script>
   
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
-  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-97dc929c.js"></script>
-  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/orchestra-legacy-85540dcd.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-90771e26.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/orchestra-legacy-019f04ad.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

二進制
dist/png/pitchHigh-8f66b326.png


二進制
dist/png/pitchHigh-da85a052.png


二進制
dist/png/pitchLow-3b53edc0.png


二進制
dist/png/pitchLow-775a2f42.png


+ 6 - 6
dist/report-share.html

@@ -2,7 +2,7 @@
 <html lang="en">
 
 <head>
-  <script type="module" crossorigin src="./js/polyfills-9f4ec464.js"></script>
+  <script type="module" crossorigin src="./js/polyfills-e26b5460.js"></script>
 
   <meta charset="UTF-8" />
   <!-- <link rel="icon" type="image/svg+xml" href="/vite.svg" /> -->
@@ -25,10 +25,10 @@
       transition: opacity .3s;
     }
   </style>
-  <script type="module" crossorigin src="./js/report-share-4676921f.js"></script>
-  <link rel="modulepreload" crossorigin href="./js/index-da01795a.js">
+  <script type="module" crossorigin src="./js/report-share-afa28a08.js"></script>
+  <link rel="modulepreload" crossorigin href="./js/index-97fa34d5.js">
   <link rel="modulepreload" crossorigin href="./js/plyr.min-c8c2777b.js">
-  <link rel="modulepreload" crossorigin href="./js/index-e3fb1d67.js">
+  <link rel="modulepreload" crossorigin href="./js/index-b151b087.js">
   <link rel="stylesheet" href="./css/index-c14a2cb8.css">
   <link rel="stylesheet" href="./css/plyr-ad8ef5ae.css">
   <link rel="stylesheet" href="./css/report-share-0f4c3151.css">
@@ -52,8 +52,8 @@
   </script>
   
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
-  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-97dc929c.js"></script>
-  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/report-share-legacy-2f15b44c.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-90771e26.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/report-share-legacy-ef20eb4d.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 1 - 1
src/page-gym/detail/index.tsx

@@ -202,7 +202,7 @@ export default defineComponent({
 		const handleRendered = (osmd: any) => {
 			state.musicRendered = true;
 			state.osmd = osmd;
-			setCustomGradual();
+			// setCustomGradual();
 			setCustomNoteRealValue();
 			state.times = formateTimes(osmd);
 			console.log("🚀 ~ state.times:", state.times);

+ 1 - 1
src/page-instrument/simple-detail/index.tsx

@@ -123,7 +123,7 @@ export default defineComponent({
 			if (saveSpeed) {
 				handleSetSpeed(saveSpeed);
 			}
-			setCustomGradual();
+			// setCustomGradual();
 			// setCustomNoteRealValue();
 			state.times = formateTimes(osmd);
 			console.log("🚀 ~ state.times:", state.times, state);

+ 2 - 3
src/page-instrument/view-detail/index.tsx

@@ -26,6 +26,7 @@ import WorkIndex, { resetSection } from "../custom-plugins/work-index";
 import TheMusicList, { isMusicList } from "../component/the-music-list";
 import { storeData } from "/src/store";
 import ViewFigner from "../view-figner";
+import { recalculateNoteData } from "/src/view/selection";
 import ToggleMusicSheet from "/src/view/plugins/toggleMusicSheet";
 import { setCustomGradual, setCustomNoteRealValue } from "/src/helpers/customMusicScore";
 import { usePageVisibility } from "@vant/use";
@@ -41,7 +42,6 @@ import LoadingCss from "./loadingCss"
 // import bgJson from "./images/index.json";
 import bg2Left from "./images/bg2_left_zs.png";
 import bg2Right from "./images/bg2_right_zs.png";
-import { musicData } from "/src/view/music-score"
 
 // const DelayCheck = defineAsyncComponent(() =>
 //   import('/src/page-instrument/evaluat-model/delay-check')
@@ -326,7 +326,6 @@ export default defineComponent({
       try{
         handleRendered(osmd)
       }catch(err:any){
-        console.error(err);
         // 需要向外面(iframe)派发计时器数据的时候触发
         if(query.isbeatTimes){
           console.log("webApi_beatTimes",err)
@@ -576,7 +575,7 @@ export default defineComponent({
               onRendered={handleOnRendered} 
             > 
               {/* 旋律线关闭时候的 标题和作者 */}
-              { musicData.showSelection && <AuthorName></AuthorName>}
+              <AuthorName></AuthorName>
               {/* 节拍器 */}
               {!detailData.isLoading && !detailData.skeletonLoading && <Tick />}
             </MusicScore>

+ 4 - 12
src/page-instrument/view-detail/smoothAnimation/bird/index.tsx

@@ -1,4 +1,4 @@
-import { defineComponent, onBeforeUnmount, ref} from "vue"
+import { defineComponent } from "vue"
 import { Vue3Lottie } from "vue3-lottie";
 import styles from "./index.module.less"
 import state from "/src/state"
@@ -9,19 +9,11 @@ import note from "./imgs/note.json"
 export default defineComponent({
     name: "Bird",
     setup() {
-        const vue3LottieDom = ref()
-        const vue3Lottie1Dom = ref()
-        const vue3Lottie2Dom = ref()
-        onBeforeUnmount(()=>{
-            vue3LottieDom.value?.destroy()
-            vue3Lottie1Dom.value?.destroy()
-            vue3Lottie2Dom.value?.destroy()
-        })
         return () => <>
-                <Vue3Lottie ref={vue3LottieDom} style={ { display : state.playState === "paused" ? "" : "none" } } key={1} class={styles.brid} animationData={stilln} autoPlay={true} loop={true}></Vue3Lottie>
+                <Vue3Lottie style={ { display : state.playState === "paused" ? "" : "none" } } key={1} class={styles.brid} animationData={stilln} autoPlay={true} loop={true}></Vue3Lottie>
                 <>
-                    <Vue3Lottie ref={vue3Lottie1Dom} style={ { display : state.playState === "paused" ? "none" : "" } } key={2} class={styles.brid} animationData={fly} autoPlay={true} loop={true}></Vue3Lottie>
-                    <Vue3Lottie ref={vue3Lottie2Dom} style={ { display : state.playState === "paused" ? "none" : "" } } key={2} class={styles.note} animationData={note} autoPlay={true} loop={true}></Vue3Lottie>
+                    <Vue3Lottie style={ { display : state.playState === "paused" ? "none" : "" } } key={2} class={styles.brid} animationData={fly} autoPlay={true} loop={true}></Vue3Lottie>
+                    <Vue3Lottie style={ { display : state.playState === "paused" ? "none" : "" } } key={2} class={styles.note} animationData={note} autoPlay={true} loop={true}></Vue3Lottie>
                 </>
         </>
     }

+ 0 - 2
src/page-instrument/view-detail/smoothAnimation/index.ts

@@ -137,8 +137,6 @@ function dataFindIndex(activeIndex: number, progress: number) {
 export function destroySmoothAnimation() {
    smoothAnimationState.isShow.value = false
    window.removeEventListener("resize", calcClientWidth)
-   // 销毁组件 防止内存泄漏
-   smoothAnimationState.smoothBotDom && render(null, smoothAnimationState.smoothBotDom)
    smoothAnimationState.smoothAnimationBoxDom?.remove()
    Object.assign(smoothAnimationState, {
       canvasDom: null,

+ 46 - 37
src/view/music-score/index.tsx

@@ -15,10 +15,13 @@ import HorizontalDragScroll from './HorizontalDragScroll';
 import { getQuery } from "/src/utils/queryString";
 
 export const musicRenderTypeKey = "musicRenderType";
-export const musicData = reactive({
+let osmd: any = null;
+const musicData = reactive({
 	showSelection: false, // 可以加载点击浮层
+	isRenderLoading: true,
 	score: "",
 	containerWidth: 0,
+	isRefreshLoading: false,
 });
 
 /** 重新渲染曲谱 */
@@ -66,7 +69,6 @@ export default defineComponent({
 	},
 	setup(props, { emit, slots, expose }) {
 		const query: any = getQuery();
-		let osmd: any = null;
 		/** 设置 曲谱模式,五线谱还是简谱 */
 		const setRenderType = () => {
 			const musicRenderType: any = sessionStorage.getItem(props.renderTypeKey || musicRenderTypeKey);
@@ -93,33 +95,29 @@ export default defineComponent({
 			const container = document.getElementById("musicAndSelection");
 			if (!container || !musicData.score) return;
 			setGlobalMusicSheet();
-			if(!osmd){
-				osmd = new OpenSheetMusicDisplay(container, {
-					drawTitle: false,
-					drawSubtitle: false,
-					// drawMeasureNumbers: false,
-					autoResize: false,
-					followCursor: false,
-					drawLyricist: false, // 渲染作曲家
-					drawComposer: false, // 渲染作词家
-					// pageBackgroundColor: '#609FCF',
-					// autoGenerateMultipleRestMeasuresFromRestMeasures: state.isSingleLine ? false : true, // 连续休止小节是否合并显示
-					autoGenerateMultipleRestMeasuresFromRestMeasures: true,
-					// darkMode: true, // 暗黑模式
-					// pageFormat: 'A4_P',
-					// autoBeam: true,
-					// drawMetronomeMarks: false,
-					// ...this.opotions,
-					colorStemsLikeNoteheads: true, // 是否将音符柄的颜色设置为与它们的音符头相同,默认false
-					// drawingParameters: "compact" // 使用紧凑布局
-				});
-			}
-			osmd.setOptions({
-				drawLyrics: (((!state.accompany && !state.music ) || state.playType === 'sing' || !state.isEvxml) && !state.isSimplePage) ? true : false, // 演唱模式才渲染歌词,simple页面不显示歌词
+			osmd = new OpenSheetMusicDisplay(container, {
+				drawTitle: false,
+				drawSubtitle: false,
+				// drawMeasureNumbers: false,
+				autoResize: false,
+				followCursor: false,
 				drawPartNames: props.showPartNames, // 是否渲染声轨名称
+				drawLyricist: false, // 渲染作曲家
+				drawComposer: false, // 渲染作词家
 				defaultColorMusic: props.musicColor, // 颜色
-				renderSingleHorizontalStaffline: state.isSingleLine ? true : false
-			})
+				// pageBackgroundColor: '#609FCF',
+				renderSingleHorizontalStaffline: state.isSingleLine ? true : false,
+				// autoGenerateMultipleRestMeasuresFromRestMeasures: state.isSingleLine ? false : true, // 连续休止小节是否合并显示
+				autoGenerateMultipleRestMeasuresFromRestMeasures: true,
+				drawLyrics: ( ((!state.accompany && !state.music ) || state.playType === 'sing' || !state.isEvxml) && !state.isSimplePage) ? true : false, // 演唱模式才渲染歌词,simple页面不显示歌词
+				// darkMode: true, // 暗黑模式
+				// pageFormat: 'A4_P',
+				// autoBeam: true,
+				// drawMetronomeMarks: false,
+				// ...this.opotions,
+				colorStemsLikeNoteheads: true, // 是否将音符柄的颜色设置为与它们的音符头相同,默认false
+				// drawingParameters: "compact" // 使用紧凑布局
+			});
 			// osmd.EngravingRules.CompactMode = true // 紧凑模式
 			// osmd.EngravingRules.PageRightMargin = state.isSingleLine ? (window.innerWidth+200)/10 : 2;
 			// osmd.EngravingRules.FixedMeasureWidth = state.isSingleLine ? true : false; // 是否固定小节的宽度(小节同一宽度渲染)
@@ -188,11 +186,18 @@ export default defineComponent({
 			resetGivenFormate();
 			musicData.showSelection = true;
 		};
+		/** 获取渲染容器的宽度 */
+		const getContainerWidth = () => {
+			musicData.containerWidth = document.getElementById("musicAndSelection")?.offsetWidth || 625;
+			// console.log(musicData.containerWidth)
+		};
 		let horizontalDragScroll:HorizontalDragScroll | null
 		onMounted(async () => {
+			getContainerWidth();
 			//setRenderType();
 			await getXML();
 			await init();
+			musicData.isRenderLoading = false;
 			// pc 端支持 拖动滚动
 			if(state.platform === "PC" || query.isCbs){
 				const container = document.querySelector('#musicAndSelection') as HTMLElement;
@@ -219,26 +224,30 @@ export default defineComponent({
 
 		/** 刷新曲谱 */
 		const refreshMusicScore = () => {
-			isLoadingCss.value = true
-			state.evXmlBeginArr = [];
-			state.vfmeasures = [];
-			musicData.showSelection = false;
-			state.osmd.clear();
-			const container = document.getElementById('musicAndSelection'), svgDom = document.getElementById('osmdCanvasPage1');
+			const container = document.getElementById('musicAndSelection'), svgDom = document.getElementById('osmdCanvasPage1'), selectionBox = document.getElementById('selectionBox'), selectionBgBox = document.getElementById('selectionBgBox');
 			if (container) {
-				//这里需要删除osmd,不然多行谱和一行谱切换 滚动高度会出问题
 				svgDom && container?.removeChild(svgDom)
+				selectionBox && container?.removeChild(selectionBox)
+				selectionBgBox && container?.removeChild(selectionBgBox)
 			}
 			// 有可能会有 其他地方的js执行 阻塞 这里确保加载条出来
+			isLoadingCss.value = true
 			setTimeout(async () => {
-				// 在滚动过程中(雄鹰高飞这种marginbottom比较大的) 多行谱和一行谱切换 滚动高度会出问题
-				container && (container.scrollTop = 0)
+				state.evXmlBeginArr = [];
+				state.vfmeasures = [];
+				musicData.showSelection = false;
+				state.osmd.clear();
+				musicData.isRenderLoading = true;
+				musicData.isRefreshLoading = true;
+				getContainerWidth();
 				//setRenderType();
 				await getXML();
 				await init();
+				musicData.isRenderLoading = false;
+				musicData.isRefreshLoading = false;
 				musicData.showSelection = true;
 				isLoadingCss.value = false
-			}, 60);
+			}, 120);
 		}
 		expose({
 			refreshMusicScore,

+ 7 - 0
src/view/music-score/testCheck.tsx

@@ -14,6 +14,7 @@ export const musicRenderTypeKey = "musicRenderType";
 let osmd: any = null;
 const musicData = reactive({
 	showSelection: false, // 可以加载点击浮层
+	isRenderLoading: true,
 	score: "",
 	containerWidth: 0,
 });
@@ -130,7 +131,13 @@ export default defineComponent({
             container.innerHTML = "";
 			
 		};
+		/** 获取渲染容器的宽度 */
+		const getContainerWidth = () => {
+			musicData.containerWidth = 625;
+			// console.log(musicData.containerWidth)
+		};
 		onMounted(async () => {
+			getContainerWidth();
             state.isEvxml = true
             // checkRender(xmlList2);
 		});

二進制
src/view/selection/imgs/pitchHigh.png


二進制
src/view/selection/imgs/pitchLow.png


+ 184 - 175
src/view/selection/index.tsx

@@ -13,201 +13,210 @@ import IntonationUp from "./imgs/pitchHigh.png"
 import MultipleRestMeasures from "./multipleRestMeasures"
 import { browser } from "../../utils";
 
-export default defineComponent({
-	name: "selection",
-	setup() {
-		const browsInfo = browser();
-		const isPad =  navigator?.userAgent?.includes("UAWEIVRD-W09") || browsInfo?.iPad || browsInfo.isTablet;
-		const route = useRoute();
-		const query: any = {
-			...getQuery(),
-			...route.query,
+const selectData = reactive({
+	notes: [] as any[],
+	staves: [] as any[],
+	measureHeight: 0 as number, // 小节高度
+});
+
+/** 计算点击层数据 */
+const calcNoteData = () => {
+	const musicContainer = document.getElementById("musicAndSelection")?.getBoundingClientRect() || {
+		x: 0,
+		y: 0,
+	};
+	const parentLeft = musicContainer.x || 0;
+	const parentTop = musicContainer.y || 0;
+	const notes = state.times;
+	const notesList: string[] = [];
+	const MeasureNumberXMLList: number[] = [];
+	let minMeasureHeigt: number = 0;
+	for (let i = 0; i < notes.length; i++) {
+		const item = notes[i];
+		// console.log("🚀 ~ item:", item)
+		const noteItem = {
+			...item,
+			index: item.i,
+			bbox: null as any,
+			staveBox: null as any,
 		};
-		const selectData = reactive({
-			notes: [] as any[],
-			staves: [] as any[],
-			measureHeight: 0 as number, // 小节高度
-		});
-		/** 计算点击层数据 */
-		const calcNoteData = () => {
-			const musicContainer = document.getElementById("musicAndSelection")?.getBoundingClientRect() || {
-				x: 0,
-				y: 0,
-			};
-			const parentLeft = musicContainer.x || 0;
-			const parentTop = musicContainer.y || 0;
-			const notes = state.times;
-			const notesList: string[] = [];
-			const MeasureNumberXMLList: number[] = [];
-			let minMeasureHeigt: number = 0;
-			for (let i = 0; i < notes.length; i++) {
-				const item = notes[i];
-				// console.log("🚀 ~ item:", item)
-				const noteItem = {
-					...item,
-					index: item.i,
-					bbox: null as any,
-					staveBox: null as any,
+		if (!notesList.includes(item.noteId)) {
+			let staveBbox: any = {}, customBgBox: any = {};
+			if (item.stave?.attrs?.id) {
+				const staveEle = document.querySelector(`#${item.stave.attrs.id}`);
+				staveBbox = staveEle?.parentElement?.parentElement?.getBoundingClientRect?.() || {
+					x: 0,
+					width: 0,
 				};
-				if (!notesList.includes(item.noteId)) {
-					let staveBbox: any = {}, customBgBox: any = {};
-					if (item.stave?.attrs?.id) {
-						const staveEle = document.querySelector(`#${item.stave.attrs.id}`);
-						staveBbox = staveEle?.parentElement?.parentElement?.getBoundingClientRect?.() || {
-							x: 0,
-							width: 0,
+				customBgBox = staveEle?.querySelector('.vf-custom-bg')?.getBoundingClientRect() || { y: 0, height: 0 }
+				// console.log("🚀 ~ staveBbox:", staveBbox.height)
+			}
+			if (item.svgElement) {
+				const noteEle = document.querySelector(`#vf-${item.svgElement?.attrs?.id}`);
+
+				if (noteEle) {
+					const noteBbox = noteEle.getBoundingClientRect?.() || { x: 0, width: 0 };
+					if (state.musicRenderType !== EnumMusicRenderType.staff) {
+						noteItem.bbox = {
+							left: noteBbox.x - parentLeft - noteBbox.width / 4 + "px",
+							top: noteBbox.y - parentTop - noteBbox.height + "px",
+							width: noteBbox.width * 1.5 + "px",
+							height: noteBbox.height * 3 + "px",
+							x: item.bbox?.x,
+							y: item.bbox?.y,
+							originWidth: item.bbox?.width
 						};
-						customBgBox = staveEle?.querySelector('.vf-custom-bg')?.getBoundingClientRect() || { y: 0, height: 0 }
-						// console.log("🚀 ~ staveBbox:", staveBbox.height)
-					}
-					if (item.svgElement) {
-						const noteEle = document.querySelector(`#vf-${item.svgElement?.attrs?.id}`);
-		
-						if (noteEle) {
-							const noteBbox = noteEle.getBoundingClientRect?.() || { x: 0, width: 0 };
-							if (state.musicRenderType !== EnumMusicRenderType.staff) {
-								noteItem.bbox = {
-									left: noteBbox.x - parentLeft - noteBbox.width / 4 + "px",
-									top: noteBbox.y - parentTop - noteBbox.height + "px",
-									width: noteBbox.width * 1.5 + "px",
-									height: noteBbox.height * 3 + "px",
-									x: item.bbox?.x,
-									y: item.bbox?.y,
-									originWidth: item.bbox?.width
-								};
-								const noteHead = noteEle.querySelector(".vf-numbered-note-head");
-								const noteHeadBbox = noteHead?.getBoundingClientRect?.();
-								if  (noteHeadBbox) {
-									item.bbox = {
-										left: noteHeadBbox.x - parentLeft - noteHeadBbox.width / 4,
-										width: noteHeadBbox.width * 1.5,
-										x: item.bbox?.x,
-										y: item.bbox?.y,
-										originWidth: item.bbox?.width
-									}
-								}
-								
-							} else {
-								const needTransY = -(staveBbox.height - customBgBox.height) / 2 + "px";
-								noteItem.bbox = {
-									left: noteBbox.x - parentLeft - noteBbox.width / 4 + "px",
-									top: customBgBox.y ? customBgBox.y - parentTop + "px" : staveBbox.y - parentTop + "px",
-									width: noteBbox.width * 1.5 + "px",
-									height: staveBbox.height + "px",
-									x: item.bbox?.x,
-									y: item.bbox?.y,
-									originWidth: item.bbox?.width,
-									transform: `translateY(${needTransY})`
-								};
+						const noteHead = noteEle.querySelector(".vf-numbered-note-head");
+						const noteHeadBbox = noteHead?.getBoundingClientRect?.();
+						if  (noteHeadBbox) {
+							item.bbox = {
+								left: noteHeadBbox.x - parentLeft - noteHeadBbox.width / 4,
+								width: noteHeadBbox.width * 1.5,
+								x: item.bbox?.x,
+								y: item.bbox?.y,
+								originWidth: item.bbox?.width
 							}
-							
 						}
-						if (selectData.notes.find((item:any) => item.id === noteItem.id)) {
-							// 
-						} else {
-							selectData.notes.push(noteItem);
+						
+					} else {
+						const needTransY = -(staveBbox.height - customBgBox.height) / 2 + "px";
+						noteItem.bbox = {
+							left: noteBbox.x - parentLeft - noteBbox.width / 4 + "px",
+							top: customBgBox.y ? customBgBox.y - parentTop + "px" : staveBbox.y - parentTop + "px",
+							width: noteBbox.width * 1.5 + "px",
+							height: staveBbox.height + "px",
+							x: item.bbox?.x,
+							y: item.bbox?.y,
+							originWidth: item.bbox?.width,
+							transform: `translateY(${needTransY})`
+						};
+					}
+					
+				}
+				if (selectData.notes.find((item:any) => item.id === noteItem.id)) {
+					// 
+				} else {
+					selectData.notes.push(noteItem);
+				}
+				// selectData.notes.push(noteItem);
+				notesList.push(item.noteId);
+			}
+		}
+
+		if (!MeasureNumberXMLList.includes(item.MeasureNumberXML)) {
+			if (item.stave) {
+				if (item.stave?.attrs?.id) {
+					const staveEle = document.querySelector(`#${item.stave.attrs.id}`);
+					const list = [
+						Array.from(staveEle?.querySelectorAll(".vf-clef") || []),
+						Array.from(staveEle?.querySelectorAll(".vf-keysignature") || []),
+						Array.from(staveEle?.getElementsByTagName("text") || []),
+					].flat();
+					try {
+						if (list.length) {
+							// console.log("🚀 ~ list:", list)
+							list.forEach((_el: any) => {
+								_el?.style?.setProperty("display", "none");
+							});
 						}
-						// selectData.notes.push(noteItem);
-						notesList.push(item.noteId);
+					} catch (error) {}
+
+					const staveBbox = staveEle?.getBoundingClientRect?.() || { x: 0, width: 0, y: 0, height: 0 };
+					if (i === 0) {
+						minMeasureHeigt = staveBbox.height
 					}
+					try {
+						if (list.length) {
+							list.forEach((_el: any) => {
+								_el?.style?.removeProperty("display");
+							});
+						}
+					} catch (error) {}
+
+					// console.log("🚀 ~ staveEle:", staveBbox.height)
+					selectData.measureHeight = staveBbox.height
+					let compareVal = staveBbox.height - minMeasureHeigt
+					compareVal = compareVal > 0 ? compareVal : 0
+					noteItem.staveBox = {
+						left: staveBbox.x - parentLeft + "px",
+						// top: ((item.stave.y || 0) - 5) * state.zoom + "px",
+						top: staveBbox.y - parentTop + compareVal + "px",
+						width: staveBbox.width + "px",
+						height: staveBbox.height - compareVal + "px",
+						// background: 'rgba(0,0,0,.2)'
+					};
+					selectData.staves.push(noteItem);
 				}
-		
-				if (!MeasureNumberXMLList.includes(item.MeasureNumberXML)) {
-					if (item.stave) {
-						if (item.stave?.attrs?.id) {
-							const staveEle = document.querySelector(`#${item.stave.attrs.id}`);
-							const list = [
-								Array.from(staveEle?.querySelectorAll(".vf-clef") || []),
-								Array.from(staveEle?.querySelectorAll(".vf-keysignature") || []),
-								Array.from(staveEle?.getElementsByTagName("text") || []),
-							].flat();
-							try {
-								if (list.length) {
-									// console.log("🚀 ~ list:", list)
-									list.forEach((_el: any) => {
-										_el?.style?.setProperty("display", "none");
-									});
-								}
-							} catch (error) {}
-		
-							const staveBbox = staveEle?.getBoundingClientRect?.() || { x: 0, width: 0, y: 0, height: 0 };
-							if (i === 0) {
-								minMeasureHeigt = staveBbox.height
+				MeasureNumberXMLList.push(item.MeasureNumberXML);
+			} else {
+				if (item.multipleRestMeasures) {
+					if (state.isCombineRender) {
+						let currentItem = null;
+						for (let index = 0; index < state.vfmeasures.length; index++) {
+							const element = state.vfmeasures[index];
+							const measureNum = element.getAttribute('data-num') ? Number(element.getAttribute('data-num')) : -1;
+							const nextMeasureNum = state.vfmeasures[index+1]?.getAttribute('data-num') ? Number(state.vfmeasures[index+1]?.getAttribute('data-num')) : -1;
+							if (measureNum === item.MeasureNumberXML || item.MeasureNumberXML < nextMeasureNum || nextMeasureNum == -1) {
+								currentItem = element
+								break;
 							}
-							try {
-								if (list.length) {
-									list.forEach((_el: any) => {
-										_el?.style?.removeProperty("display");
-									});
-								}
-							} catch (error) {}
-		
-							// console.log("🚀 ~ staveEle:", staveBbox.height)
-							selectData.measureHeight = staveBbox.height
-							let compareVal = staveBbox.height - minMeasureHeigt
-							compareVal = compareVal > 0 ? compareVal : 0
+						}
+						const staveBbox = currentItem?.querySelector('.vf-stave')?.getBoundingClientRect() || { x: 0, width: 0, y: 0, height: 0 };
+						if (currentItem) {
 							noteItem.staveBox = {
 								left: staveBbox.x - parentLeft + "px",
 								// top: ((item.stave.y || 0) - 5) * state.zoom + "px",
-								top: staveBbox.y - parentTop + compareVal + "px",
+								top: staveBbox.y - parentTop  + "px",
 								width: staveBbox.width + "px",
-								height: staveBbox.height - compareVal + "px",
-								// background: 'rgba(0,0,0,.2)'
+								height: staveBbox.height + "px",
+								// height: preItem.staveBox.height,
 							};
 							selectData.staves.push(noteItem);
+							MeasureNumberXMLList.push(item.MeasureNumberXML);
 						}
-						MeasureNumberXMLList.push(item.MeasureNumberXML);
 					} else {
-						if (item.multipleRestMeasures) {
-							if (state.isCombineRender) {
-								let currentItem = null;
-								for (let index = 0; index < state.vfmeasures.length; index++) {
-									const element = state.vfmeasures[index];
-									const measureNum = element.getAttribute('data-num') ? Number(element.getAttribute('data-num')) : -1;
-									const nextMeasureNum = state.vfmeasures[index+1]?.getAttribute('data-num') ? Number(state.vfmeasures[index+1]?.getAttribute('data-num')) : -1;
-									if (measureNum === item.MeasureNumberXML || item.MeasureNumberXML < nextMeasureNum || nextMeasureNum == -1) {
-										currentItem = element
-										break;
-									}
-								}
-								const staveBbox = currentItem?.querySelector('.vf-stave')?.getBoundingClientRect() || { x: 0, width: 0, y: 0, height: 0 };
-								if (currentItem) {
-									noteItem.staveBox = {
-										left: staveBbox.x - parentLeft + "px",
-										// top: ((item.stave.y || 0) - 5) * state.zoom + "px",
-										top: staveBbox.y - parentTop  + "px",
-										width: staveBbox.width + "px",
-										height: staveBbox.height + "px",
-										// height: preItem.staveBox.height,
-									};
-									selectData.staves.push(noteItem);
-									MeasureNumberXMLList.push(item.MeasureNumberXML);
-								}
-							} else {
-								const preItem = selectData.staves.find(
-									(n: any) => n.MeasureNumberXML === item.MeasureNumberXML - 1
-								);
-								if (preItem?.staveBox) {
-									noteItem.staveBox = {
-										left: preItem.staveBox.left,
-										top: preItem.staveBox.top,
-										width: preItem.staveBox.width,
-										// height: preItem.staveBox.height,
-									};
-									selectData.staves.push(noteItem);
-									MeasureNumberXMLList.push(item.MeasureNumberXML);
-								}
-							}
-		
+						const preItem = selectData.staves.find(
+							(n: any) => n.MeasureNumberXML === item.MeasureNumberXML - 1
+						);
+						if (preItem?.staveBox) {
+							noteItem.staveBox = {
+								left: preItem.staveBox.left,
+								top: preItem.staveBox.top,
+								width: preItem.staveBox.width,
+								// height: preItem.staveBox.height,
+							};
+							selectData.staves.push(noteItem);
+							MeasureNumberXMLList.push(item.MeasureNumberXML);
 						}
 					}
+
 				}
 			}
-			// 部分浏览器渲染的第一小节的位置信息会包含拍号、调号,需要处理一下,剔除掉拍号、调号的位置
-			if (selectData.staves[0]?.staveBox?.top !== selectData.staves[1]?.staveBox?.top) {
-				selectData.staves[0].staveBox.top = selectData.staves[1]?.staveBox?.top || selectData.staves[0]?.staveBox?.top
-			}
-			console.log("🚀 ~ selectData.notes:", selectData.notes, selectData.staves);
+		}
+	}
+	// 部分浏览器渲染的第一小节的位置信息会包含拍号、调号,需要处理一下,剔除掉拍号、调号的位置
+	if (selectData.staves[0]?.staveBox?.top !== selectData.staves[1]?.staveBox?.top) {
+		selectData.staves[0].staveBox.top = selectData.staves[1]?.staveBox?.top || selectData.staves[0]?.staveBox?.top
+	}
+	console.log("🚀 ~ selectData.notes:", selectData.notes, selectData.staves);
+};
+
+/** 重新计算 */
+export const recalculateNoteData = () => {
+	selectData.notes = [];
+	selectData.staves = [];
+	calcNoteData();
+};
+
+export default defineComponent({
+	name: "selection",
+	setup() {
+		const browsInfo = browser();
+		const isPad =  navigator?.userAgent?.includes("UAWEIVRD-W09") || browsInfo?.iPad || browsInfo.isTablet;
+		const route = useRoute();
+		const query: any = {
+			...getQuery(),
+			...route.query,
 		};
 		/** 是否可以点击音符 */
 		const disableClickNote = computed(() => {
@@ -427,4 +436,4 @@ export default defineComponent({
 			</>
 		);
 	},
-});
+});

File diff suppressed because it is too large
+ 0 - 0
stats.html


+ 2 - 2
vite.config.ts

@@ -76,9 +76,9 @@ export default defineConfig({
         // target: "https://kt.colexiu.com",
         // target: "https://test.lexiaoya.cn",
         // target: "https://kt.colexiu.com",
-        target: "https://test.resource.colexiu.com", // 内容平台开发环境,内容平台开发,需在url链接上加上isCbs=true
+        // target: "https://test.resource.colexiu.com", // 内容平台开发环境,内容平台开发,需在url链接上加上isCbs=true
         // target: "https://test.kt.colexiu.com",
-        // target: "https://mec.colexiu.com",
+        target: "https://mec.colexiu.com",
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/instrument/, ""),
       },

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