TIANYONG 11 months ago
parent
commit
2b358e2a11
54 changed files with 338 additions and 132 deletions
  1. 0 0
      dist/assets/colexiu-6993371d.js
  2. 0 0
      dist/assets/colexiu-legacy-a3fec5e1.js
  3. 0 0
      dist/assets/gym-ce482c00.js
  4. 0 0
      dist/assets/gym-legacy-668ee99a.js
  5. BIN
      dist/assets/icon_bg_t-7fd3df6a.png
  6. BIN
      dist/assets/icon_bg_v-9439b38f.png
  7. BIN
      dist/assets/icon_shuo_h-09a1d6f5.png
  8. BIN
      dist/assets/icon_shuo_v-948e8ce7.png
  9. 1 0
      dist/assets/index-13b72749.js
  10. 0 0
      dist/assets/index-3980f7dd.js
  11. 1 0
      dist/assets/index-3b6538ee.js
  12. 0 0
      dist/assets/index-5a2b9b7f.js
  13. 0 0
      dist/assets/index-94ae5f90.js
  14. 0 0
      dist/assets/index-bbed745d.js
  15. 0 0
      dist/assets/index-c6790902.js
  16. 0 0
      dist/assets/index-d089f1fd.js
  17. 0 0
      dist/assets/index-fb22a2d4.js
  18. 0 0
      dist/assets/index-legacy-24d8c9f0.js
  19. 0 0
      dist/assets/index-legacy-49a46947.js
  20. 0 0
      dist/assets/index-legacy-7f0c059e.js
  21. 1 0
      dist/assets/index-legacy-a94e55c3.js
  22. 0 0
      dist/assets/index-legacy-b4320c4b.js
  23. 1 0
      dist/assets/index-legacy-c470969a.js
  24. 0 0
      dist/assets/index-legacy-dafa7b99.js
  25. 0 0
      dist/assets/index-legacy-e365bfe0.js
  26. 0 0
      dist/assets/index-legacy-f1396c35.js
  27. 0 0
      dist/assets/instrument-5f6ab146.css
  28. 0 0
      dist/assets/instrument-ee865584.js
  29. 0 0
      dist/assets/instrument-legacy-416987cc.js
  30. 0 0
      dist/assets/instruments-6449e29f.js
  31. 0 0
      dist/assets/instruments-legacy-e84ad564.js
  32. 0 0
      dist/assets/orchestra-34d4147f.js
  33. 0 0
      dist/assets/orchestra-legacy-fc4a4d73.js
  34. 0 0
      dist/assets/polyfills-legacy-97e492f1.js
  35. 0 0
      dist/assets/report-share-8710bd58.js
  36. 0 0
      dist/assets/report-share-legacy-fb72ea67.js
  37. 17 0
      dist/colexiu.html
  38. 21 0
      dist/index.html
  39. 19 1
      dist/instrument.html
  40. 20 0
      dist/orchestra.html
  41. 15 0
      dist/report-share.html
  42. 1 1
      instrument.html
  43. 2 2
      src/helpers/formateMusic.ts
  44. 9 0
      src/page-instrument/api.ts
  45. 7 37
      src/page-instrument/view-figner/change-subject/index.tsx
  46. BIN
      src/page-instrument/view-figner/image/icon_action_cancel.png
  47. BIN
      src/page-instrument/view-figner/image/icon_action_confirm.png
  48. BIN
      src/page-instrument/view-figner/image/icon_bg_t.png
  49. BIN
      src/page-instrument/view-figner/image/icon_bg_v.png
  50. BIN
      src/page-instrument/view-figner/image/icon_shuo_h.png
  51. BIN
      src/page-instrument/view-figner/image/icon_shuo_v.png
  52. 49 4
      src/page-instrument/view-figner/index.module.less
  53. 160 73
      src/page-instrument/view-figner/index.tsx
  54. 14 14
      src/view/fingering/fingering-config.ts

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


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


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


File diff suppressed because it is too large
+ 0 - 0
dist/assets/gym-legacy-668ee99a.js


BIN
dist/assets/icon_bg_t-7fd3df6a.png


BIN
dist/assets/icon_bg_v-9439b38f.png


BIN
dist/assets/icon_shuo_h-09a1d6f5.png


BIN
dist/assets/icon_shuo_v-948e8ce7.png


+ 1 - 0
dist/assets/index-13b72749.js

@@ -0,0 +1 @@
+import{d as i,g as l,n as d,d3 as e,c,m as r,f as s,aj as u}from"./index-94ae5f90.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=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/assets/index-3980f7dd.js


+ 1 - 0
dist/assets/index-3b6538ee.js

@@ -0,0 +1 @@
+import{d,l as i,n as p,m as e,w as o,J as a,f as r}from"./index-94ae5f90.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/assets/index-5a2b9b7f.js


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


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


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


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


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


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


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


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


+ 1 - 0
dist/assets/index-legacy-a94e55c3.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-f1396c35.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.J,o=e.f}],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,p(i)}e.value&&0===d.section.length&&(e.value=!1,d.originSpeed=n.originSpeed,p(n.speed))}})),()=>o("div",null,null)}}))}}}));

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


