From 3f7b5dc27acf58700c88ccbe4626263d3263ff74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=8C=E5=85=88=E8=88=9C?= <2499071264@qq.com> Date: Thu, 29 Oct 2026 09:43:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityBasicSettingsController.java | 12 ++++++++++-- .../impl/TrainSignUpActivityServiceImpl.java | 5 ++++- .../zhgh/activity/basic/settings/index.html | 8 +++----- .../zhgh/activity/culture/common/applyActivity.js | 13 ++++++++++++- .../zhgh/activity/trainSignUp/manage/basicForm.js | 14 ++++++++------ 5 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicSettingsController.java b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicSettingsController.java index 2a2f7b7..52cf124 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicSettingsController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicSettingsController.java @@ -54,9 +54,8 @@ public class ActivityBasicSettingsController { if (parentId != null) { parentId.setChild(child(parentId.getId())); list.add(parentId); - return Result.success().addData(list); } - return Result.success(); + return Result.success(list); } private List child(String parentId) { @@ -73,6 +72,9 @@ public class ActivityBasicSettingsController { Cnd cnd = Cnd.NEW(); if (StrUtil.isBlank(parentId)) { ActivityBasicSettings rootSetting = dao.fetch(ActivityBasicSettings.class, Cnd.where("parentId", "=", 0)); + if (rootSetting == null) { + return Result.success(new Pagination(pageForm.getPageNumber(), pageForm.getPageSize(), 0, new ArrayList())); + } cnd.and("parentId", "=", rootSetting.getId()); } else { cnd.and("parentId", "=", parentId); @@ -116,7 +118,13 @@ public class ActivityBasicSettingsController { @At public Result getActivityTwoLevelType(String code) { + if (StrUtil.isBlank(code)) { + return Result.success(new ArrayList()); + } ActivityBasicSettings fetch = dao.fetch(ActivityBasicSettings.class, Cnd.where("code", "=", code)); + if (fetch == null) { + return Result.success(new ArrayList()); + } List query = dao.query(ActivityBasicSettings.class, Cnd.where("parentId", "=", fetch.getId()).asc("code")); return Result.success(query); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java index 6424433..8acf9d0 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java @@ -649,8 +649,11 @@ public class TrainSignUpActivityServiceImpl extends BaseServiceImpl { + dao().fetchLinks(c, "^(courseTimeList)$", Cnd.NEW().asc("courseStartTime")); + if (c.getCourseTimeList() == null) { + c.setCourseTimeList(new ArrayList<>()); + } if (StrUtil.isNotBlank(c.getCourseType())) { - dao().fetchLinks(c, "^(courseTimeList)$", Cnd.NEW().asc("courseStartTime")); int courseCount = statisticsService.queryCourseCount(c.getId(), c.getCourseType()); c.setHasRegisterNum(courseCount); int courseWaitCount = statisticsService.queryCourseWaitCount(c.getId(), c.getCourseType()); diff --git a/src/main/resources/views/platform/zhgh/activity/basic/settings/index.html b/src/main/resources/views/platform/zhgh/activity/basic/settings/index.html index deb8a54..4e233c6 100644 --- a/src/main/resources/views/platform/zhgh/activity/basic/settings/index.html +++ b/src/main/resources/views/platform/zhgh/activity/basic/settings/index.html @@ -119,7 +119,7 @@ layout("/layouts/platform.html"){ currentTreeNode: null, currentTreeData: null, - checkData: {}, + checkData: { id: "0", name: "无(新建根节点)" }, tableData: [], basicTypeDialog: false, @@ -146,10 +146,8 @@ layout("/layouts/platform.html"){ getTreeData() { this.$axios.post(loc() + "/tree").then((res) => { - this.treeData = res.data - if (this.treeData) { - this.checkData = this.treeData[0] - } + this.treeData = res.data || [] + this.checkData = this.treeData.length ? this.treeData[0] : { id: "0", name: "无(新建根节点)" } }) }, diff --git a/src/main/resources/views/platform/zhgh/activity/culture/common/applyActivity.js b/src/main/resources/views/platform/zhgh/activity/culture/common/applyActivity.js index 54645af..e87d62a 100644 --- a/src/main/resources/views/platform/zhgh/activity/culture/common/applyActivity.js +++ b/src/main/resources/views/platform/zhgh/activity/culture/common/applyActivity.js @@ -370,12 +370,14 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = { + @@ -592,6 +594,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = { name: [{required: true, message: "必填", trigger: ["blur", "change"]}], type: [{required: true, message: "必填", trigger: ["blur", "change"]}], projectTypeCode: [{required: true, message: "必填", trigger: ["blur", "change"]}], + mobile: this.activity_type === 40001 ? [{pattern: /^1[3-9]\d{9}$/, message: "请输入正确的手机号码", trigger: ["blur", "change"]}] : [], address: [{required: true, message: "必填", trigger: ["blur", "change"]}], plannedDate: [{required: true, message: "必填", trigger: ["blur", "change"]}], time: [{required: true, message: "必填", trigger: ["blur", "change"]}], @@ -725,7 +728,15 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = { return true }, // 保存 - onSave() { + async onSave() { + if (this.activity_type === 40001) { + const mobileValid = await new Promise(resolve => { + this.$refs["addForm"].validateField("mobile", error => resolve(!error)) + }) + if (!mobileValid) { + return + } + } if (!this.formData.projectTypeCode) { this.$message.error("请选择活动项目类型") return diff --git a/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/basicForm.js b/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/basicForm.js index 17e0570..c3970c5 100644 --- a/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/basicForm.js +++ b/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/basicForm.js @@ -585,11 +585,13 @@ const basicForm = { return } const courseValid = this.formData.courseList.some((v, i) => { - // 新活动通过多选关系设置负责人;未重新设置的旧活动仍允许保留历史联系人。 - const hasResponsible = Array.isArray(v.responsibleList) - ? v.responsibleList.length > 0 : !!v.courseInstructor - const basicValid = v.courseName && v.coursePeopleNumber && v.courseLocation && hasResponsible && v.courseType + const missingFields = [] + if (!v.courseName) missingFields.push(this.trainType + "名称") + if (!v.coursePeopleNumber) missingFields.push(this.trainType + "人数(不能为空或为0)") + if (!v.courseLocation) missingFields.push(this.trainType + "地点") + if (!v.courseType) missingFields.push("类型") const timeValid = + Array.isArray(v.courseTimeList) && v.courseTimeList.length > 0 && v.courseTimeList.every((x) => { return x.courseStartTime && x.courseEndTime && x.courseStartTime < x.courseEndTime @@ -598,8 +600,8 @@ const basicForm = { this.$message.warning("第" + (i + 1) + "行时间填写有误,请核查") return true } - if (!basicValid) { - this.$message.warning("第" + (i + 1) + "行信息填写有误,请核查") + if (missingFields.length > 0) { + this.$message.warning("第" + (i + 1) + "行请补充:" + missingFields.join("、")) return true } // 联系方式允许手机号或办公电话,逐人校验,不能只检查兼容展示的第一位。