-- 采购申请「批量提交」按钮权限 -- 影响页面:ERP -> 采购管理 -> 采购申请 -- -- 背景:采购申请提交接口(PUT /erp/purchase-request/submit、/submit-batch)使用 -- 权限码 erp:purchase-request:submit,但 system_menu 中从未维护该权限按钮, -- 导致前端工具栏「批量提交」按钮被权限过滤隐藏,普通角色调用接口会 403。 -- -- 本脚本幂等,可重复执行。执行后需清理权限缓存(重启后端或删除 -- redis 中的 permission_menu_ids:erp:purchase-request:submit 与相关 role_menu_ids:*), -- 前端重新登录/刷新后生效。 -- 1. 补按钮菜单(挂在“采购申请”菜单下) INSERT INTO system_menu (name, permission, type, sort, parent_id, status, icon, creator, updater) SELECT '批量提交审批', 'erp:purchase-request:submit', 3, 9, p.id, 0, '#', '1', '1' FROM system_menu p WHERE p.component = 'erp/purchase/request/index' AND p.type = 2 AND p.deleted = b'0' AND NOT EXISTS ( SELECT 1 FROM system_menu m WHERE m.permission = 'erp:purchase-request:submit' AND m.deleted = b'0' ); -- 2. 授予已拥有“采购申请”菜单的角色 INSERT INTO system_role_menu (role_id, menu_id, creator, updater) SELECT DISTINCT rm.role_id, m.id, '1', '1' FROM system_role_menu rm JOIN system_menu p ON p.component = 'erp/purchase/request/index' AND p.type = 2 AND p.deleted = b'0' JOIN system_menu m ON m.permission = 'erp:purchase-request:submit' AND m.deleted = b'0' WHERE rm.menu_id = p.id AND rm.deleted = b'0' AND NOT EXISTS ( SELECT 1 FROM system_role_menu x WHERE x.role_id = rm.role_id AND x.menu_id = m.id AND x.deleted = b'0' );