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"){ -