Sfoglia il codice sorgente

Merge branch 'feature-tianyong-newVersion' of http://git.dayaedu.com/liushengqiang/music-score into hqyDevNewVersion

黄琪勇 1 anno fa
parent
commit
77b6f8fea0
69 ha cambiato i file con 188 aggiunte e 67 eliminazioni
  1. 0 0
      dist/css/index-fce9e04b.css
  2. 0 0
      dist/css/instrument-d78850b6.css
  3. 0 0
      dist/css/instrument-ea5aeaf6.css
  4. 0 0
      dist/js/colexiu-aba51b1b.js
  5. 0 0
      dist/js/colexiu-legacy-f74f81e3.js
  6. 0 0
      dist/js/index-0bc55d54.js
  7. 0 0
      dist/js/index-0d3b7b42.js
  8. 0 0
      dist/js/index-0d7d5fdc.js
  9. 0 0
      dist/js/index-21b53af9.js
  10. 0 0
      dist/js/index-2a1343e0.js
  11. 0 0
      dist/js/index-31774227.js
  12. 0 0
      dist/js/index-589cb412.js
  13. 0 0
      dist/js/index-58c2eaac.js
  14. 0 0
      dist/js/index-91fbf033.js
  15. 0 0
      dist/js/index-97c2723f.js
  16. 0 0
      dist/js/index-9f88b4d1.js
  17. 0 0
      dist/js/index-a66815ba.js
  18. 0 0
      dist/js/index-a974bdd0.js
  19. 1 1
      dist/js/index-cf7cdc8f.js
  20. 0 0
      dist/js/index-d0f39753.js
  21. 1 1
      dist/js/index-d9d69e05.js
  22. 0 0
      dist/js/index-eeedf869.js
  23. 0 0
      dist/js/index-f83719cf.js
  24. 1 1
      dist/js/index-ff577015.js
  25. 0 0
      dist/js/index-legacy-032ff639.js
  26. 0 0
      dist/js/index-legacy-053d4c40.js
  27. 0 0
      dist/js/index-legacy-0bdee5e3.js
  28. 1 1
      dist/js/index-legacy-25743b6e.js
  29. 0 0
      dist/js/index-legacy-3cc6b002.js
  30. 0 0
      dist/js/index-legacy-3e4d4286.js
  31. 0 0
      dist/js/index-legacy-457fb6fa.js
  32. 1 1
      dist/js/index-legacy-485834bd.js
  33. 0 0
      dist/js/index-legacy-4989aa57.js
  34. 0 0
      dist/js/index-legacy-4af22c3b.js
  35. 0 0
      dist/js/index-legacy-69c8acab.js
  36. 0 0
      dist/js/index-legacy-6f3062f5.js
  37. 0 0
      dist/js/index-legacy-7e8508f0.js
  38. 1 1
      dist/js/index-legacy-9cd737d4.js
  39. 0 0
      dist/js/index-legacy-b4dddc9f.js
  40. 0 0
      dist/js/index-legacy-bb996c14.js
  41. 0 0
      dist/js/index-legacy-ccba68f4.js
  42. 0 0
      dist/js/index-legacy-e7217f9b.js
  43. 0 0
      dist/js/index-legacy-f4aeb5cd.js
  44. 0 0
      dist/js/instrument-5bfa9914.js
  45. 0 0
      dist/js/instrument-ff82a3ab.js
  46. 0 0
      dist/js/instrument-legacy-6acd9b82.js
  47. 0 0
      dist/js/instrument-legacy-f596b29b.js
  48. 0 0
      dist/js/orchestra-c497ad5e.js
  49. 0 0
      dist/js/orchestra-legacy-ca3c3ccf.js
  50. 0 0
      dist/js/polyfills-fbd9978d.js
  51. 0 0
      dist/js/polyfills-legacy-7477f4a3.js
  52. 0 0
      dist/js/report-share-48a62b18.js
  53. 0 0
      dist/js/report-share-legacy-e1a98738.js
  54. 1 1
      osmd-extended
  55. 31 1
      src/helpers/customMusicScore.ts
  56. 15 1
      src/helpers/formateMusic.ts
  57. 13 13
      src/page-colexiu/detail/index.tsx
  58. 14 14
      src/page-gym/detail/index.tsx
  59. 1 1
      src/page-instrument/component/authorName/index.module.less
  60. 16 4
      src/page-instrument/component/authorName/index.tsx
  61. 1 0
      src/page-instrument/view-detail/index.tsx
  62. 3 3
      src/page-instrument/view-detail/smoothAnimation/index.less
  63. 13 13
      src/page-orchestra/detail/index.tsx
  64. 23 1
      src/state.ts
  65. 27 2
      src/view/music-score/index.module.less
  66. 5 4
      src/view/music-score/index.tsx
  67. 15 0
      src/view/selection/index.module.less
  68. 2 1
      src/view/selection/index.tsx
  69. 2 2
      vite.config.ts

