You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
5.2 KiB
1 lines
5.2 KiB
import{r as m,M as H,ap as J,h as n,m as S,w as l,a as o,e as r,c as h,F as E,O as R,i as _,t as v,aC as Q,B as X,_ as Z,$ as ee,E as te,a0 as ae,a1 as oe,ab as le,a2 as se,V as ne,K as re,p as ce,g as ie}from"./index-4c331f20.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{c as ue}from"./course_schedule-b27e8bf1.js";import{a as de}from"./venue-4eb407ed.js";import pe from"./schedule-add-e14988f4.js";import{_ as me}from"./_plugin-vue_export-helper-c27b6911.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import"./classroom-8ea30dfa.js";const O=C=>(ce("data-v-87ef6ba8"),C=C(),ie(),C),_e={class:"mb-4 flex items-center justify-between"},ve={class:"flex items-center"},fe={class:"schedule-container"},ge={class:"day-header"},he={key:0},be={class:"teacher-name"},ye={class:"student-list"},ke={class:"classroom-name"},Ce=O(()=>o("strong",null,"教师:",-1)),De=O(()=>o("strong",null,"学员:",-1)),we={__name:"timetables",setup(C){const b=m([]),y=m(""),T=m(!1),i=m(new Date),D=H(()=>{if(!i.value)return[null,null];const e=new Date(i.value),a=e.getDay()||7;e.setDate(e.getDate()-a+1);const f=new Date(e);e.setDate(e.getDate()+6);const c=new Date(e);return[f.toISOString().split("T")[0],c.toISOString().split("T")[0]]}),L=m([]),x=m(!1),B=m(null),U=()=>{const e=new Date(i.value);e.setDate(e.getDate()-7),i.value=e,u()},Y=()=>{const e=new Date(i.value);e.setDate(e.getDate()+7),i.value=e,u()},j=()=>{u()},M=()=>{u()},z=async()=>{try{const e=await de({});e.data&&(b.value=e.data,b.value.length>0&&(y.value=b.value[0].id))}catch(e){console.error("获取校区列表失败:",e)}},u=async()=>{try{const e={};D.value&&D.value.length===2&&(e.start_date=D.value[0],e.end_date=D.value[1]),y.value&&(e.campus_id=y.value);const a=await ue(e);a.data&&(L.value=a.data)}catch(e){console.error("获取课程表数据失败:",e)}},N=e=>e?`教师${e}`:"",W=e=>e?`学生${e}`:"",F=()=>{T.value=!0},A=(e,{row:a,column:f,rowIndex:c})=>{var d,w;if(f.property==="timeRange"){const p=e[c];if(!p||!p.timeRange)return{rowspan:0,colspan:0};let g=1;for(;((d=e[c+g])==null?void 0:d.timeRange)===p.timeRange;)g++;return g>1&&c>0&&((w=e[c-1])==null?void 0:w.timeRange)===p.timeRange?{rowspan:0,colspan:0}:{rowspan:g,colspan:1}}return{rowspan:1,colspan:1}},I=(e,a,f,c)=>{a.property.startsWith("classroom")&&e.course&&(B.value=e.course,x.value=!0)};return J(()=>{z(),u()}),(e,a)=>{const f=Z,c=ee,d=te,w=ae,p=oe,g=le,K=se,P=ne,q=re;return n(),S(q,{class:"box-card !border-none",shadow:"never"},{default:l(()=>[o("div",_e,[o("div",ve,[r(c,{modelValue:y.value,"onUpdate:modelValue":a[0]||(a[0]=t=>y.value=t),placeholder:"请选择校区",clearable:"",class:"mr-2",onChange:M},{default:l(()=>[(n(!0),h(E,null,R(b.value,t=>(n(),S(f,{key:t.id,label:t.campus_name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),r(d,{onClick:U,icon:"el-icon-arrow-left"},{default:l(()=>[_("上一周")]),_:1}),r(w,{modelValue:i.value,"onUpdate:modelValue":a[1]||(a[1]=t=>i.value=t),type:"week",format:"YYYY 第 ww 周",placeholder:"选择周",class:"week-picker",onChange:j},null,8,["modelValue"]),r(d,{onClick:Y,icon:"el-icon-arrow-right"},{default:l(()=>[_("下一周")]),_:1}),r(d,{type:"primary",class:"ml-2",onClick:u},{default:l(()=>[_("查询")]),_:1})]),r(d,{onClick:F},{default:l(()=>[_("添加课程")]),_:1})]),o("div",fe,[(n(!0),h(E,null,R(L.value,(t,V)=>(n(),h("div",{key:V,class:"day-column"},[o("div",ge,v(t.date),1),r(K,{data:t.timeSlots,border:"","span-method":s=>A(t.timeSlots,s),style:{width:"100%"},onCellClick:I},{default:l(()=>[r(p,{prop:"timeRange",label:"时间",width:"80",align:"center"},{default:l(({row:s})=>[o("div",{style:Q({backgroundColor:s.color})},v(s.timeRange),5)]),_:1}),(n(!0),h(E,null,R(t.classrooms,(s,G)=>(n(),S(p,{key:G,label:`教室${s}`,prop:`classroom${s}`,align:"center"},{default:l(({row:k})=>[k.course&&k.course.classroom==s?(n(),h("div",he,[o("div",be,v(N(k.course.teacher)),1),o("div",ye,[(n(!0),h(E,null,R(k.course.students,$=>(n(),S(g,{key:$,size:"small",effect:"plain"},{default:l(()=>[_(v(W($)),1)]),_:2},1024))),128))]),o("div",ke," 剩余空位:"+v(k.course.hasnumber),1)])):X("",!0)]),_:2},1032,["label","prop"]))),128))]),_:2},1032,["data","span-method"])]))),128)),r(P,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=t=>x.value=t),title:"课程详情"},{default:l(()=>{var t,V;return[o("p",null,[Ce,_(" "+v(N((t=B.value)==null?void 0:t.teacher)),1)]),o("p",null,[De,_(" "+v((V=B.value)==null?void 0:V.students.map(s=>W(s)).join(", ")),1)])]}),_:1},8,["modelValue"]),r(pe,{visible:T.value,"onUpdate:visible":a[3]||(a[3]=t=>T.value=t),campusList:b.value,onSuccess:u},null,8,["visible","campusList"])])]),_:1})}}},Qe=me(we,[["__scopeId","data-v-87ef6ba8"]]);export{Qe as default};
|
|
|