|
@@ -4,7 +4,7 @@
|
|
<van-cell :title="vipGroup.name" class="titleContent" title-class="titleStyle" label-class="labelStyle">
|
|
<van-cell :title="vipGroup.name" class="titleContent" title-class="titleStyle" label-class="labelStyle">
|
|
<template #label>
|
|
<template #label>
|
|
<p>{{ vipGroup.description }}</p>
|
|
<p>{{ vipGroup.description }}</p>
|
|
- <p>排课时间范围:{{ vipGroup.coursesStartTime }} 至 {{ vipGroup.coursesEndTime }}</p>
|
|
|
|
|
|
+ <!-- <p>排课时间范围:{{ vipGroup.coursesStartTime }} 至 {{ vipGroup.coursesEndTime }}</p> -->
|
|
</template>
|
|
</template>
|
|
</van-cell>
|
|
</van-cell>
|
|
</van-cell-group>
|
|
</van-cell-group>
|
|
@@ -22,6 +22,7 @@
|
|
<van-field
|
|
<van-field
|
|
:value="typeStatus ? vipGroup.vipGroupCategoryNames : vipGroup.giveCategoryName"
|
|
:value="typeStatus ? vipGroup.vipGroupCategoryNames : vipGroup.giveCategoryName"
|
|
label="课程形式"
|
|
label="课程形式"
|
|
|
|
+ v-if="courseTypeIsVip"
|
|
:readonly="true"
|
|
:readonly="true"
|
|
input-align="right"
|
|
input-align="right"
|
|
size="large"
|
|
size="large"
|
|
@@ -100,7 +101,7 @@
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
/>
|
|
/>
|
|
<van-field
|
|
<van-field
|
|
- :value="form.studentNum + '人'"
|
|
|
|
|
|
+ :value="(form.studentNum || 0) + '人'"
|
|
label="班级人数"
|
|
label="班级人数"
|
|
:readonly="true"
|
|
:readonly="true"
|
|
input-align="right"
|
|
input-align="right"
|
|
@@ -117,14 +118,40 @@
|
|
|
|
|
|
<h2 class="van-block__title">课时安排</h2>
|
|
<h2 class="van-block__title">课时安排</h2>
|
|
<van-cell-group>
|
|
<van-cell-group>
|
|
|
|
+ <van-cell
|
|
|
|
+ title="最早排课时间"
|
|
|
|
+ :readonly="true"
|
|
|
|
+ v-if="vipGroup.coursesStartTime"
|
|
|
|
+ input-align="right"
|
|
|
|
+ size="large"
|
|
|
|
+ value-class="showText"
|
|
|
|
+ :value="vipGroup.coursesStartTime"
|
|
|
|
+ >
|
|
|
|
+ </van-cell>
|
|
|
|
+ <van-cell
|
|
|
|
+ title="最晚排课时间"
|
|
|
|
+ :readonly="true"
|
|
|
|
+ v-if="vipGroup.coursesEndTime"
|
|
|
|
+ input-align="right"
|
|
|
|
+ size="large"
|
|
|
|
+ value-class="showText"
|
|
|
|
+ :value="vipGroup.coursesEndTime"
|
|
|
|
+ >
|
|
|
|
+ </van-cell>
|
|
|
|
+ <!-- 为了处理,付费网管课程 -->
|
|
|
|
+ <!-- {{ !courseTypeIsVip && isLimitNum && typeStatus ? false : true }} -->
|
|
<van-field
|
|
<van-field
|
|
- :value="((typeStatus ? vipGroup.minCourseNum : vipGroup.giveCourseNum) || 0) + '课时'"
|
|
|
|
|
|
+ v-model="form.totalClassTime"
|
|
label="课时总数"
|
|
label="课时总数"
|
|
- :readonly="true"
|
|
|
|
|
|
+ :readonly="!courseTypeIsVip && !isLimitNum && typeStatus ? false : true"
|
|
input-align="right"
|
|
input-align="right"
|
|
size="large"
|
|
size="large"
|
|
placeholder="请输入排课课时数"
|
|
placeholder="请输入排课课时数"
|
|
- />
|
|
|
|
|
|
+ >
|
|
|
|
+ <template #extra v-if="form.totalClassTime">
|
|
|
|
+ <span style="color: #808080; font-size: 16px;">课时</span>
|
|
|
|
+ </template>
|
|
|
|
+ </van-field>
|
|
<van-field
|
|
<van-field
|
|
v-model="form.courseStart"
|
|
v-model="form.courseStart"
|
|
label="排课开始时间"
|
|
label="排课开始时间"
|
|
@@ -322,6 +349,9 @@ export default {
|
|
courseTypeIsVip() { // 目前只有两种课程,VIP 网管课,则可以这样判断
|
|
courseTypeIsVip() { // 目前只有两种课程,VIP 网管课,则可以这样判断
|
|
const type = this.typeStatus ? this.vipGroup.courseType : this.vipGroup.giveCourseType
|
|
const type = this.typeStatus ? this.vipGroup.courseType : this.vipGroup.giveCourseType
|
|
return type == 'VIP' ? true : false
|
|
return type == 'VIP' ? true : false
|
|
|
|
+ },
|
|
|
|
+ isLimitNum() { // 是否限制排课
|
|
|
|
+ return this.vipGroup.minCourseNum > 0 ? true : false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
@@ -333,20 +363,31 @@ export default {
|
|
let res = await getActivityWaitCourseStudentNum({ activityId: this.activityId })
|
|
let res = await getActivityWaitCourseStudentNum({ activityId: this.activityId })
|
|
this.vipDetail = res.data
|
|
this.vipDetail = res.data
|
|
let vipGroup = res.data.vipGroupActivity
|
|
let vipGroup = res.data.vipGroupActivity
|
|
- vipGroup.coursesStartTime = dayjs(vipGroup.coursesStartTime).format('YYYY-MM-DD')
|
|
|
|
- vipGroup.coursesEndTime = dayjs(vipGroup.coursesEndTime).format('YYYY-MM-DD')
|
|
|
|
|
|
+ vipGroup.coursesStartTime = vipGroup.coursesStartTime ? dayjs(vipGroup.coursesStartTime).format('YYYY-MM-DD') : null
|
|
|
|
+ vipGroup.coursesEndTime = vipGroup.coursesEndTime ? dayjs(vipGroup.coursesEndTime).format('YYYY-MM-DD') : null
|
|
this.vipGroup = vipGroup
|
|
this.vipGroup = vipGroup
|
|
let form = this.form
|
|
let form = this.form
|
|
// 课程形式
|
|
// 课程形式
|
|
form.vipGroupCategoryId = this.typeStatus ? vipGroup.vipGroupCategoryIdList : vipGroup.giveCategoryId
|
|
form.vipGroupCategoryId = this.typeStatus ? vipGroup.vipGroupCategoryIdList : vipGroup.giveCategoryId
|
|
// 单课时长
|
|
// 单课时长
|
|
form.singleClassMinutes = this.typeStatus ? vipGroup.singleCourseTime : vipGroup.giveSingleCourseTime
|
|
form.singleClassMinutes = this.typeStatus ? vipGroup.singleCourseTime : vipGroup.giveSingleCourseTime
|
|
- // 排课次数,活动排课没有范围一说,最大次数和最小次数必须一致
|
|
|
|
- form.totalClassTime = this.typeStatus ? vipGroup.minCourseNum : vipGroup.giveCourseNum
|
|
|
|
- // 每班人数
|
|
|
|
- form.studentNum = this.typeStatus ? vipGroup.vipGroupCategoryNum : vipGroup.giveCategoryNum
|
|
|
|
- this.statusList.hasOnline = this.typeStatus ? this.formatStatus('online', vipGroup.teachMode) : this.formatStatus('online', vipGroup.giveTeachMode)
|
|
|
|
- this.statusList.hasOffline = this.typeStatus ? this.formatStatus('offline', vipGroup.teachMode) : this.formatStatus('online', vipGroup.giveTeachMode)
|
|
|
|
|
|
+
|
|
|
|
+ if(this.courseTypeIsVip) {
|
|
|
|
+ // 每班人数
|
|
|
|
+ form.studentNum = this.typeStatus ? vipGroup.vipGroupCategoryNum : vipGroup.giveCategoryNum
|
|
|
|
+ this.statusList.hasOnline = this.typeStatus ? this.formatStatus('online', vipGroup.teachMode) : this.formatStatus('online', vipGroup.giveTeachMode)
|
|
|
|
+ this.statusList.hasOffline = this.typeStatus ? this.formatStatus('offline', vipGroup.teachMode) : this.formatStatus('online', vipGroup.giveTeachMode)
|
|
|
|
+ } else {
|
|
|
|
+ form.totalClassTime = null
|
|
|
|
+ form.studentNum = 1
|
|
|
|
+ this.statusList.hasOnLine = false
|
|
|
|
+ this.statusList.hasOffLine = false
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(this.isLimitNum) { // 是否限制了排课
|
|
|
|
+ // 排课次数,活动排课没有范围一说,最大次数和最小次数必须一致
|
|
|
|
+ form.totalClassTime = this.typeStatus ? vipGroup.minCourseNum : vipGroup.giveCourseNum
|
|
|
|
+ }
|
|
|
|
|
|
// 如果
|
|
// 如果
|
|
if(this.teachMode == 0) {
|
|
if(this.teachMode == 0) {
|
|
@@ -516,22 +557,31 @@ export default {
|
|
form.studentIdList = this.checkboxSelectIds.join(",");
|
|
form.studentIdList = this.checkboxSelectIds.join(",");
|
|
|
|
|
|
form.firstStudentId = this.studentList.length > 0 ? this.studentList[0].userId : null;
|
|
form.firstStudentId = this.studentList.length > 0 ? this.studentList[0].userId : null;
|
|
|
|
+ form.onlineClassesNum = Number(form.onlineClassesNums);
|
|
|
|
+ form.offlineClassesNum = Number(form.offlineClassesNums);
|
|
let params = {
|
|
let params = {
|
|
- courseSchedules: this.timeTable,
|
|
|
|
- vipGroupApplyBaseInfo: form,
|
|
|
|
|
|
+ courseSchedules: this.timeTable
|
|
}
|
|
}
|
|
- console.log(params)
|
|
|
|
if(this.courseTypeIsVip) {
|
|
if(this.courseTypeIsVip) {
|
|
- params.giveFlag = false
|
|
|
|
|
|
+ params.vipGroupApplyBaseInfo = form
|
|
|
|
+ params.giveFlag = !this.typeStatus
|
|
await this.onPayVip(params)
|
|
await this.onPayVip(params)
|
|
} else {
|
|
} else {
|
|
- params.giveFlag = true
|
|
|
|
|
|
+ params.practiceGroupApplyBaseInfoDto = form
|
|
|
|
+ params.practiceGroupApplyBaseInfoDto.studentId = form.studentIdList
|
|
|
|
+ params.practiceGroupApplyBaseInfoDto.allCourseNum = form.totalClassTime
|
|
|
|
+ params.practiceGroupApplyBaseInfoDto.subjectId = form.subjectIdList
|
|
|
|
+ params.giveFlag = !this.typeStatus
|
|
await this.onPayPractice(params)
|
|
await this.onPayPractice(params)
|
|
}
|
|
}
|
|
},
|
|
},
|
|
async onPayVip(params) {
|
|
async onPayVip(params) {
|
|
try {
|
|
try {
|
|
await createVipGroup(params)
|
|
await createVipGroup(params)
|
|
|
|
+ this.$toast("排课成功");
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.$router.back()
|
|
|
|
+ }, 1000);
|
|
} catch {
|
|
} catch {
|
|
//
|
|
//
|
|
}
|
|
}
|
|
@@ -539,6 +589,10 @@ export default {
|
|
async onPayPractice(params) {
|
|
async onPayPractice(params) {
|
|
try {
|
|
try {
|
|
await createPracticeGroup(params)
|
|
await createPracticeGroup(params)
|
|
|
|
+ this.$toast("排课成功");
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.$router.back()
|
|
|
|
+ }, 1000);
|
|
} catch {
|
|
} catch {
|
|
//
|
|
//
|
|
}
|
|
}
|
|
@@ -547,6 +601,9 @@ export default {
|
|
// 选中的数据
|
|
// 选中的数据
|
|
const tempItems = items || []
|
|
const tempItems = items || []
|
|
this.studentList = tempItems
|
|
this.studentList = tempItems
|
|
|
|
+ if(tempItems.length <= 0) { // 判断是否有选择学员
|
|
|
|
+ this.checkboxSelectIds = []
|
|
|
|
+ }
|
|
tempItems.forEach(item => {
|
|
tempItems.forEach(item => {
|
|
this.checkboxSelectIds.push(item.userId)
|
|
this.checkboxSelectIds.push(item.userId)
|
|
})
|
|
})
|
|
@@ -633,6 +690,10 @@ export default {
|
|
let offline = parseInt(
|
|
let offline = parseInt(
|
|
form.offlineClassesNums ? form.offlineClassesNums : 0
|
|
form.offlineClassesNums ? form.offlineClassesNums : 0
|
|
);
|
|
);
|
|
|
|
+ // 网管课默认只有线上课次
|
|
|
|
+ if(!this.courseTypeIsVip) {
|
|
|
|
+ online = parseInt(form.totalClassTime || 0)
|
|
|
|
+ }
|
|
// 判断是否有课程安排
|
|
// 判断是否有课程安排
|
|
if (scheduleList.length <= 0) {
|
|
if (scheduleList.length <= 0) {
|
|
return;
|
|
return;
|
|
@@ -865,8 +926,9 @@ export default {
|
|
/deep/.van-field__label {
|
|
/deep/.van-field__label {
|
|
color: #1A1A1A;
|
|
color: #1A1A1A;
|
|
}
|
|
}
|
|
-/deep/.van-field__control {
|
|
|
|
|
|
+/deep/.van-field__control, .showText {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
|
+ color: #808080;
|
|
}
|
|
}
|
|
.addButton {
|
|
.addButton {
|
|
margin: .1rem .28rem;
|
|
margin: .1rem .28rem;
|