File diff suppressed because it is too large
+ 0 - 0
dist/css/index-fce9e04b.css


File diff suppressed because it is too large
+ 0 - 0
dist/css/instrument-d78850b6.css


File diff suppressed because it is too large
+ 0 - 0
dist/css/instrument-ea5aeaf6.css


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


+ 1 - 1
dist/js/index-d8f93bbd.js → dist/js/index-cf7cdc8f.js

@@ -1 +1 @@
-import{d,l as i,n as p,m as e,w as o,f as r,V as a}from"./index-c987494a.js";const c=d({name:"measureSpeed",setup(){const s=i(!1),t=p({speed:e.speed,originSpeed:e.originSpeed});return o(()=>e.section.length,()=>{if(e.modeType==="practise"){if(!s.value&&e.section.length===2){s.value=!0,t.speed=e.speed;const n=e.section[0].beatSpeed;e.originSpeed=n,a(n)}s.value&&e.section.length===0&&(s.value=!1,e.originSpeed=t.originSpeed,a(t.speed))}}),()=>r("div",null,null)}});export{c as M};
+import{d,l as i,n as p,m as e,w as o,f as r,V as a}from"./index-f83719cf.js";const c=d({name:"measureSpeed",setup(){const s=i(!1),t=p({speed:e.speed,originSpeed:e.originSpeed});return o(()=>e.section.length,()=>{if(e.modeType==="practise"){if(!s.value&&e.section.length===2){s.value=!0,t.speed=e.speed;const n=e.section[0].beatSpeed;e.originSpeed=n,a(n)}s.value&&e.section.length===0&&(s.value=!1,e.originSpeed=t.originSpeed,a(t.speed))}}),()=>r("div",null,null)}});export{c as M};

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


+ 1 - 1
dist/js/index-97f5c368.js → dist/js/index-d9d69e05.js

