瀏覽代碼

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

TIANYONG 1 年之前
父節點
當前提交
ee47dc4391
共有 80 個文件被更改,包括 1471 次插入2190 次删除
  1. 3 3
      src/constant/instruments.ts
  2. 26 0
      src/helpers/communication.ts
  3. 17 1
      src/helpers/formateMusic.ts
  4. 1 1
      src/helpers/metronome.ts
  5. 18 38
      src/page-instrument/evaluat-model/earphone/index.module.less
  6. 13 8
      src/page-instrument/evaluat-model/earphone/index.tsx
  7. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/bczp.png
  8. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/bczpJz.png
  9. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/bg1.png
  10. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/bg2.png
  11. 0 16
      src/page-instrument/evaluat-model/evaluat-result/img/cadence.svg
  12. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/ckzp.png
  13. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/close.png
  14. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/icon-badge.png
  15. 0 43
      src/page-instrument/evaluat-model/evaluat-result/img/icon-badge.svg
  16. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression0.png
  17. 0 380
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression0.svg
  18. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression1.png
  19. 0 324
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression1.svg
  20. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression2.png
  21. 0 328
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression2.svg
  22. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression3.png
  23. 0 284
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression3.svg
  24. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression4.png
  25. 0 234
      src/page-instrument/evaluat-model/evaluat-result/img/icon_expression4.svg
  26. 0 8
      src/page-instrument/evaluat-model/evaluat-result/img/integrity.svg
  27. 0 8
      src/page-instrument/evaluat-model/evaluat-result/img/intonation.svg
  28. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/jz.png
  29. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/wzx.png
  30. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/yz.png
  31. 二進制
      src/page-instrument/evaluat-model/evaluat-result/img/zlyc.png
  32. 0 1
      src/page-instrument/evaluat-model/evaluat-result/index.json
  33. 105 74
      src/page-instrument/evaluat-model/evaluat-result/index.module.less
  34. 71 51
      src/page-instrument/evaluat-model/evaluat-result/index.tsx
  35. 二進制
      src/page-instrument/evaluat-model/icons/confirm.png
  36. 二進制
      src/page-instrument/evaluat-model/icons/lanya_erji.png
  37. 二進制
      src/page-instrument/evaluat-model/icons/no_erji.png
  38. 二進制
      src/page-instrument/evaluat-model/icons/youxian_erji.png
  39. 80 65
      src/page-instrument/evaluat-model/index.tsx
  40. 18 11
      src/page-instrument/header-top/index.tsx
  41. 5 1
      src/page-instrument/header-top/settting/index.tsx
  42. 25 25
      src/page-instrument/header-top/title/index.module.less
  43. 1 1
      src/page-instrument/header-top/title/index.tsx
  44. 4 0
      src/page-instrument/router.ts
  45. 39 0
      src/page-instrument/simple-detail/index.module.less
  46. 138 0
      src/page-instrument/simple-detail/index.tsx
  47. 二進制
      src/page-instrument/view-detail/images/bg2.png
  48. 2 2
      src/page-instrument/view-detail/smoothAnimation/index.ts
  49. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/audioBg.png
  50. 0 0
      src/page-instrument/view-evaluat-report/component/share-top/image/audioBga.json
  51. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/back_icon.png
  52. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/closeImg.png
  53. 39 6
      src/page-instrument/view-evaluat-report/component/share-top/image/icon-huifang.svg
  54. 35 2
      src/page-instrument/view-evaluat-report/component/share-top/image/icon-shiyi.svg
  55. 0 0
      src/page-instrument/view-evaluat-report/component/share-top/image/leftCloud.json
  56. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/midPlay.png
  57. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/pause.png
  58. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/play.png
  59. 0 0
      src/page-instrument/view-evaluat-report/component/share-top/image/rightCloud.json
  60. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/shiyi-top.png
  61. 二進制
      src/page-instrument/view-evaluat-report/component/share-top/image/videobg.png
  62. 176 67
      src/page-instrument/view-evaluat-report/component/share-top/index.module.less
  63. 213 74
      src/page-instrument/view-evaluat-report/component/share-top/index.tsx
  64. 46 15
      src/page-instrument/view-evaluat-report/index.module.less
  65. 12 2
      src/page-instrument/view-evaluat-report/index.tsx
  66. 13 3
      src/state.ts
  67. 16 36
      src/view/abnormal-pop/icon_btn.svg
  68. 7 9
      src/view/abnormal-pop/icon_close.svg
  69. 105 9
      src/view/abnormal-pop/icon_success.svg
  70. 44 23
      src/view/abnormal-pop/index.module.less
  71. 12 7
      src/view/abnormal-pop/index.tsx
  72. 12 4
      src/view/evaluating/index.tsx
  73. 62 7
      src/view/follow-practice/index.tsx
  74. 3 2
      src/view/music-score/index.module.less
  75. 1 1
      src/view/music-score/index.tsx
  76. 二進制
      src/view/selection/imgs/down_icon.png
  77. 二進制
      src/view/selection/imgs/up_icon.png
  78. 90 11
      src/view/selection/index.module.less
  79. 17 3
      src/view/selection/index.tsx
  80. 2 2
      vite.config.ts

+ 3 - 3
src/constant/instruments.ts

