更新若干功能
This commit is contained in:
1 parent
892ba5886d
commit
79d5ae6b66
45 files changed
+6755
-38
No files matched your search
@@ -0,0 +1,64 @@
|
||||
-- ============================================================
|
||||
-- OA 工作日报 —— 菜单配置(yz_system_menu)
|
||||
-- 幂等脚本:按 path 判重,重复执行不会产生重复菜单
|
||||
-- 执行:mysql -h <host> -P <port> -u <user> -p <db> < oa_dailyreport_menus.sql
|
||||
--
|
||||
-- 挂载位置:OA → 个人办公(path = '/apps/oa/personal')
|
||||
-- 页面:我的日报 + 团队日报(同一页面内 Tab,团队 Tab 由接口权限决定是否显示)
|
||||
-- 说明:platforms 显式声明为 Web + APP(JSON:["web","app"]),小程序端
|
||||
-- 通过 utils/nav.js 的原生规则跳转到 pages/oa/dailyreport/index。
|
||||
--
|
||||
-- 注意:租户端角色(cid=2)的 rights 是显式菜单 ID 列表,菜单接口会按
|
||||
-- rights 过滤。只插菜单不授权,会导致「个人办公」目录可见但
|
||||
-- 「工作日报」被过滤掉。因此本脚本同时把菜单 ID 追加到角色 rights。
|
||||
-- ============================================================
|
||||
|
||||
SET @personal_id := (
|
||||
SELECT id FROM yz_system_menu
|
||||
WHERE path = '/apps/oa/personal' AND delete_time IS NULL
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO yz_system_menu
|
||||
(pid, title, path, component_path, icon, sort, status, is_visible, views, platforms, type, creater, remark)
|
||||
SELECT @personal_id, '工作日报', '/apps/oa/dailyreport', '/apps/oa/dailyreport/index.vue',
|
||||
'Notebook', 3, 1, 1, '[2]', '["web","app"]', 2, 'system',
|
||||
'按日填写今日完成/明日计划/问题建议,支持附件与评论;主管可查看团队汇总'
|
||||
FROM DUAL
|
||||
WHERE @personal_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM (SELECT id FROM yz_system_menu WHERE path = '/apps/oa/dailyreport' AND delete_time IS NULL) x);
|
||||
|
||||
-- 已有菜单的组件路径统一为带前导斜杠(与个人办公下其他菜单一致)
|
||||
UPDATE yz_system_menu
|
||||
SET component_path = '/apps/oa/dailyreport/index.vue'
|
||||
WHERE path = '/apps/oa/dailyreport'
|
||||
AND delete_time IS NULL
|
||||
AND component_path = 'apps/oa/dailyreport/index.vue';
|
||||
|
||||
SET @report_menu_id := (
|
||||
SELECT id FROM yz_system_menu
|
||||
WHERE path = '/apps/oa/dailyreport' AND delete_time IS NULL
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
-- ---------- 角色授权:把菜单追加到所有租户端角色的 rights ----------
|
||||
-- 只处理 rights 非空(显式授权)的角色;rights 为空表示全权限,无需追加。
|
||||
UPDATE yz_system_admin_role
|
||||
SET rights = CAST(JSON_ARRAY_APPEND(CAST(rights AS JSON), '$', @report_menu_id) AS CHAR)
|
||||
WHERE cid = 2
|
||||
AND rights IS NOT NULL
|
||||
AND TRIM(rights) <> ''
|
||||
AND JSON_VALID(rights)
|
||||
AND @report_menu_id IS NOT NULL
|
||||
AND NOT JSON_CONTAINS(CAST(rights AS JSON), CAST(@report_menu_id AS JSON));
|
||||
|
||||
-- ---------- 结果校验 ----------
|
||||
SELECT id, pid, title, path, component_path, platforms, type, sort
|
||||
FROM yz_system_menu
|
||||
WHERE delete_time IS NULL AND path = '/apps/oa/dailyreport';
|
||||
|
||||
SELECT id, name, tenant_id,
|
||||
JSON_CONTAINS(CAST(rights AS JSON), CAST(@report_menu_id AS JSON)) AS has_dailyreport
|
||||
FROM yz_system_admin_role
|
||||
WHERE cid = 2 AND rights IS NOT NULL AND TRIM(rights) <> ''
|
||||
ORDER BY tenant_id, id;
|
||||
Reference in new issue
Block a user