Browse Source

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

TIANYONG 1 year ago
parent
commit
bd09eb7bbb
38 changed files with 124 additions and 95 deletions
  1. 1 1
      .gitignore
  2. 0 0
      dist/css/instrument-a4bdf05a.css
  3. 0 0
      dist/js/colexiu-aaf78e3f.js
  4. 0 0
      dist/js/colexiu-legacy-d959f7cc.js
  5. 0 0
      dist/js/index-0f19b29a.js
  6. 0 0
      dist/js/index-1ec1bd55.js
  7. 1 0
      dist/js/index-2843d32a.js
  8. 1 0
      dist/js/index-2b016d9b.js
  9. 0 0
      dist/js/index-4e4d6360.js
  10. 1 0
      dist/js/index-54d38d1a.js
  11. 0 0
      dist/js/index-61489f38.js
  12. 0 0
      dist/js/index-63fa3bd2.js
  13. 0 0
      dist/js/index-70143daf.js
  14. 0 0
      dist/js/index-90ab6f1b.js
  15. 0 0
      dist/js/index-legacy-17e46586.js
  16. 1 0
      dist/js/index-legacy-1e067eea.js
  17. 0 0
      dist/js/index-legacy-21704663.js
  18. 0 0
      dist/js/index-legacy-3bab9e42.js
  19. 0 0
      dist/js/index-legacy-4c568fb9.js
  20. 0 0
      dist/js/index-legacy-96651e95.js
  21. 0 0
      dist/js/index-legacy-d843e6c8.js
  22. 1 0
      dist/js/index-legacy-e219a316.js
  23. 1 0
      dist/js/index-legacy-fa4ae88f.js
  24. 0 0
      dist/js/index-legacy-ff232553.js
  25. 0 0
      dist/js/instrument-2c4a0bee.js
  26. 0 0
      dist/js/instrument-legacy-bb14ee60.js
  27. 0 0
      dist/js/orchestra-a6fe053d.js
  28. 0 0
      dist/js/orchestra-legacy-1803149f.js
  29. 0 0
      dist/js/polyfills-2c9d0cd5.js
  30. 0 0
      dist/js/polyfills-legacy-a6d93249.js
  31. 0 0
      dist/js/report-share-14b99848.js
  32. 0 0
      dist/js/report-share-legacy-2d50fb6a.js
  33. 2 1
      src/page-instrument/custom-plugins/work-ealuating/index.tsx
  34. 1 1
      src/page-instrument/custom-plugins/work-index/index.tsx
  35. 89 84
      src/page-instrument/evaluat-model/evaluat-result/index.tsx
  36. 2 1
      src/page-instrument/evaluat-model/index.tsx
  37. 21 6
      src/view/evaluating/index.tsx
  38. 2 1
      src/view/plugins/move-music-score/index.tsx

+ 1 - 1
.gitignore

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

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


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


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


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


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


+ 1 - 0
dist/js/index-2843d32a.js

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

+ 1 - 0
dist/js/index-2b016d9b.js

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

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


+ 1 - 0
dist/js/index-54d38d1a.js

