智慧教务系统
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
8.3 KiB

import{r,a5 as M,h as d,m as n,w as s,e as u,i as _,c as v,F as f,O as g,a as R,t as w,B as D,P as T,_ as le,$ as te,G as se,a0 as ue,af as oe,ag as de,am as re,bj as ne,D as ie,H as ce,E as _e,V as me}from"./index-4c331f20.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css */import{g as pe}from"./venue-4eb407ed.js";import{g as ve,b as fe}from"./classroom-8ea30dfa.js";import{c as ge,a as be}from"./course_schedule-b27e8bf1.js";import{_ as ye}from"./_plugin-vue_export-helper-c27b6911.js";const he={class:"student-checkbox-list"},Ve={__name:"schedule-add",props:{visible:{type:Boolean,default:!1},campusList:{type:Array,default:()=>[]}},emits:["update:visible","success"],setup(S,{emit:U}){const N=S,m=r(!1),b=r(null),k=r([]),E=r([]),y=r([]),h=r([]),G=r(["9:00-10:00","10:00-11:00","11:00-12:00","14:00-15:00","15:00-16:00","16:00-17:00"]),p=r(0),V=r(""),C=r([]);M(()=>N.visible,l=>{m.value=l}),M(m,l=>{U("update:visible",l),l&&(W(),e.value.campus_id&&Y())});const e=r({campus_id:"",venue_id:"",course_date:"",time_slot:"",course_type:"class",class_ids:[],student_ids:[],course_name:"",coach_id:""}),O={campus_id:[{required:!0,message:"请选择校区",trigger:"change"}],venue_id:[{required:!0,message:"请选择场地",trigger:"change"}],course_date:[{required:!0,message:"请选择上课日期",trigger:"change"}],time_slot:[{required:!0,message:"请选择上课时段",trigger:"change"}],course_type:[{required:!0,message:"请选择上课类型",trigger:"change"}],coach_id:[{required:!0,message:"请选择上课教练",trigger:"change"}],course_name:[{required:!0,message:"请输入课程名称",trigger:"blur"}]},P=l=>l.getTime()<Date.now()-864e5,Y=async()=>{try{const l=await pe({campus_id:e.value.campus_id});k.value=l.data}catch(l){console.error("获取场地列表失败:",l)}try{const l=await ve({campus_id:e.value.campus_id});l.data&&l.data.list&&(E.value=l.data.list)}catch(l){console.error("获取班级列表失败:",l)}e.value.venue_id="",e.value.class_ids=[],p.value=0},q=async()=>{if(!e.value.venue_id||!e.value.time_slot){p.value=0;return}try{const l=k.value.find(t=>t.id===e.value.venue_id);if(l&&(p.value=l.capacity||0,e.value.course_date)){const t={venue_id:e.value.venue_id,course_date:e.value.course_date,time_slot:e.value.time_slot},i=await ge(t);if(i.data&&i.data.length>0){const c=i.data.find(o=>o.date.includes(e.value.course_date));if(c){const o=c.timeSlots.find(x=>x.timeRange===e.value.time_slot);o&&o.course&&(p.value=o.course.hasnumber)}}}}catch(l){console.error("计算可用容量失败:",l)}},j=()=>{e.value.class_ids=[],e.value.student_ids=[],e.value.course_name="",(e.value.course_type==="student"||e.value.course_type==="trial")&&K()},H=()=>{if(e.value.class_ids.length>0){const l=E.value.find(t=>t.id===e.value.class_ids[0]);l&&(e.value.course_name=l.class_name)}},K=async()=>{try{y.value=[{id:1,name:"学员1"},{id:2,name:"学员2"},{id:3,name:"学员3"}],C.value=[...y.value]}catch(l){console.error("获取学员列表失败:",l)}},W=async()=>{try{const l=await fe({});l.data?h.value=l.data:h.value=[{id:1,name:"教练1"},{id:2,name:"教练2"},{id:3,name:"教练3"}]}catch(l){console.error("获取教练列表失败:",l),h.value=[{id:1,name:"教练1"},{id:2,name:"教练2"},{id:3,name:"教练3"}]}},$=()=>{if(!V.value){C.value=[...y.value];return}C.value=y.value.filter(l=>l.name.includes(V.value))},z=()=>{m.value=!1},J=()=>{b.value.validate(async l=>{if(l)try{const t={campus_id:e.value.campus_id,venue_id:e.value.venue_id,course_date:e.value.course_date,time_slot:e.value.time_slot,course_id:0,coach_id:e.value.coach_id,participants:e.value.course_type,available_capacity:p.value,status:"active"};if(e.value.course_type==="class"){t.class_ids=e.value.class_ids;const c=[];t.student_ids=c}else t.student_ids=e.value.student_ids;(await be(t)).code===0&&(T.success("添加课程成功"),m.value=!1,U("success"),Q())}catch(t){console.error("添加课程失败:",t),T.error("添加课程失败")}})},Q=()=>{e.value={campus_id:"",venue_id:"",course_date:"",time_slot:"",course_type:"class",class_ids:[],student_ids:[],course_name:"",coach_id:""},b.value&&b.value.resetFields()};return(l,t)=>{const i=le,c=te,o=se,x=ue,L=oe,X=de,B=re,F=ne,A=ie,Z=ce,I=_e,ee=me;return d(),n(ee,{modelValue:m.value,"onUpdate:modelValue":t[10]||(t[10]=a=>m.value=a),title:"添加课程",width:"600px"},{footer:s(()=>[u(I,{onClick:z},{default:s(()=>[_("取消")]),_:1}),u(I,{type:"primary",onClick:J},{default:s(()=>[_("确定")]),_:1})]),default:s(()=>[u(Z,{ref_key:"formRef",ref:b,model:e.value,rules:O,"label-width":"120px"},{default:s(()=>[u(o,{label:"校区",prop:"campus_id"},{default:s(()=>[u(c,{modelValue:e.value.campus_id,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value.campus_id=a),placeholder:"请选择校区",onChange:Y},{default:s(()=>[(d(!0),v(f,null,g(S.campusList,a=>(d(),n(i,{key:a.id,label:a.campus_name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),u(o,{label:"场地",prop:"venue_id"},{default:s(()=>[u(c,{modelValue:e.value.venue_id,"onUpdate:modelValue":t[1]||(t[1]=a=>e.value.venue_id=a),placeholder:"请选择场地",onChange:q},{default:s(()=>[(d(!0),v(f,null,g(k.value,a=>(d(),n(i,{key:a.id,label:a.venue_name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),u(o,{label:"上课日期",prop:"course_date"},{default:s(()=>[u(x,{modelValue:e.value.course_date,"onUpdate:modelValue":t[2]||(t[2]=a=>e.value.course_date=a),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD","disabled-date":P},null,8,["modelValue"])]),_:1}),u(o,{label:"上课时段",prop:"time_slot"},{default:s(()=>[u(c,{modelValue:e.value.time_slot,"onUpdate:modelValue":t[3]||(t[3]=a=>e.value.time_slot=a),placeholder:"请选择上课时段",onChange:q},{default:s(()=>[(d(!0),v(f,null,g(G.value,(a,ae)=>(d(),n(i,{key:ae,label:a,value:a},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e.value.venue_id&&e.value.time_slot?(d(),n(o,{key:0,label:"剩余空位"},{default:s(()=>[R("span",null,w(p.value),1)]),_:1})):D("",!0),u(o,{label:"上课类型",prop:"course_type"},{default:s(()=>[u(X,{modelValue:e.value.course_type,"onUpdate:modelValue":t[4]||(t[4]=a=>e.value.course_type=a),onChange:j},{default:s(()=>[u(L,{label:"class"},{default:s(()=>[_("班级")]),_:1}),u(L,{label:"student"},{default:s(()=>[_("学员")]),_:1}),u(L,{label:"trial"},{default:s(()=>[_("试课")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.value.course_type==="class"?(d(),n(o,{key:1,label:"班级",prop:"class_ids"},{default:s(()=>[u(F,{modelValue:e.value.class_ids,"onUpdate:modelValue":t[5]||(t[5]=a=>e.value.class_ids=a),onChange:H},{default:s(()=>[(d(!0),v(f,null,g(E.value,a=>(d(),n(B,{key:a.id,label:a.id},{default:s(()=>[_(w(a.class_name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})):D("",!0),e.value.course_type==="student"||e.value.course_type==="trial"?(d(),n(o,{key:2,label:"学员",prop:"student_ids"},{default:s(()=>[u(A,{modelValue:V.value,"onUpdate:modelValue":t[6]||(t[6]=a=>V.value=a),placeholder:"搜索学员名称",onInput:$},null,8,["modelValue"]),R("div",he,[u(F,{modelValue:e.value.student_ids,"onUpdate:modelValue":t[7]||(t[7]=a=>e.value.student_ids=a)},{default:s(()=>[(d(!0),v(f,null,g(C.value,a=>(d(),n(B,{key:a.id,label:a.id},{default:s(()=>[_(w(a.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])]),_:1})):D("",!0),u(o,{label:"课程名称",prop:"course_name"},{default:s(()=>[u(A,{modelValue:e.value.course_name,"onUpdate:modelValue":t[8]||(t[8]=a=>e.value.course_name=a),placeholder:"请输入课程名称"},null,8,["modelValue"])]),_:1}),u(o,{label:"上课教练",prop:"coach_id"},{default:s(()=>[u(c,{modelValue:e.value.coach_id,"onUpdate:modelValue":t[9]||(t[9]=a=>e.value.coach_id=a),placeholder:"请选择教练"},{default:s(()=>[(d(!0),v(f,null,g(h.value,a=>(d(),n(i,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}},Pe=ye(Ve,[["__scopeId","data-v-7a612b0d"]]);export{Pe as default};