From c3fd8324965a2c19333e9dc3ee70f889e5fc4bf1 Mon Sep 17 00:00:00 2001 From: hongqiwei <1143662660@qq.com> Date: Mon, 28 Sep 2026 11:35:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=A4=A7bug=E6=95=B4=E6=94=B9,?= =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E6=8A=A5=E9=94=80=EF=BC=9A=E5=85=A5=E4=BD=8F?= =?UTF-8?q?=E5=8C=BB=E9=99=A2=E5=BF=85=E5=A1=AB=EF=BC=9B=E6=A0=A1=E5=B7=A5?= =?UTF-8?q?=E4=BC=9A=E5=AE=A1=E6=A0=B8=E9=BB=98=E8=AE=A4=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E6=94=B9=E6=88=90=E5=B7=B2=E4=BB=98=E6=AC=BE=E6=88=90=E5=8A=9F?= =?UTF-8?q?=EF=BC=9B=E4=BD=99=E9=A2=9D=E5=AD=97=E6=AE=B5=E9=9A=90=E8=97=8F?= =?UTF-8?q?=EF=BC=8C=E5=8F=AA=E6=9C=89=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E3=80=81=E6=A0=A1=E5=B7=A5=E4=BC=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E5=8F=AF=E4=BB=A5=E7=9C=8B=E7=9A=84=E3=80=82=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E6=8A=A5=E9=94=80=EF=BC=9A=E9=9A=90=E8=97=8F=E5=88=86?= =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E7=9A=84=E7=BB=8F=E8=B4=B9=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unionReimburse/apply/index.html | 8 +++- .../unionReimburse/review/index.html | 2 +- .../unionReimburse/apply/index.html | 11 ++++- .../dayofficework/unionReimburse/info.js | 41 ++++++++++++++----- .../unionReimburse/review/index.html | 13 ++++-- 5 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/apply/index.html b/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/apply/index.html index 6992381c..f8f33bb7 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/apply/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/apply/index.html @@ -150,7 +150,7 @@ layout("/layouts/platform.html"){ - + @@ -820,6 +820,8 @@ layout("/layouts/platform.html"){ condolenceUserId: [{required: true, message: "请选择慰问对象", trigger: ["change", "blur"]}], condolenceTypeId: [{required: true, message: "请选择慰问类型", trigger: ["change", "blur"]}], + // 住院慰问显示入住医院字段时,提交和重新提交均须填写非空白医院名称。 + hospital: [{required: true, whitespace: true, message: "请输入入住医院", trigger: ["change", "blur"]}], way: [{required: true, message: "请选择慰问方式", trigger: ["change", "blur"]}], condolenceMoney: [{required: true, message: "请输入慰问金额", trigger: ["change", "blur"]}], participants: [{required: true, message: "请填写参与随行人员", trigger: ["change", "blur"]}], @@ -865,6 +867,10 @@ layout("/layouts/platform.html"){ } }, computed: { + // 仅系统管理员和校工会管理员可查看真实余额,其他账号统一显示余额遮罩。 + canViewFundBalance() { + return this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"]) + }, showInvoiceTab() { return !!this.formData.reimburseProject }, diff --git a/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/review/index.html b/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/review/index.html index 67ccc711..68ba67d2 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/review/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/unionReimburse/review/index.html @@ -212,7 +212,7 @@ layout("/layouts/platform.html"){ this.showApprovalForm = true this.formData = { id: row.id, - reviewOpinion: '通过' + reviewOpinion: '已付款成功' } this.$refs.unionReimburseInfoRef.onOpen(row) }) diff --git a/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/apply/index.html b/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/apply/index.html index c8dc4f77..d1fc635a 100644 --- a/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/apply/index.html +++ b/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/apply/index.html @@ -473,7 +473,7 @@ layout("/layouts/platform_h5.html"){ @@ -706,7 +706,10 @@ layout("/layouts/platform_h5.html"){ @cancel="closePopup('showHospitalizationEndTimePicker')" @confirm="onDateConfirm('hospitalizationEndTime', 'showHospitalizationEndTimePicker', $event)"> - + + @@ -1248,6 +1251,10 @@ layout("/layouts/platform_h5.html"){ } }, computed: { + // 仅系统管理员和校工会管理员可查看真实余额,其他账号统一显示余额遮罩。 + canViewFundBalance() { + return this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"]) + }, paymentInfoRows() { return this.formData.paymentDetails || [] }, diff --git a/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/info.js b/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/info.js index 9a267616..7274c823 100644 --- a/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/info.js +++ b/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/info.js @@ -2,7 +2,7 @@ const UNION_REIMBURSE_INFO = { template: /*language=HTML*/ ` - +
@@ -308,6 +308,9 @@ const UNION_REIMBURSE_INFO = {
+
`, @@ -336,18 +339,23 @@ const UNION_REIMBURSE_INFO = { }, mounted() { this.injectInfoStyle() - const manager = window.h5HistoryLayerManager - if (manager) { - manager.ensureRegistered("union-reimburse-info") - this.$set(this, "historyLayerUnsubscribe", manager.subscribe((layers) => { - this.$set(this, "visible", layers.includes(this.historyLayerName)) - })) - } + this.subscribeHistoryLayer() }, beforeDestroy() { if (this.historyLayerUnsubscribe) this.historyLayerUnsubscribe() }, methods: { + // PJAX 会重置全局历史栈订阅;每次打开前重新订阅,保证返回事件能同步关闭详情。 + subscribeHistoryLayer() { + if (this.historyLayerUnsubscribe) this.historyLayerUnsubscribe() + this.$set(this, "historyLayerUnsubscribe", null) + const manager = window.h5HistoryLayerManager + if (!manager) return + manager.ensureRegistered("union-reimburse-info") + this.$set(this, "historyLayerUnsubscribe", manager.subscribe((layers) => { + this.$set(this, "visible", layers.includes(this.historyLayerName)) + })) + }, injectInfoStyle() { // 当前组件是普通 JS 对象注册,Vue 不会自动注入 style 字段,这里只为本详情弹窗注入一次样式。 const styleId = "union-reimburse-info-style" @@ -365,6 +373,7 @@ const UNION_REIMBURSE_INFO = { this.$set(this, "detailTitle", title || "报销详情") this.$set(this, "currentPaymentIndex", 0) // 详情弹层的显示状态由全局历史栈统一同步,确保系统返回键与页面返回按钮关闭同一层。 + this.subscribeHistoryLayer() const manager = window.h5HistoryLayerManager if (manager && manager.open(this.historyLayerName)) { this.getInfo() @@ -375,10 +384,13 @@ const UNION_REIMBURSE_INFO = { this.getInfo() this.getDoneTasks() }, - // 只关闭当前详情对应的历史层,避免误关闭审核确认弹框等上层业务弹框。 + // 详情之上存在确认框或预览时先关闭最上层;无历史层时才直接关闭详情。 onClose() { const manager = window.h5HistoryLayerManager - if (manager && manager.close(this.historyLayerName)) return + if (manager && manager.stack.length) { + manager.close() + return + } this.$set(this, "visible", false) }, formatCreateTime(value) { @@ -533,12 +545,19 @@ const UNION_REIMBURSE_INFO = { color: #1989fa; } - .detail-container { + .union-reimburse-info-detail > .detail-container { flex: 1; + min-height: 0; overflow: hidden; background: #f3f7fd; } + /* 审核按钮占独立底部区域,意见表单随正文滚动,避免被按钮遮挡或挤出可视区。 */ + .union-reimburse-info-footer { + flex-shrink: 0; + background: #fff; + } + .union-info-scroll { height: 100%; overflow-y: auto; diff --git a/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/review/index.html b/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/review/index.html index 556827e1..fba9bef7 100644 --- a/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/review/index.html +++ b/src/main/resources/views/platform/zhghh5/dayofficework/unionReimburse/review/index.html @@ -44,7 +44,7 @@ layout("/layouts/platform_h5.html"){ -