diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/controller/ThirtyTeachTourMySignupController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/controller/ThirtyTeachTourMySignupController.java index b5dc5670..f134e89c 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/controller/ThirtyTeachTourMySignupController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/controller/ThirtyTeachTourMySignupController.java @@ -34,6 +34,7 @@ import com.budwk.app.zhgh.dayofficework.thirtyTeachTour.service.ThirtyTeachTourL import com.budwk.app.zhgh.dayofficework.thirtyTeachTour.service.ThirtyTeachTourMatterService; import com.budwk.app.zhgh.dayofficework.thirtyTeachTour.service.ThirtyTeachTourUserAssignmentService; import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; @@ -445,12 +446,14 @@ public class ThirtyTeachTourMySignupController { * @param ledger 报名台账主信息 * @param families 家属信息 JSON 数组 * @param directRelative 直系亲属线路报名信息 JSON + * @param boardingPlaceOnly H5 修改页只更新乘车地点时传 true,避免修改其他只读报名信息 * @return 修改结果;直系亲属线路、超额报销等场景会返回待审核提示 */ @At @Aop(TransAop.READ_COMMITTED) @SaCheckPermission(value = {"thirtyTeachTour.mysignup", "h5.thirtyTeachTour.mysignup"}, mode = SaMode.OR) - public Result doSignup(ThirtyTeachTourLedger ledger, @Param("families") String families, @Param("directRelative") String directRelative) { + public Result doSignup(ThirtyTeachTourLedger ledger, @Param("families") String families, @Param("directRelative") String directRelative, + @Param("boardingPlaceOnly") Boolean boardingPlaceOnly) { Result checkResult = checkSignup(ledger); if (checkResult != null) { return checkResult; @@ -462,6 +465,9 @@ public class ThirtyTeachTourMySignupController { if (oldLedger == null) { return Result.error("报名记录不存在"); } + if (Boolean.TRUE.equals(boardingPlaceOnly)) { + return updateH5BoardingPlaceOnly(ledger, oldLedger); + } List familyList = parseFamilies(families); Result familyResult = checkFamilies(familyList); if (familyResult != null) { @@ -541,6 +547,41 @@ public class ThirtyTeachTourMySignupController { return Result.success().addMsg(approvalRequired ? "修改已提交,等待审核" : "修改成功"); } + /** + * H5 我的疗休养修改页仅允许调整乘车地点,其他报名、家属和直系亲属信息均以原台账为准。 + * 保存时同步当前人员分配记录中的乘车地点,保证移动端列表、人员分配和台账展示一致。 + * + * @param submitLedger 页面提交的台账信息,仅读取 id 和 boardingPlace + * @param oldLedger 当前登录人的原台账记录 + * @return 乘车地点保存结果 + */ + private Result updateH5BoardingPlaceOnly(ThirtyTeachTourLedger submitLedger, ThirtyTeachTourLedger oldLedger) { + if (oldLedger == null || StrUtil.isBlank(oldLedger.getMatterId())) { + return Result.error("报名记录缺少事项信息,不能修改"); + } + ThirtyTeachTourMatter matter = tourMatterService.fetch(oldLedger.getMatterId()); + if (matter == null || Boolean.TRUE.equals(matter.getDelFlag()) || !Boolean.TRUE.equals(matter.getEnabled())) { + return Result.error("报名出行时段不存在或已停用"); + } + if (isTravelEnded(matter.getTravelEndTime())) { + return Result.error("线路出行已结束,不能修改"); + } + ThirtyTeachTourSetting setting = tourLedgerService.dao().fetch(ThirtyTeachTourSetting.class, matter.getSettingId()); + oldLedger.setBoardingPlace(submitLedger == null ? "" : submitLedger.getBoardingPlace()); + Result boardingPlaceResult = normalizeBoardingPlace(oldLedger, matter, setting); + if (boardingPlaceResult != null) { + return boardingPlaceResult; + } + // H5 修改页除乘车地点外全部只读,数据库更新也只落乘车地点字段,避免前端绕过只读限制。 + tourLedgerService.update(Chain.make("boardingPlace", oldLedger.getBoardingPlace()), + Cnd.where(ThirtyTeachTourLedger::getId, "=", oldLedger.getId()) + .and(ThirtyTeachTourLedger::getJobNo, "=", currentJobNo()) + .and(ThirtyTeachTourLedger::getDelFlag, "=", false)); + tourUserAssignmentService.backfillExistingAssignmentAfterSignup(matter.getSettingId(), matter.getId(), SecurityUtil.getUserId(), + oldLedger.getBoardingPlace(), oldLedger.getPhotoFiles(), oldLedger.getCurrentPeriodPhotoFiles()); + return Result.success().addMsg("修改成功"); + } + @At @Aop(TransAop.READ_COMMITTED) @SaCheckPermission(value = {"thirtyTeachTour.mysignup", "h5.thirtyTeachTour.mysignup"}, mode = SaMode.OR) diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/service/impl/ThirtyTeachTourUserAssignmentServiceImpl.java b/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/service/impl/ThirtyTeachTourUserAssignmentServiceImpl.java index a1757e7d..7b618ec6 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/service/impl/ThirtyTeachTourUserAssignmentServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/thirtyTeachTour/service/impl/ThirtyTeachTourUserAssignmentServiceImpl.java @@ -698,11 +698,13 @@ public class ThirtyTeachTourUserAssignmentServiceImpl extends BaseServiceImpl rows = listMap(sql); NutMap quotaInfo = Lang.isEmpty(rows) ? emptyQuotaInfo() : rows.get(0); + int branchTotalQuota = branchPeriodQuotaTotal(settingId, unionId); int formalQuota = defaultInt(quotaInfo.getInt("formalQuota")); int backupQuota = defaultInt(quotaInfo.getInt("backupQuota")); int formalUsed = defaultInt(quotaInfo.getInt("formalUsed")); int backupUsed = defaultInt(quotaInfo.getInt("backupUsed")); return NutMap.NEW() + .addv("branchTotalQuota", branchTotalQuota) .addv("formalQuota", formalQuota) .addv("backupQuota", backupQuota) .addv("formalUsed", formalUsed) @@ -2072,6 +2074,7 @@ public class ThirtyTeachTourUserAssignmentServiceImpl extends BaseServiceImpl rows = listMap(sql); + if (Lang.isEmpty(rows)) { + return 0; + } + return defaultInt(rows.get(0).getInt("branchTotalQuota")); + } + private NutMap emptyPeriodQuotaInfo(String periodId) { return NutMap.NEW() .addv("periodId", periodId) diff --git a/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/branchUserAssignment/index.html b/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/branchUserAssignment/index.html index 9b252f8b..c0adef85 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/branchUserAssignment/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/branchUserAssignment/index.html @@ -73,7 +73,7 @@ layout("/layouts/platform.html"){ - + @@ -159,7 +159,7 @@ layout("/layouts/platform.html"){ - +
+
+ 分工会总名额 + {{ quotaInfo.branchTotalQuota }} +
正式名额 {{ quotaInfo.formalQuota }} @@ -424,6 +428,9 @@ layout("/layouts/platform.html"){ color: #303133; background: #fafafa; } + .quota-item-total { + min-width: 150px; + } .quota-label { font-weight: 600; margin-right: 10px; @@ -503,6 +510,7 @@ layout("/layouts/platform.html"){ assignMatterOptions: [], assignPeriodOptions: [], quotaInfo: { + branchTotalQuota: 0, formalQuota: 0, backupQuota: 0, formalUsed: 0, @@ -511,6 +519,7 @@ layout("/layouts/platform.html"){ backupRemaining: 0 }, assignDialogVisible: false, + assignOpenToken: 0, candidateLoading: false, candidateSelectLoading: false, candidateData: [], @@ -617,6 +626,7 @@ layout("/layouts/platform.html"){ }, defaultQuotaInfo() { return { + branchTotalQuota: 0, formalQuota: 0, backupQuota: 0, formalUsed: 0, @@ -726,21 +736,11 @@ layout("/layouts/platform.html"){ window.location.href = loc() + "/exportData?" + params.toString() }, openAssign() { + const token = this.nextAssignOpenToken() const year = this.pageForm.year || moment().format("YYYY") this.assignForm = this.defaultAssignForm(year) this.candidateForm = this.defaultCandidateForm() - this.assignPeriodOptions = [] - this.quotaInfo = this.defaultQuotaInfo() - this.candidateData = [] - this.selectedCandidates = [] - this.selectedCandidateIds = [] - this.candidateUserOptions = [] - this.assignDialogVisible = true - this.loadAssignSettingOptions() - }, - resetAssignDialog() { - this.assignForm = this.defaultAssignForm(moment().format("YYYY")) - this.candidateForm = this.defaultCandidateForm() + this.assignSettingOptions = [] this.assignMatterOptions = [] this.assignPeriodOptions = [] this.quotaInfo = this.defaultQuotaInfo() @@ -749,8 +749,37 @@ layout("/layouts/platform.html"){ this.selectedCandidateIds = [] this.candidateUserOptions = [] this.assignSubmitting = false + this.candidateLoading = false + this.candidateSelectLoading = false + this.assignDialogVisible = true + this.loadAssignSettingOptions(token) + }, + resetAssignDialog() { + this.assignOpenToken += 1 + this.assignForm = this.defaultAssignForm(moment().format("YYYY")) + this.candidateForm = this.defaultCandidateForm() + this.assignSettingOptions = [] + this.assignMatterOptions = [] + this.assignPeriodOptions = [] + this.quotaInfo = this.defaultQuotaInfo() + this.candidateData = [] + this.selectedCandidates = [] + this.selectedCandidateIds = [] + this.candidateUserOptions = [] + this.assignSubmitting = false + this.candidateLoading = false + this.candidateSelectLoading = false + }, + // 人员分配弹窗每次打开都生成新的批次标记,旧请求返回时不再覆盖新弹窗数据。 + nextAssignOpenToken() { + this.assignOpenToken += 1 + return this.assignOpenToken + }, + isCurrentAssignOpen(token) { + return this.assignDialogVisible && token === this.assignOpenToken }, assignYearChange() { + const token = this.assignOpenToken this.assignForm.settingId = "" this.assignForm.matterId = "" this.assignForm.periodId = "" @@ -761,9 +790,10 @@ layout("/layouts/platform.html"){ this.candidateUserOptions = [] this.candidateForm.keyword = "" this.clearCandidateSelection() - this.loadAssignSettingOptions() + this.loadAssignSettingOptions(token) }, assignSettingChange() { + const token = this.assignOpenToken this.assignForm.matterId = "" this.assignForm.periodId = "" this.assignMatterOptions = [] @@ -772,30 +802,32 @@ layout("/layouts/platform.html"){ this.candidateUserOptions = [] this.candidateForm.keyword = "" this.clearCandidateSelection() - this.loadAssignMatterOptions() - this.loadAssignTravelPeriods(true) - this.loadCandidatePageData() + this.loadAssignMatterOptions(token) + this.loadAssignTravelPeriods(token) + this.loadCandidatePageData(token) }, assignPersonTypeChange() { if (this.assignForm.personType === "BACKUP") { this.assignForm.matterId = "" } - this.loadQuotaInfo() + this.loadQuotaInfo(this.assignOpenToken) }, - loadAssignSettingOptions() { + loadAssignSettingOptions(token) { + token = token || this.assignOpenToken this.$axios.post(loc() + "/settingOptions", {year: this.assignForm.year}).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { this.assignSettingOptions = res.data || [] // 人员分配弹窗独立默认取当前年度第一条配置,再加载名额、线路和候选人员。 if (!this.assignForm.settingId && this.assignSettingOptions.length > 0) { this.assignForm.settingId = this.assignSettingOptions[0].id - this.loadAssignMatterOptions() - this.loadAssignTravelPeriods(true) - this.loadCandidatePageData() + this.loadAssignMatterOptions(token) + this.loadAssignTravelPeriods(token) + this.loadCandidatePageData(token) } else if (this.assignForm.settingId) { - this.loadAssignMatterOptions() - this.loadAssignTravelPeriods(true) - this.loadCandidatePageData() + this.loadAssignMatterOptions(token) + this.loadAssignTravelPeriods(token) + this.loadCandidatePageData(token) } else { this.assignMatterOptions = [] this.assignPeriodOptions = [] @@ -806,46 +838,50 @@ layout("/layouts/platform.html"){ } }) }, - loadAssignTravelPeriods(defaultFirst) { + loadAssignTravelPeriods(token) { + token = token || this.assignOpenToken if (!this.assignForm.settingId) { this.assignPeriodOptions = [] this.assignForm.periodId = "" - this.loadQuotaInfo() + this.loadQuotaInfo(token) return } this.$axios.post(loc() + "/travelPeriodOptions", {settingId: this.assignForm.settingId}).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { this.assignPeriodOptions = res.data || [] const hasCurrent = this.assignPeriodOptions.some(item => item.id === this.assignForm.periodId) - if ((defaultFirst || !hasCurrent) && this.assignPeriodOptions.length > 0) { - this.assignForm.periodId = this.assignPeriodOptions[0].id - } else if (!hasCurrent) { + if (!hasCurrent) { this.assignForm.periodId = "" } } else { this.assignPeriodOptions = [] this.assignForm.periodId = "" } - this.loadQuotaInfo() + this.loadQuotaInfo(token) }) }, - loadAssignMatterOptions() { + loadAssignMatterOptions(token) { + token = token || this.assignOpenToken if (!this.assignForm.settingId) { this.assignMatterOptions = [] return } this.$axios.post(loc() + "/matterOptions", {settingId: this.assignForm.settingId}).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { this.assignMatterOptions = res.data || [] } }) }, - loadQuotaInfo() { + loadQuotaInfo(token) { + token = token || this.assignOpenToken if (!this.assignForm.settingId) { this.quotaInfo = this.defaultQuotaInfo() return } this.$axios.post(loc() + "/quotaInfo", {settingId: this.assignForm.settingId}).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { const baseQuota = Object.assign(this.defaultQuotaInfo(), res.data || {}) if (this.assignForm.personType === "FORMAL") { @@ -855,16 +891,18 @@ layout("/layouts/platform.html"){ } this.quotaInfo = baseQuota if (this.assignForm.personType === "FORMAL" && this.assignForm.periodId) { - this.loadPeriodQuotaInfo() + this.loadPeriodQuotaInfo(token) } } }) }, - loadPeriodQuotaInfo() { + loadPeriodQuotaInfo(token) { + token = token || this.assignOpenToken this.$axios.post(loc() + "/periodQuotaInfo", { settingId: this.assignForm.settingId, periodId: this.assignForm.periodId }).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { const periodQuota = res.data || {} this.quotaInfo = Object.assign({}, this.quotaInfo, { @@ -876,13 +914,29 @@ layout("/layouts/platform.html"){ }) }, toggleAssignPeriod(item) { + const token = this.assignOpenToken this.assignForm.periodId = this.assignForm.periodId === item.id ? "" : item.id + // 选择出行时间段时提醒先核对分配批次,避免批次线路时间与时间段不一致。 + if (this.assignForm.periodId) { + this.$message({ + type: "warning", + message: this.assignPeriodCheckMessage(), + duration: 5000 + }) + } this.candidateForm.pageNumber = 1 this.clearCandidateSelection() - this.loadQuotaInfo() - this.loadCandidatePageData() + this.loadQuotaInfo(token) + this.loadCandidatePageData(token) }, - loadCandidatePageData() { + assignPeriodCheckMessage() { + if (!this.assignForm.matterId) { + return "请选择分配批次,并确认选中的 “分配批次” 与 “出行时间段” 出行时间是否一致" + } + return "请确认选中的 “分配批次” 与 “出行时间段” 出行时间是否一致" + }, + loadCandidatePageData(token) { + token = token || this.assignOpenToken if (!this.assignForm.settingId) { this.candidateData = [] this.candidateForm.totalCount = 0 @@ -897,6 +951,7 @@ layout("/layouts/platform.html"){ keyword: (this.selectedCandidateIds || []).length > 0 ? "" : this.candidateForm.keyword, userIds: JSON.stringify(this.selectedCandidateIds || []) }).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { const data = res.data || {} this.candidateData = (data.list || []).map(item => Object.assign({}, item, { @@ -909,7 +964,9 @@ layout("/layouts/platform.html"){ this.$message.warning(res.msg || "候选人员查询失败") } }).finally(() => { - this.candidateLoading = false + if (this.isCurrentAssignOpen(token)) { + this.candidateLoading = false + } }) }, candidateSearch() { @@ -948,6 +1005,7 @@ layout("/layouts/platform.html"){ // 人员选择器复用候选人员接口,后端会限定为当前登录人所在分工会会员。 this.candidateForm.keyword = keyword || "" this.candidateSelectLoading = true + const token = this.assignOpenToken this.$axios.post(loc() + "/candidatePageData", { pageNumber: 1, pageSize: 20, @@ -955,12 +1013,15 @@ layout("/layouts/platform.html"){ retiringSoon: this.normalizeCandidateFilterValue(this.candidateForm.retiringSoon), keyword: keyword || "" }).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { const data = res.data || {} this.candidateUserOptions = this.mergeOptionLists(this.selectedCandidates, data.list || []) } }).finally(() => { - this.candidateSelectLoading = false + if (this.isCurrentAssignOpen(token)) { + this.candidateSelectLoading = false + } }) }, candidateUserSelectChange(userIds) { @@ -1149,7 +1210,7 @@ layout("/layouts/platform.html"){ return } if (this.assignForm.personType === "FORMAL" && !this.assignForm.periodId) { - this.$message.warning("请选择出行时间") + this.$message.warning("请选择出行时间段") return } this.$confirm("确定保存当前人员分配吗?", "提示", { diff --git a/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/schoolUserAssignment/index.html b/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/schoolUserAssignment/index.html index f50310db..a0221a6c 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/schoolUserAssignment/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/ThirtyTeachTour/schoolUserAssignment/index.html @@ -91,7 +91,7 @@ layout("/layouts/platform.html"){ - + @@ -475,6 +475,7 @@ layout("/layouts/platform.html"){ assignMatterOptions: [], unionOptions: [], assignDialogVisible: false, + assignOpenToken: 0, remindDialogVisible: false, remindSubmitting: false, candidateLoading: false, @@ -760,28 +761,47 @@ layout("/layouts/platform.html"){ }) }, openAssign() { + const token = this.nextAssignOpenToken() const year = this.pageForm.year || moment().format("YYYY") this.assignForm = this.defaultAssignForm(year) this.assignForm.matterId = "" this.candidateForm = this.defaultCandidateForm() - this.candidateData = [] - this.selectedCandidates = [] - this.selectedCandidateIds = [] - this.candidateUserOptions = [] - this.assignDialogVisible = true - this.loadAssignSettingOptions() - }, - resetAssignDialog() { - this.assignForm = this.defaultAssignForm(moment().format("YYYY")) - this.candidateForm = this.defaultCandidateForm() + this.assignSettingOptions = [] this.assignMatterOptions = [] this.candidateData = [] this.selectedCandidates = [] this.selectedCandidateIds = [] this.candidateUserOptions = [] this.assignSubmitting = false + this.candidateLoading = false + this.candidateSelectLoading = false + this.assignDialogVisible = true + this.loadAssignSettingOptions(token) + }, + resetAssignDialog() { + this.assignOpenToken += 1 + this.assignForm = this.defaultAssignForm(moment().format("YYYY")) + this.candidateForm = this.defaultCandidateForm() + this.assignSettingOptions = [] + this.assignMatterOptions = [] + this.candidateData = [] + this.selectedCandidates = [] + this.selectedCandidateIds = [] + this.candidateUserOptions = [] + this.assignSubmitting = false + this.candidateLoading = false + this.candidateSelectLoading = false + }, + // 人员分配弹窗每次打开都生成新的批次标记,旧请求返回时不再覆盖新弹窗数据。 + nextAssignOpenToken() { + this.assignOpenToken += 1 + return this.assignOpenToken + }, + isCurrentAssignOpen(token) { + return this.assignDialogVisible && token === this.assignOpenToken }, assignYearChange() { + const token = this.assignOpenToken this.assignForm.settingId = "" this.assignForm.matterId = "" this.assignMatterOptions = [] @@ -789,31 +809,34 @@ layout("/layouts/platform.html"){ this.candidateUserOptions = [] this.candidateForm.keyword = "" this.clearCandidateSelection() - this.loadAssignSettingOptions() - this.loadCandidatePageData() + this.loadAssignSettingOptions(token) + this.loadCandidatePageData(token) }, assignSettingChange() { + const token = this.assignOpenToken this.assignForm.matterId = "" this.assignMatterOptions = [] this.selectedCandidateIds = [] this.candidateUserOptions = [] this.candidateForm.keyword = "" this.clearCandidateSelection() - this.loadAssignMatterOptions() - this.loadCandidatePageData() + this.loadAssignMatterOptions(token) + this.loadCandidatePageData(token) }, - loadAssignSettingOptions() { + loadAssignSettingOptions(token) { + token = token || this.assignOpenToken this.$axios.post(loc() + "/settingOptions", {year: this.assignForm.year}).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { this.assignSettingOptions = res.data || [] // 人员分配弹窗独立于主列表筛选,默认取当前年度第一条可用配置。 if (!this.assignForm.settingId && this.assignSettingOptions.length > 0) { this.assignForm.settingId = this.assignSettingOptions[0].id - this.loadAssignMatterOptions() - this.loadCandidatePageData() + this.loadAssignMatterOptions(token) + this.loadCandidatePageData(token) } else if (this.assignForm.settingId) { - this.loadAssignMatterOptions() - this.loadCandidatePageData() + this.loadAssignMatterOptions(token) + this.loadCandidatePageData(token) } else { this.assignMatterOptions = [] this.candidateData = [] @@ -822,18 +845,21 @@ layout("/layouts/platform.html"){ } }) }, - loadAssignMatterOptions() { + loadAssignMatterOptions(token) { + token = token || this.assignOpenToken if (!this.assignForm.settingId) { this.assignMatterOptions = [] return } this.$axios.post(loc() + "/matterOptions", {settingId: this.assignForm.settingId}).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { this.assignMatterOptions = res.data || [] } }) }, - loadCandidatePageData() { + loadCandidatePageData(token) { + token = token || this.assignOpenToken if (!this.assignForm.settingId) { this.candidateData = [] this.candidateForm.totalCount = 0 @@ -851,6 +877,7 @@ layout("/layouts/platform.html"){ keyword: (this.selectedCandidateIds || []).length > 0 ? "" : this.candidateForm.keyword, userIds: JSON.stringify(this.selectedCandidateIds || []) }).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { const data = res.data || {} this.candidateData = (data.list || []).map(item => Object.assign({}, item, { @@ -864,7 +891,9 @@ layout("/layouts/platform.html"){ this.$message.warning(res.msg || "候选人员查询失败") } }).finally(() => { - this.candidateLoading = false + if (this.isCurrentAssignOpen(token)) { + this.candidateLoading = false + } }) }, assignMatterChange(value) { @@ -922,6 +951,7 @@ layout("/layouts/platform.html"){ // 人员选择器复用候选人员接口,校工会可按分工会过滤,也可不选分工会查询全部会员。 this.candidateForm.keyword = keyword || "" this.candidateSelectLoading = true + const token = this.assignOpenToken this.$axios.post(loc() + "/candidatePageData", { pageNumber: 1, pageSize: 20, @@ -932,12 +962,15 @@ layout("/layouts/platform.html"){ lastThirtyJoined: this.normalizeCandidateFilterValue(this.candidateForm.lastThirtyJoined), keyword: keyword || "" }).then((res) => { + if (!this.isCurrentAssignOpen(token)) return if (res.code === 0) { const data = res.data || {} this.candidateUserOptions = this.mergeOptionLists(this.selectedCandidates, data.list || []) } }).finally(() => { - this.candidateSelectLoading = false + if (this.isCurrentAssignOpen(token)) { + this.candidateSelectLoading = false + } }) }, candidateUserSelectChange(userIds) { diff --git a/src/main/resources/views/platform/zhghh5/dayofficework/thirtyTeachTour/mysignup/index.html b/src/main/resources/views/platform/zhghh5/dayofficework/thirtyTeachTour/mysignup/index.html index 7c76ba62..a31549a0 100644 --- a/src/main/resources/views/platform/zhghh5/dayofficework/thirtyTeachTour/mysignup/index.html +++ b/src/main/resources/views/platform/zhghh5/dayofficework/thirtyTeachTour/mysignup/index.html @@ -379,7 +379,6 @@ layout("/layouts/platform_h5.html"){ 修改 撤回 退出疗休养报名 - 取消报名 报销申请 亲属线路申请
@@ -470,8 +469,9 @@ layout("/layouts/platform_h5.html"){
教职工信息
- + +
@@ -480,13 +480,13 @@ layout("/layouts/platform_h5.html"){ - - - - + + + +