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)},{default:c((()=>[n(s,{class:"weekday"},{default:c((()=>[i(r(e.weekday),1)])),_:2},1024),n(s,{class:"date"},{default:c((()=>[i(r(e.dateMMDD),1)])),_:2},1024)])),_:2},1032,["class","onClick"])))),128))])),_:1}),n(l,{class:"schedule-body"},{default:c((()=>[(u(!0),d(f,null,m(T.value,((e,a)=>(u(),o(l,{key:a,class:"schedule-row"},{default:c((()=>[n(l,{class:"time-slot"},{default:c((()=>[n(s,{class:"slot-name"},{default:c((()=>[i(r(e.name),1)])),_:2},1024),n(s,{class:"slot-time"},{default:c((()=>[i(r(e.timeRange),1)])),_:2},1024)])),_:2},1024),n(l,{class:"course-container"},{default:c((()=>[e.subjects&&e.subjects.length>0?(u(!0),d(f,{key:0},m(e.subjects,((e,a)=>{return u(),o(l,{key:a,class:w(["course-card",(t=e.subject,t?t.includes("语文")?"color-lang":t.includes("体育")?"color-phys":t.includes("数学")?"color-math":"color-other":"")])},{default:c((()=>[n(s,{class:"course-subject"},{default:c((()=>[i(r(e.subject),1)])),_:2},1024),n(s,{class:"course-class"},{default:c((()=>[i(r(e.class),1)])),_:2},1024)])),_:2},1032,["class"]);var t})),128)):(u(),o(l,{key:1,class:"empty-course"},{default:c((()=>[n(s,{class:"empty-text"},{default:c((()=>[i("暂无课程")])),_:1})])),_:1}))])),_:2},1024)])),_:2},1024)))),128))])),_:1}),W.value?(u(),o(l,{key:0,class:"loading-overlay"},{default:c((()=>[n(s,null,{default:c((()=>[i("加载中...")])),_:1})])),_:1})):p("v-if",!0),p(" 周选择弹窗 "),n(M,{ref_key:"weekPopup",ref:C,type:"bottom",onChange:F},{default:c((()=>[n(l,{class:"week-picker-popup"},{default:c((()=>[n(l,{class:"popup-header"},{default:c((()=>[n(s,{class:"title"},{default:c((()=>[i("选择周")])),_:1})])),_:1}),n(l,{class:"week-list"},{default:c((()=>[n(k,{"scroll-y":"",style:{"max-height":"60vh"},"scroll-top":q.value},{default:c((()=>[(u(!0),d(f,null,m(P.value,((e,a)=>(u(),o(l,{key:a,class:w(["week-item",{active:e.displayText===Y.displayText}]),onClick:a=>(e=>{if(e.displayText===Y.displayText)return void B();Object.assign(Y,e);const a=parseInt(e.displayText.substring(0,4)),s=e.weekNumber;N.value=j().year(a).isoWeek(s).isoWeekday(1),Q(),B(),S()})(e)},{default:c((()=>[n(s,null,{default:c((()=>[i(r(e.displayText),1)])),_:2},1024),G(e)?(u(),o(s,{key:0,class:"current-tag"},{default:c((()=>[i("当前周")])),_:1})):p("v-if",!0)])),_:2},1032,["class","onClick"])))),128))])),_:1},8,["scroll-top"])])),_:1})])),_:1})])),_:1},512)])),_:1})}}}),[["__scopeId","data-v-37fe3d3c"]]);export{N as default};