@@ -1 +1 @@
-import{d as i,g as l,n as c,cc as e,c as d,m as r,f as s,aw as u}from"./index-c987494a.js";const f="_skeleton_vtlsh_1",m="_detail_vtlsh_12",p="_container_vtlsh_20",a={skeleton:f,detail:m,container:p},y=i({name:"music-list",setup(){const n=l(),t=c({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:""}]});d(()=>{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 c,cc as e,c as d,m as r,f as s,aw as u}from"./index-f83719cf.js";const f="_skeleton_vtlsh_1",m="_detail_vtlsh_12",p="_container_vtlsh_20",a={skeleton:f,detail:m,container:p},y=i({name:"music-list",setup(){const n=l(),t=c({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:""}]});d(()=>{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-eeedf869.js


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


+ 1 - 1
dist/js/index-948cb66f.js → dist/js/index-ff577015.js

@@ -1 +1 @@
-import{ba as w,c2 as C,bh as E,bg as L,d as B,l as h,c3 as R,c4 as N,w as b,c5 as _,c as y,c6 as F,c7 as G,f as r,aG as H,c8 as m,c9 as I,ca as M,bl as U}from"./index-c987494a.js";const[V,o,j]=w("list"),q={error:Boolean,offset:C(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:E("down"),loadingText:String,finishedText:String,immediateCheck:L};var z=B({name:V,props:q,emits:["load","update:error","update:loading"],setup(e,{emit:s,slots:a}){const d=h(e.loading),f=h(),g=h(),c=R(),v=N(f),n=()=>{H(()=>{if(d.value||e.finished||e.disabled||e.error||(c==null?void 0:c.value)===!1)return;const{direction:t}=e,l=+e.offset,i=m(v);if(!i.height||I(f))return;let u=!1;const x=m(g);t==="up"?u=i.top-x.top<=l:u=x.bottom-i.bottom<=l,u&&(d.value=!0,s("update:loading",!0),s("load"))})},T=()=>{if(e.finished){const t=a.finished?a.finished():e.finishedText;if(t)return r("div",{class:o("finished-text")},[t])}},k=()=>{s("update:error",!1),n()},P=()=>{if(e.error){const t=a.error?a.error():e.errorText;if(t)return r("div",{role:"button",class:o("error-text"),tabindex:0,onClick:k},[t])}},S=()=>{if(d.value&&!e.finished&&!e.disabled)return r("div",{class:o("loading")},[a.loading?a.loading():r(M,{class:o("loading-icon")},{default:()=>[e.loadingText||j("loading")]})])};return b(()=>[e.loading,e.finished,e.error],n),c&&b(c,t=>{t&&n()}),_(()=>{d.value=e.loading}),y(()=>{e.immediateCheck&&n()}),F({check:n}),G("scroll",n,{target:v,passive:!0}),()=>{var t;const l=(t=a.default)==null?void 0:t.call(a),i=r("div",{ref:g,class:o("placeholder")},null);return r("div",{ref:f,role:"feed",class:o(),"aria-busy":d.value},[e.direction==="down"?l:i,S(),T(),P(),e.direction==="up"?l:i])}}});const D=U(z);export{D as L};
+import{ba as w,c2 as C,bh as E,bg as L,d as B,l as h,c3 as R,c4 as N,w as b,c5 as _,c as y,c6 as F,c7 as G,f as r,aG as H,c8 as m,c9 as I,ca as M,bl as U}from"./index-f83719cf.js";const[V,o,j]=w("list"),q={error:Boolean,offset:C(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:E("down"),loadingText:String,finishedText:String,immediateCheck:L};var z=B({name:V,props:q,emits:["load","update:error","update:loading"],setup(e,{emit:s,slots:a}){const d=h(e.loading),f=h(),g=h(),c=R(),v=N(f),n=()=>{H(()=>{if(d.value||e.finished||e.disabled||e.error||(c==null?void 0:c.value)===!1)return;const{direction:t}=e,l=+e.offset,i=m(v);if(!i.height||I(f))return;let u=!1;const x=m(g);t==="up"?u=i.top-x.top<=l:u=x.bottom-i.bottom<=l,u&&(d.value=!0,s("update:loading",!0),s("load"))})},T=()=>{if(e.finished){const t=a.finished?a.finished():e.finishedText;if(t)return r("div",{class:o("finished-text")},[t])}},k=()=>{s("update:error",!1),n()},P=()=>{if(e.error){const t=a.error?a.error():e.errorText;if(t)return r("div",{role:"button",class:o("error-text"),tabindex:0,onClick:k},[t])}},S=()=>{if(d.value&&!e.finished&&!e.disabled)return r("div",{class:o("loading")},[a.loading?a.loading():r(M,{class:o("loading-icon")},{default:()=>[e.loadingText||j("loading")]})])};return b(()=>[e.loading,e.finished,e.error],n),c&&b(c,t=>{t&&n()}),_(()=>{d.value=e.loading}),y(()=>{e.immediateCheck&&n()}),F({check:n}),G("scroll",n,{target:v,passive:!0}),()=>{var t;const l=(t=a.default)==null?void 0:t.call(a),i=r("div",{ref:g,class:o("placeholder")},null);return r("div",{ref:f,role:"feed",class:o(),"aria-busy":d.value},[e.direction==="down"?l:i,S(),T(),P(),e.direction==="up"?l:i])}}});const D=U(z);export{D as L};

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


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


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


+ 1 - 1
dist/js/index-legacy-14119fee.js → dist/js/index-legacy-25743b6e.js

@@ -1 +1 @@
-System.register(["./index-legacy-c75c42f0.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.cc,r=e.c,s=e.m,d=e.f,l=e.aw}],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-69c8acab.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.cc,r=e.c,s=e.m,d=e.f,l=e.aw}],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-3cc6b002.js


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


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


+ 1 - 1
dist/js/index-legacy-b0a6e4c1.js → dist/js/index-legacy-485834bd.js

@@ -1 +1 @@
-System.register(["./index-legacy-c75c42f0.js"],(function(e,i){"use strict";var r,t,o,n,a,d,l,s,c,u,f,g,h,v,p,b,x,m,T;return{setters:[e=>{r=e.ba,t=e.c2,o=e.bh,n=e.bg,a=e.d,d=e.l,l=e.c3,s=e.c4,c=e.w,u=e.c5,f=e.c,g=e.c6,h=e.c7,v=e.f,p=e.aG,b=e.c8,x=e.c9,m=e.ca,T=e.bl}],execute:function(){const[i,k,B]=r("list"),S={error:Boolean,offset:t(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:o("down"),loadingText:String,finishedText:String,immediateCheck:n};var w=a({name:i,props:S,emits:["load","update:error","update:loading"],setup(e,{emit:i,slots:r}){const t=d(e.loading),o=d(),n=d(),a=l(),T=s(o),S=()=>{p((()=>{if(t.value||e.finished||e.disabled||e.error||!1===(null==a?void 0:a.value))return;const{direction:r}=e,d=+e.offset,l=b(T);if(!l.height||x(o))return;let s=!1;const c=b(n);s="up"===r?l.top-c.top<=d:c.bottom-l.bottom<=d,s&&(t.value=!0,i("update:loading",!0),i("load"))}))},w=()=>{if(e.finished){const i=r.finished?r.finished():e.finishedText;if(i)return v("div",{class:k("finished-text")},[i])}},y=()=>{i("update:error",!1),S()},C=()=>{if(e.error){const i=r.error?r.error():e.errorText;if(i)return v("div",{role:"button",class:k("error-text"),tabindex:0,onClick:y},[i])}},j=()=>{if(t.value&&!e.finished&&!e.disabled)return v("div",{class:k("loading")},[r.loading?r.loading():v(m,{class:k("loading-icon")},{default:()=>[e.loadingText||B("loading")]})])};return c((()=>[e.loading,e.finished,e.error]),S),a&&c(a,(e=>{e&&S()})),u((()=>{t.value=e.loading})),f((()=>{e.immediateCheck&&S()})),g({check:S}),h("scroll",S,{target:T,passive:!0}),()=>{var i;const a=null==(i=r.default)?void 0:i.call(r),d=v("div",{ref:n,class:k("placeholder")},null);return v("div",{ref:o,role:"feed",class:k(),"aria-busy":t.value},["down"===e.direction?a:d,j(),w(),C(),"up"===e.direction?a:d])}}});e("L",T(w))}}}));
+System.register(["./index-legacy-69c8acab.js"],(function(e,i){"use strict";var r,t,o,n,a,d,l,s,c,u,f,g,h,v,p,b,x,m,T;return{setters:[e=>{r=e.ba,t=e.c2,o=e.bh,n=e.bg,a=e.d,d=e.l,l=e.c3,s=e.c4,c=e.w,u=e.c5,f=e.c,g=e.c6,h=e.c7,v=e.f,p=e.aG,b=e.c8,x=e.c9,m=e.ca,T=e.bl}],execute:function(){const[i,k,B]=r("list"),S={error:Boolean,offset:t(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:o("down"),loadingText:String,finishedText:String,immediateCheck:n};var w=a({name:i,props:S,emits:["load","update:error","update:loading"],setup(e,{emit:i,slots:r}){const t=d(e.loading),o=d(),n=d(),a=l(),T=s(o),S=()=>{p((()=>{if(t.value||e.finished||e.disabled||e.error||!1===(null==a?void 0:a.value))return;const{direction:r}=e,d=+e.offset,l=b(T);if(!l.height||x(o))return;let s=!1;const c=b(n);s="up"===r?l.top-c.top<=d:c.bottom-l.bottom<=d,s&&(t.value=!0,i("update:loading",!0),i("load"))}))},w=()=>{if(e.finished){const i=r.finished?r.finished():e.finishedText;if(i)return v("div",{class:k("finished-text")},[i])}},y=()=>{i("update:error",!1),S()},C=()=>{if(e.error){const i=r.error?r.error():e.errorText;if(i)return v("div",{role:"button",class:k("error-text"),tabindex:0,onClick:y},[i])}},j=()=>{if(t.value&&!e.finished&&!e.disabled)return v("div",{class:k("loading")},[r.loading?r.loading():v(m,{class:k("loading-icon")},{default:()=>[e.loadingText||B("loading")]})])};return c((()=>[e.loading,e.finished,e.error]),S),a&&c(a,(e=>{e&&S()})),u((()=>{t.value=e.loading})),f((()=>{e.immediateCheck&&S()})),g({check:S}),h("scroll",S,{target:T,passive:!0}),()=>{var i;const a=null==(i=r.default)?void 0:i.call(r),d=v("div",{ref:n,class:k("placeholder")},null);return v("div",{ref:o,role:"feed",class:k(),"aria-busy":t.value},["down"===e.direction?a:d,j(),w(),C(),"up"===e.direction?a:d])}}});e("L",T(w))}}}));

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


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


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


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


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


+ 1 - 1
dist/js/index-legacy-372dec40.js → dist/js/index-legacy-9cd737d4.js

@@ -1 +1 @@
-System.register(["./index-legacy-c75c42f0.js"],(function(e,n){"use strict";var i,t,s,d,r,p,o;return{setters:[e=>{i=e.d,t=e.l,s=e.n,d=e.m,r=e.w,p=e.f,o=e.V}],execute:function(){e("M",i({name:"measureSpeed",setup(){const e=t(!1),n=s({speed:d.speed,originSpeed:d.originSpeed});return r((()=>d.section.length),(()=>{if("practise"===d.modeType){if(!e.value&&2===d.section.length){e.value=!0,n.speed=d.speed;const i=d.section[0].beatSpeed;d.originSpeed=i,o(i)}e.value&&0===d.section.length&&(e.value=!1,d.originSpeed=n.originSpeed,o(n.speed))}})),()=>p("div",null,null)}}))}}}));
+System.register(["./index-legacy-69c8acab.js"],(function(e,n){"use strict";var i,t,s,d,r,p,o;return{setters:[e=>{i=e.d,t=e.l,s=e.n,d=e.m,r=e.w,p=e.f,o=e.V}],execute:function(){e("M",i({name:"measureSpeed",setup(){const e=t(!1),n=s({speed:d.speed,originSpeed:d.originSpeed});return r((()=>d.section.length),(()=>{if("practise"===d.modeType){if(!e.value&&2===d.section.length){e.value=!0,n.speed=d.speed;const i=d.section[0].beatSpeed;d.originSpeed=i,o(i)}e.value&&0===d.section.length&&(e.value=!1,d.originSpeed=n.originSpeed,o(n.speed))}})),()=>p("div",null,null)}}))}}}));

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit 3cf231dfd6773879a230af60b5e5e05e8806a665
+Subproject commit 149bd5cbbd28d7b2dafa73defdf4b7c201032913

+ 31 - 1
src/helpers/customMusicScore.ts

@@ -263,6 +263,7 @@ export const resetFormate = () => {
 		const staveSection: SVGAElement[] = Array.from(staffline.querySelectorAll(".vf-measure .vf-staveSection"));
 		const paths: SVGAElement[] = Array.from(staffline.querySelectorAll(".vf-measure > .vf-stave path"));
 		const dotModifiers: SVGAElement[] = Array.from(staffline.querySelectorAll(".vf-measure .vf-stopDot"));
+		const staves: SVGAElement[] = Array.from(staffline.querySelectorAll(".vf-measure > .vf-stave"));
 
 		// 获取第一个线谱的y轴坐标
 		const firstLinePathY = paths[0]?.getBBox().y || 0
@@ -532,8 +533,37 @@ export const resetFormate = () => {
 			}
 		};
 
+		// 给小节添加背景色
+		staves.forEach((stave: any) => {
+			const list = [
+				Array.from(stave?.querySelectorAll(".vf-clef") || []),
+				Array.from(stave?.querySelectorAll(".vf-keysignature") || []),
+				Array.from(stave?.getElementsByTagName("text") || []),
+			].flat();
+			try {
+				if (list.length) {
+					list.forEach((_el: any) => {
+						_el?.style?.setProperty("display", "none");
+					});
+				}
+			} catch (error) {}
+			const bbox = stave?.getBBox() || {};
+			const rect = `<rect class="vf-custom-bg" x="${bbox.x}" y="${bbox.y}" width="${bbox.width}" height="${bbox.height}" fill="#609FCF" />`
+			const rectBottom = `<rect class="vf-custom-bot" x="${bbox.x}" y="${bbox.y+bbox.height}" width="${bbox.width}" height="12" fill="#2B70A5" />`
+			const customG = `<g>${rect}${rectBottom}</g>`
+			try {
+				if (list.length) {
+					list.forEach((_el: any) => {
+						_el?.style?.removeProperty("display");
+					});
+				}
+			} catch (error) {}
+			stave.innerHTML = customG + stave.innerHTML;
+		});
+		
+		state.vfmeasures = state.vfmeasures.concat(vfmeasures);
 	}
-
+	
 	// setTimeout(() => this.resetGlobalText());
 };
 // 技巧文本

+ 15 - 1
src/helpers/formateMusic.ts

@@ -627,6 +627,8 @@ export const formatXML = (xml: string, xmlUrl?: string): string => {
 	const measures = Array.from(xmlParse.getElementsByTagName("measure"));
 	const repeats: any = Array.from(xmlParse.querySelectorAll('repeat'));
 	compatibleXmlPitchVoice(xmlParse);
+	// 获取作词、作曲家
+	getComposer(xmlParse);
 	// 处理重复小节信息
 	parseXmlToRepeat(repeats)
 	// 解析处理evxml
@@ -1286,6 +1288,18 @@ export const getNoteByMeasuresSlursStart = (note: any) => {
 	return activeNote;
 };
 
+// 解析xml,获取作词、作曲家名称
+const getComposer = (xmlParse: any) => {
+	const creators: any = Array.from(xmlParse.querySelectorAll('creator'));
+	for (const creator of creators) {
+		if (creator && creator.getAttribute('type') === 'composer' && !state.musicComposer) {
+			state.musicComposer = creator.textContent?.trim() || '';
+		}
+		if (creator && creator.getAttribute('type') === 'lyricist' && !state.musicLyricist) {
+			state.musicLyricist = creator.textContent?.trim() || '';
+		}
+	}
+}
 
 // 通过xml信息获取重播的小节信息
 const parseXmlToRepeat = (repeats: any) => {
@@ -1466,7 +1480,7 @@ const analyzeEvxml = (xmlParse: any, xmlUrl?: string) => {
  */
 export const compatibleXmlPitchVoice = (xmlParse: any) => {
 	const partNames = Array.from(xmlParse.getElementsByTagName('part-name'));
-	const partListNames = partNames.map((item: any) => item[0]?.textContent?.trim().toLocaleUpperCase !== "COMMON");
+	const partListNames = partNames.filter((item: any) => item?.textContent?.trim().toLocaleUpperCase() !== "COMMON");
 	if (partListNames.length == 1) {
 		const instrumentNames = Array.from(xmlParse.getElementsByTagName('instrument-name')) || [];
 		// @ts-ignore

+ 13 - 13
src/page-colexiu/detail/index.tsx

@@ -7,7 +7,7 @@ import state, { isRhythmicExercises } from "../../state";
 import { storeData } from "../../store";
 import { setGlobalData } from "../../utils";
 import AudioList from "../../view/audio-list";
-import MusicScore, { resetMusicScore } from "../../view/music-score";
+import MusicScore from "../../view/music-score";
 import { sysMusicScoreAccompanimentQueryPage } from "../api";
 import EvaluatModel from "../evaluat-model";
 import HeaderTop from "../header-top";
@@ -186,16 +186,16 @@ export default defineComponent({
 		});
 
 		// 监听指法显示
-		watch(
-			() => state.setting.displayFingering,
-			() => {
-				if (state.fingeringInfo.direction === "vertical") {
-					nextTick(() => {
-						resetMusicScore();
-					});
-				}
-			}
-		);
+		// watch(
+		// 	() => state.setting.displayFingering,
+		// 	() => {
+		// 		if (state.fingeringInfo.direction === "vertical") {
+		// 			nextTick(() => {
+		// 				resetMusicScore();
+		// 			});
+		// 		}
+		// 	}
+		// );
 		// 监听播放状态
 		watch(
 			() => state.playState,
@@ -204,10 +204,10 @@ export default defineComponent({
 			}
 		);
 		onMounted(() => {
-			window.addEventListener("resize", resetMusicScore);
+			// window.addEventListener("resize", resetMusicScore);
 		});
 		onBeforeUnmount(() => {
-			window.removeEventListener("resize", resetMusicScore);
+			// window.removeEventListener("resize", resetMusicScore);
 		});
 		return () => (
 			<div

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

@@ -6,7 +6,7 @@ import Metronome, { metronomeData } from "../../helpers/metronome";
 import state, { handleSetSpeed, isRhythmicExercises } from "/src/state";
 import { storeData } from "../../store";
 import AudioList from "../../view/audio-list";
-import MusicScore, { resetMusicScore } from "../../view/music-score";
+import MusicScore from "../../view/music-score";
 import { sysMusicScoreAccompanimentQueryPage, sysMusicScoreCategoriesQueryTree } from "../api";
 import EvaluatModel from "../evaluat-model";
 import HeaderTop from "../header-top";
@@ -255,22 +255,22 @@ export default defineComponent({
 			};
 		});
 
-		// 监听指法显示
-		watch(
-			() => state.setting.displayFingering,
-			() => {
-				if (state.fingeringInfo.direction === "vertical") {
-					nextTick(() => {
-						resetMusicScore();
-					});
-				}
-			}
-		);
+		// // 监听指法显示
+		// watch(
+		// 	() => state.setting.displayFingering,
+		// 	() => {
+		// 		if (state.fingeringInfo.direction === "vertical") {
+		// 			nextTick(() => {
+		// 				resetMusicScore();
+		// 			});
+		// 		}
+		// 	}
+		// );
 		onMounted(() => {
-			window.addEventListener("resize", resetMusicScore);
+			//window.addEventListener("resize", resetMusicScore);
 		});
 		onBeforeUnmount(() => {
-			window.removeEventListener("resize", resetMusicScore);
+			//window.removeEventListener("resize", resetMusicScore);
 		});
 		return () => (
 			<div class={[styles.detail, state.setting.camera && styles.opencamera]} style={{ paddingLeft: detailData.paddingLeft }}>

+ 1 - 1
src/page-instrument/component/authorName/index.module.less

@@ -29,7 +29,7 @@
                 height: 20px;
                 padding: 0;
                 font-weight: 400;
-                font-size: 14px;
+                font-size: 13px;
                 color: #FFFFFF;
                 line-height: 20px;
                 .van-notice-bar__wrap{

+ 16 - 4
src/page-instrument/component/authorName/index.tsx

@@ -1,4 +1,4 @@
-import { defineComponent } from "vue"
+import { defineComponent, computed } from "vue"
 import styles from "./index.module.less"
 import { NoticeBar } from "vant"
 import state from "/src/state"
@@ -7,6 +7,11 @@ import { smoothAnimationState } from "../../view-detail/smoothAnimation"
 export default defineComponent({
    name: "authorName",
    setup() {
+		const combineAuthor = computed(() => {
+			const context = state.musicLyricist ? state.musicComposer + ' / ' + state.musicLyricist : state.musicComposer;
+			return context
+		});
+
       return () => (
          <>
             {
@@ -17,9 +22,16 @@ export default defineComponent({
                   </div>
                   <div class={styles.authorCon}>
                      <div class={styles.author}>
-                        <NoticeBar text={'作词:李非 '} background="none" />
-                        <NoticeBar text={'作曲:雅克兄弟'} background="none" />
-                        {/* <NoticeBar text={'作词:李非 / 作曲:雅克兄弟'} background="none" /> */}
+                        {
+                           state.isSingleLine ? 
+                           <>
+                              { state.musicLyricist && <NoticeBar text={state.musicLyricist} background="none" />}
+                              { state.musicComposer && <NoticeBar text={state.musicComposer} background="none" /> }                           
+                           </> : 
+                           <>
+                              { combineAuthor.value && <NoticeBar text={combineAuthor.value} background="none" /> }
+                           </>
+                        }
                      </div>
                   </div>
                </div>

+ 1 - 0
src/page-instrument/view-detail/index.tsx

@@ -456,6 +456,7 @@ export default defineComponent({
           {/* 曲谱渲染 */}
           {!detailData.isLoading && 
             <MusicScore 
+              musicColor={'#FFFFFF'}
               showPartNames={state.isCombineRender}
               onRendered={handleRendered} 
             > 

+ 3 - 3
src/page-instrument/view-detail/smoothAnimation/index.less

@@ -25,9 +25,9 @@
     #cursorImg-0 {
         display: none;
     }
-    .staveBox {
-        display: none !important;
-    }
+    // .staveBox {
+    //     display: none !important;
+    // }
     .authorName{
         position: fixed;
         left: 0;

+ 13 - 13
src/page-orchestra/detail/index.tsx

@@ -6,7 +6,7 @@ import state, { IAudioState, isRhythmicExercises, musicscoresettingKey } from ".
 import { storeData } from "../../store";
 import { setGlobalData } from "../../utils";
 import AudioList from "../../view/audio-list";
-import MusicScore, { resetMusicScore } from "../../view/music-score";
+import MusicScore from "../../view/music-score";
 import { sysMusicScoreAccompanimentQueryPage } from "../api";
 import EvaluatModel from "../evaluat-model";
 import HeaderTop from "../header-top";
@@ -221,21 +221,21 @@ export default defineComponent({
 			}
 		);
 		// 监听指法显示
-		watch(
-			() => state.setting.displayFingering,
-			() => {
-				if (state.fingeringInfo.direction === "vertical") {
-					nextTick(() => {
-						resetMusicScore();
-					});
-				}
-			}
-		);
+		// watch(
+		// 	() => state.setting.displayFingering,
+		// 	() => {
+		// 		if (state.fingeringInfo.direction === "vertical") {
+		// 			nextTick(() => {
+		// 				resetMusicScore();
+		// 			});
+		// 		}
+		// 	}
+		// );
 		onMounted(() => {
-			window.addEventListener("resize", resetMusicScore);
+			// window.addEventListener("resize", resetMusicScore);
 		});
 		onBeforeUnmount(() => {
-			window.removeEventListener("resize", resetMusicScore);
+			// window.removeEventListener("resize", resetMusicScore);
 		});
 
 		const guideShow = !localStorage.getItem("isFirstTip") || !localStorage.getItem("isFirstModel");

+ 23 - 1
src/state.ts

@@ -493,6 +493,12 @@ const state = reactive({
   defaultModeType: 1,
   /** 音符最多歌词次数 */
   maxLyricNum: 0,
+  /** 小节dom集合 */
+  vfmeasures: [] as SVGAElement[],
+  /** 作曲家 */
+  musicComposer: '',
+  /** 作词家 */
+  musicLyricist: '',
 });
 const browserInfo = browser();
 let offset_duration = 0;
@@ -1541,4 +1547,20 @@ export const moveSvgDom = (skipNote?: boolean) => {
       behavior: "smooth",
     });
   }
-}
+}
+
+watch(
+	() => state.activeMeasureIndex,
+	() => {
+    console.log('当前小节',state.activeMeasureIndex)
+    state.vfmeasures.forEach((item: any, idx: number) => {
+      if (idx === (state.activeMeasureIndex-1)) {
+        item.querySelector('.vf-custom-bg')?.setAttribute("fill", "#132D4C")
+        item.querySelector('.vf-custom-bot')?.setAttribute("fill", "#040D1E")
+      } else {
+        item.querySelector('.vf-custom-bg')?.setAttribute("fill", "#609FCF")
+        item.querySelector('.vf-custom-bot')?.setAttribute("fill", "#2B70A5")
+      }
+    })
+	}
+);

+ 27 - 2
src/view/music-score/index.module.less

@@ -24,8 +24,8 @@
     }
     .noteActive {
         path {
-            fill: #FF2B29;
-            stroke: #FF2B29;
+            fill: #FFC121;
+            stroke: #FFC121;
         }
         transform-box: fill-box;
         transform-origin: center;
@@ -33,6 +33,31 @@
         // transform: scale(2);
         // transition: all 0.3s;
     }
+    .vf-custom-rect {
+        position: relative;
+        // stroke: grey;
+        // stroke-width: 5;
+        // box-shadow: 10px 10px 5px grey;
+        // &::before {
+        //     content: "";
+        //     position: absolute;
+        //     left: 0;
+        //     bottom: -10Px;
+        //     width: 100%;
+        //     height: 8Px;
+        //     background: linear-gradient(rgba(7, 24, 56, 0.5) 0%, #010D31 100%);
+        //     z-index: 0;
+        //     filter: blur(5Px);
+        //     opacity: 0.7;
+        // }        
+    }
+    .vf-custom-dom {
+        position: relative;
+        width: 200px;
+        height: 50px;
+        background: #FFC121;
+        z-index: 999;
+    }
 }
 .inGradualRange{
    :global{

+ 5 - 4
src/view/music-score/index.tsx

@@ -86,9 +86,10 @@ export default defineComponent({
 				autoResize: false,
 				followCursor: false,
 				drawPartNames: props.showPartNames, // 是否渲染声轨名称
-				// drawLyricist: false, // 渲染作曲家
-				// drawComposer: false, // 渲染作词家
+				drawLyricist: false, // 渲染作曲家
+				drawComposer: false, // 渲染作词家
 				defaultColorMusic: props.musicColor, // 颜色
+				// pageBackgroundColor: '#609FCF',
 				renderSingleHorizontalStaffline: state.isSingleLine ? true : false,
 				autoGenerateMultipleRestMeasuresFromRestMeasures: state.isSingleLine ? false : true, // 连续休止小节是否合并显示
 				// darkMode: true, // 暗黑模式
@@ -96,7 +97,7 @@ export default defineComponent({
 				// autoBeam: true,
 				// drawMetronomeMarks: false,
 				// ...this.opotions,
-				
+				colorStemsLikeNoteheads: true, // 是否将音符柄的颜色设置为与它们的音符头相同,默认false
 			});
 			// osmd.EngravingRules.CompactMode = true // 紧凑模式
 			// osmd.EngravingRules.PageRightMargin = state.isSingleLine ? (window.innerWidth+200)/10 : 2;
@@ -112,7 +113,7 @@ export default defineComponent({
 			// 	osmd.EngravingRules.PageRightMargin = 7;
 			// }
 			//osmd.EngravingRules.PageBottomMargin = state.platform === IPlatform.PC ? 1 : 2;
-			osmd.EngravingRules.PageBottomMargin = 0;
+			osmd.EngravingRules.PageBottomMargin = 5;
 			osmd.EngravingRules.DYMusicScoreType =
 				state.musicRenderType === EnumMusicRenderType.staff ? "staff" : "jianpu";
 			// 如果为固定调,需要加入全局

+ 15 - 0
src/view/selection/index.module.less

@@ -254,4 +254,19 @@
     width: 2px;
     height: 2px;
     // background: #07c160;
+}
+
+.staveBg {
+    &::before {
+        content: "";
+        position: absolute;
+        left: 0;
+        bottom: -10Px;
+        width: 100%;
+        height: 8Px;
+        background: linear-gradient(rgba(7, 24, 56, 0.5) 0%, #010D31 100%);
+        z-index: 0;
+        filter: blur(5Px);
+        opacity: 0.7;
+    }
 }

+ 2 - 1
src/view/selection/index.tsx

@@ -151,7 +151,7 @@ const calcNoteData = () => {
 			}
 		}
 	}
-	// console.log("🚀 ~ selectData.notes:", selectData.notes, selectData.staves);
+	console.log("🚀 ~ selectData.notes:", selectData.notes, selectData.staves);
 };
 
 /** 重新计算 */
@@ -262,6 +262,7 @@ export default defineComponent({
 										styles.position,
 										showClass.value(item),
 										scoreItem ? `scoreItemLeve${scoreItem.leve}` : "",
+										item.multipleRestMeasures <= 1 ? styles.staveBg : "",
 										(state.platform === IPlatform.PC && state.zoom > 0.8) ? styles.linePC : '',
 									]}
 									style={item.staveBox}

+ 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://dev.resource.colexiu.com",
-        target: "https://dev.kt.colexiu.com",
+        // target: "https://dev.kt.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