diff --git a/data/init/sys_menu.json b/data/init/sys_menu.json index 89c7628f..1643f17d 100644 --- a/data/init/sys_menu.json +++ b/data/init/sys_menu.json @@ -1,2521 +1,4152 @@ - [ - { - "id": 1, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": null, - "icon": "system", - "isCache": "0", - "isFrame": "1", - "menuName": "系统管理", - "menuType": "M", - "orderNum": 1, - "parentId": 0, - "path": "system", - "perms": "", - "queryParam": "", - "remark": "系统管理目录", - "status": "0", - "visible": "0" - }, - { - "id": 2, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": null, - "icon": "monitor", - "isCache": "0", - "isFrame": "1", - "menuName": "系统监控", - "menuType": "M", - "orderNum": 23, - "parentId": 0, - "path": "monitor", - "perms": "", - "queryParam": "", - "remark": "系统监控目录", - "status": "0", - "visible": "0" - }, - { - "id": 3, - "createBy": 1, - "createDept": 103, +[ + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1, + "menuName":"系统管理", + "parentId":0, + "orderNum":1, + "path":"system", + "component":null, + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":"", + "icon":"system", + "remark":"系统管理目录", + "children":[ - "updateBy": 1, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2, + "menuName":"系统监控", + "parentId":0, + "orderNum":23, + "path":"monitor", + "component":null, + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":"", + "icon":"monitor", + "remark":"系统监控目录", + "children":[ - "component": null, - "icon": "tool", - "isCache": "0", - "isFrame": "1", - "menuName": "系统工具", - "menuType": "M", - "orderNum": 24, - "parentId": 0, - "path": "tool", - "perms": "", - "queryParam": "", - "remark": "系统工具目录", - "status": "0", - "visible": "0" - }, - { - "id": 4, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": null, - "icon": "guide", - "isCache": "0", - "isFrame": "0", - "menuName": "铱塔官网", - "menuType": "M", - "orderNum": 25, - "parentId": 0, - "path": "http://iotkit-open-source.gitee.io/document", - "perms": "", - "queryParam": "", - "remark": "铱塔官网", - "status": "0", - "visible": "0" - }, - { - "id": 6, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - "component": null, - "icon": "chart", - "isCache": "0", - "isFrame": "1", - "menuName": "租户管理", - "menuType": "M", - "orderNum": 22, - "parentId": 0, - "path": "tenant", - "perms": "", - "queryParam": "", - "remark": "租户管理目录", - "status": "0", - "visible": "0" - }, - { - "id": 100, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/user/index", - "icon": "user", - "isCache": "0", - "isFrame": "1", - "menuName": "用户管理", - "menuType": "C", - "orderNum": 1, - "parentId": 1, - "path": "user", - "perms": "system:user:list", - "queryParam": "", - "remark": "用户管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 101, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/role/index", - "icon": "peoples", - "isCache": "0", - "isFrame": "1", - "menuName": "角色管理", - "menuType": "C", - "orderNum": 2, - "parentId": 1, - "path": "role", - "perms": "system:role:list", - "queryParam": "", - "remark": "角色管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 102, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/menu/index", - "icon": "tree-table", - "isCache": "0", - "isFrame": "1", - "menuName": "菜单管理", - "menuType": "C", - "orderNum": 3, - "parentId": 1, - "path": "menu", - "perms": "system:menu:list", - "queryParam": "", - "remark": "菜单管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 103, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/dept/index", - "icon": "tree", - "isCache": "0", - "isFrame": "1", - "menuName": "部门管理", - "menuType": "C", - "orderNum": 4, - "parentId": 1, - "path": "dept", - "perms": "system:dept:list", - "queryParam": "", - "remark": "部门管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 104, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/post/index", - "icon": "post", - "isCache": "0", - "isFrame": "1", - "menuName": "岗位管理", - "menuType": "C", - "orderNum": 5, - "parentId": 1, - "path": "post", - "perms": "system:post:list", - "queryParam": "", - "remark": "岗位管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 105, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/dict/index", - "icon": "dict", - "isCache": "0", - "isFrame": "1", - "menuName": "字典管理", - "menuType": "C", - "orderNum": 6, - "parentId": 1, - "path": "dict", - "perms": "system:dict:list", - "queryParam": "", - "remark": "字典管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 106, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/config/index", - "icon": "edit", - "isCache": "0", - "isFrame": "1", - "menuName": "参数设置", - "menuType": "C", - "orderNum": 7, - "parentId": 1, - "path": "sysconfig", - "perms": "system:config:list", - "queryParam": "", - "remark": "参数设置菜单", - "status": "0", - "visible": "0" - }, - { - "id": 107, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/notice/index", - "icon": "message", - "isCache": "0", - "isFrame": "1", - "menuName": "通知公告", - "menuType": "C", - "orderNum": 8, - "parentId": 1, - "path": "notice", - "perms": "system:notice:list", - "queryParam": "", - "remark": "通知公告菜单", - "status": "0", - "visible": "0" - }, - { - "id": 108, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "log", - "isCache": "0", - "isFrame": "1", - "menuName": "日志管理", - "menuType": "M", - "orderNum": 9, - "parentId": 1, - "path": "log", - "perms": "", - "queryParam": "", - "remark": "日志管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 109, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "monitor/online/index", - "icon": "online", - "isCache": "0", - "isFrame": "1", - "menuName": "在线用户", - "menuType": "C", - "orderNum": 1, - "parentId": 2, - "path": "online", - "perms": "monitor:online:list", - "queryParam": "", - "remark": "在线用户菜单", - "status": "0", - "visible": "0" - }, - { - "id": 115, - "createBy": 1, - "createDept": 103, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":3, + "menuName":"系统工具", + "parentId":0, + "orderNum":24, + "path":"tool", + "component":null, + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":"", + "icon":"tool", + "remark":"系统工具目录", + "children":[ - "updateBy": null, - "updateTime": null, - "component": "tool/gen/index", - "icon": "code", - "isCache": "0", - "isFrame": "1", - "menuName": "代码生成", - "menuType": "C", - "orderNum": 2, - "parentId": 3, - "path": "gen", - "perms": "tool:gen:list", - "queryParam": "", - "remark": "代码生成菜单", - "status": "0", - "visible": "0" - }, - { - "id": 118, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/oss/index", - "icon": "upload", - "isCache": "0", - "isFrame": "1", - "menuName": "文件管理", - "menuType": "C", - "orderNum": 10, - "parentId": 1, - "path": "oss", - "perms": "system:oss:list", - "queryParam": "", - "remark": "文件管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 121, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/tenant/index", - "icon": "list", - "isCache": "0", - "isFrame": "1", - "menuName": "租户管理", - "menuType": "C", - "orderNum": 1, - "parentId": 6, - "path": "tenant", - "perms": "system:tenant:list", - "queryParam": "", - "remark": "租户管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 122, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "system/tenantPackage/index", - "icon": "form", - "isCache": "0", - "isFrame": "1", - "menuName": "租户套餐管理", - "menuType": "C", - "orderNum": 2, - "parentId": 6, - "path": "tenantPackage", - "perms": "system:tenantPackage:list", - "queryParam": "", - "remark": "租户套餐管理菜单", - "status": "0", - "visible": "0" - }, - { - "id": 500, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "monitor/operlog/index", - "icon": "form", - "isCache": "0", - "isFrame": "1", - "menuName": "操作日志", - "menuType": "C", - "orderNum": 1, - "parentId": 108, - "path": "operlog", - "perms": "monitor:operlog:list", - "queryParam": "", - "remark": "操作日志菜单", - "status": "0", - "visible": "0" - }, - { - "id": 501, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "monitor/logininfor/index", - "icon": "logininfor", - "isCache": "0", - "isFrame": "1", - "menuName": "登录日志", - "menuType": "C", - "orderNum": 2, - "parentId": 108, - "path": "logininfor", - "perms": "monitor:logininfor:list", - "queryParam": "", - "remark": "登录日志菜单", - "status": "0", - "visible": "0" - }, - { - "id": 1001, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "用户查询", - "menuType": "F", - "orderNum": 1, - "parentId": 100, - "path": "", - "perms": "system:user:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1002, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "用户新增", - "menuType": "F", - "orderNum": 2, - "parentId": 100, - "path": "", - "perms": "system:user:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1003, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "用户修改", - "menuType": "F", - "orderNum": 3, - "parentId": 100, - "path": "", - "perms": "system:user:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1004, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "用户删除", - "menuType": "F", - "orderNum": 4, - "parentId": 100, - "path": "", - "perms": "system:user:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1005, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "用户导出", - "menuType": "F", - "orderNum": 5, - "parentId": 100, - "path": "", - "perms": "system:user:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1006, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "用户导入", - "menuType": "F", - "orderNum": 6, - "parentId": 100, - "path": "", - "perms": "system:user:import", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1007, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "重置密码", - "menuType": "F", - "orderNum": 7, - "parentId": 100, - "path": "", - "perms": "system:user:resetPwd", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1008, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "角色查询", - "menuType": "F", - "orderNum": 1, - "parentId": 101, - "path": "", - "perms": "system:role:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1009, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "角色新增", - "menuType": "F", - "orderNum": 2, - "parentId": 101, - "path": "", - "perms": "system:role:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1010, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "角色修改", - "menuType": "F", - "orderNum": 3, - "parentId": 101, - "path": "", - "perms": "system:role:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1011, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "角色删除", - "menuType": "F", - "orderNum": 4, - "parentId": 101, - "path": "", - "perms": "system:role:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1012, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "角色导出", - "menuType": "F", - "orderNum": 5, - "parentId": 101, - "path": "", - "perms": "system:role:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1013, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "菜单查询", - "menuType": "F", - "orderNum": 1, - "parentId": 102, - "path": "", - "perms": "system:menu:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1014, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "菜单新增", - "menuType": "F", - "orderNum": 2, - "parentId": 102, - "path": "", - "perms": "system:menu:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1015, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "菜单修改", - "menuType": "F", - "orderNum": 3, - "parentId": 102, - "path": "", - "perms": "system:menu:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1016, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "菜单删除", - "menuType": "F", - "orderNum": 4, - "parentId": 102, - "path": "", - "perms": "system:menu:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1017, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "部门查询", - "menuType": "F", - "orderNum": 1, - "parentId": 103, - "path": "", - "perms": "system:dept:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1018, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "部门新增", - "menuType": "F", - "orderNum": 2, - "parentId": 103, - "path": "", - "perms": "system:dept:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1019, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "部门修改", - "menuType": "F", - "orderNum": 3, - "parentId": 103, - "path": "", - "perms": "system:dept:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1020, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "部门删除", - "menuType": "F", - "orderNum": 4, - "parentId": 103, - "path": "", - "perms": "system:dept:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1021, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "岗位查询", - "menuType": "F", - "orderNum": 1, - "parentId": 104, - "path": "", - "perms": "system:post:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1022, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "岗位新增", - "menuType": "F", - "orderNum": 2, - "parentId": 104, - "path": "", - "perms": "system:post:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1023, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "岗位修改", - "menuType": "F", - "orderNum": 3, - "parentId": 104, - "path": "", - "perms": "system:post:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1024, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "岗位删除", - "menuType": "F", - "orderNum": 4, - "parentId": 104, - "path": "", - "perms": "system:post:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1025, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "岗位导出", - "menuType": "F", - "orderNum": 5, - "parentId": 104, - "path": "", - "perms": "system:post:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1026, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "字典查询", - "menuType": "F", - "orderNum": 1, - "parentId": 105, - "path": "#", - "perms": "system:dict:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1027, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "字典新增", - "menuType": "F", - "orderNum": 2, - "parentId": 105, - "path": "#", - "perms": "system:dict:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1028, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "字典修改", - "menuType": "F", - "orderNum": 3, - "parentId": 105, - "path": "#", - "perms": "system:dict:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1029, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "字典删除", - "menuType": "F", - "orderNum": 4, - "parentId": 105, - "path": "#", - "perms": "system:dict:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1030, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "字典导出", - "menuType": "F", - "orderNum": 5, - "parentId": 105, - "path": "#", - "perms": "system:dict:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1031, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "参数查询", - "menuType": "F", - "orderNum": 1, - "parentId": 106, - "path": "#", - "perms": "system:config:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1032, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "参数新增", - "menuType": "F", - "orderNum": 2, - "parentId": 106, - "path": "#", - "perms": "system:config:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1033, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "参数修改", - "menuType": "F", - "orderNum": 3, - "parentId": 106, - "path": "#", - "perms": "system:config:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1034, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "参数删除", - "menuType": "F", - "orderNum": 4, - "parentId": 106, - "path": "#", - "perms": "system:config:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1035, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "参数导出", - "menuType": "F", - "orderNum": 5, - "parentId": 106, - "path": "#", - "perms": "system:config:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1036, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "公告查询", - "menuType": "F", - "orderNum": 1, - "parentId": 107, - "path": "#", - "perms": "system:notice:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1037, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "公告新增", - "menuType": "F", - "orderNum": 2, - "parentId": 107, - "path": "#", - "perms": "system:notice:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1038, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "公告修改", - "menuType": "F", - "orderNum": 3, - "parentId": 107, - "path": "#", - "perms": "system:notice:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1039, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "公告删除", - "menuType": "F", - "orderNum": 4, - "parentId": 107, - "path": "#", - "perms": "system:notice:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1040, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "操作查询", - "menuType": "F", - "orderNum": 1, - "parentId": 500, - "path": "#", - "perms": "monitor:operlog:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1041, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "操作删除", - "menuType": "F", - "orderNum": 2, - "parentId": 500, - "path": "#", - "perms": "monitor:operlog:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1042, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "日志导出", - "menuType": "F", - "orderNum": 4, - "parentId": 500, - "path": "#", - "perms": "monitor:operlog:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1043, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "登录查询", - "menuType": "F", - "orderNum": 1, - "parentId": 501, - "path": "#", - "perms": "monitor:logininfor:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1044, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "登录删除", - "menuType": "F", - "orderNum": 2, - "parentId": 501, - "path": "#", - "perms": "monitor:logininfor:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1045, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "日志导出", - "menuType": "F", - "orderNum": 3, - "parentId": 501, - "path": "#", - "perms": "monitor:logininfor:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1046, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "在线查询", - "menuType": "F", - "orderNum": 1, - "parentId": 109, - "path": "#", - "perms": "monitor:online:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1047, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "批量强退", - "menuType": "F", - "orderNum": 2, - "parentId": 109, - "path": "#", - "perms": "monitor:online:batchLogout", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1048, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "单条强退", - "menuType": "F", - "orderNum": 3, - "parentId": 109, - "path": "#", - "perms": "monitor:online:forceLogout", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1050, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "账户解锁", - "menuType": "F", - "orderNum": 4, - "parentId": 501, - "path": "#", - "perms": "monitor:logininfor:unlock", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1055, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "生成查询", - "menuType": "F", - "orderNum": 1, - "parentId": 115, - "path": "#", - "perms": "tool:gen:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1056, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "生成修改", - "menuType": "F", - "orderNum": 2, - "parentId": 115, - "path": "#", - "perms": "tool:gen:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1057, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "生成删除", - "menuType": "F", - "orderNum": 3, - "parentId": 115, - "path": "#", - "perms": "tool:gen:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1058, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "导入代码", - "menuType": "F", - "orderNum": 2, - "parentId": 115, - "path": "#", - "perms": "tool:gen:import", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1059, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "预览代码", - "menuType": "F", - "orderNum": 4, - "parentId": 115, - "path": "#", - "perms": "tool:gen:preview", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1060, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "生成代码", - "menuType": "F", - "orderNum": 5, - "parentId": 115, - "path": "#", - "perms": "tool:gen:code", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1600, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "文件查询", - "menuType": "F", - "orderNum": 1, - "parentId": 118, - "path": "#", - "perms": "system:oss:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1601, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "文件上传", - "menuType": "F", - "orderNum": 2, - "parentId": 118, - "path": "#", - "perms": "system:oss:upload", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1602, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "文件下载", - "menuType": "F", - "orderNum": 3, - "parentId": 118, - "path": "#", - "perms": "system:oss:download", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1603, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "文件删除", - "menuType": "F", - "orderNum": 4, - "parentId": 118, - "path": "#", - "perms": "system:oss:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1604, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "配置添加", - "menuType": "F", - "orderNum": 5, - "parentId": 118, - "path": "#", - "perms": "system:oss:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1605, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "配置编辑", - "menuType": "F", - "orderNum": 6, - "parentId": 118, - "path": "#", - "perms": "system:oss:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1606, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户查询", - "menuType": "F", - "orderNum": 1, - "parentId": 121, - "path": "#", - "perms": "system:tenant:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1607, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户新增", - "menuType": "F", - "orderNum": 2, - "parentId": 121, - "path": "#", - "perms": "system:tenant:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1608, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户修改", - "menuType": "F", - "orderNum": 3, - "parentId": 121, - "path": "#", - "perms": "system:tenant:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1609, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户删除", - "menuType": "F", - "orderNum": 4, - "parentId": 121, - "path": "#", - "perms": "system:tenant:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1610, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户导出", - "menuType": "F", - "orderNum": 5, - "parentId": 121, - "path": "#", - "perms": "system:tenant:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1611, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户套餐查询", - "menuType": "F", - "orderNum": 1, - "parentId": 122, - "path": "#", - "perms": "system:tenantPackage:query", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1612, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户套餐新增", - "menuType": "F", - "orderNum": 2, - "parentId": 122, - "path": "#", - "perms": "system:tenantPackage:add", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1613, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户套餐修改", - "menuType": "F", - "orderNum": 3, - "parentId": 122, - "path": "#", - "perms": "system:tenantPackage:edit", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1614, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户套餐删除", - "menuType": "F", - "orderNum": 4, - "parentId": 122, - "path": "#", - "perms": "system:tenantPackage:remove", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 1615, - "createBy": 1, - "createDept": 103, - - "updateBy": null, - "updateTime": null, - "component": "", - "icon": "#", - "isCache": "0", - "isFrame": "1", - "menuName": "租户套餐导出", - "menuType": "F", - "orderNum": 5, - "parentId": 122, - "path": "#", - "perms": "system:tenantPackage:export", - "queryParam": "", - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2200, - "createBy": 1, - "createDept": 103, - "updateBy": 1, - "component": null, - "icon": "device", - "isCache": "0", - "isFrame": "1", - "menuName": "设备接入", - "menuType": "M", - "orderNum": 1, - "parentId": 0, - "path": "/equipment", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2201, - "createBy": 1, - "createDept": 103, - "updateBy": 1, - "component": "iot/equipment/categories/index", - "icon": "education", - "isCache": "1", - "isFrame": "1", - "menuName": "品类管理", - "menuType": "C", - "orderNum": 1, - "parentId": 2200, - "path": "categories", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2205, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/equipment/products/index", - "icon": "product-management", - "isCache": "1", - "isFrame": "1", - "menuName": "产品管理", - "menuType": "C", - "orderNum": 2, - "parentId": 2200, - "path": "products", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2206, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/equipment/devices/list", - "icon": "device", - "isCache": "1", - "isFrame": "1", - "menuName": "设备列表", - "menuType": "C", - "orderNum": 3, - "parentId": 2200, - "path": "devices", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2207, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/equipment/devices/virtualDevices", - "icon": "monitor", - "isCache": "1", - "isFrame": "1", - "menuName": "虚拟设备", - "menuType": "C", - "orderNum": 4, - "parentId": 2200, - "path": "virtualDevices", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2208, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": null, - "icon": "component", - "isCache": "0", - "isFrame": "1", - "menuName": "通讯组件管理", - "menuType": "M", - "orderNum": 2, - "parentId": 0, - "path": "/communication", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2209, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/communication/convertors/index", - "icon": "component", - "isCache": "1", - "isFrame": "1", - "menuName": "设备消息转换器", - "menuType": "C", - "orderNum": 1, - "parentId": 2208, - "path": "convertors", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2210, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/communication/components/index", - "icon": "component", - "isCache": "1", - "isFrame": "1", - "menuName": "通讯组件管理", - "menuType": "C", - "orderNum": 2, - "parentId": 2208, - "path": "components", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2211, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": null, - "icon": "dashboard", - "isCache": "0", - "isFrame": "1", - "menuName": "规则引擎", - "menuType": "M", - "orderNum": 3, - "parentId": 0, - "path": "ruleEngine", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2212, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/ruleEngine/ruleSys/index", - "icon": "component", - "isCache": "0", - "isFrame": "1", - "menuName": "规则管理", - "menuType": "C", - "orderNum": 1, - "parentId": 2211, - "path": "ruleSys", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2213, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/ruleEngine/scheduledTask/index", - "icon": "component", - "isCache": "0", - "isFrame": "1", - "menuName": "定时任务", - "menuType": "C", - "orderNum": 1, - "parentId": 2211, - "path": "scheduledTask", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2214, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/equipment/devices/detail", - "icon": "", - "isCache": "0", - "isFrame": "1", - "menuName": "设备详情", - "menuType": "C", - "orderNum": 1, - "parentId": 2200, - "path": "devicesDetail/:id", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "1" - }, - { - "id": 2215, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/equipment/devices/virtualDeviceConfig", - "icon": "", - "isCache": "1", - "isFrame": "1", - "menuName": "虚拟设备详情", - "menuType": "C", - "orderNum": 16, - "parentId": 2200, - "path": "virtualDeviceConfig/:id", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "1" - }, - { - "id": 2216, - "createBy": 1, - "createDept": 103, - "updateBy": 1, - "component": null, - "icon": "message", - "isCache": "0", - "isFrame": "1", - "menuName": "消息中心", - "menuType": "M", - "orderNum": 4, - "parentId": 0, - "path": "messageCenter", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2217, - "createBy": 1, - "createDept": 103, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":4, + "menuName":"铱塔官网", + "parentId":0, + "orderNum":25, + "path":"http://iotkit-open-source.gitee.io/document", + "component":null, + "queryParam":"", + "isFrame":"0", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":"", + "icon":"guide", + "remark":"铱塔官网", + "children":[ - "updateBy": 1, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":6, + "menuName":"租户管理", + "parentId":0, + "orderNum":22, + "path":"tenant", + "component":null, + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":"", + "icon":"chart", + "remark":"租户管理目录", + "children":[ - "component": "iot/messageCenter/list", - "icon": "message", - "isCache": "0", - "isFrame": "1", - "menuName": "消息列表", - "menuType": "C", - "orderNum": 1, - "parentId": 2216, - "path": "messageCenterList", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2218, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":100, + "menuName":"用户管理", + "parentId":1, + "orderNum":1, + "path":"user", + "component":"system/user/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:user:list", + "icon":"user", + "remark":"用户管理菜单", + "children":[ - "component": null, - "icon": "cascader", - "isCache": "0", - "isFrame": "1", - "menuName": "通道管理", - "menuType": "M", - "orderNum": 5, - "parentId": 0, - "path": "channel", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2219, - "createBy": 1, - "createDept": 103, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":101, + "menuName":"角色管理", + "parentId":1, + "orderNum":2, + "path":"role", + "component":"system/role/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:role:list", + "icon":"peoples", + "remark":"角色管理菜单", + "children":[ - "updateBy": 1, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":102, + "menuName":"菜单管理", + "parentId":1, + "orderNum":3, + "path":"menu", + "component":"system/menu/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:menu:list", + "icon":"tree-table", + "remark":"菜单管理菜单", + "children":[ - "component": "iot/channel/config", - "icon": "system", - "isCache": "0", - "isFrame": "1", - "menuName": "通道配置", - "menuType": "C", - "orderNum": 1, - "parentId": 2218, - "path": "channelConfig", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2220, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/channel/template", - "icon": "system", - "isCache": "0", - "isFrame": "1", - "menuName": "模板配置", - "menuType": "C", - "orderNum": 2, - "parentId": 2218, - "path": "template", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2221, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": null, - "icon": "alart", - "isCache": "0", - "isFrame": "1", - "menuName": "告警中心", - "menuType": "M", - "orderNum": 6, - "parentId": 0, - "path": "alarm", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2222, - "createBy": 1, - "createDept": 103, - - "updateBy": 1, - - "component": "iot/alarm/list", - "icon": "message", - "isCache": "0", - "isFrame": "1", - "menuName": "告警列表", - "menuType": "C", - "orderNum": 1, - "parentId": 2221, - "path": "list", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2223, - "createBy": 1, - "createDept": 103, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":103, + "menuName":"部门管理", + "parentId":1, + "orderNum":4, + "path":"dept", + "component":"system/dept/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:dept:list", + "icon":"tree", + "remark":"部门管理菜单", + "children":[ - "updateBy": 1, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":104, + "menuName":"岗位管理", + "parentId":1, + "orderNum":5, + "path":"post", + "component":"system/post/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:post:list", + "icon":"post", + "remark":"岗位管理菜单", + "children":[ - "component": "iot/alarm/config", - "icon": "system", - "isCache": "0", - "isFrame": "1", - "menuName": "告警配置", - "menuType": "C", - "orderNum": 2, - "parentId": 2221, - "path": "config", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - },{ - "id": 2224, - "createBy": 1, - "createDept": 103, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":105, + "menuName":"字典管理", + "parentId":1, + "orderNum":6, + "path":"dict", + "component":"system/dict/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:dict:list", + "icon":"dict", + "remark":"字典管理菜单", + "children":[ - "updateBy": 1, + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":106, + "menuName":"参数设置", + "parentId":1, + "orderNum":7, + "path":"sysconfig", + "component":"system/config/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:config:list", + "icon":"edit", + "remark":"参数设置菜单", + "children":[ - "component": "contributor/index", - "icon": "color", - "isCache": "0", - "isFrame": "1", - "menuName": "平台建设", - "menuType": "C", - "orderNum": 1, - "parentId": 0, - "path": "contributor", - "perms": null, - "queryParam": null, - "remark": "", - "status": "0", - "visible": "0" - }, - { - "id": 2225, - "menuName": "OTA", - "parentId": 0, - "orderNum": 1, - "path": "upgradePack", - "component": "iot/ota/upgradePack/index", - "queryParam": null, - "isFrame": "1", - "isCache": "0", - "menuType": "C", - "visible": "0", - "status": "0", - "perms": null, - "icon": "", - "createBy": 1, - "createDept": 103, - "updateBy": 1 - } - ] + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":107, + "menuName":"通知公告", + "parentId":1, + "orderNum":8, + "path":"notice", + "component":"system/notice/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:notice:list", + "icon":"message", + "remark":"通知公告菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":108, + "menuName":"日志管理", + "parentId":1, + "orderNum":9, + "path":"log", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":"", + "icon":"log", + "remark":"日志管理菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":109, + "menuName":"在线用户", + "parentId":2, + "orderNum":1, + "path":"online", + "component":"monitor/online/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"monitor:online:list", + "icon":"online", + "remark":"在线用户菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":115, + "menuName":"代码生成", + "parentId":3, + "orderNum":2, + "path":"gen", + "component":"tool/gen/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"tool:gen:list", + "icon":"code", + "remark":"代码生成菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":118, + "menuName":"文件管理", + "parentId":1, + "orderNum":10, + "path":"oss", + "component":"system/oss/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:oss:list", + "icon":"upload", + "remark":"文件管理菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":121, + "menuName":"租户管理", + "parentId":6, + "orderNum":1, + "path":"tenant", + "component":"system/tenant/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:tenant:list", + "icon":"list", + "remark":"租户管理菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":122, + "menuName":"租户套餐管理", + "parentId":6, + "orderNum":2, + "path":"tenantPackage", + "component":"system/tenantPackage/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"system:tenantPackage:list", + "icon":"form", + "remark":"租户套餐管理菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":500, + "menuName":"操作日志", + "parentId":108, + "orderNum":1, + "path":"operlog", + "component":"monitor/operlog/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"monitor:operlog:list", + "icon":"form", + "remark":"操作日志菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":501, + "menuName":"登录日志", + "parentId":108, + "orderNum":2, + "path":"logininfor", + "component":"monitor/logininfor/index", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"monitor:logininfor:list", + "icon":"logininfor", + "remark":"登录日志菜单", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1001, + "menuName":"用户查询", + "parentId":100, + "orderNum":1, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1002, + "menuName":"用户新增", + "parentId":100, + "orderNum":2, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1003, + "menuName":"用户修改", + "parentId":100, + "orderNum":3, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1004, + "menuName":"用户删除", + "parentId":100, + "orderNum":4, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1005, + "menuName":"用户导出", + "parentId":100, + "orderNum":5, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1006, + "menuName":"用户导入", + "parentId":100, + "orderNum":6, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:import", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1007, + "menuName":"重置密码", + "parentId":100, + "orderNum":7, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:user:resetPwd", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1008, + "menuName":"角色查询", + "parentId":101, + "orderNum":1, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:role:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1009, + "menuName":"角色新增", + "parentId":101, + "orderNum":2, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:role:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1010, + "menuName":"角色修改", + "parentId":101, + "orderNum":3, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:role:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1011, + "menuName":"角色删除", + "parentId":101, + "orderNum":4, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:role:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1012, + "menuName":"角色导出", + "parentId":101, + "orderNum":5, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:role:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1013, + "menuName":"菜单查询", + "parentId":102, + "orderNum":1, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:menu:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1014, + "menuName":"菜单新增", + "parentId":102, + "orderNum":2, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:menu:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1015, + "menuName":"菜单修改", + "parentId":102, + "orderNum":3, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:menu:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1016, + "menuName":"菜单删除", + "parentId":102, + "orderNum":4, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:menu:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1017, + "menuName":"部门查询", + "parentId":103, + "orderNum":1, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dept:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1018, + "menuName":"部门新增", + "parentId":103, + "orderNum":2, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dept:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1019, + "menuName":"部门修改", + "parentId":103, + "orderNum":3, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dept:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1020, + "menuName":"部门删除", + "parentId":103, + "orderNum":4, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dept:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1021, + "menuName":"岗位查询", + "parentId":104, + "orderNum":1, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:post:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1022, + "menuName":"岗位新增", + "parentId":104, + "orderNum":2, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:post:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1023, + "menuName":"岗位修改", + "parentId":104, + "orderNum":3, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:post:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1024, + "menuName":"岗位删除", + "parentId":104, + "orderNum":4, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:post:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1025, + "menuName":"岗位导出", + "parentId":104, + "orderNum":5, + "path":"", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:post:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1026, + "menuName":"字典查询", + "parentId":105, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dict:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1027, + "menuName":"字典新增", + "parentId":105, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dict:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1028, + "menuName":"字典修改", + "parentId":105, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dict:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1029, + "menuName":"字典删除", + "parentId":105, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dict:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1030, + "menuName":"字典导出", + "parentId":105, + "orderNum":5, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:dict:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1031, + "menuName":"参数查询", + "parentId":106, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:config:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1032, + "menuName":"参数新增", + "parentId":106, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:config:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1033, + "menuName":"参数修改", + "parentId":106, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:config:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1034, + "menuName":"参数删除", + "parentId":106, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:config:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1035, + "menuName":"参数导出", + "parentId":106, + "orderNum":5, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:config:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1036, + "menuName":"公告查询", + "parentId":107, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:notice:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1037, + "menuName":"公告新增", + "parentId":107, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:notice:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1038, + "menuName":"公告修改", + "parentId":107, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:notice:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1039, + "menuName":"公告删除", + "parentId":107, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:notice:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1040, + "menuName":"操作查询", + "parentId":500, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:operlog:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1041, + "menuName":"操作删除", + "parentId":500, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:operlog:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1042, + "menuName":"日志导出", + "parentId":500, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:operlog:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1043, + "menuName":"登录查询", + "parentId":501, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:logininfor:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1044, + "menuName":"登录删除", + "parentId":501, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:logininfor:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1045, + "menuName":"日志导出", + "parentId":501, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:logininfor:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1046, + "menuName":"在线查询", + "parentId":109, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:online:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1047, + "menuName":"批量强退", + "parentId":109, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:online:batchLogout", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1048, + "menuName":"单条强退", + "parentId":109, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:online:forceLogout", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1050, + "menuName":"账户解锁", + "parentId":501, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"monitor:logininfor:unlock", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1055, + "menuName":"生成查询", + "parentId":115, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"tool:gen:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1056, + "menuName":"生成修改", + "parentId":115, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"tool:gen:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1057, + "menuName":"生成删除", + "parentId":115, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"tool:gen:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1058, + "menuName":"导入代码", + "parentId":115, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"tool:gen:import", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1059, + "menuName":"预览代码", + "parentId":115, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"tool:gen:preview", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1060, + "menuName":"生成代码", + "parentId":115, + "orderNum":5, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"tool:gen:code", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1600, + "menuName":"文件查询", + "parentId":118, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:oss:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1601, + "menuName":"文件上传", + "parentId":118, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:oss:upload", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1602, + "menuName":"文件下载", + "parentId":118, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:oss:download", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1603, + "menuName":"文件删除", + "parentId":118, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:oss:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1604, + "menuName":"配置添加", + "parentId":118, + "orderNum":5, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:oss:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1605, + "menuName":"配置编辑", + "parentId":118, + "orderNum":6, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:oss:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1606, + "menuName":"租户查询", + "parentId":121, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenant:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1607, + "menuName":"租户新增", + "parentId":121, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenant:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1608, + "menuName":"租户修改", + "parentId":121, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenant:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1609, + "menuName":"租户删除", + "parentId":121, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenant:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1610, + "menuName":"租户导出", + "parentId":121, + "orderNum":5, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenant:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1611, + "menuName":"租户套餐查询", + "parentId":122, + "orderNum":1, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenantPackage:query", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1612, + "menuName":"租户套餐新增", + "parentId":122, + "orderNum":2, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenantPackage:add", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1613, + "menuName":"租户套餐修改", + "parentId":122, + "orderNum":3, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenantPackage:edit", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1614, + "menuName":"租户套餐删除", + "parentId":122, + "orderNum":4, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenantPackage:remove", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":1615, + "menuName":"租户套餐导出", + "parentId":122, + "orderNum":5, + "path":"#", + "component":"", + "queryParam":"", + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"system:tenantPackage:export", + "icon":"#", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2200, + "menuName":"设备接入", + "parentId":0, + "orderNum":1, + "path":"/equipment", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":null, + "icon":"device", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2201, + "menuName":"品类管理", + "parentId":2200, + "orderNum":1, + "path":"categories", + "component":"iot/equipment/categories/index", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:category:list", + "icon":"education", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2205, + "menuName":"产品管理", + "parentId":2200, + "orderNum":2, + "path":"products", + "component":"iot/equipment/products/index", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:product:list", + "icon":"product-management", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2206, + "menuName":"设备列表", + "parentId":2200, + "orderNum":3, + "path":"devices", + "component":"iot/equipment/devices/list", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:device:list", + "icon":"device", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2207, + "menuName":"虚拟设备", + "parentId":2200, + "orderNum":4, + "path":"virtualDevices", + "component":"iot/equipment/devices/virtualDevices", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:virtualDevice:list", + "icon":"monitor", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2208, + "menuName":"通讯组件管理", + "parentId":0, + "orderNum":2, + "path":"/communication", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":null, + "icon":"component", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2209, + "menuName":"设备消息转换器", + "parentId":2208, + "orderNum":1, + "path":"convertors", + "component":"iot/communication/convertors/index", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":null, + "icon":"component", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2210, + "menuName":"通讯组件管理", + "parentId":2208, + "orderNum":2, + "path":"components", + "component":"iot/communication/components/index", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:component:list", + "icon":"component", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2211, + "menuName":"规则引擎", + "parentId":0, + "orderNum":3, + "path":"ruleEngine", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":null, + "icon":"dashboard", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2212, + "menuName":"规则管理", + "parentId":2211, + "orderNum":1, + "path":"ruleSys", + "component":"iot/ruleEngine/ruleSys/index", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:rule:list", + "icon":"component", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2213, + "menuName":"定时任务", + "parentId":2211, + "orderNum":1, + "path":"scheduledTask", + "component":"iot/ruleEngine/scheduledTask/index", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:task:list", + "icon":"component", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2214, + "menuName":"设备详情", + "parentId":2200, + "orderNum":1, + "path":"devicesDetail/:id", + "component":"iot/equipment/devices/detail", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"1", + "status":"0", + "perms":null, + "icon":"", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2215, + "menuName":"虚拟设备详情", + "parentId":2200, + "orderNum":16, + "path":"virtualDeviceConfig/:id", + "component":"iot/equipment/devices/virtualDeviceConfig", + "queryParam":null, + "isFrame":"1", + "isCache":"1", + "menuType":"C", + "visible":"1", + "status":"0", + "perms":null, + "icon":"", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2216, + "menuName":"消息中心", + "parentId":0, + "orderNum":4, + "path":"messageCenter", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":null, + "icon":"message", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2217, + "menuName":"消息列表", + "parentId":2216, + "orderNum":1, + "path":"messageCenterList", + "component":"iot/messageCenter/list", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":null, + "icon":"message", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2218, + "menuName":"通道管理", + "parentId":0, + "orderNum":5, + "path":"channel", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":null, + "icon":"cascader", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2219, + "menuName":"通道配置", + "parentId":2218, + "orderNum":1, + "path":"channelConfig", + "component":"iot/channel/config", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:channel:list", + "icon":"system", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2220, + "menuName":"模板配置", + "parentId":2218, + "orderNum":2, + "path":"template", + "component":"iot/channel/template", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:channel:list", + "icon":"system", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2221, + "menuName":"告警中心", + "parentId":0, + "orderNum":6, + "path":"alarm", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"M", + "visible":"0", + "status":"0", + "perms":null, + "icon":"alart", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2222, + "menuName":"告警列表", + "parentId":2221, + "orderNum":1, + "path":"list", + "component":"iot/alarm/list", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:alert:list", + "icon":"message", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2223, + "menuName":"告警配置", + "parentId":2221, + "orderNum":2, + "path":"config", + "component":"iot/alarm/config", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:alertConfig:list", + "icon":"system", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":1, + "updateTime":null, + "id":2224, + "menuName":"平台建设", + "parentId":0, + "orderNum":1, + "path":"contributor", + "component":"contributor/index", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":null, + "icon":"color", + "remark":"", + "children":[ + + ] + }, + { + "createDept":103, + "createBy":1, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":2225, + "menuName":"OTA", + "parentId":0, + "orderNum":1, + "path":"upgradePack", + "component":"iot/ota/upgradePack/index", + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"C", + "visible":"0", + "status":"0", + "perms":"iot:ota:list", + "icon":"upload", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441851175424069, + "menuName":"品类查询", + "parentId":2201, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:category:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441851310268485, + "menuName":"品类修改", + "parentId":2201, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:category:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441851485323333, + "menuName":"品类删除", + "parentId":2201, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:category:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441853056651333, + "menuName":"产品查询", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:product:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441853220675653, + "menuName":"产品添加", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:product:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441853285179461, + "menuName":"产品修改", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:product:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441862726639685, + "menuName":"产品删除", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:product:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441862877970501, + "menuName":"物模型查询", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:thingModel:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441862978281541, + "menuName":"物模型修改", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:thingModel:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441863058096197, + "menuName":"物模型删除", + "parentId":2205, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:thingModel:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441869217525829, + "menuName":"设备查询", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:device:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441869327724613, + "menuName":"设备添加", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:device:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441869398310981, + "menuName":"设备修改", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:device:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441869530075205, + "menuName":"设备删除", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:device:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441869649666117, + "menuName":"设备控制", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:device:ctrl", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441869802405957, + "menuName":"设备日志查询", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:deviceLog:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870007808069, + "menuName":"设备组查询", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:deviceGroup:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870091001925, + "menuName":"设备组添加", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:deviceGroup:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870227968069, + "menuName":"设备组修改", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:deviceGroup:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870309814341, + "menuName":"设备组删除", + "parentId":2206, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:deviceGroup:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870607315013, + "menuName":"虚拟设备查询", + "parentId":2207, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:virtualDevice:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870717771845, + "menuName":"虚拟设备添加", + "parentId":2207, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:virtualDevice:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870780928069, + "menuName":"虚拟设备修改", + "parentId":2207, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:virtualDevice:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":441870881378373, + "menuName":"虚拟设备删除", + "parentId":2207, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:virtualDevice:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442127357415493, + "menuName":"组件添加", + "parentId":2210, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:component:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442127532781637, + "menuName":"组件修改", + "parentId":2210, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:component:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442127596064837, + "menuName":"组件查询", + "parentId":2210, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:component:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442127705182277, + "menuName":"组件删除", + "parentId":2210, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:component:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442127879118917, + "menuName":"转换器查询", + "parentId":2209, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:converter:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442127985041477, + "menuName":"转换器添加", + "parentId":2209, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:converter:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442128064598085, + "menuName":"转换器修改", + "parentId":2209, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:converter:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442128163270725, + "menuName":"转换器删除", + "parentId":2209, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:converter:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442128593006661, + "menuName":"规则查询", + "parentId":2212, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:rule:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442128733950021, + "menuName":"规则修改", + "parentId":2212, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:rule:eidt", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442128795189317, + "menuName":"规则删除", + "parentId":2212, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:rule:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442129175347269, + "menuName":"定时任务查询", + "parentId":2213, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:task:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442129320091717, + "menuName":"定时任务修改", + "parentId":2213, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:task:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442129388187717, + "menuName":"定时任务删除", + "parentId":2213, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:task:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442130419388485, + "menuName":"通道添加", + "parentId":2219, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:channel:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442130475098181, + "menuName":"通道修改", + "parentId":2219, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:channel:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442130534805573, + "menuName":"通道删除", + "parentId":2219, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:channel:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442130860195909, + "menuName":"告警配置查询", + "parentId":2223, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:alertConfig:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442130932109381, + "menuName":"告警配置添加", + "parentId":2223, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:alertConfig:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442131029889093, + "menuName":"告警配置修改", + "parentId":2223, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:alertConfig:edit", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442131115253829, + "menuName":"告警配置删除", + "parentId":2223, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:alertConfig:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442131294584901, + "menuName":"告警查询", + "parentId":2222, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:alert:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442143693541445, + "menuName":"通道查询", + "parentId":2219, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:channel:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442149490409541, + "menuName":"OTA查询", + "parentId":2225, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:ota:query", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442149580529733, + "menuName":"OTA添加", + "parentId":2225, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:ota:add", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442149650423877, + "menuName":"OTA删除", + "parentId":2225, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:ota:remove", + "icon":"", + "remark":null, + "children":[ + + ] + }, + { + "createDept":null, + "createBy":null, + "createTime":null, + "updateBy":null, + "updateTime":null, + "id":442149811572805, + "menuName":"执行升级", + "parentId":2225, + "orderNum":1, + "path":"", + "component":null, + "queryParam":null, + "isFrame":"1", + "isCache":"0", + "menuType":"F", + "visible":"0", + "status":"0", + "perms":"iot:ota:upgrade", + "icon":"", + "remark":null, + "children":[ + + ] + } +] \ No newline at end of file diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java index 3d49dde4..159f4c5d 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/AlertController.java @@ -15,6 +15,7 @@ import cc.iotkit.common.api.Request; import cc.iotkit.manager.service.AlertService; import cc.iotkit.model.alert.AlertConfig; import cc.iotkit.model.alert.AlertRecord; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -26,7 +27,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - @Api(tags = {"告警中心"}) @Slf4j @RestController @@ -38,24 +38,28 @@ public class AlertController { @ApiOperation("新增告警中心配置") + @SaCheckPermission("iot:alertConfig:add") @PostMapping("/createAlertConfig") public AlertConfig createAlertConfig(@RequestBody @Validated Request request) { return alertService.createAlertConfig(request); } @ApiOperation("编辑告警中心配置") + @SaCheckPermission("iot:alertConfig:edit") @PostMapping("/updateAlertConfig") public AlertConfig updateAlertConfig(@RequestBody @Validated Request request) { return alertService.updateAlertConfig(request); } @ApiOperation("删除告警中心配置") + @SaCheckPermission("iot:alertConfig:remove") @PostMapping("/deleteAlertConfigById") public Boolean deleteAlertConfigById(@RequestBody @Validated Request request) { return alertService.deleteAlertConfigById(request); } @ApiOperation("查询告警中心配置分页") + @SaCheckPermission("iot:alertConfig:query") @PostMapping("/selectAlertConfigPage") public Paging selectAlertConfigPage(@RequestBody @Validated PageRequest request) { return alertService.selectAlertConfigPage(request); @@ -63,12 +67,11 @@ public class AlertController { @ApiOperation("查询告警消息分页") + @SaCheckPermission("iot:alert:query") @PostMapping("/selectAlertRecordPage") public Paging selectAlertRecordPage(@RequestBody @Validated PageRequest request) { return alertService.selectAlertRecordPage(request); } - - } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java index 5d0cff70..cf4c22bf 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java @@ -31,6 +31,7 @@ import cc.iotkit.model.device.DeviceGroup; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.model.device.message.DeviceProperty; import cc.iotkit.model.device.message.ThingModelMessage; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -61,42 +62,49 @@ public class DeviceController { @ApiOperation(value = "服务调用", notes = "服务调用", httpMethod = "POST") + @SaCheckPermission("iot:device:ctrl") @PostMapping("/service/invoke") public InvokeResult invokeService(@RequestBody @Validated Request request) { return new InvokeResult(deviceService.invokeService(request.getData().getDeviceId(), request.getData().getService(), request.getData().getArgs())); } @ApiOperation(value = "属性获取", notes = "属性获取", httpMethod = "POST") + @SaCheckPermission("iot:device:ctrl") @PostMapping("/service/property/get") public InvokeResult invokeServicePropertySet(@RequestBody @Validated Request request) { return new InvokeResult(deviceService.getProperty(request.getData().getDeviceId(), request.getData().getPropertyNames(), true)); } @ApiOperation(value = "属性设置", notes = "属性设置", httpMethod = "POST") + @SaCheckPermission("iot:device:ctrl") @PostMapping("/service/property/set") public InvokeResult setProperty(@RequestBody @Validated Request request) { return new InvokeResult(deviceService.setProperty(request.getData().getDeviceId(), request.getData().getArgs())); } @ApiOperation(value = "设备列表", notes = "设备列表", httpMethod = "POST") + @SaCheckPermission("iot:device:query") @PostMapping("/list") public Paging getDevices(@Validated @RequestBody PageRequest pageRequest) { return deviceServiceImpl.getDevices(pageRequest); } @ApiOperation(value = "创建设备") + @SaCheckPermission("iot:device:add") @PostMapping("/add") public boolean createDevice(@RequestBody @Validated Request bo) { return deviceServiceImpl.addDevice(bo.getData()); } @ApiOperation(value = "保存设备") + @SaCheckPermission("iot:device:edit") @PostMapping("/save") public boolean saveDevice(@RequestBody @Validated Request bo) { return deviceServiceImpl.saveDevice(bo.getData()); } @ApiOperation(value = "获取子设备", notes = "获取子设备") + @SaCheckPermission("iot:device:query") @PostMapping("/children/list") public List getChildren(@Validated @RequestBody PageRequest request) { String deviceId = request.getData(); @@ -104,42 +112,49 @@ public class DeviceController { } @ApiOperation("获取网关设备") + @SaCheckPermission("iot:device:query") @PostMapping("/getParentDevices") public List getParentDevices() { return deviceServiceImpl.getParentDevices(); } @ApiOperation("获取设备详情") + @SaCheckPermission("iot:device:query") @PostMapping("/detail") public DeviceInfo getDetail(@RequestBody @Validated Request request) { return deviceServiceImpl.getDetail(request.getData()); } @ApiOperation("获取设备详情") + @SaCheckPermission("iot:device:query") @PostMapping("/getByPkDn") public DeviceInfo getByPkDn(@Validated @RequestBody Request query) { return deviceServiceImpl.getByPkDn(query.getData().getPk(), query.getData().getDn()); } @ApiOperation("删除设备") + @SaCheckPermission("iot:device:remove") @PostMapping("/delete") public boolean deleteDevice(@Validated @RequestBody Request request) { return deviceServiceImpl.deleteDevice(request.getData()); } @ApiOperation("批量删除设备") + @SaCheckPermission("iot:device:remove") @PostMapping("/batchDelete") public boolean batchDelete(@Validated @RequestBody Request> request) { return deviceServiceImpl.batchDeleteDevice(request.getData()); } @ApiOperation("设备物模型日志") + @SaCheckPermission("iot:deviceLog:query") @PostMapping("/deviceLogs/list") public Paging logs(@Validated @RequestBody PageRequest request) { return deviceServiceImpl.logs(request); } @ApiOperation("设备属性日志") + @SaCheckPermission("iot:deviceLog:query") @PostMapping("/deviceProperty/log/list") public List getPropertyHistory(@Validated @RequestBody Request query) { @@ -152,12 +167,14 @@ public class DeviceController { } @ApiOperation("设备解绑") + @SaCheckPermission("iot:device:edit") @PostMapping("/unbind") public boolean unbindDevice(@Validated @RequestBody Request request) { return deviceServiceImpl.unbindDevice(request.getData()); } @ApiOperation("获取设备物模型") + @SaCheckPermission("iot:thingModel:query") @PostMapping("/getThingModel") public ThingModelVo getThingModel(@Validated @RequestBody Request request) { String deviceId = request.getData(); @@ -166,12 +183,14 @@ public class DeviceController { } @ApiOperation("添加标签") + @SaCheckPermission("iot:device:edit") @PostMapping("/tag/add") public boolean addTag(@Validated @RequestBody Request bo) { return deviceServiceImpl.addTag(bo.getData()); } @ApiOperation("模拟设备上报") + @SaCheckPermission("iot:device:query") @PostMapping("/simulateSend") public boolean simulateSend( @Validated @RequestBody Request bo) { @@ -183,6 +202,7 @@ public class DeviceController { * 消费设备信息消息(实时推送设备信息) */ @ApiOperation("消费设备信息消息(实时推送设备信息)") + @SaCheckPermission("iot:device:query") @PostMapping("/consumer") public DeferredResult consumerDeviceInfo( @Validated @RequestBody Request bo @@ -195,6 +215,7 @@ public class DeviceController { * 获取分组列表 */ @ApiOperation(value = "获取分组列表") + @SaCheckPermission("iot:deviceGroup:query") @PostMapping("/groups/list") public Paging getDeviceGroups( @Validated @RequestBody PageRequest pageRequest) { @@ -205,6 +226,7 @@ public class DeviceController { * 添加设备分组 */ @ApiOperation(value = "添加设备分组") + @SaCheckPermission("iot:deviceGroup:add") @PostMapping("/group/add") public boolean addGroup(@Validated @RequestBody Request group) { return deviceServiceImpl.addGroup(group.getData().to(DeviceGroup.class)); @@ -214,6 +236,7 @@ public class DeviceController { * 修改设备分组 */ @ApiOperation(value = "修改设备分组") + @SaCheckPermission("iot:deviceGroup:edit") @PostMapping("/group/edit") public boolean editGroup(@RequestBody @Validated Request bo) { return deviceServiceImpl.updateGroup(bo.getData()); @@ -224,6 +247,7 @@ public class DeviceController { * 删除分组 */ @ApiOperation(value = "删除分组") + @SaCheckPermission("iot:deviceGroup:remove") @PostMapping("/group/delete") public boolean deleteGroup(@Validated @RequestBody Request request) { String id = request.getData(); @@ -234,6 +258,7 @@ public class DeviceController { * 清空组下所有设备 */ @ApiOperation(value = "清空组下所有设备") + @SaCheckPermission("iot:deviceGroup:remove") @PostMapping("/group/clear") public boolean clearGroup(@Validated @RequestBody Request request) { String id = request.getData(); @@ -244,6 +269,7 @@ public class DeviceController { * 添加设备到组 */ @ApiOperation(value = "添加设备到组") + @SaCheckPermission("iot:deviceGroup:edit") @PostMapping("/group/addDevices") public boolean addToGroup(@Validated @RequestBody Request bo) { return deviceServiceImpl.addDevice2Group(bo.getData()); @@ -253,6 +279,7 @@ public class DeviceController { * 将设备从组中移除 */ @ApiOperation(value = "将设备从组中移除") + @SaCheckPermission("iot:deviceGroup:edit") @PostMapping("/group/removeDevices") public boolean removeDevices(@Validated @RequestBody Request bo) { DeviceAddGroupBo data = bo.getData(); @@ -263,6 +290,7 @@ public class DeviceController { * 保存设备配置 */ @ApiOperation(value = "保存设备配置") + @SaCheckPermission("iot:device:edit") @PostMapping("/config/save") public boolean saveConfig(@Validated @RequestBody Request request) { DeviceConfig data = request.getData().to(DeviceConfig.class); @@ -273,6 +301,7 @@ public class DeviceController { * 获取设备配置 */ @ApiOperation(value = "获取设备配置") + @SaCheckPermission("iot:device:query") @PostMapping("/config/get") public DeviceConfigVo getConfig(@Validated @RequestBody Request request) { String deviceId = request.getData(); @@ -283,6 +312,7 @@ public class DeviceController { * 设备配置下发 */ @ApiOperation(value = "设备配置下发") + @SaCheckPermission("iot:device:ctrl") @PostMapping("/config/send") public InvokeResult sendConfig(@Validated @RequestBody Request bo) { String deviceId = bo.getData(); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/NotifyController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/NotifyController.java index a1dd112c..a2158f63 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/NotifyController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/NotifyController.java @@ -14,6 +14,7 @@ import cc.iotkit.model.notify.Channel; import cc.iotkit.model.notify.ChannelConfig; import cc.iotkit.model.notify.ChannelTemplate; import cc.iotkit.model.notify.NotifyMessage; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -41,78 +42,91 @@ public class NotifyController { private NotifyService notifyService; @ApiOperation("获取通道类型列表") + @SaCheckPermission("iot:channel:query") @PostMapping("/channel/getList") public List getChannelList() { return notifyService.getChannelList(); } @ApiOperation("获取通道配置分页列表") + @SaCheckPermission("iot:channel:query") @PostMapping("/channel/config/getList") public Paging getChannelConfigList(@RequestBody @Validated(QueryGroup.class) PageRequest request) { return notifyService.getChannelConfigList(request); } @ApiOperation("获取通道配置列表") + @SaCheckPermission("iot:channel:query") @PostMapping("/channel/config/getAll") public List getChannelConfigAll() { return notifyService.getChannelConfigAll(); } @ApiOperation("新增通道配置") + @SaCheckPermission("iot:channel:add") @PostMapping("/channel/config/add") public ChannelConfig addChannelConfig(@RequestBody @Validated(EditGroup.class) Request request) { return notifyService.addChannelConfig(request.getData()); } @ApiOperation("根据ID获取通道配置") + @SaCheckPermission("iot:channel:query") @PostMapping("/channel/config/getById") public ChannelConfig getChannelConfigById(@RequestBody @Validated(QueryGroup.class) Request request) { return notifyService.getChannelConfigById(request.getData()); } @ApiOperation("修改通道配置") + @SaCheckPermission("iot:channel:edit") @PostMapping("/channel/config/updateById") public ChannelConfig updateChannelConfigById(@RequestBody @Validated Request request) { return notifyService.updateChannelConfigById(request.getData()); } @ApiOperation("删除通道配置") + @SaCheckPermission("iot:channel:remove") @PostMapping("/channel/config/delById") public Boolean delChannelConfigById(@RequestBody @Validated Request request) { return notifyService.delChannelConfigById(request.getData()); } @ApiOperation("获取通道模板列表") + @SaCheckPermission("iot:channel:query") @PostMapping("/channel/template/getList") public Paging getChannelTemplateList(@RequestBody @Validated(QueryGroup.class) PageRequest request) { return notifyService.getChannelTemplateList(request); } @ApiOperation("新增通道模板") + @SaCheckPermission("iot:channel:add") @PostMapping("/channel/template/add") public ChannelTemplate addChannelTemplate(@RequestBody @Validated(EditGroup.class) Request request) { return notifyService.addChannelTemplate(request.getData()); } @ApiOperation("根据ID获取通道模板") + @SaCheckPermission("iot:channel:query") @PostMapping("/channel/template/getById") public ChannelTemplate getChannelTemplateById(@RequestBody @Validated Request request) { return notifyService.getChannelTemplateById(request.getData()); } @ApiOperation("修改通道模板") + @SaCheckPermission("iot:channel:edit") @PostMapping("/channel/template/updateById") public ChannelTemplate updateChannelTemplateById(@RequestBody @Validated Request request) { return notifyService.updateChannelTemplateById(request.getData()); } @ApiOperation("删除通道模板") + @SaCheckPermission("iot:channel:remove") @PostMapping("/channel/template/delById") public Boolean delChannelTemplateById(@RequestBody @Validated(EditGroup.class) Request request) { return notifyService.delChannelTemplateById(request.getData()); } @ApiOperation("消息列表") + @SaCheckPermission("iot:channelMsg:query") @PostMapping("/message/getList") public Paging messageList(@RequestBody @Validated(QueryGroup.class) PageRequest request) { return notifyService.getNotifyMessageList(request); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/OtaController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/OtaController.java index ee1026d6..cadbbef5 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/OtaController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/OtaController.java @@ -14,6 +14,7 @@ import cc.iotkit.manager.dto.vo.ota.DeviceUpgradeVo; import cc.iotkit.manager.dto.vo.ota.OtaPackageUploadVo; import cc.iotkit.manager.service.OtaService; import cc.iotkit.model.ota.OtaPackage; +import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -41,6 +42,7 @@ public class OtaController extends BaseController { private OtaService otaService; @ApiOperation("升级包上传") + @SaCheckPermission("iot:ota:add") @PostMapping(value = "/package/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public OtaPackageUploadVo packageUpload(@RequestPart("file") MultipartFile file, @RequestParam("requestId") String requestId) throws Exception { if (ObjectUtil.isNull(file)) { @@ -50,24 +52,28 @@ public class OtaController extends BaseController { } @ApiOperation("新增升级包") + @SaCheckPermission("iot:ota:add") @PostMapping("/package/add") public OtaPackage packageAdd(@RequestBody @Valid Request request) { return otaService.addOtaPackage(request.getData()); } @ApiOperation("删除升级包") + @SaCheckPermission("iot:ota:remove") @PostMapping("/package/delById") public Boolean delPackageById(@RequestBody @Valid Request request) { return otaService.delOtaPackageById(request.getData()); } @ApiOperation("升级包列表") + @SaCheckPermission("iot:ota:query") @PostMapping("/package/getList") public Paging packageList(@RequestBody @Validated PageRequest request) { return otaService.getOtaPackagePageList(request); } @ApiOperation("OTA升级") + @SaCheckPermission("iot:ota:upgrade") @PostMapping("/device/upgrade") public DeviceUpgradeVo deviceUpgrade(@RequestBody Request request) { String result = otaService.startUpgrade(request.getData().getOtaId(), request.getData().getDeviceIds()); @@ -75,12 +81,14 @@ public class OtaController extends BaseController { } @ApiOperation("设备升级结果查询") + @SaCheckPermission("iot:ota:query") @PostMapping("/device/detail") public Paging otaDeviceDetail(@RequestBody PageRequest request) { return otaService.otaDeviceDetail(request); } @ApiOperation("设备升级批次查询") + @SaCheckPermission("iot:ota:query") @PostMapping("/device/info") public Paging otaDeviceInfo(@RequestBody PageRequest request) { return otaService.otaDeviceInfo(request); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java index 120ed703..4fe91811 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProductController.java @@ -25,6 +25,7 @@ import cc.iotkit.manager.dto.vo.product.ProductVo; import cc.iotkit.manager.dto.vo.productmodel.ProductModelVo; import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo; import cc.iotkit.manager.service.IProductService; +import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckRole; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; @@ -47,14 +48,16 @@ public class ProductController { @Autowired private IProductService productService; - @PostMapping("/list") @ApiOperation("列表") + @SaCheckPermission("iot:product:query") + @PostMapping("/list") public Paging getProducts(@Validated @RequestBody PageRequest request) { return productService.selectPageList(request); } @ApiOperation("新建") + @SaCheckPermission("iot:product:add") @PostMapping(value = "/add") @Log(title = "产品", businessType = BusinessType.INSERT) public ProductVo create(@Validated(AddGroup.class) @RequestBody Request request) { @@ -62,95 +65,107 @@ public class ProductController { } @ApiOperation(value = "编辑产品") + @SaCheckPermission("iot:product:edit") @PostMapping("/edit") @Log(title = "产品", businessType = BusinessType.UPDATE) public boolean edit(@Validated(EditGroup.class) @RequestBody Request request) { return productService.updateEntity(request.getData()); } - @ApiOperation("查看详情") + @SaCheckPermission("iot:product:query") @PostMapping(value = "/getDetail") public ProductVo getDetail(@RequestBody @Validated Request request) { return productService.getDetail(request.getData()); } - @ApiOperation("删除产品") + @SaCheckPermission("iot:product:remove") @PostMapping(value = "/deleteProduct") public boolean deleteProduct(@RequestBody @Validated Request request) { return productService.deleteProduct(request.getData()); } - @PostMapping("/getThingModelByProductKey") @ApiOperation("查看物模型") + @SaCheckPermission("iot:thingModel:query") + @PostMapping("/getThingModelByProductKey") public ThingModelVo getThingModelByProductKey(@RequestBody @Validated Request request) { return productService.getThingModelByProductKey(request.getData()); } @ApiOperation("保存物模型") + @SaCheckPermission("iot:thingModel:edit") @PostMapping("/thingModel/save") public boolean saveThingModel(@Validated @RequestBody Request request) { return productService.saveThingModel(request.getData()); } - @PostMapping("/thingModel/delete") @ApiOperation("删除物模型") + @SaCheckPermission("iot:thingModel:remove") + @PostMapping("/thingModel/delete") @Log(title = "物模型", businessType = BusinessType.DELETE) public boolean deleteThingModel(@Validated @RequestBody Request id) { return productService.deleteThingModel(id.getData()); } - @PostMapping("/category/list") @ApiOperation("产品品类分页展示") + @SaCheckPermission("iot:category:query") + @PostMapping("/category/list") public Paging getCategories(@Validated @RequestBody PageRequest request) { return productService.selectCategoryPageList(request); } - @PostMapping("/category/getAll") @ApiOperation("产品品类展示") + @SaCheckPermission("iot:category:query") + @PostMapping("/category/getAll") public List getCategorieList() { return productService.selectCategoryList(); } - @SaCheckRole("iot_admin") @ApiOperation("品类编辑") + @SaCheckRole("iot_admin") + @SaCheckPermission("iot:category:edit") @PostMapping("/category/edit") public boolean saveCategory(@Validated @RequestBody Request req) { return productService.editCategory(req.getData()); } - @SaCheckRole("iot_admin") - @PostMapping("/category/delete") @ApiOperation("删除品类") + @SaCheckRole("iot_admin") + @SaCheckPermission("iot:category:remove") + @PostMapping("/category/delete") public boolean delCategory(@Validated @RequestBody Request req) { return productService.deleteCategory(req.getData()); } @ApiOperation("上传产品图片") + @SaCheckPermission("iot:product:edit") @PostMapping("/uploadImg/{productKey}") public String uploadImg(@PathVariable("productKey") String productKey, @RequestParam("file") MultipartFile file) { return productService.uploadImg(productKey, file); } - @PostMapping("/getModelsByProductKey") @ApiModelProperty("获取产品型号") + @SaCheckPermission("iot:product:query") + @PostMapping("/getModelsByProductKey") public List getModels(@Validated @RequestBody Request bo) { return productService.getModels(bo.getData()); } - @PostMapping("/productModel/edit") @ApiOperation("编辑产品型号") + @SaCheckPermission("iot:product:edit") + @PostMapping("/productModel/edit") public boolean saveProductModel(@Validated @RequestBody Request bo) { return productService.editProductModel(bo.getData()); } - @PostMapping("/productModel/delete") @ApiOperation("删除产品型号") + @SaCheckPermission("iot:product:remove") + @PostMapping("/productModel/delete") public boolean deleteProductModel(@Validated @RequestBody Request id) { return productService.deleteProductModel(id.getData()); } diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProtocolController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProtocolController.java index 7a21d39b..62a4e382 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProtocolController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ProtocolController.java @@ -20,6 +20,7 @@ import cc.iotkit.manager.dto.bo.protocolconverter.ProtocolConverterBo; import cc.iotkit.manager.dto.vo.protocolcomponent.ProtocolComponentVo; import cc.iotkit.manager.dto.vo.protocolconverter.ProtocolConverterVo; import cc.iotkit.manager.service.IProtocolService; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +37,7 @@ public class ProtocolController { private IProtocolService protocolService; @ApiOperation("上传Jar包") + @SaCheckPermission("iot:component:add") @PostMapping("/uploadJar") public String uploadJar( @RequestParam("id") String id, @@ -44,12 +46,14 @@ public class ProtocolController { } @ApiOperation("添加组件") + @SaCheckPermission("iot:component:add") @PostMapping("/addComponent") public boolean addComponent(@RequestBody @Validated Request bo) { return protocolService.addComponent(bo.getData()); } @ApiOperation("修改组件") + @SaCheckPermission("iot:component:edit") @PostMapping("/editComponent") public boolean saveComponent(@RequestBody @Validated Request bo) { protocolService.saveComponent(bo.getData()); @@ -57,6 +61,7 @@ public class ProtocolController { } @ApiOperation("获取组件详情") + @SaCheckPermission("iot:component:query") @PostMapping("/getComponentDetail") public ProtocolComponentVo getComponentScript(@Validated @RequestBody Request req) { String id = req.getData(); @@ -65,6 +70,7 @@ public class ProtocolController { } @ApiOperation("保存组件脚本") + @SaCheckPermission("iot:component:edit") @PostMapping("/saveComponentScript") public boolean saveComponentScript(@Validated @RequestBody Request upReq) { @@ -73,12 +79,14 @@ public class ProtocolController { @ApiOperation("删除组件") + @SaCheckPermission("iot:component:remove") @PostMapping("/delete") public boolean deleteComponent(@Validated @RequestBody Request req) { return protocolService.deleteComponent(req.getData()); } @ApiOperation("获取组件列表") + @SaCheckPermission("iot:component:query") @PostMapping("/list") public Paging getComponents(@Validated @RequestBody PageRequest query) { @@ -86,24 +94,28 @@ public class ProtocolController { } @ApiOperation("获取转换脚本列表") + @SaCheckPermission("iot:converter:query") @PostMapping("/converters/list") public Paging getConverters(@Validated @RequestBody PageRequest query) { return protocolService.selectConvertersPageList(query); } @ApiOperation("新增转换脚本") + @SaCheckPermission("iot:converter:add") @PostMapping("/converter/add") public boolean addConverter(@Validated(AddGroup.class) @RequestBody Request converter) { return protocolService.addConverter(converter.getData()); } @ApiOperation("修改转换脚本") + @SaCheckPermission("iot:converter:edit") @PostMapping("/converter/edit") public boolean editConverter(@Validated(EditGroup.class) @RequestBody Request req) { return protocolService.editConverter(req.getData()); } @ApiOperation("获取转换脚本详情") + @SaCheckPermission("iot:converter:query") @PostMapping("/getConverterScript") public ProtocolConverterVo getConverter(@RequestBody Request req) { String id = req.getData(); @@ -111,6 +123,7 @@ public class ProtocolController { } @PostMapping("/converterScript/edit") + @SaCheckPermission("iot:converter:edit") @ApiOperation("保存转换脚本") public boolean saveConverterScript( @Validated @RequestBody Request req) { @@ -119,6 +132,7 @@ public class ProtocolController { } @PostMapping("/converter/delete") + @SaCheckPermission("iot:converter:remove") @ApiOperation("删除转换脚本") public boolean deleteConverter(@RequestBody @Validated Request req) { String id = req.getData(); @@ -126,6 +140,7 @@ public class ProtocolController { } @PostMapping("/component/changeState") + @SaCheckPermission("iot:component:edit") @ApiOperation("组件启用/禁用") public boolean changeComponentState(@RequestBody @Validated Request req) { return protocolService.changeComponentState(req.getData()); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java index 2ccd54b0..0ca997a8 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/RuleEngineController.java @@ -21,6 +21,7 @@ import cc.iotkit.manager.dto.vo.ruleinfo.RuleLogVo; import cc.iotkit.manager.dto.vo.taskinfo.TaskInfoVo; import cc.iotkit.manager.dto.vo.taskinfo.TaskLogVo; import cc.iotkit.manager.service.IRuleEngineService; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -41,6 +42,7 @@ public class RuleEngineController { IRuleEngineService ruleEngineService; @ApiOperation("规则列表") + @SaCheckPermission("iot:rule:query") @PostMapping("/list") public Paging rules( @Validated @RequestBody @@ -50,12 +52,14 @@ public class RuleEngineController { } @ApiOperation("保存规则") + @SaCheckPermission("iot:rule:eidt") @PostMapping("/edit") public boolean saveRule(@RequestBody @Validated Request ruleInfoBo) { return ruleEngineService.saveRule(ruleInfoBo.getData()); } @ApiOperation("暂停规则") + @SaCheckPermission("iot:rule:edit") @PostMapping("/pause") public boolean pauseRule(@Validated @RequestBody Request request) { String ruleId = request.getData(); @@ -63,6 +67,7 @@ public class RuleEngineController { } @ApiOperation("恢复规则") + @SaCheckPermission("iot:rule:edit") @PostMapping("/resume") public boolean resumeRule(@Validated @RequestBody Request request) { String ruleId = request.getData(); @@ -71,6 +76,7 @@ public class RuleEngineController { } @ApiOperation("删除规则") + @SaCheckPermission("iot:rule:remove") @PostMapping("/delete") public boolean deleteRule(@Validated @RequestBody Request request) { String ruleId = request.getData(); @@ -78,6 +84,7 @@ public class RuleEngineController { } @ApiOperation("规则日志") + @SaCheckPermission("iot:rule:query") @PostMapping("/ruleLog/list") public Paging getRuleLogs( @Validated @RequestBody PageRequest request @@ -86,6 +93,7 @@ public class RuleEngineController { } @ApiOperation("清理日志") + @SaCheckPermission("iot:rule:remove") @PostMapping("/ruleLog/clear") public boolean clearRuleLogs(@Validated @RequestBody Request request) { String ruleId = request.getData(); @@ -94,18 +102,21 @@ public class RuleEngineController { } @ApiOperation("定时任务列表") + @SaCheckPermission("iot:task:query") @PostMapping("/tasks/list") public Paging tasks(@Validated @RequestBody PageRequest request) { return ruleEngineService.selectTaskPageList(request); } @ApiOperation("保存定时任务") + @SaCheckPermission("iot:task:edit") @PostMapping("/task/save") public boolean saveTask(@Validated @RequestBody Request taskInfo) { return ruleEngineService.saveTask(taskInfo.getData()); } @ApiOperation("停止定时任务") + @SaCheckPermission("iot:task:edit") @PostMapping("/task/pause") public boolean pauseTask(@Validated @RequestBody Request request) { String taskId = request.getData(); @@ -113,12 +124,14 @@ public class RuleEngineController { } @ApiOperation("恢复定时任务") + @SaCheckPermission("iot:task:edit") @PostMapping("/task/resume") public boolean resumeTask(@Validated @RequestBody Request request) { return ruleEngineService.resumeTask(request.getData()); } @ApiOperation("更新定时任务") + @SaCheckPermission("iot:task:edit") @PostMapping("/task/renew") public boolean renewTask(@Validated @RequestBody Request request) { String taskId = request.getData(); @@ -127,6 +140,7 @@ public class RuleEngineController { } @ApiOperation("删除定时任务") + @SaCheckPermission("iot:task:remove") @PostMapping("/task/delete") public boolean deleteTask(@Validated @RequestBody Request request) { String taskId = request.getData(); @@ -135,6 +149,7 @@ public class RuleEngineController { } @ApiOperation("定时任务日志list") + @SaCheckPermission("iot:task:query") @PostMapping("/taskLogs/list") public Paging getTaskLogs( @Validated @RequestBody PageRequest request @@ -143,6 +158,7 @@ public class RuleEngineController { } @ApiOperation("清除定时任务日志") + @SaCheckPermission("iot:task:remove") @PostMapping("/taskLogs/clear") public boolean clearTaskLogs(@Validated @RequestBody Request request) { return ruleEngineService.clearTaskLogs(request.getData()); diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ScreenController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ScreenController.java index 2594ef5c..fa7b92df 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ScreenController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/ScreenController.java @@ -10,6 +10,7 @@ import cc.iotkit.manager.dto.bo.screen.PublishChangeBo; import cc.iotkit.manager.service.IScreenService; import cc.iotkit.model.screen.Screen; import cc.iotkit.model.screen.ScreenApi; +import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -35,12 +36,14 @@ public class ScreenController { private IScreenService screenService; @ApiOperation(value = "获取大屏列表", httpMethod = "POST") + @SaCheckPermission("iot:screen:list") @PostMapping("/getScreens") public Paging getBigScreens(@Validated @RequestBody PageRequest request) { return screenService.getBigScreens(request); } @ApiOperation(value = "上传大屏资源包") + @SaCheckPermission("iot:screen:add") @PostMapping("/uploadResourceFile") public Long uploadResourceFile(@RequestParam("file") MultipartFile file, @RequestBody @Validated Request id){ @@ -52,6 +55,7 @@ public class ScreenController { } @ApiOperation(value = "获取大屏接口") + @SaCheckPermission("iot:screen:list") @PostMapping("/getScreenApis") public List getScreenApis(@RequestBody @Validated Request id) { if (ObjectUtil.isEmpty(id.getData())) { @@ -61,12 +65,14 @@ public class ScreenController { } @ApiOperation(value = "获取默认大屏") + @SaCheckPermission("iot:screen:query") @PostMapping("/getDefaultScreen") public Screen getDefaultScreen() { return screenService.getDefaultScreen(); } @ApiOperation(value = "同步资源包接口") + @SaCheckPermission("iot:screen:query") @PostMapping("/syncResourceApis") public List syncResourceApis(@RequestBody @Validated Request id) { if (ObjectUtil.isEmpty(id.getData())) { @@ -76,6 +82,7 @@ public class ScreenController { } @ApiOperation(value = "预览接口") + @SaCheckPermission("iot:screen:query") @PostMapping("/previewApis") public void previewApis(@RequestBody @Validated Request> screenApis) { if (ObjectUtil.isNull(screenApis.getData()) || screenApis.getData().isEmpty()) { @@ -85,6 +92,7 @@ public class ScreenController { } @ApiOperation(value = "保存大屏接口") + @SaCheckPermission("iot:screen:edit") @PostMapping("/saveScreenApis") public void saveScreenApis(@RequestBody @Validated Request> screenApis) { if (ObjectUtil.isNull(screenApis.getData()) || screenApis.getData().isEmpty()) { @@ -94,30 +102,35 @@ public class ScreenController { } @ApiOperation(value = "调试模式转换") + @SaCheckPermission("iot:screen:edit") @PostMapping("/debugModeChange") public void debugMode(@RequestBody @Validated Request debugChange) { screenService.debugModeChange(debugChange.getData()); } @ApiOperation(value = "添加大屏") + @SaCheckPermission("iot:screen:add") @PostMapping("/addScreen") public void addScreen(@RequestBody @Validated Request screen) { screenService.addBigScreen(screen.getData()); } @ApiOperation(value = "保存大屏") + @SaCheckPermission("iot:screen:edit") @PostMapping("/saveScreen") public void saveScreen(@RequestBody @Validated Request screen) { screenService.saveBigScreen(screen.getData()); } @ApiOperation(value = "发布状态改变") + @SaCheckPermission("iot:screen:edit") @PostMapping("/publishStatusChange") public void publishStatusChange(@RequestBody @Validated Request req) { screenService.publishStatusChange(req.getData()); } @ApiOperation(value = "设置默认大屏") + @SaCheckPermission("iot:screen:edit") @PostMapping("/setDefaultScreen") public void setDefaultScreen(@RequestBody @Validated Request id) { if (ObjectUtil.isEmpty(id.getData())) { @@ -127,6 +140,7 @@ public class ScreenController { } @ApiOperation(value = "删除大屏", httpMethod = "POST") + @SaCheckPermission("iot:screen:remove") @PostMapping("/deleteScreen") public void deleteScreen(@RequestBody @Validated Request id) { if (ObjectUtil.isEmpty(id.getData())) { diff --git a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/VirtualDeviceController.java b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/VirtualDeviceController.java index 7aef060b..6f2093e6 100644 --- a/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/VirtualDeviceController.java +++ b/iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/VirtualDeviceController.java @@ -25,6 +25,7 @@ import cc.iotkit.model.device.VirtualDevice; import cc.iotkit.model.device.VirtualDeviceLog; import cc.iotkit.temporal.IVirtualDeviceLogData; import cc.iotkit.virtualdevice.VirtualManager; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -53,6 +54,7 @@ public class VirtualDeviceController { private IVirtualDeviceLogData virtualDeviceLogData; @ApiOperation("获取虚拟设备列表") + @SaCheckPermission("iot:virtualDevice:query") @PostMapping("/list") public Paging getDevices(PageRequest pageRequest) { return virtualDeviceData.findAll(pageRequest); @@ -62,6 +64,7 @@ public class VirtualDeviceController { * 添加虚拟设备 */ @ApiOperation("添加虚拟设备") + @SaCheckPermission("iot:virtualDevice:add") @PostMapping("/add") public void add(@Validated @RequestBody VirtualDevice virtualDevice) { virtualDeviceData.save(virtualDevice); @@ -71,6 +74,7 @@ public class VirtualDeviceController { * 修改虚拟设备 */ @ApiOperation("修改虚拟设备") + @SaCheckPermission("iot:virtualDevice:edit") @PostMapping("/modify") public void modify(@Validated @RequestBody Request bo) { VirtualDevice virtualDevice = bo.getData(); @@ -85,6 +89,7 @@ public class VirtualDeviceController { * 获取虚拟设备详情 */ @ApiOperation("获取虚拟设备详情") + @SaCheckPermission("iot:virtualDevice:query") @PostMapping("/getDetail") public VirtualDevice detail(@Validated @RequestBody Request bo) { return checkOwner(bo.getData()); @@ -94,6 +99,7 @@ public class VirtualDeviceController { * 设置虚拟设备状态 */ @ApiOperation("设置虚拟设备状态") + @SaCheckPermission("iot:virtualDevice:edit") @PostMapping("/setState") public void setState(@Validated @RequestBody Request bo) { ChangeStateBo data = bo.getData(); @@ -117,6 +123,7 @@ public class VirtualDeviceController { * 删除 */ @ApiOperation("删除虚拟设备") + @SaCheckPermission("iot:virtualDevice:remove") @PostMapping("/delete") public void delete(@Validated @RequestBody Request bo) { String id = bo.getData(); @@ -128,6 +135,7 @@ public class VirtualDeviceController { * 删除 */ @ApiOperation("批量删除虚拟设备") + @SaCheckPermission("iot:virtualDevice:remove") @PostMapping("/batchDelete") public void batchDelete(@Validated @RequestBody Request> ids) { virtualDeviceData.deleteByIds(ids.getData()); @@ -137,6 +145,7 @@ public class VirtualDeviceController { * 保存脚本 */ @ApiOperation("保存脚本") + @SaCheckPermission("iot:virtualDevice:edit") @PostMapping("/saveScript") public void saveScript(@Validated @RequestBody Request bo) { DeviceSaveScriptBo data = bo.getData(); @@ -151,6 +160,7 @@ public class VirtualDeviceController { * 保存关联设备 */ @ApiOperation("保存关联设备") + @SaCheckPermission("iot:virtualDevice:edit") @PostMapping("/saveDevices") public void saveDevices(@Validated @RequestBody Request bo) { VirtualSaveDevicesBo data = bo.getData(); @@ -165,6 +175,7 @@ public class VirtualDeviceController { * 手动执行虚拟设备 */ @ApiOperation("手动执行虚拟设备") + @SaCheckPermission("iot:virtualDevice:query") @PostMapping("/run") public void run(@Validated @RequestBody Request bo) { String id = bo.getData(); @@ -176,6 +187,7 @@ public class VirtualDeviceController { * 取虚拟设备执行日志 */ @ApiOperation("取虚拟设备执行日志") + @SaCheckPermission("iot:virtualDevice:query") @PostMapping("/logs/list") public Paging getLogs( @Validated @RequestBody PageRequest bo) {