2 lines
6.4 KiB
JavaScript
2 lines
6.4 KiB
JavaScript
|
|
import{d as e,r as a,m as s,n as t,Z as l,b as u,e as o,w as c,g as n,y as i,z as r,v as d,a0 as m,Q as f,q as p,a7 as k,G as y,j as v,k as _,l as b,a6 as h,_ as w}from"./index-f6e54d8f.js";import{_ as D}from"./uni-icons.7467b650.js";import{_ as g}from"./uni-popup.1c525271.js";import{d as j}from"./dayjs.min.1cfb48de.js";import{w as M,i as x}from"./isoWeek.2f7c0250.js";import{_ as W}from"./_plugin-vue_export-helper.1b428a4d.js";const N=W(e({__name:"JiaoShiKeBiao",setup(e){j.locale("zh-cn"),j.extend(M),j.extend(x);const W=a(!1),N=a(j()),R=a(0),T=a([]),$=a(!1),C=a(null),Y=s({weekNumber:0,startDate:"",endDate:"",displayText:""}),I=a([]),z=a(0),P=a([]);t((()=>N.value.isoWeekday(1)));const G=e=>j().isoWeek()===e.weekNumber,Q=()=>{const e=N.value.isoWeekday(1),a=[],s=["周一","周二","周三","周四","周五"];for(let l=0;l<5;l++){const t=e.add(l,"day");a.push({dateFull:t.format("YYYY-MM-DD"),dateMMDD:t.format("M/DD"),weekday:s[l]})}I.value=a;const t=j().isoWeekday();N.value.isSame(j(),"isoWeek")?R.value=t>=1&&t<=5?t-1:0:R.value=0},S=async()=>{console.log(`正在获取第${Y.weekNumber}周课表数据...`),W.value=!0,await new Promise((e=>setTimeout(e,500)));const e=[{name:"上1",timeRange:"08:00-08:45"},{name:"上2",timeRange:"08:55-09:40"},{name:"上3",timeRange:"10:00-10:45"},{name:"上4",timeRange:"10:55-11:40"},{name:"下1",timeRange:"14:00-14:45"},{name:"下2",timeRange:"14:55-15:40"},{name:"下3",timeRange:"16:00-16:45"},{name:"下4",timeRange:"16:55-17:40"}],a=[],s=Y.weekNumber%2==1;for(const t of e){const e=Z(t.name,R.value,s);a.push({name:t.name,timeRange:t.timeRange,subjects:e})}T.value=a,W.value=!1,console.log("课表数据加载完成:",T.value)},Z=(e,a,s)=>{const t=[];return 0===a?"上1"===e||"上2"===e?t.push({subject:s?"语文":"数学",class:"小2018级01班"}):"上3"===e?t.push({subject:"体育",class:"小2018级01班"}):"下1"!==e&&"下2"!==e||t.push({subject:"体育",class:"小2018级01班"}):1===a?"上1"===e||"上2"===e?t.push({subject:"体育",class:"小2018级01班"}):"下1"===e&&t.push({subject:s?"语文":"数学",class:"小2018级01班"}):2===a?"上2"===e?t.push({subject:s?"语文":"数学",class:"小2018级01班"}):("下1"===e||"下3"===e)&&t.push({subject:"体育",class:"小2018级01班"}):3===a?("上4"===e||"下1"===e)&&t.push({subject:"体育",class:"小2018级01班"}):4===a&&("上1"===e?t.push({subject:s?"语文":"数学",class:"小2018级01班"}):("上2"===e||"下2"===e||"下4"===e)&&t.push({subject:"体育",class:"小2018级01班"})),t},q=a(0),A=async()=>{$.value=!0,0===P.value.length&&console.warn("Available weeks list is empty.");const e=P.value.findIndex((e=>e.weekNumber===Y.weekNumber));if(-1!==e){const a=53.5*e;await k(),q.value=a}else await k(),q.value=0;await k(),C.value?C.value.open("bottom"):console.error("Week popup ref is not available.")},B=()=>{C.value&&C.value.close()},F=e=>{e.show||($.value=!1)};return l((()=>{(()=>{const e=j();N.value=e;const a=e.isoWeekday(1),s=a.add(4,"day"),t=a.year(),l=a.isoWeek();Y.weekNumber=l,Y.startDate=a.format("MM.DD"),Y.endDate=s.format("MM.DD"),Y.displayText=`${t}年 第${l}周 (${a.format("MM.DD")}-${s.format("MM.DD")})`,z.value=l})(),(()=>{const e=[],a=j().year();for(let t=1;t<=53;t++){const s=j().year(a).isoWeek(t).isoWeekday(1);if(s.isoWeekYear()===a){const t=s.add(4,"day"),l=s.isoWeek();e.push({weekNumber:l,startDate:s.format("MM.DD"),endDate:t.format("MM.DD"),displayText:`${a}年 第${l}周 (${s.format("MM.DD")}-${t.format("MM.DD")})`})}}const s=e.filter(((e,a,s)=>a===s.findIndex((a=>a.weekNumber===e.weekNumber))));P.value=s,console.log("Generated weeks:",P.value)})(),Q(),S()})),(e,a)=>{const s=y,t=v(_("uni-icons"),D),l=b,k=h,M=v(_("uni-popup"),g);return u(),o(l,{class:"schedule-page"},{default:c((()=>[n(l,{class:"week-selector",onClick:A},{default:c((()=>[n(s,null,{default:c((()=>[i(r(Y.displayText),1)])),_:1}),n(t,{type:"right",size:"16",color:"#fff"})])),_:1}),n(l,{class:"date-tabs"},{default:c((()=>[(u(!0),d(f,null,m(I.value,((e,a)=>(u(),o(l,{key:a,class:w(["date-tab-item",{active:R.value===a}]),onClick:e=>(e=>{R.value=e,S()})(a)},{defaul
|