This commit is contained in:
@jyuhsin
2025-05-30 16:13:21 +08:00
parent d828525b30
commit 1db8707d7f
12 changed files with 127 additions and 143 deletions
@@ -191,7 +191,8 @@ public class TheRapyRecuperationBaseManagerController {
@RequiresAuthentication
public Object selectBaseManageById(String id) {
Assert.notBlank(id);
return dao.fetchLinks(dao.fetch(TheRapyRecuperationBaseManagement.class, id), "travelAgency");
TheRapyRecuperationBaseManagement management = dao.fetch(TheRapyRecuperationBaseManagement.class, id);
return dao.fetchLinks(management, "travelAgency");
}
@@ -163,5 +163,10 @@ public class TheRapyRecuperationBaseManagement {
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("天数")
private List<Double> allowDay;
private List<String> allowDay;
@Column
@ColDefine(type = ColType.VARCHAR)
@Comment("旅行社地点")
private String travelAgencyPlace;
}
@@ -531,20 +531,21 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
//省内起始年份
Integer provinceStartYear = config.getProvinceStartYear();
//先判断有没有报过
Map<Boolean, String> thisYearCount = this.validCountThisYear(loginName, travelFrequency);
if (thisYearCount != null && thisYearCount.containsKey(false)) {
return thisYearCount;
}
//如果报酒店,酒店可以一年报2次
if (StrUtil.isNotBlank(enrollInfo.getTakePartInBaseManagementId()) && StrUtil.isBlank(enrollInfo.getId())) {
if (StrUtil.isNotBlank(enrollInfo.getTakePartInBaseManagementId())) {
travelFrequency = 2;
Map<Boolean, String> validResult = this.validBaseManagementCount(loginName, enrollInfo);
if(validResult != null && validResult.containsKey(false)) {
return validResult;
}
}
//先判断有没有报过
Map<Boolean, String> thisYearCount = this.validCountThisYear(loginName, travelFrequency);
if (thisYearCount != null && thisYearCount.containsKey(false) && StrUtil.isBlank(enrollInfo.getId())) {
return thisYearCount;
}
if (StrUtil.isNotBlank(enrollInfo.getTakePartInLineId())) {
//线路信息
TheRapyRecuperationLineUnionSelect lineUnionSelect = dao().fetch(TheRapyRecuperationLineUnionSelect.class, enrollInfo.getTakePartInLineId());
@@ -670,8 +671,9 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
.and("isNormal", "=", true)
.and("takePartInBaseManagementId", "is not", null)
.and("YEAR(signingUptime)", "=", DateUtil.thisYear())
.asc("signingUptime")
);
if(enrollList.size() >= 2) {
if(StrUtil.isBlank(currentEnroll.getId()) && enrollList.size() >= 2) {
return Map.of(false, "您已经报名了%s次分段疗休养".formatted(enrollList.size()));
}
//如果报过第一次就要判断
@@ -702,8 +704,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
Cnd cnd = Cnd.NEW();
cnd.and("loginName", "=", loginName);
cnd.and("isNormal", "=", true);
cnd.and("takePartInBaseManagementId", "is", null);
cnd.and("YEAR(signingUptime)", "=", DateUtil.thisYear());
cnd.and("YEAR(signingUptime)", "=", io.v.nutz.base.utils.DateUtil.getYear());
int joinCount = dao().count(TheRapyRecuperationEnroll.class, cnd);
if (joinCount >= travelFrequency) {
@@ -715,18 +716,23 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
int inCount = dao().count("the_rapy_recuperation_enroll", Cnd.where("loginName", "=", io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("loginname"))
.and("takePartInLineId", "in", unionInSelects.stream().map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList()))
.and("isNormal", "=", true)
.and("YEAR(signingUptime)", "=", DateUtil.thisYear()));
.and("YEAR(signingUptime)", "=", io.v.nutz.base.utils.DateUtil.getYear()));
//是否报省外
int outCount = dao().count("the_rapy_recuperation_enroll", Cnd.where("loginName", "=", io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("loginname"))
.and("takePartInLineId", "in", unionOutSelects.stream().map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList()))
.and("isNormal", "=", true)
.and("YEAR(signingUptime)", "=", DateUtil.thisYear()));
.and("YEAR(signingUptime)", "=", io.v.nutz.base.utils.DateUtil.getYear()));
//是否报旅行社
int travelCount = dao().count("the_rapy_recuperation_enroll", Cnd.where("loginName", "=", io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("loginname"))
.and(Cnd.exps("takePartInLineId", "is", null).or("takePartInLineId", "=", ""))
.and("isNormal", "=", true)
.and("takePartInTravelAgencyId", "is not", null)
.and("YEAR(signingUptime)", "=", DateUtil.thisYear()));
.and("YEAR(signingUptime)", "=", io.v.nutz.base.utils.DateUtil.getYear()));
//是否报酒店
int hotelCount = dao().count("the_rapy_recuperation_enroll", Cnd.where("loginName", "=", io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("loginname"))
.and("takePartInLineId", "is", null).and("isNormal", "=", true)
.and("takePartInBaseManagementId", "is not", null)
.and("YEAR(signingUptime)", "=", io.v.nutz.base.utils.DateUtil.getYear()));
String str = "";
if (inCount > 0) {
str = "省内线路";
@@ -734,6 +740,8 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
str = "省外线路";
} else if (travelCount > 0) {
str = "旅行社";
} else if (hotelCount > 0) {
str = "酒店";
}
return Map.of(false, "一年只能报" + travelFrequency + "次,您已报" + str + ",请先在我的疗休养中删除,方可报名!");
}
@@ -874,8 +882,6 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
@Aop(TransAop.READ_COMMITTED)
public void deleteMyEnrollInfoById(String id) {
TheRapyRecuperationEnroll enrollInfo = fetch(id);
TheRapyRecuperationLineUnionSelect lineUnionSelect = dao().fetch(TheRapyRecuperationLineUnionSelect.class, enrollInfo.getTakePartInLineId());
TheRapyRecuperationLine lineInfo = dao().fetch(TheRapyRecuperationLine.class, lineUnionSelect.getLineId());
dao().clearLinks(enrollInfo, "companionList|bedInfo");
delete(id);
dao().clear(TheRapyRecuperationEnrollChangeRecord.class, Cnd.where("enrollId", "=", id));
@@ -14,21 +14,8 @@
<!-- 校工会创建AND自由模式 OR 分工会创建 -->
<!-- <template v-if="(viewData.createMode === 2 && viewData.signUpMode === 2 ) || viewData.createMode === 1">-->
<!--<el-descriptions-item label="出行天数">{{ viewData.regionalNature=5?"五天四夜":"三天两夜" }}</el-descriptions-item>-->
<el-descriptions-item label="标段时间">
<div v-for="item in modifyBdList">
<span v-if="viewData.lotId===item.id">{{ item.lotName }}</span>
</div>
</el-descriptions-item>
<el-descriptions-item label="预计费用(元)">{{ viewData.estimatedCost }}</el-descriptions-item>
<el-descriptions-item label="酒店联系人">{{ viewData.baseContactPerson }}</el-descriptions-item>
<el-descriptions-item label="联系人电话">{{ viewData.baseContactNumber }}</el-descriptions-item>
<el-descriptions-item label="报名开始时间">{{ viewData.signUpStartTime }}</el-descriptions-item>
<el-descriptions-item label="报名结束时间">{{ viewData.signUpEndTime }}</el-descriptions-item>
<el-descriptions-item :span="2" label="变更截至时间">{{ viewData.changeEndTime }}</el-descriptions-item>
<el-descriptions-item label="活动开始时间">{{ viewData.activityStartTime }}</el-descriptions-item>
<el-descriptions-item label="活动结束时间">{{ viewData.activityEndTime }}</el-descriptions-item>
<!--</template>-->
@@ -95,7 +95,7 @@
url: url,
container: "#container",
maxCacheLength: 0,
push: true,
push: false,
replace: true,
fragment: "#container",
timeout: 8000,
@@ -45,10 +45,6 @@ layout("/mobile/platform.html"){
height: 30px;
}
.backTop {
display: none !important;
}
.footer {
background-color: white;
position: fixed;
@@ -247,7 +243,11 @@ layout("/mobile/platform.html"){
.pdf_div {
padding-bottom: 12px;
height: 800px;
height: calc(100vh - 46px - 60px - 151px - 50px);
overflow-y: auto;
}
.backTop {
display: none !important;
}
</style>
@@ -579,7 +579,8 @@ layout("/mobile/platform.html"){
methods: {
playDayConfirm(val) {
this.formData.playDay = val.value
this.lotValue = val.value === 2.5 ? 3 : val.value
this.lotValue = val.value == 2.5 ? 3 : val.value
this.formData.specificTime = ''
this.playDayVisible = false
},
specificTimeClick() {
@@ -592,7 +593,7 @@ layout("/mobile/platform.html"){
pageBack() {
window.removeEventListener('scroll', this.scrollToTop)
document.removeEventListener('click', this.handleClick)
if(['find', 'editDo'].includes(this.fromUrlByMy)) {
if(['find', 'edit'].includes(this.fromUrlByMy)) {
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation')
} else {
pjaxReplace('/platform/mobile/theRapyRecuperation/mobileLineListPage')
@@ -695,17 +696,16 @@ layout("/mobile/platform.html"){
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doSignUpForBaseManagement', {
enroll: JSON.stringify(cloneData),
})
toast.close()
if (resp.code === 0) {
setTimeout(() => {
toast.clear()
vant.Dialog.alert({
title: '温馨提示',
message: this.enrollId ? '修改成功,请务必联系并告知旅行社' : resp.msg,
}).then(() => {
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index)
message: resp.msg,
})
} else {
vant.Toast(resp.msg)
}
if (resp.code === 0) {
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index)
}
}, 1000)
},
addCompanion() {
this.formData.companionList.push({userName: '', loginName: '', sex: '', relation: '', bedInfo: {}})
@@ -963,7 +963,7 @@ layout("/mobile/platform.html"){
})
},
mounted() {
window.addEventListener('scroll', this.scrollToTop)
//window.addEventListener('scroll', this.scrollToTop)
},
destroyed() {
@@ -15,10 +15,6 @@ layout("/mobile/platform.html"){
display: block;
}
.backTop {
display: none !important;
}
.header {
padding: 20px;
}
@@ -30,7 +26,11 @@ layout("/mobile/platform.html"){
.pdf_div {
padding-bottom: 70px;
height: 800px;
height: calc(100vh - 46px - 60px - 151px - 170px);
overflow-y: auto;
}
.backTop {
display: none !important;
}
.title {
@@ -249,12 +249,16 @@ layout("/mobile/platform.html"){
{{lineData.lineName}}
</div>
<div style="margin-top: 10px">
<div v-if="lineData.regionalNature == '省内'">
<div>
<div>
<span class="line_label">成团人数包括家属</span>
<label v-if="lineData.estimatedFamilyNumbers">{{lineData.estimatedFamilyNumbers}}人</label>
<span class="line_label">最少成团人数:</span>
<label v-if="lineData.minimumGroupSize">{{lineData.minimumGroupSize}}人</label>
<label v-else>不限制</label>
</div>
<!--<div>
<span>当前报名:</span>
{{lineData.signUpUserNum}}
</div>-->
<div v-if="configData.familyInfo == 2">
<span>当前报名:</span>
{{lineData.signUpUserNum + lineData.signUpUserFamilyNum + '(家属' + lineData.signUpUserFamilyNum + '人)'}}
@@ -265,25 +269,10 @@ layout("/mobile/platform.html"){
</div>
</div>
<div v-else>
<div>
<span class="line_label">最多成团人数:</span>
<label>{{configData.outsideQuota}}人</label>
</div>
<div v-if="configData.familyInfo == 2">
<span>当前报名:</span>
{{lineData.signUpUserNum + '(家属' + lineData.signUpUserFamilyNum + '人)'}}
</div>
<div v-else>
<span>当前报名:</span>
{{lineData.signUpUserNum + '(家属' + lineData.familyNumber + '人)'}}
</div>
</div>
<div>
<span>报名时间:</span>
{{moment(lineData.signUpStartTime).format('YYYY-MM-DD HH:mm') + ' ~ ' +
moment(lineData.signUpEndTime).format('YYYY-MM-DD HH:mm')}}
{{moment(configData.implodeStartTime).format('YYYY-MM-DD HH:mm') + ' ~ ' +
moment(configData.implodeEndTime).format('YYYY-MM-DD HH:mm')}}
</div>
<div>
<span>出行时间:</span>
@@ -301,8 +290,6 @@ layout("/mobile/platform.html"){
</div>
</div>
<van-divider :style="{ color: 'orange', fontSize: '12px' }">上下滑动翻页,单击查看,再单击返回</van-divider>
<!--<div v-if="lineData.content" v-html="lineData.content" class="content"></div>
<div v-else v-html="configData.notice" class="content"></div>-->
<div v-if="isPdf" v-html="lineData.content" class="content"></div>
<div v-else id="demo" class="pdf_div"></div>
@@ -320,17 +307,17 @@ layout("/mobile/platform.html"){
<!--底部报名按钮-->
<div class="footer" v-if="fromUrlByMy != 'edit'">
<template v-if="lineData.isNormal==0&&lineData.isNormalFalse>0">
<template v-if="lineData.isNormal == 0 && lineData.isNormalFalse > 0">
<van-button @click="join" class="join">我要报名</van-button>
</template>
<template v-else>
<van-button v-if="moment().unix() <= moment(lineData.changeEndTime).unix()" @click="join"
<van-button v-if="moment().unix() >= moment(configData.implodeStartTime).unix() && moment().unix() <= moment(configData.implodeEndTime).unix()"
@click="join"
class="join">我要报名
</van-button>
<van-button v-if="moment().unix() > moment(lineData.changeEndTime).unix()" class="join">报名结束
<van-button v-if="moment().unix() > moment(configData.implodeEndTime).unix()" class="join">报名结束
</van-button>
</template>
</div>
</template>
@@ -360,7 +347,7 @@ layout("/mobile/platform.html"){
</div>
<!--床位信息-->
<div v-if="configData.bedInfo === true" class="van-doc-card" style="margin-bottom: 16px">
<!--<div v-if="configData.bedInfo === true" class="van-doc-card" style="margin-bottom: 16px">
<div></div>
<div class="van-card-header">
床位信息
@@ -389,10 +376,10 @@ layout("/mobile/platform.html"){
v-model="formData.bedInfo.otherSleepUser"
:rules="[{ required: true }]"></van-field>
</div>
</div>
</div>-->
<!--随行人信息-->
<div class="van-doc-card" style="margin-bottom: 16px">
<!--<div class="van-doc-card" style="margin-bottom: 16px">
<div></div>
<div class="van-card-header"
style="display: flex; justify-content: space-between; align-items: center">
@@ -411,7 +398,7 @@ layout("/mobile/platform.html"){
<van-field label="姓名" name="userName" placeholder="请填写姓名"
v-model="item.userName"
:rules="[{ required: true }]"></van-field>
<!--<van-field label="一卡通号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>-->
&lt;!&ndash;<van-field label="一卡通号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>&ndash;&gt;
<van-field label="年龄" name="age" placeholder="请填写年龄" v-model="item.age"
type="digit" :rules="[{ required: true }]"></van-field>
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别"
@@ -472,7 +459,7 @@ layout("/mobile/platform.html"){
<van-field label="家属数量" name="familyNumber" placeholder="请填写家属数量" v-model="formData.familyNumber"
type="digit" :rules="[{ required: true }]"></van-field>
</template>
</div>
</div>-->
<div class="sign_div" v-if="formData.companionList.length > 0">
<div style="display: flex">
@@ -591,9 +578,8 @@ layout("/mobile/platform.html"){
},
methods: {
pageBack() {
window.removeEventListener('scroll', this.scrollToTop)
document.removeEventListener('click', this.handleClick)
if(['find', 'editDo'].includes(this.fromUrlByMy)) {
if(['find', 'edit'].includes(this.fromUrlByMy)) {
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation')
} else {
pjaxReplace('/platform/mobile/theRapyRecuperation/mobileLineListPage')
@@ -677,16 +663,11 @@ layout("/mobile/platform.html"){
enroll: JSON.stringify(cloneData),
})
setTimeout(() => {
if (resp.code === 0) {
toast.message = '提交成功'
toast.type = 'success'
} else {
toast.message = resp.msg
toast.type = 'fail'
}
setTimeout(() => {
toast.clear()
}, 500)
toast.clear()
vant.Dialog.alert({
title: '温馨提示',
message: resp.msg,
})
if (resp.code === 0) {
pjaxReplace('/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index)
}
@@ -866,10 +847,10 @@ layout("/mobile/platform.html"){
}
},
mounted() {
window.addEventListener('scroll', this.scrollToTop)
//window.addEventListener('scroll', this.scrollToTop)
},
destroyed() {
//window.removeEventListener('scroll', this.scrollToTop)
},
})
</script>
@@ -108,7 +108,8 @@ layout("/mobile/platform.html"){
}
.van-list {
padding-bottom: 10px;
height: calc(100vh - 43px - 116px - 20px);
overflow-y: auto;
}
.van-row {
@@ -172,14 +173,14 @@ layout("/mobile/platform.html"){
@click="pageForm.lineUnionType = 3; getData()">
校工会组织
</van-button>
<van-button :class="pageForm.lineUnionType == 1 ? 'active' : 'no_active'"
<!--<van-button :class="pageForm.lineUnionType == 1 ? 'active' : 'no_active'"
@click="pageForm.lineUnionType = 1; getData()">
本分工会
</van-button>
<van-button :class="pageForm.lineUnionType == 2 ? 'active' : 'no_active'"
@click="otherUnionClick">
其他分工会
</van-button>
</van-button>-->
<van-button :class="pageForm.lineUnionType == 4 ? 'active' : 'no_active'"
@click="pageForm.lineUnionType = 4; getData()">
个人组织
@@ -332,14 +332,18 @@ layout("/mobile/platform.html"){
<div class="mobile">
<span>联系方式:</span>{{o.contactMobileNumber}}
</div>
<div class="mobile" v-if="![2715,2725,2735].includes(o.stateId)">
<span v-if="configData.familyInfo === 1">随行家属:</span
>{{o.companionUserNames ? o.companionUserNames : '无'}}
<span v-else>随行家属:</span>{{o.familyNumber}}人
<!--<div class="mobile" v-if="![2715,2725,2735].includes(o.stateId)">
<span v-if="configData.familyInfo === 1">随行家属:</span>
{{o.companionUserNames ? o.companionUserNames : '无'}}
<span v-else>随行家属:</span>
{{o.familyNumber}}人
</div>
<div class="mobile" v-else>
<span>审核状态:</span
><span :style="'color: ' + o.stateColor">{{o.stateName}}</span>
<span>审核状态:</span>
<span :style="'color: ' + o.stateColor">{{o.stateName}}</span>
</div>-->
<div class="mobile">
<span>&ensp;&ensp;社:</span>{{o.travelAgencyName}}
</div>
</div>
</div>
@@ -360,8 +364,8 @@ layout("/mobile/platform.html"){
<span>邮箱:</span>{{o.email}}
</div>-->
<div class="union" style="margin-top: 0">
<span>官网:</span
><span
<span>官网:</span
><span
style="color: #0e5996"
@click.stop="window.open(o.officialWebsite.indexOf('http') !== -1 ? o.officialWebsite : 'https://' + o.officialWebsite)"
>{{o.officialWebsite}}</span
@@ -109,7 +109,7 @@ layout("/mobile/platform.html"){
<div id="app" v-cloak>
<van-sticky>
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder
<van-nav-bar @click-left="pjaxReplace('/platform/mobile/theRapyRecuperation/mobileLineListPage')" fixed left-arrow placeholder
title="报名人员"></van-nav-bar>
</van-sticky>
@@ -158,7 +158,8 @@ layout("/layouts/platform.html"){
</el-col>
<el-col :md="12" :sm="24" :xs="24">
<el-form-item label="旅行社名称" prop="travelAgencyId">
<el-select clearable filterable style="width: 100%" v-model="formData.travelAgencyId" placeholder="请选择旅行社名称">
<el-select clearable filterable style="width: 100%" @change="$set(formData,'travelAgencyPlace','')"
v-model="formData.travelAgencyId" placeholder="请选择旅行社名称">
<el-option :key="item.id"
:label="item.travelAgencyName+'('+ item.year +'年)'"
:value="item.id"
@@ -169,20 +170,16 @@ layout("/layouts/platform.html"){
</el-col>
</el-row>
<el-row :gutter="20">
<!--<el-col :md="12" :sm="24" :xs="24">
<el-form-item label="组织形式" prop="createMode">
<el-radio-group size="small" v-model="formData.createMode">
<el-radio :label="1" border>校工会组织</el-radio>
<el-radio :label="2" border>分工会组织</el-radio>
</el-radio-group>
</el-form-item>
</el-col>-->
<el-col :md="12" :sm="24" :xs="24">
<el-form-item label="活动范围" prop="regionalNature">
<el-radio-group size="small" v-model="formData.regionalNature">
<el-radio label="省内" border>省内</el-radio>
<el-radio label="省外" border>省外</el-radio>
</el-radio-group>
<el-form-item label="旅行社地点" prop="travelAgencyPlace">
<el-select clearable filterable style="width: 100%" v-model="formData.travelAgencyPlace"
placeholder="请选择旅行社地点">
<el-option :key="index"
:label="item"
:value="item"
v-for="(item,index) in (travelAgencyList?.find(v => v.id === formData.travelAgencyId) ?? {}).travelAgencyPlaces"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" :xs="24">
@@ -196,9 +193,9 @@ layout("/layouts/platform.html"){
></el-option>
</el-select>-->
<el-select clearable multiple filterable style="width: 100%" v-model="formData.allowDay" placeholder="请选择天数">
<el-option value="3">3天</el-option>
<el-option value="2">2天</el-option>
<el-option value="2.5">2.5天</el-option>
<el-option label="3天" value="3"></el-option>
<el-option label="2天" value="2"></el-option>
<el-option label="2.5天" value="2.5"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -219,7 +216,15 @@ layout("/layouts/platform.html"){
</el-row>
<el-row :gutter="20">
<el-col :md="12" :sm="24" :xs="24">
<el-col :md="6" :sm="24" :xs="24">
<el-form-item label="活动范围" prop="regionalNature">
<el-radio-group size="small" v-model="formData.regionalNature">
<el-radio label="省内" border>省内</el-radio>
<el-radio label="省外" border>省外</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="6" :sm="24" :xs="24">
<el-form-item label="周几入住" prop="weekIn">
<el-radio-group size="small" v-model="formData.weekIn" @input="weekChange">
<el-radio :label="1" border>不限</el-radio>
@@ -525,7 +530,7 @@ layout("/layouts/platform.html"){
//{label: '标段时间', prop: 'lotId', sortable: true},
{label: '联系人', prop: 'baseContactPerson', sortable: true},
{label: '联系人电话', prop: 'baseContactNumber', sortable: true},
{label: '活动时间', prop: 'activityTime', sortable: true},
//{label: '活动时间', prop: 'activityTime', sortable: true},
//{label: '创建工会', prop: 'createUnionName', sortable: true},
{label: '活动范围', prop: 'regionalNature', sortable: true},
//{label: '组织形式', prop: 'signUpMode', sortable: true},
@@ -547,18 +552,11 @@ layout("/layouts/platform.html"){
files: [{required: true, message: '请上传图片', trigger: ['change', 'blur']}],
createMode: [{required: true, message: '请选择组织方式', trigger: ['change', 'blur']}],
weekIn: [{required: true, message: '请选择组织方式', trigger: ['change', 'blur']}],
activityStartTime: [{
required: true,
validator: validateActivityStartTime,
trigger: ['change', 'blur']
}],
activityEndTime: [{
required: true,
validator: validateActivityEndTime,
trigger: ['change', 'blur']
}],
activityStartTime: [{required: true, validator: validateActivityStartTime, trigger: ['change', 'blur']}],
activityEndTime: [{required: true, validator: validateActivityEndTime, trigger: ['change', 'blur']}],
estimatedCost: [{required: true, message: '请输入预计费用', trigger: ['change', 'blur']}],
allowDay: [{required: true, message: '请选择天数', trigger: ['change', 'blur']}],
travelAgencyPlace: [{required: true, message: '请选择旅行社地点', trigger: ['change', 'blur']}],
},
//目的地导入
importVisible: false,
@@ -650,6 +648,7 @@ layout("/layouts/platform.html"){
background: 'rgba(0, 0, 0, 0.7)'
});
this.formData.weekCheckIn = JSON.stringify(this.formData.weekCheckIn)
this.formData.allowDay = JSON.stringify(this.formData.allowDay)
const resp = await $.post(loc() + '/doSubmit', this.formData)
loading.close()
if (resp.code === 0) {
@@ -475,11 +475,11 @@ layout("/layouts/platform.html"){
size="mini" type="primary">新增出行时间
</el-button>
</div>
<el-alert closable show-icon style="margin:10px 0"
<!--<el-alert closable show-icon style="margin:10px 0"
title="温馨提醒:变更时间应该大于报名截至时间,小于出行时间。"
type="warning"></el-alert>
type="warning"></el-alert>-->
</el-form>
<el-row justify="end" type="flex">
<el-row justify="end" type="flex" class="mt20">
<el-button @click="setLineTimeDialog=false">取消</el-button>
<el-button @click="doSelect" type="primary">提交</el-button>
</el-row>
@@ -981,8 +981,8 @@ layout("/layouts/platform.html"){
}
if(resp.data && resp.data.length > 0){
resp.data.forEach(item => {
item.chooseUserList = JSON.parse(item.chooseUserList)
item.signScope = JSON.parse(item.signScope)
item.chooseUserList = JSON.parse(item.chooseUserList || '[]')
item.signScope = JSON.parse(item.signScope || '[]')
})
this.$set(this.formData, 'times', resp.data)
}else{