+ 1 - 0
dist/assets/index-legacy-c470969a.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-f1396c35.js"],(function(e,t){"use strict";var i,n,a,o,r,s,d,l;return{setters:[e=>{i=e.d,n=e.g,a=e.n,o=e.d3,r=e.c,s=e.m,d=e.f,l=e.aj}],execute:function(){var t=document.createElement("style");t.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(t);const c="_detail_vtlsh_12",h="_container_vtlsh_20";e("default",i({name:"music-list",setup(){const e=n(),t=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,t.isLoading=!1}));const i=async()=>{console.log("渲染完成")};return()=>d("div",{class:c},[d("div",{id:"scrollContainer",class:[h,"hideCursor"]},[!t.isLoading&&d(l,{onRendered:i},null)])])}}))}}}));

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


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


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


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


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


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


File diff suppressed because it is too large
+ 0 - 0
dist/assets/instruments-6449e29f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/instruments-legacy-e84ad564.js


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


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


File diff suppressed because it is too large
+ 0 - 0
dist/assets/polyfills-legacy-97e492f1.js


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


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


+ 17 - 0
dist/colexiu.html

@@ -40,6 +40,7 @@
       },
     })
   </script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./js/colexiu-87c05e3c.js"></script>
   <link rel="modulepreload" crossorigin href="./js/index-395dc444.js">
   <link rel="modulepreload" crossorigin href="./js/index-59ab92de.js">
@@ -49,6 +50,17 @@
   <link rel="stylesheet" href="./css/index-d42b0794.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>
+=======
+  <script type="module" crossorigin src="./assets/colexiu-6993371d.js"></script>
+  <link rel="modulepreload" crossorigin href="./assets/index-94ae5f90.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-bbed745d.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-5a2b9b7f.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-3b6538ee.js">
+  <link rel="stylesheet" href="./assets/index-d78d4470.css">
+  <link rel="stylesheet" href="./assets/index-d42b0794.css">
+  <link rel="stylesheet" href="./assets/colexiu-4a62fa3a.css">
+  <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
+>>>>>>> ktyq-online
   <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
 </head>
 
@@ -57,8 +69,13 @@
   <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>
+<<<<<<< HEAD
   <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-8891b9b0.js"></script>
   <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/colexiu-legacy-905afede.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-97e492f1.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/colexiu-legacy-a3fec5e1.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> ktyq-online
 </body>
 
 </html>

+ 21 - 0
dist/index.html

@@ -75,6 +75,7 @@
       }
     })
   </script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./js/gym-26cb8139.js"></script>
   <link rel="modulepreload" crossorigin href="./js/index-395dc444.js">
   <link rel="modulepreload" crossorigin href="./js/index-59ab92de.js">
@@ -88,6 +89,21 @@
   <link rel="stylesheet" href="./css/plyr-ad8ef5ae.css">
   <link rel="stylesheet" href="./css/index-171cd132.css">
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};window.__vite_is_modern_browser=true;</script>
+=======
+  <script type="module" crossorigin src="./assets/gym-ce482c00.js"></script>
+  <link rel="modulepreload" crossorigin href="./assets/index-94ae5f90.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-bbed745d.js">
+  <link rel="modulepreload" crossorigin href="./assets/instruments-6449e29f.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-3980f7dd.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-3b6538ee.js">
+  <link rel="modulepreload" crossorigin href="./assets/plyr.min-ade72a33.js">
+  <link rel="stylesheet" href="./assets/index-d78d4470.css">
+  <link rel="stylesheet" href="./assets/index-d42b0794.css">
+  <link rel="stylesheet" href="./assets/index-85f95688.css">
+  <link rel="stylesheet" href="./assets/plyr-aeb30ba4.css">
+  <link rel="stylesheet" href="./assets/index-6503f7bd.css">
+  <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
+>>>>>>> ktyq-online
   <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
 </head>
 
@@ -100,8 +116,13 @@
   <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>
+<<<<<<< HEAD
   <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-8891b9b0.js"></script>
   <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/gym-legacy-91e5d2bd.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-97e492f1.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/gym-legacy-668ee99a.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> ktyq-online
 </body>
 
 </html>

+ 19 - 1
dist/instrument.html

@@ -40,6 +40,7 @@
       })
     }
   </script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./js/instrument-d3ddb179.js"></script>
   <link rel="modulepreload" crossorigin href="./js/index-395dc444.js">
   <link rel="modulepreload" crossorigin href="./js/index-59ab92de.js">
@@ -50,6 +51,18 @@
   <link rel="stylesheet" href="./css/index-d42b0794.css">
   <link rel="stylesheet" href="./css/instrument-e756b9ce.css">
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};window.__vite_is_modern_browser=true;</script>
+=======
+  <script type="module" crossorigin src="./assets/instrument-ee865584.js"></script>
+  <link rel="modulepreload" crossorigin href="./assets/index-94ae5f90.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-bbed745d.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-5a2b9b7f.js">
+  <link rel="modulepreload" crossorigin href="./assets/instruments-6449e29f.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-fb22a2d4.js">
+  <link rel="stylesheet" href="./assets/index-d78d4470.css">
+  <link rel="stylesheet" href="./assets/index-d42b0794.css">
+  <link rel="stylesheet" href="./assets/instrument-5f6ab146.css">
+  <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
+>>>>>>> ktyq-online
   <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
 </head>
 
@@ -58,7 +71,7 @@
   <img id="loading" class="show" src="./loading.svg" alt="loading" />
   <script>
     // 处理课堂乐器老师端打开听音练习时去掉加载动画
