-- 复诊到期跟进(P2 主管团队视图)菜单,挂在「数据统计」目录(name='数据统计' AND type='M')下,模板 1.9.20260715/add_auto_assign_log_menu.sql。 -- 页面路径: /stats/revisit_due -- 前端组件: /stats/revisit_due/index -- 查询权限: tcm.revisitDue/lists(C 类页面,lists 支持 export=1/2 导出,不另设 export 权限点) -- 流水权限: tcm.revisitDue/logs(A 类按钮,挂在页面下) -- 数据来源: zyt_tcm_diagnosis_revisit_due / zyt_tcm_diagnosis_revisit_due_log(命令 tcm:revisit-due-scan 与业务钩子写入) -- 为什么必须登记:AuthMiddleware 对「未在菜单登记」的接口对所有登录账号直接放行,登记后未授权账号返回「权限不足」。 -- 注意:本文件【不自动授予任何角色】——主管视图由管理员在「角色管理」里按角色勾选; -- 数据范围由角色 data_scope 决定(HasDataScopeFilter::applyDataScopeByOwner('assistant_id')),医助本人只能看到自己的行。 -- 幂等:INSERT … SELECT … WHERE NOT EXISTS,可重复执行。 SET @stats_root_id := (SELECT id FROM zyt_system_menu WHERE name = '数据统计' AND type = 'M' LIMIT 1); INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`) SELECT @stats_root_id, 'C', '复诊到期跟进', '', 13, 'tcm.revisitDue/lists', '/stats/revisit_due', '/stats/revisit_due/index', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP() FROM DUAL WHERE @stats_root_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/lists'); SET @revisit_due_page_id := (SELECT id FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/lists' AND type = 'C' LIMIT 1); INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`) SELECT @revisit_due_page_id, 'A', '复诊到期-流水', '', 1, 'tcm.revisitDue/logs', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP() FROM DUAL WHERE @revisit_due_page_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.revisitDue/logs');