Add comprehensive patrol event management module
- Implement event API for creating, retrieving, updating, and exporting patrol events - Create detailed Vue component with advanced features: * Event statistics dashboard * Comprehensive search and filtering * Image and video preview * Event processing and status management * Export functionality for individual and batch events - Add support for event lifecycle management and detailed event tracking
This commit is contained in:
parent
b1931cc8c9
commit
1972b43dec
117
src/api/patrol/event.js
Normal file
117
src/api/patrol/event.js
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建安防事件
|
||||||
|
* @param {Object} data - 事件数据
|
||||||
|
* @param {string} data.event_type - 事件类型:非法捕捞/环境破坏/设施损坏/其他事件
|
||||||
|
* @param {number} data.event_level - 事件级别:1-轻微 2-中等 3-严重
|
||||||
|
* @param {string} data.location_description - 位置描述
|
||||||
|
* @param {string} data.description - 事件描述
|
||||||
|
* @param {Array} [data.image_urls] - 图片地址列表
|
||||||
|
* @param {Array} [data.video_urls] - 视频地址列表
|
||||||
|
* @param {string} [data.reporter_name] - 上报人姓名
|
||||||
|
* @param {string} [data.reporter_phone] - 上报人电话
|
||||||
|
* @param {string} [data.remark] - 备注信息
|
||||||
|
* @returns {Promise} 返回创建结果
|
||||||
|
*/
|
||||||
|
export function createEvent(data) {
|
||||||
|
return request.post('/api/admin/patrol/events', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取安防事件列表
|
||||||
|
* @param {Object} params - 查询参数
|
||||||
|
* @param {number} [params.page=1] - 页码
|
||||||
|
* @param {number} [params.pageSize=10] - 每页条数
|
||||||
|
* @param {string} [params.keyword] - 搜索关键词
|
||||||
|
* @param {string} [params.event_type] - 事件类型
|
||||||
|
* @param {number} [params.event_level] - 事件级别
|
||||||
|
* @param {number} [params.handling_status] - 处理状态
|
||||||
|
* @param {string} [params.start_date] - 开始日期
|
||||||
|
* @param {string} [params.end_date] - 结束日期
|
||||||
|
* @returns {Promise} 返回事件列表数据
|
||||||
|
*/
|
||||||
|
export function getEventList(params = {}) {
|
||||||
|
return request.get('/api/admin/patrol/events', {
|
||||||
|
params: {
|
||||||
|
page: params.page || 1,
|
||||||
|
page_size: params.pageSize || 10,
|
||||||
|
keyword: params.keyword || undefined,
|
||||||
|
event_type: params.event_type || undefined,
|
||||||
|
event_level: params.event_level || undefined,
|
||||||
|
handling_status: params.handling_status || undefined,
|
||||||
|
start_date: params.start_date || undefined,
|
||||||
|
end_date: params.end_date || undefined
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取安防事件详情
|
||||||
|
* @param {string|number} id - 事件ID
|
||||||
|
* @returns {Promise} 返回事件详情数据
|
||||||
|
*/
|
||||||
|
export function getEventDetail(id) {
|
||||||
|
return request.get(`/api/admin/patrol/events/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新事件处理状态
|
||||||
|
* @param {string|number} id - 事件ID
|
||||||
|
* @param {Object} data - 更新数据
|
||||||
|
* @param {number} data.handling_status - 处理状态:0-待处理 1-处理中 2-已处理 3-已关闭
|
||||||
|
* @param {string} [data.handling_description] - 处理描述
|
||||||
|
* @returns {Promise} 返回更新结果
|
||||||
|
*/
|
||||||
|
export function updateEventStatus(id, data) {
|
||||||
|
return request.put(`/api/admin/patrol/events/${id}/status`, {
|
||||||
|
handling_status: data.handling_status,
|
||||||
|
handling_description: data.handling_description || '',
|
||||||
|
updated_by: 1 // 默认管理员ID
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出事件列表
|
||||||
|
* @param {Object} params - 导出参数
|
||||||
|
* @param {string} [params.event_type] - 事件类型
|
||||||
|
* @param {number} [params.event_level] - 事件级别
|
||||||
|
* @param {number} [params.handling_status] - 处理状态
|
||||||
|
* @param {string} [params.start_date] - 开始日期
|
||||||
|
* @param {string} [params.end_date] - 结束日期
|
||||||
|
* @returns {Promise} 返回二进制文件流
|
||||||
|
*/
|
||||||
|
export function exportEvents(params = {}) {
|
||||||
|
return request.get('/api/admin/patrol/events/export/list', {
|
||||||
|
params,
|
||||||
|
responseType: 'blob',
|
||||||
|
headers: {
|
||||||
|
'Accept': 'application/vnd.ms-excel'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量导出事件
|
||||||
|
* @param {Array<string|number>} ids - 事件ID列表
|
||||||
|
* @returns {Promise} 返回二进制文件流
|
||||||
|
*/
|
||||||
|
export function batchExportEvents(ids) {
|
||||||
|
return request.post('/api/admin/patrol/events/export/batch',
|
||||||
|
{ ids },
|
||||||
|
{
|
||||||
|
responseType: 'blob',
|
||||||
|
headers: {
|
||||||
|
'Accept': 'application/vnd.ms-excel'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取事件统计信息
|
||||||
|
* @returns {Promise} 返回统计数据
|
||||||
|
*/
|
||||||
|
export function getEventStatistics() {
|
||||||
|
return request.get('/api/admin/patrol/events/statistics/overview')
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -240,6 +240,7 @@ const initTrendChart = () => {
|
|||||||
type: 'dashed'
|
type: 'dashed'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
minInterval: 1,
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
formatter: '{value} 次',
|
formatter: '{value} 次',
|
||||||
margin: 10
|
margin: 10
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user