浏览代码

Merge branch 'feature-gytaodi' into ktyq-online-1.8.7

TIANYONG 1 年之前
父节点
当前提交
6b6832bee6
共有 54 个文件被更改,包括 2427 次插入77 次删除
  1. 1 1
      .gitignore
  2. 二进制
      public/soundfonts/whistling/A4.mp3
  3. 二进制
      public/soundfonts/whistling/A5.mp3
  4. 二进制
      public/soundfonts/whistling/Ab5.mp3
  5. 二进制
      public/soundfonts/whistling/B4.mp3
  6. 二进制
      public/soundfonts/whistling/B5.mp3
  7. 二进制
      public/soundfonts/whistling/Bb4.mp3
  8. 二进制
      public/soundfonts/whistling/Bb5.mp3
  9. 二进制
      public/soundfonts/whistling/C5.mp3
  10. 二进制
      public/soundfonts/whistling/C6.mp3
  11. 二进制
      public/soundfonts/whistling/D5.mp3
  12. 二进制
      public/soundfonts/whistling/D6.mp3
  13. 二进制
      public/soundfonts/whistling/Db5.mp3
  14. 二进制
      public/soundfonts/whistling/Db6.mp3
  15. 二进制
      public/soundfonts/whistling/E5.mp3
  16. 二进制
      public/soundfonts/whistling/E6.mp3
  17. 二进制
      public/soundfonts/whistling/Eb5.mp3
  18. 二进制
      public/soundfonts/whistling/Eb6.mp3
  19. 二进制
      public/soundfonts/whistling/F5.mp3
  20. 二进制
      public/soundfonts/whistling/F6.mp3
  21. 二进制
      public/soundfonts/whistling/G5.mp3
  22. 二进制
      public/soundfonts/whistling/Gb5.mp3
  23. 4 1
      src/helpers/formateMusic.ts
  24. 0 0
      src/page-instrument/evaluat-model/delay-check/json/bg_new.json
  25. 9 13
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression0.svg
  26. 9 13
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression1.svg
  27. 9 13
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression2.svg
  28. 11 11
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression3.svg
  29. 13 13
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression4.svg
  30. 1 1
      src/page-instrument/evaluat-model/evaluat-result/index.module.less
  31. 1 0
      src/page-instrument/evaluat-model/evaluat-result/index.tsx
  32. 10 7
      src/page-instrument/view-figner/index.tsx
  33. 2305 0
      src/view/figner-preview/index.ts
  34. 49 2
      src/view/fingering/fingering-config.ts
  35. 0 0
      src/view/fingering/fingering-img/ocarina/index.json
  36. 0 0
      src/view/fingering/fingering-img/ocarina1/index.json
  37. 0 0
      src/view/fingering/fingering-img/ocarina2/index.json
  38. 二进制
      src/view/fingering/fingering-img/whistling/1.png
  39. 二进制
      src/view/fingering/fingering-img/whistling/10.png
  40. 二进制
      src/view/fingering/fingering-img/whistling/11.png
  41. 二进制
      src/view/fingering/fingering-img/whistling/12.png
  42. 二进制
      src/view/fingering/fingering-img/whistling/2.png
  43. 二进制
      src/view/fingering/fingering-img/whistling/3.png
  44. 二进制
      src/view/fingering/fingering-img/whistling/4.png
  45. 二进制
      src/view/fingering/fingering-img/whistling/5.png
  46. 二进制
      src/view/fingering/fingering-img/whistling/6.png
  47. 二进制
      src/view/fingering/fingering-img/whistling/7.png
  48. 二进制
      src/view/fingering/fingering-img/whistling/8.png
  49. 二进制
      src/view/fingering/fingering-img/whistling/9.png
  50. 二进制
      src/view/fingering/fingering-img/whistling/full.png
  51. 1 0
      src/view/fingering/fingering-img/whistling/index.json
  52. 1 0
      src/view/fingering/fingering-img/whistling1/index.json
  53. 1 0
      src/view/fingering/fingering-img/whistling2/index.json
  54. 2 2
      vite.config.ts

+ 1 - 1
.gitignore

@@ -21,4 +21,4 @@ dist-ssr
 *.ntvs*
 *.njsproj
 *.sln
-*.sw?
+*.sw?

二进制
public/soundfonts/whistling/A4.mp3


二进制
public/soundfonts/whistling/A5.mp3


二进制
public/soundfonts/whistling/Ab5.mp3


二进制
public/soundfonts/whistling/B4.mp3


二进制
public/soundfonts/whistling/B5.mp3


二进制
public/soundfonts/whistling/Bb4.mp3


二进制
public/soundfonts/whistling/Bb5.mp3


二进制
public/soundfonts/whistling/C5.mp3


二进制
public/soundfonts/whistling/C6.mp3


二进制
public/soundfonts/whistling/D5.mp3


二进制
public/soundfonts/whistling/D6.mp3


二进制
public/soundfonts/whistling/Db5.mp3


二进制
public/soundfonts/whistling/Db6.mp3


二进制
public/soundfonts/whistling/E5.mp3


二进制
public/soundfonts/whistling/E6.mp3


二进制
public/soundfonts/whistling/Eb5.mp3


二进制
public/soundfonts/whistling/Eb6.mp3


二进制
public/soundfonts/whistling/F5.mp3


二进制
public/soundfonts/whistling/F6.mp3


二进制
public/soundfonts/whistling/G5.mp3


二进制
public/soundfonts/whistling/Gb5.mp3


+ 4 - 1
src/helpers/formateMusic.ts

