-- ============================================================ -- OA 审批中心 —— 菜单配置(yz_system_menu) -- 幂等脚本:按 path 判重,重复执行不会产生重复菜单 -- 执行:mysql -h -P -u -p < oa_approvalcenter_menus.sql -- -- 对应页面: -- /apps/oa/approvalcenter/mine 我的发起(我提交的单据) -- /apps/oa/approvalcenter/list 审批列表(待我审批 / 我已处理) -- /apps/oa/approvalcenter/settings 审批流设置(复用系统管理的编排能力) -- 注意:目录本身依赖 OA 应用根菜单 '/apps/oa',缺失时脚本不会写入任何数据。 -- ============================================================ SET @oa_id := ( SELECT id FROM yz_system_menu WHERE path = '/apps/oa' AND delete_time IS NULL LIMIT 1 ); -- ---------- 审批中心(目录) ---------- INSERT INTO yz_system_menu (pid, title, path, component_path, icon, sort, status, is_visible, views, type, creater, remark) SELECT @oa_id, '审批中心', '/apps/oa/approvalcenter', NULL, 'Stamp', 99, 1, 1, '[2]', 1, 'system', '发起、处理与配置 OA 审批流程' FROM DUAL WHERE @oa_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/apps/oa/approvalcenter' AND delete_time IS NULL) x); SET @center_id := ( SELECT id FROM yz_system_menu WHERE path = '/apps/oa/approvalcenter' AND delete_time IS NULL LIMIT 1 ); -- ---------- 我的发起 ---------- INSERT INTO yz_system_menu (pid, title, path, component_path, icon, sort, status, is_visible, views, type, creater, remark) SELECT @center_id, '我的发起', '/apps/oa/approvalcenter/mine', 'apps/oa/approvalcenter/mine.vue', 'Promotion', 1, 1, 1, '[2]', 2, 'system', '我发起的审批单据与当前进度,支持撤回' FROM DUAL WHERE @center_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/apps/oa/approvalcenter/mine' AND delete_time IS NULL) x); -- ---------- 审批列表 ---------- INSERT INTO yz_system_menu (pid, title, path, component_path, icon, sort, status, is_visible, views, type, creater, remark) SELECT @center_id, '审批列表', '/apps/oa/approvalcenter/list', 'apps/oa/approvalcenter/list.vue', 'Tickets', 2, 1, 1, '[2]', 2, 'system', '待我审批 / 我已处理的任务,可直接通过或驳回' FROM DUAL WHERE @center_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/apps/oa/approvalcenter/list' AND delete_time IS NULL) x); -- ---------- 审批流设置 ---------- INSERT INTO yz_system_menu (pid, title, path, component_path, icon, sort, status, is_visible, views, type, creater, remark) SELECT @center_id, '审批流设置', '/apps/oa/approvalcenter/settings', 'apps/oa/approvalcenter/settings.vue', 'Setting', 3, 1, 1, '[2]', 2, 'system', '按功能模块编排审批流程(复用系统管理 → 审批流配置)' FROM DUAL WHERE @center_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/apps/oa/approvalcenter/settings' AND delete_time IS NULL) x); -- ---------- 结果校验 ---------- SELECT id, pid, title, path, component_path, type, sort FROM yz_system_menu WHERE delete_time IS NULL AND path LIKE '/apps/oa/approvalcenter%' ORDER BY pid, sort;