guoyu/frontend-uniapp/dist/build/h5/assets/pages-learning-record.mkunGZJQ.js

2 lines
4.2 KiB
JavaScript

import{_ as t,c as a,w as e,n as s,l as o,s as l,i as r,r as i,x as d,d as c,y as n,o as u,h as f,j as g,k as m,u as h,A as _,F as p,B as D,C,D as L,z as y}from"./index-LOi95lww.js";const w=t({data:()=>({recordList:[],loading:!1,totalDuration:0,totalCount:0,completedCourses:0}),computed:{totalDurationText(){return this.formatDuration(this.totalDuration)}},onLoad(){this.loadLearningRecords()},onShow(){this.loadLearningRecords()},methods:{async loadLearningRecords(){this.loading=!0;try{const t=await o.get("/study/learningRecord/my-records");if(200===t.code){const a=t.data||[],e=await o.get("/study/course/my-courses"),s=200===e.code&&e.data||[];this.recordList=a.map(t=>{const a=s.find(a=>a.id===t.courseId);return{...t,courseName:a?a.courseName:"未知课程"}}),this.calculateStats()}}catch(t){l({title:t.message||"加载失败",icon:"none"})}finally{this.loading=!1}},calculateStats(){this.totalDuration=this.recordList.reduce((t,a)=>t+(a.totalDuration||0),0),this.totalCount=this.recordList.reduce((t,a)=>t+(a.learnCount||0),0),this.completedCourses=this.recordList.filter(t=>(t.progress||0)>=100).length},viewRecordDetail(t){s({url:`/pages/course/detail?id=${t.courseId}`})},getProgressClass(t){const a=t||0;return a>=100?"progress-completed":a>=50?"progress-good":a>0?"progress-start":"progress-none"},formatDuration(t){if(!t)return"0分钟";const a=Math.floor(t/3600),e=Math.floor(t%3600/60);return a>0?`${a}小时${e}分钟`:`${e}分钟`},formatTime(t){if(!t)return"";const a=new Date(t),e=new Date,s=e-a;return s<864e5&&a.getDate()===e.getDate()?a.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}):s<1728e5?"昨天 "+a.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}):a.toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"})+" "+a.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}}},[["render",function(t,s,o,l,w,T){const v=g,b=r,k=i(c("u-empty"),d),x=i(c("u-loading-page"),n);return u(),a(b,{class:"learning-record-container"},{default:e(()=>[f(b,{class:"stats-section"},{default:e(()=>[f(b,{class:"stat-card"},{default:e(()=>[f(v,{class:"stat-value"},{default:e(()=>[m(h(T.totalDurationText),1)]),_:1}),f(v,{class:"stat-label"},{default:e(()=>[m("总学习时长")]),_:1})]),_:1}),f(b,{class:"stat-card"},{default:e(()=>[f(v,{class:"stat-value"},{default:e(()=>[m(h(w.totalCount),1)]),_:1}),f(v,{class:"stat-label"},{default:e(()=>[m("学习次数")]),_:1})]),_:1}),f(b,{class:"stat-card"},{default:e(()=>[f(v,{class:"stat-value"},{default:e(()=>[m(h(w.completedCourses),1)]),_:1}),f(v,{class:"stat-label"},{default:e(()=>[m("已完成课程")]),_:1})]),_:1})]),_:1}),f(b,{class:"record-list-section"},{default:e(()=>[f(b,{class:"section-title"},{default:e(()=>[f(v,{class:"title-text"},{default:e(()=>[m("学习记录")]),_:1})]),_:1}),0!==w.recordList.length||w.loading?(u(),a(b,{key:1,class:"record-list"},{default:e(()=>[(u(!0),_(p,null,D(w.recordList,t=>(u(),a(b,{key:t.id,class:"record-item",onClick:a=>T.viewRecordDetail(t)},{default:e(()=>[f(b,{class:"record-header"},{default:e(()=>[f(v,{class:"course-name"},{default:e(()=>[m(h(t.courseName||"未知课程"),1)]),_:2},1024),f(v,{class:C(["progress-badge",T.getProgressClass(t.progress)])},{default:e(()=>[m(h(t.progress||0)+"% ",1)]),_:2},1032,["class"])]),_:2},1024),f(b,{class:"record-info"},{default:e(()=>[f(v,{class:"info-item"},{default:e(()=>[f(v,{class:"info-label"},{default:e(()=>[m("学习时长:")]),_:1}),f(v,{class:"info-value"},{default:e(()=>[m(h(T.formatDuration(t.totalDuration)),1)]),_:2},1024)]),_:2},1024),f(v,{class:"info-item"},{default:e(()=>[f(v,{class:"info-label"},{default:e(()=>[m("学习次数:")]),_:1}),f(v,{class:"info-value"},{default:e(()=>[m(h(t.learnCount||0)+"次",1)]),_:2},1024)]),_:2},1024)]),_:2},1024),f(b,{class:"progress-bar"},{default:e(()=>[f(b,{class:"progress-fill",style:L({width:(t.progress||0)+"%"})},null,8,["style"])]),_:2},1024),f(b,{class:"record-footer"},{default:e(()=>[t.lastLearnTime?(u(),a(v,{key:0,class:"last-time"},{default:e(()=>[m(" 最后学习:"+h(T.formatTime(t.lastLearnTime)),1)]),_:2},1024)):y("",!0)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})):(u(),a(k,{key:0,mode:"data",text:"暂无学习记录"})),f(x,{loading:w.loading},null,8,["loading"])]),_:1})]),_:1})}],["__scopeId","data-v-a956868e"]]);export{w as default};