@@ -1244,7 +1244,10 @@ export const compatibleXmlPitchVoice = (xmlParse: any) => {
 				break;
 			case 35:
 				xmlNeedAdjustVoice = !instrumentName || instrumentName.includes('solo') || instrumentName.includes('woodwind') ? true : false
-				break;				
+				break;		
+			case 39:
+				xmlNeedAdjustVoice = !instrumentName || instrumentName.includes('solo') || instrumentName.includes('whistling') ? true : false
+				break;						
 			default:
 				xmlNeedAdjustVoice = !instrumentName || instrumentName.includes('solo') ? true : false
 				break;

文件差异内容过多而无法显示
+ 0 - 0
src/page-instrument/evaluat-model/delay-check/json/bg_new.json


+ 9 - 13
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression0.svg

@@ -192,16 +192,16 @@
                 <feMergeNode in="shadowMatrixInner2"></feMergeNode>
             </feMerge>
         </filter>
-        <linearGradient x1="76.9945329%" y1="0%" x2="40.4500795%" y2="99.4213184%" id="linearGradient-59">
+        <linearGradient x1="58.2441752%" y1="0%" x2="47.0834384%" y2="99.4213184%" id="linearGradient-59">
             <stop stop-color="#FF8C6E" offset="0%"></stop>
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
-        <linearGradient x1="58.2441752%" y1="0%" x2="47.0834384%" y2="99.4213184%" id="linearGradient-60">
+        <linearGradient x1="76.9945329%" y1="0%" x2="40.4500795%" y2="99.4213184%" id="linearGradient-60">
             <stop stop-color="#FF8C6E" offset="0%"></stop>
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
     </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+    <g id="蓝色" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="测评备份-4" transform="translate(-450.000000, -12.000000)">
             <g id="编组-8" transform="translate(450.393105, 12.000000)">
                 <g id="真棒备份-5" transform="translate(17.097398, 3.548901)">
@@ -296,7 +296,7 @@
                                 <use fill="black" fill-opacity="1" filter="url(#filter-31)" xlink:href="#path-29"></use>
                             </g>
                             <path d="M11.1484324,-2.33308697 L12.2158113,0.360305293 C12.2158113,0.360305293 13.7568943,4.33786676 11.9488853,7.20365702 C10.1405511,10.0694473 6.14478943,14.3189927 6.11260225,17.8133174 C6.08008995,21.307642 7.6949759,25.976428 11.5106195,26.9709816 C11.5106195,26.9709816 6.12235594,26.434197 5.28126273,19.2228669 C4.44049465,12.0115369 10.9179202,8.33763099 11.6432696,6.55945009 C12.3689442,4.78126919 13.1635448,2.42842829 11.1484324,-2.33308697" id="Fill-116" fill="#F6FFFD" opacity="0.487753005" mask="url(#mask-30)"></path>
-                            <path d="M15.6296678,9.23351288 C15.6127614,9.01638282 15.1387321,15.8473271 12.5227924,18.544964 C10.1357393,21.0062067 6.24791844,25.999545 11.5106845,26.9709163 C16.7741008,27.9419611 8.70974982,24.2471585 11.9414725,22.1754439 C16.5201797,19.2407597 16.0194903,14.2023628 15.6296678,9.23351288" id="Fill-114" fill="#4AD7BC" mask="url(#mask-30)"></path>
+                            <path d="M15.6296678,9.23351288 C15.6127614,9.01638282 15.1387321,15.8473271 12.5227924,18.544964 C10.1357393,21.0062067 6.24791844,25.999545 11.5106845,26.9709163 C16.7741008,27.9419611 8.70974982,24.2471585 11.9414725,22.1754439 C16.5201797,19.2407597 16.0194903,14.2023628 15.6296678,9.23351288" id="Fill-114" fill="#73E2F0" mask="url(#mask-30)"></path>
                         </g>
                     </g>
                     <g id="右翅膀备份-5" transform="translate(29.292397, 85.406164) scale(-1, -1) rotate(71.000000) translate(-29.292397, -85.406164) translate(5.742631, 62.534754)">
@@ -364,19 +364,15 @@
                         </g>
                     </g>
                 </g>
-                <g id="编组-17" transform="translate(77.294111, 59.492933) rotate(2.000000) translate(-77.294111, -59.492933) translate(4.281298, 35.996986)" fill-rule="nonzero">
-                    <g id="编组" transform="translate(10.803609, 35.373768) rotate(-9.000000) translate(-10.803609, -35.373768) translate(1.494884, 25.085177)" fill="url(#linearGradient-59)">
-                        <path d="M17.3886882,0.0850624029 L5.70084641,1.93438018 C5.66296042,1.94006238 5.62754471,1.95068666 5.59321289,1.96310155 L5.17102225,1.96310155 C4.88313407,1.96310155 4.65443173,2.1811978 4.65443173,2.450028 L4.65443173,15.1050781 C4.19838821,14.8553239 3.66808512,14.7127436 3.10292087,14.7127436 C1.38932954,14.7127436 -2.27373675e-13,16.0254276 -2.27373675e-13,17.6449982 C-2.27373675e-13,19.2646882 1.38930434,20.5771812 3.10292087,20.5771812 C4.81646178,20.5771812 6.20581655,19.2646643 6.20581655,17.6449982 C6.20581655,17.5262927 6.19827967,17.4096644 6.18408818,17.2958293 C6.19827967,17.2507776 6.20581655,17.203983 6.20581655,17.1542279 L6.20581655,6.86228117 L17.0660396,5.04839361 L17.0660396,12.1718446 C16.6099709,11.9230454 16.0797182,11.779534 15.5145288,11.779534 C13.8009374,11.779534 12.4116331,13.0930775 12.4116331,14.7127436 C12.4116331,16.3314786 13.8009122,17.6449982 15.5145288,17.6449982 C17.2281453,17.6449982 18.6174497,16.3314548 18.6174497,14.7127436 C18.6174497,14.5940859 18.6098876,14.4774575 18.5957465,14.3626198 C18.6099128,14.317568 18.6174497,14.2707496 18.6174497,14.2210422 L18.6174497,0.537609148 C18.6174497,0.298359834 18.4341198,0.0984800359 18.1927383,0.0582510045 C18.108396,0.00854366917 18.0023505,-0.011606648 17.8856677,0.00660982946 L17.6109375,0.0506349606 L17.5826302,0.0506349606 C17.5139665,0.050658805 17.4482521,0.0630737166 17.3886882,0.0850624029 L17.3886882,0.0850624029 Z" id="路径"></path>
-                    </g>
-                    <g id="编组" transform="translate(139.016582, 13.108827) rotate(-9.000000) translate(-139.016582, -13.108827) translate(133.627321, 2.330304)" fill="url(#linearGradient-60)">
+                <g id="编组-17" transform="translate(81.816884, 43.497494) rotate(2.000000) translate(-81.816884, -43.497494) translate(12.765857, 26.252188)" fill-rule="nonzero">
+                    <g id="编组" transform="translate(131.093012, 23.001724) rotate(-9.000000) translate(-131.093012, -23.001724) translate(125.703750, 12.223201)" fill="url(#linearGradient-59)">
                         <path d="M9.1963554,0.158528744 C8.91075429,0.534884597 7.36850835,1.18006604 6.05474331,1.44889164 C4.39825694,1.77148237 3.54145363,2.04030797 2.68465033,2.47042894 C1.54224594,3.11561041 0.913923523,3.92208721 1.02816396,4.67479892 C1.08528417,4.83609427 2.45616946,6.71787352 4.05553561,8.86847838 C5.71202198,11.0190832 7.08290727,12.8470973 7.14002748,12.9008625 C7.1971477,13.0083927 6.96866683,13.0083927 6.16898374,12.9546276 C3.65569407,12.7933322 1.37088528,14.02993 0.342721327,15.9654744 C0.0571202173,16.5568907 -2.27373675e-13,16.8794814 -2.27373675e-13,17.578428 C-2.27373675e-13,19.1913816 0.913923523,20.4817446 2.62753011,21.2344562 C3.31297274,21.5032819 3.54145363,21.557047 4.96945913,21.557047 C6.51170507,21.557047 6.56882529,21.557047 7.59698925,21.0731609 C10.3387598,19.8365631 11.4811642,17.4171326 10.3387598,15.2127627 C10.1102789,14.7288766 8.68227342,12.4169764 7.14002748,10.051311 L4.3411367,5.69633622 L4.79809846,5.69633622 C6.62594551,5.58880598 7.88259033,5.05115477 8.73939364,4.13714771 C9.48195649,3.33067088 9.71043738,2.52419408 9.65331716,1.23383116 C9.59619694,0.0509985062 9.48195651,-0.217827109 9.1963554,0.158528744 L9.1963554,0.158528744 Z" id="路径"></path>
                     </g>
-                    <g id="编组" transform="translate(123.828663, 8.699431) rotate(-8.000000) translate(-123.828663, -8.699431) translate(117.954232, 0.740103)" fill="#FFCF00">
+                    <g id="编组" transform="translate(115.905092, 18.592328) rotate(-8.000000) translate(-115.905092, -18.592328) translate(110.030661, 10.633000)" fill="#FFCF00">
                         <path d="M5.96876548,0.610334892 C5.10331258,4.8157963 5.08773443,6.91577113 0.975102253,8.65748254 C4.10977265,9.76166879 5.24178504,11.1102091 6.08819798,15.3083215 C6.55900436,10.4120547 8.82822186,9.71757483 10.77376,8.40026778 C6.84806562,7.15093892 6.20243776,3.64914362 5.96876548,0.610334892 Z" id="路径" transform="translate(5.874431, 7.959328) rotate(8.000000) translate(-5.874431, -7.959328) "></path>
                     </g>
-                    <g id="编组备份-2" transform="translate(8.353945, 11.367056)" fill="#FFD256">
-                        <path d="M3.99493058,0 C3.30256826,3.08400503 3.29010574,4.62398658 0,5.90124161 C2.50773632,6.71097819 3.41334623,7.69990772 4.09047658,10.7785235 C4.46712168,7.18792785 6.28249568,6.67864262 7.83892617,5.71261745 C4.6983707,4.79644295 4.18186841,2.22845973 3.99493058,0 Z" id="路径"></path>
-                    </g>
+                    <path d="M17.3886882,13.7405467 L5.70084641,15.5898645 C5.66296042,15.5955467 5.62754471,15.606171 5.59321289,15.6185859 L5.17102225,15.6185859 C4.88313407,15.6185859 4.65443173,15.8366821 4.65443173,16.1055123 L4.65443173,28.7605624 C4.19838821,28.5108082 3.66808512,28.3682279 3.10292087,28.3682279 C1.38932954,28.3682279 4.54747351e-13,29.6809119 4.54747351e-13,31.3004825 C4.54747351e-13,32.9201725 1.38930434,34.2326655 3.10292087,34.2326655 C4.81646178,34.2326655 6.20581655,32.9201487 6.20581655,31.3004825 C6.20581655,31.1817771 6.19827967,31.0651487 6.18408818,30.9513137 C6.19827967,30.9062619 6.20581655,30.8594673 6.20581655,30.8097123 L6.20581655,20.5177655 L17.0660396,18.7038779 L17.0660396,25.827329 C16.6099709,25.5785297 16.0797182,25.4350183 15.5145288,25.4350183 C13.8009374,25.4350183 12.4116331,26.7485618 12.4116331,28.3682279 C12.4116331,29.986963 13.8009122,31.3004826 15.5145288,31.3004826 C17.2281453,31.3004826 18.6174497,29.9869391 18.6174497,28.3682279 C18.6174497,28.2495702 18.6098876,28.1329418 18.5957465,28.0181041 C18.6099128,27.9730523 18.6174497,27.9262339 18.6174497,27.8765265 L18.6174497,14.1930935 C18.6174497,13.9538442 18.4341198,13.7539644 18.1927383,13.7137353 C18.108396,13.664028 18.0023505,13.6438777 17.8856677,13.6620942 L17.6109375,13.7061193 L17.5826302,13.7061193 C17.5139665,13.7061431 17.4482521,13.718558 17.3886882,13.7405467 L17.3886882,13.7405467 Z" id="路径" fill="url(#linearGradient-60)"></path>
+                    <path d="M11.5028352,0 C10.8104729,3.08400503 10.7980104,4.62398658 7.50790466,5.90124161 C10.015641,6.71097819 10.9212509,7.69990772 11.5983812,10.7785235 C11.9750263,7.18792785 13.7904003,6.67864262 15.3468308,5.71261745 C12.2062754,4.79644295 11.6897731,2.22845973 11.5028352,0 Z" id="路径" fill="#FFD256"></path>
                 </g>
             </g>
         </g>

+ 9 - 13
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression1.svg

@@ -168,16 +168,16 @@
             <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
             <feColorMatrix values="0 0 0 0 0.963654435   0 0 0 0 1   0 0 0 0 0.817785942  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
         </filter>
-        <linearGradient x1="76.9945329%" y1="0%" x2="40.4500795%" y2="99.4213184%" id="linearGradient-49">
+        <linearGradient x1="58.2441752%" y1="0%" x2="47.0834384%" y2="99.4213184%" id="linearGradient-49">
             <stop stop-color="#FF8C6E" offset="0%"></stop>
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
-        <linearGradient x1="58.2441752%" y1="0%" x2="47.0834384%" y2="99.4213184%" id="linearGradient-50">
+        <linearGradient x1="76.9945329%" y1="0%" x2="40.4500795%" y2="99.4213184%" id="linearGradient-50">
             <stop stop-color="#FF8C6E" offset="0%"></stop>
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
     </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+    <g id="蓝色" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="测评备份-3" transform="translate(-450.000000, -12.000000)">
             <g id="编组-2" transform="translate(450.393105, 12.000000)">
                 <g id="真棒备份-5" transform="translate(27.907426, 6.548901)">
@@ -304,23 +304,19 @@
                                 <use fill="black" fill-opacity="1" filter="url(#filter-48)" xlink:href="#path-46"></use>
                             </g>
                             <path d="M11.1484324,-2.33308697 L12.2158113,0.360305293 C12.2158113,0.360305293 13.7568943,4.33786676 11.9488853,7.20365702 C10.1405511,10.0694473 6.14478943,14.3189927 6.11260225,17.8133174 C6.08008995,21.307642 7.6949759,25.976428 11.5106195,26.9709816 C11.5106195,26.9709816 6.12235594,26.434197 5.28126273,19.2228669 C4.44049465,12.0115369 10.9179202,8.33763099 11.6432696,6.55945009 C12.3689442,4.78126919 13.1635448,2.42842829 11.1484324,-2.33308697" id="Fill-116" fill="#F6FFFD" opacity="0.487753005" mask="url(#mask-47)"></path>
-                            <path d="M15.6296678,9.23351288 C15.6127614,9.01638282 15.1387321,15.8473271 12.5227924,18.544964 C10.1357393,21.0062067 6.24791844,25.999545 11.5106845,26.9709163 C16.7741008,27.9419611 8.70974982,24.2471585 11.9414725,22.1754439 C16.5201797,19.2407597 16.0194903,14.2023628 15.6296678,9.23351288" id="Fill-114" fill="#4AD7BC" mask="url(#mask-47)"></path>
+                            <path d="M15.6296678,9.23351288 C15.6127614,9.01638282 15.1387321,15.8473271 12.5227924,18.544964 C10.1357393,21.0062067 6.24791844,25.999545 11.5106845,26.9709163 C16.7741008,27.9419611 8.70974982,24.2471585 11.9414725,22.1754439 C16.5201797,19.2407597 16.0194903,14.2023628 15.6296678,9.23351288" id="Fill-114" fill="#73E2F0" mask="url(#mask-47)"></path>
                         </g>
                     </g>
                 </g>
-                <g id="编组-17" transform="translate(77.294111, 59.492933) rotate(2.000000) translate(-77.294111, -59.492933) translate(4.281298, 35.996986)" fill-rule="nonzero">
-                    <g id="编组" transform="translate(10.803609, 35.373768) rotate(-9.000000) translate(-10.803609, -35.373768) translate(1.494884, 25.085177)" fill="url(#linearGradient-49)">
-                        <path d="M17.3886882,0.0850624029 L5.70084641,1.93438018 C5.66296042,1.94006238 5.62754471,1.95068666 5.59321289,1.96310155 L5.17102225,1.96310155 C4.88313407,1.96310155 4.65443173,2.1811978 4.65443173,2.450028 L4.65443173,15.1050781 C4.19838821,14.8553239 3.66808512,14.7127436 3.10292087,14.7127436 C1.38932954,14.7127436 -2.27373675e-13,16.0254276 -2.27373675e-13,17.6449982 C-2.27373675e-13,19.2646882 1.38930434,20.5771812 3.10292087,20.5771812 C4.81646178,20.5771812 6.20581655,19.2646643 6.20581655,17.6449982 C6.20581655,17.5262927 6.19827967,17.4096644 6.18408818,17.2958293 C6.19827967,17.2507776 6.20581655,17.203983 6.20581655,17.1542279 L6.20581655,6.86228117 L17.0660396,5.04839361 L17.0660396,12.1718446 C16.6099709,11.9230454 16.0797182,11.779534 15.5145288,11.779534 C13.8009374,11.779534 12.4116331,13.0930775 12.4116331,14.7127436 C12.4116331,16.3314786 13.8009122,17.6449982 15.5145288,17.6449982 C17.2281453,17.6449982 18.6174497,16.3314548 18.6174497,14.7127436 C18.6174497,14.5940859 18.6098876,14.4774575 18.5957465,14.3626198 C18.6099128,14.317568 18.6174497,14.2707496 18.6174497,14.2210422 L18.6174497,0.537609148 C18.6174497,0.298359834 18.4341198,0.0984800359 18.1927383,0.0582510045 C18.108396,0.00854366917 18.0023505,-0.011606648 17.8856677,0.00660982946 L17.6109375,0.0506349606 L17.5826302,0.0506349606 C17.5139665,0.050658805 17.4482521,0.0630737166 17.3886882,0.0850624029 L17.3886882,0.0850624029 Z" id="路径"></path>
-                    </g>
-                    <g id="编组" transform="translate(139.016582, 13.108827) rotate(-9.000000) translate(-139.016582, -13.108827) translate(133.627321, 2.330304)" fill="url(#linearGradient-50)">
+                <g id="编组-17" transform="translate(81.816884, 43.497494) rotate(2.000000) translate(-81.816884, -43.497494) translate(12.765857, 26.252188)" fill-rule="nonzero">
+                    <g id="编组" transform="translate(131.093012, 23.001724) rotate(-9.000000) translate(-131.093012, -23.001724) translate(125.703750, 12.223201)" fill="url(#linearGradient-49)">
                         <path d="M9.1963554,0.158528744 C8.91075429,0.534884597 7.36850835,1.18006604 6.05474331,1.44889164 C4.39825694,1.77148237 3.54145363,2.04030797 2.68465033,2.47042894 C1.54224594,3.11561041 0.913923523,3.92208721 1.02816396,4.67479892 C1.08528417,4.83609427 2.45616946,6.71787352 4.05553561,8.86847838 C5.71202198,11.0190832 7.08290727,12.8470973 7.14002748,12.9008625 C7.1971477,13.0083927 6.96866683,13.0083927 6.16898374,12.9546276 C3.65569407,12.7933322 1.37088528,14.02993 0.342721327,15.9654744 C0.0571202173,16.5568907 -2.27373675e-13,16.8794814 -2.27373675e-13,17.578428 C-2.27373675e-13,19.1913816 0.913923523,20.4817446 2.62753011,21.2344562 C3.31297274,21.5032819 3.54145363,21.557047 4.96945913,21.557047 C6.51170507,21.557047 6.56882529,21.557047 7.59698925,21.0731609 C10.3387598,19.8365631 11.4811642,17.4171326 10.3387598,15.2127627 C10.1102789,14.7288766 8.68227342,12.4169764 7.14002748,10.051311 L4.3411367,5.69633622 L4.79809846,5.69633622 C6.62594551,5.58880598 7.88259033,5.05115477 8.73939364,4.13714771 C9.48195649,3.33067088 9.71043738,2.52419408 9.65331716,1.23383116 C9.59619694,0.0509985062 9.48195651,-0.217827109 9.1963554,0.158528744 L9.1963554,0.158528744 Z" id="路径"></path>
                     </g>
-                    <g id="编组" transform="translate(123.828663, 8.699431) rotate(-8.000000) translate(-123.828663, -8.699431) translate(117.954232, 0.740103)" fill="#FFCF00">
+                    <g id="编组" transform="translate(115.905092, 18.592328) rotate(-8.000000) translate(-115.905092, -18.592328) translate(110.030661, 10.633000)" fill="#FFCF00">
                         <path d="M5.96876548,0.610334892 C5.10331258,4.8157963 5.08773443,6.91577113 0.975102253,8.65748254 C4.10977265,9.76166879 5.24178504,11.1102091 6.08819798,15.3083215 C6.55900436,10.4120547 8.82822186,9.71757483 10.77376,8.40026778 C6.84806562,7.15093892 6.20243776,3.64914362 5.96876548,0.610334892 Z" id="路径" transform="translate(5.874431, 7.959328) rotate(8.000000) translate(-5.874431, -7.959328) "></path>
                     </g>
-                    <g id="编组备份-2" transform="translate(8.353945, 11.367056)" fill="#FFD256">
-                        <path d="M3.99493058,0 C3.30256826,3.08400503 3.29010574,4.62398658 0,5.90124161 C2.50773632,6.71097819 3.41334623,7.69990772 4.09047658,10.7785235 C4.46712168,7.18792785 6.28249568,6.67864262 7.83892617,5.71261745 C4.6983707,4.79644295 4.18186841,2.22845973 3.99493058,0 Z" id="路径"></path>
-                    </g>
+                    <path d="M17.3886882,13.7405467 L5.70084641,15.5898645 C5.66296042,15.5955467 5.62754471,15.606171 5.59321289,15.6185859 L5.17102225,15.6185859 C4.88313407,15.6185859 4.65443173,15.8366821 4.65443173,16.1055123 L4.65443173,28.7605624 C4.19838821,28.5108082 3.66808512,28.3682279 3.10292087,28.3682279 C1.38932954,28.3682279 4.54747351e-13,29.6809119 4.54747351e-13,31.3004825 C4.54747351e-13,32.9201725 1.38930434,34.2326655 3.10292087,34.2326655 C4.81646178,34.2326655 6.20581655,32.9201487 6.20581655,31.3004825 C6.20581655,31.1817771 6.19827967,31.0651487 6.18408818,30.9513137 C6.19827967,30.9062619 6.20581655,30.8594673 6.20581655,30.8097123 L6.20581655,20.5177655 L17.0660396,18.7038779 L17.0660396,25.827329 C16.6099709,25.5785297 16.0797182,25.4350183 15.5145288,25.4350183 C13.8009374,25.4350183 12.4116331,26.7485618 12.4116331,28.3682279 C12.4116331,29.986963 13.8009122,31.3004826 15.5145288,31.3004826 C17.2281453,31.3004826 18.6174497,29.9869391 18.6174497,28.3682279 C18.6174497,28.2495702 18.6098876,28.1329418 18.5957465,28.0181041 C18.6099128,27.9730523 18.6174497,27.9262339 18.6174497,27.8765265 L18.6174497,14.1930935 C18.6174497,13.9538442 18.4341198,13.7539644 18.1927383,13.7137353 C18.108396,13.664028 18.0023505,13.6438777 17.8856677,13.6620942 L17.6109375,13.7061193 L17.5826302,13.7061193 C17.5139665,13.7061431 17.4482521,13.718558 17.3886882,13.7405467 L17.3886882,13.7405467 Z" id="路径" fill="url(#linearGradient-50)"></path>
+                    <path d="M11.5028352,0 C10.8104729,3.08400503 10.7980104,4.62398658 7.50790466,5.90124161 C10.015641,6.71097819 10.9212509,7.69990772 11.5983812,10.7785235 C11.9750263,7.18792785 13.7904003,6.67864262 15.3468308,5.71261745 C12.2062754,4.79644295 11.6897731,2.22845973 11.5028352,0 Z" id="路径" fill="#FFD256"></path>
                 </g>
             </g>
         </g>

+ 9 - 13
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression2.svg

@@ -172,16 +172,16 @@
             <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
             <feColorMatrix values="0 0 0 0 0.963654435   0 0 0 0 1   0 0 0 0 0.817785942  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
         </filter>
-        <linearGradient x1="76.9945329%" y1="0%" x2="40.4500795%" y2="99.4213184%" id="linearGradient-51">
+        <linearGradient x1="58.2441752%" y1="0%" x2="47.0834384%" y2="99.4213184%" id="linearGradient-51">
             <stop stop-color="#FF8C6E" offset="0%"></stop>
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
-        <linearGradient x1="58.2441752%" y1="0%" x2="47.0834384%" y2="99.4213184%" id="linearGradient-52">
+        <linearGradient x1="76.9945329%" y1="0%" x2="40.4500795%" y2="99.4213184%" id="linearGradient-52">
             <stop stop-color="#FF8C6E" offset="0%"></stop>
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
     </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+    <g id="蓝色" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="测评备份" transform="translate(-450.000000, -12.000000)">
             <g id="编组-2" transform="translate(450.393105, 12.000000)">
                 <g id="真棒备份-4" transform="translate(78.407426, 83.042586) rotate(-1.000000) translate(-78.407426, -83.042586) translate(27.907426, 7.548901)">
@@ -308,23 +308,19 @@
                                 <use fill="black" fill-opacity="1" filter="url(#filter-50)" xlink:href="#path-48"></use>
                             </g>
                             <path d="M11.1484324,-2.33308697 L12.2158113,0.360305293 C12.2158113,0.360305293 13.7568943,4.33786676 11.9488853,7.20365702 C10.1405511,10.0694473 6.14478943,14.3189927 6.11260225,17.8133174 C6.08008995,21.307642 7.6949759,25.976428 11.5106195,26.9709816 C11.5106195,26.9709816 6.12235594,26.434197 5.28126273,19.2228669 C4.44049465,12.0115369 10.9179202,8.33763099 11.6432696,6.55945009 C12.3689442,4.78126919 13.1635448,2.42842829 11.1484324,-2.33308697" id="Fill-116" fill="#F6FFFD" opacity="0.487753005" mask="url(#mask-49)"></path>
-                            <path d="M15.6296678,9.23351288 C15.6127614,9.01638282 15.1387321,15.8473271 12.5227924,18.544964 C10.1357393,21.0062067 6.24791844,25.999545 11.5106845,26.9709163 C16.7741008,27.9419611 8.70974982,24.2471585 11.9414725,22.1754439 C16.5201797,19.2407597 16.0194903,14.2023628 15.6296678,9.23351288" id="Fill-114" fill="#4AD7BC" mask="url(#mask-49)"></path>
+                            <path d="M15.6296678,9.23351288 C15.6127614,9.01638282 15.1387321,15.8473271 12.5227924,18.544964 C10.1357393,21.0062067 6.24791844,25.999545 11.5106845,26.9709163 C16.7741008,27.9419611 8.70974982,24.2471585 11.9414725,22.1754439 C16.5201797,19.2407597 16.0194903,14.2023628 15.6296678,9.23351288" id="Fill-114" fill="#73E2F0" mask="url(#mask-49)"></path>
                         </g>
                     </g>
                 </g>
-                <g id="编组-17" transform="translate(77.294111, 59.492933) rotate(2.000000) translate(-77.294111, -59.492933) translate(4.281298, 35.996986)" fill-rule="nonzero">
-                    <g id="编组" transform="translate(10.803609, 35.373768) rotate(-9.000000) translate(-10.803609, -35.373768) translate(1.494884, 25.085177)" fill="url(#linearGradient-51)">
-                        <path d="M17.3886882,0.0850624029 L5.70084641,1.93438018 C5.66296042,1.94006238 5.62754471,1.95068666 5.59321289,1.96310155 L5.17102225,1.96310155 C4.88313407,1.96310155 4.65443173,2.1811978 4.65443173,2.450028 L4.65443173,15.1050781 C4.19838821,14.8553239 3.66808512,14.7127436 3.10292087,14.7127436 C1.38932954,14.7127436 -2.27373675e-13,16.0254276 -2.27373675e-13,17.6449982 C-2.27373675e-13,19.2646882 1.38930434,20.5771812 3.10292087,20.5771812 C4.81646178,20.5771812 6.20581655,19.2646643 6.20581655,17.6449982 C6.20581655,17.5262927 6.19827967,17.4096644 6.18408818,17.2958293 C6.19827967,17.2507776 6.20581655,17.203983 6.20581655,17.1542279 L6.20581655,6.86228117 L17.0660396,5.04839361 L17.0660396,12.1718446 C16.6099709,11.9230454 16.0797182,11.779534 15.5145288,11.779534 C13.8009374,11.779534 12.4116331,13.0930775 12.4116331,14.7127436 C12.4116331,16.3314786 13.8009122,17.6449982 15.5145288,17.6449982 C17.2281453,17.6449982 18.6174497,16.3314548 18.6174497,14.7127436 C18.6174497,14.5940859 18.6098876,14.4774575 18.5957465,14.3626198 C18.6099128,14.317568 18.6174497,14.2707496 18.6174497,14.2210422 L18.6174497,0.537609148 C18.6174497,0.298359834 18.4341198,0.0984800359 18.1927383,0.0582510045 C18.108396,0.00854366917 18.0023505,-0.011606648 17.8856677,0.00660982946 L17.6109375,0.0506349606 L17.5826302,0.0506349606 C17.5139665,0.050658805 17.4482521,0.0630737166 17.3886882,0.0850624029 L17.3886882,0.0850624029 Z" id="路径"></path>
-                    </g>
-                    <g id="编组" transform="translate(139.016582, 13.108827) rotate(-9.000000) translate(-139.016582, -13.108827) translate(133.627321, 2.330304)" fill="url(#linearGradient-52)">
+                <g id="编组-17" transform="translate(81.816884, 43.497494) rotate(2.000000) translate(-81.816884, -43.497494) translate(12.765857, 26.252188)" fill-rule="nonzero">
+                    <g id="编组" transform="translate(131.093012, 23.001724) rotate(-9.000000) translate(-131.093012, -23.001724) translate(125.703750, 12.223201)" fill="url(#linearGradient-51)">
                         <path d="M9.1963554,0.158528744 C8.91075429,0.534884597 7.36850835,1.18006604 6.05474331,1.44889164 C4.39825694,1.77148237 3.54145363,2.04030797 2.68465033,2.47042894 C1.54224594,3.11561041 0.913923523,3.92208721 1.02816396,4.67479892 C1.08528417,4.83609427 2.45616946,6.71787352 4.05553561,8.86847838 C5.71202198,11.0190832 7.08290727,12.8470973 7.14002748,12.9008625 C7.1971477,13.0083927 6.96866683,13.0083927 6.16898374,12.9546276 C3.65569407,12.7933322 1.37088528,14.02993 0.342721327,15.9654744 C0.0571202173,16.5568907 -2.27373675e-13,16.8794814 -2.27373675e-13,17.578428 C-2.27373675e-13,19.1913816 0.913923523,20.4817446 2.62753011,21.2344562 C3.31297274,21.5032819 3.54145363,21.557047 4.96945913,21.557047 C6.51170507,21.557047 6.56882529,21.557047 7.59698925,21.0731609 C10.3387598,19.8365631 11.4811642,17.4171326 10.3387598,15.2127627 C10.1102789,14.7288766 8.68227342,12.4169764 7.14002748,10.051311 L4.3411367,5.69633622 L4.79809846,5.69633622 C6.62594551,5.58880598 7.88259033,5.05115477 8.73939364,4.13714771 C9.48195649,3.33067088 9.71043738,2.52419408 9.65331716,1.23383116 C9.59619694,0.0509985062 9.48195651,-0.217827109 9.1963554,0.158528744 L9.1963554,0.158528744 Z" id="路径"></path>
                     </g>
-                    <g id="编组" transform="translate(123.828663, 8.699431) rotate(-8.000000) translate(-123.828663, -8.699431) translate(117.954232, 0.740103)" fill="#FFCF00">
+                    <g id="编组" transform="translate(115.905092, 18.592328) rotate(-8.000000) translate(-115.905092, -18.592328) translate(110.030661, 10.633000)" fill="#FFCF00">
                         <path d="M5.96876548,0.610334892 C5.10331258,4.8157963 5.08773443,6.91577113 0.975102253,8.65748254 C4.10977265,9.76166879 5.24178504,11.1102091 6.08819798,15.3083215 C6.55900436,10.4120547 8.82822186,9.71757483 10.77376,8.40026778 C6.84806562,7.15093892 6.20243776,3.64914362 5.96876548,0.610334892 Z" id="路径" transform="translate(5.874431, 7.959328) rotate(8.000000) translate(-5.874431, -7.959328) "></path>
                     </g>
-                    <g id="编组备份-2" transform="translate(8.353945, 11.367056)" fill="#FFD256">
-                        <path d="M3.99493058,0 C3.30256826,3.08400503 3.29010574,4.62398658 0,5.90124161 C2.50773632,6.71097819 3.41334623,7.69990772 4.09047658,10.7785235 C4.46712168,7.18792785 6.28249568,6.67864262 7.83892617,5.71261745 C4.6983707,4.79644295 4.18186841,2.22845973 3.99493058,0 Z" id="路径"></path>
-                    </g>
+                    <path d="M17.3886882,13.7405467 L5.70084641,15.5898645 C5.66296042,15.5955467 5.62754471,15.606171 5.59321289,15.6185859 L5.17102225,15.6185859 C4.88313407,15.6185859 4.65443173,15.8366821 4.65443173,16.1055123 L4.65443173,28.7605624 C4.19838821,28.5108082 3.66808512,28.3682279 3.10292087,28.3682279 C1.38932954,28.3682279 -2.27373675e-13,29.6809119 -2.27373675e-13,31.3004825 C-2.27373675e-13,32.9201725 1.38930434,34.2326655 3.10292087,34.2326655 C4.81646178,34.2326655 6.20581655,32.9201487 6.20581655,31.3004825 C6.20581655,31.1817771 6.19827967,31.0651487 6.18408818,30.9513137 C6.19827967,30.9062619 6.20581655,30.8594673 6.20581655,30.8097123 L6.20581655,20.5177655 L17.0660396,18.7038779 L17.0660396,25.827329 C16.6099709,25.5785297 16.0797182,25.4350183 15.5145288,25.4350183 C13.8009374,25.4350183 12.4116331,26.7485618 12.4116331,28.3682279 C12.4116331,29.986963 13.8009122,31.3004826 15.5145288,31.3004826 C17.2281453,31.3004826 18.6174497,29.9869391 18.6174497,28.3682279 C18.6174497,28.2495702 18.6098876,28.1329418 18.5957465,28.0181041 C18.6099128,27.9730523 18.6174497,27.9262339 18.6174497,27.8765265 L18.6174497,14.1930935 C18.6174497,13.9538442 18.4341198,13.7539644 18.1927383,13.7137353 C18.108396,13.664028 18.0023505,13.6438777 17.8856677,13.6620942 L17.6109375,13.7061193 L17.5826302,13.7061193 C17.5139665,13.7061431 17.4482521,13.718558 17.3886882,13.7405467 L17.3886882,13.7405467 Z" id="路径" fill="url(#linearGradient-52)"></path>
+                    <path d="M11.5028352,0 C10.8104729,3.08400503 10.7980104,4.62398658 7.50790466,5.90124161 C10.015641,6.71097819 10.9212509,7.69990772 11.5983812,10.7785235 C11.9750263,7.18792785 13.7904003,6.67864262 15.3468308,5.71261745 C12.2062754,4.79644295 11.6897731,2.22845973 11.5028352,0 Z" id="路径" fill="#FFD256"></path>
                 </g>
             </g>
         </g>

+ 11 - 11
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression3.svg

@@ -201,7 +201,7 @@
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
     </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+    <g id="蓝色" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="测评备份-2" transform="translate(-450.000000, -12.000000)">
             <g id="编组-2" transform="translate(450.393105, 12.000000)">
                 <g id="真棒备份-2" transform="translate(80.106863, 79.170360) rotate(7.000000) translate(-80.106863, -79.170360) translate(29.606831, 5.999996)">
@@ -296,7 +296,7 @@
                                 <use fill="black" fill-opacity="1" filter="url(#filter-42)" xlink:href="#path-40"></use>
                             </g>
                             <path d="M10.6175547,-2.22198759 L11.634106,0.343147898 C11.634106,0.343147898 13.1018041,4.13130167 11.3798907,6.86062573 C9.65766774,9.58994979 5.85218041,13.6371359 5.82152595,16.9650641 C5.79056186,20.2929924 7.32854848,24.7394553 10.9624947,25.6866492 C10.9624947,25.6866492 5.83081518,25.1754257 5.02977403,18.3074923 C4.22904252,11.4395589 10.3980193,7.94060094 11.0888282,6.24709533 C11.7799468,4.55358971 12.5367093,2.31278884 10.6175547,-2.22198759" id="Fill-116" fill="#F6FFFD" opacity="0.487753005" mask="url(#mask-41)"></path>
-                            <path d="M14.8853979,8.79382179 C14.8692966,8.58703126 14.4178401,15.0926925 11.9264689,17.6618705 C9.65308506,20.0059111 5.95039852,24.7614714 10.9625567,25.686587 C15.9753341,26.6113916 8.29499983,23.0925319 11.3728309,21.1194704 C15.7335045,18.3245331 15.2566574,13.5260599 14.8853979,8.79382179" id="Fill-114" fill="#4AD7BC" mask="url(#mask-41)"></path>
+                            <path d="M11.9264689,17.6618705 C9.65308506,20.0059111 5.95039852,24.7614714 10.9625567,25.686587 C15.9753341,26.6113916 8.29499983,23.0925319 11.3728309,21.1194704 C15.7335045,18.3245331 15.2566574,13.5260599 14.8853979,8.79382179 C14.8692966,8.58703126 14.4178401,15.0926925 11.9264689,17.6618705 Z" id="Fill-114" fill="#73E2F0" mask="url(#mask-41)"></path>
                         </g>
                     </g>
                     <g id="左翅膀" transform="translate(0.000000, 64.889991)">
@@ -304,26 +304,26 @@
                             <use fill="url(#linearGradient-43)" fill-rule="evenodd" xlink:href="#path-44"></use>
                             <use fill="black" fill-opacity="1" filter="url(#filter-45)" xlink:href="#path-44"></use>
                         </g>
-                        <path d="M7.6236761,19.495669 C7.36167743,24.2575048 8.05510972,27.8396786 9.70397297,30.2421903 C9.70397297,34.4601426 21.9218744,39.8003001 25.7222857,39.8003001 C26.4361597,40.6591436 27.2904697,41.4035694 28.2852157,42.0335775 L27.4123543,44.3430248 C26.2856419,43.4933002 25.5338467,42.5504625 25.1569686,41.5145117 C19.5248154,40.4239167 9.33470093,37.3214066 7.78963543,30.6445378 C5.64862041,26.8267531 5.37900151,22.6415552 6.98077874,18.0889443 L7.6236761,19.495669 Z" id="路径-7" fill="#30B497"></path>
+                        <path d="M7.6236761,19.495669 C7.36167743,24.2575048 8.05510972,27.8396786 9.70397297,30.2421903 C9.70397297,34.4601426 21.9218744,39.8003001 25.7222857,39.8003001 C26.4361597,40.6591436 27.2904697,41.4035694 28.2852157,42.0335775 L27.4123543,44.3430248 C26.2856419,43.4933002 25.5338467,42.5504625 25.1569686,41.5145117 C19.5248154,40.4239167 9.33470093,37.3214066 7.78963543,30.6445378 C5.64862041,26.8267531 5.37900151,22.6415552 6.98077874,18.0889443 L7.6236761,19.495669 Z" id="路径-7" fill="#1DABCF"></path>
                         <path d="M6.18469136,11.0151196 C8.80234268,12.6336745 11.8741357,13.8286837 15.964708,13.9825442 C20.0552804,14.1364047 23.2144391,13.4088822 23.2736032,9.63905729 C23.3327674,5.86923236 18.8124285,5.13592634 15.4210266,4.59878105 C12.0296248,4.06163577 9.63998022,4.55597485 6.56053252,5.73329896 C8.52279789,7.2705771 8.00586845,10.5343411 6.18469136,11.0151196 Z" id="Fill-21" fill="url(#linearGradient-46)" transform="translate(14.729435, 9.191919) scale(-1, -1) rotate(81.000000) translate(-14.729435, -9.191919) "></path>
                         <path d="M9.53823537,27.8917233 C9.18894369,26.0894873 9.44503873,25.1436051 9.49573518,23.9966255 C5.40673803,24.7246775 1.06012339,27.3363871 3.72857221,31.7774317 C6.55099224,35.5779803 15.4974435,32.9026842 15.0243452,30.7462008 C14.7089463,29.3085452 12.8802431,28.3570527 9.53823537,27.8917233 Z" id="Fill-21备份-5" fill="url(#linearGradient-47)"></path>
                         <path d="M8.57894308,23.3081338 C9.20776183,21.5834175 9.9440294,21.3729059 10.5782229,20.4158632 C6.69829375,18.9339363 0.985129138,19.1455636 1.68787599,23.9582015 C2.14973492,28.6695613 15.0243452,29.8402306 15.0243452,27.0542856 C15.0243452,25.196989 12.8758778,23.9482717 8.57894308,23.3081338 Z" id="Fill-21备份-6" fill="url(#linearGradient-48)"></path>
-                        <path d="M18.7942028,23.8573875 C18.7942028,23.8573875 11.887975,24.4489608 12.8148685,17.8211914 C12.8148685,17.8211914 14.1057331,22.2463346 18.7942028,23.8573875 Z" id="Fill-15" fill="#32B89A" transform="translate(15.761736, 20.846076) scale(-1, 1) rotate(-103.000000) translate(-15.761736, -20.846076) "></path>
+                        <path d="M18.7942028,23.8573875 C18.7942028,23.8573875 11.887975,24.4489608 12.8148685,17.8211914 C12.8148685,17.8211914 14.1057331,22.2463346 18.7942028,23.8573875 Z" id="Fill-15" fill="#1DABCF" transform="translate(15.761736, 20.846076) scale(-1, 1) rotate(-103.000000) translate(-15.761736, -20.846076) "></path>
                         <path d="M8.27015186,17.4093579 C6.15952821,14.873424 8.40782876,11.7124198 9.70397297,11.1468834 C5.03706466,9.76654654 0.312439553,10.8480156 0.877880149,17.2938655 C0.877880149,22.0421822 14.0243556,26.600882 15.0243452,23.215607 C16.0243348,19.8303321 9.62382371,17.2315803 8.27015186,17.4093579 Z" id="Fill-21备份-7" fill="url(#linearGradient-49)"></path>
                     </g>
                 </g>
-                <g id="编组-17" transform="translate(77.294111, 59.492933) rotate(2.000000) translate(-77.294111, -59.492933) translate(4.281298, 35.996986)" fill-rule="nonzero">
-                    <g id="编组" transform="translate(10.803609, 35.373768) rotate(-9.000000) translate(-10.803609, -35.373768) translate(1.494884, 25.085177)" fill="url(#linearGradient-50)">
-                        <path d="M17.3886882,0.0850624029 L5.70084641,1.93438018 C5.66296042,1.94006238 5.62754471,1.95068666 5.59321289,1.96310155 L5.17102225,1.96310155 C4.88313407,1.96310155 4.65443173,2.1811978 4.65443173,2.450028 L4.65443173,15.1050781 C4.19838821,14.8553239 3.66808512,14.7127436 3.10292087,14.7127436 C1.38932954,14.7127436 -2.27373675e-13,16.0254276 -2.27373675e-13,17.6449982 C-2.27373675e-13,19.2646882 1.38930434,20.5771812 3.10292087,20.5771812 C4.81646178,20.5771812 6.20581655,19.2646643 6.20581655,17.6449982 C6.20581655,17.5262927 6.19827967,17.4096644 6.18408818,17.2958293 C6.19827967,17.2507776 6.20581655,17.203983 6.20581655,17.1542279 L6.20581655,6.86228117 L17.0660396,5.04839361 L17.0660396,12.1718446 C16.6099709,11.9230454 16.0797182,11.779534 15.5145288,11.779534 C13.8009374,11.779534 12.4116331,13.0930775 12.4116331,14.7127436 C12.4116331,16.3314786 13.8009122,17.6449982 15.5145288,17.6449982 C17.2281453,17.6449982 18.6174497,16.3314548 18.6174497,14.7127436 C18.6174497,14.5940859 18.6098876,14.4774575 18.5957465,14.3626198 C18.6099128,14.317568 18.6174497,14.2707496 18.6174497,14.2210422 L18.6174497,0.537609148 C18.6174497,0.298359834 18.4341198,0.0984800359 18.1927383,0.0582510045 C18.108396,0.00854366917 18.0023505,-0.011606648 17.8856677,0.00660982946 L17.6109375,0.0506349606 L17.5826302,0.0506349606 C17.5139665,0.050658805 17.4482521,0.0630737166 17.3886882,0.0850624029 L17.3886882,0.0850624029 Z" id="路径"></path>
+                <g id="编组-17" transform="translate(81.466852, 44.046275) rotate(2.000000) translate(-81.466852, -44.046275) translate(12.085158, 26.233856)" fill-rule="nonzero">
+                    <g id="编组" transform="translate(10.803609, 24.006711) rotate(-9.000000) translate(-10.803609, -24.006711) translate(1.494884, 13.718121)" fill="url(#linearGradient-50)">
+                        <path d="M17.3886882,0.0850624029 L5.70084641,1.93438018 C5.66296042,1.94006238 5.62754471,1.95068666 5.59321289,1.96310155 L5.17102225,1.96310155 C4.88313407,1.96310155 4.65443173,2.1811978 4.65443173,2.450028 L4.65443173,15.1050781 C4.19838821,14.8553239 3.66808512,14.7127436 3.10292087,14.7127436 C1.38932954,14.7127436 -3.41060513e-13,16.0254276 -3.41060513e-13,17.6449982 C-3.41060513e-13,19.2646882 1.38930434,20.5771812 3.10292087,20.5771812 C4.81646178,20.5771812 6.20581655,19.2646643 6.20581655,17.6449982 C6.20581655,17.5262927 6.19827967,17.4096644 6.18408818,17.2958293 C6.19827967,17.2507776 6.20581655,17.203983 6.20581655,17.1542279 L6.20581655,6.86228117 L17.0660396,5.04839361 L17.0660396,12.1718446 C16.6099709,11.9230454 16.0797182,11.779534 15.5145288,11.779534 C13.8009374,11.779534 12.4116331,13.0930775 12.4116331,14.7127436 C12.4116331,16.3314786 13.8009122,17.6449982 15.5145288,17.6449982 C17.2281453,17.6449982 18.6174497,16.3314548 18.6174497,14.7127436 C18.6174497,14.5940859 18.6098876,14.4774575 18.5957465,14.3626198 C18.6099128,14.317568 18.6174497,14.2707496 18.6174497,14.2210422 L18.6174497,0.537609148 C18.6174497,0.298359834 18.4341198,0.0984800359 18.1927383,0.0582510045 C18.108396,0.00854366917 18.0023505,-0.011606648 17.8856677,0.00660982946 L17.6109375,0.0506349606 L17.5826302,0.0506349606 C17.5139665,0.050658805 17.4482521,0.0630737166 17.3886882,0.0850624029 L17.3886882,0.0850624029 Z" id="路径"></path>
                     </g>
-                    <g id="编组" transform="translate(139.016582, 13.108827) rotate(-9.000000) translate(-139.016582, -13.108827) translate(133.627321, 2.330304)" fill="url(#linearGradient-51)">
+                    <g id="编组" transform="translate(131.754345, 23.008174) rotate(-9.000000) translate(-131.754345, -23.008174) translate(126.365084, 12.229651)" fill="url(#linearGradient-51)">
                         <path d="M9.1963554,0.158528744 C8.91075429,0.534884597 7.36850835,1.18006604 6.05474331,1.44889164 C4.39825694,1.77148237 3.54145363,2.04030797 2.68465033,2.47042894 C1.54224594,3.11561041 0.913923523,3.92208721 1.02816396,4.67479892 C1.08528417,4.83609427 2.45616946,6.71787352 4.05553561,8.86847838 C5.71202198,11.0190832 7.08290727,12.8470973 7.14002748,12.9008625 C7.1971477,13.0083927 6.96866683,13.0083927 6.16898374,12.9546276 C3.65569407,12.7933322 1.37088528,14.02993 0.342721327,15.9654744 C0.0571202173,16.5568907 -2.27373675e-13,16.8794814 -2.27373675e-13,17.578428 C-2.27373675e-13,19.1913816 0.913923523,20.4817446 2.62753011,21.2344562 C3.31297274,21.5032819 3.54145363,21.557047 4.96945913,21.557047 C6.51170507,21.557047 6.56882529,21.557047 7.59698925,21.0731609 C10.3387598,19.8365631 11.4811642,17.4171326 10.3387598,15.2127627 C10.1102789,14.7288766 8.68227342,12.4169764 7.14002748,10.051311 L4.3411367,5.69633622 L4.79809846,5.69633622 C6.62594551,5.58880598 7.88259033,5.05115477 8.73939364,4.13714771 C9.48195649,3.33067088 9.71043738,2.52419408 9.65331716,1.23383116 C9.59619694,0.0509985062 9.48195651,-0.217827109 9.1963554,0.158528744 L9.1963554,0.158528744 Z" id="路径"></path>
                     </g>
-                    <g id="编组" transform="translate(123.828663, 8.699431) rotate(-8.000000) translate(-123.828663, -8.699431) translate(117.954232, 0.740103)" fill="#FFCF00">
+                    <g id="编组" transform="translate(116.566426, 18.598778) rotate(-8.000000) translate(-116.566426, -18.598778) translate(110.691995, 10.639450)" fill="#FFCF00">
                         <path d="M5.96876548,0.610334892 C5.10331258,4.8157963 5.08773443,6.91577113 0.975102253,8.65748254 C4.10977265,9.76166879 5.24178504,11.1102091 6.08819798,15.3083215 C6.55900436,10.4120547 8.82822186,9.71757483 10.77376,8.40026778 C6.84806562,7.15093892 6.20243776,3.64914362 5.96876548,0.610334892 Z" id="路径" transform="translate(5.874431, 7.959328) rotate(8.000000) translate(-5.874431, -7.959328) "></path>
                     </g>
-                    <g id="编组备份-2" transform="translate(8.353945, 11.367056)" fill="#FFD256">
-                        <path d="M3.99493058,0 C3.30256826,3.08400503 3.29010574,4.62398658 0,5.90124161 C2.50773632,6.71097819 3.41334623,7.69990772 4.09047658,10.7785235 C4.46712168,7.18792785 6.28249568,6.67864262 7.83892617,5.71261745 C4.6983707,4.79644295 4.18186841,2.22845973 3.99493058,0 Z" id="路径"></path>
+                    <g id="编组备份-2" transform="translate(8.353945, 0.000000)" fill="#FFD256">
+                        <path d="M3.99493058,0 C3.30256826,3.08400503 3.29010574,4.62398658 -2.27373675e-13,5.90124161 C2.50773632,6.71097819 3.41334623,7.69990772 4.09047658,10.7785235 C4.46712168,7.18792785 6.28249568,6.67864262 7.83892617,5.71261745 C4.6983707,4.79644295 4.18186841,2.22845973 3.99493058,0 Z" id="路径"></path>
                     </g>
                 </g>
             </g>

+ 13 - 13
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression4.svg

@@ -110,10 +110,10 @@
             <stop stop-color="#000000" offset="0%"></stop>
             <stop stop-color="#00003D" offset="100%"></stop>
         </linearGradient>
-        <filter x="-21.9%" y="-18.4%" width="143.8%" height="136.8%" filterUnits="objectBoundingBox" id="filter-29">
+        <filter x="-21.9%" y="-17.5%" width="143.8%" height="135.0%" filterUnits="objectBoundingBox" id="filter-29">
             <feOffset dx="0" dy="-2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
             <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.114745713   0 0 0 0 0.507168977   0 0 0 0 0.419313022  0 0 0 0.265993772 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feColorMatrix values="0 0 0 0 0.427014016   0 0 0 0 0.633484915   0 0 0 0 0.81870126  0 0 0 0.265993772 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
             <feMerge>
                 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
                 <feMergeNode in="SourceGraphic"></feMergeNode>
@@ -154,10 +154,10 @@
             <stop stop-color="#F4A305" offset="0%"></stop>
             <stop stop-color="#F4D877" offset="100%"></stop>
         </linearGradient>
-        <filter x="-17.8%" y="-14.9%" width="135.6%" height="129.7%" filterUnits="objectBoundingBox" id="filter-37">
-            <feOffset dx="0" dy="-1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+        <filter x="-21.9%" y="-18.3%" width="143.8%" height="136.5%" filterUnits="objectBoundingBox" id="filter-37">
+            <feOffset dx="0" dy="-2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
             <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.114745713   0 0 0 0 0.507168977   0 0 0 0 0.419313022  0 0 0 0.265993772 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feColorMatrix values="0 0 0 0 0.427014016   0 0 0 0 0.633484915   0 0 0 0 0.81870126  0 0 0 0.265993772 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
             <feMerge>
                 <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
                 <feMergeNode in="SourceGraphic"></feMergeNode>
@@ -187,12 +187,12 @@
             <stop stop-color="#FF5D10" offset="100%"></stop>
         </linearGradient>
     </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+    <g id="蓝色" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="测评" transform="translate(-450.000000, -12.000000)">
             <g id="编组-11" transform="translate(211.000000, 9.329345)">
                 <g id="编组-2" transform="translate(239.393105, 0.000000)">
                     <g id="小酷" transform="translate(78.606895, 78.669617) rotate(7.000000) translate(-78.606895, -78.669617) translate(27.628386, 5.668579)">
-                        <g id="真棒备份" transform="translate(-0.000000, 0.000000)">
+                        <g id="真棒备份">
                             <g id="身" transform="translate(26.079506, 85.456229)">
                                 <g id="Fill-57">
                                     <use fill="url(#radialGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
@@ -246,7 +246,7 @@
                                         <use fill="black" fill-opacity="1" filter="url(#filter-23)" xlink:href="#path-21"></use>
                                     </g>
                                     <path d="M10.5025604,-2.19850306 L11.5081018,0.339521114 C11.5081018,0.339521114 12.9599039,4.0876373 11.2566399,6.78811471 C9.55306957,9.48859212 5.78879788,13.4930029 5.75847543,16.7857577 C5.7278467,20.0785126 7.24917603,24.4779801 10.8437645,25.415163 C10.8437645,25.415163 5.76766405,24.9093427 4.97529864,18.1139976 C4.18323952,11.3186525 10.2854027,7.8566755 10.9687298,6.1810688 C11.6523632,4.50546211 12.4009295,2.28834462 10.5025604,-2.19850306" id="Fill-116" fill="#F6FFFD" opacity="0.487753005" mask="url(#mask-22)"></path>
-                                    <path d="M14.7241804,8.70087852 C14.7082534,8.49627359 14.2616865,14.9331755 11.7972983,17.4751994 C9.54853652,19.7944656 5.88595223,24.4997636 10.8438258,25.4151015 C15.8023119,26.3301316 8.20516014,22.8484634 11.2496565,20.8962554 C15.5631015,18.1308582 15.0914189,13.3831008 14.7241804,8.70087852" id="Fill-114" fill="#4AD7BC" mask="url(#mask-22)"></path>
+                                    <path d="M14.7241804,8.70087852 C14.7082534,8.49627359 14.2616865,14.9331755 11.7972983,17.4751994 C9.54853652,19.7944656 5.88595223,24.4997636 10.8438258,25.4151015 C15.8023119,26.3301316 8.20516014,22.8484634 11.2496565,20.8962554 C15.5631015,18.1308582 15.0914189,13.3831008 14.7241804,8.70087852" id="Fill-114" fill="#73E2F0" mask="url(#mask-22)"></path>
                                 </g>
                                 <path d="M31.0853493,61.912768 C31.6190493,57.4005923 30.3079177,54.5650373 27.1519547,53.406103 C23.9959917,52.2471687 20.894627,53.484275 17.8478604,57.1174221 C22.1654287,56.5570521 25.0717899,56.4981887 26.566944,56.9408318 C28.0620981,57.383475 29.5682332,59.040787 31.0853493,61.912768 Z" id="路径-9" fill="#DDDDDD" transform="translate(24.524504, 57.449225) rotate(8.000000) translate(-24.524504, -57.449225) "></path>
                                 <path d="M17.7262171,57.6236373 C16.9028425,56.9163102 19.8855825,54.9883925 24.8289631,55.5152839 C29.7723438,56.0421754 31.9377016,61.5312857 30.7644848,62.3690624 C29.7726,63.0773526 26.542555,61.1216385 23.6327168,61.3835919 C20.7228787,61.6455454 18.0602819,63.076059 17.3766881,62.3685748 C16.6930942,61.6610906 20.2788686,59.7219963 23.6326471,59.4687903 C26.3734997,59.2618594 27.6562204,59.722265 27.9413502,59.7222754 C28.2264801,59.7222858 27.0098604,57.6239754 24.2310258,57.3089395 C21.1775174,56.9627638 18.1430516,57.9817225 17.7262171,57.6236373 Z" id="路径-8" fill="#000025" transform="translate(24.184467, 58.994173) rotate(8.000000) translate(-24.184467, -58.994173) "></path>
@@ -267,23 +267,23 @@
                                     <use fill="url(#linearGradient-30)" fill-rule="evenodd" xlink:href="#path-31"></use>
                                     <use fill="black" fill-opacity="1" filter="url(#filter-32)" xlink:href="#path-31"></use>
                                 </g>
-                                <path d="M7.54312151,18.8866801 C7.28396044,23.5981874 7.96988245,27.1425006 9.60088755,29.5196197 C9.60088755,33.6929918 21.686462,38.9767084 25.4457126,38.9767084 C26.151855,39.8264747 26.9969123,40.5630325 27.9808846,41.1863819 L27.1174768,43.4714203 C26.0029673,42.6306766 25.2593145,41.6978039 24.8865183,40.6728022 C19.3153645,39.5937339 9.23561494,36.5240147 7.7072834,29.9177148 C5.58945682,26.1402808 5.32275805,21.999317 6.9071871,17.4948233 L7.54312151,18.8866801 Z" id="路径-7" fill="#30B497" opacity="0.47312346"></path>
+                                <path d="M9.02940902,17.859246 C8.1979914,22.5040506 8.44685752,26.1055379 9.77600741,28.6637079 C9.26740129,32.8059723 20.6189686,39.5231659 24.3501984,39.9813033 C24.9475168,40.9107927 25.6965114,41.7448469 26.5971821,42.483466 L25.4617339,44.6462491 C24.4579927,43.6759476 23.8335715,42.6593999 23.5884703,41.596606 C18.1903484,39.8466281 8.55983647,35.5713776 7.84800232,28.8280633 C6.20631509,24.8206876 6.4462608,20.6780875 8.56783944,16.4002629 L9.02940902,17.859246 Z" id="路径-7" fill="#1DABCF" opacity="0.47312346" transform="translate(16.685465, 30.523256) rotate(-7.000000) translate(-16.685465, -30.523256) "></path>
                                 <path d="M7.3068637,10.4951537 C9.8968689,12.0962157 12.9362097,13.2783251 16.9835474,13.4305752 C21.030885,13.5828253 24.1566419,12.8632249 24.2151292,9.13422751 C24.2736164,5.40523008 19.8010469,4.67980391 16.4454844,4.1484295 C13.0899219,3.61705509 10.7255423,4.10600789 7.6786601,5.27053966 C9.62020558,6.7911961 9.10878462,10.0196069 7.3068637,10.4951537 Z" id="Fill-21" fill="url(#linearGradient-33)" transform="translate(15.761280, 8.691817) scale(-1, -1) rotate(87.000000) translate(-15.761280, -8.691817) "></path>
                                 <path d="M9.43694498,27.1939952 C9.09143634,25.4108073 9.34475772,24.4749223 9.3949051,23.3400653 C5.35019417,24.0604224 1.0506559,26.6445284 3.69020387,31.0386349 C6.48205544,34.7990149 15.3316114,32.1519945 14.863637,30.0183033 C14.5516541,28.5958425 12.7427568,27.6544065 9.43694498,27.1939952 Z" id="Fill-21备份-5" fill="url(#linearGradient-34)"></path>
                                 <path d="M8.48804239,22.6588503 C9.11005067,20.9523629 9.83834403,20.7440762 10.4656688,19.7971486 C6.62776159,18.3308844 0.97647388,18.540275 1.67160957,23.3020475 C2.1284663,27.9636121 14.863637,29.1219085 14.863637,26.3654086 C14.863637,24.527742 12.7384388,23.2922225 8.48804239,22.6588503 Z" id="Fill-21备份-6" fill="url(#linearGradient-35)"></path>
-                                <path d="M18.5935975,23.2018133 C18.5935975,23.2018133 11.7606017,23.7864401 12.6771397,17.2303443 C12.6771397,17.2303443 13.9546813,21.6077871 18.5935975,23.2018133 Z" id="Fill-15" fill="#32B89A" transform="translate(15.593069, 20.222775) scale(-1, 1) rotate(-109.000000) translate(-15.593069, -20.222775) "></path>
+                                <path d="M18.5935975,23.2018133 C18.5935975,23.2018133 11.7606017,23.7864401 12.6771397,17.2303443 C12.6771397,17.2303443 13.9546813,21.6077871 18.5935975,23.2018133 Z" id="Fill-15" fill="#18ADD0" transform="translate(15.593069, 20.222775) scale(-1, 1) rotate(-109.000000) translate(-15.593069, -20.222775) "></path>
                                 <path d="M8.18259556,16.8224195 C6.09483119,14.3132884 8.31878134,11.1856933 9.60088755,10.6261341 C4.98452458,9.26038626 0.311069915,10.3304251 0.87038646,16.7081479 C0.87038646,21.4062788 13.8744779,25.916797 14.863637,22.5673015 C15.8527962,19.2178061 9.52160636,16.6465209 8.18259556,16.8224195 Z" id="Fill-21备份-7" fill="url(#linearGradient-36)"></path>
                             </g>
-                            <g id="左翅膀备份" filter="url(#filter-37)" transform="translate(83.686047, 87.417840) scale(-1, 1) translate(-83.686047, -87.417840) translate(65.415075, 65.535823)">
+                            <g id="左翅膀备份" filter="url(#filter-37)" transform="translate(83.686047, 87.446443) scale(-1, 1) translate(-83.686047, -87.446443) translate(65.415075, 65.535823)">
                                 <g id="Clip-26" transform="translate(18.270972, 25.330160) scale(-1, 1) rotate(-17.000000) translate(-18.270972, -25.330160) ">
                                     <use fill="url(#linearGradient-30)" fill-rule="evenodd" xlink:href="#path-38"></use>
                                     <use fill="black" fill-opacity="1" filter="url(#filter-39)" xlink:href="#path-38"></use>
                                 </g>
-                                <path d="M7.54312151,19.1659986 C7.28396044,23.8775058 7.96988245,27.4218191 9.60088755,29.7989382 C9.60088755,33.9723103 21.686462,39.2560269 25.4457126,39.2560269 C26.151855,40.1057932 26.9969123,40.842351 27.9808846,41.4657004 L27.1174768,43.7507388 C26.0029673,42.9099951 25.2593145,41.9771224 24.8865183,40.9521207 C19.3153645,39.8730524 9.23561494,36.8033332 7.7072834,30.1970333 C5.58945682,26.4195993 5.32275805,22.2786355 6.9071871,17.7741418 L7.54312151,19.1659986 Z" id="路径-7" fill="#30B497" opacity="0.565788632"></path>
+                                <path d="M6.19993039,20.4149851 C6.51688935,25.1229573 7.62964173,28.5572589 9.53818752,30.7178898 C10.0467936,34.8601542 22.6862071,38.6316258 26.4174368,38.1734884 C27.2218762,38.9308635 28.1503984,39.5589446 29.2030035,40.0577315 L28.6245076,42.4309606 C27.4158446,41.7323081 26.5640462,40.8970174 26.0691125,39.9250884 C20.4079799,39.5330162 10.0292586,37.7145906 7.7072136,31.3437899 C5.14481957,27.8526104 4.37545219,23.7750151 5.39911146,19.1110039 L6.19993039,20.4149851 Z" id="路径-7" fill="#1DABCF" opacity="0.565788632" transform="translate(17.081900, 30.770982) rotate(7.000000) translate(-17.081900, -30.770982) "></path>
                                 <path d="M8.49620629,10.7749207 C11.0861299,12.3758693 14.1254069,13.5578433 18.1727246,13.7099086 C22.2200423,13.8619739 25.3458221,13.1422282 25.4044799,9.41321621 C25.4631378,5.68420417 20.9906158,4.95898038 17.6350883,4.42775785 C14.2795609,3.89653532 11.9151665,4.38559791 8.8682407,5.55027286 C10.8097103,7.0708453 10.2981432,10.2992899 8.49620629,10.7749207 Z" id="Fill-21" fill="url(#linearGradient-40)" transform="translate(16.950629, 8.971184) scale(-1, -1) rotate(97.000000) translate(-16.950629, -8.971184) "></path>
                                 <path d="M9.43694498,27.4733137 C9.09143634,25.6901258 9.34475772,24.7542408 9.3949051,23.6193838 C5.35019417,24.3397409 1.0506559,26.9238469 3.69020387,31.3179534 C6.48205544,35.0783334 15.3316114,32.4313129 14.863637,30.2976218 C14.5516541,28.875161 12.7427568,27.933725 9.43694498,27.4733137 Z" id="Fill-21备份-5" fill="url(#linearGradient-34)"></path>
                                 <path d="M8.48804239,22.9381688 C9.11005067,21.2316814 9.83834403,21.0233947 10.4656688,20.0764671 C6.62776159,18.6102029 0.97647388,18.8195935 1.67160957,23.5813659 C2.1284663,28.2429306 14.863637,29.4012269 14.863637,26.644727 C14.863637,24.8070604 12.7384388,23.571541 8.48804239,22.9381688 Z" id="Fill-21备份-6" fill="url(#linearGradient-35)"></path>
-                                <path d="M18.5935739,23.4810234 C18.5935739,23.4810234 11.7604644,24.0658017 12.6771694,17.5097804 C12.6771694,17.5097804 13.9546271,21.8871292 18.5935739,23.4810234 Z" id="Fill-15" fill="#32B89A" transform="translate(15.593058, 20.502103) scale(-1, 1) rotate(-103.000000) translate(-15.593058, -20.502103) "></path>
+                                <path d="M18.5935739,23.4810234 C18.5935739,23.4810234 11.7604644,24.0658017 12.6771694,17.5097804 C12.6771694,17.5097804 13.9546271,21.8871292 18.5935739,23.4810234 Z" id="Fill-15" fill="#18ADD0" transform="translate(15.593058, 20.502103) scale(-1, 1) rotate(-103.000000) translate(-15.593058, -20.502103) "></path>
                                 <path d="M8.18259556,17.101738 C6.09483119,14.5926069 8.31878134,11.4650117 9.60088755,10.9054526 C4.98452458,9.53970475 0.311069915,10.6097436 0.87038646,16.9874664 C0.87038646,21.6855973 13.8744779,26.1961155 14.863637,22.84662 C15.8527962,19.4971246 9.52160636,16.9258394 8.18259556,17.101738 Z" id="Fill-21备份-7" fill="url(#linearGradient-36)"></path>
                             </g>
                         </g>

+ 1 - 1
src/page-instrument/evaluat-model/evaluat-result/index.module.less

@@ -123,7 +123,7 @@
 
         .rightBadge {
             position: relative;
-            top: -8px;
+            top: -5px;
             right: -8px;
             margin-left: auto;
             max-width: 146px;

+ 1 - 0
src/page-instrument/evaluat-model/evaluat-result/index.tsx

@@ -65,6 +65,7 @@ export default defineComponent({
 			if (!evaluatingData.isErrorState) {
 				handleAddRecord();
 			}
+			// console.log('评测等级',evaluatingData.resultData.leve)
 		});
 
 		watch(() => evaluatingData.resulstMode, (val) => {

+ 10 - 7
src/page-instrument/view-figner/index.tsx

@@ -165,7 +165,7 @@ export default defineComponent({
     };
     const getFingeringData = async () => {
       const subject: any = data.subject + (data.viewIndex === 0 ? "" : data.viewIndex);
-      console.log("🚀 ~ subject:", subject);
+      console.log("🚀 ~ subject:模式", subject, data.viewIndex, data.fingeringMode);
       fingerData.subject = await getFingeringConfig(subject);
     };
     const createAudio = (url: string) => {
@@ -223,7 +223,7 @@ export default defineComponent({
       if (playAction.showAnswerLoading) return;
       data.loadingImg = true;
       if (data.fingeringMode === "scaleMode") {
-        if (["pan-flute", "ocarina"].includes(data.subject)) {
+        if (["pan-flute", "ocarina", "whistling"].includes(data.subject)) {
           data.viewIndex = 1;
         } else {
           data.viewIndex = 0;
@@ -231,6 +231,7 @@ export default defineComponent({
         const o: any = {
           "pan-flute": 2,
           ocarina: 2,
+          whistling: 2,
           piccolo: 2,
           "hulusi-flute": 2,
           "baroque-recorder": 2,
@@ -259,11 +260,11 @@ export default defineComponent({
       if (data.fingeringMode === "fingeringMode") {
         if (data.subject === "pan-flute") {
           data.viewIndex = 3;
-        } else if (["pan-flute", "ocarina", "melodica"].includes(data.subject)) {
+        } else if (["pan-flute", "ocarina", "melodica", "whistling"].includes(data.subject)) {
           data.viewIndex = 1;
         }
       } else {
-        if (["pan-flute", "ocarina"].includes(data.subject)) {
+        if (["pan-flute", "ocarina", "whistling"].includes(data.subject)) {
           data.viewIndex = 1;
         }
       }
@@ -271,6 +272,7 @@ export default defineComponent({
       const o: any = {
         "pan-flute": 2,
         ocarina: 2,
+        whistling: 2,
         piccolo: 2,
         "hulusi-flute": 2,
         "baroque-recorder": 2,
@@ -348,6 +350,7 @@ export default defineComponent({
       if (showNote) {
         data.realKey = item.realKey;
       }
+      console.log('key:', item.realKey, data.soundFonts)
       data.noteAudio = data.soundFonts[item.realKey];
       if (data.noteAudio) {
         data.noteAudio.play();
@@ -797,7 +800,7 @@ export default defineComponent({
             paddingTop: "1.3rem",
             paddingBottom: "0",
           };
-        } else if (data.subject === "ocarina") {
+        } else if (data.subject === "ocarina" || data.subject === "whistling") {
           return {
             paddingTop: "1.3rem",
             paddingBottom: "0",
@@ -829,7 +832,7 @@ export default defineComponent({
             paddingTop: "1.3rem",
             paddingBottom: "0",
           };
-        } else if (data.subject === "ocarina") {
+        } else if (data.subject === "ocarina" || data.subject === "whistling") {
           return {
             paddingTop: "1.3rem",
             paddingBottom: "0",
@@ -1217,7 +1220,7 @@ export default defineComponent({
                   onClick={() => {
                     data.viewIndex++;
                     if (data.viewIndex > data.viewTotal) {
-                      if (["pan-flute", "ocarina"].includes(data.subject)) {
+                      if (["pan-flute", "ocarina", "whistling"].includes(data.subject)) {
                         data.viewIndex = 1;
                       } else {
                         data.viewIndex = 0;

+ 2305 - 0
src/view/figner-preview/index.ts

@@ -4682,6 +4682,2311 @@ export const FIGNER_INSTRUMENT_DATA: { [_: string]: IFIGNER_INSTRUMENT_DATA } =
 			},
 		],
 	},
+	whistling: {
+		tips: [
+			{
+				key: 0,
+				name: "嘴型",
+				octave: 0,
+				step: 0,
+				realKey: 0,
+				realName:
+					"以嘴唇轻轻含住吹口,不可含太深,以免盖住出气孔。\n吹气方式宜以丹田之力(腹腔)稳定送出,一可避免太多口水,二可产生振音效果,让笛韵更为悦耳。",
+			},
+			{
+				key: 0,
+				name: "长音",
+				octave: 0,
+				step: 0,
+				realKey: 0,
+				realName:
+					"长音的吹奏,要求音量平稳,不可忽大忽小,音与音之间,要流畅的连接,不可断断续续。\n短音与重音需运用“踢舌”的技巧,将舌尖抵住上腭牙齿与牙龈的相接处,于吹气时瞬间将舌头缩回,这样的声音干净有力,听起来有活泼欢乐的感觉。",
+			},
+			{
+				key: 0,
+				name: "滑音",
+				octave: 0,
+				step: 0,
+				realKey: 0,
+				realName:
+					"开合气孔的方式,一般是直接提高手指,音阶瞬间转换,另一种方式是将手指向陶笛外侧慢慢滑开,如此可以产生优美的滑音。",
+			},
+			{
+				key: 0,
+				name: "圆滑音",
+				octave: 0,
+				step: 0,
+				realKey: 0,
+				realName:
+					"在两个以上不同高的音符之间加上“”记号,此记号成为圆滑线,它的吹法是用一口气连接的吹完整串音符,中间气不间断,注意第一个音仍要踢舌!",
+			},
+			{
+				key: 0,
+				name: "气震音",
+				octave: 0,
+				step: 0,
+				realKey: 0,
+				realName:
+					"气震音是指在吹奏中用气流的变化来让发出的音发生波动,产生颤抖的感觉,所以又称气颤音,靠腹部控制,又叫腹震音。",
+			},
+			{
+				key: 0,
+				name: "呼吸方法",
+				octave: 0,
+				step: 0,
+				realKey: 0,
+				realName:
+					"使用胸腹式呼吸法是一种比较科学的呼吸方法,大致分为两个步骤,吸气速度要快,胸腹要做到联合动作,让胸腹快速吸到更多的气,也可以用口协助吸气。",
+			},
+		],
+		tones: [
+			{
+				key: 1,
+				name: "C",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "",
+			},
+			{
+				key: 1,
+				name: "C",
+				octave: 5,
+				step: 0,
+				mark: "rise",
+				realKey: 0,
+				realName: "Db5",
+			},
+			{
+				key: 2,
+				name: "D",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "D5",
+			},
+			{
+				key: 2,
+				name: "D",
+				octave: 5,
+				step: 0,
+				mark: "rise",
+				realKey: 0,
+				realName: "Eb5",
+			},
+			{
+				key: 3,
+				name: "E",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "E5",
+			},
+			{
+				key: 4,
+				name: "F",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "F5",
+			},
+			{
+				key: 4,
+				name: "F",
+				octave: 5,
+				step: 0,
+				mark: "rise",
+				realKey: 0,
+				realName: "Gb5",
+			},
+			{
+				key: 5,
+				name: "G",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "G5",
+			},
+			{
+				key: 5,
+				name: "G",
+				octave: 5,
+				step: 0,
+				mark: "rise",
+				realKey: 0,
+				realName: "Ab5",
+			},
+			{
+				key: 6,
+				name: "A",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "A5",
+			},
+			{
+				key: 6,
+				name: "A",
+				octave: 5,
+				step: 0,
+				mark: "rise",
+				realKey: 0,
+				realName: "Bb5",
+			},
+			{
+				key: 7,
+				name: "B",
+				octave: 5,
+				step: 0,
+				realKey: 0,
+				realName: "B5",
+			},
+		],
+		list: [
+			{
+				key: 6,
+				name: "A",
+				octave: 4,
+				step: -1,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 7,
+				name: "B",
+				octave: 4,
+				step: -1,
+				realKey: 58,
+				mark: "fall",
+				realName: "Bb4",
+			},
+			{
+				key: 7,
+				name: "B",
+				octave: 4,
+				step: -1,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 1,
+				name: "C",
+				octave: 5,
+				step: 0,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 2,
+				name: "D",
+				octave: 5,
+				step: 0,
+				realKey: 61,
+				mark: "fall",
+				realName: "Db5",
+			},
+			{
+				key: 2,
+				name: "D",
+				octave: 5,
+				step: 0,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 3,
+				name: "E",
+				octave: 5,
+				step: 0,
+				realKey: 63,
+				mark: "fall",
+				realName: "Eb5",
+			},
+			{
+				key: 3,
+				name: "E",
+				octave: 5,
+				step: 0,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 4,
+				name: "F",
+				octave: 5,
+				step: 0,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 5,
+				name: "G",
+				octave: 5,
+				step: 0,
+				realKey: 66,
+				mark: "fall",
+				realName: "Gb5",
+			},
+			{
+				key: 5,
+				name: "G",
+				octave: 5,
+				step: 0,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 6,
+				name: "A",
+				octave: 5,
+				step: 0,
+				realKey: 68,
+				mark: "fall",
+				realName: "Ab5",
+			},
+			{
+				key: 6,
+				name: "A",
+				octave: 5,
+				step: 0,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 7,
+				name: "B",
+				octave: 5,
+				step: 0,
+				realKey: 70,
+				mark: "fall",
+				realName: "Bb5",
+			},
+			{
+				key: 7,
+				name: "B",
+				octave: 5,
+				step: 0,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 1,
+				name: "C",
+				octave: 6,
+				step: 1,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 2,
+				name: "D",
+				octave: 6,
+				step: 1,
+				realKey: 73,
+				mark: "fall",
+				realName: "Db6",
+			},
+			{
+				key: 2,
+				name: "D",
+				octave: 6,
+				step: 1,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 3,
+				name: "E",
+				octave: 6,
+				step: 1,
+				realKey: 75,
+				mark: "fall",
+				realName: "Eb6",
+			},
+			{
+				key: 3,
+				name: "E",
+				octave: 6,
+				step: 1,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 4,
+				name: "F",
+				octave: 6,
+				step: 1,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listDb5: [
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 2,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 2,
+				step: 1,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 3,
+				step: 1,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listD5: [
+			{
+				key: 5,
+				step: -1,
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 2,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 2,
+				step: 1,
+				mark: "rise",
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listEb5: [
+			{
+				key: 4,
+				step: -1,
+				mark: "rise",
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 5,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 2,
+				step: 1,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listE5: [
+			{
+				key: 4,
+				step: -1,
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 4,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 5,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listF5: [
+			{
+				key: 3,
+				step: -1,
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 4,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 4,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 5,
+				step: -1,
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listGb5: [
+			{
+				key: 2,
+				step: -1,
+				mark: "rise",
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 3,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 4,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 4,
+				step: -1,
+				mark: "rise",
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 5,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listG5: [
+			{
+				key: 2,
+				step: -1,
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 2,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 3,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 4,
+				step: -1,
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 4,
+				step: -1,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 5,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listAb5: [
+			{
+				key: 1,
+				step: -1,
+				mark: "rise",
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 2,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 2,
+				step: -1,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 3,
+				step: -1,
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 4,
+				step: -1,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 4,
+				step: -1,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 5,
+				step: -1,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 5,
+				step: -1,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 6,
+				step: -1,
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listA5: [
+			{
+				key: 1,
+				step: 0,
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 2,
+				step: 1,
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 2,
+				step: 1,
+				mark: "rise",
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 3,
+				step: 1,
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 4,
+				step: 1,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 4,
+				step: 1,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 5,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 5,
+				step: 1,
+				mark: "rise",
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listBb5: [
+			{
+				key: 7,
+				step: -1,
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 2,
+				step: 1,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 2,
+				step: 1,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 3,
+				step: 1,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 4,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 4,
+				step: 1,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 5,
+				step: 1,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+		listB5: [
+			{
+				key: 6,
+				step: -1,
+				mark: "rise",
+				name: "A",
+				octave: 4,
+				realKey: 57,
+				realName: "A4",
+			},
+			{
+				key: 7,
+				step: -1,
+				name: "B",
+				octave: 4,
+				realKey: 58,
+				realName: "Bb4",
+			},
+			{
+				key: 1,
+				step: 0,
+				name: "B",
+				octave: 4,
+				realKey: 59,
+				realName: "B4",
+			},
+			{
+				key: 1,
+				step: 0,
+				mark: "rise",
+				name: "C",
+				octave: 5,
+				realKey: 60,
+				realName: "C5",
+			},
+			{
+				key: 2,
+				step: 0,
+				name: "D",
+				octave: 5,
+				realKey: 61,
+				realName: "Db5",
+			},
+			{
+				key: 2,
+				step: 0,
+				mark: "rise",
+				name: "D",
+				octave: 5,
+				realKey: 62,
+				realName: "D5",
+			},
+			{
+				key: 3,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 63,
+				realName: "Eb5",
+			},
+			{
+				key: 4,
+				step: 0,
+				name: "E",
+				octave: 5,
+				realKey: 64,
+				realName: "E5",
+			},
+			{
+				key: 4,
+				step: 0,
+				mark: "rise",
+				name: "F",
+				octave: 5,
+				realKey: 65,
+				realName: "F5",
+			},
+			{
+				key: 5,
+				step: 0,
+				name: "G",
+				octave: 5,
+				realKey: 66,
+				realName: "Gb5",
+			},
+			{
+				key: 5,
+				step: 0,
+				mark: "rise",
+				name: "G",
+				octave: 5,
+				realKey: 67,
+				realName: "G5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 68,
+				realName: "Ab5",
+			},
+			{
+				key: 6,
+				step: 0,
+				name: "A",
+				octave: 5,
+				realKey: 69,
+				realName: "A5",
+			},
+			{
+				key: 6,
+				step: 0,
+				mark: "rise",
+				name: "B",
+				octave: 5,
+				realKey: 70,
+				realName: "Bb5",
+			},
+			{
+				key: 7,
+				step: 0,
+				name: "B",
+				octave: 5,
+				realKey: 71,
+				realName: "B5",
+			},
+			{
+				key: 1,
+				step: 1,
+				name: "C",
+				octave: 6,
+				realKey: 72,
+				realName: "C6",
+			},
+			{
+				key: 1,
+				step: 1,
+				mark: "rise",
+				name: "D",
+				octave: 6,
+				realKey: 73,
+				realName: "Db6",
+			},
+			{
+				key: 2,
+				step: 1,
+				name: "D",
+				octave: 6,
+				realKey: 74,
+				realName: "D6",
+			},
+			{
+				key: 2,
+				step: 1,
+				mark: "rise",
+				name: "E",
+				octave: 6,
+				realKey: 75,
+				realName: "Eb6",
+			},
+			{
+				key: 3,
+				step: 1,
+				name: "E",
+				octave: 6,
+				realKey: 76,
+				realName: "E6",
+			},
+			{
+				key: 4,
+				step: 1,
+				name: "F",
+				octave: 6,
+				realKey: 77,
+				realName: "F6",
+			},
+		],
+	},	
 	melodica: {
 		tips: [
 			{

+ 49 - 2
src/view/fingering/fingering-config.ts

@@ -57,7 +57,10 @@ export type IVocals =
   | "melodica1"
   | "baroque-recorder"
   | "baroque-recorder1"
-  | "baroque-recorder2";
+  | "baroque-recorder2"
+  | "whistling"
+  | "whistling1"
+  | "whistling2";
 
 /** 映射声部ID */
 export const mappingVoicePart = (id: number | string, soruce: "GYM" | "COLEXIU" | "ORCHESTRA" | "INSTRUMENT" | "ENSEMBLE"): number => {
@@ -138,7 +141,8 @@ export const mappingVoicePart = (id: number | string, soruce: "GYM" | "COLEXIU"
       tenorrecorder: "piccolo",
       woodwind: "hulusi-flute",
       panpipes: "pan-flute",
-      ocarina: "ocarina",
+      ocarina: "ocarina", // 陶笛
+      whistling: "whistling", // 高音陶笛
       nai: "melodica",
       15: "baroque-recorder",
       16: "baroque-recorder",
@@ -237,6 +241,7 @@ export const matchVoicePart = (id: number | string, type: "SINGLE" | "CONCERT"):
       37: "piccolo",
       36: "melodica",
       38: "baroque-recorder",
+      39: "whistling",
       1: 2,
       5: 5,
       3: 4,
@@ -312,6 +317,7 @@ export const matchVoicePart = (id: number | string, type: "SINGLE" | "CONCERT"):
       woodwind: "hulusi-flute",
       panpipes: "pan-flute",
       ocarina: "ocarina",
+      whistling: "whistling",
       nai: "melodica",
       BaroqueRecorder: "baroque-recorder",
       "Drum Set": 24,
@@ -458,6 +464,17 @@ export const subjectFingering = (subjectId: number | string): IFingering => {
         hasTizhi: false,
         id: 34,
       };
+    case "whistling": // 高音陶笛
+      return {
+        name: "whistling",
+        direction: "vertical",
+        width: "3rem",
+        disabledFinger: true,
+        orientation: 0,
+        code: "陶笛",
+        hasTizhi: false,
+        id: 39,
+      };      
     case "melodica": // 口风琴
       return {
         name: "melodica",
@@ -658,6 +675,36 @@ export const getFingeringConfig = async (type: IVocals | undefined): Promise<ITy
           marginTop: "auto",
         },
       };
+    case "whistling":
+      const whistling = await import(`./fingering-img/whistling/index.json`);
+      return {
+        json: whistling.default,
+        relationship: relationships.ocarina,
+        width: "180px",
+        styles: {
+          marginTop: "auto",
+        },
+      };
+    case "whistling1":
+      const whistling1 = await import(`./fingering-img/whistling1/index.json`);
+      return {
+        json: whistling1.default,
+        relationship: relationships.ocarina,
+        width: "180px",
+        styles: {
+          marginTop: "auto",
+        },
+      };
+    case "whistling2":
+      const whistling2 = await import(`./fingering-img/whistling2/index.json`);
+      return {
+        json: whistling2.default,
+        relationship: relationships.ocarina,
+        width: "180px",
+        styles: {
+          marginTop: "auto",
+        },
+      };      
     case "melodica":
       const melodica = await import(`./fingering-img/melodica/index.json`);
       return {

文件差异内容过多而无法显示
+ 0 - 0
src/view/fingering/fingering-img/ocarina/index.json


文件差异内容过多而无法显示
+ 0 - 0
src/view/fingering/fingering-img/ocarina1/index.json


文件差异内容过多而无法显示
+ 0 - 0
src/view/fingering/fingering-img/ocarina2/index.json


二进制
src/view/fingering/fingering-img/whistling/1.png


二进制
src/view/fingering/fingering-img/whistling/10.png


二进制
src/view/fingering/fingering-img/whistling/11.png


二进制
src/view/fingering/fingering-img/whistling/12.png


二进制
src/view/fingering/fingering-img/whistling/2.png


二进制
src/view/fingering/fingering-img/whistling/3.png


二进制
src/view/fingering/fingering-img/whistling/4.png


二进制
src/view/fingering/fingering-img/whistling/5.png


二进制
src/view/fingering/fingering-img/whistling/6.png


二进制
src/view/fingering/fingering-img/whistling/7.png


二进制
src/view/fingering/fingering-img/whistling/8.png


二进制
src/view/fingering/fingering-img/whistling/9.png


二进制
src/view/fingering/fingering-img/whistling/full.png


文件差异内容过多而无法显示
+ 1 - 0
src/view/fingering/fingering-img/whistling/index.json


文件差异内容过多而无法显示
+ 1 - 0
src/view/fingering/fingering-img/whistling1/index.json


文件差异内容过多而无法显示
+ 1 - 0
src/view/fingering/fingering-img/whistling2/index.json


+ 2 - 2
vite.config.ts

@@ -76,9 +76,9 @@ export default defineConfig({
 				// target: "https://kt.colexiu.com",
 				// target: "https://test.lexiaoya.cn",
 				// target: "https://dev.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://test.kt.colexiu.com",
+				// target: "https://test.kt.colexiu.com",
 				// target: "https://mec.colexiu.com",
 				changeOrigin: true,
 				rewrite: (path) => path.replace(/^\/instrument/, ""),

部分文件因为文件数量过多而无法显示