@@ -0,0 +1 @@
+import{ba as w,bU as C,bV as E,bW as L,d as B,l as h,bX as R,bY as N,w as x,bZ as _,c as U,b_ as V,b$ as y,f as r,aG as F,c0 as m,c1 as G,c2 as H,bd as I}from"./index-61489f38.js";const[M,o,W]=w("list"),X={error:Boolean,offset:C(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:E("down"),loadingText:String,finishedText:String,immediateCheck:L};var Y=B({name:M,props:X,emits:["load","update:error","update:loading"],setup(e,{emit:c,slots:a}){const d=h(e.loading),f=h(),g=h(),s=R(),b=N(f),n=()=>{F(()=>{if(d.value||e.finished||e.disabled||e.error||(s==null?void 0:s.value)===!1)return;const{direction:t}=e,l=+e.offset,i=m(b);if(!i.height||G(f))return;let u=!1;const v=m(g);t==="up"?u=i.top-v.top<=l:u=v.bottom-i.bottom<=l,u&&(d.value=!0,c("update:loading",!0),c("load"))})},T=()=>{if(e.finished){const t=a.finished?a.finished():e.finishedText;if(t)return r("div",{class:o("finished-text")},[t])}},k=()=>{c("update:error",!1),n()},P=()=>{if(e.error){const t=a.error?a.error():e.errorText;if(t)return r("div",{role:"button",class:o("error-text"),tabindex:0,onClick:k},[t])}},S=()=>{if(d.value&&!e.finished&&!e.disabled)return r("div",{class:o("loading")},[a.loading?a.loading():r(H,{class:o("loading-icon")},{default:()=>[e.loadingText||W("loading")]})])};return x(()=>[e.loading,e.finished,e.error],n),s&&x(s,t=>{t&&n()}),_(()=>{d.value=e.loading}),U(()=>{e.immediateCheck&&n()}),V({check:n}),y("scroll",n,{target:b,passive:!0}),()=>{var t;const l=(t=a.default)==null?void 0:t.call(a),i=r("div",{ref:g,class:o("placeholder")},null);return r("div",{ref:f,role:"feed",class:o(),"aria-busy":d.value},[e.direction==="down"?l:i,S(),T(),P(),e.direction==="up"?l:i])}}});const $=I(Y);export{$ as L};

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


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


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


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


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


+ 1 - 0
dist/js/index-legacy-1e067eea.js

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

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


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


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


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


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


+ 1 - 0
dist/js/index-legacy-e219a316.js

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

+ 1 - 0
dist/js/index-legacy-fa4ae88f.js

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

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


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


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


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


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


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


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


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


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


+ 2 - 1
src/page-instrument/custom-plugins/work-ealuating/index.tsx

@@ -69,7 +69,8 @@ export default defineComponent({
 		watch(
 		watch(
 			() => evaluatingData.resultData.recordId,
 			() => evaluatingData.resultData.recordId,
 			() => {
 			() => {
-				if (evaluatingData.resulstMode && evaluatingData.resultData.recordId) {
+				// 评测作业,完整评测才调用保存作业接口
+				if (evaluatingData.resulstMode && evaluatingData.resultData.recordId && evaluatingData.isComplete) {
 					addEvaluatingWorkRecored(evaluatingData.resultData);
 					addEvaluatingWorkRecored(evaluatingData.resultData);
 				}
 				}
 			}
 			}

+ 1 - 1
src/page-instrument/custom-plugins/work-index/index.tsx

@@ -8,7 +8,7 @@ import { evaluatingData } from "/src/view/evaluating";
 
 
 const workHomeRef = ref();
 const workHomeRef = ref();
 
 
-const data = reactive({
+export const data = reactive({
 	/** 作业类型:练习PRACTICE, 评测EVALUATION */
 	/** 作业类型:练习PRACTICE, 评测EVALUATION */
 	trainingType: "" as "PRACTICE" | "EVALUATION",
 	trainingType: "" as "PRACTICE" | "EVALUATION",
 	worke: {},
 	worke: {},

+ 89 - 84
src/page-instrument/evaluat-model/evaluat-result/index.tsx

@@ -79,100 +79,105 @@ export default defineComponent({
 			}
 			}
 		})
 		})
 		return () => (
 		return () => (
-			<div class={styles.evaluatResult}>
-				<div class={styles.closeBtn} onClick={() => emit("close")}>
-					<img src={icons["arrow-left-background"]} />
-				</div>
-
-				{
-				!state.isHideEvaluatReportSaveBtn &&
-				<div class={styles.headerButton}>
-					<div class={[styles.headBtn, evaluatingData.resultData.recordId ? '' : styles.disabled]} onClick={debounce(saveResult,300)}>
-						保存演奏
+			<>
+			{
+				!evaluatingData.hideResultModal && 
+				<div class={styles.evaluatResult}>
+					<div class={styles.closeBtn} onClick={() => emit("close")}>
+						<img src={icons["arrow-left-background"]} />
 					</div>
 					</div>
-				</div>
-				}
 
 
-				<div class={styles.fraction}>
-					<img class={styles.bg} src={imgs.bg} />
-					<div class={styles.top}>
-						{evaluatingData.resultData.score > 79 && (
-							<img style={{}} class={styles.badge} src={iconBadge} />
-						)}
-						<div class={styles.text}>
-							<div>
-								<span class={styles.num}>{evaluatingData.resultData.score}</span>分
-							</div>
-							<div style={{ marginLeft: "6px" }}>{evaluatingData.resultData.clxmome}</div>
+					{
+					!state.isHideEvaluatReportSaveBtn &&
+					<div class={styles.headerButton}>
+						<div class={[styles.headBtn, evaluatingData.resultData.recordId ? '' : styles.disabled]} onClick={debounce(saveResult,300)}>
+							保存演奏
 						</div>
 						</div>
-						<img
-							style={{ display: evaluatingData.resultData.leve === 0 ? "" : "none" }}
-							class={styles.rightBadge}
-							src={icon_expression0}
-						/>
-						<img
-							style={{ display: evaluatingData.resultData.leve === 1 ? "" : "none" }}
-							class={styles.rightBadge}
-							src={icon_expression1}
-						/>
-						<img
-							style={{ display: evaluatingData.resultData.leve === 2 ? "" : "none" }}
-							class={styles.rightBadge}
-							src={icon_expression2}
-						/>
-						<img
-							style={{ display: evaluatingData.resultData.leve === 3 ? "" : "none" }}
-							class={styles.rightBadge}
-							src={icon_expression3}
-						/>
-						<img
-							style={{ display: evaluatingData.resultData.leve === 4 ? "" : "none" }}
-							class={styles.rightBadge}
-							src={icon_expression4}
-						/>
 					</div>
 					</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 class={styles.fraction}>
+						<img class={styles.bg} src={imgs.bg} />
+						<div class={styles.top}>
+							{evaluatingData.resultData.score > 79 && (
+								<img style={{}} class={styles.badge} src={iconBadge} />
+							)}
+							<div class={styles.text}>
+								<div>
+									<span class={styles.num}>{evaluatingData.resultData.score}</span>分
+								</div>
+								<div style={{ marginLeft: "6px" }}>{evaluatingData.resultData.clxmome}</div>
 							</div>
 							</div>
+							<img
+								style={{ display: evaluatingData.resultData.leve === 0 ? "" : "none" }}
+								class={styles.rightBadge}
+								src={icon_expression0}
+							/>
+							<img
+								style={{ display: evaluatingData.resultData.leve === 1 ? "" : "none" }}
+								class={styles.rightBadge}
+								src={icon_expression1}
+							/>
+							<img
+								style={{ display: evaluatingData.resultData.leve === 2 ? "" : "none" }}
+								class={styles.rightBadge}
+								src={icon_expression2}
+							/>
+							<img
+								style={{ display: evaluatingData.resultData.leve === 3 ? "" : "none" }}
+								class={styles.rightBadge}
+								src={icon_expression3}
+							/>
+							<img
+								style={{ display: evaluatingData.resultData.leve === 4 ? "" : "none" }}
+								class={styles.rightBadge}
+								src={icon_expression4}
+							/>
 						</div>
 						</div>
-					) : (
-						<div class={styles.detail}>
-							<div class={styles.progressitem}>
-								<div class={styles.intonation}>音准</div>
-								<span>{evaluatingData.resultData.intonation}分</span>
+						{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>
-							<div class={styles.progressitem}>
-								<div class={styles.cadence}>节奏</div>
-								<span>{evaluatingData.resultData.cadence}分</span>
+						) : (
+							<div class={styles.detail}>
+								<div class={styles.progressitem}>
+									<div class={styles.intonation}>音准</div>
+									<span>{evaluatingData.resultData.intonation}分</span>
+								</div>
+								<div class={styles.progressitem}>
+									<div class={styles.cadence}>节奏</div>
+									<span>{evaluatingData.resultData.cadence}分</span>
+								</div>
+								<div class={styles.progressitem}>
+									<div class={styles.integrity}>完成度</div>
+									<span>{evaluatingData.resultData.integrity}分</span>
+								</div>
 							</div>
 							</div>
-							<div class={styles.progressitem}>
-								<div class={styles.integrity}>完成度</div>
-								<span>{evaluatingData.resultData.integrity}分</span>
-							</div>
-						</div>
-					)}
+						)}
 
 
-					<div class={styles.tips}>{evaluatingData.resultData.clxtip}</div>
-					<div class={styles.ctrls}>
-						<img
-							style={{ display: query.workRecord ? "none" : "" }}
-							src={imgs.btn1}
-							class={styles.ctrlsBtn}
-							onClick={() => emit("close", "practise")}
-						/>
-						<img src={imgs.btn2} class={styles.ctrlsBtn} onClick={() => emit("close", "tryagain")} />
-						<img
-							src={imgs.btn3}
-							class={[styles.ctrlsBtn, data.saveLoading ? styles.disablued : ""]}
-							onClick={() => emit("close", "look")}
-						/>
+						<div class={styles.tips}>{evaluatingData.resultData.clxtip}</div>
+						<div class={styles.ctrls}>
+							<img
+								style={{ display: query.workRecord ? "none" : "" }}
+								src={imgs.btn1}
+								class={styles.ctrlsBtn}
+								onClick={() => emit("close", "practise")}
+							/>
+							<img src={imgs.btn2} class={styles.ctrlsBtn} onClick={() => emit("close", "tryagain")} />
+							<img
+								src={imgs.btn3}
+								class={[styles.ctrlsBtn, data.saveLoading ? styles.disablued : ""]}
+								onClick={() => emit("close", "look")}
+							/>
+						</div>
 					</div>
 					</div>
-				</div>
-			</div>
+				</div>				
+			}
+			</>
 		);
 		);
 	},
 	},
 });
 });

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

