Files
erp-next/sql/menu_reorganize.sql

81 lines
5.7 KiB
MySQL
Raw Normal View History

-- ═══════════════════════════════════════════════════════════════════
-- 菜单重组:按业务模块分组到统一父菜单 + 新增审批配置
-- ═══════════════════════════════════════════════════════════════════
SET NAMES utf8mb4;
-- ───────────────────────────────────────────────
-- 1. 新建一级业务父菜单M 类型 = 目录)
-- ───────────────────────────────────────────────
INSERT IGNORE INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
VALUES
(2100, '基础数据', 0, 10, 'basedata', NULL, 1, 0, 'M', '0', '0', '', 'tree-table', 'admin', NOW()),
(2110, '报价采购', 0, 20, 'quote', NULL, 1, 0, 'M', '0', '0', '', 'money', 'admin', NOW()),
(2120, '订单履约', 0, 30, 'fulfill', NULL, 1, 0, 'M', '0', '0', '', 'shopping', 'admin', NOW()),
(2130, '系统配置', 0, 90, 'bizconfig',NULL, 1, 0, 'M', '0', '0', '', 'tool', 'admin', NOW());
-- 统计分析 2019 已存在,保持 order_num
UPDATE sys_menu SET order_num = 40 WHERE menu_id = 2019;
-- ───────────────────────────────────────────────
-- 2. 已有子菜单按业务归类到新父菜单
-- 用 perms 标识 ,避免依赖具体 menu_id
-- ───────────────────────────────────────────────
-- 基础数据
UPDATE sys_menu SET parent_id = 2100, order_num = 1 WHERE perms = 'bid:material:list';
UPDATE sys_menu SET parent_id = 2100, order_num = 2 WHERE perms = 'bid:category:list';
UPDATE sys_menu SET parent_id = 2100, order_num = 3 WHERE perms = 'bid:client:list';
UPDATE sys_menu SET parent_id = 2100, order_num = 4 WHERE perms = 'bid:supplier:list';
-- 报价采购
UPDATE sys_menu SET parent_id = 2110, order_num = 1 WHERE perms = 'bid:rfq:list';
UPDATE sys_menu SET parent_id = 2110, order_num = 2 WHERE perms = 'bid:quotation:list';
UPDATE sys_menu SET parent_id = 2110, order_num = 3 WHERE perms = 'bid:comparison:list';
UPDATE sys_menu SET parent_id = 2110, order_num = 4 WHERE perms = 'bid:purchaseorder:list';
UPDATE sys_menu SET parent_id = 2110, order_num = 5 WHERE perms = 'bid:clientquote:list';
-- 订单履约
UPDATE sys_menu SET parent_id = 2120, order_num = 1 WHERE perms = 'bid:order:pending';
UPDATE sys_menu SET parent_id = 2120, order_num = 2 WHERE perms = 'bid:order:transit';
UPDATE sys_menu SET parent_id = 2120, order_num = 3 WHERE perms = 'bid:order:history';
UPDATE sys_menu SET parent_id = 2120, order_num = 4 WHERE perms = 'bid:order:closeDate';
UPDATE sys_menu SET parent_id = 2120, order_num = 5 WHERE perms = 'bid:objection:list';
UPDATE sys_menu SET parent_id = 2120, order_num = 6 WHERE perms = 'bid:clientDelivery:list';
-- 兼容旧 permsorder:list订单履约旧索引页若存在放履约组顶部
UPDATE sys_menu SET parent_id = 2120, order_num = 0 WHERE perms = 'bid:order:list';
-- 系统配置 / 业务配置
UPDATE sys_menu SET parent_id = 2130, order_num = 2 WHERE perms = 'bid:evaluation:list';
UPDATE sys_menu SET parent_id = 2130, order_num = 3 WHERE perms = 'bid:transaction:list';
UPDATE sys_menu SET parent_id = 2130, order_num = 4 WHERE perms = 'bid:operationlog:list';
UPDATE sys_menu SET parent_id = 2130, order_num = 5 WHERE perms = 'bid:tenant:list';
-- ───────────────────────────────────────────────
-- 3. 新增:审批配置(挂在系统配置下)
-- ───────────────────────────────────────────────
DELETE FROM sys_menu WHERE perms = 'bid:approval:list';
INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
VALUES (2131, '审批配置', 2130, 1, 'approval', 'bid/approval/index', 1, 0, 'C', '0', '0', 'bid:approval:list', 'tree', 'admin', NOW());
-- 审批配置按钮权限
DELETE FROM sys_menu WHERE perms IN ('bid:approval:edit','bid:approval:query');
INSERT INTO sys_menu(menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
VALUES
('查询', 2131, 1, '', NULL, 1, 0, 'F', '0', '0', 'bid:approval:query', '#', 'admin', NOW()),
('编辑', 2131, 2, '', NULL, 1, 0, 'F', '0', '0', 'bid:approval:edit', '#', 'admin', NOW());
-- 给 admin 角色role_id=1授权
INSERT IGNORE INTO sys_role_menu(role_id, menu_id)
SELECT 1, menu_id FROM sys_menu
WHERE perms IN ('bid:approval:list','bid:approval:query','bid:approval:edit')
OR menu_id IN (2100, 2110, 2120, 2130);
-- ───────────────────────────────────────────────
-- 4. 验证:列出当前一级菜单
-- ───────────────────────────────────────────────
SELECT menu_id, menu_name, order_num, menu_type, perms
FROM sys_menu
WHERE parent_id = 0 AND visible = '0' AND status = '0'
ORDER BY order_num;