Files
yunzerwebsiteallinone/go/docs/sql/platform_sched_template_menu.sql
2026-10-26 08:54:34 +08:00

43 lines
2.6 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================================
-- 排班模板 —— 平台端菜单(yz_system_menu)
--
-- 挂载位置:平台端「基础设置」(path = /basicSettings)下,与「字典管理」并列。
-- 基础设置
-- └─ 排班模板(页面,/basicSettings/schedTemplate)
--
-- 说明:
-- 1. views = [1]:只在平台端出现;租户端通过 /backend/oa/scheduling/templates
-- 读取模板(不在租户菜单里暴露模板管理入口)。
-- 2. 平台端菜单接口(/platform/menu/:id)按 views 过滤,不按角色 rights 过滤,
-- 因此本脚本无需追加角色授权。
-- 3. 幂等:按 path 判重,重复执行不会产生重复菜单。
-- 4. 本脚本不使用会话变量 / PREPARE,可整段执行也可逐条执行。
-- ============================================================
-- 1) 有「基础设置」目录时,挂到该目录下
INSERT INTO yz_system_menu
(pid, title, path, component_path, icon, sort, status, is_visible, views, type, creater, remark)
SELECT
(SELECT id FROM (SELECT id FROM yz_system_menu WHERE path = '/basicSettings' AND delete_time IS NULL ORDER BY id LIMIT 1) b),
'排班模板', '/basicSettings/schedTemplate', '/system/schedTemplate/index.vue',
'Calendar', 90, 1, 1, '[1]', 2, 'system',
'全局排班模板:预置双休/单休/大小周/月休/三班倒/做一休一,租户调用后存入自己的方案'
FROM DUAL
WHERE EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/basicSettings' AND delete_time IS NULL) b)
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/basicSettings/schedTemplate' AND delete_time IS NULL) e);
-- 2) 未找到「基础设置」目录时,退化为平台端顶级菜单(pid=0)
INSERT INTO yz_system_menu
(pid, title, path, component_path, icon, sort, status, is_visible, views, type, creater, remark)
SELECT 0, '排班模板', '/basicSettings/schedTemplate', '/system/schedTemplate/index.vue',
'Calendar', 92, 1, 1, '[1]', 2, 'system',
'全局排班模板:预置双休/单休/大小周/月休/三班倒/做一休一,租户调用后存入自己的方案'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/basicSettings' AND delete_time IS NULL) b)
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/basicSettings/schedTemplate' AND delete_time IS NULL) e);
-- 结果校验:应返回 1 行
SELECT id, pid, title, path, component_path, views, type, is_visible, status
FROM yz_system_menu
WHERE delete_time IS NULL AND path = '/basicSettings/schedTemplate';