commit
This commit is contained in:
+8
-4
@@ -13,10 +13,7 @@ import io.v.nutz.sys.models.Sys_user;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.constant.TheRapyRecuperationSignUpMode;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationConfig;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLineUnionSelect;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.*;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.service.TheRapyRecuperationLineUnionSelectService;
|
||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -256,6 +253,13 @@ public class TheRapyRecuperationLineUnionSelectController {
|
||||
}
|
||||
}
|
||||
|
||||
@At
|
||||
@POST
|
||||
@RequiresPermissions(value = {"theRapyRecuperation.lineFghSelect", "theRapyRecuperation.lineXghSelect", "theRapyRecuperation.linePersonalSelect"}, logical = Logical.OR)
|
||||
public Object selectLineData(@Param("lineId") String lineId) {
|
||||
return Result.success(dao.fetch(TheRapyRecuperationLine.class, lineId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询某个分工会设置的线路时间信息
|
||||
*
|
||||
|
||||
+1
-1
@@ -219,7 +219,7 @@ public class TheRapyRecuperationEnroll extends BaseModel {
|
||||
private Boolean hasLocked;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.INT)
|
||||
@ColDefine(type = ColType.DOUBLE)
|
||||
@Comment("报酒店时选择的出行天数")
|
||||
private Double playDay;
|
||||
|
||||
|
||||
+2
-1
@@ -689,7 +689,8 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
|
||||
//如果是一个,再判断天数
|
||||
if(currentEnroll.getPlayDay() != null) {
|
||||
if((currentEnroll.getPlayDay() + lastEnroll.getPlayDay()) != 5) {
|
||||
return Map.of(false, "您选择的出行天数有误");
|
||||
Object dayCount = lastEnroll.getPlayDay() % 1 == 0 ? String.valueOf(lastEnroll.getPlayDay().intValue()) : lastEnroll.getPlayDay();
|
||||
return Map.of(false, "您选择的出行天数有误,上次出行天数为%s天".formatted(dayCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+24
-6
@@ -169,16 +169,34 @@ public class TheRapyRecuperationLineUnionSelectServiceImpl extends ViServiceImpl
|
||||
@Override
|
||||
public Object selectLineInfo(String lineId, String unionId, Integer mode, Integer year) {
|
||||
Sql sql;
|
||||
|
||||
sql = Sqls.create("""
|
||||
select
|
||||
*
|
||||
us.id,
|
||||
lineId,
|
||||
signUpStartTime,
|
||||
signUpEndTime,
|
||||
changeEndTime,
|
||||
playStartTime,
|
||||
playEndTime,
|
||||
us.contact,
|
||||
us.contactPhone,
|
||||
minimumGroupSize,
|
||||
trafficTools,
|
||||
estimatedCost,
|
||||
estimatedFamilyNumbers,
|
||||
us.travelAgencyId,
|
||||
signUpMode,
|
||||
enable,
|
||||
ta.travelAgencyName
|
||||
from
|
||||
the_rapy_recuperation_line_union_select
|
||||
the_rapy_recuperation_line_union_select us
|
||||
left join the_rapy_recuperation_travel_agency ta on ta.id = us.travelAgencyId
|
||||
where unionId = @unionId
|
||||
and lineId = @lineId
|
||||
and signUpMode = @mode
|
||||
and year(selectTime) = @year
|
||||
ORDER BY signUpStartTime ASC
|
||||
and lineId = @lineId
|
||||
and signUpMode = @mode
|
||||
and year(selectTime) = @year
|
||||
ORDER BY signUpStartTime,playStartTime ASC
|
||||
""");
|
||||
sql.setParam("unionId", unionId);
|
||||
sql.setParam("lineId", lineId);
|
||||
|
||||
+1
-1
@@ -522,7 +522,7 @@ layout("/layouts/platform.html"){
|
||||
{label: '年度', prop: 'year', sortable: true},
|
||||
{label: '目的地名称', prop: 'baseName', sortable: true},
|
||||
{label: '承担旅行社', prop: 'travelAgencyName', sortable: true},
|
||||
{label: '标段时间', prop: 'lotId', sortable: true},
|
||||
//{label: '标段时间', prop: 'lotId', sortable: true},
|
||||
{label: '联系人', prop: 'baseContactPerson', sortable: true},
|
||||
{label: '联系人电话', prop: 'baseContactNumber', sortable: true},
|
||||
{label: '活动时间', prop: 'activityTime', sortable: true},
|
||||
|
||||
@@ -258,6 +258,14 @@ layout("/layouts/platform.html"){
|
||||
readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" :xs="24">
|
||||
<el-form-item label="成团类型" prop="groupType">
|
||||
<el-select v-model="formData.groupType" style="width: 100%" @change="groupTypeChange" placeholder="请选择成团类型">
|
||||
<el-option label="常规团" :value="1"></el-option>
|
||||
<el-option label="精品团" :value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
@@ -299,16 +307,12 @@ layout("/layouts/platform.html"){
|
||||
<el-row :gutter="20">
|
||||
<el-col :md="12" :sm="24" :xs="24">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="最少参与教工" prop="minimumGroupSize">
|
||||
<el-input-number :max="1000"
|
||||
:min="config.groupNumber"
|
||||
:precision="0"
|
||||
style="width: 100%"
|
||||
v-model="formData.minimumGroupSize"></el-input-number>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="最少成团人数" prop="minimumGroupSize">
|
||||
<el-input v-model="formData.minimumGroupSize" placeholder="请选择成团类型" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<!--<el-col :span="12">
|
||||
<el-form-item label="成团人数包括家属" prop="estimatedFamilyNumbers">
|
||||
<el-input-number :max="1000"
|
||||
:min="1"
|
||||
@@ -316,18 +320,9 @@ layout("/layouts/platform.html"){
|
||||
style="width: 100%"
|
||||
v-model="formData.estimatedFamilyNumbers"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" :xs="24">
|
||||
<el-form-item label="预计费用(元/人次)" prop="estimatedCost">
|
||||
<el-input clearable maxlength="50" v-model="formData.estimatedCost"
|
||||
placeholder="请输入预计费用"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="时间标段" prop="lotId">
|
||||
<el-select clearable filterable style="width: 100%"
|
||||
@@ -341,6 +336,15 @@ layout("/layouts/platform.html"){
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :md="12" :sm="24" :xs="24">
|
||||
<el-form-item label="预计费用(元/人次)" prop="estimatedCost">
|
||||
<el-input clearable maxlength="50" v-model="formData.estimatedCost"
|
||||
placeholder="请输入预计费用"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" :xs="24">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
@@ -551,15 +555,11 @@ layout("/layouts/platform.html"){
|
||||
lineName: [{required: true, message: '请输入线路名称', trigger: ['change', 'blur']}],
|
||||
travelAgencyId: [{required: true, message: '请选择旅行社', trigger: ['change', 'blur']}],
|
||||
regionalNature: [{required: true, message: '请选择区域性质', trigger: ['change', 'blur']}],
|
||||
minimumGroupSize: [{required: true, message: '请输入最少参与教工', trigger: ['change', 'blur']}],
|
||||
minimumGroupSize: [{required: true, message: '请输入最少成团人数', trigger: ['change', 'blur']}],
|
||||
year: [{required: true, message: '请选择年度', trigger: ['change', 'blur']}],
|
||||
playNumberOfDays: [{required: true, message: '请输入游玩天数', trigger: ['change', 'blur']}],
|
||||
//content: [{required: true, message: '请输入线路内容', trigger: ['change', 'blur']}],
|
||||
signUpStartTime: [{
|
||||
required: true,
|
||||
message: '请选择报名开始时间',
|
||||
trigger: ['change', 'blur']
|
||||
}],
|
||||
signUpStartTime: [{required: true, message: '请选择报名开始时间', trigger: ['change', 'blur']}],
|
||||
signUpEndTime: [{required: true, validator: validateSignUpEndTime, trigger: ['change', 'blur']}],
|
||||
changeEndTime: [{required: true, validator: validateChangeEndTime, trigger: ['change', 'blur']}],
|
||||
//files: [{required: true, message: '请上传移动端缩略图', trigger: ['change', 'blur']}],
|
||||
@@ -569,15 +569,11 @@ layout("/layouts/platform.html"){
|
||||
playEndTime: [{required: true, validator: validatePlayEndTime, trigger: ['change', 'blur']}],
|
||||
trafficTools: [{required: false, message: '请输入交通工具', trigger: ['change', 'blur']}],
|
||||
estimatedCost: [{required: false, message: '请输入预计费用', trigger: ['change', 'blur']}],
|
||||
estimatedFamilyNumbers: [{
|
||||
required: false,
|
||||
message: '请输入成团人数包括家属',
|
||||
trigger: ['change', 'blur']
|
||||
}],
|
||||
estimatedFamilyNumbers: [{required: false, message: '请输入成团人数包括家属', trigger: ['change', 'blur']}],
|
||||
lotId: [{required: true, message: '请选择标段时间', trigger: ['change', 'blur']}],
|
||||
openChoose: [{required: true, message: '请选择开放选择', trigger: ['change', 'blur']}],
|
||||
travelAgencyPlace: [{required: true, message: '请选择开放选择', trigger: ['change', 'blur']}],
|
||||
|
||||
travelAgencyPlace: [{required: true, message: '请选择旅行社地点', trigger: ['change', 'blur']}],
|
||||
groupType: [{required: true, message: '请选择成团类型', trigger: ['change', 'blur']}],
|
||||
},
|
||||
viewData: {},
|
||||
regionalNatureList: [],
|
||||
@@ -591,7 +587,7 @@ layout("/layouts/platform.html"){
|
||||
travelAgencyId: null,
|
||||
travelAgencyPlace: null,
|
||||
regionalNature: null,
|
||||
minimumGroupSize: 1,
|
||||
minimumGroupSize: null,
|
||||
year: null,
|
||||
isDisabled: false,
|
||||
playNumberOfDays: 1,
|
||||
@@ -611,6 +607,7 @@ layout("/layouts/platform.html"){
|
||||
lineContact: null,
|
||||
lineContactPhone: null,
|
||||
openChoose: false,
|
||||
groupType: null,
|
||||
},
|
||||
pageForm: {
|
||||
keywords: null,
|
||||
@@ -635,6 +632,11 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
groupTypeChange(val) {
|
||||
if (this.config) {
|
||||
this.formData.minimumGroupSize = val === 1 ? this.config.conventionalCount : this.config.boutiqueCount
|
||||
}
|
||||
},
|
||||
isShow(roles) {
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionAdmin')}" === 'true') {
|
||||
return true
|
||||
@@ -664,9 +666,6 @@ layout("/layouts/platform.html"){
|
||||
if (createMode === 1) {
|
||||
this.formData.signUpMode = 1
|
||||
}
|
||||
if (this.config) {
|
||||
this.formData.minimumGroupSize = this.config.groupNumber
|
||||
}
|
||||
await this.getNumber()
|
||||
},
|
||||
async openEdit(id) {
|
||||
@@ -749,6 +748,7 @@ layout("/layouts/platform.html"){
|
||||
async initPageData() {
|
||||
this.regionalNatureList = await getEnumOptions('TheRapyRecuperationProvinceType')
|
||||
this.signUpModeList = await getEnumOptions('TheRapyRecuperationSignUpMode')
|
||||
this.signUpModeList = this.signUpModeList.filter(o => o.value !== 1)
|
||||
this.createModeList = await getEnumOptions('TheRapyRecuperationLineCreateMode')
|
||||
this.unionOptions = await getUnions(null)
|
||||
await this.getLotList()
|
||||
|
||||
+32
-13
@@ -270,7 +270,7 @@ layout("/layouts/platform.html"){
|
||||
<el-row class="playPeriod">
|
||||
|
||||
<el-descriptions border :column="3" class="playPeriodTable">
|
||||
<el-descriptions-item>
|
||||
<!--<el-descriptions-item>
|
||||
<template slot="label">
|
||||
<span class="text-danger">*</span>
|
||||
报名开始时间
|
||||
@@ -316,7 +316,7 @@ layout("/layouts/platform.html"){
|
||||
value-format="yyyy-MM-dd HH:mm:ss">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">
|
||||
@@ -327,6 +327,7 @@ layout("/layouts/platform.html"){
|
||||
:rules="{required:true,message:'出行开始时间',trigger:['change','blur']}"
|
||||
label-width="0">
|
||||
<el-date-picker style="width: 100%"
|
||||
placeholder="请选择出行开始时间"
|
||||
type="datetime"
|
||||
v-model="row.playStartTime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss">
|
||||
@@ -343,6 +344,7 @@ layout("/layouts/platform.html"){
|
||||
:rules="{required:true,message:'出行结束时间',trigger:['change','blur']}"
|
||||
label-width="0">
|
||||
<el-date-picker style="width: 100%"
|
||||
placeholder="请选择出行结束时间"
|
||||
type="datetime"
|
||||
v-model="row.playEndTime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss">
|
||||
@@ -376,15 +378,15 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="最少参与教工">
|
||||
<el-descriptions-item label="最少成团人数">
|
||||
<template slot="label">
|
||||
<span class="text-danger">*</span>
|
||||
最少参与教工
|
||||
最少成团人数
|
||||
</template>
|
||||
<el-form-item :prop="'times.' + $index + '.minimumGroupSize'"
|
||||
:rules="[
|
||||
{ required: true, message: '最少参与教工不能为空', trigger: 'blur' },
|
||||
{ pattern: /^[0-9]*$/, message: '最少参与教工格式不正确', trigger: 'blur' }
|
||||
{ required: true, message: '最少成团人数不能为空', trigger: 'blur' },
|
||||
{ pattern: /^[0-9]*$/, message: '最少成团人数格式不正确', trigger: 'blur' }
|
||||
]"
|
||||
label-width="0">
|
||||
<el-input clearable v-model="row.minimumGroupSize"></el-input>
|
||||
@@ -395,7 +397,7 @@ layout("/layouts/platform.html"){
|
||||
<el-form-item :prop="'times.' + $index + '.trafficTools'"
|
||||
:rules="{required:false,message:'交通工具',trigger:['change','blur']}"
|
||||
label-width="0">
|
||||
<el-input clearable v-model="row.trafficTools"></el-input>
|
||||
<el-input clearable v-model="row.trafficTools" placeholder="请输入交通工具"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
@@ -408,7 +410,7 @@ layout("/layouts/platform.html"){
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="成团人数包括家属">
|
||||
<!--<el-descriptions-item label="成团人数包括家属">
|
||||
<template slot="label">
|
||||
<span class="text-danger">*</span>
|
||||
成团人数包括家属
|
||||
@@ -421,7 +423,7 @@ layout("/layouts/platform.html"){
|
||||
label-width="0">
|
||||
<el-input clearable v-model="row.estimatedFamilyNumbers" placeholder="请输入成团人数包括家属"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item label="是否开启">
|
||||
<el-form-item :prop="'times.' + $index + '.enable'"
|
||||
@@ -469,7 +471,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div class="text-right">
|
||||
<el-button
|
||||
@click="formData.times.push({enable:true,minimumGroupSize:lineConfig.groupNumber,estimatedCost:lineConfig.cost})"
|
||||
@click="addRow"
|
||||
size="mini" type="primary">新增出行时间
|
||||
</el-button>
|
||||
</div>
|
||||
@@ -858,6 +860,7 @@ layout("/layouts/platform.html"){
|
||||
setGiveLineTimeDialog: false,
|
||||
|
||||
selectRow: {},
|
||||
lineData: {},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -869,6 +872,15 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
addRow() {
|
||||
this.formData.times.push({
|
||||
enable:true,
|
||||
minimumGroupSize: this.lineData.minimumGroupSize,
|
||||
estimatedCost: this.lineData.estimatedCost,
|
||||
contact: this.lineData.lineContact,
|
||||
contactPhone: this.lineData.lineContactPhone,
|
||||
})
|
||||
},
|
||||
queryJoinUser(val) {
|
||||
$.post('/platform/theRapyRecuperation/linePersonalSelect/queryJoinUser', {keyWord: val}).then(res => {
|
||||
if (res.code === 0) {
|
||||
@@ -950,8 +962,13 @@ layout("/layouts/platform.html"){
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
async getLineInfo(id) {
|
||||
const resp = await $.post(loc() + '/selectLineData', {lineId: id})
|
||||
this.lineData = resp.data
|
||||
},
|
||||
async openSetLineTime({id, lineName, usUnionId, signUpMode}) {
|
||||
await this.getLineConfig(id)
|
||||
await this.getLineInfo(id)
|
||||
const resp = await $.post(loc() + '/selectLineInfo', {
|
||||
lineId: id,
|
||||
unionId: usUnionId,
|
||||
@@ -970,9 +987,11 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, 'times', resp.data)
|
||||
}else{
|
||||
this.formData.times.push({
|
||||
enable:true,
|
||||
minimumGroupSize:this.lineConfig.groupNumber,
|
||||
estimatedCost:this.lineConfig.cost,
|
||||
enable: true,
|
||||
minimumGroupSize: this.lineData.minimumGroupSize,
|
||||
estimatedCost: this.lineData.estimatedCost,
|
||||
contact: this.lineData.lineContact,
|
||||
contactPhone: this.lineData.lineContactPhone,
|
||||
signScope: [],
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user