新增AIoT边缘智能模块:摄像头ROI配置、算法管理、配置推送

- 后端:新增aiot模块(bean/dao/service/controller),支持ROI区域CRUD、
  算法注册表管理、ROI-算法绑定、配置推送到FastAPI边缘端、变更日志
- 前端:新增摄像头配置页(列表+ROI子页面)、算法配置页、Canvas绘图组件
  (矩形/多边形)、动态算法参数编辑器、ZLM截图作为ROI编辑背景
- 数据库:新建4张表(wvp_ai_roi/algorithm/roi_algo_bind/config_log)
  字段与FastAPI端SQLite兼容,含2个预置算法
- 路由裁剪:隐藏无关菜单(地图/部标/推流/录制计划等)
- 修复cameraId含/导致REST路径解析错误(改用query参数)
- 新增ai.service配置项(边缘端地址/超时/开关)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-04 08:59:20 +08:00
parent 6c471cdfd7
commit d7bf969694
44 changed files with 2943 additions and 12 deletions

View File

@@ -89,6 +89,7 @@ export const constantRoutes = [
path: '/map',
component: Layout,
redirect: '/map',
hidden: true,
children: [{
path: '',
name: 'Map',
@@ -116,6 +117,7 @@ export const constantRoutes = [
meta: { title: '国标录像' }
},
{
hidden: true,
path: '/jtDevice',
name: 'JTDevice',
component: () => import('@/views/jtDevice/index'),
@@ -129,6 +131,7 @@ export const constantRoutes = [
meta: { title: '部标录像' }
},
{
hidden: true,
path: '/push',
name: 'PushList',
component: () => import('@/views/streamPush/index'),
@@ -167,6 +170,7 @@ export const constantRoutes = [
path: '/recordPlan',
component: Layout,
redirect: '/recordPlan',
hidden: true,
children: [
{
path: '',
@@ -180,6 +184,7 @@ export const constantRoutes = [
path: '/cloudRecord',
component: Layout,
redirect: '/cloudRecord',
hidden: true,
onlyIndex: 0,
children: [
{
@@ -200,6 +205,7 @@ export const constantRoutes = [
path: '/mediaServer',
component: Layout,
redirect: '/mediaServer',
hidden: true,
children: [
{
path: '',
@@ -213,6 +219,7 @@ export const constantRoutes = [
path: '/platform',
component: Layout,
redirect: '/platform',
hidden: true,
children: [
{
path: '',
@@ -222,6 +229,38 @@ export const constantRoutes = [
}
]
},
{
path: '/cameraConfig',
component: Layout,
redirect: '/cameraConfig',
onlyIndex: 0,
children: [
{
path: '/cameraConfig',
name: 'CameraConfig',
component: () => import('@/views/cameraConfig/index'),
meta: { title: '摄像头配置', icon: 'roi' }
},
{
hidden: true,
path: '/cameraConfig/roi/:cameraId',
name: 'CameraRoiConfig',
component: () => import('@/views/cameraConfig/roiConfig'),
meta: { title: 'ROI配置' }
}
]
},
{
path: '/algorithmConfig',
component: Layout,
redirect: '/algorithmConfig',
children: [{
path: '',
name: 'AlgorithmConfig',
component: () => import('@/views/algorithmConfig/index'),
meta: { title: '算法配置', icon: 'algorithm' }
}]
},
{
path: '/user',
component: Layout,
@@ -251,6 +290,7 @@ export const constantRoutes = [
{
path: '/operations',
component: Layout,
hidden: true,
meta: { title: '运维中心', icon: 'operations' },
redirect: '/operations/systemInfo',
children: [