index-ef69481b.js 11 KB

1
  1. import{d as C,U,q as k,r as D,x as R,af as N,D as d,R as O,a6 as P,y as M,a8 as Q,a as n,S as K,A as l,C as A,V as H,a2 as F,E as $,z,_ as V}from"./index-61b1bbc0.js";import{e as p,Q as f,C as q,D as j,K as W,P as G,i as X,A as Y,a as J,R as Z}from"./index-f8dd25b5.js";import{M as g}from"./index-452dc3ad.js";import{u as ee,a as te}from"./index-18e6fd10.js";import{S as ne,a as se}from"./index-03cb7c12.js";import{I as ie}from"./index-999a45cc.js";import"./index-2597190a.js";import"./index-69de2191.js";import"./index-36804d77.js";const oe="_unitDetail_13q27_1",ae="_unitSwipe_13q27_9",ue="_questionTitle_13q27_12",le="_questionNum_13q27_21",re="_questionType_13q27_24",ce="_wapList_13q27_31",de="_btnSection_13q27_37",pe="_prevBtn_13q27_42",fe="_nextBtn_13q27_43",ve="_activePrevBtn_13q27_44",we="_right_13q27_67",Ie="_error_13q27_70",he="_minutes_13q27_73",i={unitDetail:oe,unitSwipe:ae,questionTitle:ue,questionNum:le,questionType:re,wapList:ce,btnSection:de,prevBtn:pe,nextBtn:fe,activePrevBtn:ve,right:we,error:Ie,minutes:he};function ye(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!F(r)}const Le=C({name:"unit-detail",setup(){const r=U(),y=k(),v=D(),e=R({type:r.query.type,knowledgePointIds:r.query.knowledgePointIds,lessonCoursewareId:r.query.lessonCoursewareId,studentUnitExaminationId:"",background:"transparent",color:"#fff",visiableAnswer:!1,examDetail:{},currentIndex:0,time:0,questionList:[],visiableInfo:{show:!1,operationType:"RESULT",type:"DEFAULT",content:"",showCancelButton:!1,confirmButtonText:"",cancelButtonText:"",title:""},nextStatus:!1,swipeHeight:"auto",countDownOver:!1}),u=N({time:e.time,onChange(s){if(3e5>=s.total&&!e.countDownOver){if(e.visiableInfo.show){e.countDownOver=!0;return}e.visiableInfo.show=!0,e.visiableInfo.title="倒计时5分钟",e.visiableInfo.showCancelButton=!1,e.visiableInfo.operationType="TIME",e.visiableInfo.type="COUNTDOWN",e.visiableInfo.confirmButtonText="确认",e.visiableInfo.content="距离交卷时间还剩五分钟哦,请尽快答题~",e.countDownOver=!0}},onFinish:async()=>{p.emit("unitAudioStop"),await m(),x()}}),E=async()=>{try{let s={};if(e.type==="ai"){const{data:t}=await d.post("/edu-app/studentUnitExamination/pointRandomSave",{data:{knowledgePointIds:e.knowledgePointIds}});s=t||{}}else{const{data:t}=await d.post("/edu-app/studentUnitExamination/mockExamination",{data:{lessonCoursewareId:e.lessonCoursewareId,knowledgePointIds:e.knowledgePointIds}});s=t||{}}s.examinationQuestionAdds.forEach(t=>{t.showAnalysis=!1,t.analysis={message:t.answerAnalysis,topic:!0,userResult:!1},t.userAnswer=[]}),e.questionList=s.examinationQuestionAdds||[],e.studentUnitExaminationId=s.unitExaminationId,e.examDetail=s||{},S()}catch(s){}},S=async()=>{const t=(e.examDetail||{}).timeMinutes||0;e.time=Math.ceil(t*60*1e3),setTimeout(()=>{u.reset(t*60*1e3),u.start()},10)},L=async()=>{var s,t;e.nextStatus=!0;try{const a=e.questionList||[],o=a[e.currentIndex];if(((s=o==null?void 0:o.userAnswer)==null?void 0:s.length)<=0){$("题目尚未做答"),e.nextStatus=!1;return}const h=[];if(a.forEach((c,T)=>{c.userAnswer&&c.userAnswer.length>0&&h.push({questionId:c.id,details:c.userAnswer})}),e.questionList.length===e.currentIndex+1){p.emit("unitAudioStop"),e.visiableInfo.show=!0,e.visiableInfo.title="测验完成",e.visiableInfo.showCancelButton=!0,e.visiableInfo.operationType="CONTINUE",e.visiableInfo.type="DEFAULT",e.visiableInfo.cancelButtonText="再等等",e.visiableInfo.confirmButtonText="确认完成",e.visiableInfo.content="确认本次测验的题目都完成了吗?",e.nextStatus=!1,x();return}await d.post("/edu-app/studentUnitExamination/submitAnswer",{hideLoading:!0,data:{answers:h,studentUnitExaminationId:e.studentUnitExaminationId}}),(t=v.value)==null||t.next()}catch(a){}e.nextStatus=!1};let b=0;const w=(s=!0)=>{z(()=>{s&&window.scrollTo(0,0),setTimeout(()=>{var c;const t=(c=document.querySelectorAll(".van-swipe-item")[e.currentIndex])==null?void 0:c.querySelector(".swipe-item-question"),a=t==null?void 0:t.querySelectorAll(".answerTitleImg img");let o=!0;a==null||a.forEach(T=>{T.complete||(o=!1)}),!o&&b<3&&setTimeout(()=>{b+=1,w(s)},300),o&&(b=0);const h=V(t);e.swipeHeight=h.height},100)})},_=()=>{e.visiableInfo.operationType==="RESULT"?(e.visiableInfo.show=!1,y.back(),y.back()):e.visiableInfo.operationType==="BACK"||e.visiableInfo.operationType==="CONTINUE"?m():e.visiableInfo.operationType==="TIME"&&(e.visiableInfo.show=!1)},B=async s=>{if(e.visiableInfo.operationType==="BACK"){if(s){e.visiableInfo.show=!1,window.history.pushState(null,"",document.URL),window.addEventListener("popstate",I,!1);return}try{await d.get("/edu-app/studentUnitExamination/dropExamination",{params:{studentUnitExaminationId:e.studentUnitExaminationId}}),e.visiableInfo.show=!1,x()}catch(t){}}else e.visiableInfo.operationType==="CONTINUE"&&(e.visiableInfo.show=!1,window.history.pushState(null,"",document.URL),window.addEventListener("popstate",I,!1))},m=async()=>{try{const s=e.questionList||[],t=[];s.forEach(o=>{o.userAnswer&&o.userAnswer.length>0&&t.push({questionId:o.id,details:o.userAnswer})});const{data:a}=await d.post("/edu-app/studentUnitExamination/completionExamination",{hideLoading:!1,data:{answers:t,studentUnitExaminationId:e.studentUnitExaminationId}});e.visiableInfo.show=!0,e.visiableInfo.title=a.score+"分",e.visiableInfo.showCancelButton=!1,e.visiableInfo.operationType="RESULT",e.visiableInfo.confirmButtonText="确认",a.status==="A_EXCELLENT"?(e.visiableInfo.type="GOOD",e.visiableInfo.content="<div>你很棒,题目掌握的非常不错,"):a.status==="B_PASS"?(e.visiableInfo.type="PASS",e.visiableInfo.content="<div>还需要加油哦,"):(e.visiableInfo.type="FAIL",e.visiableInfo.content="<div>别气馁,继续努力,"),e.visiableInfo.content+=`您本次获得了<span class='${i.right}'>${a.score}分</span>,正确率<span class='${i.error}'>${a.rightRate}%</span>,实际用时<span class='${i.minutes}'>${Math.ceil(a.answerTime/60)}</span>分钟~</div>`}catch(s){}},I=()=>{e.visiableInfo.show=!0,e.visiableInfo.title="确认要离开吗?",e.visiableInfo.showCancelButton=!0,e.visiableInfo.operationType="BACK",e.visiableInfo.type="DEFAULT",e.visiableInfo.cancelButtonText="弃考",e.visiableInfo.confirmButtonText="提交",e.visiableInfo.content="还有题目未完成哦,是否要提前交卷?",p.emit("unitAudioStop")},x=()=>{window.removeEventListener("popstate",I,!1),O().isApp&&e.type!=="ai"?P({api:"back"}):y.back()};return M(async()=>{ee(document,"scroll",()=>{const{y:s}=te();s.value>52?(e.background="#fff",e.color="#323333"):(e.background="transparent",e.color="#fff")}),await E(),w(),window.history.pushState(null,"",document.URL),window.addEventListener("popstate",I,!1)}),Q(()=>{p.emit("unitAudioStop")}),()=>{let s;return n("div",{class:i.unitDetail},[n(g,{position:"top"},{default:()=>[n(K,{border:!1,background:e.background,color:e.color},null)]}),n(ne,{loop:!1,showIndicators:!1,ref:v,duration:300,touchable:!1,class:i.unitSwipe,style:{paddingBottom:"12px"},lazyRender:!0,height:e.swipeHeight,onChange:t=>{p.emit("unitAudioStop"),e.currentIndex=t,w()}},ye(s=e.questionList.map((t,a)=>n(se,null,{default:()=>[n("div",{class:"swipe-item-question"},[t.questionTypeCode===f.RADIO&&n(q,{value:t.userAnswer,"onUpdate:value":o=>t.userAnswer=o,index:a+1,data:t,type:"radio",showAnalysis:t.showAnalysis,analysis:t.analysis},{title:()=>n("div",{class:i.questionTitle},[n("div",{class:i.questionNum},[n("span",null,[e.currentIndex+1]),l("/"),e.questionList.length]),n("div",{class:i.questionType},[u.current.value.minutes+u.current.value.hours*60,l(":"),u.current.value.seconds])])}),t.questionTypeCode===f.CHECKBOX&&n(q,{value:t.userAnswer,"onUpdate:value":o=>t.userAnswer=o,index:a+1,data:t,type:"checkbox",showAnalysis:t.showAnalysis,analysis:t.analysis},{title:()=>n("div",{class:i.questionTitle},[n("div",{class:i.questionNum},[n("span",null,[e.currentIndex+1]),l("/"),e.questionList.length]),n("div",{class:i.questionType},[u.current.value.minutes+u.current.value.hours*60,l(":"),u.current.value.seconds])])}),t.questionTypeCode===f.SORT&&n(j,{value:t.userAnswer,"onUpdate:value":[o=>t.userAnswer=o,()=>{const o=!(t.userAnswer&&t.userAnswer.length>0);w(o)}],data:t,index:a+1,showAnalysis:t.showAnalysis,analysis:t.analysis},{title:()=>n("div",{class:i.questionTitle},[n("div",{class:i.questionNum},[n("span",null,[e.currentIndex+1]),l("/"),e.questionList.length]),n("div",{class:i.questionType},[u.current.value.minutes+u.current.value.hours*60,l(":"),u.current.value.seconds])])}),t.questionTypeCode===f.LINK&&n(W,{value:t.userAnswer,"onUpdate:value":o=>t.userAnswer=o,data:t,index:a+1,showAnalysis:t.showAnalysis,analysis:t.analysis},{title:()=>n("div",{class:i.questionTitle},[n("div",{class:i.questionNum},[n("span",null,[e.currentIndex+1]),l("/"),e.questionList.length]),n("div",{class:i.questionType},[u.current.value.minutes+u.current.value.hours*60,l(":"),u.current.value.seconds])])}),t.questionTypeCode===f.PLAY&&n(G,{value:t.userAnswer,"onUpdate:value":o=>t.userAnswer=o,data:t,index:a+1,unitId:e.studentUnitExaminationId,showAnalysis:t.showAnalysis,analysis:t.analysis},{title:()=>n("div",{class:i.questionTitle},[n("div",{class:i.questionNum},[n("span",null,[e.currentIndex+1]),l("/"),e.questionList.length]),n("div",{class:i.questionType},[u.current.value.minutes+u.current.value.hours*60,l(":"),u.current.value.seconds])])})])]})))?s:{default:()=>[s]}),n(g,{position:"bottom"},{default:()=>[n("div",{class:["btnGroup btnMore",i.btnSection]},[n(A,{round:!0,block:!0,class:e.currentIndex>0?i.activePrevBtn:i.prevBtn,disabled:!(e.currentIndex>0),onClick:()=>{var t;(t=v.value)==null||t.prev()}},{default:()=>[l("上一题")]}),n(A,{block:!0,round:!0,class:i.nextBtn,onClick:L,loading:e.nextStatus,disabled:e.nextStatus},{default:()=>[e.questionList.length===e.currentIndex+1?"提交":"下一题"]}),n(ie,{src:X,class:[i.wapList,"van-haptics-feedback"],onClick:()=>e.visiableAnswer=!0},null)])]}),n(Y,{show:e.visiableAnswer,"onUpdate:show":t=>e.visiableAnswer=t,title:"题目列表",safeAreaInsetBottom:!0},{default:()=>[n(J,{value:e.questionList,onSelect:t=>{var a;(a=v.value)==null||a.swipeTo(t,{immediate:!0}),e.visiableAnswer=!1}},null)]}),n(H,{show:e.visiableInfo.show,"onUpdate:show":t=>e.visiableInfo.show=t,closeOnClickOverlay:!1,style:{background:"transparent",width:"100%",maxWidth:"100%",transform:"translateY(-55%)"}},{default:()=>[n(Z,{title:e.visiableInfo.title,showCancelButton:e.visiableInfo.showCancelButton,cancelButtonText:e.visiableInfo.cancelButtonText,confirmButtonText:e.visiableInfo.confirmButtonText,status:e.visiableInfo.type,content:e.visiableInfo.content,closeable:e.visiableInfo.operationType==="BACK",contentHtml:!0,onConform:_,onClose:B},null)]})])}}});export{Le as default};