diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsInfoManageController.java b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsInfoManageController.java index 0892ef8c..98b6c9dc 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsInfoManageController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsInfoManageController.java @@ -27,6 +27,7 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * @ClassName ActivitySportsInfoManageController @@ -151,12 +152,37 @@ public class ActivitySportsInfoManageController { @SLog(tag = "体育活动", msg = "修改活动") @SaCheckPermission("activity.sports.info") public Result doEdit(@Param(value = "data") ActivitySchool activitySchool, - @Param(value = "events") ActivitySchoolEvent[] events) { - activitySportsService.doEdit(activitySchool, events); + @Param(value = "events") ActivitySchoolEvent[] events, + @Param(value = "forceReduceTeam") boolean forceReduceTeam) { + // 编辑活动减少队伍时,先把即将删除且已有报名人员的队伍返回给前端二次确认;确认后由 service 继续保存。 + List teamApplyList = activitySportsService.checkTeamReduceApply(activitySchool.getId(), events); + if (!forceReduceTeam && teamApplyList.size() > 0) { + return Result.NEW().addCode(2).addMsg(buildTeamReduceMsg(teamApplyList)).addData(teamApplyList); + } + activitySportsService.doEdit(activitySchool, events, forceReduceTeam); return Result.success(); } + private String buildTeamReduceMsg(List teamApplyList) { + // 返回给前端确认框的报名占用说明:包含项目名称、队伍名称、报名人数,便于用户判断是否强制删除。 + StringBuilder msg = new StringBuilder(); + for (NutMap teamApply : teamApplyList) { + if (msg.length() > 0) { + msg.append(";"); + } + msg.append("项目【") + .append(teamApply.getString("eventName")) + .append("】的【") + .append(teamApply.getString("teamName")) + .append("】已有") + .append(teamApply.getInt("applyNum")) + .append("名报名人员"); + } + msg.append(",确认删除这些队伍并保存吗?"); + return msg.toString(); + } + @At @SLog(tag = "体育活动", msg = "添加活动") diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java index 91d193a4..0f823734 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java @@ -5,28 +5,21 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; -import com.budwk.app.base.utils.DateUtil; -import com.budwk.app.base.utils.PwdUtil; -import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnion; import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnit; import com.budwk.app.zhgh.activity.sports.models.ActivityResults; import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolApply; +import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent; import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.random.R; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import org.nutz.trans.Trans; -import java.util.Arrays; /** * @author zhf @@ -53,11 +46,12 @@ public class ActivitySportsResultsController { @At @SaCheckPermission("activity.results.input") - public Result pageData(String groupName, - PageForm page, + public Result pageData(PageForm page, String activityId, String eventId, - String[] isMenWomen) { + Integer isMenWomen, + String projectType, + String competitionCategory) { Cnd cnd = Cnd.NEW(); Sql sql = Sqls.create(""" SELECT @@ -77,24 +71,10 @@ public class ActivitySportsResultsController { $condition """); cnd.and("ase.activityId", "=", activityId); - cnd.andEX("abs.`name`", "=", groupName); cnd.andEX("ae.`id`", "=", eventId); - SqlExpressionGroup sqlExpressionGroup = new SqlExpressionGroup(); - if (Arrays.stream(isMenWomen).anyMatch(a -> a.equals("2"))) { - sqlExpressionGroup.and("ae.isMenWomen", "=", 1); - } - if (Arrays.stream(isMenWomen).anyMatch(a -> a.equals("3"))) { - sqlExpressionGroup.or("ae.isMenWomen", "=", 2); - } - if (Arrays.stream(isMenWomen).anyMatch(a -> a.equals("4"))) { - sqlExpressionGroup.and("ae.projectType", "=", 1); - } - if (Arrays.stream(isMenWomen).anyMatch(a -> a.equals("5"))) { - sqlExpressionGroup.or("ae.projectType", "=", 2); - } - if (sqlExpressionGroup.getExps().size() > 0) { - cnd.and(sqlExpressionGroup); - } + cnd.andEX("ae.isMenWomen", "=", isMenWomen); + cnd.andEX("ae.projectType", "=", projectType); + cnd.andEX("ae.competitionCategory", "=", competitionCategory); cnd.desc("allName"); sql.setCondition(cnd); return Result.success(baseService.listPageMap(page.getPageNumber(), page.getPageSize(), sql)); @@ -114,53 +94,7 @@ public class ActivitySportsResultsController { @At @SaCheckPermission("activity.results.input") public Result doAddUser(ActivitySchoolApply activitySchoolApply) { - - - Sys_user sysUser = baseService.dao().fetch(Sys_user.class, Cnd.where("loginname", "=", activitySchoolApply.getLoginname())); - - - if (sysUser != null && sysUser.getLoginname().equals(activitySchoolApply.getLoginname()) && !sysUser.getUsername().equals(activitySchoolApply.getUsername())) { - return Result.error("工号已存在,请检查姓名和工号是否一致!"); - } - if (sysUser == null) { - Trans.exec(() -> { - String pwd = "@dd3s#3618!"; - String salt = R.UU32(); - Sys_user user = new Sys_user(); - user.setId(R.UU32()); - user.setSalt(R.UU32()); - user.setPassword(PwdUtil.getPassword(pwd, salt)); - user.setUsername(activitySchoolApply.getUsername()); - user.setLoginname(activitySchoolApply.getLoginname()); - user.setSex(activitySchoolApply.getSex()); - user.setUnitId(activitySchoolApply.getUnitId()); - user.setMobile(activitySchoolApply.getMobile()); - baseService.insert(user); - ActivityBasicUnit activityBasicUnit = activitySchoolApplyViService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", user.getUnitId())); - ActivityBasicUnion basicUnion = activitySchoolApplyViService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", activityBasicUnit.getUnionId())); - - activitySchoolApply.setUserId(user.getId()); - activitySchoolApply.setApplyDate(DateUtil.getDate()); - activitySchoolApply.setSex(user.getSex()); - activitySchoolApply.setUnitId(user.getUnitId()); - activitySchoolApply.setActivityUnionId(basicUnion.getId()); - activitySchoolApply.setActivityUnionName(basicUnion.getName()); - activitySchoolApplyViService.insert(activitySchoolApply); - }); - return null; - } - sysUser.setSex(activitySchoolApply.getSex()); - baseService.update(sysUser); - ActivityBasicUnit activityBasicUnit = activitySchoolApplyViService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", sysUser.getUnitId())); - ActivityBasicUnion basicUnion = activitySchoolApplyViService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", activityBasicUnit.getUnionId())); - activitySchoolApply.setUserId(sysUser.getId()); - activitySchoolApply.setApplyUser(SecurityUtil.getUserId()); - activitySchoolApply.setApplyDate(DateUtil.getDate()); - activitySchoolApply.setUnitId(sysUser.getUnitId()); - activitySchoolApply.setActivityUnionId(basicUnion.getId()); - activitySchoolApply.setActivityUnionName(basicUnion.getName()); - activitySchoolApplyViService.insert(activitySchoolApply); - + activitySchoolApplyViService.doAddTemporaryApplyUser(activitySchoolApply); return Result.success(); } @@ -201,8 +135,10 @@ public class ActivitySportsResultsController { @At @SaCheckPermission("activity.results.input") public Result getUnionDetails(String activityId, String eventId, String unionId) { - int count = activitySchoolApplyViService.count(Cnd.where("activityId", "=", activityId).and("eventId", "=", eventId).and("unionId", "=", unionId)); - return Result.success(count); + // 团体成绩录入的人数按活动项目配置的“每队(项)运动员人数”展示,不再按该分工会实际报名人数统计。 + ActivitySchoolEvent schoolEvent = activitySchoolApplyViService.dao().fetch(ActivitySchoolEvent.class, + Cnd.where("activityId", "=", activityId).and("eventId", "=", eventId)); + return Result.success(schoolEvent == null || schoolEvent.getAthletesMaxNum() == null ? 0 : schoolEvent.getAthletesMaxNum()); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchool.java b/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchool.java index e576d77b..b5b4d84a 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchool.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchool.java @@ -188,6 +188,11 @@ public class ActivitySchool extends BaseModel implements Serializable , SysHomeC @ColDefine(type = ColType.VARCHAR, width = 32) private String belongClubId; + @Column + @Comment("报多队工会") + @ColDefine(type = ColType.MYSQL_JSON) + private List moreTeamUnionIds; + @Column @Comment("创建时间") @ColDefine(type = ColType.VARCHAR, width = 30) diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/service/ActivitySportsApplyUserService.java b/src/main/java/com/budwk/app/zhgh/activity/sports/service/ActivitySportsApplyUserService.java index 694d2e1a..e5c865cf 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/service/ActivitySportsApplyUserService.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/service/ActivitySportsApplyUserService.java @@ -23,6 +23,8 @@ public interface ActivitySportsApplyUserService extends BaseService { String doAdd(ActivitySchool activitySchool, ActivitySchoolEvent[] events); - void doEdit(ActivitySchool activitySchool, ActivitySchoolEvent[] events); + void doEdit(ActivitySchool activitySchool, ActivitySchoolEvent[] events, boolean forceReduceTeam); + + List checkTeamReduceApply(String activityId, ActivitySchoolEvent[] events); void doDelete(String id); diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java index 748018ff..64120a58 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java @@ -6,6 +6,7 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.base.utils.PwdUtil; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; @@ -30,6 +31,7 @@ import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; import org.nutz.lang.Strings; +import org.nutz.lang.random.R; import org.nutz.lang.util.NutMap; import java.util.ArrayList; @@ -365,9 +367,10 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl events = getEvents(applyUserPageParam.getActivityId()); @@ -377,12 +380,80 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl teams = getApplyTeamList(activityId, eventId, false); + return teams.size() > 0 ? teams.get(0) : null; + } + @Override public Pagination applyPageData(PageForm page, String activityId, String eventId, String unionId) { Cnd cnd = Cnd.NEW(); diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java index fa8161a6..73710e0e 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java @@ -9,6 +9,7 @@ import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.base.utils.DateUtil; import com.budwk.app.sys.models.Sys_home_activity; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.activity.basic.models.ActivityEvent; import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnit; import com.budwk.app.zhgh.activity.culture.models.ActivityTissue; import com.budwk.app.zhgh.activity.sports.models.ActivitySchool; @@ -28,6 +29,7 @@ import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; import org.nutz.lang.Strings; +import org.nutz.lang.util.NutMap; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; @@ -96,7 +98,11 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl i @Override @Aop(TransAop.READ_COMMITTED) - public void doEdit(ActivitySchool activitySchool, ActivitySchoolEvent[] events) { + public void doEdit(ActivitySchool activitySchool, ActivitySchoolEvent[] events, boolean forceReduceTeam) { + // 防止绕过 controller 直接调用编辑逻辑时误删已有报名人员使用的队伍,未确认时直接中断本次保存。 + if (!forceReduceTeam && checkTeamReduceApply(activitySchool.getId(), events).size() > 0) { + throw Lang.makeThrow("减少队伍时存在已报名人员,请确认后再保存"); + } ActivitySchool school = dao().fetch(ActivitySchool.class, activitySchool.getId()); if (school.getActivityLevel() == 40002) { school.setBelongUnionId(SecurityUtil.getUnionId()); @@ -126,6 +132,7 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl i } for (ActivitySchoolEvent event : events) { update(event); + syncTeam(activitySchool.getId(), event); } dao().delete(ActivityTissue.class, activitySchool.getId()); ActivityTissue activityTissue = new ActivityTissue(); @@ -157,6 +164,85 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl i dao().insertOrUpdate(sysHomeActivity); } + @Override + public List checkTeamReduceApply(String activityId, ActivitySchoolEvent[] events) { + // 检查“最多创建几队”减少后将被删除的队伍,返回仍有报名人员占用的队伍清单给前端确认。 + List result = new ArrayList<>(); + if (Strings.isBlank(activityId) || events == null || events.length == 0) { + return result; + } + for (ActivitySchoolEvent event : events) { + if (event == null || Strings.isBlank(event.getEventId()) || "allItems".equals(event.getEventId()) || event.getRestrictTotalTeam() == null) { + continue; + } + List reduceTeams = getReduceTeams(activityId, event); + if (reduceTeams.size() == 0) { + continue; + } + ActivityEvent activityEvent = dao().fetch(ActivityEvent.class, event.getEventId()); + for (ActivitySchoolTeam team : reduceTeams) { + int applyNum = dao().count(ActivitySchoolApply.class, Cnd.where("activityId", "=", activityId) + .and("eventId", "=", event.getEventId()) + .and("teamId", "=", team.getId())); + if (applyNum > 0) { + result.add(NutMap.NEW() + .setv("eventId", event.getEventId()) + .setv("eventName", activityEvent == null ? "" : activityEvent.getAllName()) + .setv("teamId", team.getId()) + .setv("teamName", team.getName()) + .setv("applyNum", applyNum)); + } + } + } + return result; + } + + private List getReduceTeams(String activityId, ActivitySchoolEvent event) { + // 按队伍位置保留前 N 队,超过目标队伍数的部分就是本次减少队伍时需要删除的队伍。 + List teams = dao().query(ActivitySchoolTeam.class, Cnd.where("activityId", "=", activityId) + .and("eventId", "=", event.getEventId()) + .asc("location")); + int targetTotalTeam = event.getRestrictTotalTeam() == null ? 0 : Math.max(event.getRestrictTotalTeam(), 0); + List reduceTeams = new ArrayList<>(); + for (int i = targetTotalTeam; i < teams.size(); i++) { + reduceTeams.add(teams.get(i)); + } + return reduceTeams; + } + + private void syncTeam(String schoolId, ActivitySchoolEvent event) { + // 保存项目时同步 activity_school_team:增加队伍只补插缺少的队伍,减少队伍只删除超过目标数量的后续队伍。 + if (event == null || Strings.isBlank(event.getEventId()) || "allItems".equals(event.getEventId()) || event.getRestrictTotalTeam() == null) { + return; + } + List teams = dao().query(ActivitySchoolTeam.class, Cnd.where("activityId", "=", schoolId) + .and("eventId", "=", event.getEventId()) + .asc("location")); + int currentTotalTeam = teams.size(); + int targetTotalTeam = Math.max(event.getRestrictTotalTeam(), 0); + for (int i = 0; i < teams.size(); i++) { + ActivitySchoolTeam team = teams.get(i); + team.setMinNum(event.getRestrictMinNum()); + team.setMaxNum(event.getRestrictMaxNum()); + dao().updateIgnoreNull(team); + } + if (targetTotalTeam > currentTotalTeam) { + for (int i = currentTotalTeam + 1; i <= targetTotalTeam; i++) { + ActivitySchoolTeam team = new ActivitySchoolTeam(); + team.setActivityId(schoolId); + team.setEventId(event.getEventId()); + team.setName(String.format("第%d队", i)); + team.setMinNum(event.getRestrictMinNum()); + team.setMaxNum(event.getRestrictMaxNum()); + dao().insert(team); + } + } else if (targetTotalTeam < currentTotalTeam) { + for (int i = targetTotalTeam; i < teams.size(); i++) { + dao().delete(ActivitySchoolTeam.class, teams.get(i).getId()); + } + } + } + @Aop(TransAop.READ_COMMITTED) private void addTeam(String schoolId, ActivitySchoolEvent[] events) { if (events.length > 0) { diff --git a/src/main/resources/views/platform/zhgh/activity/sports/ActivityResults/index.html b/src/main/resources/views/platform/zhgh/activity/sports/ActivityResults/index.html index b521ef98..25c50b8e 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/ActivityResults/index.html +++ b/src/main/resources/views/platform/zhgh/activity/sports/ActivityResults/index.html @@ -38,7 +38,7 @@ layout("/layouts/platform.html"){
活动项目
+ style="width: 100%" @change="doSearch">
+
+
男子女子
+
+ + + + +
+
+ +
+
项目类型
+
+ + + + +
+
+ +
+
比赛组别
+
+ + + + +
+
+ @@ -125,7 +170,7 @@ layout("/layouts/platform.html"){ @@ -431,11 +476,14 @@ layout("/layouts/platform.html"){ return { userOptions: [], - groupList: [ - {value: 1, name: "甲组"}, - {value: 2, name: "乙组"}, - {value: 3, name: "丙组"}, - {value: 4, name: "丁组"} + groupList: [], + menWomenList: [ + {id: 1, name: "男子"}, + {id: 2, name: "女子"} + ], + projectTypeList: [ + {id: "1", name: "单项"}, + {id: "2", name: "团体"} ], dialogVisible: false, viewData: [], @@ -465,7 +513,9 @@ layout("/layouts/platform.html"){ {name: "第八名", id: 8}], sexList: [{sex: "男", id: 1}, {sex: "女", id: 2}], pageForm: { - isMenWomen: [], + isMenWomen: "", + projectType: "", + competitionCategory: "", year: new Date().getFullYear() + "", }, formRules: { @@ -511,7 +561,7 @@ layout("/layouts/platform.html"){ }, async unitChange() { const unit = this.unitOptions.find(v => v.id === this.formData.unitId) - this.$set(this.formData, "unionId", unit.id) + this.$set(this.formData, "unionId", unit.unionId) this.$set(this.formData, "unionname", unit.unionName) this.$set(this.formData, "unitname", unit.name) }, @@ -545,8 +595,14 @@ layout("/layouts/platform.html"){ pageForm.identity = JSON.stringify(this.formData.identity) const resp = await this.$axios.post(loc() + "/doAddUser", pageForm) if (resp.code === 0) { - await this.userChange() - this.userDetailsChange() + if (this.awardsMode == 2) { + this.unionList = await this.getUnionList({activityId: this.activityId, eventId: this.eventId}) + this.userData = await this.getUnionData({activityId: this.activityId, eventId: this.eventId}) + await this.unionDetailsChange() + } else { + await this.userChange() + this.userDetailsChange() + } this.dialogVisible = false } else { this.notifyWarning(resp.msg) @@ -554,21 +610,24 @@ layout("/layouts/platform.html"){ } }) }, - async yearChange() { + yearChange() { this.activityList = [] this.events = [] this.$set(this.pageForm, "activityId", "") this.$set(this.pageForm, "eventId", "") - const {data} = await this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year}) - this.activityList = data - if (data.length > 0) { - this.pageForm.activityId = this.activityList[0].id - } - await this.doSearchS() + this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year}).then((res) => { + const data = res.data + this.activityList = data + if (data.length > 0) { + this.pageForm.activityId = this.activityList[0].id + } + this.doSearchS() + }) }, - async changeActivit() { - const resp = await this.$axios.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.activityId}) - this.events = resp.data + changeActivit() { + return this.$axios.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.activityId}).then((resp) => { + this.events = resp.data + }) }, async doAdd() { @@ -802,25 +861,34 @@ layout("/layouts/platform.html"){ }, - async getActivitys() { - const {data} = await this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year}) - return data; - + getActivitys() { + return this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year}).then((res) => { + return res.data + }) }, - async doSearchS() { - this.doSearch() - await this.changeActivit() + focusGroup() { + this.$axios.post("/platform/activity/basic/event/focusGroup").then((resp) => { + if (resp.code === 0) { + this.groupList = resp.data + } else { + this.notifyWarning(resp.msg) + } + }) + }, + doSearchS() { + this.$set(this.pageForm, "eventId", "") + this.changeActivit().then(() => { + this.doSearch() + }) }, doSearch() { this.pageForm.pageNumber = 1 this.pageData() }, pageData() { - this.tabLoading = true + this.tableLoading = true const pageForm = clone(this.pageForm) - pageForm.isMenWomen = JSON.stringify(pageForm.isMenWomen) this.$axios.post("/platform/activity/results/input/pageData", pageForm).then(resp => { - this.tabLoading = false if (resp.code == 0) { this.tableData = resp.data.list; this.pageForm.totalCount = resp.data.totalCount; @@ -830,20 +898,16 @@ layout("/layouts/platform.html"){ type: 'error' }); } + }).finally(() => { + this.tableLoading = false }) }, }, - async created() { + created() { + this.focusGroup() this.yearChange() - // this.pageData() - this.activityList = await this.getActivitys() - if (this.activityList.length) { - this.pageForm.activityId = this.activityList[0].id - } - await this.changeActivit() - this.pageData() } }) diff --git a/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js b/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js index 255f893f..c0244065 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js +++ b/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js @@ -29,6 +29,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
+ v-if="allowMoreTeam&&activityTableData.eveProjectType==2&&teamList.length>1"> 修改小队 @@ -354,6 +355,7 @@ var ACTIVITY_SPORTS_APPLY_USER = { eventList: [], eventData: {}, teamList: [], + allowMoreTeam: false, applyFromData: {}, leftApplyUserList: [], @@ -486,9 +488,10 @@ var ACTIVITY_SPORTS_APPLY_USER = { isMenWomenTwo: data.isMenWomen }) if (resp.code === 0) { - const {users, awardsModeT, awardsModeG, team, activity, getEvent} = resp.data + const {users, awardsModeT, awardsModeG, team, activity, getEvent, allowMoreTeam} = resp.data this.activityData = activity this.eventData = getEvent + this.allowMoreTeam = allowMoreTeam === true this.teamList = team if (this.teamList && this.teamList.length > 0) { this.applyFromData.teamName = this.teamList[0].name @@ -878,6 +881,7 @@ var ACTIVITY_SPORTS_APPLY_USER = { }, uniteApplyReset() { this.teamList = [] + this.allowMoreTeam = false this.eventData = {} this.activityData = {} this.applyFromData = {} diff --git a/src/main/resources/views/platform/zhgh/activity/sports/infoManage/addActivity.js b/src/main/resources/views/platform/zhgh/activity/sports/infoManage/addActivity.js index c80a04bd..cfee3021 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/infoManage/addActivity.js +++ b/src/main/resources/views/platform/zhgh/activity/sports/infoManage/addActivity.js @@ -191,6 +191,19 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = { + + + + + + + + @@ -433,7 +446,7 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = { - { + submit() + }) + .catch(() => { + }) + }, + doOperate(forceReduceTeam) { const method = this.formData.id ? "/doEdit" : "/doAdd" const formData = clone(this.formData) const events = clone(this.checkedEventInfo) @@ -1030,16 +1058,23 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = { spinner: "el-icon-loading", background: "rgba(0,0,0,.45)" }) - const resp = await this.$axios.post(base + "/platform/activity/sports/info/mange" + method, { + return this.$axios.post(base + "/platform/activity/sports/info/mange" + method, { data: JSON.stringify(formData), - events: JSON.stringify(events) + events: JSON.stringify(events), + forceReduceTeam: forceReduceTeam === true + }).then((resp) => { + if (resp.code === 0) { + this.$emit("flip") + } else if (resp.code === 2) { + this.confirmReduceTeam(resp, () => { + this.doOperate(true) + }) + } else { + this.$notify.error({ title: "错误", message: resp.msg }) + } + }).finally(() => { + loading.close() }) - if (resp.code === 0) { - this.$emit("flip") - } else { - this.$notify.error({ title: "错误", message: resp.msg }) - } - loading.close() }, async operate() { const deleteEventIds = this.eventsIds.filter((v) => !this.formData.eventsIds.includes(v)) @@ -1060,7 +1095,7 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = { await this.doOperate() } }, - async doSave() { + doSave(forceReduceTeam) { let url = this.formData.id ? "/doEdit" : "/doAdd" this.checkedEventInfo.forEach((v) => { @@ -1115,19 +1150,27 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = { background: "rgba(0,0,0,.45)" }) - const resp = await this.$axios.post("/platform/activity/sports/info/mange" + url, { + return this.$axios.post("/platform/activity/sports/info/mange" + url, { data: JSON.stringify(formData), - events: JSON.stringify(events) + events: JSON.stringify(events), + forceReduceTeam: forceReduceTeam === true + }).then((resp) => { + if (resp.code === 0) { + this.$emit("flush") + if (!this.formData.id) formData.id = resp.data + return this.openEdit(formData, false).then(() => { + this.$message.success(resp.msg) + }) + } else if (resp.code === 2) { + this.confirmReduceTeam(resp, () => { + this.doSave(true) + }) + } else { + this.$message.error(resp.msg) + } + }).finally(() => { + loading.close() }) - if (resp.code === 0) { - this.$emit("flush") - if (!this.formData.id) formData.id = resp.data - await this.openEdit(formData, false) - this.$message.success(resp.msg) - } else { - this.$message.error(resp.msg) - } - loading.close() }, examineTrans(formData) { const { unitJointly, unitSponsor, time, applyTime, applyWay, image } = formData @@ -1197,12 +1240,14 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = { ]*/ } }, - async created() { - this.clubOptions = await this.getClubsByRole() - this.clubOptions.map((v) => { - v.name = v.clubName + created() { + Promise.all([this.getClubsByRole(), this.$businessTool.listUnit(), this.$businessTool.listUnion()]).then(([clubs, units, unions]) => { + this.clubOptions = clubs + this.clubOptions.map((v) => { + v.name = v.clubName + }) + this.unionOptions = unions + this.unitOptions = this.clubOptions.concat(units) }) - const units = await this.$businessTool.listUnit() - this.unitOptions = this.clubOptions.concat(units) } } diff --git a/src/main/resources/views/platform/zhgh/activity/sports/infoManage/info.js b/src/main/resources/views/platform/zhgh/activity/sports/infoManage/info.js index 27cb99b5..eab98466 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/infoManage/info.js +++ b/src/main/resources/views/platform/zhgh/activity/sports/infoManage/info.js @@ -150,6 +150,15 @@ var ACTIVITY_SPORTS_INFO = { + + + + {{ app.startAgeDate }} - {{ app.endAgeDate }} + + 暂无 + + + {{ app.leanderNum | money }} 人