Files
aiot-platform-cloud/sql/mysql/migrations/2026-04-24_iot_v2_menus.sql
lzh 9912b73c56 feat(iot): IoT v2.0 菜单迁移脚本(规则链 + 子系统)
使用子查询按名称取 parent_id,不写死 ID,兼容不同环境自增序列。
新增:
- 规则链管理(父: 规则引擎)+ 5 个权限按钮 + 隐藏编辑器路由
- 子系统管理(父: 设备接入)+ 4 个权限按钮
待补:告警记录 v2(IotAlarmRecordController 补齐后再执行)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 14:39:26 +08:00

54 lines
5.5 KiB
SQL
Raw 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.

-- IoT v2.0 新功能菜单
-- 说明:不写死 IDparent_id 通过子查询按名称取,避免不同环境 ID 不一致
-- 注意:告警记录 v2 (iot/alarm/record/list) 待补 IotAlarmRecordController 后再加
-- ─────────────────────────────────────────────
-- 1. 规则链管理(父: 规则引擎)
-- ─────────────────────────────────────────────
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES ('规则链管理', '', 2, 3,
(SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则引擎' AND deleted = b'0' LIMIT 1) t),
'rule-chain', 'fa-solid:project-diagram', 'iot/rule/chain/list', 'RuleChainList',
0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
-- 规则链管理 按钮
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
('规则链查询', 'iot:rule:query', 3, 1, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则链管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('规则链创建', 'iot:rule:create', 3, 2, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则链管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('规则链更新', 'iot:rule:update', 3, 3, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则链管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('规则链删除', 'iot:rule:delete', 3, 4, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则链管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('规则链启用停用', 'iot:rule:update', 3, 5, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则链管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
-- 规则链编辑器(隐藏路由,供列表页 router.push 跳转)
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES ('规则链编辑器', '', 2, 99,
(SELECT id FROM (SELECT id FROM system_menu WHERE name = '规则引擎' AND deleted = b'0' LIMIT 1) t),
'rule-chain/edit/:id?', '', 'iot/rule/chain/edit', 'RuleChainEdit',
0, b'0', b'0', b'0', '1', NOW(), '1', NOW(), b'0');
-- ─────────────────────────────────────────────
-- 2. 子系统管理(父: 设备接入)
-- ─────────────────────────────────────────────
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES ('子系统管理', '', 2, 4,
(SELECT id FROM (SELECT id FROM system_menu WHERE name = '设备接入' AND deleted = b'0' LIMIT 1) t),
'subsystem', 'fa-solid:layer-group', 'iot/subsystem/list', 'IoTSubsystemList',
0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
-- 子系统管理 按钮
INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
('子系统查询', 'iot:subsystem:query', 3, 1, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '子系统管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('子系统创建', 'iot:subsystem:create', 3, 2, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '子系统管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('子系统更新', 'iot:subsystem:update', 3, 3, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '子系统管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
('子系统删除', 'iot:subsystem:delete', 3, 4, (SELECT id FROM (SELECT id FROM system_menu WHERE name = '子系统管理' AND deleted = b'0' LIMIT 1) t), '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
-- ─────────────────────────────────────────────
-- TODO: 告警记录 v2待补 IotAlarmRecordController
-- ─────────────────────────────────────────────
-- 前端: iot/alarm/record/list (IoTAlarmRecordList)
-- 接口: /iot/alarm-record/* — 需先创建后端 Controller
-- 父菜单: 告警中心 (sort=3)
-- 按钮权限: iot:alarm-record:query / ack / clear / archive