/**
|
* 证据材料API Service
|
* 处理证据相关接口
|
* 接口前缀: /api/v1/evidence/*
|
*/
|
|
import { request } from './request';
|
|
class EvidenceAPIService {
|
/**
|
* 证据列表查询
|
* GET /api/v1/evidence/list
|
* @param {Object} params - 查询参数
|
* @param {string} params.caseId - 案件ID
|
* @param {string} params.personId - 当事人ID
|
* @param {string} params.type - 证据类型
|
* @param {string} params.status - 证据状态
|
* @param {number} params.page - 页码
|
* @param {number} params.size - 每页数量
|
* @returns {Promise} 证据列表
|
*/
|
static getEvidenceList(params = {}) {
|
return request.get('/api/v1/evidence/list', params);
|
}
|
|
/**
|
* 当事人信息查询
|
* GET /api/v1/evidence/person-info
|
* @param {Object} params - 查询参数
|
* @param {string} params.case_id - 案件ID
|
* @param {string} params.evidence_type - 证据类型
|
* @param {string} params.per_type - 人员类型(15_020008-1/15_020008-2)
|
* @returns {Promise} 当事人信息
|
*/
|
static getPersonInfo(params = {}) {
|
return request.get('/api/v1/evidence/person-info', params);
|
}
|
|
/**
|
* 按当事人查询证据列表(获取材料图片列表)
|
* GET /api/v1/evidence/list-by-person
|
* @param {Object} params - 查询参数
|
* @param {string} params.case_id - 案件ID
|
* @param {string} params.evidence_type - 证据类型
|
* @param {string} params.per_type - 人员类型
|
* @param {string} params.person_id - 人员ID
|
* @returns {Promise} 证据列表(含show_url图片路径)
|
*/
|
static getEvidenceListByPerson(params = {}) {
|
return request.get('/api/v1/evidence/list-by-person', params);
|
}
|
|
/**
|
* 证据审核
|
* POST /api/v1/evidence/audit
|
* @param {Object} data - 审核数据
|
* @param {string} data.case_id - 案件ID
|
* @param {string|number} data.evidence_type - 证据类型
|
* @param {string} data.person_id - 人员ID
|
* @param {Array<string>} data.file_id_list - 文件ID列表
|
* @param {string} data.audit_user - 审核人
|
* @param {number} data.audit_state - 审核状态(1-审核通过,2-退回补充)
|
* @param {string} data.audit_remark - 审核意见(退回时必填)
|
* @returns {Promise} 审核结果
|
*/
|
static auditEvidence(data = {}) {
|
return request.post('/api/v1/evidence/audit', data);
|
}
|
|
/**
|
* 上传证据材料
|
* POST /api/v1/evidence/upload
|
* @param {FormData} formData - 包含文件和其他元数据的表单数据
|
* @returns {Promise} 上传结果
|
*/
|
static uploadEvidence(formData) {
|
return request.post('/api/v1/evidence/upload', formData, {
|
headers: {
|
'Content-Type': 'multipart/form-data'
|
}
|
});
|
}
|
|
/**
|
* 下载证据材料
|
* GET /api/v1/evidence/download/{evidenceId}
|
* @param {string} evidenceId - 证据ID
|
* @returns {Promise} 下载链接或文件流
|
*/
|
static downloadEvidence(evidenceId) {
|
return request.get(`/api/v1/evidence/download/${evidenceId}`, {
|
responseType: 'blob'
|
});
|
}
|
|
/**
|
* 删除证据材料
|
* DELETE /api/v1/evidence/{evidenceId}
|
* @param {string} evidenceId - 证据ID
|
* @returns {Promise} 删除结果
|
*/
|
static deleteEvidence(evidenceId) {
|
return request.delete(`/api/v1/evidence/${evidenceId}`);
|
}
|
|
/**
|
* 获取证据详情
|
* GET /api/v1/evidence/detail/{evidenceId}
|
* @param {string} evidenceId - 证据ID
|
* @returns {Promise} 证据详情
|
*/
|
static getEvidenceDetail(evidenceId) {
|
return request.get(`/api/v1/evidence/detail/${evidenceId}`);
|
}
|
|
/**
|
* 批量审核证据
|
* POST /api/v1/evidence/batch-audit
|
* @param {Object} data - 批量审核数据
|
* @param {Array} data.evidenceIds - 证据ID数组
|
* @param {string} data.status - 审核状态
|
* @param {string} data.auditOpinion - 审核意见
|
* @returns {Promise} 批量审核结果
|
*/
|
static batchAuditEvidence(data = {}) {
|
return request.post('/api/v1/evidence/batch-audit', data);
|
}
|
|
/**
|
* 证据分类统计
|
* GET /api/v1/evidence/statistics
|
* @param {string} caseId - 案件ID
|
* @returns {Promise} 分类统计信息
|
*/
|
static getEvidenceStatistics(caseId) {
|
return request.get('/api/v1/evidence/statistics', { caseId });
|
}
|
|
/**
|
* 获取证据模板列表
|
* GET /api/v1/evidence/templates
|
* @param {string} type - 证据类型
|
* @returns {Promise} 模板列表
|
*/
|
static getEvidenceTemplates(type) {
|
return request.get('/api/v1/evidence/templates', { type });
|
}
|
|
/**
|
* 根据案件获取所有当事人证据
|
* @param {string} caseId - 案件ID
|
* @returns {Promise} 所有当事人证据数据
|
*/
|
static async getAllEvidenceByCase(caseId) {
|
try {
|
// 获取案件所有证据
|
const evidenceList = await this.getEvidenceList({ caseId });
|
|
// 按当事人分组
|
const groupedByPerson = {};
|
if (evidenceList.data && evidenceList.data.data) {
|
evidenceList.data.data.forEach(item => {
|
const personId = item.personId;
|
if (!groupedByPerson[personId]) {
|
groupedByPerson[personId] = {
|
personInfo: null,
|
evidences: []
|
};
|
}
|
groupedByPerson[personId].evidences.push(item);
|
});
|
}
|
|
// 获取每个当事人的详细信息
|
const personPromises = Object.keys(groupedByPerson).map(async (personId) => {
|
try {
|
const personInfo = await this.getPersonInfo(personId);
|
groupedByPerson[personId].personInfo = personInfo.data;
|
} catch (error) {
|
console.warn(`获取当事人${personId}信息失败:`, error);
|
}
|
});
|
|
await Promise.all(personPromises);
|
|
return groupedByPerson;
|
} catch (error) {
|
return Promise.reject(error);
|
}
|
}
|
}
|
|
export default EvidenceAPIService;
|