From 50d0d110a2c6301fdb46f9fedc06a69f796d43b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Mon, 7 Sep 2026 21:35:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E5=90=8E=E5=8F=B0=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=B5=AE=E5=B1=82(modal-mask=203000/?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E7=AD=89=E5=BE=853100)=E9=81=AE=E6=8C=A1=20E?= =?UTF-8?q?lement=20=E6=B6=88=E6=81=AF=E2=80=94=E2=80=94ElMessage=20?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=8A=AC=E5=8D=87=20z-index=204000=E3=80=81?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E6=B6=88=E6=81=AF=E7=9B=92(ElOverlay.is-mess?= =?UTF-8?q?age-box)=E6=8A=AC=E5=8D=87=204100,=E4=BF=AE=E5=A4=8D=E5=8E=BB?= =?UTF-8?q?=E9=87=8D=E5=8F=B0=E8=B4=A6=E5=AF=BC=E5=85=A5/=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E6=9C=AA=E9=80=89=E5=88=86=E7=BB=84=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E8=A2=AB=E6=B5=AE=E5=B1=82=E6=8C=A1=E4=BD=8F=E7=9C=8B=E4=B8=8D?= =?UTF-8?q?=E8=A7=81;=E6=96=B0=E5=A2=9E=E5=B1=82=E7=BA=A7=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-frontend-vue/src/styles/main.css | 6 ++++ .../tests/align-message-z-overlay.test.ts | 34 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 admin-frontend-vue/tests/align-message-z-overlay.test.ts diff --git a/admin-frontend-vue/src/styles/main.css b/admin-frontend-vue/src/styles/main.css index 58f856f7..1e17f367 100644 --- a/admin-frontend-vue/src/styles/main.css +++ b/admin-frontend-vue/src/styles/main.css @@ -183,6 +183,12 @@ button, input, textarea, select { font: inherit; } .el-tag { border-radius: 6px; } .el-button { border-radius: 9px; } .el-message-box { border-radius: 14px; } +/* 消息提示层级:Element 弹层 z-index 自 2000 递增,低于页面自定义 modal-mask(3000/3100); + 遮罩弹窗内触发的 ElMessage 警告(如去重台账导入/编辑未选分组)会被浮层挡住看不见, + 统一把消息提示抬到 4000(高于全部自定义浮层),!important 覆盖实例内联层级。 + 消息盒确认弹窗同类隐患一并抬到 4100(z-index 落在 .el-overlay.is-message-box 内联样式)。 */ +.el-message { z-index: 4000 !important; } +.el-overlay.is-message-box { z-index: 4100 !important; } /* 分组筛选下拉(可模糊搜索):对齐旧版控件观感(42px/9px/浅底/focus ring)。 */ .el-select.admin-filter { diff --git a/admin-frontend-vue/tests/align-message-z-overlay.test.ts b/admin-frontend-vue/tests/align-message-z-overlay.test.ts new file mode 100644 index 00000000..e3f93812 --- /dev/null +++ b/admin-frontend-vue/tests/align-message-z-overlay.test.ts @@ -0,0 +1,34 @@ +import test from 'node:test' +import assert from 'node:assert/strict' +import { readSource } from './helpers.ts' + +// 维护修复:页面自定义 modal-mask(z-index:3000) / 导出等待遮罩(3100) 高于 Element 默认 +// 弹层计数(自 2000 递增),遮罩弹窗内触发的 ElMessage 警告会被浮层挡住看不见—— +// 已在整站层面把消息提示抬到 4000、消息盒确认弹窗抬到 4100,统一高于全部自定义浮层。 + +test('el_message_above_custom_overlays', () => { + const css = readSource('src/styles/main.css') + assert.match( + css, + /\.el-message\s*\{[^}]*z-index:\s*4000\s*!important/, + '消息提示需抬升到 4000 且 !important(覆盖 Element 实例内联层级)', + ) + assert.match( + css, + /\.el-overlay\.is-message-box\s*\{[^}]*z-index:\s*4100\s*!important/, + '消息盒确认弹窗需抬升到 4100(z-index 落在 .el-overlay.is-message-box 内联样式)', + ) +}) + +test('dedupe_overlay_and_warning_kept', () => { + const page = readSource('src/pages/asin/DedupeRegistryPage.vue') + assert.match(page, /\.modal-mask\s*\{[^}]*z-index:\s*3000/, '页内遮罩仍为 3000,消息 4000 需保持在其上') + assert.match(page, /\.dedupe-export-wait-mask\s*\{[^}]*z-index:\s*3100/, '导出等待遮罩 3100 同样低于消息 4000') + assert.match(page, /请选择数据权限分组|请选择分组/, '导入/编辑未选分组需保留警告岔口') +}) + +test('records_preview_overlay_below_message', () => { + const page = readSource('src/pages/records/RecordsHistoryPage.vue') + assert.match(page, /\.modal-mask\s*\{[^}]*z-index:\s*3000/, '记录预览遮罩 3000 同样低于消息 4000') +}) +