This commit is contained in:
@jyuhsin
2025-06-03 11:47:23 +08:00
parent 19982cb0cf
commit 5a15b9dd71
8 changed files with 42 additions and 21 deletions
@@ -120,9 +120,9 @@ public class TheRapyRecuperationLine extends BaseModel {
private Integer estimatedFamilyNumbers; private Integer estimatedFamilyNumbers;
@Column @Column
@ColDefine(type = ColType.MYSQL_JSON) @ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("缩略图") @Comment("缩略图")
private List<Sys_file> files; private String files;
@Column @Column
@ColDefine(type = ColType.INT) @ColDefine(type = ColType.INT)
@@ -75,9 +75,9 @@ public class TheRapyRecuperationTravelAgency extends BaseModel {
private boolean isDisabled; private boolean isDisabled;
@Column @Column
@ColDefine(type = ColType.MYSQL_JSON) @ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("缩略图") @Comment("缩略图")
private List<Sys_file> files; private String files;
@Column @Column
@ColDefine(type = ColType.MYSQL_JSON) @ColDefine(type = ColType.MYSQL_JSON)
@@ -637,6 +637,23 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
if (Lang.isNotEmpty(threeYearOutMapList)) { if (Lang.isNotEmpty(threeYearOutMapList)) {
return Map.of(false, "近三年内您已参加过省外线路,不能再次报名"); return Map.of(false, "近三年内您已参加过省外线路,不能再次报名");
} }
//获取今年的所有线路
List<TheRapyRecuperationLine> lineList = dao().query(TheRapyRecuperationLine.class, Cnd.where("year", "=", DateUtil.thisYear())
.and("isDisabled", "=", false));
List<String> lineIds = lineList.stream().map(TheRapyRecuperationLine::getId).collect(Collectors.toList());
//获取这些线路在选择表中的选择id,因为报名表存的是选择id
List<TheRapyRecuperationLineUnionSelect> selectList = dao().query(TheRapyRecuperationLineUnionSelect.class, Cnd.where("lineId", "in", lineIds));
List<String> selectIds = selectList.stream().map(TheRapyRecuperationLineUnionSelect::getId).collect(Collectors.toList());
//获取这些省外线路的总报名人数
List<TheRapyRecuperationEnroll> enrollList = dao().query(TheRapyRecuperationEnroll.class, Cnd.where("takePartInLineId", "in", selectIds)
.and("isNormal", "=", true).and("signingUptime", "=", DateUtil.thisYear())
.and("stateId", "not in", Lang.array(TheRapyRecuperationState.UNITFAIL, TheRapyRecuperationState.LINEUNITFAIL, TheRapyRecuperationState.SCHOOLFAIL)));
//活动范围总人数
List<ActivityUserScope> userScopes = dao().query(ActivityUserScope.class, Cnd.where("groupId", "=", config.getActivityGroupId()));
int result = (int) Math.floor((double) userScopes.size() / 3);
if (enrollList.size() >= result) {
return Map.of(false, "已报人数超过三分之一,不能报名");
}
} }
} }
} }
@@ -839,17 +839,20 @@ layout("/mobile/platform.html"){
pdfh5 = new Pdfh5('#demo', { pdfh5 = new Pdfh5('#demo', {
pdfurl: href, pdfurl: href,
}) })
this.readPDFPicture(pdfh5)
}) })
}catch (e) { }catch (e) {
this.isPdf = true this.isPdf = true
//document.addEventListener('click', (event) => this.handleClick(event, [], [])) //document.addEventListener('click', (event) => this.handleClick(event, [], []))
} }
this.$nextTick(() => {
this.readPDFPicture(pdfh5)
})
}, },
mounted() { mounted() {
//window.addEventListener('scroll', this.scrollToTop) //window.addEventListener('scroll', this.scrollToTop)
}, },
destroyed() { beforeDestroy() {
//window.removeEventListener('scroll', this.scrollToTop) //window.removeEventListener('scroll', this.scrollToTop)
}, },
}) })
@@ -522,6 +522,7 @@ layout("/layouts/platform.html"){
baseContactNumber: '', baseContactNumber: '',
weekIn: 1, weekIn: 1,
allowDay: [], allowDay: [],
travelAgencyPlace: '',
}, },
tableColumns: [ tableColumns: [
{label: '年度', prop: 'year', sortable: true}, {label: '年度', prop: 'year', sortable: true},
@@ -261,7 +261,7 @@ layout("/layouts/platform.html"){
<el-col :md="12" :sm="24" :xs="24"> <el-col :md="12" :sm="24" :xs="24">
<el-form-item label="成团类型" prop="groupType"> <el-form-item label="成团类型" prop="groupType">
<el-select v-model="formData.groupType" style="width: 100%" @change="groupTypeChange" placeholder="请选择成团类型"> <el-select v-model="formData.groupType" style="width: 100%" @change="groupTypeChange" placeholder="请选择成团类型">
<el-option label="常规团" :value="1"></el-option> <el-option v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" label="常规团" :value="1"></el-option>
<el-option label="精品团" :value="2"></el-option> <el-option label="精品团" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -390,11 +390,11 @@ layout("/layouts/platform.html"){
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :md="24" :sm="24" :xs="24"> <el-col :md="24" :sm="24" :xs="24">
<el-form-item label="移动端缩略图" prop="files"> <el-form-item label="移动端缩略图" prop="files">
<file-upload :files.sync="formData.files" <image-Upload ref="imageUpload" :height="100"
picture_card :width="100" :limit="1"
:max="1" :file-type="['png','jpg']"
:type="['jpg', 'jpeg', 'png']" :file-size="10"
></file-upload> v-model="formData.files"></image-Upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -595,7 +595,7 @@ layout("/layouts/platform.html"){
signUpStartTime: null, signUpStartTime: null,
signUpEndTime: null, signUpEndTime: null,
changeEndTime: null, changeEndTime: null,
files: [], files: null,
signUpMode: null, signUpMode: null,
createMode: null, createMode: null,
playStartTime: null, playStartTime: null,
@@ -190,11 +190,11 @@ layout("/layouts/platform.html"){
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :md="24" :sm="24" :xs="24"> <el-col :md="24" :sm="24" :xs="24">
<el-form-item label="移动端缩略图" prop="files"> <el-form-item label="移动端缩略图" prop="files">
<file-upload :files.sync="formData.files" <image-Upload ref="imageUpload" :height="100"
picture_card :width="100" :limit="1"
:max="1" :file-type="['png','jpg']"
:type="['jpg', 'jpeg', 'png']" :file-size="10"
></file-upload> v-model="formData.files"></image-Upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -359,7 +359,7 @@ layout("/layouts/platform.html"){
<el-form-item :prop="'times.' + $index + '.contact'" <el-form-item :prop="'times.' + $index + '.contact'"
:rules="{required:true,message:'联系人',trigger:['change','blur']}" :rules="{required:true,message:'联系人',trigger:['change','blur']}"
label-width="0"> label-width="0">
<el-input clearable maxlength="10" v-model="row.contact"></el-input> <el-input placeholder="请输入联系人" clearable maxlength="10" v-model="row.contact"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@@ -374,7 +374,7 @@ layout("/layouts/platform.html"){
{ pattern: /^1[34578]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' } { pattern: /^1[34578]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
]" ]"
label-width="0"> label-width="0">
<el-input clearable maxlength="11" v-model="row.contactPhone"></el-input> <el-input placeholder="请输入联系方式" clearable maxlength="11" v-model="row.contactPhone"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@@ -405,7 +405,7 @@ layout("/layouts/platform.html"){
<el-form-item :prop="'times.' + $index + '.estimatedCost'" <el-form-item :prop="'times.' + $index + '.estimatedCost'"
:rules="{required:true,message:'预计费用',trigger:['change','blur']}" :rules="{required:true,message:'预计费用',trigger:['change','blur']}"
label-width="0"> label-width="0">
<el-input clearable v-model="row.estimatedCost"></el-input> <el-input placeholder="请输入预计费用" clearable v-model="row.estimatedCost"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>