-    if (location.href.indexOf('view-figner') >= 0 && location.href.indexOf('platform=pc') >= 0) {
+    if (location.href.indexOf('view-figner') >= 0 && location.href.indexOf('platform=pc') >= 0 && location.href.indexOf('linkSource=class') < 0) {
       var _loading = document.getElementById("loading");
       _loading && document.body.removeChild(_loading);
     }
@@ -66,8 +79,13 @@
 
   
   <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>
+<<<<<<< HEAD
   <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-8891b9b0.js"></script>
   <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/instrument-legacy-ea0ad620.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-97e492f1.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/instrument-legacy-416987cc.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> ktyq-online
 </body>
 
 </html>

+ 20 - 0
dist/orchestra.html

@@ -41,6 +41,7 @@
       transition: opacity .3s;
     }
   </style>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./js/orchestra-542613ca.js"></script>
   <link rel="modulepreload" crossorigin href="./js/index-395dc444.js">
   <link rel="modulepreload" crossorigin href="./js/index-59ab92de.js">
@@ -53,6 +54,20 @@
   <link rel="stylesheet" href="./css/index-85f95688.css">
   <link rel="stylesheet" href="./css/orchestra-8bc1a9c0.css">
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};window.__vite_is_modern_browser=true;</script>
+=======
+  <script type="module" crossorigin src="./assets/orchestra-34d4147f.js"></script>
+  <link rel="modulepreload" crossorigin href="./assets/index-94ae5f90.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-bbed745d.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-5a2b9b7f.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-3980f7dd.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-3b6538ee.js">
+  <link rel="modulepreload" crossorigin href="./assets/index-fb22a2d4.js">
+  <link rel="stylesheet" href="./assets/index-d78d4470.css">
+  <link rel="stylesheet" href="./assets/index-d42b0794.css">
+  <link rel="stylesheet" href="./assets/index-85f95688.css">
+  <link rel="stylesheet" href="./assets/orchestra-a4d083a1.css">
+  <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
+>>>>>>> ktyq-online
   <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
 </head>
 
@@ -72,8 +87,13 @@
   </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>
+<<<<<<< HEAD
   <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-8891b9b0.js"></script>
   <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/orchestra-legacy-405c2281.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-97e492f1.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/orchestra-legacy-fc4a4d73.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> ktyq-online
 </body>
 
 </html>

+ 15 - 0
dist/report-share.html

@@ -25,6 +25,7 @@
       transition: opacity .3s;
     }
   </style>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./js/report-share-ab7aac28.js"></script>
   <link rel="modulepreload" crossorigin href="./js/index-395dc444.js">
   <link rel="modulepreload" crossorigin href="./js/plyr.min-c8c2777b.js">
@@ -32,6 +33,15 @@
   <link rel="stylesheet" href="./css/plyr-ad8ef5ae.css">
   <link rel="stylesheet" href="./css/report-share-0f4c3151.css">
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};window.__vite_is_modern_browser=true;</script>
+=======
+  <script type="module" crossorigin src="./assets/report-share-8710bd58.js"></script>
+  <link rel="modulepreload" crossorigin href="./assets/index-94ae5f90.js">
+  <link rel="modulepreload" crossorigin href="./assets/plyr.min-ade72a33.js">
+  <link rel="stylesheet" href="./assets/index-d78d4470.css">
+  <link rel="stylesheet" href="./assets/plyr-aeb30ba4.css">
+  <link rel="stylesheet" href="./assets/report-share-0f4c3151.css">
+  <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
+>>>>>>> ktyq-online
   <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
 </head>
 
@@ -51,8 +61,13 @@
   </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>
+<<<<<<< HEAD
   <script nomodule crossorigin id="vite-legacy-polyfill" src="./js/polyfills-legacy-8891b9b0.js"></script>
   <script nomodule crossorigin id="vite-legacy-entry" data-src="./js/report-share-legacy-53e73b7a.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-97e492f1.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/report-share-legacy-fb72ea67.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> ktyq-online
 </body>
 
 </html>

+ 1 - 1
instrument.html

@@ -45,7 +45,7 @@
   <img id="loading" class="show" src="/loading.svg" alt="loading" />
   <script>
     // 处理课堂乐器老师端打开听音练习时去掉加载动画
