-- ============================================================ -- 物业人员管理 - 菜单数据初始化SQL -- 功能: 为Web端左侧菜单和Android端工作台提供菜单入口 -- 数据库: MicroCommunity -- ============================================================ -- 使用方法: -- 方案一(推荐): 登录Web后台 → 开发管理 → 手动添加菜单目录/菜单组/菜单项 -- 方案二: 直接执行此SQL(注意先检查ID是否冲突) -- ============================================================ -- ============================================================ -- 方案一:通过Web后台界面添加(推荐,无需执行SQL) -- ============================================================ -- 1. 登录系统 -> 开发管理 -> 菜单目录 -> 新增目录: -- 名称: 人员管理, URL: #, 序号: 99, 是否显示: Y -- 2. 开发管理 -> 菜单组 -> 新增菜单组(选择刚创建的目录): -- 名称: 轨迹监控, 图标: el-icon-map-location, 序号: 1 -- 名称: 打卡管理, 图标: el-icon-time, 序号: 2 -- 名称: 保安巡更, 图标: el-icon-warning, 序号: 3 -- 名称: 保洁作业, 图标: el-icon-brush, 序号: 4 -- 名称: 工单管理, 图标: el-icon-s-tools, 序号: 5 -- 名称: 人员管理, 图标: el-icon-user, 序号: 6 -- 3. 开发管理 -> 菜单 -> 为每个菜单组新增菜单项: -- 轨迹监控 → 轨迹查询: /property/track -- 打卡管理 → 打卡记录: /property/attendance -- 保安巡更 → 巡更记录: /property/patrol -- 保洁作业 → 作业记录: /property/cleaning -- 工单管理 → 工单列表: /property/repair -- 人员管理 → 人员列表: /property/staff -- 工单管理 → 提交工单: /property/submitRepair (APP端用) -- ============================================================ -- 方案二:直接执行SQL(根据实际store_type调整) -- ============================================================ -- 注意事项: -- 1. store_type 值根据实际项目确定,常见值: 800900000001(物业) -- 2. 执行前先查询确认ID不冲突 -- 3. 执行后可能需要刷新页面或重新登录 -- 设置变量(请根据实际数据库调整store_type) SET @store_type = '800900000003'; -- 物业类型,根据实际情况调整 SET @ca_id = '20260511001'; -- ============================================================ -- 1. 创建菜单目录(Web端顶部导航标签) -- ============================================================ -- 表结构: m_menu_catalog(store_type, ca_id, name, icon, seq, url, is_show, priv_id) INSERT INTO m_menu_catalog (store_type, ca_id, name, icon, seq, url, is_show, priv_id) VALUES (@store_type, @ca_id, '人员管理', 'el-icon-s-custom', 99, '#', 'Y', '') ON DUPLICATE KEY UPDATE name = '人员管理'; -- ============================================================ -- 2. 创建菜单组(Web端左侧一级菜单 / Android工作台分组) -- ============================================================ -- 表结构: m_menu_group(g_id, name, icon, label, seq, description, group_type, store_type) INSERT INTO m_menu_group (g_id, name, icon, label, seq, description, group_type, store_type) VALUES ('20260511101', '轨迹监控', 'el-icon-map-location', '轨迹监控', 1, '物业人员轨迹监控', 'P_WEB', @store_type) ON DUPLICATE KEY UPDATE name = '轨迹监控'; INSERT INTO m_menu_group (g_id, name, icon, label, seq, description, group_type, store_type) VALUES ('20260511102', '打卡管理', 'el-icon-time', '打卡管理', 2, '上下班打卡记录管理', 'P_WEB', @store_type) ON DUPLICATE KEY UPDATE name = '打卡管理'; INSERT INTO m_menu_group (g_id, name, icon, label, seq, description, group_type, store_type) VALUES ('20260511103', '保安巡更', 'el-icon-warning', '保安巡更', 3, '保安巡更记录管理', 'P_WEB', @store_type) ON DUPLICATE KEY UPDATE name = '保安巡更'; INSERT INTO m_menu_group (g_id, name, icon, label, seq, description, group_type, store_type) VALUES ('20260511104', '保洁作业', 'el-icon-brush', '保洁作业', 4, '保洁作业记录管理', 'P_WEB', @store_type) ON DUPLICATE KEY UPDATE name = '保洁作业'; INSERT INTO m_menu_group (g_id, name, icon, label, seq, description, group_type, store_type) VALUES ('20260511105', '工单管理', 'el-icon-s-tools', '工单管理', 5, '维修工单管理', 'P_WEB', @store_type) ON DUPLICATE KEY UPDATE name = '工单管理'; INSERT INTO m_menu_group (g_id, name, icon, label, seq, description, group_type, store_type) VALUES ('20260511106', '人员管理', 'el-icon-user', '人员管理', 6, '物业人员列表管理', 'P_WEB', @store_type) ON DUPLICATE KEY UPDATE name = '人员管理'; -- ============================================================ -- 3. 关联菜单目录与菜单组(目录与菜单组的映射关系) -- ============================================================ -- 表结构: m_menu_group_catalog(store_type, g_id, gc_id, ca_id) INSERT INTO m_menu_group_catalog (store_type, g_id, gc_id, ca_id) VALUES (@store_type, '20260511101', CONCAT('GC20260511101'), @ca_id); INSERT INTO m_menu_group_catalog (store_type, g_id, gc_id, ca_id) VALUES (@store_type, '20260511102', CONCAT('GC20260511102'), @ca_id); INSERT INTO m_menu_group_catalog (store_type, g_id, gc_id, ca_id) VALUES (@store_type, '20260511103', CONCAT('GC20260511103'), @ca_id); INSERT INTO m_menu_group_catalog (store_type, g_id, gc_id, ca_id) VALUES (@store_type, '20260511104', CONCAT('GC20260511104'), @ca_id); INSERT INTO m_menu_group_catalog (store_type, g_id, gc_id, ca_id) VALUES (@store_type, '20260511105', CONCAT('GC20260511105'), @ca_id); INSERT INTO m_menu_group_catalog (store_type, g_id, gc_id, ca_id) VALUES (@store_type, '20260511106', CONCAT('GC20260511106'), @ca_id); -- ============================================================ -- 3.5 关联菜单组与项目(物业类型必须配置,否则菜单不显示) -- ============================================================ -- 表结构: m_menu_group_community(g_id, gc_id, name, community_name, community_id) -- 将菜单组分配到指定项目,支持不同项目看到不同的菜单 -- 根据实际 community_id 和 community_name 调整 INSERT IGNORE INTO m_menu_group_community (g_id, gc_id, name, community_name, community_id) SELECT mg.g_id, CONCAT('GC_CM_', mg.g_id), mg.name, '请修改为实际项目名称', '请修改为实际community_id' FROM m_menu_group mg WHERE mg.g_id IN ('20260511101','20260511102','20260511103','20260511104','20260511105','20260511106') AND mg.store_type = @store_type; -- ============================================================ -- 4. 创建菜单项(子菜单,对应具体页面路由) -- ============================================================ -- 表结构: m_menu(m_id, name, g_id, url, seq, p_id, description, is_show) -- url 格式: Web端用 /property/xxx,Android端通过 href.contains("keyword") 匹配路由 -- 轨迹监控 -> 轨迹查询 INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511201', '轨迹查询', '20260511101', '/property/track', 1, '', '查看人员历史行动轨迹', 'Y') ON DUPLICATE KEY UPDATE url = '/property/track'; -- 打卡管理 -> 打卡记录 INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511202', '打卡记录', '20260511102', '/property/attendance', 1, '', '查看上下班打卡记录', 'Y') ON DUPLICATE KEY UPDATE url = '/property/attendance'; -- 保安巡更 -> 巡更记录 INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511203', '巡更记录', '20260511103', '/property/patrol', 1, '', '查看保安巡更记录', 'Y') ON DUPLICATE KEY UPDATE url = '/property/patrol'; -- 保洁作业 -> 作业记录 INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511204', '作业记录', '20260511104', '/property/cleaning', 1, '', '查看保洁作业记录', 'Y') ON DUPLICATE KEY UPDATE url = '/property/cleaning'; -- 工单管理 -> 工单列表 INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511205', '工单列表', '20260511105', '/property/repair', 1, '', '维修工单管理', 'Y') ON DUPLICATE KEY UPDATE url = '/property/repair'; -- 工单管理 -> 提交工单(Android端使用) INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511206', '提交工单', '20260511105', '/property/submitRepair', 2, '', '提交维修工单(APP端使用)', 'Y') ON DUPLICATE KEY UPDATE url = '/property/submitRepair'; -- 人员管理 -> 人员列表 INSERT INTO m_menu (m_id, name, g_id, url, seq, p_id, description, is_show) VALUES ('20260511207', '人员列表', '20260511106', '/property/staff', 1, '', '物业人员列表', 'Y') ON DUPLICATE KEY UPDATE url = '/property/staff'; -- ============================================================ -- 5. 创建权限(p_privilege表)- 菜单与权限关联 -- ============================================================ -- 表结构: p_privilege(p_id, name, m_id, domain, status_cd) INSERT IGNORE INTO p_privilege (p_id, name, m_id, domain, status_cd) SELECT CONCAT('PRIV', m_id), name, m_id, @store_type, '0' FROM m_menu WHERE g_id IN ('20260511101','20260511102','20260511103','20260511104','20260511105','20260511106'); -- ============================================================ -- 验证SQL:执行后查询确认 -- ============================================================ -- SELECT * FROM m_menu_catalog WHERE ca_id = @ca_id; -- SELECT * FROM m_menu_group WHERE g_id LIKE '202605111%'; -- SELECT * FROM m_menu_group_catalog WHERE ca_id = @ca_id; -- SELECT * FROM m_menu WHERE g_id LIKE '202605111%';