@@ -429,8 +429,9 @@ export default defineComponent({
 					/>
 					/>
 				</Popup> */}
 				</Popup> */}
 
 
+        {/* 评测作业,非完整评测不显示评测结果弹窗 */}
         {
         {
-          
+          evaluatingData.hideResultModal ? <EvaluatResult onClose={handleEvaluatResult} /> :
           <Popup teleport="body" closeOnClickOverlay={false} class={["popup-custom", "van-scale"]} transition="van-scale" v-model:show={evaluatingData.resulstMode}>
           <Popup teleport="body" closeOnClickOverlay={false} class={["popup-custom", "van-scale"]} transition="van-scale" v-model:show={evaluatingData.resulstMode}>
             <EvaluatResult onClose={handleEvaluatResult} />
             <EvaluatResult onClose={handleEvaluatResult} />
           </Popup>    
           </Popup>    

+ 21 - 6
src/view/evaluating/index.tsx

@@ -52,6 +52,7 @@ import icon_bg from '../abnormal-pop/icon_bg.svg'
 import icon_close from '../abnormal-pop/icon_close.svg'
 import icon_close from '../abnormal-pop/icon_close.svg'
 import icon_btn from '../abnormal-pop/icon_btn.svg'
 import icon_btn from '../abnormal-pop/icon_btn.svg'
 import icon_success from '../abnormal-pop/icon_success.svg'
 import icon_success from '../abnormal-pop/icon_success.svg'
+import { data } from '../../page-instrument/custom-plugins/work-index'
 
 
 const browserInfo = browser();
 const browserInfo = browser();
 
 
@@ -107,6 +108,7 @@ export const evaluatingData = reactive({
 	preloadJson: true, // 预加载延迟检测的资源
 	preloadJson: true, // 预加载延迟检测的资源
 	jsonLoading: false, // 延迟检测的资源加载中状态
 	jsonLoading: false, // 延迟检测的资源加载中状态
 	jsonLoadDone: false, // 延迟检测的动画dom加载完成状态
 	jsonLoadDone: false, // 延迟检测的动画dom加载完成状态
+	hideResultModal: false, // 评测作业,如果不是完整评测,需要隐藏评测结果弹窗
 });
 });
 
 
 const sendOffsetTime = async (offsetTime: number) => {
 const sendOffsetTime = async (offsetTime: number) => {
@@ -316,6 +318,12 @@ const handleScoreResult = (res?: IPostMessage) => {
 			// console.log("评测结束", body);
 			// console.log("评测结束", body);
 			state.isHideEvaluatReportSaveBtn = false;
 			state.isHideEvaluatReportSaveBtn = false;
 			setTimeout(() => {
 			setTimeout(() => {
+				// 评测作业,如果不是完整评测,不展示评测弹窗
+				if (data.trainingType === 'EVALUATION' && !evaluatingData.isComplete) {
+					evaluatingData.hideResultModal = true;
+				} else {
+					evaluatingData.hideResultModal = false;
+				}
 				evaluatingData.resulstMode = evaluatingData.isErrorState ? false : true
 				evaluatingData.resulstMode = evaluatingData.isErrorState ? false : true
 			}, 200);
 			}, 200);
 			evaluatingData.resultData = {
 			evaluatingData.resultData = {
@@ -464,12 +472,19 @@ export const handleEndEvaluat = (isComplete = false) => {
 	endEvaluating({
 	endEvaluating({
 		musicScoreId: state.examSongId,
 		musicScoreId: state.examSongId,
 	});
 	});
-	showLoadingToast({
-		message: "评分中",
-		duration: 0,
-		overlay: true,
-		overlayClass: styles.scoreMode,
-	});
+	// 评测作业如果不是完整评测,给出提示
+    if (!isComplete && data.trainingType === 'EVALUATION') {
+		showToast({
+			message: "完整演奏结束才算作业分数!",
+		});
+	} else {
+		showLoadingToast({
+			message: "评分中",
+			duration: 0,
+			overlay: true,
+			overlayClass: styles.scoreMode,
+		});
+	}
 	setTimeout(() => {
 	setTimeout(() => {
 		evaluatingData.startBegin = false;
 		evaluatingData.startBegin = false;
 	}, 500);
 	}, 500);

+ 2 - 1
src/view/plugins/move-music-score/index.tsx

@@ -18,7 +18,7 @@ const showToolBox = ref(true);
 export const moveData = reactive({
 export const moveData = reactive({
 	/** 开启移动 */
 	/** 开启移动 */
 	open: false,
 	open: false,
-	zoom: state.zoom,
+	zoom: 1,
 	partIndex: "0",
 	partIndex: "0",
 	hasExtJson: false,
 	hasExtJson: false,
 	isWeb: false,
 	isWeb: false,
@@ -535,6 +535,7 @@ export const renderForMoveData = () => {
 export default defineComponent({
 export default defineComponent({
 	name: "move-music-score",
 	name: "move-music-score",
 	setup() {
 	setup() {
+		moveData.zoom = state.zoom;
 		const query = getQuery();
 		const query = getQuery();
 		const isOpen = query.isMove === "1" ? true : false;
 		const isOpen = query.isMove === "1" ? true : false;
 		console.log("🚀 ~ isOpen:", isOpen);
 		console.log("🚀 ~ isOpen:", isOpen);

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