| 1 |
- import{d as w,j as e,a4 as k,an as T,Z as b,r as D,s as M,X as i,Y as s,U as y,a9 as I,aD as R,A as L,M as q,N as U,aI as O,F as P,aJ as N,aK as H,aM as A,aL as j,aN as G,aQ as J,aR as W,aS as V,aT as Y,aH as $,aU as Q,aX as z,aY as X}from"./index-497f0585.js";import{m as Z,s as K}from"./instrument-6c756498.js";import{P as ee}from"./plyr.min-424cfb91.js";import"./index-4522fa1d.js";import"./vue3-lottie.es-cce235f2.js";import"./html2canvas.esm-3524d10f.js";const te="_skeleton_vbtuh_1",se="_detail_vbtuh_12",ne="_headHeight_vbtuh_24",ie="_headHide_vbtuh_33",ae="_container_vbtuh_36",oe="_musicName_vbtuh_50",le="_right_vbtuh_57",ue="_wrong_vbtuh_61",ce="_notPlay_vbtuh_65",re="_intonation_wrong_vbtuh_69",de="_cadence_wrong_vbtuh_73",pe="_integrity_wrong_vbtuh_77",l={skeleton:te,detail:se,headHeight:ne,headHide:ie,container:ae,musicName:oe,right:le,wrong:ue,notPlay:ce,intonation_wrong:re,cadence_wrong:de,integrity_wrong:pe},me="_headerTop_1epq3_1",he="_android_1epq3_11",ve="_back_1epq3_14",_e="_left_1epq3_26",ge="_center_1epq3_30",Fe="_cItem_1epq3_35",fe="_active_1epq3_57",ye="_right_1epq3_64",be="_btn_1epq3_68",we="_iconBtn_1epq3_80",Ee="_btnWrap_1epq3_89",Ce="_popup_1epq3_94",xe="_audiobox_1epq3_106",Se="_videobox_1epq3_113",Be="_demos_1epq3_124",Ie="_shiyiPopup_1epq3_145",Pe="_shiyiTitle_1epq3_152",Ne="_items_1epq3_158",Ae="_item_1epq3_158",n={headerTop:me,android:he,back:ve,left:_e,center:ge,cItem:Fe,active:fe,right:ye,btn:be,iconBtn:we,btnWrap:Ee,popup:Ce,audiobox:xe,videobox:Se,demos:Be,shiyiPopup:Ie,shiyiTitle:Pe,items:Ne,item:Ae},ke=""+new URL("icon-back-2cf38e60.svg",import.meta.url).href,Te=""+new URL("icon-shiyi-ba387160.svg",import.meta.url).href,De=""+new URL("icon-huifang-4d7bf6f9.svg",import.meta.url).href,Me=""+new URL("videobg-2d19d627.png",import.meta.url).href,o=w({name:"NoteSvg",props:{fill:String,shadow:{type:Boolean,defalut:!1},shadowFill:{type:String,default:""},x:{type:Number,default:0},y:{type:Number,default:0}},render(){return e("svg",{width:"14",height:"24",viewBox:"0 0 14 24"},[e("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e("rect",{x:"0",y:"0",width:"14",height:"24"},null),e("g",{fill:this.fill},[this.shadow&&e("ellipse",{fill:this.shadowFill||this.fill,transform:`translate(4.685927, 18.917813) scale(-1, -1) rotate(-32.000000) translate(${this.x+-4.685927}, ${this.y+-18.917813})`,cx:"4.68592654",cy:"18.9178127",rx:"3.70078457",ry:"2.92022453"},null),e("path",{d:"M1.95251677,0.68258909 C3.68583115,-0.400505943 5.78379192,-0.169765229 6.63844331,1.1979629 C7.4930947,2.56569103 6.78079761,4.55247575 5.04748323,5.63557079 C3.85503595,6.38069455 2.49000663,6.50399819 1.47594704,6.06306368 L1.47635248,22.0768926 L0.0162402201,22.0768926 L0.0154715991,4.11169688 C-0.117424115,2.8976469 0.612367024,1.52000759 1.95251677,0.68258909 Z",transform:"scale(-1, -1) translate(-10, -23) "},null)])])])}}),Re=w({name:"header-top",props:{scoreData:{type:Object,default:()=>({})}},setup(_){const p=k(),{scoreData:a}=T(_),u=b({show:!1,shiyiShow:!1,isInitPlyr:!1,_plrl:null}),g={BEGINNER:"入门级",ADVANCED:"进阶级",PERFORMER:"大师级"},d=D("intonation"),F=()=>{R()},m=t=>{d.value=t},h=M(()=>{const t=(a.value.videoFilePath||"").split(".").pop();return t==="wav"||t==="mp3"?"audio":"video"}),f=()=>{u.show=!0,!u.isInitPlyr&&L(()=>{const t=h.value==="audio"?"#audioSrc":"#videoSrc";u._plrl=new ee(t,{controls:["play-large","play","progress","current-time"],fullscreen:{enabled:!1}}),u.isInitPlyr=!0})};return()=>e("div",{class:[n.headerTop,p.android&&n.android]},[e("div",{class:n.back,onClick:F},[e("img",{src:ke},null)]),e("div",{class:n.center},[e("div",{class:n.cItem},[e("div",null,[g[a.value.heardLevel]]),e("div",null,[i("难度")])]),e("div",{class:n.cItem},[e("div",null,[a.value.score,i("分")]),e("div",null,[i("评测分数")])]),s.isPercussion?null:e(y,null,[e("div",{onClick:()=>m("intonation"),class:[n.cItem,d.value==="intonation"&&n.active]},[e("div",{style:{color:"rgb(45, 199, 170)"}},[a.value.intonation,i("分")]),e("div",null,[i("音准")])]),e("div",{onClick:()=>m("cadence"),class:[n.cItem,d.value==="cadence"&&n.active]},[e("div",{style:{color:"#FF4E19"}},[a.value.cadence,i("分")]),e("div",null,[i("节奏")])]),e("div",{onClick:()=>m("integrity"),class:[n.cItem,d.value==="integrity"&&n.active]},[e("div",{style:{color:"rgb(255, 196, 89)"}},[a.value.integrity,i("分")]),e("div",null,[i("完成度")])])])]),e("div",{class:n.right},[e("div",{style:{display:a.value.videoFilePath?"":"none"},class:n.btn,onClick:f},[e("img",{class:n.iconBtn,src:De},null),e("span",null,[i("回放")])]),e("div",{class:n.btn,onClick:()=>u.shiyiShow=!0},[e("img",{class:n.iconBtn,src:Te},null),e("span",null,[i("释义")])])]),s.isPercussion?null:e("div",{class:n.demos},[e("div",null,[e(o,{fill:"#01C1B5"},null),e("span",null,[i("演奏正确")])]),d.value==="intonation"&&e(y,null,[e("div",null,[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FFAB25",shadow:!0,x:-2,y:0},null),e("span",null,[i("音高了")])]),e("div",null,[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FFAB25",shadow:!0,x:-1,y:-3},null),e("span",null,[i("音低了")])])]),d.value==="cadence"&&e(y,null,[e("div",null,[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FF4444",shadow:!0,x:.5,y:-1},null),e("span",null,[i("节奏过快")])]),e("div",null,[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FF4444",shadow:!0,x:-3,y:-2.5},null),e("span",null,[i("节奏慢了")])])]),d.value==="integrity"&&e("div",null,[e(o,{fill:"#CC75FF"},null),e("span",null,[i("完成度不足")])]),e("div",null,[e(o,{fill:"#000"},null),e("span",null,[i("未演奏")])])]),e(I,{teleport:"body",class:["popup-custom","van-scale",n.popup],transition:"van-scale",show:u.show,"onUpdate:show":t=>u.show=t,closeable:!0,onClose:()=>{var t;(t=u._plrl)==null||t.pause()}},{default:()=>[h.value==="audio"&&e("div",{class:n.audiobox},[e("audio",{id:"audioSrc",src:a.value.videoFilePath,controls:"false",preload:"metadata",playsinline:!0},null)]),h.value==="video"&&e("div",{class:n.videobox},[e("video",{id:"videoSrc",class:n.videoBox,src:a.value.videoFilePath,"data-poster":Me,preload:"metadata",playsinline:!0},null)])]}),e(I,{show:u.shiyiShow,"onUpdate:show":t=>u.shiyiShow=t,class:"popup-custom van-scale center-closeBtn",transition:"van-scale",teleport:"body",closeable:!0},{default:()=>[e("div",{class:n.shiyiPopup},[e("div",{class:n.shiyiTitle},[i("图标释义")]),e("div",{class:n.items},[e("div",{class:n.item},[e(o,{fill:"#01C1B5"},null),e("span",null,[i("绿色音符:演奏正确")])]),e("div",{class:n.item},[e(o,{fill:"#FF4444"},null),e("span",null,[i("红色音符:错音")])]),e("div",{class:n.item},[e(o,{fill:"#CC75FF"},null),e("span",null,[i("紫色音符:完成度不足")])]),e("div",{class:n.item},[e(o,{fill:"#AEAEAE"},null),e("span",null,[i("灰色音符:未演奏")])]),e("div",{class:n.item},[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FF4444",shadow:!0,x:.5,y:-1},null),e("span",null,[i("音符重影(红色在前):节奏过快")])]),e("div",{class:n.item},[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FF4444",shadow:!0,x:-3,y:-2.5},null),e("span",null,[i("音符重影(红色在后):节奏慢了")])]),e("div",{class:n.item},[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FFAB25",shadow:!0,x:-2,y:0},null),e("span",null,[i("音符重影(黄色在上):音高了")])]),e("div",{class:n.item},[e(o,{fill:"rgba(1, 193, 181, .8)",shadowFill:"#FFAB25",shadow:!0,x:-1,y:-3},null),e("span",null,[i("音符重影(黄色在下):音低了")])])])])]})])}}),Le={RIGHT:l.right,WRONG:l.wrong,NOT_PLAY:l.notPlay,CADENCE_WRONG:l.cadence_wrong,INTONATION_WRONG:l.intonation_wrong,INTEGRITY_WRONG:l.integrity_wrong},Je=w({name:"music-list",setup(){const _=q(),p=b({videoFilePath:"",cadence:0,integrity:0,intonation:0,score:0,heardLevel:""}),a=b({isLoading:!0,paddingLeft:"",headerHide:!1,musicalNotesPlayStats:[],userMeasureScore:{}}),u=async()=>{const t=await J();if(t!=null&&t.content){const{isSpecialShapedScreen:c,notchHeight:r}=t.content;c&&(a.paddingLeft="25px")}a.paddingLeft="20px"};U(()=>{u(),O()});const g=t=>{const c=s.partIndex,r={...t.data,...t.data.background[c]};d(r,c),F(),a.isLoading=!1},d=(t,c)=>{if(s.scrollContainer="scrollContainer",s.detailId=t.id,s.xmlUrl=t.xmlFileUrl,s.partIndex=c,s.subjectId=t.musicSubject,s.categoriesId=t.categoriesId,s.categoriesName=t.musicTagNames,s.enableEvaluation=!!t.canEvaluate,s.examSongId=t.id+"",s.examSongName=t.musicSheetName,t.extConfigJson)try{s.extConfigJson=JSON.parse(t.extConfigJson)}catch(r){console.error("解析扩展字段错误:",r)}s.isOpenMetronome=t.mp3Type==="MP3_METRONOME",s.needTick=t.isOpenMetronome,s.isShowFingering=!!t.showFingering,s.music=t.audioFileUrl,s.accompany=t.metronomeUrl||t.metronomeUrl,s.midiUrl=t.midiUrl,s.parentCategoriesId=t.musicTag,s.playMode=t.audioType==="MP3"?"MP3":"MIDI",s.originSpeed=s.speed=t.speed,s.track=t.track,s.enableNotation=!!t.notation,s.subjectId=W(s.subjectId,"ORCHESTRA"),s.isPercussion=s.subjectId==23||s.subjectId==113||s.subjectId==121||V(),s.fingeringInfo=Y(s.subjectId)},F=()=>{s.extConfigJson.multitrack&&$("multitrack",s.extConfigJson.multitrack)};P(async()=>{var c,r,E,C,x,S,B;const t=await Z(_.id);s.partIndex=Number((c=t==null?void 0:t.data)==null?void 0:c.partIndex),a.musicalNotesPlayStats=((E=(r=t==null?void 0:t.data)==null?void 0:r.musicalNotesPlayStats)==null?void 0:E.notesData)||[],a.userMeasureScore=((C=t==null?void 0:t.data)==null?void 0:C.userMeasureScore)||{};for(let v in p)p[v]=(x=t==null?void 0:t.data)==null?void 0:x[v];Promise.all([K((B=(S=t==null?void 0:t.data)==null?void 0:S.musicalNotesPlayStats)==null?void 0:B.examSongId)]).then(v=>{g(v[0])})});const m=()=>{for(const t of a.musicalNotesPlayStats){const c=s.times[t.musicalNotesIndex],r=document.getElementById("vf-"+c.id);r==null||r.classList.add(Le[t.musicalErrorType])}},h=()=>{for(let t in a.userMeasureScore)X(a.userMeasureScore[t],!1)},f=t=>{s.musicRendered=!0,s.osmd=t,s.times=Q(t),console.log("🚀 ~ state.times:",s.times),m(),h(),z()};return P(()=>{window.addEventListener("resize",N)}),H(()=>{window.removeEventListener("resize",N)}),()=>e("div",{class:[l.detail,s.setting.eyeProtection&&"eyeProtection",l.shareBox],style:{paddingLeft:a.paddingLeft}},[e(A,{name:"van-fade"},{default:()=>[!s.musicRendered&&e("div",{class:l.skeleton},[e(j,{class:l.skeleton,row:8},null)])]}),e("div",{class:[l.headHeight,a.headerHide&&l.headHide],onClick:t=>t.stopPropagation()},[e(A,{name:"van-slide-down"},{default:()=>[s.musicRendered&&e(Re,{scoreData:p},null)]})]),e("div",{id:"scrollContainer",class:[l.container,!s.setting.displayCursor&&"hideCursor"]},[e("div",{class:l.musicName},[s.examSongName]),!a.isLoading&&e(G,{onRendered:f},null)])])}});export{Je as default};
|