diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitCompetitionStudentInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitCompetitionStudentInfo.java index 35f76d9..857c309 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitCompetitionStudentInfo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitCompetitionStudentInfo.java @@ -94,10 +94,6 @@ public class HitCompetitionStudentInfo implements Serializable { @Excel(name = "个人选拔赛分数",type = IMPORT) @ApiModelProperty(value = "个人选拔赛分数") private BigDecimal trialsScore; - - @Excel(name = "赛道",readConverterExp = "1=常规赛道,2=产业赛道,3=国际赛道") - private Integer racetrack; - // @Excel(name = "是否被选为参加地区选拔赛人员", readConverterExp = "false=待审核,true=已入选",type = EXPORT) @ApiModelProperty(value = "是否被选为参加初赛人员 (0: 否, 1: 是)") private Boolean isPreliminary; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitRegInfo.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitRegInfo.java index 80f1f01..b5ec383 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitRegInfo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/HitRegInfo.java @@ -3,6 +3,7 @@ package com.ruoyi.cms.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.HitRegistrationTeachInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -72,6 +73,9 @@ public class HitRegInfo extends BaseEntity //团队分 private BigDecimal score; + @Excel(name = "赛道",readConverterExp = "1=本科生赛道,2=产业赛道,3=国际赛道") + private String racetrack; + /** 逻辑删除0未删除1真删除 */ private Long delFlag; @TableField(exist = false) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/Preliminary.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/Preliminary.java index 8704281..d176b68 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/Preliminary.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/domain/Preliminary.java @@ -56,6 +56,8 @@ public class Preliminary { @Excel(name = "附件") private String uploadFile; + private String racetrack; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitRegInfoServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitRegInfoServiceImpl.java index c183093..7f7990e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitRegInfoServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitRegInfoServiceImpl.java @@ -473,6 +473,10 @@ public class HitRegInfoServiceImpl implements IHitRegInfoService { throw new RuntimeException("请输入正确的手机号"); } } + // 判断赛事中不包括1 就设置地址为空 + if (!hitRegInfo.getCompetition().contains("1")) { + hitRegInfo.setSampleAddress(""); + } hitRegInfo.setCreateTime(null); hitRegInfo.setAuditStatus(null); hitRegInfo.setCreateTime(new Date()); @@ -513,9 +517,9 @@ public class HitRegInfoServiceImpl implements IHitRegInfoService { Map mobileToUserIdMap = hitCompetitionStudentInfos.stream() .collect(Collectors.toMap( HitCompetitionStudentInfo::getPhoneNumber, - HitCompetitionStudentInfo::getUserId + HitCompetitionStudentInfo::getUserId, + (oldValue, newValue) -> newValue // 遇到重复时保留新值 )); - // 根据手机号将userId赋值给hitList hitList.forEach(hit -> { Long userId = mobileToUserIdMap.get(hit.getMobile()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitTeamsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitTeamsServiceImpl.java index 010fa6e..0ac5408 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitTeamsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/cms/service/impl/HitTeamsServiceImpl.java @@ -95,6 +95,7 @@ public class HitTeamsServiceImpl extends ServiceImpl i HitCompetitionStudentInfo hitStu = hitCompetitionStudentInfoMapper.selectOne(queryWrapper); HitRegInfo hitRegInfo = new HitRegInfo(); hitRegInfo.setSchoolName(preliminary.getSchoolName()); + hitRegInfo.setRacetrack(preliminary.getRacetrack()); hitRegInfo.setCollegeName(hitStu.getCollegeName()); hitRegInfo.setDivision(preliminary.getDivision()); hitRegInfo.setTeamName(preliminary.getTeamName()); diff --git a/ruoyi-admin/src/main/resources/mapper/cms/HitCompetitionStudentInfoMapper.xml b/ruoyi-admin/src/main/resources/mapper/cms/HitCompetitionStudentInfoMapper.xml index 5536397..e783a20 100644 --- a/ruoyi-admin/src/main/resources/mapper/cms/HitCompetitionStudentInfoMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/cms/HitCompetitionStudentInfoMapper.xml @@ -34,13 +34,7 @@ @@ -41,6 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and upload_file = #{uploadFile} and create_time LIKE concat('%', date_format(#{createTime}, '%Y'), '%') and create_time LIKE concat(#{year}, '%') + + and FIND_IN_SET(#{racetrack}, racetrack) + order by audit_status asc,create_time desc diff --git a/ruoyi-ui/src/views/hit/registrationStudentInfo/index.vue b/ruoyi-ui/src/views/hit/registrationStudentInfo/index.vue index f2c874b..4282628 100644 --- a/ruoyi-ui/src/views/hit/registrationStudentInfo/index.vue +++ b/ruoyi-ui/src/views/hit/registrationStudentInfo/index.vue @@ -29,6 +29,16 @@ > + + + + + + @@ -140,6 +150,7 @@ + @@ -151,9 +162,9 @@ - + @@ -231,8 +242,36 @@ - - + + + + + + + + + + + + + {{ item.label }} + + + + + + 化验赛 + 虚拟赛 + @@ -253,7 +292,7 @@ - + @@ -314,15 +353,15 @@ import { getTeachInfoByIds, adminUpdateTeamInformation } from '@/api/hit/registrationStudentInfo' -import { selectBaseInfo, editStatus } from '@/api/cms/baseInfo' -import { getHitRegistrationTeachInfoByUserId, selectByUserId } from '@/api/hit/teacherInfo' -import { editRegUser } from '@/api/officialWebsite/registerStudent' -import { mapState } from 'vuex' -import { getToken } from '@/utils/auth' +import {selectBaseInfo, editStatus} from '@/api/cms/baseInfo' +import {getHitRegistrationTeachInfoByUserId, selectByUserId} from '@/api/hit/teacherInfo' +import {editRegUser} from '@/api/officialWebsite/registerStudent' +import {mapState} from 'vuex' +import {getToken} from '@/utils/auth' export default { name: 'HitRegistrationStudentInfo', - dicts: ['sys_user_sex', 'competition_type'], + dicts: ['sys_user_sex', 'competition_type', 'com_racetrack','com_region'], data() { return { yearList: [], @@ -348,6 +387,8 @@ export default { total: 0, // 报名信息表格数据 HitRegistrationStudentInfoList: [], + showCompetition: false, + competitionChecked: false, // 弹出层标题 title: '', // 是否显示弹出层 @@ -357,7 +398,10 @@ export default { registrationInformation: {}, // 修改对话框是否显示 editDialogVisible: false, - currentRow: {}, + currentRow: { + racetrackArr: [], + competitionArr: [], + }, upload: { // 是否显示弹出层(用户导入) open: false, @@ -368,11 +412,11 @@ export default { // 是否更新已经存在的用户数据 updateSupport: 0, // 设置上传的请求头部 - headers: { Authorization: 'Bearer ' + getToken() }, + headers: {Authorization: 'Bearer ' + getToken()}, // 上传的地址 url: process.env.VUE_APP_BASE_API + '/system/hit_reg_info/importData' }, - importType:"student", + importType: "student", // 查询参数 queryParams: { @@ -394,31 +438,32 @@ export default { }, // 表单参数 form: {}, + checked: false, // 表单校验 rules: { competitionId: [ - { required: true, message: '大赛ID不能为空', trigger: 'blur' } + {required: true, message: '大赛ID不能为空', trigger: 'blur'} ], stuName: [ - { required: true, message: '学生姓名不能为空', trigger: 'blur' } + {required: true, message: '学生姓名不能为空', trigger: 'blur'} ], stuGender: [ - { required: true, message: '学生性别不能为空', trigger: 'blur' } + {required: true, message: '学生性别不能为空', trigger: 'blur'} ], stuMajor: [ - { required: true, message: '学生专业不能为空', trigger: 'blur' } + {required: true, message: '学生专业不能为空', trigger: 'blur'} ], stuNumber: [ - { required: true, message: '学生手机号不能为空', trigger: 'blur' } + {required: true, message: '学生手机号不能为空', trigger: 'blur'} ], schoolName: [ - { required: true, message: '学校及院系名称不能为空', trigger: 'blur' } + {required: true, message: '学校及院系名称不能为空', trigger: 'blur'} ], division: [ - { required: true, message: '所属赛区不能为空', trigger: 'blur' } + {required: true, message: '所属赛区不能为空', trigger: 'blur'} ], delFlag: [ - { required: true, message: '逻辑删除0未删除1真删除不能为空', trigger: 'blur' } + {required: true, message: '逻辑删除0未删除1真删除不能为空', trigger: 'blur'} ] } } @@ -447,6 +492,20 @@ export default { this.loading = false } console.log('报名信息', this.HitRegistrationStudentInfoList) + this.HitRegistrationStudentInfoList.map(row => { + const values = Array.isArray(row.racetrack) + ? row.racetrack + : String(row.racetrack || '').split(','); + + row.racetrackLabel = values + .map(val => { + const match = this.dict.type.com_racetrack.find(item => item.value === val); + return match ? match.label : val; + }) + .join(','); + + return row; + }); //for循环this.HitRegistrationStudentInfoList if (this.HitRegistrationStudentInfoList.length != 0) { for (let i = 0; i < this.HitRegistrationStudentInfoList.length; i++) { @@ -486,6 +545,27 @@ export default { this.loading = false }) }, + changeUpdateTeamRacetrack() { + //将数组转换为字符串 + this.currentRow.racetrack = this.arrayToString(this.currentRow.racetrackArr) + console.log('字符串', this.currentRow.racetrack) + console.log('数组', this.currentRow.racetrackArr) + // 判断赛道中是否包含1 + if (this.currentRow.racetrackArr.includes('1')) { + this.showCompetition = true + } else { + this.showCompetition = false + this.currentRow.competition = '' + this.currentRow.competitionArr = [] + } + console.log('competitionArr', this.currentRow.competitionArr) + }, + changeCompetition() { + //将数组转换为字符串 + this.currentRow.competition = this.arrayToString(this.currentRow.competitionArr) + console.log('字符串', this.currentRow.competition) + console.log('数组', this.currentRow.competitionArr) + }, /** 导入按钮操作 */ handleImport(e) { this.upload.title = '用户导入' @@ -541,7 +621,7 @@ export default { this.upload.open = false this.upload.isUploading = false this.$refs.upload.clearFiles() - this.$alert('
' + response.msg + '
', '导入结果', { dangerouslyUseHTMLString: true }) + this.$alert('
' + response.msg + '
', '导入结果', {dangerouslyUseHTMLString: true}) this.getList() }, //将数组转为字符串 @@ -606,6 +686,7 @@ export default { resetQuery() { this.resetForm('queryForm') this.queryParams.createTime = null + this.queryParams.racetrack = null this.handleQuery() }, // 多选框选中数据 @@ -661,7 +742,7 @@ export default { /** 删除按钮操作 */ handleDelete(row) { const ids = row.id || this.ids - this.$modal.confirm('是否确认删除报名信息编号为"' + ids + '"的数据项?').then(function() { + this.$modal.confirm('是否确认删除报名信息编号为"' + ids + '"的数据项?').then(function () { return delHitRegistrationStudentInfo(ids) }).then(() => { this.getList() @@ -708,8 +789,28 @@ export default { return years.sort((a, b) => b.label - a.label) }, editData(row) { - this.currentRow = { ...row } + this.currentRow = {...row} this.editDialogVisible = true + if (this.currentRow) { + //将字符串转为数组 + if (this.currentRow.competition){ + + this.currentRow.competitionArr = this.currentRow.competition.split(',') + }else { + this.currentRow.competitionArr = [] + } + console.log('这是数组', this.currentRow.competitionArr) + if (this.currentRow.racetrack) { + this.currentRow.racetrackArr = this.currentRow.racetrack.split(',') + if (this.currentRow.racetrackArr.includes('1')) { + this.showCompetition = true + } else { + this.showCompetition = false + this.currentRow.competitionArr = [] + this.currentRow.competition = '' + } + } + } }, saveData() { console.log('保存数据', this.currentRow) diff --git a/ruoyi-ui/src/views/hit/stuInfo/index.vue b/ruoyi-ui/src/views/hit/stuInfo/index.vue index a6be4f2..81892f1 100644 --- a/ruoyi-ui/src/views/hit/stuInfo/index.vue +++ b/ruoyi-ui/src/views/hit/stuInfo/index.vue @@ -30,16 +30,16 @@ - - - - - - + + + + + + + + + + 搜索 重置 @@ -80,8 +80,6 @@ - - @@ -89,7 +87,13 @@ - + + + + + + +