Files
wvp-platform/web/src/store/modules/aiRoi.js
16337 d7bf969694 新增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>
2026-02-04 08:59:20 +08:00

94 lines
2.0 KiB
JavaScript

import {
queryRoiList,
queryRoiDetail,
queryRoiByCameraId,
saveRoi,
deleteRoi,
bindAlgo,
unbindAlgo,
updateAlgoParams
} from '@/api/aiRoi'
const actions = {
queryRoiList({ commit }, params) {
return new Promise((resolve, reject) => {
queryRoiList(params).then(response => {
const { data } = response
resolve(data)
}).catch(error => {
reject(error)
})
})
},
queryRoiDetail({ commit }, id) {
return new Promise((resolve, reject) => {
queryRoiDetail(id).then(response => {
const { data } = response
resolve(data)
}).catch(error => {
reject(error)
})
})
},
queryRoiByCameraId({ commit }, cameraId) {
return new Promise((resolve, reject) => {
queryRoiByCameraId(cameraId).then(response => {
const { data } = response
resolve(data)
}).catch(error => {
reject(error)
})
})
},
saveRoi({ commit }, data) {
return new Promise((resolve, reject) => {
saveRoi(data).then(response => {
resolve(response)
}).catch(error => {
reject(error)
})
})
},
deleteRoi({ commit }, roiId) {
return new Promise((resolve, reject) => {
deleteRoi(roiId).then(response => {
resolve(response)
}).catch(error => {
reject(error)
})
})
},
bindAlgo({ commit }, data) {
return new Promise((resolve, reject) => {
bindAlgo(data).then(response => {
resolve(response)
}).catch(error => {
reject(error)
})
})
},
unbindAlgo({ commit }, bindId) {
return new Promise((resolve, reject) => {
unbindAlgo(bindId).then(response => {
resolve(response)
}).catch(error => {
reject(error)
})
})
},
updateAlgoParams({ commit }, data) {
return new Promise((resolve, reject) => {
updateAlgoParams(data).then(response => {
resolve(response)
}).catch(error => {
reject(error)
})
})
}
}
export default {
namespaced: true,
actions
}