fix: 修复子活动人数不能为0情况
This commit is contained in:
+2
-1
@@ -25,4 +25,5 @@ target/
|
||||
hs_err_pid*
|
||||
|
||||
src/main/resources/application.yaml
|
||||
src/main/resources/application.yaml
|
||||
|
||||
.vscode
|
||||
+2
-2
@@ -325,7 +325,7 @@ public class TrainSignUpActivityServiceImpl extends BaseServiceImpl<TrainSignUpA
|
||||
TrainSignUpCourse course = dao().fetch(TrainSignUpCourse.class, trainSignUpUser.getCourseId());
|
||||
TrainSignUpType type = dao().fetch(TrainSignUpType.class, course.getCourseType());
|
||||
//如果这个课程的预留名额方式为报名人数不变
|
||||
if (course.getReserveMode() == 2) {
|
||||
if (course.getReserveMode() == 2 && course.getCoursePeopleNumber() > 0) {
|
||||
//如果当前报名+已报小于这个课程限制人数
|
||||
//课程已报人数
|
||||
int normalCount = statisticsService.queryCourseCount(course.getId(), course.getCourseType());
|
||||
@@ -424,7 +424,7 @@ public class TrainSignUpActivityServiceImpl extends BaseServiceImpl<TrainSignUpA
|
||||
//课程限制人数
|
||||
int coursePeopleNumber = course.getCoursePeopleNumber();
|
||||
if (coursePeopleNumber == 0) {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
//查询课程对应的类型
|
||||
TrainSignUpType type = dao().fetch(TrainSignUpType.class, course.getCourseType());
|
||||
|
||||
@@ -197,7 +197,7 @@ const courseList = {
|
||||
})
|
||||
} else {
|
||||
let lave = row.coursePeopleNumber - (row.hasRegisterNum + row.courseReservedNumber)
|
||||
if(row.reserveMode === 2 && lave <= 0) {
|
||||
if(row.coursePeopleNumber > 0 && row.reserveMode === 2 && lave <= 0) {
|
||||
this.$alert('您当前的报名为候补报名状态', "提示", {
|
||||
confirmButtonText: "确定",
|
||||
type: "warning"
|
||||
@@ -260,6 +260,9 @@ const courseList = {
|
||||
})
|
||||
},
|
||||
calcSignUpCount(o) {
|
||||
if(!o.coursePeopleNumber) {
|
||||
return "名额数不限制"
|
||||
}
|
||||
let lave = o.coursePeopleNumber - (o.hasRegisterNum + o.courseReservedNumber)
|
||||
if(o.reserveMode === 2) {
|
||||
let lave2 = o.waitingNum - o.hasWaitingNum
|
||||
|
||||
@@ -173,12 +173,14 @@ const basicForm = {
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="trainType + '名称'" prop="courseName">
|
||||
<template v-slot:header="{column}"><span style="color: #F56C6C; margin-right: 4px">*</span>{{ column.label }}</template>
|
||||
<template v-slot="{row}">
|
||||
<el-input size="small" v-model="row.courseName" :placeholder="'请输入' + trainType + '名称'"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="类型" prop="courseType" sortable>
|
||||
<template v-slot:header="{column}"><span style="color: #F56C6C; margin-right: 4px">*</span>{{ column.label }}</template>
|
||||
<template v-slot="{row}">
|
||||
<el-select size="small" v-model="row.courseType" @change="(val) => {courseTypeChange(val, row)}">
|
||||
<el-option :label="c.typeName" :value="c.id" :key="c.id" v-for="c in courseTypeList"></el-option>
|
||||
@@ -228,12 +230,14 @@ const basicForm = {
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="trainType + '地点'" prop="courseLocation">
|
||||
<template v-slot:header="{column}"><span style="color: #F56C6C; margin-right: 4px">*</span>{{ column.label }}</template>
|
||||
<template v-slot="{row}">
|
||||
<el-input size="small" v-model="row.courseLocation" :placeholder="'请输入' + trainType + '地点'"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="trainType + '负责人'" prop="courseInstructor">
|
||||
<template v-slot:header="{column}"><span style="color: #F56C6C; margin-right: 4px">*</span>{{ column.label }}</template>
|
||||
<template v-slot="{row}">
|
||||
<el-input size="small" v-model="row.courseInstructor" :placeholder="'请输入' + trainType + '负责人'"></el-input>
|
||||
</template>
|
||||
@@ -246,6 +250,7 @@ const basicForm = {
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="trainType + '时间'">
|
||||
<template v-slot:header="{column}"><span style="color: #F56C6C; margin-right: 4px">*</span>{{ column.label }}</template>
|
||||
<template v-slot="scope">
|
||||
<el-button @click="openSetUpCourseTime(scope.$index)" type="text">设置{{ trainType }}时间</el-button>
|
||||
</template>
|
||||
@@ -359,6 +364,7 @@ const basicForm = {
|
||||
},
|
||||
methods: {
|
||||
async validNumber(row, old) {
|
||||
if (!row.coursePeopleNumber) return
|
||||
if (GetQueryString("id") === "") {
|
||||
if (row.courseReservedNumber > row.coursePeopleNumber && row.reserveMode === 1) {
|
||||
this.$alert("预留人数不能大于" + this.trainType + "人数!", "提示", {
|
||||
@@ -505,20 +511,41 @@ const basicForm = {
|
||||
this.$refs["form"].validate(async (valid, errMsg) => {
|
||||
if (valid) {
|
||||
const courseValid = this.formData.courseList.some((v, i) => {
|
||||
const basicValid = v.courseName && v.coursePeopleNumber && v.courseLocation && v.courseInstructor && v.courseType
|
||||
const timeValid =
|
||||
v.courseTimeList.length > 0 &&
|
||||
v.courseTimeList.every((x) => {
|
||||
return x.courseStartTime && x.courseEndTime && x.courseStartTime < x.courseEndTime
|
||||
})
|
||||
if (!timeValid) {
|
||||
this.$message.warning("第" + (i + 1) + "行时间填写有误,请核查")
|
||||
const rowLabel = "第" + (i + 1) + "行"
|
||||
const missingFields = []
|
||||
if (!v.courseName) missingFields.push(this.trainType + "名称")
|
||||
if (!v.courseType) missingFields.push("类型")
|
||||
if (!v.courseLocation) missingFields.push(this.trainType + "地点")
|
||||
if (!v.courseInstructor) missingFields.push(this.trainType + "负责人")
|
||||
if (missingFields.length > 0) {
|
||||
this.$message.warning("请填写" + rowLabel + "的" + missingFields.join("、"))
|
||||
return true
|
||||
}
|
||||
if (!basicValid) {
|
||||
this.$message.warning("第" + (i + 1) + "行信息填写有误,请核查")
|
||||
const peopleNumber = Number(v.coursePeopleNumber == null ? 0 : v.coursePeopleNumber)
|
||||
if (!Number.isInteger(peopleNumber) || peopleNumber < 0) {
|
||||
this.$message.warning(rowLabel + this.trainType + "人数必须为非负整数,填0或留空表示不限制")
|
||||
return true
|
||||
}
|
||||
if (!v.courseTimeList || v.courseTimeList.length === 0) {
|
||||
this.$message.warning(rowLabel + "请设置" + this.trainType + "时间")
|
||||
return true
|
||||
}
|
||||
const timeInvalid = v.courseTimeList.some((x, timeIndex) => {
|
||||
const timeLabel = rowLabel + "第" + (timeIndex + 1) + "个时间段"
|
||||
const missingTimes = []
|
||||
if (!x.courseStartTime) missingTimes.push("开始时间")
|
||||
if (!x.courseEndTime) missingTimes.push("结束时间")
|
||||
if (missingTimes.length > 0) {
|
||||
this.$message.warning(timeLabel + "请填写:" + missingTimes.join("、"))
|
||||
return true
|
||||
}
|
||||
if (x.courseStartTime >= x.courseEndTime) {
|
||||
this.$message.warning(timeLabel + "结束时间必须晚于开始时间")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
})
|
||||
if (timeInvalid) return true
|
||||
if (v.isMobileSign === true && v.signType === 3 && (v.courseLocationCoordinates === undefined || v.courseLocationCoordinates.length < 2)) {
|
||||
this.$message.warning("第" + (i + 1) + "行地点坐标填写有误,请核查")
|
||||
return true
|
||||
@@ -549,6 +576,11 @@ const basicForm = {
|
||||
cloneData.year = new Date(cloneData.activitySignUpStartTime).getFullYear()
|
||||
}
|
||||
cloneData.typeLimits = JSON.stringify(this.formData.typeLimits)
|
||||
cloneData.courseList.forEach(v => {
|
||||
if (v.coursePeopleNumber == null || v.coursePeopleNumber === "") {
|
||||
v.coursePeopleNumber = 0
|
||||
}
|
||||
})
|
||||
cloneData.courseList = JSON.stringify(cloneData.courseList)
|
||||
cloneData.hostUnits = JSON.stringify(cloneData.hostUnits)
|
||||
cloneData.helpUnits = JSON.stringify(cloneData.helpUnits)
|
||||
|
||||
@@ -53,7 +53,7 @@ const userInfo = {
|
||||
<el-radio-group v-model="afterAdjustCourse">
|
||||
<el-radio
|
||||
@change.native="getCurrentRow(row)"
|
||||
:disabled="(row.courseReservedNumber + row.registerNum) >= row.coursePeopleNumber"
|
||||
:disabled="row.coursePeopleNumber > 0 && (row.courseReservedNumber + row.registerNum) >= row.coursePeopleNumber"
|
||||
:label="row.id"
|
||||
key="row.id"
|
||||
> </el-radio>
|
||||
@@ -68,6 +68,7 @@ const userInfo = {
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column label="最多报名人数" prop="coursePeopleNumber" align="center" header-align="center">
|
||||
<template v-slot="{row}">{{row.coursePeopleNumber === 0 ? '不限制' : row.coursePeopleNumber}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预留名额" prop="courseReservedNumber" align="center" header-align="center"></el-table-column>
|
||||
<el-table-column label="已报名人数" prop="registerNum" align="center" header-align="center"></el-table-column>
|
||||
|
||||
@@ -164,7 +164,7 @@ layout("/layouts/platform_h5.html"){
|
||||
})
|
||||
} else {
|
||||
let lave = row.coursePeopleNumber - (row.hasRegisterNum + row.courseReservedNumber)
|
||||
if(row.reserveMode === 2 && lave <= 0) {
|
||||
if(row.coursePeopleNumber > 0 && row.reserveMode === 2 && lave <= 0) {
|
||||
vant.Dialog.alert({
|
||||
title: '提示',
|
||||
message: '您当前的报名为候补报名状态',
|
||||
|
||||
Reference in New Issue
Block a user