-    if (location.href.indexOf('view-figner') >= 0 && location.href.indexOf('platform=pc') >= 0) {
+    if (location.href.indexOf('view-figner') >= 0 && location.href.indexOf('platform=pc') >= 0 && location.href.indexOf('linkSource=class') < 0) {
       var _loading = document.getElementById("loading");
       _loading && document.body.removeChild(_loading);
     }

+ 2 - 2
src/helpers/formateMusic.ts

@@ -894,7 +894,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 			// 管乐迷,按自定义按读取到的音符时值
 			if (customNoteCurrentTime) {
 				if (isMutileSubject && currentTimes[i + 1] > 0 && NoteRealValue > currentTimes[i + 1]) {
-					console.log(NoteRealValue, currentTimes[i + 1])
+					// console.log(NoteRealValue, currentTimes[i + 1])
 					NoteRealValue = currentTimes[i + 1];
 				}
 			}
@@ -1228,7 +1228,7 @@ export const compatibleXmlPitchVoice = (xmlParse: any) => {
 		const instrumentNames = Array.from(xmlParse.getElementsByTagName('instrument-name')) || [];
 		// @ts-ignore
 		const instrumentName = instrumentNames[0]?.textContent?.trim()?.toLocaleLowerCase() || ''
-		// console.log('ins名称',instrumentName)
+		// console.log('instrument名称',instrumentName)
 		// 是否需要程序处理移调
 		let xmlNeedAdjustVoice = false;
 		switch (state.musicalCodeId) {

+ 9 - 0
src/page-instrument/api.ts

@@ -47,6 +47,15 @@ export const api_subjectList = (params: any) => {
     requestType: "json",
   });
 };
+
+/** 获取乐器列表 */
+export const api_musicalInstrumentList = (params: any) => {
+  return request.post("/musicalInstrument/list", {
+    data: params,
+    requestType: "json",
+  });
+};
+
 /** 获取曲谱列表 */
 export const api_musicSheetPage = (data: any) => {
   return request.post("/musicSheet/page", {

+ 7 - 37
src/page-instrument/view-figner/change-subject/index.tsx

@@ -25,19 +25,7 @@ export default defineComponent({
     //
     const selectItem = () => {
       const i: any = props.subjectList.find((item: any) => item.value === props.subject);
-      if (!i) {
-        props.subjectList.forEach((item: any) => {
-          if (item.children && item.children.length > 0) {
-            item.children.forEach((child: any) => {
-              if (child.value === props.subject) {
-                state.instrumentCode = child.value;
-                state.subjectValue = item.id;
-                state.selectList = item.children;
-              }
-            });
-          }
-        });
-      } else {
+      if (i) {
         state.subjectValue = i.id;
         state.instrumentCode = i.value;
         state.selectList = [];
@@ -50,43 +38,25 @@ export default defineComponent({
     return () => (
       <div class={styles.changeSubject}>
         <div class={styles.changeSubjectContainer}>
-          <div class={styles.title}>声部</div>
+          <div class={styles.title}>乐器</div>
 
           <div class={styles.subjectContainer}>
             {props.subjectList.map((item: any) => (
               <div
-                class={[styles.subjectItem, item.children.length > 0 && styles.arrow, item.id === state.subjectValue && styles.active]}
+                class={[styles.subjectItem, item.id === state.subjectValue && styles.active]}
                 onClick={() => {
-                  if (item.children.length <= 0) {
-                    state.instrumentCode = "";
-                  }
+                  // if (item.children.length <= 0) {
+                  //   state.instrumentCode = "";
+                  // }
                   state.subjectValue = item.id;
                   state.instrumentCode = item.value;
-                  state.selectList = item.children;
+                  // state.selectList = item.children;
                 }}
               >
                 {item.text}
               </div>
             ))}
           </div>
-
-          {state.selectList.length > 0 && (
-            <>
-              <div class={styles.title}>乐器</div>
-              <div class={styles.subjectContainer}>
-                {state.selectList.map((item: any) => (
-                  <div
-                    class={[styles.subjectItem, item.value === state.instrumentCode && styles.active]}
-                    onClick={() => {
-                      state.instrumentCode = item.value;
-                    }}
-                  >
-                    {item.text}
-                  </div>
-                ))}
-              </div>
-            </>
-          )}
         </div>
 
         <div class={styles.btnGroups}>

BIN
src/page-instrument/view-figner/image/icon_action_cancel.png


BIN
src/page-instrument/view-figner/image/icon_action_confirm.png


BIN
src/page-instrument/view-figner/image/icon_bg_t.png


BIN
src/page-instrument/view-figner/image/icon_bg_v.png


BIN
src/page-instrument/view-figner/image/icon_shuo_h.png


BIN
src/page-instrument/view-figner/image/icon_shuo_v.png


+ 49 - 4
src/page-instrument/view-figner/index.module.less

@@ -19,7 +19,7 @@
     }
 
     &.fingerRight {
-        background: url('./image/icon_bg_t.png') no-repeat;
+        background: url('./image/icon_bg_t.png') no-repeat rgba(215, 205, 199, 1);
         background-size: cover;
 
         .fingerContent {
@@ -436,14 +436,15 @@
     .noteContent {
         display: flex;
         position: relative;
-        max-width: calc(100% - 92px);
+        // max-width: calc(100% - 92px);
+        max-width: 73%;
         border-radius: 25px;
         background: rgba(255, 255, 255, 0.5);
         border: 1px solid rgba(255, 255, 255, 0.6);
         overflow: hidden;
 
         &.noteContentOther {
-            max-width: calc(100% - 92px - 52px - 5Px);
+            // max-width: calc(100% - 92px - 52px - 5Px);
         }
 
         &.noteContentWrap {
@@ -806,11 +807,18 @@
 }
 
 .fixedRightBtns {
+    // position: fixed;
+    // right: 12px;
+    // top: 50%;
+    // transform: translateY(-50%);
+
     position: fixed;
-    right: 12px;
+    left: 12px;
     top: 50%;
+    right: auto;
     transform: translateY(-50%);
 
+
     .baseBtn {
         // width: 60px;
         // height: 45px;
@@ -1256,4 +1264,41 @@
     // height: 310px;
     background: #FFFFFF;
     border-radius: 12px;
+}
+
+.linkSourceClass {
+
+    // .head {
+    //     display: none;
+    //     opacity: 0;
+    // }
+    .backBtn {
+        display: none;
+        opacity: 0;
+    }
+
+
+    .changeInstrumentBtn {
+        margin: 26px 5px 26px 18px !important;
+    }
+
+    .noteContentOther {
+        max-width: 75% !important
+    }
+
+    .fingerContent,
+    .fixedRightBtns {
+        padding-left: 0 !important;
+        padding-top: 0 !important;
+    }
+
+    // .left {
+    //     // padding: 26px 5px 26px 18px;
+    //     padding-top: 26px;
+    //     padding-left: 18px;
+    // }
+
+    // .backBtn {
+    //     display: none;
+    // }
 }

+ 160 - 73
src/page-instrument/view-figner/index.tsx

@@ -15,7 +15,7 @@ import { usePageVisibility } from "@vant/use";
 import { watch } from "vue";
 import icon_loading_img from "./image/icon_loading_img.png";
 import state, { IPlatform } from "/src/state";
-import { api_subjectList, getSubjectList } from "../api";
+import { api_musicalInstrumentList, api_subjectList, getSubjectList } from "../api";
 import ChangeSubject from "./change-subject";
 
 export default defineComponent({
@@ -41,6 +41,7 @@ export default defineComponent({
     const code = mappingVoicePart(query.code, "INSTRUMENT");
     const subject = props.isComponent ? props.subject || "pan-flute" : code || "pan-flute";
     const data = reactive({
+      linkSource: query.linkSource, // 来源,目前只有课件里使用
       loading: true,
       subject: subject as any,
       realKey: 0,
@@ -109,7 +110,7 @@ export default defineComponent({
     const getAPPData = async (type: "top" | "left") => {
       const screenData = await isSpecialShapedScreen();
       if (screenData?.content) {
-        // console.log("🚀 ~ screenData:", screenData.content);
+        console.log("🚀 ~ screenData:", screenData.content);
         const { isSpecialShapedScreen, notchHeight } = screenData.content;
         if (isSpecialShapedScreen) {
           if (type === "top") {
@@ -123,10 +124,10 @@ export default defineComponent({
     };
 
     const getHeadTop = () => {
-      if (!browsInfo.ios && fingerData.fingeringInfo.orientation === 1) {
+      if (fingerData.fingeringInfo.orientation === 1) {
         getAPPData("top");
       }
-      if (!browsInfo.ios && fingerData.fingeringInfo.orientation === 0) {
+      if (fingerData.fingeringInfo.orientation === 0) {
         getAPPData("left");
       }
     };
@@ -215,7 +216,8 @@ export default defineComponent({
     // };
 
     // 切换当前模式
-    const onChangeFingeringModel = () => {
+    const onChangeFingeringModel = (e: any) => {
+      e.stopPropagation();
       //
       if (playAction.listenLock) return;
       if (playAction.showAnswerLoading) return;
@@ -252,7 +254,6 @@ export default defineComponent({
     const __init = async (loadSong = true) => {
       data.loadingDom = true;
       getNotes();
-
       // selectSubjectType(data.subject);
 
       if (data.fingeringMode === "fingeringMode") {
@@ -289,48 +290,28 @@ export default defineComponent({
     const getSubjects = async () => {
       try {
         // api_subjectList
-        const subjects = await api_subjectList({
+        const subjects = await api_musicalInstrumentList({
           enableFlag: true,
-          delFlag: 0,
-          page: 1,
-          rows: 999,
         });
 
         const rows = subjects.data || [];
         rows.forEach((row: any) => {
           const tempList: any = {
             text: row.name,
-            value: "", // mappingVoicePart(row.code, "INSTRUMENT"),
+            value: mappingVoicePart(row.code, "INSTRUMENT"), // mappingVoicePart(row.code, "INSTRUMENT"),
             id: row.id,
-            children: [] as any,
           };
-          if (row.instruments && row.instruments.length > 0) {
-            if (row.instruments.length > 1) {
-              row.instruments.forEach((i: any) => {
-                tempList.children.push({
-                  text: i.name,
-                  id: i.id,
-                  value: mappingVoicePart(i.code, "INSTRUMENT"),
-                });
-              });
-            } else {
-              const singleRow = row.instruments[0];
-              if (singleRow.code) {
-                tempList.value = mappingVoicePart(singleRow.code, "INSTRUMENT");
-                tempList.id = singleRow.id;
-              }
-            }
-          }
           data.subjects.push(tempList);
         });
 
-        data.subjects.forEach((item: any) => {
-          if (item.value === data.subject && item.children?.length > 1) {
-            data.subject = item.children[0].value;
-          }
-        });
+        // data.subjects.forEach((item: any) => {
+        //   if (item.value === data.subject && item.children?.length > 1) {
+        //     data.subject = item.children[0].value;
+        //   }
+        // });
       } catch (e) {
         //
+        console.log(e, "e");
       }
     };
 
@@ -386,7 +367,7 @@ export default defineComponent({
       handleStop();
       if (props.isComponent) {
         // 返回的时候默认横屏
-        api_setRequestedOrientation(0);
+        // api_setRequestedOrientation(0);
         emit("close");
         return;
       } else if (state.platform === IPlatform.PC) {
@@ -478,7 +459,12 @@ export default defineComponent({
     // 判断乐器是否移动
     const instrumentTranstion = computed(() => {
       const transform = data.transform;
-      if (transform.scale !== 1 || transform.x !== 0 || transform.y !== 0 || transform.startScale !== 1 || transform.startX !== 0 || transform.startY !== 0) {
+
+      let scale = 1;
+      if (data.subject === "pan-flute") {
+        scale = 0.9;
+      }
+      if (transform.scale !== scale || transform.x !== 0 || transform.y !== 0 || transform.startScale !== scale || transform.startX !== 0 || transform.startY !== 0) {
         return true;
       } else {
         return false;
@@ -490,7 +476,11 @@ export default defineComponent({
       () => pageVisible.value,
       (val) => {
         if (val === "hidden") {
-          console.log("页面隐藏停止播放");
+          clearTimeout(playAction.timer);
+          playAction.listenLock = false;
+          playAction.listenTipsStatus = false;
+          playAction.exampleAnser = {};
+          resetMode(true, 0);
           handleStop();
           gaumntPause();
         }
@@ -499,8 +489,28 @@ export default defineComponent({
     /** 课件播放 */
     const changePlay = (res: any) => {
       if (res?.data?.api === "setPlayState") {
+        clearTimeout(playAction.timer);
+        playAction.listenLock = false;
+        playAction.listenTipsStatus = false;
+        playAction.exampleAnser = {};
+        resetMode(true, 0);
         handleStop();
         gaumntPause();
+
+        // 重置乐器
+        if (res?.data?.data.code) {
+          data.subject = code;
+          data.viewIndex = 0;
+          data.tipShow = false;
+          data.loadingDom = true;
+          fingerData.fingeringInfo = subjectFingering(data.subject);
+          data.activeTone = {} as any;
+          resetElement();
+          // 设置屏幕方向
+          setTimeout(() => {
+            __init();
+          }, 100);
+        }
       }
     };
 
@@ -609,6 +619,7 @@ export default defineComponent({
       /** 0: 未答,1: 答对,2: 答错 */
       userAnswerStatus: 0 as 0 | 1 | 2, // 用户回答状态
       userAnswer: {} as any, // 用户答的数据
+      timer: null as any,
     });
     const onActionPlay = async () => {
       playAction.resetAction = false;
@@ -636,7 +647,7 @@ export default defineComponent({
     const fingeringPlay = (note: any, timer = 1500, showNote = true) => {
       return new Promise((resolve) => {
         noteClick(note, showNote);
-        setTimeout(() => {
+        playAction.timer = setTimeout(() => {
           resolve(note);
         }, timer);
       });
@@ -651,7 +662,7 @@ export default defineComponent({
       playAction.listenModeStatus = true; // 是否开始听音
       playAction.listenLock = true; // 锁
       playAction.listenTipsStatus = true;
-      setTimeout(() => {
+      playAction.timer = setTimeout(() => {
         playAction.listenTipsStatus = false;
         playAction.listenLock = false; // 锁
       }, 2000);
@@ -671,7 +682,7 @@ export default defineComponent({
       data.realKey = 0;
       playAction.exampleAnser = {};
       gaumntPause();
-      setTimeout(async () => {
+      playAction.timer = setTimeout(async () => {
         // 设置答题数据
         randomIndex = Math.floor(Math.random() * data.notes.length);
         playAction.standardAnswer = data.notes[randomIndex];
@@ -766,35 +777,35 @@ export default defineComponent({
     const containerBox = computed(() => {
       if (state.platform === IPlatform.PC || query.modelType) {
         return {
-          paddingTop: "1rem",
+          paddingTop: "1.3rem",
           paddingBottom: "",
         };
       }
       if (data.fingeringMode === "scaleMode") {
         if (data.subject === "hulusi-flute") {
           return {
-            paddingTop: "3.1rem",
-            paddingBottom: ".8rem",
+            paddingTop: "1.3rem",
+            paddingBottom: ".5rem",
           };
         } else if (data.subject === "piccolo" || data.subject === "baroque-recorder") {
           return {
-            paddingTop: "4rem",
-            paddingBottom: ".8rem",
+            paddingTop: "1.3rem",
+            paddingBottom: ".5rem",
           };
         } else if (data.subject === "pan-flute") {
           return {
-            paddingTop: "0",
+            paddingTop: "1.3rem",
             paddingBottom: "0",
           };
         } else if (data.subject === "ocarina") {
           return {
-            paddingTop: "1.2rem",
+            paddingTop: "1.3rem",
             paddingBottom: "0",
           };
         } else if (data.subject === "melodica") {
           return {
-            paddingTop: "2.8rem",
-            paddingBottom: "1.8rem",
+            paddingTop: "1.8rem",
+            paddingBottom: "0.2rem",
           };
         } else {
           return {
@@ -805,28 +816,28 @@ export default defineComponent({
       } else {
         if (data.subject === "hulusi-flute") {
           return {
-            paddingTop: "3.1rem",
+            paddingTop: "1.3rem",
             paddingBottom: "0rem",
           };
         } else if (data.subject === "piccolo" || data.subject === "baroque-recorder") {
           return {
-            paddingTop: "3rem",
+            paddingTop: "1.3rem",
             paddingBottom: ".5rem",
           };
         } else if (data.subject === "pan-flute") {
           return {
-            paddingTop: "0",
+            paddingTop: "1.3rem",
             paddingBottom: "0",
           };
         } else if (data.subject === "ocarina") {
           return {
-            paddingTop: "1rem",
+            paddingTop: "1.3rem",
             paddingBottom: "0",
           };
         } else if (data.subject === "melodica") {
           return {
-            paddingTop: "2.8rem",
-            paddingBottom: "0.8rem",
+            paddingTop: "1.8rem",
+            paddingBottom: "0.2rem",
           };
         } else {
           return {
@@ -926,12 +937,24 @@ export default defineComponent({
       const rs: number[] = Array.isArray(relationship[1]) ? relationship[fingerData.relationshipIndex] : relationship;
       const canTizhi = Array.isArray(relationship[1]);
       return (
-        <div class={[styles.fingerBox, state.platform !== IPlatform.PC && !query.modelType && fingerData.fingeringInfo.orientation === 1 ? styles.fingerBottom : styles.fingerRight]}>
+        <div
+          class={[styles.fingerBox, state.platform !== IPlatform.PC && !query.modelType && fingerData.fingeringInfo.orientation === 1 ? styles.fingerBottom : styles.fingerRight, data.linkSource === "class" ? styles.linkSourceClass : ""]}
+          onClick={() => {
+            if (data.linkSource === "class") {
+              window.parent.postMessage(
+                {
+                  api: "clickViewFigner",
+                },
+                "*"
+              );
+            }
+          }}
+        >
           <div
             class={styles.head}
             style={{
-              paddingTop: data.paddingTop ? data.paddingTop : "",
-              paddingLeft: data.paddingLeft ? data.paddingLeft : "",
+              paddingTop: data.paddingTop && !browser().ios ? data.paddingTop : "",
+              paddingLeft: data.paddingLeft && !browser().ios ? data.paddingLeft : "",
             }}
           >
             <div class={styles.left}>
@@ -940,8 +963,9 @@ export default defineComponent({
               </button>
 
               <div
-                class={styles.baseBtn}
+                class={[styles.baseBtn, styles.changeInstrumentBtn]}
                 onClick={(e) => {
+                  e.stopPropagation();
                   //
                   // 播放音阶时不能切换
                   if (playStatus.gamut) {
@@ -966,7 +990,13 @@ export default defineComponent({
             </div>
             {/*  */}
           </div>
-          <div class={styles.fingerContent}>
+          <div
+            class={styles.fingerContent}
+            style={{
+              paddingTop: data.paddingTop ? data.paddingTop : "",
+              paddingLeft: data.paddingLeft ? data.paddingLeft : "",
+            }}
+          >
             <div class={styles.wrapFinger}>
               <div
                 id="fingeringContainer"
@@ -1007,11 +1037,22 @@ export default defineComponent({
                 {playAction.userAnswerStatus === 2 && <div class={[styles.tipsT, styles.playError]}></div>}
                 {playAction.resetAction && <div class={[styles.tipsT, styles.playTips5]}></div>}
                 {((data.noteType !== "#c" && (orientationDirection.value === 0 || (orientationDirection.value === 1 && state.platform === IPlatform.PC))) || (orientationDirection.value === 1 && state.platform === IPlatform.APP)) && (
-                  <Button class={styles.noteBtn} onClick={() => scrollNoteBox("left")}>
+                  <Button
+                    class={styles.noteBtn}
+                    onClick={(e: any) => {
+                      e.stopPropagation();
+                      scrollNoteBox("left");
+                    }}
+                  >
                     <Icon name="arrow-left" />
                   </Button>
                 )}
-                <div class={[styles.noteContent, data.fingeringMode !== "scaleMode" && orientationDirection.value === 0 && styles.noteContentOther, browsInfo.ios ? "" : styles.noteContentWrap, data.huaweiPad && styles.huaweiPad]}>
+                <div
+                  class={[styles.noteContent, data.fingeringMode !== "scaleMode" && orientationDirection.value === 0 && styles.noteContentOther, browsInfo.ios ? "" : styles.noteContentWrap, data.huaweiPad && styles.huaweiPad]}
+                  onClick={(e: any) => {
+                    e.stopPropagation();
+                  }}
+                >
                   {/* 判断是否为音阶模式 */}
                   {data.fingeringMode !== "scaleMode" && (
                     <div draggable={false} class={styles.note} onClick={noteChangeShow}>
@@ -1090,13 +1131,24 @@ export default defineComponent({
                   </div>
                 </div>
                 {((data.noteType !== "#c" && (orientationDirection.value === 0 || (orientationDirection.value === 1 && state.platform === IPlatform.PC))) || (orientationDirection.value === 1 && state.platform === IPlatform.APP)) && (
-                  <Button class={styles.noteBtn} onClick={() => scrollNoteBox("right")}>
+                  <Button
+                    class={styles.noteBtn}
+                    onClick={(e: any) => {
+                      e.stopPropagation();
+                      scrollNoteBox("right");
+                    }}
+                  >
                     <Icon name="arrow" />
                   </Button>
                 )}
               </div>
               {data.fingeringMode !== "scaleMode" && (
-                <div class={styles.optionBtns}>
+                <div
+                  class={styles.optionBtns}
+                  onClick={(e: any) => {
+                    e.stopPropagation();
+                  }}
+                >
                   <Button class={[styles.oBtn, styles.gamut, playStatus.action && styles.disabled]} round onClick={onGamutPlayOrPause}>
                     {playStatus.gamut ? "暂停" : "播放音阶"}
                   </Button>
@@ -1112,7 +1164,13 @@ export default defineComponent({
             <div class={[styles.tips, data.loadingDom ? styles.hiddens : "", data.tipShow ? "" : styles.tipHidden]}>
               <div class={styles.tipTitle}>
                 <div class={styles.tipTitleName}>{fingerData.fingeringInfo.code}使用说明</div>
-                <Button class={styles.tipClose} onClick={() => (data.tipShow = false)}>
+                <Button
+                  class={styles.tipClose}
+                  onClick={(e: any) => {
+                    e.stopPropagation();
+                    data.tipShow = false;
+                  }}
+                >
                   <Icon name="cross" size={19} color="#fff" />
                 </Button>
               </div>
@@ -1142,7 +1200,16 @@ export default defineComponent({
               </div>
             )}
           </div>
-          <div class={styles.fixedRightBtns}>
+          <div
+            class={styles.fixedRightBtns}
+            style={{
+              paddingTop: data.paddingTop ? data.paddingTop : "",
+              paddingLeft: data.paddingLeft ? data.paddingLeft : "",
+            }}
+            onClick={(e: any) => {
+              e.stopPropagation();
+            }}
+          >
             <div class={styles.rightBtn}>
               {data.subject !== "melodica" && data.fingeringMode === "scaleMode" && (
                 <div
@@ -1221,7 +1288,13 @@ export default defineComponent({
             <div class={styles.tones}>
               <div class={styles.toneTitle}>
                 <div class={styles.tipTitleName}>移调</div>
-                <Button class={styles.tipClose} onClick={() => (data.tnoteShow = false)}>
+                <Button
+                  class={styles.tipClose}
+                  onClick={(e: any) => {
+                    e.stopPropagation();
+                    data.tnoteShow = false;
+                  }}
+                >
                   <Icon name="cross" size={19} color="#fff" />
                 </Button>
               </div>
@@ -1237,7 +1310,8 @@ export default defineComponent({
                             round
                             plain
                             type={data.popupActiveTone.realName === tone.realName ? "primary" : "default"}
-                            onClick={() => {
+                            onClick={(e: any) => {
+                              e.stopPropagation();
                               data.popupActiveTone = tone;
                               setNotes();
                             }}
@@ -1266,9 +1340,16 @@ export default defineComponent({
                     </Space>
                   </div>
                   <div class={styles.toneAction}>
-                    <img onClick={() => (data.tnoteShow = false)} src={icons.icon_action_cancel} />
                     <img
-                      onClick={() => {
+                      onClick={(e: any) => {
+                        e.stopPropagation();
+                        data.tnoteShow = false;
+                      }}
+                      src={icons.icon_action_cancel}
+                    />
+                    <img
+                      onClick={(e: any) => {
+                        e.stopPropagation();
                         data.activeTone = data.popupActiveTone;
                         setNotes();
                         data.tnoteShow = false;
@@ -1281,7 +1362,13 @@ export default defineComponent({
             </div>
           </Popup>
 
-          <Popup v-model:show={data.changeSubjectShow} class={styles.changeSubjectPopup}>
+          <Popup
+            v-model:show={data.changeSubjectShow}
+            class={styles.changeSubjectPopup}
+            onClick={(e: any) => {
+              e.stopPropagation();
+            }}
+          >
             <ChangeSubject
               subjectList={data.subjects}
               subject={data.subject}
@@ -1300,12 +1387,12 @@ export default defineComponent({
                 data.activeTone = {} as any;
                 resetElement();
                 resetMode(true, 0);
-                api_setRequestedOrientation(orientationDirection.value);
+                // api_setRequestedOrientation(orientationDirection.value);
 
                 data.changeSubjectShow = false;
                 // 设置屏幕方向
                 setTimeout(() => {
-                  const before = ["hulusi-flute", "piccolo", "baroque-recorder"].includes(originalSubject) ? 1 : 0;
+                  const before = ["hulusi-flute", "piccolo", "baroque-recorder"].includes(originalSubject) ? 0 : 0;
                   if (orientationDirection.value !== before) {
                     data.paddingTop = "";
                     data.paddingLeft = "";

+ 14 - 14
src/view/fingering/fingering-config.ts

@@ -313,18 +313,18 @@ export const matchVoicePart = (id: number | string, type: "SINGLE" | "CONCERT"):
       panpipes: "pan-flute",
       ocarina: "ocarina",
       nai: "melodica",
-	    BaroqueRecorder: 'baroque-recorder',
-      'Drum Set': 24,
-      'Marimba': 26,
-      'Vibraphone': 27,
-      'Tubular Bells': 30,
-      'Mallets': 32,
+      BaroqueRecorder: "baroque-recorder",
+      "Drum Set": 24,
+      Marimba: 26,
+      Vibraphone: 27,
+      "Tubular Bells": 30,
+      Mallets: 32,
     };
     let _track;
     if (typeof code === "string") {
       code = code.toLocaleLowerCase().replace(/ /g, "");
       for (let sKey in subject) {
-        let pitchKey = sKey
+        let pitchKey = sKey;
         if (typeof sKey === "string") pitchKey = pitchKey.toLocaleLowerCase().replace(/ /g, "");
         if (pitchKey === code) {
           _track = subject[sKey];
@@ -337,7 +337,7 @@ export const matchVoicePart = (id: number | string, type: "SINGLE" | "CONCERT"):
     return _track;
   }
   return 0;
-}
+};
 
 /** 声部的指法配置信息 */
 export const subjectFingering = (subjectId: number | string): IFingering => {
@@ -412,7 +412,7 @@ export const subjectFingering = (subjectId: number | string): IFingering => {
         name: "piccolo",
         direction: "vertical",
         width: "3rem",
-        orientation: 1,
+        orientation: 0,
         hasTizhi: true,
         id: 2,
       };
@@ -421,7 +421,7 @@ export const subjectFingering = (subjectId: number | string): IFingering => {
         name: "piccolo",
         direction: "vertical",
         width: "3rem",
-        orientation: 1,
+        orientation: 0,
         code: "竖笛",
         hasTizhi: true,
         id: 37,
@@ -431,7 +431,7 @@ export const subjectFingering = (subjectId: number | string): IFingering => {
         name: "hulusi-flute",
         direction: "vertical",
         width: "3rem",
-        orientation: 1,
+        orientation: 0,
         code: "葫芦丝",
         hasTizhi: false,
         id: 35,
@@ -473,13 +473,13 @@ export const subjectFingering = (subjectId: number | string): IFingering => {
         name: "baroque-recorder",
         direction: "vertical",
         width: "3rem",
-        orientation: 1,
+        orientation: 0,
         code: "竖笛",
         hasTizhi: true,
         id: 38,
-      };	  
+      };
     default:
-      return typeof subjectId === 'number' ? { id: subjectId } : {};
+      return typeof subjectId === "number" ? { id: subjectId } : {};
   }
 };
 

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