From 1b1b934d87c509eb5e15aec78564e51397f51aef Mon Sep 17 00:00:00 2001 From: liuminghui <468701464@qq.com> Date: Mon, 2 Nov 2026 10:41:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20261102_supplier_menu_path.sql | 10 ++++++++++ bms-front/src/router/index.js | 15 ++++++++++++++- .../supplierinfo/supplieredit/index.vue | 4 +++- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 bms-back/sql/customer+supplier/20261102_supplier_menu_path.sql diff --git a/bms-back/sql/customer+supplier/20261102_supplier_menu_path.sql b/bms-back/sql/customer+supplier/20261102_supplier_menu_path.sql new file mode 100644 index 00000000..0cd46f92 --- /dev/null +++ b/bms-back/sql/customer+supplier/20261102_supplier_menu_path.sql @@ -0,0 +1,10 @@ +-- 供应商管理是一级目录,path 被写成了 "1",列表实际地址变成 /1/supplierinfo。 +-- 编辑页取消若写死 /customersuppliermanagement/supplierinfo,路由未注册,会落到 404。 +-- 把目录地址改成 supplier,列表即为 /supplier/supplierinfo。可重复执行。 +UPDATE sys_menu +SET path = 'supplier', + update_by = 'admin', + update_time = NOW() +WHERE menu_id = 2497 + AND menu_type = 'M' + AND path = '1'; diff --git a/bms-front/src/router/index.js b/bms-front/src/router/index.js index 5f48a047..e6d2e910 100644 --- a/bms-front/src/router/index.js +++ b/bms-front/src/router/index.js @@ -197,7 +197,11 @@ export const dynamicRoutes = [ path: 'index', component: () => import('@/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue'), name: 'SupplierEdit', - meta: { title: '供应商编辑', activeMenu: '/customersuppliermanagement/supplierinfo' } + // 高亮地址跟菜单走。供应商目录 path 曾被写成 "1",列表实际是 /1/supplierinfo,写死客户管理目录会对不上。 + beforeEnter(to) { + to.meta.activeMenu = supplierListPath() + }, + meta: { title: '供应商编辑', activeMenu: '/supplier/supplierinfo' } } ] }, @@ -264,4 +268,13 @@ const router = createRouter({ }, }) +/** + * 供应商列表的真实地址由菜单注册,不写死目录。 + * 当前库里「供应商管理」目录 path 若仍是 1,这里会得到 /1/supplierinfo。 + */ +export function supplierListPath() { + const hit = router.getRoutes().find(r => /\/supplierinfo$/.test(r.path)) + return hit ? hit.path : '/supplier/supplierinfo' +} + export default router diff --git a/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue b/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue index 016ad13b..a4486076 100644 --- a/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue +++ b/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue @@ -622,6 +622,7 @@ import { getToken } from '@/utils/auth' import axios from 'axios' import { saveAs } from 'file-saver' import { useChannels, parseChannelCodes } from '@/components/ChannelSelect/useChannels' +import { supplierListPath } from '@/router' const { proxy } = getCurrentInstance() const route = useRoute() @@ -1063,7 +1064,8 @@ function submitForm() { } function goBack() { - router.push({ path: '/customersuppliermanagement/supplierinfo' }) + // 关闭编辑页并回到已注册的供应商列表。菜单目录 path 是 1 时列表为 /1/supplierinfo,不能回到客户管理那条不存在的地址。 + proxy.$tab.closeOpenPage({ path: supplierListPath() }) } /* ============ 初始化 ============ */