PageSourceSearch

https://funday.asia/assets/ClassroomCard-BVRQgNt6.js

js funday.asia collected 2026-10-03 19:08:53 UTC 9,429 bytes, 2 lines download raw bytes

1import{d as v,o as t,c as a,b as c,ae as N,g as p,x as M,n as e,B as d,t as h,F as $,q as g,e as _,_ as S,z as D,N as ss,U as es,S as R,A as T,k as ts,l as as,a3 as os,m as x,w,a2 as ns,f as rs}from"./main-Bpkn1I1I.js";import{_ as cs}from"./BaseButton-CuOiou3b.js";import{_ as ls}from"./ClassCompulsoryTag-D4-aau_C.js";import{u as A}from"./useClassroom-BUnA4vHy.js";import{C as is,a as us}from"./ClassroomEnum-Bur71sGI.js";import{n as _s}from"./course-BEL8vff6.js";import"./token-D_ZQp8Og.js";import"./useClassNotify-COI7zC7g.js";import"./courseApi-CjV1Umr3.js";const ds=["id"],ps={class:"card-classroom-wrapper"},ms=v({__name:"ClassroomCardWrapper",props:{id:{}},setup(o){const s=o;return(r,i)=>(t(),a("div",{id:s.id,class:"card-classroom"},[c("div",ps,[N(r.$slots,"default",{},void 0,!0)])],8,ds))}}),vs=p(ms,[["__scopeId","data-v-f1154d63"]]),fs={},hs={class:"card-footer"},Cs={class:"card-footer-wrapper"};function ys(o,s){return t(),a("div",hs,[c("div",Cs,[N(o.$slots,"default",{},void 0,!0)])])}const $s=p(fs,[["render",ys],["__scopeId","data-v-d2e6d513"]]),bs=v({__name:"ClassroomButtonsBox",props:{category:{},isFullWidth:{type:Boolean}},setup(o){const s=o,r=d(()=>[s.category==="國高中課程"||s.category==="大講堂"?"flex":"",s.isFullWidth?"fullContainer":""]);return(i,m)=>(t(),a("div",{class:M(["classroom-buttons-box",e(r)])},[N(i.$slots,"default",{},void 0,!0)],2))}}),gs=p(bs,[["__scopeId","data-v-b4b1fc38"]]),Ds={class:"card-courseTime"},xs=v({__name:"ClassroomTime",props:{classStartTime:{},classEndTime:{}},setup(o){const s=o;return(r,i)=>(t(),a("div",Ds,h(s.classStartTime)+" - "+h(s.classEndTime),1))}}),ws=p(xs,[["__scopeId","data-v-37067472"]]),ks={key:0,class:"reservation-wrapper"},Is={class:"reservation-person"},Bs={key:1,class:"joined-wrapper"},Ns={class:"joined-person"},Ss={key:1,class:"non-reservation"},Ts=v({__name:"ClassroomReservation",props:{isAvailable:{type:Boolean},limit:{},reservedCount:{},joinedCount:{},showJoined:{type:Boolean}},setup(o){const s=o,r=d(()=>s.isAvailable),i=d(()=>s.reservedCount||0),m=d(()=>s.joinedCount||0),f=d(()=>s.limit>10);return(C,u)=>r.value?(t(),a("div",{key:0,class:M(["reservation",{"break-wrap":f.value}])},[s.showJoined?D("",!0):(t(),a("div",ks,[u[0]||(u[0]=c("span",{class:"reservation-label"},"候位",-1)),c("ul",Is,[(t(!0),a($,null,g(i.value,(n,y)=>(t(),a("li",{class:"person",key:`user-fill-${y}`},[_(S,{name:"userFilled"})]))),128)),(t(!0),a($,null,g(s.limit-i.value,(n,y)=>(t(),a("li",{key:`user-line-${y}`},[_(S,{name:"user"})]))),128))])])),s.showJoined?(t(),a("div",Bs,[u[1]||(u[1]=c("span",{class:"joined-label"},"出席",-1)),c("ul",Ns,[(t(!0),a($,null,g(m.value,(n,y)=>(t(),a("li",{class:"person",key:`user-fill-${y}`},[_(S,{name:"userFilled"})]))),128)),(t(!0),a($,null,g(s.limit-m.value,(n,y)=>(t(),a("li",{key:`user-line-${y}`},[_(S,{name:"user"})]))),128))])])):D("",!0)],2)):(t(),a("div",Ss,[...u[2]||(u[2]=[c("span",{class:"non-reservation-label"},"無須候位",-1)])]))}}),js=p(Ts,[["__scopeId","data-v-820827a5"]]),Ls={},Es={class:"card-content"},Ms={class:"card-content-wrapper"};function Gs(o,s){return t(),a("div",Es,[c("div",Ms,[N(o.$slots,"default",{},void 0,!0)])])}const Fs=p(Ls,[["render",Gs],["__scopeId","data-v-a3d495fe"]]),Ps={class:"classroom-title"},Rs=v({__name:"ClassroomTitle",props:{courseData:{}},setup(o){const s=o;return(r,i)=>(t(),a("div",Ps,[c("p",null,h(s.courseData.chineseClassName),1)]))}}),As=p(Rs,[["__scopeId","data-v-29ba2f18"]]),zs=v({__name:"ClassroomLevel",props:{classLevel:{}},setup(o){const s=o,r=d(()=>es.getlevelsMap()[s.classLevel]);return(i,m)=>{var f,C;return t(),a("div",{class:"classLevel",style:ss({color:(f=e(r))==null?void 0:f.color})},h((C=e(r))==null?void 0:C.name),5)}}}),Js=p(zs,[["__scopeId","data-v-bdfe5e40"]]),Us={class:"classDifficulty"},Vs={key:0,class:"classDifficulty-label"},Ws={class:"classDifficulty-range"},Hs=3,Os=v({__name:"ClassroomDifficulty",props:{courseData:{},showPrefix:{type:Boolean,default:!1}},setup(o){const s=o;return(r,i)=>(t(),a("div",Us,[o.showPrefix?(t(),a("p",Vs,"難度")):D("",!0),c("ul",Ws,[(t(!0),a($,null,g(s.courseData.star,m=>(t(),a("li",null,"★"))),256)),(t(!0),a($,null,g(Hs-s.courseData.star,m=>(t(),a("li",null,"☆"))),256))])]))}}),qs=p(Os,[["__scopeId","data-v-57c29fea"]]),Ys={},Zs={class:"card-header"},Ks={class:"card-header-wrapper"},Qs={class:"card-header-wrapper"},Xs={class:"card-header-main"};function se(o,s){return t(),a("div",Zs,[c("div",Ks,[N(o.$slots,"avatar",{},void 0,!0),c("div",Qs,[c("div",Xs,[N(o.$slots,"default",{},void 0,!0)])])])])}const ee=p(Ys,[["render",se],["__scopeId","data-v-693b486a"]]),te={class:"class-category"},ae=["title"],oe=v({__name:"ClassroomCategory",props:{courseData:{}},setup(o){const{transformClassGroup:s}=A(),r=o;return(i,m)=>(t(),a("div",te,[c("span",{class:"class-category__class-name-tag",title:e(s)(r.courseData.classGroup)},h(e(s)(r.courseData.classGroup)),9,ae)]))}}),ne=p(oe,[["__scopeId","data-v-ae02d546"]]),re={class:"card-header-avatar"},ce=["src","alt"],le={key:0,class:"capitalName avatar-default"},ie=v({__name:"ClassroomAvatar",props:{courseData:{}},setup(o){const s=o,r=T(!1),i=d(()=>s.courseData.teacherName.substring(0,1).toUpperCase()),m=f=>{r.value=!0};return R(()=>s.courseData,()=>{r.value=!1}),(f,C)=>(t(),a("div",re,[c("img",{src:s.courseData.teacherPhoto,alt:s.courseData.teacherName,class:M({error:e(r)}),onError:C[0]||(C[0]=u=>m(s.courseData.teacherPhoto))},null,42,ce),e(r)?(t(),a("div",le,h(e(i)),1)):D("",!0)]))}}),ue=p(ie,[["__scopeId","data-v-0ce9e151"]]),_e={class:"teacher-name"},de=v({__name:"ClassroomTeacherName",props:{courseData:{}},setup(o){const s=o;return(r,i)=>
1(t(),a("div",_e,h(s.courseData.teacherName),1))}}),pe=p(de,[["__scopeId","data-v-4d5cd6e0"]]),me={class:"class-info"},ve={class:"class-teacher"},fe={class:"flex items-center gap-[10px]"},he={class:"flex items-center gap-[4px]"},Ce={class:"avg-rating"},ye={class:"class-difficulty-level"},$e={class:"class-theme-tags"},be=v({__name:"ClassroomCard",props:{classroom:{},classTime:{},contentBy:{},reservedCount:{},joinedCount:{}},setup(o){const s=o,r={0:{status:0,label:"時間未到",variant:"secondary",disabled:!0},1:{status:1,label:"可候位",variant:"primary",disabled:!1},2:{status:2,label:"JOIN",variant:"primary",disabled:!1},3:{status:3,label:"準備中",variant:"primary",disabled:!1},4:{status:4,label:"上課中",variant:"secondary",disabled:!1}},i=ts(),{checkPermissionBeforeOpenLesson:m}=A(),f=T(0),C=T(0),u=T(new Date),n=d(()=>s.classroom),y=d(()=>us[n.value.classGroup]),G=d(()=>!["國高中課程"].includes(s.classroom.classGroup)),F=d(()=>!_s.includes(y.value)),z=d(()=>["學習相談室","學習診療室"].includes(n.value.classGroup)),P=d(()=>Math.round((n.value.avgRating??0)/2*10)/10),j=d(()=>{let l=0;return L(new Date(s.classTime*1e3),7,"before")?l=1:L(new Date(s.classTime*1e3),15,"between")?l=s.classroom.teacherCheck?2:3:L(new Date(s.classTime*1e3),15,"after")?l=4:l=0,r[l]}),L=(l,b,k)=>{const E=k==="before"?-b:b,I=new Date(l.getFullYear(),l.getMonth(),l.getDate(),l.getHours(),l.getMinutes()+E);if(k==="after")return u.value>l&&u.value>=I;if(k==="before")return u.value<l&&u.value>=I;if(k==="between")return u.value>=l&&u.value<I};return R(()=>s.reservedCount,l=>{l!==void 0&&(f.value=l)}),as(()=>{os(async()=>{F.value&&(f.value=s.reservedCount||0,C.value=s.classroom.roomLimit)})}),(l,b)=>{const k=ue,E=ne,I=S,J=ls,U=ee,V=qs,W=Js,H=As,O=Fs,q=js,Y=ws,Z=cs,K=gs,Q=$s,X=vs;return t(),x(X,{id:e(n).classId,onClick:b[1]||(b[1]=B=>e(m)(e(n).classGroup,e(n).classId,e(n).chineseClassName))},{default:w(()=>[_(U,null,{avatar:w(()=>[_(k,{courseData:e(n)},null,8,["courseData"])]),default:w(()=>[c("div",me,[_(E,{courseData:e(n)},null,8,["courseData"])]),c("div",ve,[_(pe,{courseData:e(n)},null,8,["courseData"])]),c("div",fe,[c("div",he,[(t(),a($,null,g(5,B=>(t(),a($,null,[B<=e(P)?(t(),x(I,{key:0,name:"full-star",style:{width:"8px",height:"8px"}})):(t(),x(I,{key:1,name:"empty-star",style:{width:"8px",height:"8px"}}))],64))),64))]),c("p",Ce,h(e(P)),1)]),_(J,{text:e(is)[e(n).compulsory],type:e(n).compulsory},null,8,["text","type"])]),_:1}),_(O,null,{default:w(()=>[c("div",ye,[e(G)?(t(),x(V,{key:0,courseData:e(n),showPrefix:""},null,8,["courseData"])):D("",!0),e(G)?(t(),x(W,{key:1,"class-level":e(n).classLevel},null,8,["class-level"])):D("",!0)]),_(H,{courseData:e(n)},null,8,["courseData"]),c("div",$e,[(t(!0),a($,null,g(e(i).userData.themeSelection,B=>(t(),a("span",{key:B.themeId,class:"class-theme-tag"},h(`#${B.themeNameZh}`),1))),128))])]),_:1}),_(Q,null,{default:w(()=>[s.contentBy=="time"||e(z)?(t(),x(q,{key:0,isAvailable:e(F),limit:e(C),"reserved-count":e(f),"joined-count":o.joinedCount,"show-joined":e(n).visibleJoinedLabel},null,8,["isAvailable","limit","reserved-count","joined-count","show-joined"])):D("",!0),s.contentBy=="date"?(t(),x(Y,{key:1,classStartTime:e(n).classStartTime,classEndTime:e(n).classEndTime},null,8,["classStartTime","classEndTime"])):D("",!0),_(K,{category:e(n).classGroup},{default:w(()=>[_(Z,{class:"canClick",size:"sm",labelSize:"sm",variant:e(j).variant,disabled:e(j).disabled,onClick:b[0]||(b[0]=ns(B=>e(m)(e(n).classGroup,e(n).classId,e(n).chineseClassName),["prevent"]))},{default:w(()=>[rs(h(e(j).label),1)]),_:1},8,["variant","disabled"])]),_:1},8,["category"])]),_:1})]),_:1},8,["id"])}}}),Te=p(be,[["__scopeId","data-v-11d9ef88"]]);export{Te as default};
2//# sourceMappingURL=ClassroomCard-BVRQgNt6.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.