diff --git a/inventory-web/src/api/system/permission.ts b/inventory-web/src/api/system/permission.ts index c02aaeb..d771010 100644 --- a/inventory-web/src/api/system/permission.ts +++ b/inventory-web/src/api/system/permission.ts @@ -4,7 +4,8 @@ import request from '@/utils/request' export function getAllPermissionTree() { return request({ url: '/v1/permissions/tree', - method: 'get' + method: 'get', + params: { _t: Date.now() } }) } @@ -12,7 +13,9 @@ export function getAllPermissionTree() { export function getRolePermissions(roleCode: string) { return request({ url: '/v1/permissions/role/' + roleCode, - method: 'get' + method: 'get', + // 加时间戳防浏览器缓存,确保权限修改后立即反映 + params: { _t: Date.now() } }) } diff --git a/inventory-web/src/views/system/PermissionConfig.vue b/inventory-web/src/views/system/PermissionConfig.vue index 161d457..f60eeeb 100644 --- a/inventory-web/src/views/system/PermissionConfig.vue +++ b/inventory-web/src/views/system/PermissionConfig.vue @@ -498,7 +498,17 @@ const handleSave = async () => { permissions: permissions }) if (res.code === 200) { - ElMessage.success('权限保存成功!请手动切换角色以刷新显示') + ElMessage.success('权限保存成功!') + // 立即重新拉取权限刷新 UI(带 cache-busting,确保拿到最新数据) + if (currentRole.value) { + try { + const refreshRes: any = await getRolePermissions(currentRole.value) + if (refreshRes.code === 200) { + const perms = new Set([...(refreshRes.data.menus || []), ...(refreshRes.data.elements || [])]) + setRowStatus(tableData.value, perms) + } + } catch (e) { /* 静默失败 */ } + } } else { ElMessage.error(res.msg || '保存失败') }