@@ -60,7 +60,6 @@ const instruments: any = {
 	Oboe: "双簧管",
 	"English Horn": "英国管",
 	Bassoon: "巴松",
-	Clarinet: "单簧管",
 	"Soprano Saxophone": "高音萨克斯管",
 	"Alto Saxophone": "中音萨克斯管",
 	"Tenor Saxophone": "次中音萨克斯管",
@@ -157,8 +156,6 @@ const instruments: any = {
 	Melodica: "口风琴",
 	Nai: "口风琴",
 	"Snare Drum": "小军鼓",
-	Cymbal: "镲",
-	Cymbals: "镲",
 	"Horn in F": "圆号",
 	Triangle: "三角铁",
 	Vibrato: "颤音琴",
@@ -169,6 +166,7 @@ const instruments: any = {
 	Bells: "铃铛",
 	"Alto Clarinet": "中音单簧管",
 	"Bass Clarinet": "低音单簧管",
+	Clarinet: "单簧管",
 	Cornet: "短号",
 	Euphonium: "上低音号",
 	"crash cymbals": "对镲",
@@ -198,6 +196,8 @@ const instruments: any = {
 	"Drums set": "架子鼓",
 	"High Bongo": "邦戈",
 	Timbales: "天巴鼓",
+	Cymbal: "镲",
+	Cymbals: "镲",
 };
 /** 获取分轨名称 */
 export const getInstrumentName = (name = '') => {

+ 26 - 0
src/helpers/communication.ts

@@ -478,4 +478,30 @@ export const api_midiMicDelay = (content: any) => {
 /** 监听老师端,上课页面,功能按钮方向 */
 export const addImagePos = (callback: any) => {
 	listenerMessage("imagePos", callback);
+};
+
+/** 开始延迟检测 */
+export const api_startDelayCheck = (content: any) => {
+	promisefiyPostMessage({
+		api: "startDelayCheck",
+		content,
+	});
+};
+
+/** 关闭延迟检测 */
+export const api_closeDelayCheck = (content: any) => {
+	promisefiyPostMessage({
+		api: "closeDelayCheck",
+		content,
+	});
+};
+
+/** 监听APP取消延迟检测 */
+export const api_cancelDelayCheck = (callback: any) => {
+	listenerMessage("cancelDelayCheck", callback);
+};
+
+/** 监听延迟检测成功的回调 */
+export const api_finishDelayCheck = (callback: any) => {
+	listenerMessage("finishDelayCheck", callback);
 };

+ 17 - 1
src/helpers/formateMusic.ts

@@ -791,7 +791,22 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 	let repeatIdx = 0; // 循环的次数
 	while (!iterator.EndReached) {
 		// console.log({ ...iterator });
-		const voiceEntries = iterator.CurrentVoiceEntries?.[0] ? [iterator.CurrentVoiceEntries?.[0]] : [];
+		/** 多声轨合并显示,当前音符的时值取所有声轨中的最小值 */
+		let minIndex = 0, elRealValue = 0
+		for (let index = 0; index < iterator.currentVoiceEntries.length; index++) {
+			const element = iterator.currentVoiceEntries[index];
+			if (element.isGrace) {
+				if (minIndex == index && minIndex == 0) {
+				minIndex = iterator.currentVoiceEntries.length > 1 ? 1 : 0
+				}
+				continue
+			}
+			if (element.notes[0].length.realValue < elRealValue) {
+				minIndex = index
+			}
+			elRealValue = element.notes[0].length.realValue
+		}
+		const voiceEntries = iterator.currentVoiceEntries?.[minIndex] ? [iterator.currentVoiceEntries?.[minIndex]] : [];
 
 		let currentVoiceEntries: any[] = [];
 		// 多分轨,当前小节最大音符数量
@@ -817,6 +832,7 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 				notes.push(...n.Notes);
 				return notes;
 			}, [] as any);
+			voiceNotes = voiceNotes.filter((note: any) => !note.IsGraceNote)
 			voiceNotes = voiceNotes.sort((a: any, b: any) => a?.length?.realValue - b?.length?.realValue);
 			currentTime = voiceNotes?.[0]?.length?.realValue || 0;
 

+ 1 - 1
src/helpers/metronome.ts

@@ -237,7 +237,7 @@ class Metronome {
 		} else {
 			this.source.muted = false
 		}
-		console.log('音量',this.source,this.source.volume)
+		// console.log('音量',this.source,this.source.volume)
 		this.source.play();
 		metronomeData.followAudioIndex += 1;
 		metronomeData.followAudioIndex = metronomeData.followAudioIndex > metronomeData.totalNumerator ? 1 : metronomeData.followAudioIndex;

+ 18 - 38
src/page-instrument/evaluat-model/earphone/index.module.less

@@ -1,40 +1,20 @@
-.fraction {
-    color: #fff;
-    border-radius: 18px;
-    width: 244px;
-    overflow: hidden;
-}
-.content{
+.earphoneBox {
     position: relative;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    width: 100%;
-    background-color: #fff;
-    top: -2px;
-}
-.title {
-    color: #1A1A1A;
-    font-size: 17px;
-    padding: 16px 0 10px 0;
-    font-weight: bold;
-}
-
-.erji {
-    position: relative;
-    width: 100%;
-    display: block;
-    z-index: 10;
-}
-
-.tip {
-    font-size: 13px;
-    color: #808080;
-}
-
-.btn {
-    display: block;
-    width: 117px;
-    height: 36px;
-    margin: 18px 0 17px 0;
+    width: 100vw;
+    height: 100vh;
+    .earphoneBg {
+        position: absolute;
+        left: 50%;
+        top: 0;
+        height: 100%;
+        transform: translateX(-50%);
+    }
+    .earphoneBtn {
+        position: absolute;
+        left: 50%;
+        bottom: 75px;
+        width: 133px;
+        height: 39px;
+        transform: translateX(-43%);
+    }
 }

+ 13 - 8
src/page-instrument/evaluat-model/earphone/index.tsx

@@ -1,19 +1,24 @@
 import { defineComponent } from "vue";
 import styles from "./index.module.less";
-import icons from "../icons/index.json";
+import noEarphone from "../icons/no_erji.png";
+import youxianEarphone from "../icons/youxian_erji.png";
+import lanyaEarphone from "../icons/lanya_erji.png";
+import earphoneBtn from "../icons/confirm.png"
 
 export default defineComponent({
 	name: "earphone",
 	emits: ["close"],
+	props: {
+		earphoneType: {
+			type: String,
+			default: "",
+		},
+	},	
 	setup(props, { emit }) {
 		return () => (
-			<div class={styles.fraction}>
-				<img class={styles.erji} src={icons.erji} />
-				<div class={styles.content}>
-					<div class={styles.title}>请佩戴有线耳机</div>
-					<div class={styles.tip}>佩戴有线耳机能保证评测准确率哦!</div>
-					<img src={icons.erjibtn} class={styles.btn} onClick={() => emit("close")} />
-				</div>
+			<div class={styles.earphoneBox}>
+				<img class={styles.earphoneBg} src={props.earphoneType === "有线耳机" ? youxianEarphone : props.earphoneType === "蓝牙耳机" ? lanyaEarphone : noEarphone} />
+				<img class={styles.earphoneBtn} src={earphoneBtn} onClick={() => emit("close")} />
 			</div>
 		);
 	},

二進制
src/page-instrument/evaluat-model/evaluat-result/img/bczp.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/bczpJz.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/bg1.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/bg2.png


+ 0 - 16
src/page-instrument/evaluat-model/evaluat-result/img/cadence.svg

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="23px" height="21px" viewBox="0 0 23 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>编组备份 10</title>
-    <g id="修改" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="评测" transform="translate(-373.000000, -163.000000)">
-            <g id="编组-10" transform="translate(211.000000, 63.000000)">
-                <g id="编组-4" transform="translate(18.000000, 34.411322)">
-                    <g id="编组-5" transform="translate(144.200000, 65.588678)">
-                        <path d="M16.0007214,10.5467681 L15.4185357,10.5467681 L14.7313532,11.6196168 C14.6473534,11.7509497 14.5002017,11.8281126 14.3444036,11.8225241 C14.1886055,11.8169356 14.0473606,11.729428 13.9729864,11.5924143 L13.1708921,10.115849 L11.9394042,13.1368588 C11.7705957,13.5509988 11.1634955,13.479306 11.0956162,13.0372008 L10.396485,8.46539068 L9.78684248,11.6864792 C9.70599748,12.1143475 9.11974411,12.1781592 8.94864762,11.7780018 L8.15367179,9.91805838 L7.75453138,10.3904169 C7.67088986,10.4895664 7.54784275,10.5467681 7.41793145,10.5467681 L6.44474069,10.5467681 C6.24527423,10.8922541 5.8386268,11.060693 5.45328718,10.9574416 C5.06794756,10.8541901 4.8,10.5049941 4.8,10.1060611 C4.8,9.70712821 5.06794756,9.35793214 5.45328718,9.2546807 C5.8386268,9.15142927 6.24527423,9.31986815 6.44474069,9.6653542 L7.21353088,9.6653542 L7.94139011,8.80351599 C8.04003843,8.68670104 8.19219714,8.62938263 8.34339939,8.65207851 C8.49460164,8.67477439 8.62322675,8.77423924 8.68323196,8.91486854 L9.18991147,10.1000867 L10.0092933,5.77004889 C10.1013244,5.28319929 10.802998,5.2954023 10.8777415,5.78530266 L11.7255971,11.3264901 L12.7059063,8.92147851 C12.846241,8.57725168 13.3236841,8.55081181 13.5011363,8.87749679 L14.3914483,10.5162605 L14.8060967,9.86848361 C14.8870846,9.74190553 15.0270019,9.66533439 15.1772718,9.6653542 L15.8886061,9.6653542 C16.0443893,9.29876579 16.4266137,9.08215459 16.8211538,9.1368681 C17.2156939,9.1915816 17.5245501,9.50402956 17.5746985,9.89917587 C17.6248469,10.2943222 17.403831,10.6740167 17.035466,10.8255511 C16.6671011,10.9770856 16.2428849,10.8628205 16.0004671,10.5467681 L16.0007214,10.5467681 Z" id="路径" fill="#2DC7AA" fill-rule="nonzero"></path>
-                        <rect id="矩形" stroke="#1CACF1" x="3.3" y="3.91132219" width="15" height="11" rx="2"></rect>
-                    </g>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>

二進制
src/page-instrument/evaluat-model/evaluat-result/img/ckzp.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/close.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/icon-badge.png


+ 0 - 43
src/page-instrument/evaluat-model/evaluat-result/img/icon-badge.svg

@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="78px" height="87px" viewBox="0 0 78 87" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>徽章</title>
-    <defs>
-        <path d="M3.68074224,3.34475119 L26.209171,3.34475119 L26.209171,20.9920204 C26.209171,23.1071787 24.4944964,24.8218533 22.3793381,24.8218533 C21.7507061,24.8218533 21.1317391,24.6671115 20.5770638,24.3712847 L19.1802507,23.6263177 C16.5331919,22.214553 13.3567213,22.214553 10.7096625,23.6263177 L9.31284943,24.3712847 C7.44653328,25.3666533 5.12667942,24.6606108 4.13131081,22.7942947 C3.835484,22.2396194 3.68074224,21.6206524 3.68074224,20.9920204 L3.68074224,3.34475119 L3.68074224,3.34475119 Z" id="path-1"></path>
-        <path d="M4.41275563,3.95453496 L26.9411844,3.95453496 L26.9411844,21.6018042 C26.9411844,23.7169625 25.2265098,25.431637 23.1113515,25.431637 C22.4827195,25.431637 21.8637525,25.2768953 21.3090772,24.9810685 L19.9122641,24.2361015 C17.2652053,22.8243368 14.0887347,22.8243368 11.4416759,24.2361015 L10.0448628,24.9810685 C8.17854667,25.9764371 5.85869282,25.2703946 4.86332421,23.4040785 C4.5674974,22.8494032 4.41275563,22.2304361 4.41275563,21.6018042 L4.41275563,3.95453496 L4.41275563,3.95453496 Z" id="path-3"></path>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-5">
-            <stop stop-color="#FDB927" offset="0%"></stop>
-            <stop stop-color="#FFBF69" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-6">
-            <stop stop-color="#FFE593" offset="0%"></stop>
-            <stop stop-color="#FFEEB9" offset="100%"></stop>
-        </linearGradient>
-    </defs>
-    <g id="修改" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="评测" transform="translate(-219.000000, -63.000000)">
-            <g id="编组-10" transform="translate(211.000000, 63.000000)">
-                <g id="徽章" transform="translate(47.000000, 43.047686) rotate(-14.000000) translate(-47.000000, -43.047686) translate(16.000000, 6.411322)">
-                    <g id="矩形" transform="translate(4.131729, 41.943117)">
-                        <mask id="mask-2" fill="white">
-                            <use xlink:href="#path-1"></use>
-                        </mask>
-                        <use id="蒙版" fill="#FA753E" transform="translate(14.944957, 15.359913) rotate(22.000000) translate(-14.944957, -15.359913) " xlink:href="#path-1"></use>
-                        <polygon fill="#FFA673" mask="url(#mask-2)" transform="translate(15.929541, 12.922980) rotate(22.000000) translate(-15.929541, -12.922980) " points="12.1748032 1.28329221 19.6842795 1.28329221 19.6842795 24.5626686 12.1748032 24.5626686"></polygon>
-                    </g>
-                    <g id="矩形备份" transform="translate(29.308827, 41.333333)">
-                        <mask id="mask-4" fill="white">
-                            <use xlink:href="#path-3"></use>
-                        </mask>
-                        <use id="蒙版" fill="#FA753E" transform="translate(15.676970, 15.969697) rotate(-29.000000) translate(-15.676970, -15.969697) " xlink:href="#path-3"></use>
-                        <polygon id="矩形" fill="#FFA673" mask="url(#mask-4)" transform="translate(14.402737, 13.670919) rotate(-29.000000) translate(-14.402737, -13.670919) " points="10.6479987 2.03123121 18.1574749 2.03123121 18.1574749 25.3106076 10.6479987 25.3106076"></polygon>
-                    </g>
-                    <g id="编组-7" transform="translate(-0.000000, 0.000000)">
-                        <path d="M29.6849268,58.2640829 L24.274802,58.5609751 C20.088091,58.79073 16.0757964,56.8585107 13.6450543,53.4419584 L10.5040164,49.0270432 C9.9953911,48.3121402 9.44794612,47.6256659 8.86414698,46.970712 L5.25886961,42.9260154 C2.4688684,39.7959627 1.47791348,35.4543055 2.63353872,31.4236893 L4.12685332,26.2152724 C4.36866433,25.3718783 4.56404519,24.5158589 4.71211593,23.6510693 L5.62653338,18.3105229 C6.33416986,14.1776561 9.11076385,10.6959174 12.9825471,9.08637347 L17.9857178,7.006499 C18.7958765,6.6697069 19.5869574,6.28874241 20.3553978,5.86532128 L25.100935,3.2504654 C28.7733445,1.2269176 33.2266555,1.2269176 36.899065,3.2504654 L41.6446022,5.86532128 C42.4130426,6.28874241 43.2041235,6.6697069 44.0142822,7.006499 L49.0174529,9.08637347 C52.8892362,10.6959174 55.6658301,14.1776561 56.3734666,18.3105229 L57.2878841,23.6510693 C57.4359548,24.5158589 57.6313357,25.3718783 57.8731467,26.2152724 L59.3664613,31.4236893 C60.5220865,35.4543055 59.5311316,39.7959627 56.7411304,42.9260154 L53.135853,46.970712 C52.5520539,47.6256659 52.0046089,48.3121402 51.4959836,49.0270432 L48.3549457,53.4419584 C45.9242036,56.8585107 41.911909,58.79073 37.725198,58.5609751 L32.3150732,58.2640829 C31.4390168,58.2160074 30.5609832,58.2160074 29.6849268,58.2640829 Z" id="星形" fill="url(#linearGradient-5)"></path>
-                        <path d="M27.2931075,52.5100945 L25.5367564,52.796914 C22.2564324,53.3326045 18.991192,51.7601475 17.3647631,48.8614894 L16.4939406,47.3094898 C15.2767176,45.1401277 13.7156354,43.1825924 11.8715212,41.5131593 L10.5522098,40.3188178 C8.08814151,38.0881547 7.28169372,34.5548761 8.53389413,31.475999 L9.20434726,29.8275066 C10.1414968,27.5232682 10.6986406,25.0822617 10.8540696,22.5996007 L10.9652662,20.8234617 C11.1729474,17.5061799 13.4325639,14.6727104 16.6204611,13.7320717 L18.327325,13.2284349 C20.7131543,12.5244587 22.9689836,11.4381086 25.0069145,10.0117141 L26.4648858,8.99124657 C29.1879283,7.08532683 32.8120717,7.08532683 35.5351142,8.99124657 L36.9930855,10.0117141 C39.0310164,11.4381086 41.2868457,12.5244587 43.672675,13.2284349 L45.3795389,13.7320717 C48.5674361,14.6727104 50.8270526,17.5061799 51.0347338,20.8234617 L51.1459304,22.5996007 C51.3013594,25.0822617 51.8585032,27.5232682 52.7956527,29.8275066 L53.4661059,31.475999 C54.7183063,34.5548761 53.9118585,38.0881547 51.4477902,40.3188178 L50.1284788,41.5131593 C48.2843646,43.1825924 46.7232824,45.1401277 45.5060594,47.3094898 L44.6352369,48.8614894 C43.008808,51.7601475 39.7435676,53.3326045 36.4632436,52.796914 L34.7068925,52.5100945 C32.2518908,52.1091826 29.7481092,52.1091826 27.2931075,52.5100945 Z" id="星形" fill="url(#linearGradient-6)"></path>
-                        <path d="M30.1394164,18.3657398 C31.0076456,18.1454972 31.9598946,18.256473 32.7903706,18.7508702 C33.2910341,19.0489241 33.7093657,19.4672557 34.0074197,19.9679192 L34.0074197,19.9679192 L36.262776,23.7564102 L40.5627885,24.7306735 C41.5053953,24.944242 42.2721998,25.5196588 42.7499605,26.2773352 C43.2277212,27.0350116 43.4164382,27.9749476 43.2028697,28.9175544 C43.0741171,29.4858174 42.8055316,30.012946 42.4214761,30.4511256 L42.4214761,30.4511256 L39.5153505,33.7668051 L39.917548,38.1574239 C40.0057138,39.1198925 39.6954155,40.0269805 39.1224586,40.7154928 C38.5495017,41.4040052 37.7138862,41.8739418 36.7514176,41.9621076 C36.1711806,42.0152596 35.5868541,41.9227113 35.0514408,41.6928578 L35.0514408,41.6928578 L31,39.9535693 L26.9485592,41.6928578 C26.060442,42.0741276 25.1018625,42.059322 24.269995,41.7271696 C23.4381274,41.3950172 22.7329717,40.745518 22.3517019,39.8574007 C22.1218483,39.3219874 22.0293001,38.7376609 22.082452,38.1574239 L22.082452,38.1574239 L22.4846495,33.7668051 L19.5785239,30.4511256 C18.9414714,29.7242948 18.6593351,28.8080564 18.7181695,27.9142626 C18.777004,27.0204688 19.1768093,26.1491196 19.9036402,25.5120671 C20.3418199,25.1280115 20.8689485,24.8594261 21.4372115,24.7306735 L21.4372115,24.7306735 L25.737224,23.7564102 L27.9925803,19.9679192 C28.4869775,19.1374432 29.2711871,18.5859824 30.1394164,18.3657398 Z" id="星形" stroke="#FFDB86" stroke-width="3" fill="#FF9F21"></path>
-                    </g>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>

二進制
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression0.png


+ 0 - 380
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression0.svg

@@ -1,380 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="159px" height="114px" viewBox="0 0 159 114" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>真棒备份 2</title>
-    <defs>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-1">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </linearGradient>
-        <path d="M22.1488146,6.762122 C25.1841318,5.65292825 31.3464688,10.4913289 36.0877511,16.1640534 C39.7799827,20.5816373 37.6367194,33.8743074 36.811991,35.7344156 C35.3431385,39.0474748 32.806241,25.7383094 32.806241,25.7383094 C32.806241,25.7383094 33.0715638,30.3345271 27.2415566,29.2790762 C27.2415566,29.2790762 24.3531563,32.9098831 20.7900982,31.2669116 C19.0461151,30.4628339 19.4750896,26.9033388 17.1887883,21.4260016 C14.718482,15.50784 4.22518042,22.004857 5.62798231,19.6850113 C5.62798231,19.6850113 15.1759054,9.31022712 22.1488146,6.762122 Z" id="path-2"></path>
-        <filter x="-6.1%" y="-6.7%" width="112.2%" height="113.5%" filterUnits="objectBoundingBox" id="filter-3">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M83.1488146,6.762122 C86.1841318,5.65292825 92.3464688,10.4913289 97.0877511,16.1640534 C100.779983,20.5816373 98.6367194,33.8743074 97.811991,35.7344156 C96.3431385,39.0474748 93.806241,25.7383094 93.806241,25.7383094 C93.806241,25.7383094 94.0715638,30.3345271 88.2415566,29.2790762 C88.2415566,29.2790762 85.3531563,32.9098831 81.7900982,31.2669116 C80.0461151,30.4628339 80.4750896,26.9033388 78.1887883,21.4260016 C75.718482,15.50784 65.2251804,22.004857 66.6279823,19.6850113 C66.6279823,19.6850113 76.1759054,9.31022712 83.1488146,6.762122 Z" id="path-4"></path>
-        <filter x="-6.1%" y="-6.7%" width="112.2%" height="113.5%" filterUnits="objectBoundingBox" id="filter-5">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <radialGradient cx="50%" cy="36.3210319%" fx="50%" fy="36.3210319%" r="62.0360694%" gradientTransform="translate(0.500000,0.363210),scale(0.992740,1.000000),rotate(92.657830),translate(-0.500000,-0.363210)" id="radialGradient-6">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </radialGradient>
-        <path d="M34.6834027,10.9294018 C34.6834027,10.9294018 32.9122791,22.4227355 30.7867359,26.4972953 C27.2019324,33.3693778 19.7906314,54.5809407 41.2893818,61.5476428 C62.788457,68.514345 84.7400588,54.7475107 79.6817013,36.6419701 C75.6066877,22.0567413 71.7470547,16.2560296 71.3854882,9.95922157 L34.6834027,10.9294018 Z" id="path-7"></path>
-        <filter x="-4.6%" y="-4.7%" width="109.3%" height="109.4%" filterUnits="objectBoundingBox" id="filter-8">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <linearGradient x1="32.4288665%" y1="50%" x2="57.5753419%" y2="89.3692122%" id="linearGradient-9">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="69.6826821%" y1="61.5784612%" x2="44.0145447%" y2="87.6718365%" id="linearGradient-10">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-11">
-            <stop stop-color="#FFE948" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <radialGradient cx="50%" cy="36.3210319%" fx="50%" fy="36.3210319%" r="62.0655718%" gradientTransform="translate(0.500000,0.363210),scale(0.826585,1.000000),rotate(93.191077),translate(-0.500000,-0.363210)" id="radialGradient-12">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </radialGradient>
-        <path d="M18.5769327,48.7090823 C17.8567053,51.9524209 16.982586,55.5655479 15.8857799,58.7008952 L15.8857799,58.7008952 C14.8127748,61.7675207 13.5216474,65.4074819 13.2445115,68.7365591 L13.2445115,68.7365591 C11.419653,90.6574832 34.0756776,97.6556465 58.5604733,97.5555091 L58.5604733,97.5555091 C83.0452691,97.4556989 103.961858,89.0487401 103.965119,68.2764507 L103.965119,68.2764507 C103.965119,62.7436966 102.162431,60.9598767 101.064321,57.9017596 L101.064321,57.9017596 C99.9420832,54.7755752 98.7481165,51.5711789 97.8322638,48.3782362 L97.8322638,48.3782362 C92.9256538,31.2688152 81.8663002,23.2905491 58.44212,22.5143208 L58.44212,22.5143208 C57.8073157,22.493377 57.1780542,22.4829051 56.5553134,22.4829051 L56.5553134,22.4829051 C35.7896818,22.4829051 21.8305084,34.0530272 18.5769327,48.7090823" id="path-13"></path>
-        <filter x="-3.3%" y="-4.0%" width="106.6%" height="108.0%" filterUnits="objectBoundingBox" id="filter-14">
-            <feGaussianBlur stdDeviation="2.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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>
-        <path d="M60.1903873,84.2969811 C60.1903873,84.2969811 54.9290839,86.929063 49.9842502,84.6256828 C49.8000396,84.3105087 55.52968,92.0463038 60.1903873,84.2969811 Z" id="path-15"></path>
-        <filter x="-46.5%" y="-151.8%" width="193.0%" height="374.6%" filterUnits="objectBoundingBox" id="filter-16">
-            <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.247864196 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <filter x="-12.5%" y="-13.2%" width="125.1%" height="126.4%" filterUnits="objectBoundingBox" id="filter-17">
-            <feGaussianBlur stdDeviation="1" in="SourceGraphic"></feGaussianBlur>
-        </filter>
-        <linearGradient x1="57.5618021%" y1="0%" x2="60.4622466%" y2="11.9988623%" id="linearGradient-18">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
-        </linearGradient>
-        <path d="M28.8091114,3.66543059 C23.3421788,1.08879286 12.0426358,-1.07948237 4.24782864,0.581734809 C-0.94870949,1.68921293 -1.37739842,2.97525046 2.96176186,4.43984741 C0.292553541,5.72328879 -0.34415201,6.58216803 1.05164521,7.01648513 C3.14534104,7.66796079 12.8017442,4.43984741 16.8867183,4.43984741 C20.9716925,4.43984741 25.8806085,6.12067968 28.8091114,6.08988411 C31.7376144,6.05908853 34.276044,6.24206831 28.8091114,3.66543059 Z" id="path-19"></path>
-        <filter x="-12.5%" y="-13.2%" width="125.1%" height="126.4%" filterUnits="objectBoundingBox" id="filter-21">
-            <feGaussianBlur stdDeviation="1" in="SourceGraphic"></feGaussianBlur>
-        </filter>
-        <path d="M28.8091114,3.66543059 C23.3421788,1.08879286 12.0426358,-1.07948237 4.24782864,0.581734809 C-0.94870949,1.68921293 -1.37739842,2.97525046 2.96176186,4.43984741 C0.292553541,5.72328879 -0.34415201,6.58216803 1.05164521,7.01648513 C3.14534104,7.66796079 12.8017442,4.43984741 16.8867183,4.43984741 C20.9716925,4.43984741 25.8806085,6.12067968 28.8091114,6.08988411 C31.7376144,6.05908853 34.276044,6.24206831 28.8091114,3.66543059 Z" id="path-22"></path>
-        <linearGradient x1="-0.00139152473%" y1="50.000508%" x2="99.99952%" y2="50.000508%" id="linearGradient-24">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F29942" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="0%" y1="59.2364439%" x2="101.94585%" y2="59.2364439%" id="linearGradient-25">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F8B911" offset="48.5652346%"></stop>
-            <stop stop-color="#F7D510" offset="49.0626726%"></stop>
-            <stop stop-color="#F5CB0D" offset="100%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="35.7866085%" y1="99.1220678%" x2="64.2147804%" y2="0.868067724%" id="linearGradient-26">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F28042" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="64.2132492%" y1="99.1220678%" x2="35.7853605%" y2="0.868067724%" id="linearGradient-27">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F28042" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-28">
-            <stop stop-color="#00B4E0" offset="0%"></stop>
-            <stop stop-color="#7EDAF5" offset="100%"></stop>
-        </linearGradient>
-        <path d="M12.0947355,1.23453948 C12.5183707,4.18848781 9.1598501,4.32072491 3.50173449,8.75834089 L3.50173449,8.75834089 C-2.15670625,13.1953038 -0.132490438,22.233465 3.76801023,24.2966903 L3.76801023,24.2966903 C6.4941666,25.738891 7.89187039,26.1816404 7.89187039,26.1816404 L7.89187039,26.1816404 C9.72718974,27.0694248 12.973868,27.807014 10.6414356,25.6108985 L10.6414356,25.6108985 C7.88114133,23.0125211 13.4641535,21.4420014 14.8816898,16.8264367 L14.8816898,16.8264367 C16.5112063,11.519974 14.2704586,8.5862694 14.1725966,6.29938379 L14.1725966,6.29938379 C14.0721336,3.95372613 12.5817697,-0.000326511366 12.1405778,0 L12.1405778,0 C12.0072774,0.000326511366 11.9695631,0.36079506 12.0947355,1.23453948" id="path-29"></path>
-        <filter x="-19.4%" y="-11.1%" width="138.8%" height="122.2%" filterUnits="objectBoundingBox" id="filter-31">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="-1" dy="2" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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="61.6022393%" y1="100%" x2="40.5159685%" y2="41.393852%" id="linearGradient-32">
-            <stop stop-color="#F2D0A4" offset="0%"></stop>
-            <stop stop-color="#F3AC27" offset="100%"></stop>
-        </linearGradient>
-        <path d="M0,2.32400844 C0,2.32400844 0.0815832102,18.6873223 6.61391538,18.2259971 L6.61391538,18.2259971 C13.1462475,17.7650195 6.24324384,0 6.24324384,0 L6.24324384,0 L0,2.32400844 Z" id="path-33"></path>
-        <linearGradient x1="48.5255252%" y1="18.2349448%" x2="55.3263914%" y2="87.0632093%" id="linearGradient-35">
-            <stop stop-color="#F4C148" offset="0%"></stop>
-            <stop stop-color="#F2A615" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="63.4507393%" y1="91.0330977%" x2="43.5726068%" y2="14.0719495%" id="linearGradient-36">
-            <stop stop-color="#F2D0A4" offset="0%"></stop>
-            <stop stop-color="#F3AC27" offset="100%"></stop>
-        </linearGradient>
-        <path d="M0,1.5922152 C0,1.5922152 4.97444756,25.1973271 11.4603128,22.6417869 L11.4603128,22.6417869 C18.5573426,19.844981 4.41719877,0 4.41719877,0 L4.41719877,0 L0,1.5922152 Z" id="path-37"></path>
-        <linearGradient x1="47.9895755%" y1="18.2349448%" x2="57.2624555%" y2="87.0632093%" id="linearGradient-39">
-            <stop stop-color="#F4C148" offset="0%"></stop>
-            <stop stop-color="#F2A615" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="77.612246%" y1="100%" x2="27.4288906%" y2="41.393852%" id="linearGradient-40">
-            <stop stop-color="#F2D0A4" offset="0%"></stop>
-            <stop stop-color="#F3AC27" offset="100%"></stop>
-        </linearGradient>
-        <path d="M0,1.69685642 C0,1.69685642 5.42067225,10.5503378 9.07772833,18.0021135 L9.07772833,18.0021135 C13.9610155,27.9534586 26.4464391,29.4458996 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L0,1.69685642 Z" id="path-41"></path>
-        <linearGradient x1="50%" y1="0%" x2="76.4096289%" y2="93.0869575%" id="linearGradient-43">
-            <stop stop-color="#F4C250" offset="0%"></stop>
-            <stop stop-color="#F2A81A" offset="100%"></stop>
-        </linearGradient>
-        <path d="M2.60640621,0.224926471 C6.41776096,3.42187211 17.85821,17.1837566 19.4810065,21.4243333 L19.4810065,21.4243333 C20.0272593,22.8517646 20.2695259,23.9179926 20.341532,24.711319 L20.341532,24.711319 C20.9849752,23.3183046 20.3241512,20.5434002 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L2.60640621,0.224926471 Z" id="path-44"></path>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-46">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </linearGradient>
-        <path d="M16.498582,0.00121342271 C19.8665715,-0.0600763297 28.263654,2.20152347 31.2939427,6.53847909 C34.5665529,11.2222458 33.8477244,17.3895722 33.0229959,19.2496805 C31.5541434,22.5627397 28.4876788,20.8787461 28.4876788,20.8787461 C28.4876788,20.8787461 28.7530016,25.4749639 22.9229945,24.4195129 C22.9229945,24.4195129 20.0345941,28.0503198 16.4715361,26.4073484 C14.727553,25.6032706 15.1565275,22.0437756 12.8702262,16.5664384 C10.3999199,10.6482768 -3.68260743,15.9716825 0.916259353,9.29143673 C5.51512614,2.611191 11.7754491,0.0871637029 16.498582,0.00121342271 Z" id="path-47"></path>
-        <filter x="-5.9%" y="-7.5%" width="111.9%" height="114.9%" filterUnits="objectBoundingBox" id="filter-48">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M0,2.32400844 C0,2.32400844 0.0815832102,18.6873223 6.61391538,18.2259971 L6.61391538,18.2259971 C13.1462475,17.7650195 6.24324384,0 6.24324384,0 L6.24324384,0 L0,2.32400844 Z" id="path-49"></path>
-        <path d="M0,1.5922152 C0,1.5922152 4.97444756,25.1973271 11.4603128,22.6417869 L11.4603128,22.6417869 C18.5573426,19.844981 4.41719877,0 4.41719877,0 L4.41719877,0 L0,1.5922152 Z" id="path-51"></path>
-        <path d="M0,1.69685642 C0,1.69685642 5.42067225,10.5503378 9.07772833,18.0021135 L9.07772833,18.0021135 C13.9610155,27.9534586 26.4464391,29.4458996 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L0,1.69685642 Z" id="path-53"></path>
-        <path d="M2.60640621,0.224926471 C6.41776096,3.42187211 17.85821,17.1837566 19.4810065,21.4243333 L19.4810065,21.4243333 C20.0272593,22.8517646 20.2695259,23.9179926 20.341532,24.711319 L20.341532,24.711319 C20.9849752,23.3183046 20.3241512,20.5434002 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L2.60640621,0.224926471 Z" id="path-55"></path>
-        <path d="M16.498582,0.00121342271 C19.8665715,-0.0600763297 28.263654,2.20152347 31.2939427,6.53847909 C34.5665529,11.2222458 33.8477244,17.3895722 33.0229959,19.2496805 C31.5541434,22.5627397 28.4876788,20.8787461 28.4876788,20.8787461 C28.4876788,20.8787461 28.7530016,25.4749639 22.9229945,24.4195129 C22.9229945,24.4195129 20.0345941,28.0503198 16.4715361,26.4073484 C14.727553,25.6032706 15.1565275,22.0437756 12.8702262,16.5664384 C10.3999199,10.6482768 -3.68260743,15.9716825 0.916259353,9.29143673 C5.51512614,2.611191 11.7754491,0.0871637029 16.498582,0.00121342271 Z" id="path-57"></path>
-        <filter x="-5.9%" y="-7.5%" width="111.9%" height="114.9%" filterUnits="objectBoundingBox" id="filter-58">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <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="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="蓝色" 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)">
-                    <g id="身" transform="translate(8.846142, 76.775916)">
-                        <g id="Fill-15" transform="translate(21.841039, 21.433378) scale(-1, -1) rotate(-34.000000) translate(-21.841039, -21.433378) ">
-                            <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
-                        </g>
-                        <g id="Fill-15备份" transform="translate(82.841039, 21.433378) scale(1, -1) rotate(-34.000000) translate(-82.841039, -21.433378) ">
-                            <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-4"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-5)" xlink:href="#path-4"></use>
-                        </g>
-                        <g id="Fill-57">
-                            <use fill="url(#radialGradient-6)" fill-rule="evenodd" xlink:href="#path-7"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-7"></use>
-                        </g>
-                        <path d="M40.5124199,17.3550305 C40.5124199,17.3550305 39.2409273,25.6053406 37.715396,28.530337 C35.1415493,33.4633732 29.8216815,48.6895845 45.2543661,53.6906286 C60.6870507,58.6916727 76.4007371,48.4099965 72.8136596,35.8124381 C69.8369895,25.357621 67.1176066,21.1789139 66.8583703,16.6585246 L40.5124199,17.3550305 Z" id="Fill-61" fill="#F8F4EC"></path>
-                        <g id="脖子毛" transform="translate(43.654959, 12.102685)">
-                            <path d="M4.12505343,15.606083 C4.82595311,16.1752451 5.88390867,16.251198 6.75260149,15.9247621 C7.04690008,15.8142263 7.31939878,15.6577956 7.5496189,15.4583788 C7.69957576,15.3284509 7.83136603,15.1801003 7.93904431,15.0146199 C8.13028885,14.7208276 8.2558034,14.3821099 8.33111213,14.0168895 C8.42359654,13.5656969 8.43945101,13.0734574 8.40642087,12.575077 C8.32846972,11.3818083 7.97306536,10.1516943 7.73392711,9.35241108 C6.50718751,5.251277 6.0517018,2.32757467 5.12751834,1.14723408 C5.01389464,1.00211554 4.8910225,0.885762142 4.76253523,0.796234666 C4.56567556,0.659519423 4.35659474,0.585828937 4.14784423,0.566759908 C3.53084111,0.51116884 2.92011372,0.935858743 2.66115738,1.63688797 C2.47519767,2.13947001 2.35034372,2.87637486 2.3691709,3.95458302 C2.40220104,5.86083952 2.38601627,8.00206525 2.52375198,10.4522739 C2.5974092,11.7712689 2.754963,12.9490239 3.06280395,13.8837295 C3.19657604,14.2890272 3.35875405,14.6484299 3.55462282,14.9538576 C3.71977354,15.2111279 3.90870597,15.4302601 4.12505343,15.606083" id="Fill-65" fill="url(#linearGradient-9)" transform="translate(5.394758, 8.339796) rotate(19.000000) translate(-5.394758, -8.339796) "></path>
-                            <path d="M10.6515863,15.2671083 C11.2245455,15.9863725 12.2655158,16.2546108 13.1709677,16.0522274 C13.4000883,16.0011497 13.6200693,15.9201963 13.8217711,15.8087248 C14.0111817,15.7036782 14.1845191,15.5722896 14.3332742,15.4139166 C14.6686034,15.0563726 14.8961483,14.5844659 15.0467943,14.0579478 C15.2248591,13.4366629 15.2960851,12.7395645 15.3121582,12.0646319 C15.3323284,11.2326112 15.2686662,10.4346424 15.2179256,9.85511915 C14.8498199,5.62434234 14.9793502,2.68785556 14.3386319,1.36176242 C14.2497571,1.17801114 14.1429182,1.02766919 14.023788,0.909130337 C13.8974093,0.782881644 13.7571635,0.692612222 13.6093539,0.636073367 C13.0253642,0.411202921 12.329493,0.709316883 11.93712,1.37139972 C11.6679742,1.82628051 11.4108045,2.52080894 11.2236,3.57577258 C10.8920527,5.44026981 10.4694244,7.5244976 10.1328346,9.9389637 C10.0058255,10.8461553 9.93018729,11.6942381 9.9339692,12.4533365 C9.93680563,13.083295 9.99416458,13.651896 10.1224343,14.1427561 C10.2374674,14.5847871 10.4101745,14.9638544 10.6515863,15.2671083" id="Fill-69" fill="url(#linearGradient-10)" transform="translate(12.624910, 8.339796) rotate(-13.000000) translate(-12.624910, -8.339796) "></path>
-                            <path d="M6.79458078,19.2295328 C7.49411195,20.0221552 8.68079913,20.3150666 9.74463543,20.1147909 C10.0553567,20.0560781 10.3559492,19.9552878 10.63073,19.8130725 C10.9202138,19.6627026 11.1809451,19.4660148 11.3959342,19.2233354 C11.7883382,18.7787492 12.046129,18.2056474 12.208841,17.570571 C12.3865827,16.8764556 12.450622,16.1082969 12.4529091,15.3544902 C12.4565032,14.2386215 12.3241771,13.1537401 12.2241974,12.3852552 C11.5550522,7.23320997 11.5713887,3.63803159 10.7062049,2.05017745 C10.5621165,1.78499146 10.3928698,1.57623495 10.1925837,1.42488649 C9.98151544,1.26603584 9.76489276,1.17111687 9.54990373,1.12969175 C8.81443213,0.987802566 8.10019805,1.47479234 7.71008118,2.18260736 C7.39641937,2.75212119 7.1105297,3.61389412 6.92886724,4.9124248 C6.60736388,7.20776777 6.18392044,9.77645129 5.88300114,12.7443816 C5.7647245,13.90983 5.71277427,14.9934067 5.76537797,15.9520557 C5.80589262,16.6859653 5.9078327,17.3468101 6.08851497,17.9153454 C6.25351416,18.4352796 6.48451301,18.8782348 6.79458078,19.2295328" id="Fill-77" fill="url(#linearGradient-11)"></path>
-                        </g>
-                    </g>
-                    <g id="头" transform="translate(4.807847, 0.000000)">
-                        <g id="Fill-71">
-                            <use fill="url(#radialGradient-12)" fill-rule="evenodd" xlink:href="#path-13"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-14)" xlink:href="#path-13"></use>
-                        </g>
-                        <path d="M52.2137529,62.041086 C52.2137529,62.041086 54.5750382,43.2712671 40.7154338,42.6838132 C26.6627313,42.0882048 25.5054499,53.5792717 24.4151484,61.3061979 C23.3692823,68.7196632 14.4315544,78.1068559 24.9134133,89.8314691 C35.7860424,100.90013 75.0947284,98.7463503 86.5430577,92.3502468 C95.3229745,87.4451214 97.4405184,81.3226846 97.2225888,73.9907648 C96.9772138,65.7223764 89.2363018,61.086025 87.9940703,55.6955407 C86.7515121,50.3053826 83.1218569,41.5959961 75.4783107,40.8937262 C67.6913295,40.1777566 58.6222558,41.2479599 60.4692664,62.0890348 C60.4692664,62.0890348 56.8598685,68.4401252 52.2137529,62.041086" id="Fill-81" fill="#F8F4EC"></path>
-                        <g id="下巴" transform="translate(55.085154, 86.026726) scale(1, -1) translate(-55.085154, -86.026726) ">
-                            <use fill="black" fill-opacity="1" filter="url(#filter-16)" xlink:href="#path-15"></use>
-                            <use fill="#FFF9EF" fill-rule="evenodd" xlink:href="#path-15"></use>
-                        </g>
-                        <g id="左眼" transform="translate(0.000000, 44.740490)">
-                            <path d="M39.5995661,21.1420557 C48.9913554,21.1420557 49.97992,27.9170439 49.97992,23.7334869 C49.97992,19.54993 52.4056572,2.33125135 38.4680948,2.33125135 C24.5305324,2.33125135 26.3084307,18.2379519 26.3084307,22.4215088 C26.3084307,26.6050658 30.2077768,21.1420557 39.5995661,21.1420557 Z" id="椭圆形" fill="#D8D8D8" opacity="0.479851132" filter="url(#filter-17)"></path>
-                            <path d="M44.2784779,17.9931625 C44.8121778,13.4809867 43.5010462,10.6454317 40.3450832,9.48649742 C37.1891202,8.3275631 34.0877555,9.56466949 31.0409889,13.1978166 C35.3585572,12.6374466 38.2649184,12.5785831 39.7600725,13.0212263 C41.2552266,13.4638694 42.7613617,15.1211815 44.2784779,17.9931625 Z" id="路径-9" fill="#DDDDDD" transform="translate(37.717632, 13.529619) rotate(8.000000) translate(-37.717632, -13.529619) "></path>
-                            <path d="M30.4957359,13.6699967 C29.6723613,12.9626696 32.3236715,12.1914588 37.2670521,12.7183503 C42.2104328,13.2452417 44.6264901,14.8365597 44.4207918,16.4137939 C44.25612,17.6764489 39.4122403,18.6515497 36.5024021,18.9135031 C33.592564,19.1754565 30.4871835,19.7690745 30.3615918,18.8754432 C30.2360001,17.9818118 32.6760733,17.282379 35.9171901,16.8268698 C38.2732347,16.4957493 40.4257391,15.7686245 40.710869,15.7686349 C40.9959989,15.7686452 39.6106849,15.2680984 36.8318503,14.9530625 C33.7783419,14.6068868 30.9125703,14.028082 30.4957359,13.6699967 Z" id="路径-8" fill="#000025" transform="translate(37.390138, 15.947294) rotate(8.000000) translate(-37.390138, -15.947294) "></path>
-                            <path d="M39.3692888,44.138111 C46.6905135,44.138111 49.7537856,29.7284281 49.7537856,26.5907604 C49.7537856,23.4530927 45.1771562,21.1420557 38.0423068,21.1420557 C35.7231813,21.1420557 31.5831982,21.862605 29.8528847,22.4215088 C23.0232502,24.6275304 32.048064,44.138111 39.3692888,44.138111 Z" id="椭圆形" fill="url(#linearGradient-18)"></path>
-                            <path d="M47.4657497,6.13270119 C46.4198611,6.13270119 45.5718586,4.71972881 45.5718586,2.97645119 C45.5718586,1.23317357 46.4198611,-0.179798809 47.4657497,-0.179798809 C48.5116383,-0.179798809 49.3593586,1.23317357 49.3593586,2.97645119 C49.3593586,4.71972881 48.5116383,6.13270119 47.4657497,6.13270119 Z" id="眉毛" fill="#FFD155" transform="translate(47.465609, 2.976451) rotate(67.000000) translate(-47.465609, -2.976451) "></path>
-                            <g id="编组-3" transform="translate(0.000000, 12.250515)">
-                                <g id="路径-3" transform="translate(3.000000, 0.697370)">
-                                    <mask id="mask-20" fill="white">
-                                        <use xlink:href="#path-19"></use>
-                                    </mask>
-                                    <use id="蒙版" fill="#C3EAFC" xlink:href="#path-19"></use>
-                                    <path d="M27.4847604,2.33136139 C24.7448541,1.89255238 22.8615369,2.11523506 21.8348088,2.99940944 C20.2947167,4.32567101 21.6198122,5.75272046 22.2515292,6.08988411 C22.8832462,6.42704775 27.2297267,7.13337032 28.6579364,7.56171853 C30.0861461,7.99006675 35.1883102,7.77391904 35.1883102,7.56171853 C35.1883102,7.34951802 35.9864825,4.10390827 35.1883102,3.55165885 C34.6561954,3.18349258 32.0883454,2.77672676 27.4847604,2.33136139 Z" fill="#75D3FD" mask="url(#mask-20)"></path>
-                                </g>
-                                <circle id="椭圆形" fill="#75D3FD" cx="23" cy="3.00899583" r="1"></circle>
-                                <circle id="椭圆形备份-5" fill="#75D3FD" cx="1" cy="6.00899583" r="1"></circle>
-                                <circle id="椭圆形备份-4" fill="#75D3FD" cx="20.5" cy="4.50899583" r="1"></circle>
-                                <path d="M32.1332207,2.81041411 C32.5062317,1.92404381 28.8295529,0.481040044 27.6355029,0.481040044 C26.4414529,0.481040044 25.3511797,0.882246817 26.0224735,1.27910473 C26.6937674,1.67596263 28.6248857,1.63138682 29.5039693,1.92404381 C31.2543529,2.50676647 31.9676833,3.20377339 32.1332207,2.81041411 Z" id="路径-2" fill="#C3EAFC" transform="translate(28.988458, 1.703144) rotate(9.000000) translate(-28.988458, -1.703144) "></path>
-                            </g>
-                        </g>
-                        <g id="左眼备份-2" transform="translate(88.555450, 66.809545) scale(-1, 1) translate(-88.555450, -66.809545) translate(63.000000, 44.740490)">
-                            <path d="M39.5995661,21.1420557 C48.9913554,21.1420557 49.97992,27.9170439 49.97992,23.7334869 C49.97992,19.54993 52.4056572,2.33125135 38.4680948,2.33125135 C24.5305324,2.33125135 26.3084307,18.2379519 26.3084307,22.4215088 C26.3084307,26.6050658 30.2077768,21.1420557 39.5995661,21.1420557 Z" id="椭圆形" fill="#D8D8D8" opacity="0.479851132" filter="url(#filter-21)"></path>
-                            <path d="M44.2784779,17.9931625 C44.8121778,13.4809867 43.5010462,10.6454317 40.3450832,9.48649742 C37.1891202,8.3275631 34.0877555,9.56466949 31.0409889,13.1978166 C35.3585572,12.6374466 38.2649184,12.5785831 39.7600725,13.0212263 C41.2552266,13.4638694 42.7613617,15.1211815 44.2784779,17.9931625 Z" id="路径-9" fill="#DDDDDD" transform="translate(37.717632, 13.529619) rotate(8.000000) translate(-37.717632, -13.529619) "></path>
-                            <path d="M30.4957359,13.6699967 C29.6723613,12.9626696 32.3236715,12.1914588 37.2670521,12.7183503 C42.2104328,13.2452417 44.6264901,14.8365597 44.4207918,16.4137939 C44.25612,17.6764489 39.4122403,18.6515497 36.5024021,18.9135031 C33.592564,19.1754565 30.4871835,19.7690745 30.3615918,18.8754432 C30.2360001,17.9818118 32.6760733,17.282379 35.9171901,16.8268698 C38.2732347,16.4957493 40.4257391,15.7686245 40.710869,15.7686349 C40.9959989,15.7686452 39.6106849,15.2680984 36.8318503,14.9530625 C33.7783419,14.6068868 30.9125703,14.028082 30.4957359,13.6699967 Z" id="路径-8" fill="#000025" transform="translate(37.390138, 15.947294) rotate(8.000000) translate(-37.390138, -15.947294) "></path>
-                            <path d="M39.3692888,44.138111 C46.6905135,44.138111 49.7537856,29.7284281 49.7537856,26.5907604 C49.7537856,23.4530927 45.1771562,21.1420557 38.0423068,21.1420557 C35.7231813,21.1420557 31.5831982,21.862605 29.8528847,22.4215088 C23.0232502,24.6275304 32.048064,44.138111 39.3692888,44.138111 Z" id="椭圆形" fill="url(#linearGradient-18)"></path>
-                            <path d="M47.4657497,6.13270119 C46.4198611,6.13270119 45.5718586,4.71972881 45.5718586,2.97645119 C45.5718586,1.23317357 46.4198611,-0.179798809 47.4657497,-0.179798809 C48.5116383,-0.179798809 49.3593586,1.23317357 49.3593586,2.97645119 C49.3593586,4.71972881 48.5116383,6.13270119 47.4657497,6.13270119 Z" id="眉毛" fill="#FFD155" transform="translate(47.465609, 2.976451) rotate(67.000000) translate(-47.465609, -2.976451) "></path>
-                            <g id="编组-3" transform="translate(0.000000, 12.250515)">
-                                <g id="路径-3" transform="translate(3.000000, 0.697370)">
-                                    <mask id="mask-23" fill="white">
-                                        <use xlink:href="#path-22"></use>
-                                    </mask>
-                                    <use id="蒙版" fill="#C3EAFC" xlink:href="#path-22"></use>
-                                    <path d="M27.4847604,2.33136139 C24.7448541,1.89255238 22.8615369,2.11523506 21.8348088,2.99940944 C20.2947167,4.32567101 21.6198122,5.75272046 22.2515292,6.08988411 C22.8832462,6.42704775 27.2297267,7.13337032 28.6579364,7.56171853 C30.0861461,7.99006675 35.1883102,7.77391904 35.1883102,7.56171853 C35.1883102,7.34951802 35.9864825,4.10390827 35.1883102,3.55165885 C34.6561954,3.18349258 32.0883454,2.77672676 27.4847604,2.33136139 Z" fill="#75D3FD" mask="url(#mask-23)"></path>
-                                </g>
-                                <circle id="椭圆形" fill="#75D3FD" cx="23" cy="3.00899583" r="1"></circle>
-                                <circle id="椭圆形备份-5" fill="#75D3FD" cx="1" cy="6.00899583" r="1"></circle>
-                                <circle id="椭圆形备份-4" fill="#75D3FD" cx="20.5" cy="4.50899583" r="1"></circle>
-                                <path d="M32.1332207,2.81041411 C32.5062317,1.92404381 28.8295529,0.481040044 27.6355029,0.481040044 C26.4414529,0.481040044 25.3511797,0.882246817 26.0224735,1.27910473 C26.6937674,1.67596263 28.6248857,1.63138682 29.5039693,1.92404381 C31.2543529,2.50676647 31.9676833,3.20377339 32.1332207,2.81041411 Z" id="路径-2" fill="#C3EAFC" transform="translate(28.988458, 1.703144) rotate(9.000000) translate(-28.988458, -1.703144) "></path>
-                            </g>
-                        </g>
-                        <path d="M49.4789188,73.628112 C49.5718823,75.5253327 49.9472271,79.5525023 51.8255108,81.0141137 C53.7037944,82.4757251 54.9362225,81.2435984 56.1985102,81.3831368 C57.3508578,81.5105218 58.3838758,82.1680825 60.3181632,81.3831368 C62.2524507,80.5981911 61.0638994,79.5469742 61.982034,76.784261 C62.6497102,74.7761054 63.0704421,72.7093175 62.880362,71.7761981 C62.6624887,70.7068252 61.1789058,69.2996505 59.2682018,68.4131704 C57.3574978,67.5266902 57.3364133,65.6937652 55.9272652,65.6784408 C55.9205564,65.6784408 55.9138477,65.6784408 55.907139,65.6784408 C54.5261035,65.6784408 55.3493579,67.2561822 52.7422261,68.7846192 C50.0804663,70.3453705 49.3853163,71.7305582 49.4789188,73.628112 Z" id="Fill-85备份" fill="url(#linearGradient-24)"></path>
-                        <path d="M58.7799671,68.4189046 C56.964374,67.6134554 56.9444655,65.9485348 55.6056981,65.93444 C54.2666043,65.9205475 55.0681676,67.361244 52.5792744,68.7563797 C50.0502377,70.1739704 49.3899923,71.4327493 49.4784384,73.1565734 C49.5672109,74.8803975 50.921549,79.8039754 52.5792744,80.7081068 C54.2369998,81.6122381 54.9840807,80.6422207 56.1985102,80.7081068 C57.2269652,80.7639033 58.8122032,81.4645593 59.8987404,80.7081068 C60.9852776,79.9516543 60.454895,78.1770443 61.3272805,75.667297 C61.9614163,73.8429138 62.3925503,72.3221605 62.212068,71.4740794 C62.0051498,70.5026588 60.5955603,69.2243539 58.7799671,68.4189046 Z" id="Fill-87备份" fill="#B12D1F"></path>
-                        <g id="嘴" transform="translate(43.948649, 56.209691)">
-                            <g id="编组" transform="translate(5.522170, 0.000000)" fill="#FFFFFF">
-                                <path d="M0.170608521,9.93241216 C0.37067298,10.8472072 1.74860471,12.0483843 3.5250335,12.8033913 C5.30178867,13.5583982 5.3174544,15.1269903 6.62880676,15.1371347 C7.94015913,15.1471672 7.15817798,13.791409 9.5994213,12.4711231 C12.079829,11.1293586 12.7296305,9.94184975 12.647059,8.31760846 C12.5641612,6.69336716 11.0896241,3.9756675 9.67252805,1.79070335 C8.25543199,-0.393935356 5.27535275,-0.526712444 3.6157642,1.1037121 C1.95617566,2.73413663 1.87719426,3.27565888 1.01688445,5.64286608 C0.391560624,7.36343585 -0.00432549268,9.13347159 0.170608521,9.93241216" id="Fill-89"></path>
-                            </g>
-                            <g id="编组" transform="translate(0.000000, 2.705357)">
-                                <path d="M10.7072925,0.212672095 C9.7768129,0.543206741 9.04054857,1.26012275 8.3871018,2.06990017 C7.94540816,2.61732788 7.54138839,3.20729001 7.14029159,3.7488733 C6.93276053,4.02843158 6.76452722,4.25993571 6.61837858,4.46708807 C6.54173175,4.57520992 6.46768311,4.68495521 6.39428402,4.79534989 C6.08412414,5.2632285 5.79864715,5.74961445 5.5190161,6.24054607 C5.19846344,6.80258484 4.88538059,7.37046804 4.54988829,7.92211673 C4.10657077,8.65104628 2.64336667,9.87604511 2.10131763,10.5702328 C0.924500656,11.9055229 -1.242613,16.7860272 0.924500656,19.4297841 C3.09161431,22.073541 8.3871018,20.1610145 9.48947749,20.6412068 C10.5918532,21.1213991 11.423096,21.1339172 11.9154545,21.1405193 C12.3714383,21.1465801 14.1100819,20.6290046 14.8330228,20.2660977 C15.5559636,19.9031907 19.4532889,21.7968724 22.4259065,19.208169 C25.3985241,16.6194657 20.9193784,9.96646797 20.4419596,9.447613 C20.0931515,9.06805013 19.8246937,8.66305981 19.4820564,8.32181039 C19.1829388,8.02406946 18.9003848,7.7438618 18.6574533,7.48573307 C18.6006177,7.425016 18.545406,7.36559769 18.4927925,7.30682876 C18.2703218,6.96720278 17.987443,6.50354515 17.6769584,5.98728769 C17.0118197,4.8813928 16.2209932,3.53198024 15.6263307,2.63388708 C14.9706105,1.64228314 14.156725,0.74581344 13.1161467,0.273389167 C12.7267418,0.0967576862 12.3373369,0 11.9677433,0 C11.9502054,0 11.9326676,0 11.9154545,0.000649380444 C11.4809059,0.0113641578 11.084356,0.0785750337 10.7072925,0.212672095 Z" id="Fill-91" fill="url(#linearGradient-25)"></path>
-                                <path d="M6.00637132,6.02172592 C5.5615459,6.93953357 5.47327932,7.8236392 5.8088828,7.99640299 L5.8088828,7.99640299 C6.14448628,8.16916679 6.77759256,7.56514792 7.22241799,6.64799467 L7.22241799,6.64799467 C7.66724341,5.73018702 7.75550999,4.8467358 7.419589,4.6736448 L7.419589,4.6736448 C7.38085331,4.65368535 7.33830755,4.64419643 7.29258674,4.64419643 L7.29258674,4.64419643 C6.94079047,4.64419643 6.39976083,5.21025962 6.00637132,6.02172592" id="Fill-143" fill="url(#linearGradient-26)" transform="translate(6.614362, 6.335045) rotate(15.000000) translate(-6.614362, -6.335045) "></path>
-                                <path d="M15.1449985,4.6736448 C14.8087633,4.8467358 14.8973465,5.73018702 15.3421675,6.64799467 L15.3421675,6.64799467 C15.7869885,7.56514792 16.419771,8.16916679 16.7556886,7.99640299 L16.7556886,7.99640299 C17.0912888,7.8236392 17.0027056,6.93953357 16.5578846,6.02172592 L16.5578846,6.02172592 C16.164499,5.21025962 15.6237922,4.64419643 15.2719995,4.64419643 L15.2719995,4.64419643 C15.2262791,4.64419643 15.1837338,4.65368535 15.1449985,4.6736448" id="Fill-145" fill="url(#linearGradient-27)" transform="translate(15.950092, 6.335045) rotate(-14.000000) translate(-15.950092, -6.335045) "></path>
-                            </g>
-                        </g>
-                        <g id="头顶毛" transform="translate(63.943818, 14.096298) rotate(55.000000) translate(-63.943818, -14.096298) translate(56.206973, 0.569512)">
-                            <mask id="mask-30" fill="white">
-                                <use xlink:href="#path-29"></use>
-                            </mask>
-                            <g id="Clip-117备份">
-                                <use fill="url(#linearGradient-28)" fill-rule="evenodd" xlink:href="#path-29"></use>
-                                <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="#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)">
-                        <g id="编组-2" transform="translate(29.972023, 28.554365) rotate(17.000000) translate(-29.972023, -28.554365) translate(16.276985, 14.767531)">
-                            <g id="Fill-11备份" transform="translate(0.000000, 8.367821)">
-                                <mask id="mask-34" fill="white">
-                                    <use xlink:href="#path-33"></use>
-                                </mask>
-                                <use id="蒙版" fill="url(#linearGradient-32)" xlink:href="#path-33"></use>
-                                <path d="M2.9244758,0.672784224 C4.15300378,2.69340571 8.16166849,9.7389289 8.76212767,12.5745997 C9.36258684,15.4102706 8.54083196,17.9830606 7.53645085,19.0721539 L9.84294559,18.7014424 C10.4882963,17.3073984 10.3897337,14.2980058 8.51090668,8.98197228 C7.52626427,6.43380714 5.45386204,-0.276968218 3.90665354,-1.12031834 C3.76262966,-1.19882267 3.43523708,-0.601121813 2.9244758,0.672784224 Z" fill="url(#linearGradient-35)" mask="url(#mask-34)" transform="translate(6.563611, 8.972500) rotate(4.000000) translate(-6.563611, -8.972500) "></path>
-                            </g>
-                            <g id="Fill-11备份" transform="translate(4.643858, 4.738405)">
-                                <mask id="mask-38" fill="white">
-                                    <use xlink:href="#path-37"></use>
-                                </mask>
-                                <use id="蒙版" fill="url(#linearGradient-36)" xlink:href="#path-37"></use>
-                                <path d="M5.09929062,3.62941632 C6.33079733,5.65154457 11.7334839,14.4792928 12.4633083,16.9774884 C13.1931327,19.475684 12.4632532,21.5541912 11.4603128,22.6417869 L13.7665114,22.2743079 C14.4099546,20.8812934 14.0791521,17.8114638 11.4603128,12.747202 C10.0077818,10.2131494 7.20454921,2.22957682 5.65599519,1.38416418 C5.42476608,1.25792769 5.23919789,2.00634508 5.09929062,3.62941632 Z" fill="url(#linearGradient-39)" mask="url(#mask-38)"></path>
-                            </g>
-                            <g id="Fill-11" transform="translate(6.824258, 0.000000)">
-                                <mask id="mask-42" fill="white">
-                                    <use xlink:href="#path-41"></use>
-                                </mask>
-                                <use id="蒙版" fill="url(#linearGradient-40)" xlink:href="#path-41"></use>
-                                <mask id="mask-45" fill="white">
-                                    <use xlink:href="#path-44"></use>
-                                </mask>
-                                <use id="Clip-12" fill="url(#linearGradient-43)" xlink:href="#path-44"></use>
-                            </g>
-                        </g>
-                        <g id="Fill-15">
-                            <use fill="url(#linearGradient-46)" fill-rule="evenodd" xlink:href="#path-47"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-48)" xlink:href="#path-47"></use>
-                        </g>
-                    </g>
-                    <g id="右翅膀备份-6" transform="translate(94.292397, 85.406164) scale(1, -1) rotate(71.000000) translate(-94.292397, -85.406164) translate(70.742631, 62.534754)">
-                        <g id="编组-2" transform="translate(29.972023, 28.554365) rotate(17.000000) translate(-29.972023, -28.554365) translate(16.276985, 14.767531)">
-                            <g id="Fill-11备份" transform="translate(0.000000, 8.367821)">
-                                <mask id="mask-50" fill="white">
-                                    <use xlink:href="#path-49"></use>
-                                </mask>
-                                <use id="蒙版" fill="url(#linearGradient-32)" xlink:href="#path-49"></use>
-                                <path d="M2.9244758,0.672784224 C4.15300378,2.69340571 8.16166849,9.7389289 8.76212767,12.5745997 C9.36258684,15.4102706 8.54083196,17.9830606 7.53645085,19.0721539 L9.84294559,18.7014424 C10.4882963,17.3073984 10.3897337,14.2980058 8.51090668,8.98197228 C7.52626427,6.43380714 5.45386204,-0.276968218 3.90665354,-1.12031834 C3.76262966,-1.19882267 3.43523708,-0.601121813 2.9244758,0.672784224 Z" fill="url(#linearGradient-35)" mask="url(#mask-50)" transform="translate(6.563611, 8.972500) rotate(4.000000) translate(-6.563611, -8.972500) "></path>
-                            </g>
-                            <g id="Fill-11备份" transform="translate(4.643858, 4.738405)">
-                                <mask id="mask-52" fill="white">
-                                    <use xlink:href="#path-51"></use>
-                                </mask>
-                                <use id="蒙版" fill="url(#linearGradient-36)" xlink:href="#path-51"></use>
-                                <path d="M5.09929062,3.62941632 C6.33079733,5.65154457 11.7334839,14.4792928 12.4633083,16.9774884 C13.1931327,19.475684 12.4632532,21.5541912 11.4603128,22.6417869 L13.7665114,22.2743079 C14.4099546,20.8812934 14.0791521,17.8114638 11.4603128,12.747202 C10.0077818,10.2131494 7.20454921,2.22957682 5.65599519,1.38416418 C5.42476608,1.25792769 5.23919789,2.00634508 5.09929062,3.62941632 Z" fill="url(#linearGradient-39)" mask="url(#mask-52)"></path>
-                            </g>
-                            <g id="Fill-11" transform="translate(6.824258, 0.000000)">
-                                <mask id="mask-54" fill="white">
-                                    <use xlink:href="#path-53"></use>
-                                </mask>
-                                <use id="蒙版" fill="url(#linearGradient-40)" xlink:href="#path-53"></use>
-                                <mask id="mask-56" fill="white">
-                                    <use xlink:href="#path-55"></use>
-                                </mask>
-                                <use id="Clip-12" fill="url(#linearGradient-43)" xlink:href="#path-55"></use>
-                            </g>
-                        </g>
-                        <g id="Fill-15">
-                            <use fill="url(#linearGradient-46)" fill-rule="evenodd" xlink:href="#path-57"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-58)" xlink:href="#path-57"></use>
-                        </g>
-                    </g>
-                </g>
-                <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(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>
-                    <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>
-    </g>
-</svg>

二進制
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression1.png


+ 0 - 324
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression1.svg

@@ -1,324 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="159px" height="114px" viewBox="0 0 159 114" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>真棒备份 2</title>
-    <defs>
-        <linearGradient x1="77.612246%" y1="100%" x2="27.4288906%" y2="41.393852%" id="linearGradient-1">
-            <stop stop-color="#F2D0A4" offset="0%"></stop>
-            <stop stop-color="#F3AC27" offset="100%"></stop>
-        </linearGradient>
-        <path d="M0,1.69685642 C0,1.69685642 5.42067225,10.5503378 9.07772833,18.0021135 L9.07772833,18.0021135 C13.9610155,27.9534586 26.4464391,29.4458996 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L0,1.69685642 Z" id="path-2"></path>
-        <linearGradient x1="50%" y1="0%" x2="76.4096289%" y2="93.0869575%" id="linearGradient-4">
-            <stop stop-color="#F4C250" offset="0%"></stop>
-            <stop stop-color="#F2A81A" offset="100%"></stop>
-        </linearGradient>
-        <path d="M2.60640621,0.224926471 C6.41776096,3.42187211 17.85821,17.1837566 19.4810065,21.4243333 L19.4810065,21.4243333 C20.0272593,22.8517646 20.2695259,23.9179926 20.341532,24.711319 L20.341532,24.711319 C20.9849752,23.3183046 20.3241512,20.5434002 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L2.60640621,0.224926471 Z" id="path-5"></path>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-7">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </linearGradient>
-        <path d="M12.3239913,0.856688508 C18.516157,3.37920238 26.1026861,11.6371674 24.5142965,15.2196517 C23.045444,18.5327108 19.9789794,16.8487173 19.9789794,16.8487173 C19.9789794,16.8487173 20.2443022,21.444935 14.414295,20.389484 C14.414295,20.389484 11.5258947,24.0202909 7.96283666,22.3773195 C4.33451206,20.7044506 -2.05309859,7.63959481 0.648015089,3.17270111 C0.648015089,3.17270111 5.33408374,-1.99087366 12.3239913,0.856688508 Z" id="path-8"></path>
-        <filter x="-8.1%" y="-8.8%" width="116.2%" height="117.5%" filterUnits="objectBoundingBox" id="filter-9">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M0,1.69685642 C0,1.69685642 5.42067225,10.5503378 9.07772833,18.0021135 L9.07772833,18.0021135 C13.9610155,27.9534586 26.4464391,29.4458996 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L0,1.69685642 Z" id="path-10"></path>
-        <path d="M2.60640621,0.224926471 C6.41776096,3.42187211 17.85821,17.1837566 19.4810065,21.4243333 L19.4810065,21.4243333 C20.0272593,22.8517646 20.2695259,23.9179926 20.341532,24.711319 L20.341532,24.711319 C20.9849752,23.3183046 20.3241512,20.5434002 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L2.60640621,0.224926471 Z" id="path-12"></path>
-        <path d="M12.3239913,0.856688508 C18.516157,3.37920238 26.1026861,11.6371674 24.5142965,15.2196517 C23.045444,18.5327108 19.9789794,16.8487173 19.9789794,16.8487173 C19.9789794,16.8487173 20.2443022,21.444935 14.414295,20.389484 C14.414295,20.389484 11.5258947,24.0202909 7.96283666,22.3773195 C4.33451206,20.7044506 -2.05309859,7.63959481 0.648015089,3.17270111 C0.648015089,3.17270111 5.33408374,-1.99087366 12.3239913,0.856688508 Z" id="path-14"></path>
-        <filter x="-8.1%" y="-8.8%" width="116.2%" height="117.5%" filterUnits="objectBoundingBox" id="filter-15">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <radialGradient cx="50%" cy="36.3210319%" fx="50%" fy="36.3210319%" r="62.0360694%" gradientTransform="translate(0.500000,0.363210),scale(0.992740,1.000000),rotate(92.657830),translate(-0.500000,-0.363210)" id="radialGradient-16">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </radialGradient>
-        <path d="M8.08841408,0.970180215 C8.08841408,0.970180215 6.31729051,12.4635139 4.1917473,16.5380737 C0.606943816,23.4101562 -6.80435721,44.6217191 14.6943931,51.5884212 C36.1934683,58.5551234 58.1450702,44.7882891 53.0867127,26.6827485 C49.0116991,12.0975198 45.1520661,6.29680799 44.7904996,0 L8.08841408,0.970180215 Z" id="path-17"></path>
-        <filter x="-4.6%" y="-4.7%" width="109.3%" height="109.4%" filterUnits="objectBoundingBox" id="filter-18">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <linearGradient x1="32.4288665%" y1="50%" x2="57.5753419%" y2="89.3692122%" id="linearGradient-19">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="69.6826821%" y1="61.5784612%" x2="44.0145447%" y2="87.6718365%" id="linearGradient-20">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-21">
-            <stop stop-color="#FFE948" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <radialGradient cx="50%" cy="36.3210319%" fx="50%" fy="36.3210319%" r="62.0655718%" gradientTransform="translate(0.500000,0.363210),scale(0.826585,1.000000),rotate(93.191077),translate(-0.500000,-0.363210)" id="radialGradient-22">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </radialGradient>
-        <path d="M5.43564712,48.7090823 C4.71541977,51.9524209 3.84130046,55.5655479 2.7444943,58.7008952 L2.7444943,58.7008952 C1.67148921,61.7675207 0.380361858,65.4074819 0.103225936,68.7365591 L0.103225936,68.7365591 C-1.7216326,90.6574832 20.9343921,97.6556465 45.4191878,97.5555091 L45.4191878,97.5555091 C69.9039835,97.4556989 90.8205727,89.0487401 90.8238331,68.2764507 L90.8238331,68.2764507 C90.8238331,62.7436966 89.0211455,60.9598767 87.9230351,57.9017596 L87.9230351,57.9017596 C86.8007977,54.7755752 85.6068309,51.5711789 84.6909782,48.3782362 L84.6909782,48.3782362 C79.7843682,31.2688152 68.7250147,23.2905491 45.3008344,22.5143208 L45.3008344,22.5143208 C44.6660302,22.493377 44.0367686,22.4829051 43.4140279,22.4829051 L43.4140279,22.4829051 C22.6483962,22.4829051 8.68922285,34.0530272 5.43564712,48.7090823" id="path-23"></path>
-        <filter x="-3.3%" y="-4.0%" width="106.6%" height="108.0%" filterUnits="objectBoundingBox" id="filter-24">
-            <feGaussianBlur stdDeviation="2.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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>
-        <path d="M47.0491017,84.2969811 C47.0491017,84.2969811 41.7877983,86.929063 36.8429647,84.6256828 C36.6587541,84.3105087 42.3883945,92.0463038 47.0491017,84.2969811 Z" id="path-25"></path>
-        <filter x="-46.5%" y="-151.8%" width="193.0%" height="374.6%" filterUnits="objectBoundingBox" id="filter-26">
-            <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.247864196 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <filter x="-12.5%" y="-13.2%" width="125.1%" height="126.4%" filterUnits="objectBoundingBox" id="filter-27">
-            <feGaussianBlur stdDeviation="1" in="SourceGraphic"></feGaussianBlur>
-        </filter>
-        <path d="M14.8206154,16.9086956 C13.1011589,15.8302649 10.8774563,15.1025938 8.13210614,14.667773 C4.77252958,14.1356684 3.2099549,14.6070556 2.06082644,15.1412619 C0.5521372,13.1780086 0,12.1307174 0,9.18898055 C0,3.98734102 4.08109036,0 8.96221032,0 C13.8429715,0 17.7995309,4.21705986 17.7995309,9.41869938 C17.7995309,12.0716141 16.4766585,15.1968194 14.8206154,16.9086956 Z" id="path-28"></path>
-        <filter x="-8.4%" y="-8.9%" width="116.9%" height="117.7%" filterUnits="objectBoundingBox" id="filter-30">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.128233583 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <linearGradient x1="48.9356923%" y1="92.9466699%" x2="51.2727375%" y2="-1.36853401%" id="linearGradient-31">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#F7F4EB" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="49.9984235%" y1="100.001272%" x2="49.9984235%" y2="0.00138610816%" id="linearGradient-32">
-            <stop stop-color="#152479" offset="0%"></stop>
-            <stop stop-color="#0B4B79" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="0.000502853684%" y1="49.999885%" x2="99.9989619%" y2="49.999885%" id="linearGradient-33">
-            <stop stop-color="#000000" offset="0%"></stop>
-            <stop stop-color="#00003D" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="57.5618021%" y1="0%" x2="60.4622466%" y2="11.9988623%" id="linearGradient-34">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
-        </linearGradient>
-        <filter x="-12.5%" y="-13.2%" width="125.1%" height="126.4%" filterUnits="objectBoundingBox" id="filter-35">
-            <feGaussianBlur stdDeviation="1" in="SourceGraphic"></feGaussianBlur>
-        </filter>
-        <path d="M14.8206154,16.9086956 C13.1011589,15.8302649 10.8774563,15.1025938 8.13210614,14.667773 C4.77252958,14.1356684 3.2099549,14.6070556 2.06082644,15.1412619 C0.5521372,13.1780086 0,12.1307174 0,9.18898055 C0,3.98734102 4.08109036,0 8.96221032,0 C13.8429715,0 17.7995309,4.21705986 17.7995309,9.41869938 C17.7995309,12.0716141 16.4766585,15.1968194 14.8206154,16.9086956 Z" id="path-36"></path>
-        <filter x="-8.4%" y="-8.9%" width="116.9%" height="117.7%" filterUnits="objectBoundingBox" id="filter-38">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.128233583 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-39">
-            <stop stop-color="#BBE8FC" offset="0%"></stop>
-            <stop stop-color="#85CCF7" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-40">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#FFFFFF" stop-opacity="0.528894811" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="-0.00139152473%" y1="50.000508%" x2="99.99952%" y2="50.000508%" id="linearGradient-41">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F29942" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="0%" y1="59.2364439%" x2="101.94585%" y2="59.2364439%" id="linearGradient-42">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F8B911" offset="48.5652346%"></stop>
-            <stop stop-color="#F7D510" offset="49.0626726%"></stop>
-            <stop stop-color="#F5CB0D" offset="100%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="35.7866085%" y1="99.1220678%" x2="64.2147804%" y2="0.868067724%" id="linearGradient-43">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F28042" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="64.2132492%" y1="99.1220678%" x2="35.7853605%" y2="0.868067724%" id="linearGradient-44">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F28042" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-45">
-            <stop stop-color="#00B4E0" offset="0%"></stop>
-            <stop stop-color="#7EDAF5" offset="100%"></stop>
-        </linearGradient>
-        <path d="M12.0947355,1.23453948 C12.5183707,4.18848781 9.1598501,4.32072491 3.50173449,8.75834089 L3.50173449,8.75834089 C-2.15670625,13.1953038 -0.132490438,22.233465 3.76801023,24.2966903 L3.76801023,24.2966903 C6.4941666,25.738891 7.89187039,26.1816404 7.89187039,26.1816404 L7.89187039,26.1816404 C9.72718974,27.0694248 12.973868,27.807014 10.6414356,25.6108985 L10.6414356,25.6108985 C7.88114133,23.0125211 13.4641535,21.4420014 14.8816898,16.8264367 L14.8816898,16.8264367 C16.5112063,11.519974 14.2704586,8.5862694 14.1725966,6.29938379 L14.1725966,6.29938379 C14.0721336,3.95372613 12.5817697,-0.000326511366 12.1405778,0 L12.1405778,0 C12.0072774,0.000326511366 11.9695631,0.36079506 12.0947355,1.23453948" id="path-46"></path>
-        <filter x="-19.4%" y="-11.1%" width="138.8%" height="122.2%" filterUnits="objectBoundingBox" id="filter-48">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="-1" dy="2" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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="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="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="蓝色" 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)">
-                    <g id="右翅膀" transform="translate(64.387500, 95.257012)">
-                        <g id="Fill-11" transform="translate(16.046683, 9.038832)">
-                            <mask id="mask-3" fill="white">
-                                <use xlink:href="#path-2"></use>
-                            </mask>
-                            <use id="蒙版" fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
-                            <mask id="mask-6" fill="white">
-                                <use xlink:href="#path-5"></use>
-                            </mask>
-                            <use id="Clip-12" fill="url(#linearGradient-4)" xlink:href="#path-5"></use>
-                        </g>
-                        <g id="Fill-15">
-                            <use fill="url(#linearGradient-7)" fill-rule="evenodd" xlink:href="#path-8"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-9)" xlink:href="#path-8"></use>
-                        </g>
-                    </g>
-                    <g id="右翅膀备份-3" transform="translate(18.306250, 113.563262) scale(-1, 1) translate(-18.306250, -113.563262) translate(0.000000, 95.257012)">
-                        <g id="Fill-11" transform="translate(16.046683, 9.038832)">
-                            <mask id="mask-11" fill="white">
-                                <use xlink:href="#path-10"></use>
-                            </mask>
-                            <use id="蒙版" fill="url(#linearGradient-1)" xlink:href="#path-10"></use>
-                            <mask id="mask-13" fill="white">
-                                <use xlink:href="#path-12"></use>
-                            </mask>
-                            <use id="Clip-12" fill="url(#linearGradient-4)" xlink:href="#path-12"></use>
-                        </g>
-                        <g id="Fill-15">
-                            <use fill="url(#linearGradient-7)" fill-rule="evenodd" xlink:href="#path-14"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-15)" xlink:href="#path-14"></use>
-                        </g>
-                    </g>
-                    <g id="身" transform="translate(22.631102, 86.735137)">
-                        <g id="Fill-57">
-                            <use fill="url(#radialGradient-16)" fill-rule="evenodd" xlink:href="#path-17"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-18)" xlink:href="#path-17"></use>
-                        </g>
-                        <path d="M13.9174312,7.39580895 C13.9174312,7.39580895 12.6459386,15.646119 11.1204074,18.5711154 C8.54656074,23.5041516 3.22669287,38.730363 18.6593775,43.7314071 C34.0920621,48.7324512 49.8057485,38.450775 46.218671,25.8532165 C43.2420009,15.3983994 40.522618,11.2196923 40.2633817,6.69930301 L13.9174312,7.39580895 Z" id="Fill-61" fill="#F8F4EC"></path>
-                        <g id="脖子毛" transform="translate(17.059970, 2.143463)">
-                            <path d="M4.12505343,15.606083 C4.82595311,16.1752451 5.88390867,16.251198 6.75260149,15.9247621 C7.04690008,15.8142263 7.31939878,15.6577956 7.5496189,15.4583788 C7.69957576,15.3284509 7.83136603,15.1801003 7.93904431,15.0146199 C8.13028885,14.7208276 8.2558034,14.3821099 8.33111213,14.0168895 C8.42359654,13.5656969 8.43945101,13.0734574 8.40642087,12.575077 C8.32846972,11.3818083 7.97306536,10.1516943 7.73392711,9.35241108 C6.50718751,5.251277 6.0517018,2.32757467 5.12751834,1.14723408 C5.01389464,1.00211554 4.8910225,0.885762142 4.76253523,0.796234666 C4.56567556,0.659519423 4.35659474,0.585828937 4.14784423,0.566759908 C3.53084111,0.51116884 2.92011372,0.935858743 2.66115738,1.63688797 C2.47519767,2.13947001 2.35034372,2.87637486 2.3691709,3.95458302 C2.40220104,5.86083952 2.38601627,8.00206525 2.52375198,10.4522739 C2.5974092,11.7712689 2.754963,12.9490239 3.06280395,13.8837295 C3.19657604,14.2890272 3.35875405,14.6484299 3.55462282,14.9538576 C3.71977354,15.2111279 3.90870597,15.4302601 4.12505343,15.606083" id="Fill-65" fill="url(#linearGradient-19)" transform="translate(5.394758, 8.339796) rotate(19.000000) translate(-5.394758, -8.339796) "></path>
-                            <path d="M10.6515863,15.2671083 C11.2245455,15.9863725 12.2655158,16.2546108 13.1709677,16.0522274 C13.4000883,16.0011497 13.6200693,15.9201963 13.8217711,15.8087248 C14.0111817,15.7036782 14.1845191,15.5722896 14.3332742,15.4139166 C14.6686034,15.0563726 14.8961483,14.5844659 15.0467943,14.0579478 C15.2248591,13.4366629 15.2960851,12.7395645 15.3121582,12.0646319 C15.3323284,11.2326112 15.2686662,10.4346424 15.2179256,9.85511915 C14.8498199,5.62434234 14.9793502,2.68785556 14.3386319,1.36176242 C14.2497571,1.17801114 14.1429182,1.02766919 14.023788,0.909130337 C13.8974093,0.782881644 13.7571635,0.692612222 13.6093539,0.636073367 C13.0253642,0.411202921 12.329493,0.709316883 11.93712,1.37139972 C11.6679742,1.82628051 11.4108045,2.52080894 11.2236,3.57577258 C10.8920527,5.44026981 10.4694244,7.5244976 10.1328346,9.9389637 C10.0058255,10.8461553 9.93018729,11.6942381 9.9339692,12.4533365 C9.93680563,13.083295 9.99416458,13.651896 10.1224343,14.1427561 C10.2374674,14.5847871 10.4101745,14.9638544 10.6515863,15.2671083" id="Fill-69" fill="url(#linearGradient-20)" transform="translate(12.624910, 8.339796) rotate(-13.000000) translate(-12.624910, -8.339796) "></path>
-                            <path d="M6.79458078,19.2295328 C7.49411195,20.0221552 8.68079913,20.3150666 9.74463543,20.1147909 C10.0553567,20.0560781 10.3559492,19.9552878 10.63073,19.8130725 C10.9202138,19.6627026 11.1809451,19.4660148 11.3959342,19.2233354 C11.7883382,18.7787492 12.046129,18.2056474 12.208841,17.570571 C12.3865827,16.8764556 12.450622,16.1082969 12.4529091,15.3544902 C12.4565032,14.2386215 12.3241771,13.1537401 12.2241974,12.3852552 C11.5550522,7.23320997 11.5713887,3.63803159 10.7062049,2.05017745 C10.5621165,1.78499146 10.3928698,1.57623495 10.1925837,1.42488649 C9.98151544,1.26603584 9.76489276,1.17111687 9.54990373,1.12969175 C8.81443213,0.987802566 8.10019805,1.47479234 7.71008118,2.18260736 C7.39641937,2.75212119 7.1105297,3.61389412 6.92886724,4.9124248 C6.60736388,7.20776777 6.18392044,9.77645129 5.88300114,12.7443816 C5.7647245,13.90983 5.71277427,14.9934067 5.76537797,15.9520557 C5.80589262,16.6859653 5.9078327,17.3468101 6.08851497,17.9153454 C6.25351416,18.4352796 6.48451301,18.8782348 6.79458078,19.2295328" id="Fill-77" fill="url(#linearGradient-21)"></path>
-                        </g>
-                    </g>
-                    <g id="头" transform="translate(5.139105, 0.000000)">
-                        <g id="Fill-71">
-                            <use fill="url(#radialGradient-22)" fill-rule="evenodd" xlink:href="#path-23"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-24)" xlink:href="#path-23"></use>
-                        </g>
-                        <path d="M39.0724674,62.041086 C39.0724674,62.041086 41.4337527,43.2712671 27.5741482,42.6838132 C13.5214457,42.0882048 12.3641644,53.5792717 11.2738628,61.3061979 C10.2279967,68.7196632 1.29026885,78.1068559 11.7721277,89.8314691 C22.6447569,100.90013 61.9534429,98.7463503 73.4017721,92.3502468 C82.1816889,87.4451214 84.2992329,81.3226846 84.0813033,73.9907648 C83.8359282,65.7223764 76.0950162,61.086025 74.8527847,55.6955407 C73.6102266,50.3053826 69.9805713,41.5959961 62.3370251,40.8937262 C54.550044,40.1777566 45.4809702,41.2479599 47.3279808,62.0890348 C47.3279808,62.0890348 43.7185829,68.4401252 39.0724674,62.041086" id="Fill-81" fill="#F8F4EC"></path>
-                        <g id="下巴" transform="translate(41.943868, 86.026726) scale(1, -1) translate(-41.943868, -86.026726) ">
-                            <use fill="black" fill-opacity="1" filter="url(#filter-26)" xlink:href="#path-25"></use>
-                            <use fill="#FFF9EF" fill-rule="evenodd" xlink:href="#path-25"></use>
-                        </g>
-                        <g id="左眼" transform="translate(13.093688, 44.740490)">
-                            <path d="M13.3645925,21.1420557 C22.7563818,21.1420557 23.7449465,27.9170439 23.7449465,23.7334869 C23.7449465,19.54993 26.1706837,2.33125135 12.2331212,2.33125135 C-1.70444117,2.33125135 0.0734571987,18.2379519 0.0734571987,22.4215088 C0.0734571987,26.6050658 3.97280322,21.1420557 13.3645925,21.1420557 Z" id="椭圆形" fill="#D8D8D8" opacity="0.479851132" filter="url(#filter-27)"></path>
-                            <g transform="translate(12.019336, 14.885040) rotate(-9.000000) translate(-12.019336, -14.885040) translate(3.119570, 6.430692)">
-                                <mask id="mask-29" fill="white">
-                                    <use xlink:href="#path-28"></use>
-                                </mask>
-                                <g id="Fill-102">
-                                    <use fill="black" fill-opacity="1" filter="url(#filter-30)" xlink:href="#path-28"></use>
-                                    <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-28"></use>
-                                </g>
-                                <path d="M8.21358148,17.8051839 C12.7498971,17.8051839 16.427163,13.9474927 16.427163,9.18898055 C16.427163,4.43009037 12.7498971,0.572399183 8.21358148,0.572399183 C3.6772659,0.572399183 -1.43529633e-13,4.43009037 -1.43529633e-13,9.18898055 C-1.43529633e-13,13.9474927 3.6772659,17.8051839 8.21358148,17.8051839 Z" id="Fill-104" fill="url(#linearGradient-31)" mask="url(#mask-29)"></path>
-                                <path d="M7.45713361,16.6278693 C10.8640781,16.6278693 13.6265495,13.5192782 13.6265495,9.68450766 C13.6265495,5.84934883 10.8640781,2.74036933 7.45713361,2.74036933 C4.05018911,2.74036933 1.28806276,5.84934883 1.28806276,9.68450766 C1.28806276,13.5192782 4.05018911,16.6278693 7.45713361,16.6278693 Z" id="Fill-106" fill="url(#linearGradient-32)" mask="url(#mask-29)"></path>
-                                <path d="M5.89434012,13.6911434 C8.06374161,13.6911434 9.82277088,11.7623561 9.82277088,9.38313351 C9.82277088,7.00353832 8.06374161,5.07475105 5.89434012,5.07475105 C3.72459891,5.07475105 1.96590936,7.00353832 1.96590936,9.38313351 C1.96590936,11.7623561 3.72459891,13.6911434 5.89434012,13.6911434 Z" id="Fill-110" fill="url(#linearGradient-33)" mask="url(#mask-29)"></path>
-                                <path d="M3.73521943,10.7073904 C2.93584139,10.7073904 2.28760223,9.93267724 2.28760223,8.97733738 C2.28760223,8.02199752 2.93584139,7.24728435 3.73521943,7.24728435 C4.53459748,7.24728435 5.18283664,8.02199752 5.18283664,8.97733738 C5.18283664,9.93267724 4.53459748,10.7073904 3.73521943,10.7073904 Z" id="Fill-124" fill="#FFFFFF" mask="url(#mask-29)" transform="translate(3.735219, 8.977337) rotate(29.000000) translate(-3.735219, -8.977337) "></path>
-                                <path d="M5.3495453,12.7801345 C4.91104309,12.7801345 4.55572134,12.3483834 4.55572134,11.8164111 C4.55572134,11.2840578 4.91104309,10.8526878 5.3495453,10.8526878 C5.7880475,10.8526878 6.14336925,11.2840578 6.14336925,11.8164111 C6.14336925,12.3483834 5.7880475,12.7801345 5.3495453,12.7801345 Z" id="Fill-126" fill="#FFFFFF" mask="url(#mask-29)" transform="translate(5.349545, 11.816411) rotate(33.000000) translate(-5.349545, -11.816411) "></path>
-                                <path d="M6.788099,10.5009613 C6.50279282,10.5009613 6.271607,10.2181593 6.271607,9.86971126 C6.271607,9.52101366 6.50279282,9.23846126 6.788099,9.23846126 C7.07340517,9.23846126 7.30459099,9.52101366 7.30459099,9.86971126 C7.30459099,10.2181593 7.07340517,10.5009613 6.788099,10.5009613 Z" id="Fill-126备份" fill="#FFFFFF" mask="url(#mask-29)" transform="translate(6.788099, 9.869711) rotate(30.000000) translate(-6.788099, -9.869711) "></path>
-                            </g>
-                            <path d="M13.1343152,44.138111 C20.4555399,44.138111 23.518812,29.7284281 23.518812,26.5907604 C23.518812,23.4530927 18.9421826,21.1420557 11.8073332,21.1420557 C9.4882078,21.1420557 5.34822464,21.862605 3.61791117,22.4215088 C-3.21172334,24.6275304 5.81309052,44.138111 13.1343152,44.138111 Z" id="椭圆形" fill="url(#linearGradient-34)"></path>
-                            <path d="M21.2307762,6.13270119 C20.1848876,6.13270119 19.336885,4.71972881 19.336885,2.97645119 C19.336885,1.23317357 20.1848876,-0.179798809 21.2307762,-0.179798809 C22.2766648,-0.179798809 23.124385,1.23317357 23.124385,2.97645119 C23.124385,4.71972881 22.2766648,6.13270119 21.2307762,6.13270119 Z" id="眉毛" fill="#FFD155" transform="translate(21.230635, 2.976451) rotate(67.000000) translate(-21.230635, -2.976451) "></path>
-                        </g>
-                        <g id="左眼备份" transform="translate(58.987901, 66.809545) scale(-1, 1) translate(-58.987901, -66.809545) translate(45.918688, 44.740490)">
-                            <path d="M13.3645925,21.1420557 C22.7563818,21.1420557 23.7449465,27.9170439 23.7449465,23.7334869 C23.7449465,19.54993 26.1706837,2.33125135 12.2331212,2.33125135 C-1.70444117,2.33125135 0.0734571987,18.2379519 0.0734571987,22.4215088 C0.0734571987,26.6050658 3.97280322,21.1420557 13.3645925,21.1420557 Z" id="椭圆形" fill="#D8D8D8" opacity="0.479851132" filter="url(#filter-35)"></path>
-                            <g id="左眼" transform="translate(12.019336, 14.885040) scale(-1, 1) rotate(-9.000000) translate(-12.019336, -14.885040) translate(3.119570, 6.430692)">
-                                <mask id="mask-37" fill="white">
-                                    <use xlink:href="#path-36"></use>
-                                </mask>
-                                <g id="Fill-102">
-                                    <use fill="black" fill-opacity="1" filter="url(#filter-38)" xlink:href="#path-36"></use>
-                                    <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-36"></use>
-                                </g>
-                                <path d="M8.21358148,17.8051839 C12.7498971,17.8051839 16.427163,13.9474927 16.427163,9.18898055 C16.427163,4.43009037 12.7498971,0.572399183 8.21358148,0.572399183 C3.6772659,0.572399183 -1.43529633e-13,4.43009037 -1.43529633e-13,9.18898055 C-1.43529633e-13,13.9474927 3.6772659,17.8051839 8.21358148,17.8051839 Z" id="Fill-104" fill="url(#linearGradient-31)" mask="url(#mask-37)"></path>
-                                <path d="M7.45713361,16.6278693 C10.8640781,16.6278693 13.6265495,13.5192782 13.6265495,9.68450766 C13.6265495,5.84934883 10.8640781,2.74036933 7.45713361,2.74036933 C4.05018911,2.74036933 1.28806276,5.84934883 1.28806276,9.68450766 C1.28806276,13.5192782 4.05018911,16.6278693 7.45713361,16.6278693 Z" id="Fill-106" fill="url(#linearGradient-32)" mask="url(#mask-37)"></path>
-                                <path d="M5.89434012,13.6911434 C8.06374161,13.6911434 9.82277088,11.7623561 9.82277088,9.38313351 C9.82277088,7.00353832 8.06374161,5.07475105 5.89434012,5.07475105 C3.72459891,5.07475105 1.96590936,7.00353832 1.96590936,9.38313351 C1.96590936,11.7623561 3.72459891,13.6911434 5.89434012,13.6911434 Z" id="Fill-110" fill="url(#linearGradient-33)" mask="url(#mask-37)"></path>
-                                <path d="M3.73521943,10.7073904 C2.93584139,10.7073904 2.28760223,9.93267724 2.28760223,8.97733738 C2.28760223,8.02199752 2.93584139,7.24728435 3.73521943,7.24728435 C4.53459748,7.24728435 5.18283664,8.02199752 5.18283664,8.97733738 C5.18283664,9.93267724 4.53459748,10.7073904 3.73521943,10.7073904 Z" id="Fill-124" fill="#FFFFFF" mask="url(#mask-37)" transform="translate(3.735219, 8.977337) rotate(29.000000) translate(-3.735219, -8.977337) "></path>
-                                <path d="M5.3495453,12.7801345 C4.91104309,12.7801345 4.55572134,12.3483834 4.55572134,11.8164111 C4.55572134,11.2840578 4.91104309,10.8526878 5.3495453,10.8526878 C5.7880475,10.8526878 6.14336925,11.2840578 6.14336925,11.8164111 C6.14336925,12.3483834 5.7880475,12.7801345 5.3495453,12.7801345 Z" id="Fill-126" fill="#FFFFFF" mask="url(#mask-37)" transform="translate(5.349545, 11.816411) rotate(33.000000) translate(-5.349545, -11.816411) "></path>
-                                <path d="M6.788099,10.5009613 C6.50279282,10.5009613 6.271607,10.2181593 6.271607,9.86971126 C6.271607,9.52101366 6.50279282,9.23846126 6.788099,9.23846126 C7.07340517,9.23846126 7.30459099,9.52101366 7.30459099,9.86971126 C7.30459099,10.2181593 7.07340517,10.5009613 6.788099,10.5009613 Z" id="Fill-126备份" fill="#FFFFFF" mask="url(#mask-37)" transform="translate(6.788099, 9.869711) rotate(30.000000) translate(-6.788099, -9.869711) "></path>
-                            </g>
-                            <path d="M13.1343152,44.138111 C20.4555399,44.138111 23.518812,29.7284281 23.518812,26.5907604 C23.518812,23.4530927 18.9421826,21.1420557 11.8073332,21.1420557 C9.4882078,21.1420557 5.34822464,21.862605 3.61791117,22.4215088 C-3.21172334,24.6275304 5.81309052,44.138111 13.1343152,44.138111 Z" id="椭圆形" fill="url(#linearGradient-34)"></path>
-                            <path d="M22.4932762,6.13270119 C21.4473876,6.13270119 20.599385,4.71972881 20.599385,2.97645119 C20.599385,1.23317357 21.4473876,-0.179798809 22.4932762,-0.179798809 C23.5391648,-0.179798809 24.386885,1.23317357 24.386885,2.97645119 C24.386885,4.71972881 23.5391648,6.13270119 22.4932762,6.13270119 Z" id="眉毛" fill="#FFD155" transform="translate(22.493135, 2.976451) rotate(67.000000) translate(-22.493135, -2.976451) "></path>
-                        </g>
-                        <g id="编组-24" transform="translate(16.881188, 65.811105)">
-                            <path d="M8.97865848,0.071439987 C12.0415292,0.310200652 14.469903,0.774575938 14.2512851,1.6543843 C14.0326671,2.53419267 12.0025202,2.27977023 10.9814651,2.50406588 L10.5523164,2.58973887 C10.4774257,2.6033258 10.4008962,2.61655793 10.3227942,2.629422 L9.83584436,2.70208347 L9.31434083,2.76527449 L8.76146809,2.81835818 L8.18041055,2.86069764 L7.57435263,2.891656 L7.575,2.9168843 C7.575,3.270373 7.42972347,3.58993055 7.19561902,3.81910833 C7.42972859,4.39054684 7.575,5.18942813 7.575,6.0731343 C7.575,7.81628304 6.90333668,9.1780441 5.42936861,8.86672857 C3.95540054,8.55541303 3.49596571,7.10882823 3.90221544,6.0731343 C4.23730835,5.21884773 5.19527141,4.39054684 5.42936861,3.81760453 C5.22871826,3.6224554 5.09332014,3.35979998 5.05872987,3.06613308 L5.05027781,2.89013264 L4.44440976,2.85950651 L3.86349721,2.81745002 L3.31072951,2.76460379 L2.789296,2.70160841 L2.30238605,2.62910448 L1.85318901,2.54773262 C0.708449096,2.31948649 0,2.00348211 0,1.6543843 C0,1.29450843 1.09446722,0.621859168 2.30238605,0.391884302 C4.71132051,0.0190809817 6.93674465,-0.0877337899 8.97865848,0.071439987 Z" id="形状结合" fill="url(#linearGradient-39)" fill-rule="nonzero"></path>
-                            <path d="M5.77130474,8.53059106 C5.92062124,8.3384081 4.93021,7.80771653 4.93021,6.74379073 C4.93021,5.67986492 5.97863205,4.99880994 5.56940082,4.78519067 C5.1601696,4.57157139 3.73462097,5.38696841 4.14617693,6.95877973 C4.5577329,8.53059106 5.62198824,8.72277401 5.77130474,8.53059106 Z" id="椭圆形" fill="url(#linearGradient-40)" opacity="0.666886829" transform="translate(4.929509, 6.671718) scale(-1, 1) rotate(-180.000000) translate(-4.929509, -6.671718) "></path>
-                        </g>
-                        <g id="编组-23" transform="translate(61.888674, 70.266743) scale(-1, 1) translate(-61.888674, -70.266743) translate(54.756188, 65.811105)">
-                            <path d="M8.97865848,0.071439987 C12.0415292,0.310200652 14.469903,0.774575938 14.2512851,1.6543843 C14.0326671,2.53419267 12.0025202,2.27977023 10.9814651,2.50406588 L10.5523164,2.58973887 C10.4774257,2.6033258 10.4008962,2.61655793 10.3227942,2.629422 L9.83584436,2.70208347 L9.31434083,2.76527449 L8.76146809,2.81835818 L8.18041055,2.86069764 L7.57435263,2.891656 L7.575,2.9168843 C7.575,3.270373 7.42972347,3.58993055 7.19561902,3.81910833 C7.42972859,4.39054684 7.575,5.18942813 7.575,6.0731343 C7.575,7.81628304 6.90333668,9.1780441 5.42936861,8.86672857 C3.95540054,8.55541303 3.49596571,7.10882823 3.90221544,6.0731343 C4.23730835,5.21884773 5.19527141,4.39054684 5.42936861,3.81760453 C5.22871826,3.6224554 5.09332014,3.35979998 5.05872987,3.06613308 L5.05027781,2.89013264 L4.44440976,2.85950651 L3.86349721,2.81745002 L3.31072951,2.76460379 L2.789296,2.70160841 L2.30238605,2.62910448 L1.85318901,2.54773262 C0.708449096,2.31948649 0,2.00348211 0,1.6543843 C0,1.29450843 1.09446722,0.621859168 2.30238605,0.391884302 C4.71132051,0.0190809817 6.93674465,-0.0877337899 8.97865848,0.071439987 Z" id="形状结合" fill="url(#linearGradient-39)" fill-rule="nonzero"></path>
-                            <path d="M5.77130474,8.53059106 C5.92062124,8.3384081 4.93021,7.80771653 4.93021,6.74379073 C4.93021,5.67986492 5.97863205,4.99880994 5.56940082,4.78519067 C5.1601696,4.57157139 3.73462097,5.38696841 4.14617693,6.95877973 C4.5577329,8.53059106 5.62198824,8.72277401 5.77130474,8.53059106 Z" id="椭圆形" fill="url(#linearGradient-40)" opacity="0.666886829" transform="translate(4.929509, 6.671718) scale(-1, 1) rotate(-180.000000) translate(-4.929509, -6.671718) "></path>
-                        </g>
-                        <path d="M36.3376332,73.628112 C36.4305967,75.5253327 36.8059416,79.5525023 38.6842252,81.0141137 C40.5625089,82.4757251 41.7949369,81.2435984 43.0572246,81.3831368 C44.2095722,81.5105218 45.2425902,82.1680825 47.1768777,81.3831368 C49.1111651,80.5981911 47.9226138,79.5469742 48.8407485,76.784261 C49.5084246,74.7761054 49.9291565,72.7093175 49.7390764,71.7761981 C49.5212031,70.7068252 48.0376202,69.2996505 46.1269163,68.4131704 C44.2162123,67.5266902 44.1951278,65.6937652 42.7859796,65.6784408 C42.7792709,65.6784408 42.7725622,65.6784408 42.7658535,65.6784408 C41.384818,65.6784408 42.2080723,67.2561822 39.6009405,68.7846192 C36.9391807,70.3453705 36.2440307,71.7305582 36.3376332,73.628112 Z" id="Fill-85备份" fill="url(#linearGradient-41)"></path>
-                        <path d="M45.6386816,68.4189046 C43.8230885,67.6134554 43.8031799,65.9485348 42.4644125,65.93444 C41.1253188,65.9205475 41.9268821,67.361244 39.4379888,68.7563797 C36.9089521,70.1739704 36.2487068,71.4327493 36.3371529,73.1565734 C36.4259254,74.8803975 37.7802634,79.8039754 39.4379888,80.7081068 C41.0957142,81.6122381 41.8427952,80.6422207 43.0572246,80.7081068 C44.0856796,80.7639033 45.6709176,81.4645593 46.7574548,80.7081068 C47.843992,79.9516543 47.3136095,78.1770443 48.185995,75.667297 C48.8201308,73.8429138 49.2512648,72.3221605 49.0707825,71.4740794 C48.8638643,70.5026588 47.4542747,69.2243539 45.6386816,68.4189046 Z" id="Fill-87备份" fill="#B12D1F"></path>
-                        <g id="嘴" transform="translate(30.807363, 56.209691)">
-                            <g id="编组" transform="translate(5.522170, 0.000000)" fill="#FFFFFF">
-                                <path d="M0.170608521,9.93241216 C0.37067298,10.8472072 1.74860471,12.0483843 3.5250335,12.8033913 C5.30178867,13.5583982 5.3174544,15.1269903 6.62880676,15.1371347 C7.94015913,15.1471672 7.15817798,13.791409 9.5994213,12.4711231 C12.079829,11.1293586 12.7296305,9.94184975 12.647059,8.31760846 C12.5641612,6.69336716 11.0896241,3.9756675 9.67252805,1.79070335 C8.25543199,-0.393935356 5.27535275,-0.526712444 3.6157642,1.1037121 C1.95617566,2.73413663 1.87719426,3.27565888 1.01688445,5.64286608 C0.391560624,7.36343585 -0.00432549268,9.13347159 0.170608521,9.93241216" id="Fill-89"></path>
-                            </g>
-                            <g id="编组" transform="translate(0.000000, 2.705357)">
-                                <path d="M10.7072925,0.212672095 C9.7768129,0.543206741 9.04054857,1.26012275 8.3871018,2.06990017 C7.94540816,2.61732788 7.54138839,3.20729001 7.14029159,3.7488733 C6.93276053,4.02843158 6.76452722,4.25993571 6.61837858,4.46708807 C6.54173175,4.57520992 6.46768311,4.68495521 6.39428402,4.79534989 C6.08412414,5.2632285 5.79864715,5.74961445 5.5190161,6.24054607 C5.19846344,6.80258484 4.88538059,7.37046804 4.54988829,7.92211673 C4.10657077,8.65104628 2.64336667,9.87604511 2.10131763,10.5702328 C0.924500656,11.9055229 -1.242613,16.7860272 0.924500656,19.4297841 C3.09161431,22.073541 8.3871018,20.1610145 9.48947749,20.6412068 C10.5918532,21.1213991 11.423096,21.1339172 11.9154545,21.1405193 C12.3714383,21.1465801 14.1100819,20.6290046 14.8330228,20.2660977 C15.5559636,19.9031907 19.4532889,21.7968724 22.4259065,19.208169 C25.3985241,16.6194657 20.9193784,9.96646797 20.4419596,9.447613 C20.0931515,9.06805013 19.8246937,8.66305981 19.4820564,8.32181039 C19.1829388,8.02406946 18.9003848,7.7438618 18.6574533,7.48573307 C18.6006177,7.425016 18.545406,7.36559769 18.4927925,7.30682876 C18.2703218,6.96720278 17.987443,6.50354515 17.6769584,5.98728769 C17.0118197,4.8813928 16.2209932,3.53198024 15.6263307,2.63388708 C14.9706105,1.64228314 14.156725,0.74581344 13.1161467,0.273389167 C12.7267418,0.0967576862 12.3373369,0 11.9677433,0 C11.9502054,0 11.9326676,0 11.9154545,0.000649380444 C11.4809059,0.0113641578 11.084356,0.0785750337 10.7072925,0.212672095 Z" id="Fill-91" fill="url(#linearGradient-42)"></path>
-                                <path d="M6.00637132,6.02172592 C5.5615459,6.93953357 5.47327932,7.8236392 5.8088828,7.99640299 L5.8088828,7.99640299 C6.14448628,8.16916679 6.77759256,7.56514792 7.22241799,6.64799467 L7.22241799,6.64799467 C7.66724341,5.73018702 7.75550999,4.8467358 7.419589,4.6736448 L7.419589,4.6736448 C7.38085331,4.65368535 7.33830755,4.64419643 7.29258674,4.64419643 L7.29258674,4.64419643 C6.94079047,4.64419643 6.39976083,5.21025962 6.00637132,6.02172592" id="Fill-143" fill="url(#linearGradient-43)" transform="translate(6.614362, 6.335045) rotate(15.000000) translate(-6.614362, -6.335045) "></path>
-                                <path d="M15.1449985,4.6736448 C14.8087633,4.8467358 14.8973465,5.73018702 15.3421675,6.64799467 L15.3421675,6.64799467 C15.7869885,7.56514792 16.419771,8.16916679 16.7556886,7.99640299 L16.7556886,7.99640299 C17.0912888,7.8236392 17.0027056,6.93953357 16.5578846,6.02172592 L16.5578846,6.02172592 C16.164499,5.21025962 15.6237922,4.64419643 15.2719995,4.64419643 L15.2719995,4.64419643 C15.2262791,4.64419643 15.1837338,4.65368535 15.1449985,4.6736448" id="Fill-145" fill="url(#linearGradient-44)" transform="translate(15.950092, 6.335045) rotate(-14.000000) translate(-15.950092, -6.335045) "></path>
-                            </g>
-                        </g>
-                        <g id="头顶毛" transform="translate(50.802533, 14.096298) rotate(55.000000) translate(-50.802533, -14.096298) translate(43.065688, 0.569512)">
-                            <mask id="mask-47" fill="white">
-                                <use xlink:href="#path-46"></use>
-                            </mask>
-                            <g id="Clip-117备份">
-                                <use fill="url(#linearGradient-45)" fill-rule="evenodd" xlink:href="#path-46"></use>
-                                <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="#73E2F0" mask="url(#mask-47)"></path>
-                        </g>
-                    </g>
-                </g>
-                <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(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>
-                    <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>
-    </g>
-</svg>

二進制
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression2.png


+ 0 - 328
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression2.svg

@@ -1,328 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="159px" height="114px" viewBox="0 0 159 114" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>真棒备份 2</title>
-    <defs>
-        <linearGradient x1="77.612246%" y1="100%" x2="27.4288906%" y2="41.393852%" id="linearGradient-1">
-            <stop stop-color="#F2D0A4" offset="0%"></stop>
-            <stop stop-color="#F3AC27" offset="100%"></stop>
-        </linearGradient>
-        <path d="M0,1.69685642 C0,1.69685642 5.42067225,10.5503378 9.07772833,18.0021135 L9.07772833,18.0021135 C13.9610155,27.9534586 26.4464391,29.4458996 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L0,1.69685642 Z" id="path-2"></path>
-        <linearGradient x1="50%" y1="0%" x2="76.4096289%" y2="93.0869575%" id="linearGradient-4">
-            <stop stop-color="#F4C250" offset="0%"></stop>
-            <stop stop-color="#F2A81A" offset="100%"></stop>
-        </linearGradient>
-        <path d="M2.60640621,0.224926471 C6.41776096,3.42187211 17.85821,17.1837566 19.4810065,21.4243333 L19.4810065,21.4243333 C20.0272593,22.8517646 20.2695259,23.9179926 20.341532,24.711319 L20.341532,24.711319 C20.9849752,23.3183046 20.3241512,20.5434002 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L2.60640621,0.224926471 Z" id="path-5"></path>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-7">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </linearGradient>
-        <path d="M12.3239913,0.856688508 C18.516157,3.37920238 26.1026861,11.6371674 24.5142965,15.2196517 C23.045444,18.5327108 19.9789794,16.8487173 19.9789794,16.8487173 C19.9789794,16.8487173 20.2443022,21.444935 14.414295,20.389484 C14.414295,20.389484 11.5258947,24.0202909 7.96283666,22.3773195 C4.33451206,20.7044506 -2.05309859,7.63959481 0.648015089,3.17270111 C0.648015089,3.17270111 5.33408374,-1.99087366 12.3239913,0.856688508 Z" id="path-8"></path>
-        <filter x="-8.1%" y="-8.8%" width="116.2%" height="117.5%" filterUnits="objectBoundingBox" id="filter-9">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M0,1.69685642 C0,1.69685642 5.42067225,10.5503378 9.07772833,18.0021135 L9.07772833,18.0021135 C13.9610155,27.9534586 26.4464391,29.4458996 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L0,1.69685642 Z" id="path-10"></path>
-        <path d="M2.60640621,0.224926471 C6.41776096,3.42187211 17.85821,17.1837566 19.4810065,21.4243333 L19.4810065,21.4243333 C20.0272593,22.8517646 20.2695259,23.9179926 20.341532,24.711319 L20.341532,24.711319 C20.9849752,23.3183046 20.3241512,20.5434002 17.3091195,16.1595937 L17.3091195,16.1595937 C8.17215469,2.87328792 3.00439039,0 3.00439039,0 L3.00439039,0 L2.60640621,0.224926471 Z" id="path-12"></path>
-        <path d="M12.3239913,0.856688508 C18.516157,3.37920238 26.1026861,11.6371674 24.5142965,15.2196517 C23.045444,18.5327108 19.9789794,16.8487173 19.9789794,16.8487173 C19.9789794,16.8487173 20.2443022,21.444935 14.414295,20.389484 C14.414295,20.389484 11.5258947,24.0202909 7.96283666,22.3773195 C4.33451206,20.7044506 -2.05309859,7.63959481 0.648015089,3.17270111 C0.648015089,3.17270111 5.33408374,-1.99087366 12.3239913,0.856688508 Z" id="path-14"></path>
-        <filter x="-8.1%" y="-8.8%" width="116.2%" height="117.5%" filterUnits="objectBoundingBox" id="filter-15">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 0.759662335 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <radialGradient cx="50%" cy="36.3210319%" fx="50%" fy="36.3210319%" r="62.0360694%" gradientTransform="translate(0.500000,0.363210),scale(0.992740,1.000000),rotate(92.657830),translate(-0.500000,-0.363210)" id="radialGradient-16">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </radialGradient>
-        <path d="M8.08841408,0.970180215 C8.08841408,0.970180215 6.31729051,12.4635139 4.1917473,16.5380737 C0.606943816,23.4101562 -6.80435721,44.6217191 14.6943931,51.5884212 C36.1934683,58.5551234 58.1450702,44.7882891 53.0867127,26.6827485 C49.0116991,12.0975198 45.1520661,6.29680799 44.7904996,0 L8.08841408,0.970180215 Z" id="path-17"></path>
-        <filter x="-4.6%" y="-4.7%" width="109.3%" height="109.4%" filterUnits="objectBoundingBox" id="filter-18">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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" result="shadowMatrixInner1"></feColorMatrix>
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
-            <feOffset dx="0" dy="-2" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
-            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
-            <feColorMatrix values="0 0 0 0 0.0379071198   0 0 0 0 0.660020874   0 0 0 0 0.808870177  0 0 0 1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
-                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
-            </feMerge>
-        </filter>
-        <linearGradient x1="32.4288665%" y1="50%" x2="57.5753419%" y2="89.3692122%" id="linearGradient-19">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="69.6826821%" y1="61.5784612%" x2="44.0145447%" y2="87.6718365%" id="linearGradient-20">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-21">
-            <stop stop-color="#FFE948" offset="0%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <radialGradient cx="50%" cy="36.3210319%" fx="50%" fy="36.3210319%" r="62.0655718%" gradientTransform="translate(0.500000,0.363210),scale(0.826585,1.000000),rotate(93.191077),translate(-0.500000,-0.363210)" id="radialGradient-22">
-            <stop stop-color="#7EDAF5" offset="0%"></stop>
-            <stop stop-color="#00B4E0" offset="100%"></stop>
-        </radialGradient>
-        <path d="M5.43564712,48.7090823 C4.71541977,51.9524209 3.84130046,55.5655479 2.7444943,58.7008952 L2.7444943,58.7008952 C1.67148921,61.7675207 0.380361858,65.4074819 0.103225936,68.7365591 L0.103225936,68.7365591 C-1.7216326,90.6574832 20.9343921,97.6556465 45.4191878,97.5555091 L45.4191878,97.5555091 C69.9039835,97.4556989 90.8205727,89.0487401 90.8238331,68.2764507 L90.8238331,68.2764507 C90.8238331,62.7436966 89.0211455,60.9598767 87.9230351,57.9017596 L87.9230351,57.9017596 C86.8007977,54.7755752 85.6068309,51.5711789 84.6909782,48.3782362 L84.6909782,48.3782362 C79.7843682,31.2688152 68.7250147,23.2905491 45.3008344,22.5143208 L45.3008344,22.5143208 C44.6660302,22.493377 44.0367686,22.4829051 43.4140279,22.4829051 L43.4140279,22.4829051 C22.6483962,22.4829051 8.68922285,34.0530272 5.43564712,48.7090823" id="path-23"></path>
-        <filter x="-3.3%" y="-4.0%" width="106.6%" height="108.0%" filterUnits="objectBoundingBox" id="filter-24">
-            <feGaussianBlur stdDeviation="2.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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>
-        <path d="M47.0491017,84.2969811 C47.0491017,84.2969811 41.7877983,86.929063 36.8429647,84.6256828 C36.6587541,84.3105087 42.3883945,92.0463038 47.0491017,84.2969811 Z" id="path-25"></path>
-        <filter x="-46.5%" y="-151.8%" width="193.0%" height="374.6%" filterUnits="objectBoundingBox" id="filter-26">
-            <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.247864196 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <filter x="-12.5%" y="-13.2%" width="125.1%" height="126.4%" filterUnits="objectBoundingBox" id="filter-27">
-            <feGaussianBlur stdDeviation="1" in="SourceGraphic"></feGaussianBlur>
-        </filter>
-        <path d="M14.8206154,16.9086956 C13.1011589,15.8302649 10.8774563,15.1025938 8.13210614,14.667773 C4.77252958,14.1356684 3.2099549,14.6070556 2.06082644,15.1412619 C0.5521372,13.1780086 0,12.1307174 0,9.18898055 C0,3.98734102 4.08109036,0 8.96221032,0 C13.8429715,0 17.7995309,4.21705986 17.7995309,9.41869938 C17.7995309,12.0716141 16.4766585,15.1968194 14.8206154,16.9086956 Z" id="path-28"></path>
-        <filter x="-8.4%" y="-8.9%" width="116.9%" height="117.7%" filterUnits="objectBoundingBox" id="filter-30">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.128233583 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <linearGradient x1="48.9356923%" y1="92.9466699%" x2="51.2727375%" y2="-1.36853401%" id="linearGradient-31">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#F7F4EB" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="49.9984235%" y1="100.001272%" x2="49.9984235%" y2="0.00138610816%" id="linearGradient-32">
-            <stop stop-color="#152479" offset="0%"></stop>
-            <stop stop-color="#0B4B79" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="0.000502853684%" y1="49.999885%" x2="99.9989619%" y2="49.999885%" id="linearGradient-33">
-            <stop stop-color="#000000" offset="0%"></stop>
-            <stop stop-color="#00003D" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="57.5618021%" y1="0%" x2="60.4622466%" y2="11.9988623%" id="linearGradient-34">
-            <stop stop-color="#FFFFFF" offset="0%"></stop>
-            <stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
-        </linearGradient>
-        <path d="M0.619523025,22.0742182 C0.426465505,23.0524242 2.48084578,24.2876025 5.20815074,24.8334632 C7.9354557,25.3789948 10.302452,25.0285779 10.4951828,24.050372 C10.6882403,23.072166 8.63386006,21.8369877 5.90688176,21.291127 C3.1795768,20.7455954 0.812253882,21.0960123 0.619523025,22.0742182" id="path-35"></path>
-        <filter x="-30.3%" y="-73.9%" width="160.6%" height="247.9%" filterUnits="objectBoundingBox" id="filter-36">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.568627451   0 0 0 0 0.568627451  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <filter x="-12.5%" y="-13.2%" width="125.1%" height="126.4%" filterUnits="objectBoundingBox" id="filter-37">
-            <feGaussianBlur stdDeviation="1" in="SourceGraphic"></feGaussianBlur>
-        </filter>
-        <path d="M14.8206154,16.9086956 C13.1011589,15.8302649 10.8774563,15.1025938 8.13210614,14.667773 C4.77252958,14.1356684 3.2099549,14.6070556 2.06082644,15.1412619 C0.5521372,13.1780086 0,12.1307174 0,9.18898055 C0,3.98734102 4.08109036,0 8.96221032,0 C13.8429715,0 17.7995309,4.21705986 17.7995309,9.41869938 C17.7995309,12.0716141 16.4766585,15.1968194 14.8206154,16.9086956 Z" id="path-38"></path>
-        <filter x="-8.4%" y="-8.9%" width="116.9%" height="117.7%" filterUnits="objectBoundingBox" id="filter-40">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.128233583 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <path d="M0.619523025,22.0742182 C0.426465505,23.0524242 2.48084578,24.2876025 5.20815074,24.8334632 C7.9354557,25.3789948 10.302452,25.0285779 10.4951828,24.050372 C10.6882403,23.072166 8.63386006,21.8369877 5.90688176,21.291127 C3.1795768,20.7455954 0.812253882,21.0960123 0.619523025,22.0742182" id="path-41"></path>
-        <filter x="-30.3%" y="-73.9%" width="160.6%" height="247.9%" filterUnits="objectBoundingBox" id="filter-42">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.568627451   0 0 0 0 0.568627451  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <linearGradient x1="-0.00139152473%" y1="50.000508%" x2="99.99952%" y2="50.000508%" id="linearGradient-43">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F29942" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="0%" y1="59.2364439%" x2="101.94585%" y2="59.2364439%" id="linearGradient-44">
-            <stop stop-color="#F9DE13" offset="0%"></stop>
-            <stop stop-color="#F8B911" offset="48.5652346%"></stop>
-            <stop stop-color="#F7D510" offset="49.0626726%"></stop>
-            <stop stop-color="#F5CB0D" offset="100%"></stop>
-            <stop stop-color="#F1BA08" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="35.7866085%" y1="99.1220678%" x2="64.2147804%" y2="0.868067724%" id="linearGradient-45">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F28042" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="64.2132492%" y1="99.1220678%" x2="35.7853605%" y2="0.868067724%" id="linearGradient-46">
-            <stop stop-color="#F4CF07" offset="0%"></stop>
-            <stop stop-color="#F28042" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="49.999948%" y1="0.000119714316%" x2="49.999948%" y2="99.9996127%" id="linearGradient-47">
-            <stop stop-color="#00B4E0" offset="0%"></stop>
-            <stop stop-color="#7EDAF5" offset="100%"></stop>
-        </linearGradient>
-        <path d="M12.0947355,1.23453948 C12.5183707,4.18848781 9.1598501,4.32072491 3.50173449,8.75834089 L3.50173449,8.75834089 C-2.15670625,13.1953038 -0.132490438,22.233465 3.76801023,24.2966903 L3.76801023,24.2966903 C6.4941666,25.738891 7.89187039,26.1816404 7.89187039,26.1816404 L7.89187039,26.1816404 C9.72718974,27.0694248 12.973868,27.807014 10.6414356,25.6108985 L10.6414356,25.6108985 C7.88114133,23.0125211 13.4641535,21.4420014 14.8816898,16.8264367 L14.8816898,16.8264367 C16.5112063,11.519974 14.2704586,8.5862694 14.1725966,6.29938379 L14.1725966,6.29938379 C14.0721336,3.95372613 12.5817697,-0.000326511366 12.1405778,0 L12.1405778,0 C12.0072774,0.000326511366 11.9695631,0.36079506 12.0947355,1.23453948" id="path-48"></path>
-        <filter x="-19.4%" y="-11.1%" width="138.8%" height="122.2%" filterUnits="objectBoundingBox" id="filter-50">
-            <feGaussianBlur stdDeviation="2" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="-1" dy="2" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <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="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="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="蓝色" 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)">
-                    <g id="右翅膀" transform="translate(64.387500, 95.257012)">
-                        <g id="Fill-11" transform="translate(16.046683, 9.038832)">
-                            <mask id="mask-3" fill="white">
-                                <use xlink:href="#path-2"></use>
-                            </mask>
-                            <use id="蒙版" fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
-                            <mask id="mask-6" fill="white">
-                                <use xlink:href="#path-5"></use>
-                            </mask>
-                            <use id="Clip-12" fill="url(#linearGradient-4)" xlink:href="#path-5"></use>
-                        </g>
-                        <g id="Fill-15">
-                            <use fill="url(#linearGradient-7)" fill-rule="evenodd" xlink:href="#path-8"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-9)" xlink:href="#path-8"></use>
-                        </g>
-                    </g>
-                    <g id="右翅膀备份-3" transform="translate(18.306250, 113.563262) scale(-1, 1) translate(-18.306250, -113.563262) translate(0.000000, 95.257012)">
-                        <g id="Fill-11" transform="translate(16.046683, 9.038832)">
-                            <mask id="mask-11" fill="white">
-                                <use xlink:href="#path-10"></use>
-                            </mask>
-                            <use id="蒙版" fill="url(#linearGradient-1)" xlink:href="#path-10"></use>
-                            <mask id="mask-13" fill="white">
-                                <use xlink:href="#path-12"></use>
-                            </mask>
-                            <use id="Clip-12" fill="url(#linearGradient-4)" xlink:href="#path-12"></use>
-                        </g>
-                        <g id="Fill-15">
-                            <use fill="url(#linearGradient-7)" fill-rule="evenodd" xlink:href="#path-14"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-15)" xlink:href="#path-14"></use>
-                        </g>
-                    </g>
-                    <g id="身" transform="translate(22.631102, 86.735137)">
-                        <g id="Fill-57">
-                            <use fill="url(#radialGradient-16)" fill-rule="evenodd" xlink:href="#path-17"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-18)" xlink:href="#path-17"></use>
-                        </g>
-                        <path d="M13.9174312,7.39580895 C13.9174312,7.39580895 12.6459386,15.646119 11.1204074,18.5711154 C8.54656074,23.5041516 3.22669287,38.730363 18.6593775,43.7314071 C34.0920621,48.7324512 49.8057485,38.450775 46.218671,25.8532165 C43.2420009,15.3983994 40.522618,11.2196923 40.2633817,6.69930301 L13.9174312,7.39580895 Z" id="Fill-61" fill="#F8F4EC"></path>
-                        <g id="脖子毛" transform="translate(17.059970, 2.143463)">
-                            <path d="M4.12505343,15.606083 C4.82595311,16.1752451 5.88390867,16.251198 6.75260149,15.9247621 C7.04690008,15.8142263 7.31939878,15.6577956 7.5496189,15.4583788 C7.69957576,15.3284509 7.83136603,15.1801003 7.93904431,15.0146199 C8.13028885,14.7208276 8.2558034,14.3821099 8.33111213,14.0168895 C8.42359654,13.5656969 8.43945101,13.0734574 8.40642087,12.575077 C8.32846972,11.3818083 7.97306536,10.1516943 7.73392711,9.35241108 C6.50718751,5.251277 6.0517018,2.32757467 5.12751834,1.14723408 C5.01389464,1.00211554 4.8910225,0.885762142 4.76253523,0.796234666 C4.56567556,0.659519423 4.35659474,0.585828937 4.14784423,0.566759908 C3.53084111,0.51116884 2.92011372,0.935858743 2.66115738,1.63688797 C2.47519767,2.13947001 2.35034372,2.87637486 2.3691709,3.95458302 C2.40220104,5.86083952 2.38601627,8.00206525 2.52375198,10.4522739 C2.5974092,11.7712689 2.754963,12.9490239 3.06280395,13.8837295 C3.19657604,14.2890272 3.35875405,14.6484299 3.55462282,14.9538576 C3.71977354,15.2111279 3.90870597,15.4302601 4.12505343,15.606083" id="Fill-65" fill="url(#linearGradient-19)" transform="translate(5.394758, 8.339796) rotate(19.000000) translate(-5.394758, -8.339796) "></path>
-                            <path d="M10.6515863,15.2671083 C11.2245455,15.9863725 12.2655158,16.2546108 13.1709677,16.0522274 C13.4000883,16.0011497 13.6200693,15.9201963 13.8217711,15.8087248 C14.0111817,15.7036782 14.1845191,15.5722896 14.3332742,15.4139166 C14.6686034,15.0563726 14.8961483,14.5844659 15.0467943,14.0579478 C15.2248591,13.4366629 15.2960851,12.7395645 15.3121582,12.0646319 C15.3323284,11.2326112 15.2686662,10.4346424 15.2179256,9.85511915 C14.8498199,5.62434234 14.9793502,2.68785556 14.3386319,1.36176242 C14.2497571,1.17801114 14.1429182,1.02766919 14.023788,0.909130337 C13.8974093,0.782881644 13.7571635,0.692612222 13.6093539,0.636073367 C13.0253642,0.411202921 12.329493,0.709316883 11.93712,1.37139972 C11.6679742,1.82628051 11.4108045,2.52080894 11.2236,3.57577258 C10.8920527,5.44026981 10.4694244,7.5244976 10.1328346,9.9389637 C10.0058255,10.8461553 9.93018729,11.6942381 9.9339692,12.4533365 C9.93680563,13.083295 9.99416458,13.651896 10.1224343,14.1427561 C10.2374674,14.5847871 10.4101745,14.9638544 10.6515863,15.2671083" id="Fill-69" fill="url(#linearGradient-20)" transform="translate(12.624910, 8.339796) rotate(-13.000000) translate(-12.624910, -8.339796) "></path>
-                            <path d="M6.79458078,19.2295328 C7.49411195,20.0221552 8.68079913,20.3150666 9.74463543,20.1147909 C10.0553567,20.0560781 10.3559492,19.9552878 10.63073,19.8130725 C10.9202138,19.6627026 11.1809451,19.4660148 11.3959342,19.2233354 C11.7883382,18.7787492 12.046129,18.2056474 12.208841,17.570571 C12.3865827,16.8764556 12.450622,16.1082969 12.4529091,15.3544902 C12.4565032,14.2386215 12.3241771,13.1537401 12.2241974,12.3852552 C11.5550522,7.23320997 11.5713887,3.63803159 10.7062049,2.05017745 C10.5621165,1.78499146 10.3928698,1.57623495 10.1925837,1.42488649 C9.98151544,1.26603584 9.76489276,1.17111687 9.54990373,1.12969175 C8.81443213,0.987802566 8.10019805,1.47479234 7.71008118,2.18260736 C7.39641937,2.75212119 7.1105297,3.61389412 6.92886724,4.9124248 C6.60736388,7.20776777 6.18392044,9.77645129 5.88300114,12.7443816 C5.7647245,13.90983 5.71277427,14.9934067 5.76537797,15.9520557 C5.80589262,16.6859653 5.9078327,17.3468101 6.08851497,17.9153454 C6.25351416,18.4352796 6.48451301,18.8782348 6.79458078,19.2295328" id="Fill-77" fill="url(#linearGradient-21)"></path>
-                        </g>
-                    </g>
-                    <g id="头" transform="translate(5.139105, 0.000000)">
-                        <g id="Fill-71">
-                            <use fill="url(#radialGradient-22)" fill-rule="evenodd" xlink:href="#path-23"></use>
-                            <use fill="black" fill-opacity="1" filter="url(#filter-24)" xlink:href="#path-23"></use>
-                        </g>
-                        <path d="M39.0724674,62.041086 C39.0724674,62.041086 41.4337527,43.2712671 27.5741482,42.6838132 C13.5214457,42.0882048 12.3641644,53.5792717 11.2738628,61.3061979 C10.2279967,68.7196632 1.29026885,78.1068559 11.7721277,89.8314691 C22.6447569,100.90013 61.9534429,98.7463503 73.4017721,92.3502468 C82.1816889,87.4451214 84.2992329,81.3226846 84.0813033,73.9907648 C83.8359282,65.7223764 76.0950162,61.086025 74.8527847,55.6955407 C73.6102266,50.3053826 69.9805713,41.5959961 62.3370251,40.8937262 C54.550044,40.1777566 45.4809702,41.2479599 47.3279808,62.0890348 C47.3279808,62.0890348 43.7185829,68.4401252 39.0724674,62.041086" id="Fill-81" fill="#F8F4EC"></path>
-                        <g id="下巴" transform="translate(41.943868, 86.026726) scale(1, -1) translate(-41.943868, -86.026726) ">
-                            <use fill="black" fill-opacity="1" filter="url(#filter-26)" xlink:href="#path-25"></use>
-                            <use fill="#FFF9EF" fill-rule="evenodd" xlink:href="#path-25"></use>
-                        </g>
-                        <g id="左眼" transform="translate(13.093688, 44.740490)">
-                            <path d="M13.3645925,21.1420557 C22.7563818,21.1420557 23.7449465,27.9170439 23.7449465,23.7334869 C23.7449465,19.54993 26.1706837,2.33125135 12.2331212,2.33125135 C-1.70444117,2.33125135 0.0734571987,18.2379519 0.0734571987,22.4215088 C0.0734571987,26.6050658 3.97280322,21.1420557 13.3645925,21.1420557 Z" id="椭圆形" fill="#D8D8D8" opacity="0.479851132" filter="url(#filter-27)"></path>
-                            <g transform="translate(12.019336, 14.885040) rotate(-9.000000) translate(-12.019336, -14.885040) translate(3.119570, 6.430692)">
-                                <mask id="mask-29" fill="white">
-                                    <use xlink:href="#path-28"></use>
-                                </mask>
-                                <g id="Fill-102">
-                                    <use fill="black" fill-opacity="1" filter="url(#filter-30)" xlink:href="#path-28"></use>
-                                    <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-28"></use>
-                                </g>
-                                <path d="M8.21358148,17.8051839 C12.7498971,17.8051839 16.427163,13.9474927 16.427163,9.18898055 C16.427163,4.43009037 12.7498971,0.572399183 8.21358148,0.572399183 C3.6772659,0.572399183 -1.43529633e-13,4.43009037 -1.43529633e-13,9.18898055 C-1.43529633e-13,13.9474927 3.6772659,17.8051839 8.21358148,17.8051839 Z" id="Fill-104" fill="url(#linearGradient-31)" mask="url(#mask-29)"></path>
-                                <path d="M7.45713361,16.6278693 C10.8640781,16.6278693 13.6265495,13.5192782 13.6265495,9.68450766 C13.6265495,5.84934883 10.8640781,2.74036933 7.45713361,2.74036933 C4.05018911,2.74036933 1.28806276,5.84934883 1.28806276,9.68450766 C1.28806276,13.5192782 4.05018911,16.6278693 7.45713361,16.6278693 Z" id="Fill-106" fill="url(#linearGradient-32)" mask="url(#mask-29)"></path>
-                                <path d="M5.89434012,13.6911434 C8.06374161,13.6911434 9.82277088,11.7623561 9.82277088,9.38313351 C9.82277088,7.00353832 8.06374161,5.07475105 5.89434012,5.07475105 C3.72459891,5.07475105 1.96590936,7.00353832 1.96590936,9.38313351 C1.96590936,11.7623561 3.72459891,13.6911434 5.89434012,13.6911434 Z" id="Fill-110" fill="url(#linearGradient-33)" mask="url(#mask-29)"></path>
-                                <path d="M3.73521943,10.7073904 C2.93584139,10.7073904 2.28760223,9.93267724 2.28760223,8.97733738 C2.28760223,8.02199752 2.93584139,7.24728435 3.73521943,7.24728435 C4.53459748,7.24728435 5.18283664,8.02199752 5.18283664,8.97733738 C5.18283664,9.93267724 4.53459748,10.7073904 3.73521943,10.7073904 Z" id="Fill-124" fill="#FFFFFF" mask="url(#mask-29)" transform="translate(3.735219, 8.977337) rotate(29.000000) translate(-3.735219, -8.977337) "></path>
-                                <path d="M5.3495453,12.7801345 C4.91104309,12.7801345 4.55572134,12.3483834 4.55572134,11.8164111 C4.55572134,11.2840578 4.91104309,10.8526878 5.3495453,10.8526878 C5.7880475,10.8526878 6.14336925,11.2840578 6.14336925,11.8164111 C6.14336925,12.3483834 5.7880475,12.7801345 5.3495453,12.7801345 Z" id="Fill-126" fill="#FFFFFF" mask="url(#mask-29)" transform="translate(5.349545, 11.816411) rotate(33.000000) translate(-5.349545, -11.816411) "></path>
-                                <path d="M6.788099,10.5009613 C6.50279282,10.5009613 6.271607,10.2181593 6.271607,9.86971126 C6.271607,9.52101366 6.50279282,9.23846126 6.788099,9.23846126 C7.07340517,9.23846126 7.30459099,9.52101366 7.30459099,9.86971126 C7.30459099,10.2181593 7.07340517,10.5009613 6.788099,10.5009613 Z" id="Fill-126备份" fill="#FFFFFF" mask="url(#mask-29)" transform="translate(6.788099, 9.869711) rotate(30.000000) translate(-6.788099, -9.869711) "></path>
-                            </g>
-                            <path d="M13.1343152,44.138111 C20.4555399,44.138111 23.518812,29.7284281 23.518812,26.5907604 C23.518812,23.4530927 18.9421826,21.1420557 11.8073332,21.1420557 C9.4882078,21.1420557 5.34822464,21.862605 3.61791117,22.4215088 C-3.21172334,24.6275304 5.81309052,44.138111 13.1343152,44.138111 Z" id="椭圆形" fill="url(#linearGradient-34)"></path>
-                            <g id="脸蛋" opacity="0.509331839" transform="translate(5.557353, 23.062295) rotate(-12.000000) translate(-5.557353, -23.062295) ">
-                                <use fill="black" fill-opacity="1" filter="url(#filter-36)" xlink:href="#path-35"></use>
-                                <use fill="#FF9191" fill-rule="evenodd" xlink:href="#path-35"></use>
-                            </g>
-                            <path d="M21.2307762,6.13270119 C20.1848876,6.13270119 19.336885,4.71972881 19.336885,2.97645119 C19.336885,1.23317357 20.1848876,-0.179798809 21.2307762,-0.179798809 C22.2766648,-0.179798809 23.124385,1.23317357 23.124385,2.97645119 C23.124385,4.71972881 22.2766648,6.13270119 21.2307762,6.13270119 Z" id="眉毛" fill="#FFD155" transform="translate(21.230635, 2.976451) rotate(67.000000) translate(-21.230635, -2.976451) "></path>
-                        </g>
-                        <g id="左眼备份" transform="translate(58.987901, 66.809545) scale(-1, 1) translate(-58.987901, -66.809545) translate(45.918688, 44.740490)">
-                            <path d="M13.3645925,21.1420557 C22.7563818,21.1420557 23.7449465,27.9170439 23.7449465,23.7334869 C23.7449465,19.54993 26.1706837,2.33125135 12.2331212,2.33125135 C-1.70444117,2.33125135 0.0734571987,18.2379519 0.0734571987,22.4215088 C0.0734571987,26.6050658 3.97280322,21.1420557 13.3645925,21.1420557 Z" id="椭圆形" fill="#D8D8D8" opacity="0.479851132" filter="url(#filter-37)"></path>
-                            <g id="左眼" transform="translate(12.019336, 14.885040) scale(-1, 1) rotate(-9.000000) translate(-12.019336, -14.885040) translate(3.119570, 6.430692)">
-                                <mask id="mask-39" fill="white">
-                                    <use xlink:href="#path-38"></use>
-                                </mask>
-                                <g id="Fill-102">
-                                    <use fill="black" fill-opacity="1" filter="url(#filter-40)" xlink:href="#path-38"></use>
-                                    <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-38"></use>
-                                </g>
-                                <path d="M8.21358148,17.8051839 C12.7498971,17.8051839 16.427163,13.9474927 16.427163,9.18898055 C16.427163,4.43009037 12.7498971,0.572399183 8.21358148,0.572399183 C3.6772659,0.572399183 -1.43529633e-13,4.43009037 -1.43529633e-13,9.18898055 C-1.43529633e-13,13.9474927 3.6772659,17.8051839 8.21358148,17.8051839 Z" id="Fill-104" fill="url(#linearGradient-31)" mask="url(#mask-39)"></path>
-                                <path d="M7.45713361,16.6278693 C10.8640781,16.6278693 13.6265495,13.5192782 13.6265495,9.68450766 C13.6265495,5.84934883 10.8640781,2.74036933 7.45713361,2.74036933 C4.05018911,2.74036933 1.28806276,5.84934883 1.28806276,9.68450766 C1.28806276,13.5192782 4.05018911,16.6278693 7.45713361,16.6278693 Z" id="Fill-106" fill="url(#linearGradient-32)" mask="url(#mask-39)"></path>
-                                <path d="M5.89434012,13.6911434 C8.06374161,13.6911434 9.82277088,11.7623561 9.82277088,9.38313351 C9.82277088,7.00353832 8.06374161,5.07475105 5.89434012,5.07475105 C3.72459891,5.07475105 1.96590936,7.00353832 1.96590936,9.38313351 C1.96590936,11.7623561 3.72459891,13.6911434 5.89434012,13.6911434 Z" id="Fill-110" fill="url(#linearGradient-33)" mask="url(#mask-39)"></path>
-                                <path d="M3.73521943,10.7073904 C2.93584139,10.7073904 2.28760223,9.93267724 2.28760223,8.97733738 C2.28760223,8.02199752 2.93584139,7.24728435 3.73521943,7.24728435 C4.53459748,7.24728435 5.18283664,8.02199752 5.18283664,8.97733738 C5.18283664,9.93267724 4.53459748,10.7073904 3.73521943,10.7073904 Z" id="Fill-124" fill="#FFFFFF" mask="url(#mask-39)" transform="translate(3.735219, 8.977337) rotate(29.000000) translate(-3.735219, -8.977337) "></path>
-                                <path d="M5.3495453,12.7801345 C4.91104309,12.7801345 4.55572134,12.3483834 4.55572134,11.8164111 C4.55572134,11.2840578 4.91104309,10.8526878 5.3495453,10.8526878 C5.7880475,10.8526878 6.14336925,11.2840578 6.14336925,11.8164111 C6.14336925,12.3483834 5.7880475,12.7801345 5.3495453,12.7801345 Z" id="Fill-126" fill="#FFFFFF" mask="url(#mask-39)" transform="translate(5.349545, 11.816411) rotate(33.000000) translate(-5.349545, -11.816411) "></path>
-                                <path d="M6.788099,10.5009613 C6.50279282,10.5009613 6.271607,10.2181593 6.271607,9.86971126 C6.271607,9.52101366 6.50279282,9.23846126 6.788099,9.23846126 C7.07340517,9.23846126 7.30459099,9.52101366 7.30459099,9.86971126 C7.30459099,10.2181593 7.07340517,10.5009613 6.788099,10.5009613 Z" id="Fill-126备份" fill="#FFFFFF" mask="url(#mask-39)" transform="translate(6.788099, 9.869711) rotate(30.000000) translate(-6.788099, -9.869711) "></path>
-                            </g>
-                            <path d="M13.1343152,44.138111 C20.4555399,44.138111 23.518812,29.7284281 23.518812,26.5907604 C23.518812,23.4530927 18.9421826,21.1420557 11.8073332,21.1420557 C9.4882078,21.1420557 5.34822464,21.862605 3.61791117,22.4215088 C-3.21172334,24.6275304 5.81309052,44.138111 13.1343152,44.138111 Z" id="椭圆形" fill="url(#linearGradient-34)"></path>
-                            <g id="脸蛋" opacity="0.509331839" transform="translate(5.557353, 23.062295) rotate(-12.000000) translate(-5.557353, -23.062295) ">
-                                <use fill="black" fill-opacity="1" filter="url(#filter-42)" xlink:href="#path-41"></use>
-                                <use fill="#FF9191" fill-rule="evenodd" xlink:href="#path-41"></use>
-                            </g>
-                            <path d="M22.4932762,6.13270119 C21.4473876,6.13270119 20.599385,4.71972881 20.599385,2.97645119 C20.599385,1.23317357 21.4473876,-0.179798809 22.4932762,-0.179798809 C23.5391648,-0.179798809 24.386885,1.23317357 24.386885,2.97645119 C24.386885,4.71972881 23.5391648,6.13270119 22.4932762,6.13270119 Z" id="眉毛" fill="#FFD155" transform="translate(22.493135, 2.976451) rotate(67.000000) translate(-22.493135, -2.976451) "></path>
-                        </g>
-                        <path d="M36.3376332,73.628112 C36.4305967,75.5253327 36.8059416,79.5525023 38.6842252,81.0141137 C40.5625089,82.4757251 41.7949369,81.2435984 43.0572246,81.3831368 C44.2095722,81.5105218 45.2425902,82.1680825 47.1768777,81.3831368 C49.1111651,80.5981911 47.9226138,79.5469742 48.8407485,76.784261 C49.5084246,74.7761054 49.9291565,72.7093175 49.7390764,71.7761981 C49.5212031,70.7068252 48.0376202,69.2996505 46.1269163,68.4131704 C44.2162123,67.5266902 44.1951278,65.6937652 42.7859796,65.6784408 C42.7792709,65.6784408 42.7725622,65.6784408 42.7658535,65.6784408 C41.384818,65.6784408 42.2080723,67.2561822 39.6009405,68.7846192 C36.9391807,70.3453705 36.2440307,71.7305582 36.3376332,73.628112 Z" id="Fill-85备份" fill="url(#linearGradient-43)"></path>
-                        <path d="M45.6386816,68.4189046 C43.8230885,67.6134554 43.8031799,65.9485348 42.4644125,65.93444 C41.1253188,65.9205475 41.9268821,67.361244 39.4379888,68.7563797 C36.9089521,70.1739704 36.2487068,71.4327493 36.3371529,73.1565734 C36.4259254,74.8803975 37.7802634,79.8039754 39.4379888,80.7081068 C41.0957142,81.6122381 41.8427952,80.6422207 43.0572246,80.7081068 C44.0856796,80.7639033 45.6709176,81.4645593 46.7574548,80.7081068 C47.843992,79.9516543 47.3136095,78.1770443 48.185995,75.667297 C48.8201308,73.8429138 49.2512648,72.3221605 49.0707825,71.4740794 C48.8638643,70.5026588 47.4542747,69.2243539 45.6386816,68.4189046 Z" id="Fill-87备份" fill="#B12D1F"></path>
-                        <g id="嘴" transform="translate(30.807363, 56.209691)">
-                            <g id="编组" transform="translate(5.522170, 0.000000)" fill="#FFFFFF">
-                                <path d="M0.170608521,9.93241216 C0.37067298,10.8472072 1.74860471,12.0483843 3.5250335,12.8033913 C5.30178867,13.5583982 5.3174544,15.1269903 6.62880676,15.1371347 C7.94015913,15.1471672 7.15817798,13.791409 9.5994213,12.4711231 C12.079829,11.1293586 12.7296305,9.94184975 12.647059,8.31760846 C12.5641612,6.69336716 11.0896241,3.9756675 9.67252805,1.79070335 C8.25543199,-0.393935356 5.27535275,-0.526712444 3.6157642,1.1037121 C1.95617566,2.73413663 1.87719426,3.27565888 1.01688445,5.64286608 C0.391560624,7.36343585 -0.00432549268,9.13347159 0.170608521,9.93241216" id="Fill-89"></path>
-                            </g>
-                            <g id="编组" transform="translate(0.000000, 2.705357)">
-                                <path d="M10.7072925,0.212672095 C9.7768129,0.543206741 9.04054857,1.26012275 8.3871018,2.06990017 C7.94540816,2.61732788 7.54138839,3.20729001 7.14029159,3.7488733 C6.93276053,4.02843158 6.76452722,4.25993571 6.61837858,4.46708807 C6.54173175,4.57520992 6.46768311,4.68495521 6.39428402,4.79534989 C6.08412414,5.2632285 5.79864715,5.74961445 5.5190161,6.24054607 C5.19846344,6.80258484 4.88538059,7.37046804 4.54988829,7.92211673 C4.10657077,8.65104628 2.64336667,9.87604511 2.10131763,10.5702328 C0.924500656,11.9055229 -1.242613,16.7860272 0.924500656,19.4297841 C3.09161431,22.073541 8.3871018,20.1610145 9.48947749,20.6412068 C10.5918532,21.1213991 11.423096,21.1339172 11.9154545,21.1405193 C12.3714383,21.1465801 14.1100819,20.6290046 14.8330228,20.2660977 C15.5559636,19.9031907 19.4532889,21.7968724 22.4259065,19.208169 C25.3985241,16.6194657 20.9193784,9.96646797 20.4419596,9.447613 C20.0931515,9.06805013 19.8246937,8.66305981 19.4820564,8.32181039 C19.1829388,8.02406946 18.9003848,7.7438618 18.6574533,7.48573307 C18.6006177,7.425016 18.545406,7.36559769 18.4927925,7.30682876 C18.2703218,6.96720278 17.987443,6.50354515 17.6769584,5.98728769 C17.0118197,4.8813928 16.2209932,3.53198024 15.6263307,2.63388708 C14.9706105,1.64228314 14.156725,0.74581344 13.1161467,0.273389167 C12.7267418,0.0967576862 12.3373369,0 11.9677433,0 C11.9502054,0 11.9326676,0 11.9154545,0.000649380444 C11.4809059,0.0113641578 11.084356,0.0785750337 10.7072925,0.212672095 Z" id="Fill-91" fill="url(#linearGradient-44)"></path>
-                                <path d="M6.00637132,6.02172592 C5.5615459,6.93953357 5.47327932,7.8236392 5.8088828,7.99640299 L5.8088828,7.99640299 C6.14448628,8.16916679 6.77759256,7.56514792 7.22241799,6.64799467 L7.22241799,6.64799467 C7.66724341,5.73018702 7.75550999,4.8467358 7.419589,4.6736448 L7.419589,4.6736448 C7.38085331,4.65368535 7.33830755,4.64419643 7.29258674,4.64419643 L7.29258674,4.64419643 C6.94079047,4.64419643 6.39976083,5.21025962 6.00637132,6.02172592" id="Fill-143" fill="url(#linearGradient-45)" transform="translate(6.614362, 6.335045) rotate(15.000000) translate(-6.614362, -6.335045) "></path>
-                                <path d="M15.1449985,4.6736448 C14.8087633,4.8467358 14.8973465,5.73018702 15.3421675,6.64799467 L15.3421675,6.64799467 C15.7869885,7.56514792 16.419771,8.16916679 16.7556886,7.99640299 L16.7556886,7.99640299 C17.0912888,7.8236392 17.0027056,6.93953357 16.5578846,6.02172592 L16.5578846,6.02172592 C16.164499,5.21025962 15.6237922,4.64419643 15.2719995,4.64419643 L15.2719995,4.64419643 C15.2262791,4.64419643 15.1837338,4.65368535 15.1449985,4.6736448" id="Fill-145" fill="url(#linearGradient-46)" transform="translate(15.950092, 6.335045) rotate(-14.000000) translate(-15.950092, -6.335045) "></path>
-                            </g>
-                        </g>
-                        <g id="头顶毛" transform="translate(50.802533, 14.096298) rotate(55.000000) translate(-50.802533, -14.096298) translate(43.065688, 0.569512)">
-                            <mask id="mask-49" fill="white">
-                                <use xlink:href="#path-48"></use>
-                            </mask>
-                            <g id="Clip-117备份">
-                                <use fill="url(#linearGradient-47)" fill-rule="evenodd" xlink:href="#path-48"></use>
-                                <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="#73E2F0" mask="url(#mask-49)"></path>
-                        </g>
-                    </g>
-                </g>
-                <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(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>
-                    <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>
-    </g>
-</svg>

二進制
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression3.png


文件差異過大導致無法顯示
+ 0 - 284
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression3.svg


二進制
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression4.png


文件差異過大導致無法顯示
+ 0 - 234
src/page-instrument/evaluat-model/evaluat-result/img/icon_expression4.svg


文件差異過大導致無法顯示
+ 0 - 8
src/page-instrument/evaluat-model/evaluat-result/img/integrity.svg


文件差異過大導致無法顯示
+ 0 - 8
src/page-instrument/evaluat-model/evaluat-result/img/intonation.svg


二進制
src/page-instrument/evaluat-model/evaluat-result/img/jz.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/wzx.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/yz.png


二進制
src/page-instrument/evaluat-model/evaluat-result/img/zlyc.png


文件差異過大導致無法顯示
+ 0 - 1
src/page-instrument/evaluat-model/evaluat-result/index.json


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

@@ -10,9 +10,9 @@
 .closeBtn {
     position: absolute;
     left: 30px;
-    top: 18px;
-    width: 40px;
-    height: 40px;
+    top: 20px;
+    width: 32px;
+    height: 32px;
     z-index: 1;
 
     img {
@@ -60,13 +60,15 @@
 .fraction {
     position: relative;
     border-radius: 18px;
-    width: 361px;
-    height: 256px;
+    width: 395px;
+    height: 262px;
     display: flex;
     flex-direction: column;
     justify-content: space-between;
-    max-height: 310px;
-
+    margin-top: 59px;
+    &.fractionPercussion{
+        height: 195px;
+    }
     .bg {
         position: absolute;
         left: 0;
@@ -82,53 +84,62 @@
         position: relative;
         display: flex;
         align-items: center;
-        height: 50px;
+        height: 55px;
 
         .badge {
-            width: 72px;
-            transform: translateY(-7px);
+            width: 71px;
+            height: 81px;
+            margin-left: -13px;
+            margin-top: -11px;
         }
 
         .text {
+            margin-left: 32px;
             position: relative;
             display: flex;
-            font-size: 20px;
+            align-items: flex-end;
             font-family: DIN-Bold, DIN;
             font-weight: bold;
-            color: var(--van-primary-color);
-            line-height: 41px;
-            align-items: flex-end;
-            padding: 0 4px;
+            font-weight: 600;
+            font-size: 22px;
+            color: #FF5510;
+            height: 45px;
             z-index: 1;
+            line-height: 1;
             white-space: nowrap;
-            margin-left: auto;
-
-            &::before {
-                content: '';
-                position: absolute;
-                bottom: 8px;
-                left: 0;
-                right: 0;
-                height: 8px;
-                background: #fcd660;
-                border-radius: 10px;
-                opacity: 0.59;
-                z-index: -1;
+            &.badgeText {
+                margin-left: 6px;
+            }
+            .level{
+                margin-left: 4px;
+                padding: 0 6px;
+                display: flex;
+                align-items: center;
+                height: 21px;
+                line-height: 21px;
+                background: #FFD86F;
+                border-radius: 11px;
+                font-weight: 400;
+                font-size: 12px;
+                color: #8A541E;
+                & > span{
+                    margin: -2px 4px 0;
+                }
             }
         }
 
         .num {
-            font-size: 30px;
+            margin-right: 2px;
+            margin-bottom: -2px;
+            font-size: 38px;
         }
 
         .rightBadge {
-            position: relative;
-            top: -5px;
-            right: -8px;
-            margin-left: auto;
-            max-width: 146px;
-            max-height: 105px;
-            align-self: flex-end;
+            position: absolute;
+            top: -59px;
+            right: -9px;
+            width: 160px;
+            height: 106px;
             z-index: -3;
         }
     }
@@ -137,30 +148,54 @@
 
 
 .tips {
-    padding: 0 20px;
-    font-size: 13px;
-    color: #808080;
+    padding: 0 30px;
+    font-weight: 400;
+    font-size: 14px;
+    color: rgba(0,0,0,0.5);
+    line-height: 20px;
 }
 
 .ctrls {
     display: flex;
-    justify-content: space-evenly;
+    justify-content:space-between;
     align-items: center;
-    margin: 0 20px 12px 20px;
-    padding-top: 12px;
-
+    margin: 0 27px 14px;
     .ctrlsBtn {
-        width: 94px;
+        width: 107px;
+        height: 39px;
+    }
+}
+:global{
+    .savePopoverClose {
+        &.van-popover{
+            --van-popover-dark-background:rgba(0,0,0,0.7);
+        }
+        .popoverClose {
+            display: flex;
+            align-items: center;
+            padding: 9px 12px;
+            >div{
+                font-weight: 500;
+                font-size: 14px;
+                color: #FFFFFF;
+                line-height: 20px;
+            }
+            >img {
+                margin-left: 16px;
+                width: 12px;
+                height: 12px;
+            }
+        }
     }
 }
-
 .detail {
     display: flex;
     align-items: center;
-    margin: 0 16px;
-    padding: 0 12px;
-    background: #fff;
-    border-radius: 12px;
+    background: #FFFFFF;
+    box-shadow: 0px 1px 5px 0px #EFE3C2;
+    border-radius: 14px;
+    margin: 0 20px;
+    padding: 12px 0;    
     padding: 10px 0;
 }
 
@@ -170,35 +205,31 @@
     flex-direction: column;
     justify-content: center;
     align-items: center;
-    text-align: center;
-    color: #1A1A1A;
-    font-weight: 500;
-    font-size: 14px;
-    
-    &>div {
-        padding-left: 24px;
-        background-repeat: no-repeat;
-        background-position: left center;
-        background-size: auto 100%;
-        margin-bottom: 4px;
-    }
-    .intonation{
-        background-image: url('./img/intonation.svg');
-    }
-    .cadence{
-        background-image: url('./img/cadence.svg'); 
-    }
-    .integrity{
-        background-image: url('./img/integrity.svg');
-    }
     &:nth-child(2){
         border-left: 1px solid #F2F2F2;
         border-right: 1px solid #F2F2F2;
     }
-    &>span {
-        font-size: 16px;
-        font-weight: 600;
-        color: #FF6729;
+    &>div:nth-child(1){
+        display: flex;
+        align-items: center;
+        >span{
+            font-weight: 500;
+            font-size: 14px;
+            color: #1A1A1A;
+            line-height: 20px;
+            margin-left: 4px;
+        }
+        >img{
+            width: 16px;
+            height: 16px;
+        }
+    }
+    &>div{
+        margin-top: 6px;
+        font-weight: 500;
+        font-size: 18px;
+        color: #FF5510;
+        line-height: 25px;
     }
 
 }

+ 71 - 51
src/page-instrument/evaluat-model/evaluat-result/index.tsx

@@ -1,17 +1,27 @@
 import { defineComponent, onMounted, reactive, watch } from "vue";
+import { Popover } from "vant"
 import styles from "./index.module.less";
 import state from "/src/state";
 import icon1 from "../icons/1.png";
 import { storeData } from "/src/store";
 import { evaluatingData } from "/src/view/evaluating";
-import icons from "../icons/index.json";
-import imgs from "./index.json";
-import iconBadge from "./img/icon-badge.svg";
-import icon_expression0 from "./img/icon_expression0.svg";
-import icon_expression1 from "./img/icon_expression1.svg";
-import icon_expression2 from "./img/icon_expression2.svg";
-import icon_expression3 from "./img/icon_expression3.svg";
-import icon_expression4 from "./img/icon_expression4.svg";
+import iconBack from "/src/page-instrument/header-top/image/icon-back.png";
+import bg1Img from "./img/bg1.png"
+import bg2Img from "./img/bg2.png"
+import ckzpImg from "./img/ckzp.png"
+import bczpImg from "./img/bczp.png"
+import bczpJzImg from "./img/bczpJz.png"
+import zlycImg from "./img/zlyc.png"
+import iconBadge from "./img/icon-badge.png";
+import icon_expression0 from "./img/icon_expression0.png";
+import icon_expression1 from "./img/icon_expression1.png";
+import icon_expression2 from "./img/icon_expression2.png";
+import icon_expression3 from "./img/icon_expression3.png";
+import icon_expression4 from "./img/icon_expression4.png";
+import yzImg from "./img/yz.png";
+import jzImg from "./img/jz.png";
+import wzxImg from "./img/wzx.png";
+import closeImg from "./img/close.png";
 import { getQuery } from "/src/utils/queryString";
 import { browser, getBehaviorId } from "/src/utils";
 import { api_musicPracticeRecordSave } from "../../api";
@@ -25,11 +35,18 @@ export default defineComponent({
 		const query = getQuery();
 		const data = reactive({
 			saveLoading: true,
+			showPopover: true
 		});
-
+		const level: any = {
+			BEGINNER: "入门级",
+			ADVANCED: "进阶级",
+			PERFORMER: "大师级",
+		}; 
 		/** 添加评测记录 */
 		const handleAddRecord = async () => {
-			// console.log("结束", evaluatingData.resultData);
+			console.log("结束", evaluatingData.resultData);
+			/** 生成评测记录的时候,记录当前评测的谱面类型,用于评测报告默认展示的谱面类型 */
+			evaluatingData.resultData.scoreData.musicType = state.musicRenderType;
 			const body = {
 				deviceType: browser().android ? "ANDROID" : "IOS", // 设备类型
 				intonation: evaluatingData.resultData.intonation, // 音准
@@ -84,29 +101,22 @@ export default defineComponent({
 				!evaluatingData.hideResultModal && 
 				<div class={styles.evaluatResult}>
 					<div class={styles.closeBtn} onClick={() => emit("close")}>
-						<img src={icons["arrow-left-background"]} />
+						<img src={iconBack} />
 					</div>
-
-					{
-					!state.isHideEvaluatReportSaveBtn &&
-					<div class={styles.headerButton}>
-						<div class={[styles.headBtn, evaluatingData.resultData.recordId ? '' : styles.disabled]} onClick={debounce(saveResult,300)}>
-							保存演奏
-						</div>
-					</div>
-					}
-
-					<div class={styles.fraction}>
-						<img class={styles.bg} src={imgs.bg} />
+					<div class={[styles.fraction, state.isPercussion && styles.fractionPercussion]}>
+						<img class={styles.bg} src={state.isPercussion ? bg2Img : bg1Img} />
 						<div class={styles.top}>
 							{evaluatingData.resultData.score > 79 && (
-								<img style={{}} class={styles.badge} src={iconBadge} />
+								<img class={styles.badge} src={iconBadge} />
 							)}
-							<div class={styles.text}>
-								<div>
-									<span class={styles.num}>{evaluatingData.resultData.score}</span>分
+							<div class={[styles.text, evaluatingData.resultData.score > 79 && styles.badgeText]}>
+								<div class={styles.num}>{evaluatingData.resultData.score}</div>
+								<div class={styles.score}>分</div>
+								<div class={styles.level}>
+									<div>{level[evaluatingData.resultData.heardLevel]}</div>
+									<span>|</span>
+									<div>速度{evaluatingData.resultData.speed}</div>
 								</div>
-								<div style={{ marginLeft: "6px" }}>{evaluatingData.resultData.clxmome}</div>
 							</div>
 							<img
 								style={{ display: evaluatingData.resultData.leve === 0 ? "" : "none" }}
@@ -134,42 +144,52 @@ export default defineComponent({
 								src={icon_expression4}
 							/>
 						</div>
-						{state.isPercussion ? (
-							<div class={styles.percussion}>
-								<img class={styles.leftIcon} src={evaluatingData.resultData.img || icon1} />
-								<div class={styles.scoreDes}>
-									<span class={styles.scoreNum}>{evaluatingData.resultData.score}</span>分
-									<span style={{ marginLeft: "8px" }}>{evaluatingData.resultData.mome}</span>
-								</div>
-							</div>
-						) : (
-							<div class={styles.detail}>
+						{!state.isPercussion && <div class={styles.detail}>
 								<div class={styles.progressitem}>
-									<div class={styles.intonation}>音准</div>
-									<span>{evaluatingData.resultData.intonation}分</span>
+									<div>
+										<img src={yzImg} />
+										<span>音准</span>
+									</div>
+									<div>{evaluatingData.resultData.intonation}分</div>
 								</div>
 								<div class={styles.progressitem}>
-									<div class={styles.cadence}>节奏</div>
-									<span>{evaluatingData.resultData.cadence}分</span>
+									<div>
+										<img src={jzImg} />
+										<span>节奏</span>
+									</div>
+									<div>{evaluatingData.resultData.cadence}分</div>
 								</div>
 								<div class={styles.progressitem}>
-									<div class={styles.integrity}>完成度</div>
-									<span>{evaluatingData.resultData.integrity}分</span>
+									<div>
+										<img src={wzxImg} />
+										<span>完成度</span>
+									</div>
+									<div>{evaluatingData.resultData.integrity}分</div>
 								</div>
 							</div>
-						)}
-
+						}
 						<div class={styles.tips}>{evaluatingData.resultData.clxtip}</div>
 						<div class={styles.ctrls}>
 							<img
-								style={{ display: query.workRecord ? "none" : "" }}
-								src={imgs.btn1}
+								src={zlycImg}
 								class={styles.ctrlsBtn}
-								onClick={() => emit("close", "practise")}
+								onClick={() => emit("close", "tryagain")}
 							/>
-							<img src={imgs.btn2} class={styles.ctrlsBtn} onClick={() => emit("close", "tryagain")} />
+							{
+								!state.isHideEvaluatReportSaveBtn && evaluatingData.resultData.recordId ? <img src={bczpImg} class={styles.ctrlsBtn} onClick={debounce(saveResult,300)} /> :  
+								<Popover class={"savePopoverClose"} placement={"top"} v-model:show={data.showPopover} v-slots={{
+										reference : ()=> <img src={bczpJzImg} class={styles.ctrlsBtn} />
+									}} theme="dark">
+									<div class={"popoverClose"}>
+										<div>该曲目暂不支持保存作品噢~</div>
+										<img src={closeImg} onClick={() => {
+											data.showPopover = false
+										}} />
+									</div>
+								</Popover>
+							}
 							<img
-								src={imgs.btn3}
+								src={ckzpImg}
 								class={[styles.ctrlsBtn, data.saveLoading ? styles.disablued : ""]}
 								onClick={() => emit("close", "look")}
 							/>

二進制
src/page-instrument/evaluat-model/icons/confirm.png


二進制
src/page-instrument/evaluat-model/icons/lanya_erji.png


二進制
src/page-instrument/evaluat-model/icons/no_erji.png


二進制
src/page-instrument/evaluat-model/icons/youxian_erji.png


+ 80 - 65
src/page-instrument/evaluat-model/index.tsx

@@ -1,5 +1,5 @@
 import { Transition, defineComponent, onMounted, reactive, watch, defineAsyncComponent } from "vue";
-import { connectWebsocket, evaluatingData, handleEndBegin, handleStartBegin, handleStartEvaluat, handleViewReport, startCheckDelay, checkUseEarphone } from "/src/view/evaluating";
+import { connectWebsocket, evaluatingData, handleEndBegin, handleStartBegin, handleStartEvaluat, handleViewReport, startCheckDelay, checkUseEarphone, handleCancelEvaluat } from "/src/view/evaluating";
 import Earphone from "./earphone";
 import styles from "./index.module.less";
 import SoundEffect from "./sound-effect";
@@ -10,7 +10,18 @@ import { getNoteByMeasuresSlursStart } from "/src/helpers/formateMusic";
 import { Icon, Popup, showToast, closeToast, showLoadingToast } from "vant";
 import EvaluatResult from "./evaluat-result";
 import EvaluatAudio from "./evaluat-audio";
-import { api_getDeviceDelay, api_openAdjustRecording, api_proxyServiceMessage, api_videoUpdate, getEarphone, api_back } from "/src/helpers/communication";
+import { 
+  api_getDeviceDelay, 
+  api_openAdjustRecording, 
+  api_proxyServiceMessage, 
+  api_videoUpdate, 
+  getEarphone, 
+  api_back, 
+  api_startDelayCheck,
+  api_cancelDelayCheck,
+  api_closeDelayCheck,
+  api_finishDelayCheck
+ } from "/src/helpers/communication";
 import EvaluatShare from "./evaluat-share";
 import { Vue3Lottie } from "vue3-lottie";
 import startData from "./data/start.json";
@@ -19,14 +30,14 @@ import iconTastBg from "./icons/task-bg.svg";
 import iconEvaluat from "./icons/evaluating.json";
 import { headImg } from "/src/page-instrument/header-top/image";
 import { api_musicPracticeRecordVideoUpload } from "../api";
-// import DelayCheck from "./delay-check";
 import { headTopData } from "../header-top/index";
 import { getQuery } from "/src/utils/queryString";
 import Countdown from "./countdown"
+import { IPostMessage } from "/src/utils/native-message";
 
-const DelayCheck = defineAsyncComponent(() =>
-  import('./delay-check')
-)
+// const DelayCheck = defineAsyncComponent(() =>
+//   import('./delay-check')
+// )
 
 // frequency 频率, amplitude 振幅, decibels 分贝
 type TCriteria = "frequency" | "amplitude" | "decibels";
@@ -123,6 +134,25 @@ export default defineComponent({
       return criteria;
     };
 
+    /** 校验耳机状态 */
+    const checkEarphoneStatus = async (type?: string) => {
+      if (type !== 'start') {
+        // const erji = await checkUseEarphone();
+        const res = await getEarphone();
+        const erji = res?.content?.checkIsWired || false;
+        console.log('耳机状态111',res)
+        evaluatingData.earphoneMode = true;
+        evaluatingData.earPhoneType = res?.content?.type || "";
+        if (evaluatingData.earPhoneType === "有线耳机") {
+          setTimeout(() => {
+            evaluatingData.earphoneMode = false;
+          }, 3000);
+        }
+      }
+      console.log("检测结束,生成数据",evaluatingData.websocketState , evaluatingData.startBegin , evaluatingData.checkEnd);
+      handleConnect();
+    }
+
     /** 生成评测曲谱数据 */
     const formatTimes = () => {
       let starTime = 0
@@ -256,7 +286,7 @@ export default defineComponent({
     };
 
     /** 评测结果按钮处理 */
-    const handleEvaluatResult = (type: "practise" | "tryagain" | "look" | "share" | "update") => {
+    const handleEvaluatResult = (type: "practise" | "tryagain" | "look" | "share" | "update" | "selfCancel") => {
       if (type === "update") {
         if (state.isAppPlay) {
           evaluatModel.evaluatUpdateAudio = true;
@@ -287,7 +317,11 @@ export default defineComponent({
         // 去练习
         handleStartEvaluat();
       } else if (type === "tryagain") {
-        // 再来一次
+        startBtnHandle()
+      } else if (type === "selfCancel") {
+        // 再来一次,需要手动取消评测,不生成评测记录,不显示评测结果弹窗
+        evaluatingData.oneselfCancleEvaluating = true;
+        handleCancelEvaluat();
         startBtnHandle()
       }
       resetPlaybackToStart()
@@ -358,28 +392,41 @@ export default defineComponent({
         
       }
     }
-    onMounted(() => {
+
+    // 监听到APP取消延迟检测
+    const handleCancelDelayCheck = async (res?: IPostMessage) => {
+      console.log('监听取消延迟检测', res)
+      if (res?.content) {
+        // 关闭延迟检测页面,并返回到模式选择页面
+        // await api_closeDelayCheck({});
+        handleDelayBack()
+      }
+    };
+
+    // 监听APP延迟成功的回调
+    const handleFinishDelayCheck = async (res?: IPostMessage) => {
+      console.log('监听延迟检测成功', res)
+      if (res?.content) {
+        evaluatingData.checkEnd = true
+        checkEarphoneStatus()
+      }
+    };
+
+    onMounted(async () => {
+      // 如果打开了延迟检测开关,需要先发送开始检测的消息
+      if (state.setting.soundEffect) {
+        await api_startDelayCheck({});
+      } else {
+        evaluatingData.checkEnd = true
+        checkEarphoneStatus()
+      }
       evaluatingData.isDisabledPlayMusic = true;
-      handlePerformDetection();
+      // handlePerformDetection();
+      api_cancelDelayCheck(handleCancelDelayCheck);
+      api_finishDelayCheck(handleFinishDelayCheck);
     });
     return () => (
       <div>
-        {/* <Transition name="pop-center">
-          {evaluatingData.websocketState && !evaluatingData.startBegin && evaluatingData.checkEnd && (
-            <div class={styles.startBtn} onClick={() => {
-              startBtnHandle()
-            }}>
-              <img src={iconEvaluat.evaluatingStart} />
-            </div>
-          )}
-        </Transition>
-        <Transition name="pop-center">
-          {evaluatingData.websocketState && evaluatingData.startBegin && (
-            <div class={styles.endBtn} onClick={() => handleEndBegin()}>
-              <img src={iconEvaluat.evaluatingEnd} />
-            </div>
-          )}
-        </Transition> */}
         <div class={styles.operatingBtn}>
           {evaluatingData.websocketState && !evaluatingData.startBegin && evaluatingData.checkEnd && (
               <img class={styles.iconBtn} src={headImg("icon_play.png")} 
@@ -389,24 +436,13 @@ export default defineComponent({
             )}
           {evaluatingData.websocketState && evaluatingData.startBegin && (
             <>
-              <img class={styles.iconBtn} src={headImg("icon_reset.png")} onClick={()=>handleEvaluatResult("tryagain")} />  
+              <img class={styles.iconBtn} src={headImg("icon_reset.png")} onClick={()=>handleEvaluatResult("selfCancel")} />  
               <img class={styles.iconBtn} src={headImg("submit.png")} onClick={() => handleEndBegin()}/> 
             </>
           )} 
         </div>
-        {/* <div style={{ display: !evaluatingData.startBegin && !evaluatingData.soundEffectMode ? "" : "none" }} class={styles.dialogueBox} key="start">
-          <div class={styles.dialogue}>
-            <img class={styles.dialoguebg} src={iconTastBg} />
-            <div>演奏前请调整好乐器,保证最佳演奏状态。</div>
-          </div>
-          <Vue3Lottie class={styles.dialogueIcon} animationData={startData}></Vue3Lottie>
-        </div>
-        <div style={{ display: evaluatingData.startBegin ? "" : "none" }} class={styles.dialogueBox} key="start">
-          <div class={styles.dialogueing}>收音中...</div>
-          <Vue3Lottie class={styles.dialogueIcon} animationData={startingData}></Vue3Lottie>
-        </div> */}
 
-        {evaluatingData.soundEffectMode && (
+        {/* {evaluatingData.soundEffectMode && (
           <DelayCheck
             onClose={() => {
               evaluatingData.soundEffectMode = false;
@@ -414,42 +450,21 @@ export default defineComponent({
             }}
             onBack={() => handleDelayBack()}
           />
-        )}
+        )} */}
+        
         {/* 倒计时 */}
         <Countdown />
-        {/* 预加载延迟检测组建 */}
-        {/* {evaluatingData.preloadJson && !evaluatingData.jsonLoadDone && (
-            <div class={styles.preJson}>
-              <DelayCheck />
-            </div>
-        )} */}
 
         <Popup teleport="body" closeOnClickOverlay={false} class={["popup-custom", "van-scale"]} transition="van-scale" v-model:show={evaluatingData.earphoneMode}>
           <Earphone
+            earphoneType={evaluatingData.earPhoneType}
             onClose={() => {
               evaluatingData.earphoneMode = false;
-              handlePerformDetection();
+              // handlePerformDetection();
+              checkEarphoneStatus('start');
             }}
           />
         </Popup>
-        {/* <Popup
-					teleport="body"
-					closeOnClickOverlay={false}
-					class={["popup-custom", "van-scale"]}
-					transition="van-scale"
-					v-model:show={evaluatingData.soundEffectMode}
-				>
-					<SoundEffect
-						onClose={(value: any) => {
-							evaluatingData.soundEffectMode = false;
-							if (value) {
-								state.setting.soundEffect = false;
-							}
-							handleEndSoundCheck();
-							handlePerformDetection();
-						}}
-					/>
-				</Popup> */}
 
         {/* 评测作业,非完整评测不显示评测结果弹窗 */}
         {

+ 18 - 11
src/page-instrument/header-top/index.tsx

@@ -60,7 +60,6 @@ export const headTopData = reactive({
         state.audioDone && showToast("资源加载中,请稍后");  //音频资源加载完之后才提示
         return;
       }
-
       // 如果是pc端, 评测模式暂不可用
       if (state.platform === IPlatform.PC) {
         showConfirmDialog({
@@ -71,10 +70,15 @@ export const headTopData = reactive({
         });
         return;
       }
+      // 评测模式,只有一行谱模式
+      if (!state.isSingleLine) {
+        state.isSingleLine = true
+        refreshMusicSvg()
+      }
       state.playIngSpeed = state.originSpeed;
       handleStartEvaluat();
       // 开发模式,把此处打开
-      // state.modeType = "evaluating"
+      state.modeType = "evaluating"
       // evaluatingData.rendered = true;
       // evaluatingData.soundEffectMode = true;
     } else if (value === "follow") {
@@ -83,6 +87,7 @@ export const headTopData = reactive({
         state.isSingleLine = true
         refreshMusicSvg()
       }
+      smoothAnimationState.isShow.value = false;
       toggleFollow();
     }
     headTopData.modeType = "show";
@@ -124,16 +129,17 @@ export function handlerModeChange(oldPlayType:"play"|"sing", oldPlaySource:IPlay
 function modeChangeHandleTimes(oldPlayType:"play"|"sing", oldPlaySource:IPlayState){
   const playType = state.playType
   const playSource = state.playSource
-  const {notBeatFixtime, xmlMp3BeatFixTime} = state.times[0]
+  const {notBeatFixtime, xmlMp3BeatFixTime, difftime} = state.times[0]
   const { isOpenMetronome, isSingOpenMetronome } = state 
   // 演奏向演唱切
   if(oldPlayType === "play"&&playType === "sing"){
     if(playSource === "mingSong"){
-      state.fixtime = 0
+      // 唱名文件也要加上弱起时间  他们制作曲子加了弱起时间
+      state.fixtime = difftime
       state.times.map(item => {
-        item.time = item.xmlNoteTime
-        item.endtime = item.xmlNoteEndTime
-        item.fixtime = 0
+        item.time = item.xmlNoteTime + difftime
+        item.endtime = item.xmlNoteEndTime + difftime
+        item.fixtime = difftime
       })
       return true
     }else{
@@ -200,11 +206,12 @@ function modeChangeHandleTimes(oldPlayType:"play"|"sing", oldPlaySource:IPlaySta
     // 演唱之间切换  
     // 切到唱名时候
     if(playSource === "mingSong"){
-      state.fixtime = 0
+      // 唱名文件也要加上弱起时间  他们制作曲子加了弱起时间
+      state.fixtime = difftime
       state.times.map(item => {
-        item.time = item.xmlNoteTime
-        item.endtime = item.xmlNoteEndTime
-        item.fixtime = 0
+        item.time = item.xmlNoteTime + difftime
+        item.endtime = item.xmlNoteEndTime + difftime
+        item.fixtime = difftime
       })
       return true
     }else if(oldPlaySource === "mingSong"){

+ 5 - 1
src/page-instrument/header-top/settting/index.tsx

@@ -52,7 +52,11 @@ export default defineComponent({
                         <div class={styles.cellBox}>
                             <div class={styles.tit}>延迟检测</div>
                             <Switch v-model={state.setting.soundEffect}></Switch>
-                        </div>                       
+                        </div>   
+                        <div class={styles.cellBox}>
+                            <div class={styles.tit}>摄像头</div>
+                            <Switch v-model={state.setting.camera}></Switch>
+                        </div>                                              
                         <div class={styles.cellBox}>
                             <div class={styles.tit}>标准音高</div>
                             <div class={styles.frequency}>

+ 25 - 25
src/page-instrument/header-top/title/index.module.less

@@ -1,28 +1,28 @@
 .container {
-    width: 170px;
-    height: 31px;
-    background: transparent;
-    display: flex;
-    align-items: center;
-    border-radius: 18px;
-    padding: 6px 10px;
-  
-    .noticeBar {
-      flex: 1;
-      padding: 0;
-    }
-    &.pcContainer {
-      width: 500px;
-    }
+  width: 170px;
+  height: 31px;
+  background: transparent;
+  display: flex;
+  align-items: center;
+  border-radius: 18px;
+  padding: 6px 10px;
+
+  .noticeBar {
+    flex: 1;
+    padding: 0;
   }
-  
-  .icon {
-    width: 26px;
-    height: 26px;
-    flex-shrink: 0;
+  &.pcContainer {
+    width: 500px;
   }
-  
-  .status {
-    margin-left: auto;
-    flex-shrink: 0;
-  }
+}
+
+.icon {
+  width: 26px;
+  height: 26px;
+  flex-shrink: 0;
+}
+
+.status {
+  margin-left: auto;
+  flex-shrink: 0;
+}

+ 1 - 1
src/page-instrument/header-top/title/index.tsx

@@ -33,4 +33,4 @@ export default defineComponent({
       </div>
     )
   }
-})
+})

+ 4 - 0
src/page-instrument/router.ts

@@ -24,6 +24,10 @@ const routes: RouteRecordRaw[] = [
     component: () => import("./view-figner/index"),
   },
   {
+    path: "/simple-detail", // 简单的一行谱页面
+    component: () => import("./simple-detail/index"),
+  },
+  {
     path: "/:pathMatch(.*)*",
     component: Notfind,
     meta: {

+ 39 - 0
src/page-instrument/simple-detail/index.module.less

@@ -0,0 +1,39 @@
+.skeleton {
+    position: fixed;
+    left: 0;
+    top: 0;
+    width: 100vw;
+    height: 100vh;
+    padding: 20px 30px;
+    background-color: #fff;
+    z-index: 1000;
+    --van-skeleton-paragraph-height: .8rem;
+}
+
+.detail {
+    width: 100vw;
+    height: auto;
+    overflow: hidden;
+    overflow-y: auto;
+    --header-height: 62px;
+    // background: var(--container-background);
+    background: transparent;
+
+    .container {
+        margin: 0 10px;
+        border-radius: 10px;
+    }
+    :global{
+        #osmdCanvasPage1 {
+            position: relative !important;
+        }
+        #musicAndSelection{
+            height: initial !important;
+            max-height: initial !important;
+        }
+        .smoothAnimationBox {
+            height: 0 !important;
+            overflow: hidden;
+        }
+    }
+}

+ 138 - 0
src/page-instrument/simple-detail/index.tsx

@@ -0,0 +1,138 @@
+import { defineComponent, onMounted, onUnmounted, reactive } from "vue";
+import state, { getMusicDetail, handleSetSpeed, addNoteBBox, getNote, gotoNext } from "/src/state";
+import MusicScore from "../../view/music-score";
+import styles from "./index.module.less";
+import { getQuery } from "/src/utils/queryString";
+import { closeToast, showLoadingToast } from "vant";
+import store from "store";
+import { formateTimes } from "../../helpers/formateMusic";
+import { setCustomGradual, setCustomNoteRealValue } from "/src/helpers/customMusicScore"
+import { initSmoothAnimation, smoothAnimationState, destroySmoothAnimation, moveSmoothAnimationByPlayTime } from "../view-detail/smoothAnimation";
+import { api_playProgress } from "/src/helpers/communication";
+
+export default defineComponent({
+	name: "simple-detail",
+	setup() {
+		const query: any = getQuery();
+
+		const detailData = reactive({
+			isLoading: true,
+			currentTime: 0, // 当前播放的时间
+			totalTime: 60000, // 音视频总时长
+		});
+
+		const communicateCb = (res: any) => {
+			// 播放进度
+			if (res?.data?.api === "playProgress") {
+				if (res?.data.data) {
+					state.playState = 'play';
+					console.log(res.data)
+				}
+			}
+		};
+		// 监听评测曲谱音频播放进度,返回
+		const progress = (res: any) => {
+			detailData.currentTime = res?.currentTime || res?.content?.currentTime;
+			detailData.totalTime = res?.totalDuration || res?.content?.totalDuration;
+			const time = detailData.currentTime / 1000;
+			if (res?.content?.totalDuration > 1000 && detailData.currentTime >= detailData.totalTime) {
+				// 播放结束
+			}
+		};
+
+		onMounted(async () => {
+			const id = query.id || '';
+			await getMusicDetail(id);
+			detailData.isLoading = false;
+			state.isSingleLine = true;
+			state.isSimplePage = true;
+			api_playProgress(progress);
+			window.addEventListener("message", communicateCb);
+		});
+
+		onUnmounted(() => {
+			state.isSimplePage = false;
+			window.removeEventListener("message", communicateCb);
+		});
+		/** 渲染完成 */
+		const handleRendered = async (osmd: any) => {
+			console.log('渲染完成')
+			state.osmd = osmd;
+			// 没有设置速度使用读取的速度
+			if (state.originSpeed === 0) {
+				state.originSpeed = state.speed = (osmd as any).bpm || osmd.Sheet.userStartTempoInBPM || 100;
+			}
+			const saveSpeed = (store.get("speeds") || {})[state.examSongId] || state.speed || (osmd as any).bpm || osmd.Sheet.userStartTempoInBPM;
+			// 加载本地缓存的速度
+			if (saveSpeed) {
+				handleSetSpeed(saveSpeed);
+			}
+			setCustomGradual();
+			setCustomNoteRealValue();
+			state.times = formateTimes(osmd);
+			console.log("🚀 ~ state.times:", state.times, state.subjectId, state);
+			// 音符添加位置信息bbox
+			addNoteBBox(state.times);
+			// 一行谱创建 动画
+			initSmoothAnimation();
+			//destroySmoothAnimation();
+			smoothAnimationState.isShow.value = false;
+			state.playState = 'play';
+			setStep();
+		};
+		/**
+		 * 播放一直触发的事件
+		 */
+		const handlePlaying = () => {
+			detailData.currentTime += 0.03;
+			const currentTime = detailData.currentTime;
+			const duration = detailData.totalTime;
+			state.playProgress = (currentTime / duration) * 100;
+			// console.log('👀~播放进度',currentTime)
+			let item = getNote(currentTime);
+			if (item) {
+				gotoNext(item);
+			}
+			// 一行谱,需要滚动小节
+			if (state.isSingleLine) {
+				moveSmoothAnimationByPlayTime(currentTime)
+			}
+		
+		};
+		/** 在渲染前后计算光标应该走到的音符 */
+		const setStep = () => {
+			// console.log('播放状态',state.playState)
+			if (state.playState !== "play") {
+				console.log("暂停播放");
+				return;
+			}
+			let startTime = Date.now();
+			requestAnimationFrame(() => {
+			const endTime = Date.now();
+			// 渲染时间大于16.6,就会让页面卡顿, 如果渲染时间大与16.6就下一个渲染帧去计算
+			if (endTime - startTime < 16.7) {
+				handlePlaying();
+				setStep();
+			} else {
+				setTimeout(() => {
+				handlePlaying();
+				setStep();
+				}, 16.7);
+			}
+			});
+		};
+
+		return () => (
+			<div class={styles.detail}>
+				<div id="scrollContainer" class={[styles.container, "hideCursor"]}>
+					{/* 曲谱渲染 */}
+					{!detailData.isLoading && 
+					<MusicScore 
+						onRendered={handleRendered} 
+						musicColor={'#FFFFFF'}
+					/>}
+				</div>
+			</div>
+		);
+	},
+});

二進制
src/page-instrument/view-detail/images/bg2.png


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

@@ -112,12 +112,12 @@ export function destroySmoothAnimation() {
 /**
  * 根据播放时间进度移动处理
  */
-export function moveSmoothAnimationByPlayTime() {
+export function moveSmoothAnimationByPlayTime(time?: number) {
    // 暂停之后不进行移动了
    if (state.playState === "paused") {
       return
    }
-   const currentTime = getAudioCurrentTime()
+   const currentTime = time || getAudioCurrentTime()
    if (currentTime <= state.fixtime) return
    if (currentTime > state.times.last()?.endtime) return
    // 当休止小节,可能当前音符在谱面上没有实际的音符(没有bbox),所以往后找谱面上有的音符

二進制
src/page-instrument/view-evaluat-report/component/share-top/image/audioBg.png


文件差異過大導致無法顯示
+ 0 - 0
src/page-instrument/view-evaluat-report/component/share-top/image/audioBga.json


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/back_icon.png


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/closeImg.png


+ 39 - 6
src/page-instrument/view-evaluat-report/component/share-top/image/icon-huifang.svg

@@ -1,13 +1,46 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg width="33px" height="33px" viewBox="0 0 33 33" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <title>button-normal备份 3</title>
+    <defs>
+        <linearGradient x1="17.1954441%" y1="14.7360422%" x2="84.4297%" y2="87.3517208%" id="linearGradient-1">
+            <stop stop-color="#50C6FF" offset="0%"></stop>
+            <stop stop-color="#6A8AFF" offset="34.1346154%"></stop>
+            <stop stop-color="#A070FF" offset="71.560861%"></stop>
+            <stop stop-color="#FF77F7" offset="100%"></stop>
+        </linearGradient>
+        <linearGradient x1="87.4717428%" y1="81.7088149%" x2="17.371674%" y2="8.96796691%" id="linearGradient-2">
+            <stop stop-color="#41F1CC" offset="0%"></stop>
+            <stop stop-color="#21CDFF" offset="47.8253805%"></stop>
+            <stop stop-color="#008CFF" offset="100%"></stop>
+        </linearGradient>
+        <rect id="path-3" x="0" y="0" width="33" height="33" rx="16.5"></rect>
+        <filter x="-6.1%" y="-6.1%" width="112.1%" height="112.1%" filterUnits="objectBoundingBox" id="filter-4">
+            <feGaussianBlur stdDeviation="1.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <filter x="-30.9%" y="-30.9%" width="161.8%" height="161.8%" filterUnits="objectBoundingBox" id="filter-5">
+            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.419209967   0 0 0 0 0.533259737  0 0 0 0.796711101 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
+                <feMergeNode in="SourceGraphic"></feMergeNode>
+            </feMerge>
+        </filter>
+    </defs>
     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="评测报告(音准)" transform="translate(-639.000000, -13.000000)">
-            <g id="button-normal备份-3" transform="translate(639.000000, 13.000000)">
-                <rect id="button-normal" fill="#EFF9FF" x="0" y="0" width="33" height="33" rx="16.5"></rect>
-                <g id="编组" transform="translate(8.000000, 8.000000)">
-                    <path d="M6,11.2838533 L6,5.70732273 C6,5.16019142 6.56518082,4.82349524 7.0294365,5.09706089 L11.6518082,7.87480443 C12.1160639,8.14837008 12.1160639,8.84280597 11.6518082,9.11637162 L7.0294365,11.8941152 C6.56518082,12.1887243 6,11.8309846 6,11.2838533 Z" id="形状" fill="#2AAAE9" fill-rule="nonzero"></path>
-                    <path d="M8.5,17 C13.1944204,17 17,13.1944204 17,8.5 C17,3.80557963 13.1944204,0 8.5,0 C6.7502475,0 5.12397972,0.528700969 3.77223303,1.43506655 C2.5629265,2.24592396 1.57333404,3.35904678 0.911600214,4.66629045 C0.328527255,5.81814095 0,7.12070465 0,8.5" id="椭圆形" stroke="#2AAAE9" stroke-width="2.5" stroke-linecap="round"></path>
+        <g id="评测报告(音准)" transform="translate(-702.000000, -11.000000)">
+            <g id="button-normal备份-3" transform="translate(702.000000, 11.000000)">
+                <g id="button-normal">
+                    <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-3"></use>
+                    <use fill="url(#linearGradient-2)" fill-rule="evenodd" xlink:href="#path-3"></use>
+                    <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
+                </g>
+                <g id="编组" filter="url(#filter-5)" transform="translate(8.000000, 8.000000)">
+                    <path d="M6,11.2838533 L6,5.70732273 C6,5.16019142 6.56518082,4.82349524 7.0294365,5.09706089 L11.6518082,7.87480443 C12.1160639,8.14837008 12.1160639,8.84280597 11.6518082,9.11637162 L7.0294365,11.8941152 C6.56518082,12.1887243 6,11.8309846 6,11.2838533 Z" id="形状" fill="#FFFFFF" fill-rule="nonzero"></path>
+                    <path d="M8.5,17 C13.1944204,17 17,13.1944204 17,8.5 C17,3.80557963 13.1944204,0 8.5,0 C6.7502475,0 5.12397972,0.528700969 3.77223303,1.43506655 C2.5629265,2.24592396 1.57333404,3.35904678 0.911600214,4.66629045 C0.328527255,5.81814095 0,7.12070465 0,8.5" id="椭圆形" stroke="#FFFFFF" stroke-width="2.5" stroke-linecap="round"></path>
                 </g>
             </g>
         </g>

+ 35 - 2
src/page-instrument/view-evaluat-report/component/share-top/image/icon-shiyi.svg

@@ -1,11 +1,44 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <svg width="33px" height="33px" viewBox="0 0 33 33" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <title>button-normal备份 2</title>
+    <defs>
+        <linearGradient x1="17.1954441%" y1="14.7360422%" x2="84.4297%" y2="87.3517208%" id="linearGradient-1">
+            <stop stop-color="#50C6FF" offset="0%"></stop>
+            <stop stop-color="#6A8AFF" offset="34.1346154%"></stop>
+            <stop stop-color="#A070FF" offset="71.560861%"></stop>
+            <stop stop-color="#FF77F7" offset="100%"></stop>
+        </linearGradient>
+        <linearGradient x1="87.4717428%" y1="81.7088149%" x2="17.371674%" y2="8.96796691%" id="linearGradient-2">
+            <stop stop-color="#41F1CC" offset="0%"></stop>
+            <stop stop-color="#21CDFF" offset="47.8253805%"></stop>
+            <stop stop-color="#008CFF" offset="100%"></stop>
+        </linearGradient>
+        <rect id="path-3" x="0" y="0" width="33" height="33" rx="16.5"></rect>
+        <filter x="-6.1%" y="-6.1%" width="112.1%" height="112.1%" filterUnits="objectBoundingBox" id="filter-4">
+            <feGaussianBlur stdDeviation="1.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <filter x="-23.7%" y="-23.7%" width="147.4%" height="147.4%" filterUnits="objectBoundingBox" id="filter-5">
+            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.419209967   0 0 0 0 0.533259737  0 0 0 0.796711101 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
+                <feMergeNode in="SourceGraphic"></feMergeNode>
+            </feMerge>
+        </filter>
+    </defs>
     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="评测报告(音准)" transform="translate(-755.000000, -11.000000)">
             <g id="button-normal备份-2" transform="translate(755.000000, 11.000000)">
-                <rect id="button-normal" fill="#FFE5E7" x="0" y="0" width="33" height="33" rx="16.5"></rect>
-                <g id="编组" transform="translate(7.000000, 7.000000)" fill="#FF6173" fill-rule="nonzero" stroke="#FF6173">
+                <g id="button-normal">
+                    <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-3"></use>
+                    <use fill="url(#linearGradient-2)" fill-rule="evenodd" xlink:href="#path-3"></use>
+                    <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
+                </g>
+                <g id="编组" filter="url(#filter-5)" transform="translate(7.000000, 7.000000)" fill="#FFFFFF" fill-rule="nonzero" stroke="#FFFFFF">
                     <path d="M9.5,0 C4.25322823,0 0,4.25324263 0,9.5 C0,14.7467574 4.25324678,19 9.5,19 C14.7467532,19 19,14.7467574 19,9.5 C19,4.25324263 14.7467347,0 9.5,0 Z M9.49999096,17.5000093 C5.08224075,17.5000093 1.50001028,13.9181622 1.50001028,9.50000928 C1.50001028,5.08182021 5.08222266,1.50000928 9.49999096,1.50000928 C13.9185552,1.50000928 17.4999897,5.08182019 17.4999897,9.50000928 C17.4999897,13.9181622 13.9185552,17.5000093 9.49999096,17.5000093 Z" id="形状"></path>
                     <path d="M9.60242663,4.40820056 C8.69574736,4.40820056 7.97469307,4.6677898 7.4389318,5.18715088 C6.90315395,5.69822914 6.63526502,6.415299 6.63526502,7.33837705 L8.04487302,7.33837705 C8.04487302,6.81089915 8.14788552,6.40699959 8.35389392,6.12666179 C8.58443543,5.78879242 8.97191911,5.61974983 9.51601299,5.61974983 C9.94462863,5.61974983 10.2743981,5.73539395 10.5053048,5.96591863 C10.7358463,6.21324134 10.8512913,6.53471105 10.8512913,6.9303112 C10.8512913,7.24366409 10.739996,7.53608583 10.5173721,7.8081242 L10.3691112,7.9813165 C9.56127805,8.69838636 9.0790813,9.22189715 8.9224877,9.55148369 C8.75761128,9.87295341 8.67534734,10.2768696 8.67534736,10.763033 L8.67534736,10.9362087 L10.0970393,10.9362087 L10.0970393,10.763033 C10.0970393,10.4745617 10.1589364,10.2066731 10.2826809,9.95935037 C10.3977774,9.72050967 10.5626538,9.51431889 10.7769782,9.34134239 C11.3538881,8.83856355 11.7085558,8.51294411 11.8402179,8.36446749 C12.1450891,7.96075053 12.2978816,7.45383858 12.2978816,6.84373165 C12.2978816,6.08551327 12.050791,5.49202176 11.5561285,5.06338994 C11.0697654,4.62665788 10.4185259,4.40820056 9.60242663,4.40820056 Z M8.69988046,12.8015559 C8.51877034,12.9747482 8.42784181,13.1971561 8.42784181,13.4692111 C8.42784181,13.7412494 8.51877034,13.9638565 8.69988046,14.1368496 C8.8979878,14.3183413 9.1243464,14.4088879 9.38018456,14.4088879 C9.6522066,14.4088879 9.87859838,14.3223084 10.0600737,14.1493153 C10.2494998,13.976123 10.3445946,13.7495489 10.3445946,13.4692111 C10.3445946,13.2056547 10.2536329,12.9830477 10.0725228,12.8015559 C9.89104754,12.6285628 9.66015745,12.5419667 9.38018456,12.5419667 C9.11606357,12.5419667 8.88967177,12.6285628 8.69988046,12.8015559 Z" id="形状"></path>
                 </g>

文件差異過大導致無法顯示
+ 0 - 0
src/page-instrument/view-evaluat-report/component/share-top/image/leftCloud.json


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/midPlay.png


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/pause.png


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/play.png


文件差異過大導致無法顯示
+ 0 - 0
src/page-instrument/view-evaluat-report/component/share-top/image/rightCloud.json


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/shiyi-top.png


二進制
src/page-instrument/view-evaluat-report/component/share-top/image/videobg.png


+ 176 - 67
src/page-instrument/view-evaluat-report/component/share-top/index.module.less

@@ -6,7 +6,7 @@
     height: 100%;
     flex-shrink: 0;
     padding: 10px 22px;
-    background-color: #fff;
+    background-color: rgba(6, 34, 87, 0.45);
     position: relative;
 }
 
@@ -18,13 +18,13 @@
     display: flex;
     justify-content: center;
     align-items: center;
-    padding-right: 14px;
+    padding-right: 10px;
     height: 100%;
 
     img {
         display: block;
-        width: 15px;
-        height: 24px;
+        width: 28px;
+        height: 28px;
     }
 }
 
@@ -41,22 +41,29 @@
         .lcName {
             font-size: 18px;
             font-weight: 600;
-            color: #000;
-            line-height: 25px;
+            color: #fff;
+            height: 20px;
+            line-height: 20px;
             margin-bottom: 2px;
             padding: 0 !important;
 
             :global {
                 .van-notice-bar {
+                    height: 20px;
+                    line-height: 20px;
                     padding: 0 !important;
                 }
+                .van-notice-bar__content {
+                    color: #fff;
+                }
             }
         }
 
         .lcScore {
             font-size: 12px;
-            color: #777777;
+            color: #fff;
             line-height: 18px;
+            font-weight: normal;
         }
     }
 }
@@ -70,7 +77,7 @@
         text-align: center;
         padding: 0 12px;
         white-space: nowrap;
-
+        
         &>div:first-child {
             font-size: 12px;
             color: #333333;
@@ -139,13 +146,13 @@
     }
 
     .active {
-        background: #CBEEFF;
+        background: linear-gradient( 270deg, rgba(27, 210, 255, 0.36) 0%, rgba(26, 173, 255, 0.36) 100%);
         border-radius: 8px;
 
         .mScore,
         .mLabel {
-            color: #000000;
-            font-weight: 600;
+            color: #fff;
+            font-weight: normal;
         }
     }
 }
@@ -164,7 +171,7 @@
         line-height: 14px;
         font-weight: 400;
         padding: 0 10px;
-        color: #999;
+        color: #fff;
         cursor: pointer;
 
         .iconBtn {
@@ -176,6 +183,7 @@
         span {
             margin-top: 2px;
             white-space: nowrap;
+            transform: scale(0.9);
         }
 
         .btnWrap {
@@ -191,39 +199,143 @@
 
     :global {
         .van-popup__close-icon {
-            top: 0;
-            right: -30px;
-            background-color: #fff;
-            border-radius: 50%;
-            padding: 4px;
-            font-size: 16px;
-            color: var(--van-primary-color);
+            width: 32px;
+            height: 32px;
+            top: -3px;
+            right: -48px;
+            background: url("./image/closeImg.png") no-repeat;
+            background-size: 100% 100%;
+            &::before{
+                display: none;
+            }
         }
     }
 }
-
-.audiobox {
-    width: 40vw;
-
+.playerBox{
+    width: 537px;
+    height: 314px; 
+    background: #FFF8F8;
+    box-shadow: inset 4px -3px 6px 0px #B2E8FF;
+    border-radius: 20px;
+    padding: 14px;
     :global {
         .plyr {
-            border-radius: 20px;
+            border-radius: 16px;
             width: 100%;
+            height: 100%;
+            .plyr__control.plyr__control--overlaid{
+                width: 48px;
+                height: 48px;
+                background: url("./image/midPlay.png") no-repeat;
+                background-size: 100% 100%;
+                .plyr__sr-only, svg{
+                    display: none;
+                }
+            }
+            .plyr__controls{
+                background: initial;
+                padding: 0 20px 13px;
+                .plyr__controls__item.plyr__control{
+                    padding: 0;
+                    width: 18px;
+                    height: 18px;
+                    &:hover{
+                        background: initial;
+                    }
+                    .icon--pressed{
+                        width: 100%;
+                        height: 100%;
+                        background: url("./image//pause.png") no-repeat;
+                        background-size: 100% 100%;
+                        use{
+                            display: none;
+                        }
+                    }
+                    .icon--not-pressed{
+                        width: 100%;
+                        height: 100%;
+                        background: url("./image/play.png") no-repeat;
+                        background-size: 100% 100%;
+                        use{
+                            display: none;
+                        }
+                    }
+                }
+                .plyr__controls__item.plyr__progress__container{
+                    margin-left: 9px;
+                    input[type=range]{
+                        color: #73C1FF;
+                        height: 20px;
+                    }
+                    input[type="range"]::-webkit-slider-runnable-track {
+                        height: 4px;
+                    }
+                    input[type="range"]::-webkit-slider-thumb {
+                        width: 12px;
+                        height: 12px;
+                        margin-top: -4px;
+                    }
+                    .plyr__progress__buffer{
+                        height: 4px;
+                        color: rgba(115,193,255,0.8);
+                        background-color: #fff;
+                        margin-top: -2px;
+                    }
+                }
+                .plyr__controls__item.plyr__time{
+                    font-weight: 500;
+                    font-size: 14px;
+                    color: #FFFFFF;
+                    &.plyr__time--current{
+                        margin-left: 9px;
+                    }
+                }
+
+            }
         }
     }
-}
-
-.videobox {
-    display: flex;
-    align-items: center;
-    width: 80vw;
-    height: 80vh;
-
-    :global {
-        .plyr {
-            border-radius: 10px;
+    .videoBox{
+        width: 100%;
+        height: 100%;
+    }
+    .audioBox{
+        width: 100%;
+        height: 100%;
+        background: url("./image/audioBg.png") no-repeat;
+        background-size: 100% 100%;
+        position: relative;
+        border-radius: 16px;
+        .audioBga{
             width: 100%;
-            height: 100%;
+            height: 88%;
+        }
+        .audioBga1{
+            position: absolute;
+            left: 0;
+            top: 8px;
+            width: 146px;
+        }        
+        .audioBga2{
+            width: 268px;
+            position: absolute;
+            right: -24px;
+            top: -8px;
+        }
+        :global {
+            .plyr {
+                position: absolute;
+                height: initial;
+                left: 0;
+                bottom: 0;
+            }
+        }
+        .audioVisualizer{
+            position: absolute;
+            top: 50%;
+            left: 50%;
+            transform: translate(-50%,-50%);
+            width: 370px;
+            height: 66px;
         }
     }
 }
@@ -238,7 +350,7 @@
     padding: 0 16px;
     height: 30px;
     border-radius: 18px;
-    background-color: rgba(255, 255, 255, .9);
+    background-color: rgba(0, 38, 99, 1);
     z-index: 1;
     box-sizing: content-box;
 
@@ -253,6 +365,14 @@
 
         &>span {
             margin-left: 4px;
+            color: #fff;
+        }
+        &>i {
+            width: 12px;
+            height: 12px;
+            margin-right: 2px;
+            border-radius: 3px;
+            display: inline-block;
         }
     }
 }
@@ -267,13 +387,22 @@
 }
 
 .shiyiPopup {
-    background: #fff;
+    background: #7AAEE0;
     border-radius: 20px;
     width: 80vw;
     max-width: 460px;
-    padding: 20px;
+    padding: 10px;
     position: relative;
-
+    &::before {
+        content: "";
+        position: absolute;
+        left: 10px;
+        top: 10px;
+        width: calc(100% - 20px);
+        height: calc(100% - 20px);
+        background: #D5E8FF;
+        border-radius: 14px;
+    }
     .shiyiTop {
         position: absolute;
         width: 154px;
@@ -326,36 +455,16 @@
         &:nth-child(2n) {
             transform: translateX(20px);
         }
-
-        .firstIcon1 {
-            width: 12px;
-            height: 20px;
-        }
-
-        .firstIcon2 {
-            width: 19px;
-            height: 13px;
-        }
-
-        .firstIcon3 {
-            width: 12px;
-            height: 13px;
-        }
-
-        img {
-            position: absolute;
-            left: 0;
-            top: 50%;
-            transform: translateY(-50%);
-        }
-
-        .fiz {
-            left: -5px;
-        }
-
         span {
             font-size: 12px;
             font-weight: 400;
         }
+        &>i {
+            width: 12px;
+            height: 12px;
+            margin-right: 12px;
+            border-radius: 3px;
+            display: inline-block;
+        }
     }
 }

+ 213 - 74
src/page-instrument/view-evaluat-report/component/share-top/index.tsx

@@ -3,19 +3,11 @@ import styles from "./index.module.less";
 
 import { api_back } from "/src/helpers/communication";
 import state from "/src/state";
-import iconBack from "./image/icon-back.svg";
+import iconBack from "./image/back_icon.png";
 import iconShiyi from "./image/icon-shiyi.svg";
 import iconhuifang from "./image/icon-huifang.svg";
 import shiyiTop from "./image/shiyi-top.png";
-import shiyiClose from "./image/shiyi-close.svg";
-import firstLeft from "./image/first-left.svg";
-import firstRight from "./image/first-right.svg";
-import firstTop from "./image/first-top.svg";
-import firstBottom from "./image/first-bottom.svg";
-import firstCorrect from "./image/first-correct.svg";
-import firstError from "./image/first-error.svg";
-import firstNot from "./image/first-not.svg";
-import firstLack from "./image/first-lack.svg";
+import shiyiClose from "./image/closeImg.png";
 import { Grid, GridItem, Popup } from "vant";
 import videobg from "./image/videobg.png";
 import "plyr/dist/plyr.css";
@@ -24,6 +16,10 @@ import { browser } from "/src/utils";
 import Note from "../note";
 import { storeData } from "/src/store";
 import Title from "/src/page-instrument/header-top/title";
+import { Vue3Lottie } from "vue3-lottie";
+import audioBga from "./image/audioBga.json";
+import audioBga1 from "./image/leftCloud.json";
+import audioBga2 from "./image/rightCloud.json";
 
 type IItemType = "intonation" | "cadence" | "integrity";
 
@@ -44,11 +40,25 @@ export default defineComponent({
 			isInitPlyr: false,
 			_plrl: null as any,
 		});
+		const lottieDom = ref<any>()
+		const lottieDom1 = ref<any>()
+		const lottieDom2 = ref<any>()
 		const level: any = {
 			BEGINNER: "入门级",
 			ADVANCED: "进阶级",
 			PERFORMER: "大师级",
 		};
+		// 颜色配置
+		const bgColors = {
+			high: '#FF66A6',
+			low: '#FFB900',
+			right: '#65FFAE',
+			wrong: '#DA3736',
+			lack: '#A5CBFF',
+			not: '#FFFFFF',
+			fast: '#B366FF',
+			slow: '#FF7B00'
+		}
 		// console.log("🚀 ~ scoreData:", scoreData.value)
 		const itemType = ref<IItemType>("intonation");
 		/** 返回 */
@@ -76,12 +86,134 @@ export default defineComponent({
 			nextTick(() => {
 				const id = mediaType.value === "audio" ? "#audioSrc" : "#videoSrc";
 				shareData._plrl = new Plyr(id, {
-					controls: ["play-large", "play", "progress", "current-time"],
+					controls: ["play-large", "play", "progress", "current-time", "duration"],
 					fullscreen: { enabled: false },
 				});
+				// 创建音波数据
+				if(mediaType.value === "audio"){
+					setTimeout(() => {
+						const audioDom = document.querySelector("#audioSrc") as HTMLAudioElement
+						const canvasDom = document.querySelector("#audioVisualizer") as HTMLCanvasElement
+						const { pauseVisualDraw, playVisualDraw } = audioVisualDraw(audioDom, canvasDom)
+						shareData._plrl.on('play', () => {
+							lottieDom.value.play()
+							lottieDom1.value.play()
+							lottieDom2.value.play()
+							playVisualDraw()
+						});
+						shareData._plrl.on('pause', () => {
+							lottieDom.value.pause()
+							lottieDom1.value.pause()
+							lottieDom2.value.pause()
+							pauseVisualDraw()
+						});
+					}, 300); // 弹窗动画是0.25秒 这里用定时器 确保canvas 能获取到宽高
+				}
 				shareData.isInitPlyr = true;
 			});
 		};
+		/**
+		 * 音频可视化
+		 * @param audioDom 
+		 * @param canvasDom 
+		 * @param fftSize  2的幂数,最小为32
+		 */
+		function audioVisualDraw(audioDom: HTMLAudioElement, canvasDom: HTMLCanvasElement, fftSize = 128) {
+			type propsType = { canvWidth: number; canvHeight: number; canvFillColor: string; lineColor: string; lineGap: number }
+			// canvas
+			const canvasCtx = canvasDom.getContext("2d")!
+			const { width, height } = canvasDom.getBoundingClientRect()
+			canvasDom.width = width
+			canvasDom.height = height
+			// audio
+			let audioCtx : AudioContext | null = null
+			let analyser : AnalyserNode | null = null
+			let source : MediaElementAudioSourceNode | null = null
+			const dataArray = new Uint8Array(fftSize / 2)
+			const draw = (data: Uint8Array, ctx: CanvasRenderingContext2D, { lineGap, canvWidth, canvHeight, canvFillColor, lineColor }: propsType) => {
+				if (!ctx) return
+				const w = canvWidth
+				const h = canvHeight
+				fillCanvasBackground(ctx, w, h, canvFillColor)
+				// 可视化
+				const dataLen = data.length
+				let step = (w / 2 - lineGap * dataLen) / dataLen
+				step < 1 && (step = 1)
+				const midX = w / 2
+				const midY = h / 2
+				let xLeft = midX
+				for (let i = 0; i < dataLen; i++) {
+					const value = data[i]
+					const percent = value / 255 // 最大值为255
+					const barHeight = percent * midY
+					canvasCtx.fillStyle = lineColor
+					// 中间加间隙
+					if (i === 0) {
+						xLeft -= lineGap / 2
+					}
+					canvasCtx.fillRect(xLeft - step, midY - barHeight, step, barHeight)
+					canvasCtx.fillRect(xLeft - step, midY, step, barHeight)
+					xLeft -= step + lineGap
+				}
+				let xRight = midX
+				for (let i = 0; i < dataLen; i++) {
+					const value = data[i]
+					const percent = value / 255 // 最大值为255
+					const barHeight = percent * midY
+					canvasCtx.fillStyle = lineColor
+					if (i === 0) {
+						xRight += lineGap / 2
+					}
+					canvasCtx.fillRect(xRight, midY - barHeight, step, barHeight)
+					canvasCtx.fillRect(xRight, midY, step, barHeight)
+					xRight += step + lineGap
+				}
+			}
+			const fillCanvasBackground = (ctx: CanvasRenderingContext2D, w: number, h: number, colors: string) => {
+				ctx.clearRect(0, 0, w, h)
+				ctx.fillStyle = colors
+				ctx.fillRect(0, 0, w, h)
+			}
+			const requestAnimationFrameFun = () => {
+				requestAnimationFrame(() => {
+					analyser?.getByteFrequencyData(dataArray)
+					draw(dataArray, canvasCtx, {
+						lineGap: 2,
+						canvWidth: width,
+						canvHeight: height,
+						canvFillColor: "transparent",
+						lineColor: "rgba(255, 255, 255, 0.3)"
+					})
+					if (!isPause) {
+						requestAnimationFrameFun()
+					}
+				})
+			}
+			let isPause = true
+			const playVisualDraw = () => {
+				if (!audioCtx) {
+					audioCtx = new AudioContext()
+					source = audioCtx.createMediaElementSource(audioDom)
+				}
+				analyser = audioCtx.createAnalyser()
+				analyser.fftSize = fftSize
+				source?.connect(analyser)
+				analyser.connect(audioCtx.destination)
+				audioCtx.resume()
+				isPause = false
+				requestAnimationFrameFun()
+			}
+			const pauseVisualDraw = () => {
+				isPause = true
+				audioCtx?.suspend()
+				source?.disconnect()
+				analyser?.disconnect()
+			}
+			return {
+				playVisualDraw,
+				pauseVisualDraw
+			}
+		}
 		return () => (
 			<div class={[styles.headerTop, browserInfo.android && styles.android]}>
 				<div class={styles.left}>
@@ -189,11 +321,12 @@ export default defineComponent({
 							{itemType.value === "intonation" && (
 								<>
 									<div>
-										<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-2} y={0} />
+										{/* <Note fill="rgba(255, 102, 166, 1)" shadowFill="#FFAB25" shadow x={-2} y={0} /> */}
+										<Note fill="#FF66A6" />
 										<span>演奏偏高</span>
 									</div>
 									<div>
-										<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-1} y={-3} />
+										<Note fill="#FFB900" />
 										<span>演奏偏低</span>
 									</div>
 								</>
@@ -201,23 +334,23 @@ export default defineComponent({
 							{itemType.value === "cadence" && (
 								<>
 									<div>
-										<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={0.5} y={-1} />
+										<Note fill="#B366FF" />
 										<span>节奏偏快</span>
 									</div>
 									<div>
-										<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-3} y={-2.5} />
-										<span>演奏偏低</span>
+										<Note fill="#FF7B00" />
+										<span>节奏偏慢</span>
 									</div>
 								</>
 							)}		
 							{(itemType.value === "intonation" || itemType.value === "cadence") && (
 								<>										
 									<div>
-										<Note fill="#2ABC6F" />
+										<Note fill="#65FFAE" />
 										<span>演奏正确</span>
 									</div>
 									<div>
-										<Note fill="#FF2B29" />
+										<Note fill="#DA3736" />
 										<span>演奏错误</span>
 									</div>							
 								</>
@@ -225,19 +358,19 @@ export default defineComponent({
 
 							{(itemType.value === "intonation" || itemType.value === "integrity") && (
 								<div>
-									<Note fill="#8F4EFB" />
+									<Note fill="#A5CBFF" />
 									<span>时值不足</span>
 								</div>
 							)}
 							{
 								itemType.value === "integrity" && 
 								<div>
-									<Note fill="#2ABC6F" />
+									<Note fill="#65FFAE" />
 									<span>时值正确</span>
 								</div>								
 							}
 							<div>
-								<Note fill="#ADADAD" />
+								<Note fill="#FFFFFF" />
 								<span>未演奏</span>
 							</div>
 						</div>
@@ -249,11 +382,12 @@ export default defineComponent({
 							{itemType.value === "intonation" && (
 								<>
 									<div>
-										<img class={styles.firstIcon1} src={firstTop} />
+										{/* <img class={styles.firstIcon1} src={firstTop} /> */}
+										<i style={{ background: bgColors.high }}></i>
 										<span>演奏偏高</span>
 									</div>
 									<div>
-										<img class={styles.firstIcon1} src={firstBottom} />
+										<i style={{ background: bgColors.low }}></i>
 										<span>演奏偏低</span>
 									</div>
 								</>
@@ -261,11 +395,11 @@ export default defineComponent({
 							{itemType.value === "cadence" && (
 								<>
 									<div>
-										<img class={styles.firstIcon2} src={firstLeft} />
+										<i style={{ background: bgColors.fast }}></i>
 										<span>节奏偏快</span>
 									</div>
 									<div>
-										<img class={styles.firstIcon2} src={firstRight} />
+										<i style={{ background: bgColors.slow }}></i>
 										<span>节奏偏慢</span>
 									</div>
 								</>
@@ -273,37 +407,36 @@ export default defineComponent({
 							{(itemType.value === "intonation" || itemType.value === "cadence") && (	
 								<>			
 									<div>
-										<img class={styles.firstIcon3} src={firstCorrect} />
+										<i style={{ background: bgColors.right }}></i>
 										<span>演奏正确</span>
 									</div>
 									<div>
-										<img class={styles.firstIcon3} src={firstError} />
+										<i style={{ background: bgColors.wrong }}></i>
 										<span>演奏错误</span>
 									</div>							
 								</>
 							)}
 							{(itemType.value === "intonation" || itemType.value === "integrity") && (
 								<div>
-									<img class={styles.firstIcon3} src={firstLack} />
+									<i style={{ background: bgColors.lack }}></i>
 									<span>时值不足</span>
 								</div>
 							)}
 							{
 								itemType.value === "integrity" && 
 								<div>
-									<img class={styles.firstIcon3} src={firstCorrect} />
+									<i style={{ background: bgColors.right }}></i>
 									<span>时值正确</span>
 								</div>								
 							}							
 							<div>
-								<img class={styles.firstIcon3} src={firstNot} />
+								<i style={{ background: bgColors.not }}></i>
 								<span>未演奏</span>
 							</div>
 						</div>
 					)}
 					</>							
 				}	
-
 				<Popup
 					teleport="body"
 					class={["popup-custom", "van-scale", styles.popup]}
@@ -314,19 +447,23 @@ export default defineComponent({
 						shareData._plrl?.pause();
 					}}
 				>
-					{mediaType.value === "audio" && (
-						<div class={styles.audiobox}>
-							<audio
-								id="audioSrc"
-								src={scoreData.value.videoFilePath}
-								controls="false"
-								preload="metadata"
-								playsinline
-							/>
-						</div>
-					)}
-					{mediaType.value === "video" && (
-						<div class={styles.videobox}>
+					<div class={styles.playerBox}>
+						{
+							mediaType.value === "audio" ? 
+							<div class={styles.audioBox}>
+								<canvas class={styles.audioVisualizer} id="audioVisualizer"></canvas>
+								<Vue3Lottie ref={lottieDom} class={styles.audioBga} animationData={audioBga} autoPlay={false} loop={true}></Vue3Lottie>
+								<Vue3Lottie ref={lottieDom1} class={styles.audioBga1} animationData={audioBga1} autoPlay={false} loop={true}></Vue3Lottie>
+								<Vue3Lottie ref={lottieDom2} class={styles.audioBga2} animationData={audioBga2} autoPlay={false} loop={true}></Vue3Lottie>
+								<audio
+									crossorigin="anonymous"
+									id="audioSrc"
+									src={scoreData.value.videoFilePath}
+									controls="false"
+									preload="metadata"
+									playsinline
+								/>
+							</div> : 
 							<video
 								id="videoSrc"
 								class={styles.videoBox}
@@ -335,8 +472,8 @@ export default defineComponent({
 								preload="metadata"
 								playsinline
 							/>
-						</div>
-					)}
+						}
+					</div>
 				</Popup>
 
 				<Popup
@@ -347,41 +484,43 @@ export default defineComponent({
 					closeable
 				>
 					<img onClick={() => shareData.shiyiShow = false }  class={styles.shiyiClose} src={shiyiClose} />
+					
 					{scoreData.value.musicType === 'staff' ?
 						<div class={styles.shiyiPopup}>
 							<img class={styles.shiyiTop} src={shiyiTop} />
 							<div class={styles.items}>
 								<div class={styles.item}>
-									<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-2} y={0} />
-									<span>黄色音符在上:演奏偏高</span>
+									{/* <Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-2} y={0} /> */}
+									<Note fill="#FF66A6" />
+									<span>玫红色音符:演奏偏高</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="#2ABC6F" />
+									<Note fill="#4BED98" />
 									<span>绿色音符:演奏/时值正确</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-1} y={-3} />
-									<span>黄色音符在下:演奏偏低</span>
+									<Note fill="#FFB900" />
+									<span>黄色音符:演奏偏低</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="#FF2B29" />
+									<Note fill="#DA3736" />
 									<span>红色音符:演奏错误</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={0.5} y={-1} />
-									<span>黄色音符在左:节奏偏快</span>
+									<Note fill="#B366FF" />
+									<span>紫色音符:节奏偏快</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="#8F4EFB" />
-									<span>色音符:时值不足</span>
+									<Note fill="#A5CBFF" />
+									<span>浅蓝色音符:时值不足</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="rgba(42, 188, 111, 1)" shadowFill="#FFAB25" shadow x={-3} y={-2.5} />
-									<span>黄色音符在右:节奏偏慢</span>
+									<Note fill="#FF7B00" />
+									<span>橙色音符:节奏偏慢</span>
 								</div>
 								<div class={styles.item}>
-									<Note fill="#ADADAD" />
-									<span>色音符:未演奏</span>
+									<Note fill="#FFFFFF" />
+									<span>色音符:未演奏</span>
 								</div>
 							</div>
 						</div> : 
@@ -389,36 +528,36 @@ export default defineComponent({
 							<img class={styles.shiyiTop} src={shiyiTop} />
 							<div class={styles.items}>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon1} src={firstTop} />
-									<span>黄色箭头朝上:演奏偏高</span>
+									<i style={{ background: bgColors.high }}></i>
+									<span>玫红色音符:演奏偏高</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon3} src={firstCorrect} />
+									<i style={{ background: bgColors.right }}></i>
 									<span>绿色音符:演奏/时值正确</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon1} src={firstBottom} />
-									<span>黄色箭头朝下:演奏偏低</span>
+									<i style={{ background: bgColors.low }}></i>
+									<span>黄色音符:演奏偏低</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon3} src={firstError} />
+									<i style={{ background: bgColors.wrong }}></i>
 									<span>红色音符:演奏错误</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={[styles.firstIcon2, styles.fiz]} src={firstLeft} />
-									<span>黄色箭头朝左:节奏偏快</span>
+									<i style={{ background: bgColors.fast }}></i>
+									<span>紫色音符:节奏偏快</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon3} src={firstLack} />
-									<span>色音符:时值不足</span>
+									<i style={{ background: bgColors.lack }}></i>
+									<span>浅蓝色音符:时值不足</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon2} src={firstRight} />
-									<span>黄色箭头朝右:节奏偏慢</span>
+									<i style={{ background: bgColors.slow }}></i>
+									<span>橙色音符:节奏偏慢</span>
 								</div>
 								<div class={styles.itemTone}>
-									<img class={styles.firstIcon3} src={firstNot} />
-									<span>色音符:未演奏</span>
+									<i style={{ background: bgColors.not }}></i>
+									<span>色音符:未演奏</span>
 								</div>
 							</div>
 						</div>											

+ 46 - 15
src/page-instrument/view-evaluat-report/index.module.less

@@ -27,7 +27,9 @@
   width: 100vw;
   min-height: 100vh;
   --header-height: 62px;
-  background: rgba(248, 242, 232, 1);
+  // background: rgba(248, 242, 232, 1);
+  background: url("../view-detail/images/bg2.png") no-repeat;
+  background-size: 100% 100%;
 
   :global {
 
@@ -67,6 +69,7 @@
         max-height: initial;
         transform: translateY(-3%) !important;
         & > #osmdCanvasPage1 {
+          top: 0.5rem;
           position: relative !important;
         }
       }
@@ -91,8 +94,8 @@
 
 .right {
   path {
-    fill: #2ABC6F;
-    stroke: #2ABC6F;
+    fill: #65FFAE;
+    stroke: #65FFAE;
   }
 }
 
@@ -105,43 +108,71 @@
 
 .wrong {
   path {
-    fill: #FF2B29;
-    stroke: #FF2B29;
+    fill: #DA3736;
+    stroke: #DA3736;
   }
 }
 
 .notPlay {
   path {
-    fill: #ADADAD;
-    stroke: #ADADAD;
+    fill: #FFFFFF;
+    stroke: #FFFFFF;
   }
 }
 
 // 音准
-.intonation_wrong,
-.intonation_high,
-.intonation_low{
+.intonation_wrong {
   path{
     fill: #FF9200;
     stroke: #FF9200;
   }
 }
 
+// 音准高
+.intonation_high {
+  path{
+    fill: #FF66A6;
+    stroke: #FF66A6;
+  }
+}
+
+// 音准低
+.intonation_low {
+  path{
+    fill: #FFB900;
+    stroke: #FFB900;
+  }
+}
+
 // 节奏
-.cadence_wrong,
-.cadence_fast,
-.cadence_slow {
+.cadence_wrong {
   path{
     fill: #FF9200;
     stroke: #FF9200;
   }
 }
 
+// 节奏快
+.cadence_fast {
+  path {
+    fill: #B366FF;
+    stroke: #B366FF;
+  }
+}
+
+// 节奏慢
+.cadence_slow {
+  path {
+    fill: #FF7B00;
+    stroke: #FF7B00;
+  }
+}
+
 // 完成度
 .integrity_wrong {
   path {
-    fill: #8F4EFB;
-    stroke: #8F4EFB;
+    fill: #A5CBFF;
+    stroke: #A5CBFF;
   }
 }
 

+ 12 - 2
src/page-instrument/view-evaluat-report/index.tsx

@@ -197,7 +197,8 @@ export default defineComponent({
 			// if (!query.musicRenderType) {
 			// 	state.musicRenderType = EnumMusicRenderType.staff
 			// }
-			scoreData.musicType = query.musicRenderType ? query.musicRenderType : state.musicRenderType;
+			// 评测报告展示什么类型的谱面
+			scoreData.musicType = query.musicRenderType ? query.musicRenderType : resultData.musicType ? resultData.musicType : state.musicRenderType;
 			detailData.isLoading = false;
 			// Promise.all([
 			// 	getMusicSheetDetail(resultData.musicalNotesPlayStats?.examSongId),
@@ -283,6 +284,15 @@ export default defineComponent({
 				}
 				stemEl?.classList.add(colorsClass[errType])
 				svgEl?.classList.add(colorsClass[errType])
+				// console.log(123456,'添加颜色',errType)
+				// 评测过的音符,需要给小节添加背景色
+				if (errType !== 'NOT_PLAYED') {
+					const staveNote = svgEl?.parentNode?.parentNode?.querySelector('.vf-stave')
+					if (staveNote) {
+						staveNote.querySelector('.vf-custom-bg')?.setAttribute("fill", "#132D4C")
+						staveNote.querySelector('.vf-custom-bot')?.setAttribute("fill", "#040D1E")
+					}
+				}
 				if (svgEl && isNeedCopyElement) {
 				  stemEl?.classList.remove(colorsClass[errType])
 				  svgEl?.classList.remove(colorsClass[errType])
@@ -431,7 +441,7 @@ export default defineComponent({
 					class={[styles.container, !state.setting.displayCursor && "hideCursor"]}
 				>
 					{/* 曲谱渲染 */}
-					{!detailData.isLoading && <MusicScore musicColor={'#ADADAD'} onRendered={handleRendered} />}
+					{!detailData.isLoading && <MusicScore musicColor={'#FFFFFF'} onRendered={handleRendered} />}
 					{
 						<div class={styles.arrowSvg}>
 							<TopArrow />

+ 13 - 3
src/state.ts

@@ -13,7 +13,7 @@ import { api_cloudGetMediaStatus, api_createMusicPlayer, api_cloudChangeSpeed, a
 import { verifyCanRepeat, getDuration } from "./helpers/formateMusic";
 import { getMusicSheetDetail } from "./utils/baseApi"
 import { getQuery } from "/src/utils/queryString";
-import { followData } from "/src/view/follow-practice/index"
+import { followData, skipNotePractice } from "/src/view/follow-practice/index"
 import { changeSongSourceByBate } from "/src/view/audio-list"
 import { moveSmoothAnimation, smoothAnimationState, moveSmoothAnimationByPlayTime, moveTranslateXNum, destroySmoothAnimation} from "/src/page-instrument/view-detail/smoothAnimation"
 import { storeData } from "/src/store";
@@ -502,6 +502,8 @@ const state = reactive({
   musicLyricist: '',
   /** 加载中的文案 */
   loadingText: '音频资源加载中,请稍后…',
+  /** 是否是简单的单行谱模式页面 */
+  isSimplePage: false, 
 });
 const browserInfo = browser();
 let offset_duration = 0;
@@ -513,7 +515,7 @@ export const customData = reactive({
   customNoteCurrentTime: false,
 });
 /** 在渲染前后计算光标应该走到的音符 */
-const setStep = () => {
+export const setStep = () => {
   // console.log('播放状态',state.playState)
   if (state.playState !== "play") {
     console.log("暂停播放");
@@ -562,6 +564,10 @@ export const onEnded = () => {
   //     // 销毁播放器
   //     api_cloudDestroy();
   // }
+  if (state.playEnd) {
+    console.log('音频播放结束,无需再次执行')
+    return
+  }  
   // 修改状态为结束
   state.playEnd = true;
   state.playState = "paused";
@@ -675,6 +681,10 @@ export const skipNotePlay = async (itemIndex: number, isStart = false) => {
       audioData.progress = itemTime
       state.midiSectionStart = itemTime
     }
+    // 如果是跟练模式
+    if (followData.start) {
+      skipNotePractice()
+    }
   }
 };
 
@@ -944,7 +954,7 @@ export const getNote = (currentTime: number) => {
   const times = state.times;
   const len = state.times.length;
   /** 播放超过了最后一个音符的时间,直接结束, 2秒误差 */
-  if (currentTime > times[len - 1].endtime + 2 && !state.isAppPlay) {
+  if (currentTime > times[len - 1].endtime + 2 && !state.isAppPlay && !state.isSimplePage) {
     onEnded();
     return;
   }

+ 16 - 36
src/view/abnormal-pop/icon_btn.svg

@@ -1,48 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="117px" height="36px" viewBox="0 0 117 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>button-normal备份</title>
+<svg width="104px" height="32px" viewBox="0 0 104 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>查看报告备份 5</title>
     <defs>
-        <linearGradient x1="47.3839597%" y1="0%" x2="47.3839597%" y2="100%" id="linearGradient-1">
-            <stop stop-color="#5BECFF" offset="0%"></stop>
-            <stop stop-color="#259CFE" offset="100%"></stop>
+        <linearGradient x1="2.90034287%" y1="45.0839481%" x2="100%" y2="54.5984817%" id="linearGradient-1">
+            <stop stop-color="#31C5FF" offset="0%"></stop>
+            <stop stop-color="#1294FF" offset="100%"></stop>
         </linearGradient>
-        <path d="M0,17 C0,7.61115925 7.60904153,0 16.9971663,0 L100.002834,0 C109.390109,0 117,7.60909491 117,17 L117,17 C117,26.3888407 109.390958,34 100.002834,34 L16.9971663,34 C7.60989058,34 0,26.3909051 0,17 L0,17 Z" id="path-2"></path>
-        <filter x="-0.9%" y="-2.9%" width="101.7%" height="111.8%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feColorMatrix values="0 0 0 0 0.140022123   0 0 0 0 0.580018696   0 0 0 0 0.741724871  0 0 0 1 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
-        </filter>
-        <filter x="-1.7%" y="-5.9%" width="103.4%" height="117.6%" filterUnits="objectBoundingBox" id="filter-4">
-            <feGaussianBlur stdDeviation="1.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="1" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
-            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
-        </filter>
-        <text id="text-5" font-family="STYuanti-SC-Bold, Yuanti SC" font-size="16" font-weight="bold" letter-spacing="0.914285714" fill="#FFFFFF">
-            <tspan x="24.6714286" y="22">重新连接</tspan>
+        <text id="text-2" font-family="PingFangSC-Semibold, PingFang SC" font-size="14" font-weight="500" fill="#FFFFFF">
+            <tspan x="24.5" y="21">重新连接</tspan>
         </text>
-        <filter x="-2.7%" y="-4.5%" width="105.4%" height="118.2%" filterUnits="objectBoundingBox" id="filter-6">
+        <filter x="-3.6%" y="-5.0%" width="107.1%" height="120.0%" filterUnits="objectBoundingBox" id="filter-3">
             <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
             <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.161975631   0 0 0 0 0.583690214   0 0 0 0 0.702658833  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.455105392   0 0 0 0 0.751613451  0 0 0 0.788188374 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
         </filter>
     </defs>
-    <g id="权限弹窗、" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="网络异常" transform="translate(-348.000000, -276.000000)">
-            <g id="编组-5备份" transform="translate(274.000000, 45.000000)">
-                <g id="button-normal备份" transform="translate(74.000000, 231.000000)">
-                    <g id="button-normal">
-                        <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
-                        <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
-                        <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
-                    </g>
-                    <path d="M5.29281147,8.58018897 C7.4390966,13.9921969 10.1571046,16.6982008 13.4468356,16.6982008 C18.2676985,16.6982008 95.1625096,16.6982008 101.90185,16.6982008 C106.394743,16.6982008 109.960365,13.7988005 112.598716,8 C113.992892,13.5751446 114.565408,17.2438095 114.316264,19.0059945 C114.316264,19.0059945 114.316264,19.0059945 114.316264,19.0059945 C113.296432,26.2192179 107.122625,31.58155 99.8376644,31.5815344 L11.3446737,31.5815344 C5.11489123,25.4571796 2,20.6627351 2,17.1982008 C2,13.7336665 3.09760382,10.8609959 5.29281147,8.58018897 Z" id="矩形" fill="#1CACF1" opacity="0.499798729"></path>
-                    <g id="编组-6" opacity="0.85" transform="translate(7.706999, 10.293001) rotate(-5.000000) translate(-7.706999, -10.293001) translate(1.477345, 3.038666)" fill="#FFFFFF">
-                        <ellipse id="椭圆形" opacity="0.882866269" transform="translate(7.522655, 4.961334) rotate(44.000000) translate(-7.522655, -4.961334) " cx="7.52265471" cy="4.96133431" rx="3" ry="4"></ellipse>
-                        <ellipse id="椭圆形备份-3" opacity="0.882866269" transform="translate(3.175326, 11.321004) rotate(44.000000) translate(-3.175326, -11.321004) " cx="3.17532553" cy="11.3210042" rx="2" ry="2.5"></ellipse>
-                    </g>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="18、练习模式-网络连接失败" transform="translate(-354.000000, -216.000000)">
+            <g id="编组-5备份" transform="translate(316.000000, 126.000000)">
+                <g id="查看报告备份-5" transform="translate(38.000000, 90.000000)">
+                    <rect id="button-normal" fill="url(#linearGradient-1)" x="4.5" y="0" width="96" height="32" rx="16"></rect>
                     <g id="重新连接" fill="#FFFFFF" fill-opacity="1">
-                        <use filter="url(#filter-6)" xlink:href="#text-5"></use>
-                        <use xlink:href="#text-5"></use>
+                        <use filter="url(#filter-3)" xlink:href="#text-2"></use>
+                        <use xlink:href="#text-2"></use>
                     </g>
                 </g>
             </g>

+ 7 - 9
src/view/abnormal-pop/icon_close.svg

@@ -1,14 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <title>切片</title>
-    <g id="权限弹窗、" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="网络异常" transform="translate(-509.000000, -55.000000)" fill="#CCCCCC">
-            <g id="编组-5备份" transform="translate(274.000000, 45.000000)">
-                <g id="通用/选中/橙色备份" transform="translate(231.064971, 6.064971)">
-                    <g id="编组" transform="translate(13.435029, 13.435029) rotate(-315.000000) translate(-13.435029, -13.435029) translate(3.935029, 3.935029)">
-                        <rect id="矩形" x="8.5" y="0" width="2" height="19" rx="1"></rect>
-                        <rect id="矩形" transform="translate(9.500000, 9.500000) rotate(-270.000000) translate(-9.500000, -9.500000) " x="8.5" y="-4.97379915e-14" width="2" height="19" rx="1"></rect>
-                    </g>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="18、练习模式-网络连接失败" transform="translate(-762.000000, -30.000000)" fill="#FFFFFF">
+            <g id="通用/选中/橙色备份" transform="translate(757.857864, 25.857864)">
+                <g id="编组" transform="translate(14.142136, 14.142136) rotate(-315.000000) translate(-14.142136, -14.142136) translate(4.142136, 4.142136)">
+                    <rect id="矩形" x="8.94736842" y="2.37389093e-13" width="2.10526316" height="20" rx="1.05263158"></rect>
+                    <path d="M10,-2.59348099e-13 C10.5813524,-2.59454891e-13 11.0526316,0.471279211 11.0526316,1.05263158 L11.0526316,18.9473684 C11.0526316,19.5287208 10.5813524,20 10,20 C9.41864763,20 8.94736842,19.5287208 8.94736842,18.9473684 L8.94736842,1.05263158 C8.94736842,0.471279211 9.41864763,-2.58797217e-13 10,-2.59348099e-13 Z" id="矩形" transform="translate(10.000000, 10.000000) rotate(-270.000000) translate(-10.000000, -10.000000) "></path>
                 </g>
             </g>
         </g>

+ 105 - 9
src/view/abnormal-pop/icon_success.svg

@@ -1,16 +1,112 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>形状</title>
+<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>编组 17</title>
     <defs>
-        <linearGradient x1="0%" y1="50%" x2="100%" y2="50%" id="linearGradient-1">
-            <stop stop-color="#44C9FF" offset="0%"></stop>
-            <stop stop-color="#259CFE" offset="100%"></stop>
+        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
+            <stop stop-color="#00AD67" offset="0%"></stop>
+            <stop stop-color="#01B776" offset="41.8587195%"></stop>
+            <stop stop-color="#38DCA1" offset="100%"></stop>
         </linearGradient>
+        <circle id="path-2" cx="9" cy="9" r="9"></circle>
+        <filter x="-1.4%" y="-1.4%" width="102.8%" height="102.8%" filterUnits="objectBoundingBox" id="filter-4">
+            <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.809030813 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feOffset dx="0" dy="-0.3" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.0941176471   0 0 0 0 0.882352941   0 0 0 0 0.643137255  0 0 0 1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <linearGradient x1="51.0356343%" y1="19.927734%" x2="51.0356343%" y2="77.257697%" id="linearGradient-5">
+            <stop stop-color="#01CD75" offset="0%"></stop>
+            <stop stop-color="#00D889" offset="100%"></stop>
+        </linearGradient>
+        <circle id="path-6" cx="8.1" cy="8.1" r="8.1"></circle>
+        <filter x="-1.5%" y="-4.6%" width="103.1%" height="106.2%" filterUnits="objectBoundingBox" id="filter-8">
+            <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 1 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feOffset dx="0" dy="-0.3" in="SourceAlpha" result="shadowOffsetOuter2"></feOffset>
+            <feColorMatrix values="0 0 0 0 0.0431372549   0 0 0 0 0.843137255   0 0 0 0 0.556862745  0 0 0 1 0" type="matrix" in="shadowOffsetOuter2" result="shadowMatrixOuter2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
+                <feMergeNode in="shadowMatrixOuter2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <linearGradient x1="22.677906%" y1="27.9588842%" x2="32.3549805%" y2="41.7238512%" id="linearGradient-9">
+            <stop stop-color="#A0F4C6" offset="0%"></stop>
+            <stop stop-color="#3DD390" offset="100%"></stop>
+        </linearGradient>
+        <filter x="-51.4%" y="-128.6%" width="202.9%" height="357.1%" filterUnits="objectBoundingBox" id="filter-10">
+            <feGaussianBlur stdDeviation="0.514285714" in="SourceGraphic"></feGaussianBlur>
+        </filter>
+        <linearGradient x1="50%" y1="21.847569%" x2="50%" y2="100%" id="linearGradient-11">
+            <stop stop-color="#5AE1B4" offset="0%"></stop>
+            <stop stop-color="#A9EFDA" offset="100%"></stop>
+        </linearGradient>
+        <linearGradient x1="50%" y1="12.5608239%" x2="50%" y2="100%" id="linearGradient-12">
+            <stop stop-color="#2DF1AD" stop-opacity="0.0682637675" offset="0%"></stop>
+            <stop stop-color="#34E8BD" offset="100%"></stop>
+        </linearGradient>
+        <filter x="-128.6%" y="-107.1%" width="357.1%" height="314.3%" filterUnits="objectBoundingBox" id="filter-13">
+            <feGaussianBlur stdDeviation="1.28571429" in="SourceGraphic"></feGaussianBlur>
+        </filter>
+        <linearGradient x1="22.4201736%" y1="4.76840789e-12%" x2="87.6284479%" y2="89.4580037%" id="linearGradient-14">
+            <stop stop-color="#FFFFFF" offset="0%"></stop>
+            <stop stop-color="#FFFFFF" stop-opacity="0.351535184" offset="99.9754152%"></stop>
+        </linearGradient>
+        <linearGradient x1="70.6044425%" y1="3.79627683e-12%" x2="33.2276295%" y2="92.3941404%" id="linearGradient-15">
+            <stop stop-color="#FFFFFF" offset="0%"></stop>
+            <stop stop-color="#FFFFFF" stop-opacity="0.406004152" offset="99.9754152%"></stop>
+        </linearGradient>
+        <filter x="-27.0%" y="-33.8%" width="154.0%" height="167.5%" filterUnits="objectBoundingBox" id="filter-16">
+            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.613168025   0 0 0 0 0.367900815  0 0 0 1 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
+                <feMergeNode in="SourceGraphic"></feMergeNode>
+            </feMerge>
+        </filter>
     </defs>
-    <g id="权限弹窗、" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="连接成功" transform="translate(-361.000000, -178.000000)" fill="url(#linearGradient-1)" fill-rule="nonzero">
-            <g id="编组-11" transform="translate(343.000000, 165.000000)">
-                <path d="M28,13 C22.47716,13 18,17.47716 18,23 C18,28.52288 22.47716,33 28,33 C33.52288,33 38,28.52288 38,23 C38,17.47716 33.52284,13 28,13 Z M33.73576,20.40612 L27.26824,26.87368 C27.26824,26.87368 27.26816,26.87376 27.26804,26.87388 C26.96988,27.17212 26.51524,27.21868 26.16816,27.01368 C26.10388,26.97568 26.04328,26.92904 25.98808,26.87388 C25.98804,26.8738 25.98796,26.87376 25.98796,26.87376 L22.26428,23.15008 C21.91084,22.79664 21.91084,22.22352 22.26428,21.87 C22.61772,21.51656 23.19084,21.51656 23.54428,21.87 L26.62812,24.95384 L32.4558,19.12616 C32.80928,18.77272 33.3824,18.77272 33.73584,19.12616 C34.0892,19.4796 34.0892,20.05268 33.73576,20.40612 Z" id="形状"></path>
+    <g id="所有页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="20、练习模式-连接成功" transform="translate(-352.000000, -79.000000)">
+            <g id="tips" transform="translate(340.000000, 70.000000)">
+                <g id="编组-17" transform="translate(12.000000, 9.000000)">
+                    <g id="功能按键/蓝色备份">
+                        <g id="位图备份-10">
+                            <mask id="mask-3" fill="white">
+                                <use xlink:href="#path-2"></use>
+                            </mask>
+                            <g id="蒙版">
+                                <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
+                                <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
+                            </g>
+                        </g>
+                        <g id="路径-5" transform="translate(0.900000, 0.900000)">
+                            <mask id="mask-7" fill="white">
+                                <use xlink:href="#path-6"></use>
+                            </mask>
+                            <g id="蒙版">
+                                <use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-6"></use>
+                                <use fill="url(#linearGradient-5)" fill-rule="evenodd" xlink:href="#path-6"></use>
+                            </g>
+                            <path d="M0.582032602,13.2047439 C0.364694815,8.55443279 2.31855382,5.43808024 6.44360961,3.85568621 C12.6311933,1.48209518 17.6180597,4.68584962 17.6180597,4.68584962 C15.2252223,0.601547819 11.3229933,-0.955605094 5.9113729,0.0143908806 C0.499752461,0.984386855 -1.2766943,5.38117118 0.582032602,13.2047439 Z" fill="url(#linearGradient-9)" mask="url(#mask-7)"></path>
+                            <path d="M6.63842689,2.02297192 C7.46685401,2.02297192 8.13842689,1.75434277 8.13842689,1.42297192 C8.13842689,1.09160107 7.46685401,0.822971921 6.63842689,0.822971921 C5.80999976,0.822971921 5.13842689,1.09160107 5.13842689,1.42297192 C5.13842689,1.75434277 5.80999976,2.02297192 6.63842689,2.02297192 Z" id="椭圆形" fill="#FFFFFF" opacity="0.699999988" filter="url(#filter-10)" mask="url(#mask-7)" transform="translate(6.638427, 1.422972) rotate(-12.000000) translate(-6.638427, -1.422972) "></path>
+                            <path d="M16.1765407,7.47888329 C16.1920858,7.68388482 16.2,7.89101818 16.2,8.1 C16.2,12.5735065 12.5735065,16.2 8.1,16.2 C3.62649353,16.2 0,12.5735065 0,8.1 C0,7.89101818 0.00791421399,7.68388482 0.0234592778,7.47888329 C0.343093095,11.3506468 3.83695067,14.4 8.1,14.4 C12.3154196,14.4 15.7787392,11.4184052 16.1643224,7.60858279 Z" id="形状结合" fill="url(#linearGradient-11)" mask="url(#mask-7)"></path>
+                            <path d="M16.1019621,6.42328314 C16.1664981,6.77412163 16.2,7.13372803 16.2,7.5 C16.2,11.3107648 12.5735065,14.4 8.1,14.4 C3.62649353,14.4 0,11.3107648 0,7.5 C0,7.13372803 0.0335019421,6.77412163 0.0980378656,6.42328314 C0.701112527,9.58304386 4.05415218,12 8.1,12 C12.1261558,12 15.4662312,9.60651427 16.0939847,6.47055428 Z" id="形状结合" fill="url(#linearGradient-12)" mask="url(#mask-7)"></path>
+                            <path d="M3.89545323,14.7389406 C4.72388035,14.7389406 5.39545323,13.9330532 5.39545323,12.9389406 C5.39545323,11.9448281 4.72388035,11.1389406 3.89545323,11.1389406 C3.0670261,11.1389406 2.39545323,11.9448281 2.39545323,12.9389406 C2.39545323,13.9330532 3.0670261,14.7389406 3.89545323,14.7389406 Z" id="椭圆形" fill="#FFF09B" opacity="0.693498884" filter="url(#filter-13)" mask="url(#mask-7)" transform="translate(3.895453, 12.938941) rotate(-62.000000) translate(-3.895453, -12.938941) "></path>
+                            <path d="M1.46414428,12.2758958 C2.10252007,13.4183461 2.98096657,14.3208436 4.09948378,14.9833884 C5.77725959,15.9772054 7.97504317,16.0253339 7.97504317,16.0253339 C6.63663223,15.8225046 5.40097182,15.3870725 4.26806192,14.7190376 C3.13515203,14.0510027 2.20051282,13.2366221 1.46414428,12.2758958 Z" id="路径-41" fill="#FDFEFC" mask="url(#mask-7)"></path>
+                        </g>
+                        <path d="M12.395268,2.49338426 C12.827241,2.37896207 13.1041845,2.32175097 13.2260986,2.32175097 C13.4089698,2.32175097 14.4501813,3.17242011 15.1400701,3.96565243 C15.5950554,4.48879328 16.0821181,5.34305251 16.6012582,6.52843012 C16.6124997,6.55090354 16.6087873,6.57775004 16.5925926,6.59694833 L16.0834296,7.18962146 L16.0834296,7.18962146 C15.6101302,6.01632982 15.0994139,5.08983934 14.5512809,4.41015003 C14.0031478,3.73046071 13.2844769,3.09153879 12.395268,2.49338426 Z" id="路径-39" fill="url(#linearGradient-14)" opacity="0.800000012"></path>
+                        <path d="M5.20475785,2.26805654 C5.01136352,2.68119984 4.94853738,3.26332093 5.01627944,4.01441981 C4.0241796,4.67959296 3.25425177,5.82324929 2.70649593,7.44538881 C2.19377579,7.19371793 1.88067921,6.85536367 1.76720617,6.43032603 C2.0412279,5.43303633 2.44504907,4.59275748 2.97866967,3.90948949 C3.51229028,3.22622149 4.25431967,2.67907718 5.20475785,2.26805654 Z" id="路径-40" fill="url(#linearGradient-15)" opacity="0.800000012"></path>
+                    </g>
+                    <g id="Path-2" filter="url(#filter-16)" transform="translate(4.000000, 5.500000)" fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.4">
+                        <path d="M9.96121623,0.319521975 L4.56156694,7.66601148 C4.23594706,8.11132951 3.56163188,8.11132951 3.23601201,7.66601148 L0.0387837725,3.31849988 C-0.0586457968,3.18515607 0.0387837725,2.99897791 0.205439615,2.99897791 L1.40792562,2.99897791 C1.66944709,2.99897791 1.91814889,3.12225804 2.07198505,3.33359541 L3.8975075,5.81932542 L7.92801495,0.334617501 C8.08185111,0.125796053 8.32798897,0 8.59207438,0 L9.79456039,0 C9.96121623,0 10.0586458,0.186178159 9.96121623,0.319521975 Z" id="Path"></path>
+                    </g>
+                </g>
             </g>
         </g>
     </g>

+ 44 - 23
src/view/abnormal-pop/index.module.less

@@ -2,52 +2,51 @@
     display: flex;
     flex-direction: column;
     align-items: center;
+    justify-content: center;
     color: #fff;
-    background-color: #fff;
-    border-radius: 20px;
-    width: 264px;
     position: relative;
+    width: 100vw;
+    height: 100vh;
+    overflow: hidden;
     .close {
         position: absolute;
-        width: 19px;
-        height: 19px;
-        right: 10px;
-        top: 10px;
+        width: 20px;
+        height: 20px;
+        right: 30px;
+        top: 30px;
     }
     .bg {
         width: 264px;
     }
     .content {
         .title {
-            margin: 20px 0 10px;
             font-size: 16px;
             font-family: PingFangSC, PingFang SC;
             font-weight: 500;
-            color: #1A1A1A;
+            color: #fff;
             text-align: center;
         }
         .desc {
             font-size: 14px;
             font-family: PingFangSC, PingFang SC;
             font-weight: 400;
-            color: #808080;     
-            margin-bottom: 16px;     
+            color: rgba(255, 255, 255, 0.8);     
+            margin: 20px 0 24px;
             text-align: center;  
         }
     }
     .btn {
-        width: 117px;
-        height: 36px;
-        margin-bottom: 17px;
+        width: 104px;
+        height: 32px;
     }
 }
 
 .loadColumn {
     display: flex;
     align-items: center;
-    background: #fff;
-    border-radius: 10px;
-    padding: 18px;
+    background: rgba(0, 0, 0, 0.8);
+    border-radius: 8px;
+    padding: 8px 12px;
     position: relative;
     .close {
         position: absolute;
@@ -61,14 +60,36 @@
         height: 17px;
     }
     .successIcon {
-        width: 20px;
-        height: 20px;
+        width: 18px;
+        height: 18px;
     }
     p {
-        font-size: 16px;
+        font-size: 14px;
         font-family: PingFangSC, PingFang SC;
-        font-weight: 500;
-        color: #1A1A1A;
-        margin-left: 10px;
+        color: #fff;
+        margin-left: 6px;
+    }
+}
+
+.loadingPop {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    .loadingIcon {
+        width: 118px;
+    }
+    .loadingTip {
+        font-size: 16px;
+        color: #fff;
+        margin: 18px 0;
+    }
+    .loadingClose {
+        padding: 0 20px;
+        font-size: 14px;
+        color: #fff;
+        line-height: 30px;
+        border: 1px solid rgba(255, 255, 255, 0.7);
+        border-radius: 16px;
     }
 }

+ 12 - 7
src/view/abnormal-pop/index.tsx

@@ -5,6 +5,7 @@ import { popImgs } from '/src/view/evaluating'
 import { evaluatingData } from "/src/view/evaluating";
 import { Vue3Lottie } from "vue3-lottie";
 import loading from "./loading.json";
+import animBg from "../audio-list/img/refresh_anim.json";
 
 export default defineComponent({
 	name: "abnormal-pop",
@@ -17,9 +18,8 @@ export default defineComponent({
 					evaluatingData.socketErrorStatus === 0 && 
 					<div class={styles.fraction}>
 						<img class={styles.close} src={popImgs.icon_close} onClick={() => emit("close")} />
-						<img class={styles.bg} src={popImgs.icon_bg} />
 						<div class={styles.content}>
-							<div class={styles.title}>您的网络连接异常</div>
+							<div class={styles.title}>网络连接失败</div>
 							<div class={styles.desc}>请确保网络正常后重新连接</div>
 						</div>
 						<div>
@@ -29,17 +29,22 @@ export default defineComponent({
 				}
 				{
 					evaluatingData.socketErrorStatus === 1 && 
-					<div class={styles.loadColumn}>
-						<Vue3Lottie class={styles.loadIcon} animationData={loading} loop={true}></Vue3Lottie>
-						<img class={styles.close} src={popImgs.icon_close} onClick={() => emit("close")} />
-						<p>正在连接服务器,请稍后…</p>
+					// <div class={styles.loadColumn}>
+					// 	<Vue3Lottie class={styles.loadIcon} animationData={loading} loop={true}></Vue3Lottie>
+					// 	<img class={styles.close} src={popImgs.icon_close} onClick={() => emit("close")} />
+					// 	<p>正在连接服务器,请稍后…</p>
+					// </div>
+					<div class={styles.loadingPop}>
+						<Vue3Lottie animationData={animBg} class={styles.loadingIcon}></Vue3Lottie>
+						<div class={styles.loadingTip}>正在连接中,请稍等…</div>
+						<div class={styles.loadingClose} onClick={() => emit("close")}>取消连接</div>
 					</div>
 				}
 				{
 					evaluatingData.socketErrorStatus === 2 && 
 					<div class={styles.loadColumn}>
 						<img class={styles.successIcon} src={popImgs.icon_success} />
-						<p>连接成功</p>
+						<p>网络连接成功</p>
 					</div>
 				}
 			</>

+ 12 - 4
src/view/evaluating/index.tsx

@@ -32,6 +32,7 @@ import {
 	api_midiMicDelay,
 	api_cloudSetCurrentTime,
 	api_cloudChangeSpeed,
+	api_startDelayCheck,
 } from "/src/helpers/communication";
 import state, {
 	IPlayState,
@@ -77,6 +78,7 @@ export const evaluatingData = reactive({
 	checkStep: 0, // 执行步骤
 	checkEnd: false, // 检测结束
 	earphoneMode: false, // 耳机弹窗
+	earPhoneType: "" as "" | "有线耳机" | "蓝牙耳机", // 耳机类型
 	soundEffectMode: false, // 效音弹窗
 	websocketState: false, // websocket连接状态
 	/**是否开始播放 */
@@ -107,9 +109,10 @@ export const evaluatingData = reactive({
 	/** app播放结束状态,重新评测需要重置为 */
 	isAudioPlayEnd: false,
 	preloadJson: true, // 预加载延迟检测的资源
-	jsonLoading: false, // 延迟检测的资源加载中状态
-	jsonLoadDone: false, // 延迟检测的动画dom加载完成状态
+	jsonLoading: true, // 延迟检测的资源加载中状态
+	jsonLoadDone: true, // 延迟检测的动画dom加载完成状态
 	hideResultModal: false, // 评测作业,如果不是完整评测,需要隐藏评测结果弹窗
+	oneselfCancleEvaluating: false, // 是否是自主取消评测,自主取消评测,不生产评测记录
 });
 
 const sendOffsetTime = async (offsetTime: number) => {
@@ -301,7 +304,11 @@ export const addMeasureScore = (measureScore: any, show = true) => {
 };
 
 const handleScoreResult = (res?: IPostMessage) => {
-	console.log('返回', res)
+	console.log('返回', res,evaluatingData.oneselfCancleEvaluating)
+	// 如果是手动取消评测,不生成评测记录
+	if (evaluatingData.oneselfCancleEvaluating) {
+		return;
+	}
 	if (res?.content) {
 		const { header, body } = res.content;
 		// 效音返回
@@ -316,7 +323,7 @@ const handleScoreResult = (res?: IPostMessage) => {
 		// 评测结束返回
 		if (header?.commond === "overall") {
 			console.log("🚀 ~ 评测返回:", res);
-			// console.log("评测结束", body);
+			console.log("评测结束", body);
 			state.isHideEvaluatReportSaveBtn = false;
 			setTimeout(() => {
 				// 评测作业,如果不是完整评测,不展示评测弹窗
@@ -419,6 +426,7 @@ export const handleStartBegin = async (preTimes?: number) => {
 		audioData.progress = 0
 		audioListStart(state.playState);
 	}
+	evaluatingData.oneselfCancleEvaluating = false;
 };
 
 /** 播放音乐 */

+ 62 - 7
src/view/follow-practice/index.tsx

@@ -1,5 +1,5 @@
-import { defineComponent, onMounted, onUnmounted, reactive, ref } from "vue";
-import state, { gotoNext, resetPlaybackToStart, followBeatPaly } from "/src/state";
+import { defineComponent, onMounted, onUnmounted, reactive, ref, watch } from "vue";
+import state, { gotoNext, resetPlaybackToStart, followBeatPaly, skipNotePlay } from "/src/state";
 import { IPostMessage } from "/src/utils/native-message";
 import { api_cloudFollowTime, api_cloudToggleFollow } from "/src/helpers/communication";
 import { storeData } from "/src/store";
@@ -87,14 +87,17 @@ const onClear = () => {
 			note.classList.remove("follow-up", "follow-down", "follow-error", "follow-success");
 		}
 		const _note: HTMLElement = document.getElementById(`vf-${item.id}`)!;
+		const stemEl = document.getElementById(`vf-${item.id}-stem`);
 		if (_note) {
-			_note.classList.remove("follow-up", "follow-down");
+			_note.classList.remove("follow-up", "follow-down", "follow-success");
+			stemEl?.classList.remove("follow-up", "follow-down", "follow-success");
 		}
 	});
 };
 
 /** 开始跟练 */
 export const handleFollowStart = async () => {
+	checking = false;
 	const res = await api_cloudToggleFollow("start");
 	// 用户没有授权,需要重置状态
 	if (res?.content?.reson) {
@@ -132,9 +135,32 @@ export const handleFollowEnd = () => {
 	console.log("结束");
 };
 
+/**
+ * 2024.6.17 新增自动结束跟练模式功能
+ * 如果跟练模式,唱完了最后一个有频率的音符,需要自动结束掉跟练模式
+ * 需要判断当前音符的后面是否都是休止音符(休止音符的频率都是-1),或者是否是最后一个音符了
+ */
+const autoEndFollow = () => {
+	if (followData.index >= state.times.length) {
+		handleFollowEnd()
+		return
+	}
+	let nextIndex = followData.index + 1;
+	const rightTimes = state.times.slice(followData.index,state.times.length)
+	// 后面的音符是否都是休止音符
+	const isAllRest = !rightTimes.some((item: any) => item.frequency > 1);
+	if (isAllRest && state.times[followData.index].frequency < 1) {
+		handleFollowEnd()
+		return
+	}
+}
+
 // 下一个
 const next = () => {
-	gotoNext(state.times[followData.index]);
+	if (followData.index < state.times.length) {
+		gotoNext(state.times[followData.index]);
+	}
+	autoEndFollow();	
 };
 
 // 获取当前音符
@@ -189,8 +215,10 @@ const checked = () => {
 				startTime = 0;
 				followData.index = followData.index + 1;
 				setColor(item, "", true);
-				next();
-				checking = false;
+				setTimeout(() => {
+					next();
+					checking = false;
+				}, 3000);
 				return;
 			}
 		}
@@ -212,11 +240,38 @@ const setColor = (item: any, state: "follow-up" | "follow-down" | "", isRight =
 	}
 	const _note: HTMLElement = document.getElementById(`vf-${item.id}`)!;
 	if (_note) {
+		const stemEl = document.getElementById(`vf-${item.id}-stem`)
 		_note.classList.remove("follow-up", "follow-down");
-		state && _note.classList.add(state);
+		stemEl?.classList.remove("follow-up", "follow-down","follow-success");
+		if (state) {
+			_note.classList.add(state);
+			stemEl?.classList.add(state)
+		}
+		if (isRight) {
+			_note.classList.add("follow-success");
+			stemEl?.classList.add("follow-success")
+		}
 	}
 };
 
+// 进度跟练,点击某个音符开始跟练
+export const skipNotePractice = () => {
+	followData.index = state.activeNoteIndex
+	// 清除其它音符的错误提示
+	const noteFollows: HTMLElement[] = Array.from(document.querySelectorAll(".follow-error"));
+	noteFollows.forEach((noteFollow) => {
+		noteFollow?.classList.remove("follow-up", "follow-down", "follow-error");
+	})
+}
+
+// 移动到对应音符的位置
+watch(
+	() => followData.index,
+	() => {
+		skipNotePlay(followData.index);
+	}
+);
+
 export default defineComponent({
 	name: "follow",
 	setup() {

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

@@ -17,9 +17,10 @@
         //     transform-origin: left top;
         // }
         #osmdCanvasPage1{
-            position: absolute !important;
+            // position: absolute !important;
+            width: fit-content;
             left: 0;
-            top: 2.4rem;
+            top: 0;
         }
     }
     .noteActive {

+ 1 - 1
src/view/music-score/index.tsx

@@ -203,7 +203,7 @@ export default defineComponent({
 				]}
 			>
 				{slots.default?.()}
-				{props.showSelection && musicData.showSelection && !state.isPreView && !state.isEvaluatReport && <Selection />}
+				{props.showSelection && musicData.showSelection && !state.isPreView && !state.isEvaluatReport &&!state.isSimplePage && <Selection />}
 			</div>
 		);
 	},

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


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


+ 90 - 11
src/view/selection/index.module.less

@@ -158,6 +158,57 @@
     }
 }
 
+.followTipUp, .followTipDown {
+    display: flex;
+    align-items: center;
+    background: rgba(0,0,0,0.6);
+    position: relative;
+    padding: 3px 6px;
+    border-radius: 16px;
+    width: fit-content;
+    left: 50%;
+    top: -30px;
+    transform: translate(-50%);
+    img {
+        width: 14px;
+        height: 14px;
+        margin-right: 4px;
+    }
+    span {
+        font-size: 12px;
+        color: #fff;
+        word-break: keep-all;
+        display: flex;
+        width: fit-content;
+    }
+    ::before {
+        content: "";
+        position: absolute;
+        left: 50%;
+        bottom: -7PX;
+        transform: translateX(-50%);
+        width: 0;
+        height: 0;
+        border-top: 8PX solid rgba(0,0,0,0.6);
+        border-right: 8PX solid transparent;
+        border-left: 8PX solid transparent;  
+        z-index: 2;    
+    }
+}
+
+.followTipUp {
+    i {
+        font-style: normal;
+        color: rgba(255, 102, 166, 1);
+    }
+}
+.followTipDown {
+    i {
+        font-style: normal;
+        color: rgba(255, 146, 0, 1);
+    }
+}
+
 :global {
     .follow-error {
         display: block;
@@ -165,38 +216,66 @@
         .van-icon-cross {
             display: block;
         }
-
+        :global {
+            .tip-up, .tip-down {
+                display: none;
+            }
+        }
     }
 
     .follow-down {
         .van-icon-cross {
-            color: #ffca67 !important;
+            color: rgba(255, 146, 0, 1) !important;
+        }
+
+        path {
+            fill: rgba(255, 146, 0, 1) !important;
+            stroke: rgba(255, 146, 0, 1) !important;
         }
 
-        .vf-note path {
-            fill: #ffca67 !important;
-            stroke: #ffca67 !important;
+        :global {
+            .tip-down {
+                display: flex;
+            }
         }
     }
 
     .follow-up {
         .van-icon-cross {
-            color: rgb(255, 0, 0) !important;
+            color: rgba(255, 102, 166, 1) !important;
+        }
+
+        path {
+            fill: rgba(255, 102, 166, 1) !important;
+            stroke: rgba(255, 102, 166, 1) !important;
         }
 
-        .vf-note path {
-            fill: rgb(255, 0, 0) !important;
-            stroke: rgb(255, 0, 0) !important;
+        :global {
+            .tip-up {
+                display: flex;
+            }
         }
     }
 
     .follow-success {
         display: block;
-
+        transform-box: fill-box;
+        transform-origin: center;
+        animation: noteAnimate 1s linear;
         .van-icon-success {
             display: block;
-            color: #07c160;
+            color: rgba(0, 255, 148, 1);
         }
+        path {
+            fill: rgba(0, 255, 148, 1) !important;
+            stroke: rgba(0, 255, 148, 1) !important;
+        }
+        :global {
+            .tip-up, .tip-down {
+                display: none;
+            }
+        }
+
     }
 }
 

+ 17 - 3
src/view/selection/index.tsx

@@ -8,6 +8,8 @@ import { Icon, showToast } from "vant";
 import MoveMusicScore, { moveData, renderForMoveData } from "../plugins/move-music-score";
 import { useRoute } from "vue-router";
 import { getQuery } from "/src/utils/queryString";
+import IntonationDown from "./imgs/down_icon.png"
+import IntonationUp from "./imgs/up_icon.png"
 
 const selectData = reactive({
 	notes: [] as any[],
@@ -171,7 +173,7 @@ export default defineComponent({
 		};
 		/** 是否可以点击音符 */
 		const disableClickNote = computed(() => {
-			return state.sectionStatus || state.modeType !== "practise";
+			return state.sectionStatus || (state.modeType === "evaluating");
 		});
 		// 选段符号
 		const sectionPosData = computed(() => {
@@ -296,10 +298,22 @@ export default defineComponent({
 							style={item.bbox}
 							onClick={() => skipNotePlay(item.index)}
 						>
-							<div class={styles.noteFollow} data-vf={"vf" + item.id}>
+							{/* <div class={styles.noteFollow} data-vf={"vf" + item.id}>
 								<Icon name="success" />
 								<Icon name="cross" />
-							</div>
+							</div> */}
+							<div class={styles.noteFollow} data-vf={"vf" + item.id}>
+								{/* <Icon name="success" />
+								<Icon name="cross" /> */}
+								<div class={[styles.followTipUp, 'tip-up']}>
+									<img src={IntonationUp} />
+									<span>音准<i>高了</i></span>
+								</div>
+								<div class={[styles.followTipDown, 'tip-down']}>
+									<img src={IntonationDown} />
+									<span>音准<i>低了</i></span>
+								</div>
+							</div>							
 							<div class={[styles.noteDot, 'node-dot']}></div>
 						</div>
 					);

+ 2 - 2
vite.config.ts

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

部分文件因文件數量過多而無法顯示