This commit is contained in:
server
2026-04-30 17:15:17 +08:00
parent 89a9ec271c
commit a44d24eab1
4 changed files with 112 additions and 75 deletions
@@ -210,8 +210,8 @@ public class ActivitySchool extends BaseModel implements Serializable, SysHomeCo
} else { } else {
sysHomeActivity.setH5Url(null); sysHomeActivity.setH5Url(null);
} }
sysHomeActivity.setStartDate(DateUtil.parseDate(this.getApplyStartTime())); sysHomeActivity.setStartDate(DateUtil.parse(this.getApplyStartTime(), "yyyy-MM-dd HH:mm"));
sysHomeActivity.setEndDate(DateUtil.parseDate(this.getApplyEndTime())); sysHomeActivity.setEndDate(DateUtil.parse(this.getApplyEndTime(), "yyyy-MM-dd HH:mm"));
sysHomeActivity.setAllowUserGroupId(this.getActivityGroupId()); sysHomeActivity.setAllowUserGroupId(this.getActivityGroupId());
sysHomeActivity.setEnable(true); sysHomeActivity.setEnable(true);
sysHomeActivity.setClassPath(this.getClass().getPackageName() + this.getClass().getName()); sysHomeActivity.setClassPath(this.getClass().getPackageName() + this.getClass().getName());
@@ -66,7 +66,6 @@
:required="column.isRequired" :required="column.isRequired"
@click="selectFieldClick(column)" @click="selectFieldClick(column)"
></van-field> ></van-field>
<van-popup <van-popup
v-if="['SELECT'].includes(column.columnFormType)" v-if="['SELECT'].includes(column.columnFormType)"
v-model="pickerStates[column.columnCode + 'Picker']" v-model="pickerStates[column.columnCode + 'Picker']"
@@ -75,6 +74,8 @@
> >
<template v-if="['DATETIME', 'DATE'].includes(column.columnType)"> <template v-if="['DATETIME', 'DATE'].includes(column.columnType)">
<van-datetime-picker <van-datetime-picker
v-model="column.currentDate"
:min-date="column.minDate"
:title="column.columnName" :title="column.columnName"
:type="column.columnType.toLocaleLowerCase()" :type="column.columnType.toLocaleLowerCase()"
show-toolbar show-toolbar
@@ -448,6 +449,10 @@ module.exports = {
if (!["DATE", "DATETIME"].includes(column.columnType)) { if (!["DATE", "DATETIME"].includes(column.columnType)) {
//说明是普通的下拉框 //说明是普通的下拉框
// column.selectValues = ['1', '2', '3'] // column.selectValues = ['1', '2', '3']
}else{
this.$set(column, "minDate", new Date(1900, 0, 1))
this.$set(column, "currentDate", new Date(column.columnValue))
} }
}, },
/** /**
@@ -121,7 +121,8 @@ layout("/layouts/platform.html"){
:class="'box-card '+(item.id===pageForm.activityId?'activeCard':'')" :class="'box-card '+(item.id===pageForm.activityId?'activeCard':'')"
style="border-radius: 10px" style="border-radius: 10px"
> >
<div slot="header" class="clearfix" style="width: 100%; word-break: break-all; white-space: pre-wrap"> <div slot="header" class="clearfix"
style="width: 100%; word-break: break-all; white-space: pre-wrap">
<div>{{item.activityName}}</div> <div>{{item.activityName}}</div>
<!--<el-button @click="openApply(item)" class="reserve_btn" type="text">请选择活动报名</el-button>--> <!--<el-button @click="openApply(item)" class="reserve_btn" type="text">请选择活动报名</el-button>-->
</div> </div>
@@ -197,7 +198,8 @@ layout("/layouts/platform.html"){
style="width: 100%; margin-bottom: 5px; margin-left: 10px" style="width: 100%; margin-bottom: 5px; margin-left: 10px"
@change="doSearch" @change="doSearch"
> >
<el-option v-for="item in courseTypeList" :key="item.id" :label="item.lxname" :value="item.id"></el-option> <el-option v-for="item in courseTypeList" :key="item.id" :label="item.lxname"
:value="item.id"></el-option>
</el-select> </el-select>
</div> </div>
</template> </template>
@@ -214,13 +216,16 @@ layout("/layouts/platform.html"){
show-overflow-tooltip show-overflow-tooltip
> >
<template v-slot="{row}" v-if="column.prop=='courseLocationCoordinates'"> <template v-slot="{row}" v-if="column.prop=='courseLocationCoordinates'">
<el-button style="padding: 0" @click="openViewMap(row.courseLocationCoordinates)" type="text"> <el-button style="padding: 0" @click="openViewMap(row.courseLocationCoordinates)"
type="text">
{{row.courseLocation}} {{row.courseLocation}}
</el-button> </el-button>
</template> </template>
<template v-slot="{row}" v-else-if="column.prop=='courseTime'"> <template v-slot="{row}" v-else-if="column.prop=='courseTime'">
<el-button style="padding: 0" @click="openViewCourseTime(row.id)" type="text">点击查看{{trainType}}时间</el-button> <el-button style="padding: 0" @click="openViewCourseTime(row.id)" type="text">
点击查看{{trainType}}时间
</el-button>
</template> </template>
<template v-slot="{row}" v-else-if="column.prop=='applyNum'"> <template v-slot="{row}" v-else-if="column.prop=='applyNum'">
@@ -230,8 +235,13 @@ layout("/layouts/platform.html"){
<el-table-column align="center" label="操作" width="150px"> <el-table-column align="center" label="操作" width="150px">
<template v-slot="scope"> <template v-slot="scope">
<el-button v-if="!scope.row.isSign" type="primary" size="mini" @click="doApply(scope.row)">我要报名</el-button> <span v-if="!trainSignUpActivity.signPointCount">
<el-button v-else type="danger" size="mini" @click="doCancel(scope.row)">取消报名</el-button> <el-button v-if="!scope.row.isSign" type="primary" size="mini"
@click="doApply(scope.row)">我要报名</el-button>
<el-button v-else type="danger" size="mini"
@click="doCancel(scope.row)">取消报名</el-button>
</span>
<span v-else>请扫码签到报名</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -290,7 +300,8 @@ layout("/layouts/platform.html"){
trigger: 'blur'}" trigger: 'blur'}"
> >
<!--文本框--> <!--文本框-->
<template v-if="!['SELECT'].includes(column.columnFormType) && ['VARCHAR','TEXT','INT'].includes(column.columnType)"> <template
v-if="!['SELECT'].includes(column.columnFormType) && ['VARCHAR','TEXT','INT'].includes(column.columnType)">
<el-input <el-input
v-model="column.columnValue" v-model="column.columnValue"
:placeholder="'请填写' + column.columnName" :placeholder="'请填写' + column.columnName"
@@ -298,9 +309,12 @@ layout("/layouts/platform.html"){
></el-input> ></el-input>
</template> </template>
<!--选择框--> <!--选择框-->
<template v-else-if="['SELECT'].includes(column.columnFormType) && ['VARCHAR','TEXT','INT'].includes(column.columnType)"> <template
<el-select v-model="column.columnValue" :placeholder="'请选择' + column.columnName" style="width: 100%"> v-else-if="['SELECT'].includes(column.columnFormType) && ['VARCHAR','TEXT','INT'].includes(column.columnType)">
<el-option v-for="item in column.selectValues" :key="item" :label="item" :value="item"></el-option> <el-select v-model="column.columnValue" :placeholder="'请选择' + column.columnName"
style="width: 100%">
<el-option v-for="item in column.selectValues" :key="item" :label="item"
:value="item"></el-option>
</el-select> </el-select>
</template> </template>
<!--时间框--> <!--时间框-->
@@ -315,7 +329,8 @@ layout("/layouts/platform.html"){
</template> </template>
<!--文件--> <!--文件-->
<template v-else-if="['JSON'].includes(column.columnType)"> <template v-else-if="['JSON'].includes(column.columnType)">
<file-upload :files.sync="column.columnValue" :max="column.fileNumber" :type="column.fileType"></file-upload> <file-upload :files.sync="column.columnValue" :max="column.fileNumber"
:type="column.fileType"></file-upload>
</template> </template>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -364,20 +379,20 @@ layout("/layouts/platform.html"){
courseTypeList: [], courseTypeList: [],
tableColumns: [ tableColumns: [
/* {prop: 'name', label: '活动名称'},*/ /* {prop: 'name', label: '活动名称'},*/
{ prop: "courseName", label: "名称" }, {prop: "courseName", label: "名称"},
{ prop: "lxname", label: "类型" }, {prop: "lxname", label: "类型"},
{ prop: "coursePeopleNumber", label: "总人数" }, {prop: "coursePeopleNumber", label: "总人数"},
{ prop: "courseLocationCoordinates", label: "地点" }, {prop: "courseLocationCoordinates", label: "地点"},
{ prop: "courseInstructor", label: "联系人" }, {prop: "courseInstructor", label: "联系人"},
{ prop: "courseTime", label: "时间" }, {prop: "courseTime", label: "时间"},
{ prop: "applyNum", label: "已报名人数" } {prop: "applyNum", label: "已报名人数"}
], ],
viewMapDialog: false, viewMapDialog: false,
courseTimeListDialog: false, courseTimeListDialog: false,
courseTimeList: [], courseTimeList: [],
formData: {}, formData: {},
formRules: { formRules: {
mobile: [{ required: true, message: "必填", trigger: ["blur", "change"] }] mobile: [{required: true, message: "必填", trigger: ["blur", "change"]}]
}, },
choose: {}, choose: {},
trainType: "培训班" trainType: "培训班"
@@ -479,7 +494,7 @@ layout("/layouts/platform.html"){
}) })
}, },
async getScopeUser(activityGroupId) { async getScopeUser(activityGroupId) {
const resp = await this.$axios.post("/platform/activity/basic/scope/getScopeUser", { activityGroupId: activityGroupId }) const resp = await this.$axios.post("/platform/activity/basic/scope/getScopeUser", {activityGroupId: activityGroupId})
return resp.data return resp.data
}, },
async doApply(row) { async doApply(row) {
@@ -516,9 +531,18 @@ layout("/layouts/platform.html"){
mobile: this.$store.state.user.mobile, mobile: this.$store.state.user.mobile,
trainMobileSignColumnList: o.trainMobileSignColumnList trainMobileSignColumnList: o.trainMobileSignColumnList
} }
this.formData.trainMobileSignColumnList.forEach((item) => { this.formData.trainMobileSignColumnList.map((item) => {
if (item.columnCode==="idCard" && this.$store.state.user.idCard) {
item.columnValue = this.$store.state.user.idCard
} else if (item.columnCode==="birthday" && this.$store.state.user.birthday) {
item.columnValue = this.$moment(this.$store.state.user.birthday).format("YYYY-MM-DD")
} else if (item.columnCode==="nation" && this.$store.state.user.nation) {
item.columnValue = this.$store.state.user.nation
} else {
item.columnValue = "" item.columnValue = ""
}
}) })
console.log(this.formData.trainMobileSignColumnList)
this.$refs.guava.edit() this.$refs.guava.edit()
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.form.clearValidate() this.$refs.form.clearValidate()
@@ -581,7 +605,7 @@ layout("/layouts/platform.html"){
} }
}, },
async openViewCourseTime(id) { async openViewCourseTime(id) {
const resp = await this.$axios.post(loc() + "/getCourseTime", { id: id }) const resp = await this.$axios.post(loc() + "/getCourseTime", {id: id})
this.courseTimeList = resp.data this.courseTimeList = resp.data
this.courseTimeListDialog = true this.courseTimeListDialog = true
} }
@@ -406,7 +406,7 @@ layout("/layouts/platform_h5.html"){
} }
}, },
components: { components: {
"train-dynamic-form": httpVueLoader("/components/module/trainSignUp/TrainDynamicForm.vue") "train-dynamic-form": httpVueLoader("/components/module/trainSignUp/TrainDynamicForm.vue?v=" + new Date().getTime())
}, },
methods: { methods: {
tabClick(name, title) { tabClick(name, title) {
@@ -602,8 +602,16 @@ layout("/layouts/platform_h5.html"){
const column = this.allColumnsData.find((x) => x.id === o.courseType) const column = this.allColumnsData.find((x) => x.id === o.courseType)
this.dynamicColumnsData = column ? column.trainMobileSignColumnList : [] this.dynamicColumnsData = column ? column.trainMobileSignColumnList : []
this.dynamicColumnsData.forEach((item) => { this.dynamicColumnsData.map((item) => {
if (item.columnCode==="idCard" && this.$store.state.user.idCard) {
item.columnValue = this.$store.state.user.idCard
} else if (item.columnCode==="birthday" && this.$store.state.user.birthday) {
item.columnValue = this.$moment(this.$store.state.user.birthday).format("YYYY-MM-DD")
} else if (item.columnCode==="nation" && this.$store.state.user.nation) {
item.columnValue = this.$store.state.user.nation
} else {
item.columnValue = "" item.columnValue = ""
}
}) })
this.joinPopup = true this.joinPopup = true
}) })