|
|
<template> <view class="pageBgImg"> <topNavbar title="排课计划"></topNavbar> <view class="pad"> <view class="card"> <view class="row"> <view class="lab">计划开始日期</view> <view class="rightCon" @click="showClick('classBeginDate')"> <view class="inputBox"> <input type="text" v-model="form.classBeginDate" placeholder="请选择" disabled style="pointer-events: none;"> </view> <view class="icon"> <u-icon name="arrow-right" :size="12" :color="'#696B72'"></u-icon> </view> </view> </view> <view class="row"> <view class="lab">计划结束日期</view> <view class="rightCon" @click="showClick('classEndDate')"> <view class="inputBox"> <input type="text" v-model="form.classEndDate" placeholder="请选择" disabled style="pointer-events: none;"> </view> <view class="icon"> <u-icon name="arrow-right" :size="12" :color="'#696B72'"></u-icon> </view> </view> </view> <view class="row"> <view class="lab">选择训练场地</view> <view class="rightCon" @click="showSite=true"> <view class="inputBox"> <input type="text" v-model="form.siteName" placeholder="请选择" disabled style="pointer-events: none;"> </view> <view class="icon"> <u-icon name="arrow-right" :size="12" :color="'#696B72'"></u-icon> </view> </view> </view> <view class="row"> <view class="lab">选择开课时间段</view> <view class="rightCon" @click="$goPage('/pages/recordEntry/operate/mySchedule/mould/mould')"> <view class="inputBox"> <input type="text" v-model="currentMould.templateName" placeholder="请选择" disabled style="pointer-events: none;"> </view> <view class="icon"> <u-icon name="arrow-right" :size="12" :color="'#696B72'"></u-icon> </view> </view> </view> <view class="blueBg"> <view class="time_row hui"> <text>时间段</text> <text>最多人数</text> </view> <view class="time_row" v-for="(item,index) in currentMould.detailVO" :key="index"> <text>{{item.startTime}} <text>-</text> {{item.endTime}}</text> <text>{{item.personCount}}人</text> </view> </view> <view class="row"> <view class="lab">训练科目</view> <view class="rightCon"> <myRadio @changeRadio="changeRadioSubject" :radioData="radiolist1" :radioVal="{value: form.subject}"></myRadio> </view> </view> <view class="row"> <view class="lab">选择教练车</view> <view class="rightCon" @click="showCar=true"> <view class="inputBox"> <input type="text" v-model="form.carNumber" placeholder="请选择" disabled style="pointer-events: none;"> </view> <view class="icon"> <u-icon name="arrow-right" :size="12" :color="'#696B72'"></u-icon> </view> </view> </view> <!-- <view class="row"> <view class="lab">开放范围</view> <view class="rightCon"> <myRadio @changeRadio="changeRadioOpenRange" :radioData="radiolist3" :radioVal="{value: form.openRange}"></myRadio> </view> </view> --> </view> <view class="btnBg" @click="scheduleClassCreateFn">确认发布</view> </view> <u-datetime-picker :show="show" :minDate="minDate" :maxDate="maxDate" mode="date" @confirm="changeDate" @cancel="show=false" ></u-datetime-picker> <u-picker :show="showSite" :columns="siteColumns" keyName="name" @confirm="changeSite" @cancel="showSite=false" ></u-picker> <u-picker :show="showCar" :columns="carColumns" keyName="licnum" @confirm="changeCarNumber" @cancel="showCar=false" ></u-picker> </view> </template>
<script> import { scheduleClassCreate, getClassDateLimit, trainingSiteList, carPage} from '@/config/api.js' export default { data() { return { tmpDateName:'',//选择日期临时变量
minDate: null, maxDate: null, show: false, showSite: false, showCar: false, form: { classDate: '', carNumber: '', subject: 0, //科目类别:0:不限;2:科目二;3:科目三
openRange: '0', //开放范围:0:自己的学员;1:绑定的驾校的学员
siteName: '', siteId: '' }, formToast: { classBeginDate: '请选择开始时间', classEndDate: '请选择结束时间', siteId: '请选择场地', carNumber: '请选择车辆', }, currentMould: {}, siteColumns: [], carColumns: [], radiolist1: [{ name: '不限制', id: 0, disabled: false }, { name: '科目二', id: 2, disabled: false }, { name: '科目三', id: 3, disabled: false }, ], radiolist3: [{ name: '我的学员', id: 0, disabled: false }, { name: '所有学员', id: 1, disabled: false }, ] //开放范围:0:自己的学员;1:绑定的驾校的学员
} }, onLoad() { this.form.deptId = this.vuex_deptId this.form.coachId = this.vuex_coachId this.getClassDateLimitFn() this.trainingSiteListFn() this.carPageFn() uni.$on('chooseMould',(item)=>{ this.form.templateId = item.id this.currentMould = item console.log(item) }) }, methods: { // 点击显示选择日期组件
showClick(name) { this.show = true this.tmpDateName = name }, // 选择车牌号
changeCarNumber(val) { const item = val.value[0] this.showCar = false this.form.carNumber = item.licnum // console.log()
}, // 发布排课计划
async scheduleClassCreateFn() { for(let k in this.formToast) { if(!this.form[k]) return this.$u.toast(this.formToast[k]) } console.log(this.form) const res = await scheduleClassCreate(this.form) if(res.code==0) { this.$goPage('/pages/recordEntry/operate/mySchedule/mySchedule') } console.log(res) }, // 选择训练场地
changeSite(val) { let item = val.value[0] this.form.address = item.address this.form.seq = item.seq this.form.area = item.area this.form.siteName = item.name this.form.siteId = item.id this.showSite = false }, // 获取训练场地
async trainingSiteListFn() { let obj = { pageNo: 1, pageSize: 100, schoolId: this.vuex_userInfo.schoolId } const {data: res} = await trainingSiteList(obj) this.siteColumns = [ res ] console.log(res) }, changeRadio(val) { console.log(val) }, // changeRadioOpenRange(val) {
// this.form.openRange = val
// },
// 选择科目
changeRadioSubject(val) { this.form.subject = val console.log(this.form.subject) }, // 选择日期
changeDate(val) { this.form[this.tmpDateName] = this.$u.date(val.value, 'yyyy-mm-dd') this.show = false console.log(val) }, // 获取排课日期范围
async getClassDateLimitFn() { let obj = { coachId: this.vuex_coachId } const {data: res} = await getClassDateLimit(obj) this.minDate = new Date(res.beginDateLimit)*1 + 86400000 this.maxDate = new Date(res.endDateLimit)*1 }, async carPageFn() { let obj = { pageNo: 1, pageSize: 40, schoolId: this.vuex_schoolId, coachId: this.vuex_coachId } const {data: res} = await carPage(obj) this.carColumns = [res.list] }, } } </script>
<style lang="scss" scoped> .card { padding: 10rpx 28rpx;
.row { display: flex; justify-content: space-between; padding: 26rpx 0;
.lab { font-weight: 500; } } } .btnBg { width: 396rpx; margin: 120rpx auto 0 auto; } .rightCon { display: flex; align-items: center;
.icon { margin-left: 10rpx; }
.inputBox { flex: 1;
input { text-align: right; font-size: 28rpx; color: #333; } } } .blueBg { background-color: #E8F3FE; padding: 12rpx 32rpx; border-radius: 16rpx; text-align: center; .time_row { display: flex; justify-content: space-between; padding: 12rpx 0; &.hui { color: #ADADAD; } text { width: 170rpx; } } } </style>
|