完善列表和编辑页面的数据验证和交互,实现服务端和客户端两重数据验证

This commit is contained in:
2025-04-24 18:33:09 +08:00
parent be99fdec79
commit 65b7d0739a
13 changed files with 444 additions and 229 deletions
+16 -10
View File
@@ -60,7 +60,8 @@ export interface DocumentTypeGroup {
// 搜索参数
export interface DocumentTypeSearchParams {
name?: string;
group_id?: string;
ruleType?: string;
groupId?: string;
page?: number;
pageSize?: number;
}
@@ -239,13 +240,18 @@ export async function getDocumentTypes(searchParams: DocumentTypeSearchParams =
}
// 如果有分组ID筛选条件
if (searchParams.group_id) {
filter['evaluation_point_groups_ids'] = `cs.{${searchParams.group_id}}`;
if (searchParams.ruleType) {
filter['evaluation_point_groups_ids'] = `cs.[${searchParams.ruleType}]`;
}
if (searchParams.groupId) {
// 如果groupId存在,则将groupId作为子级评查点分组ID
filter['evaluation_point_groups_ids'] = `cs.[${searchParams.groupId}]`;
}
params.filter = filter;
// console.log('获取文档类型列表,参数:', params);
console.log('获取文档类型列表,参数:', params);
const response = await postgrestGet<DocumentType[]>('document_types', params);
if (response.error) {
@@ -529,8 +535,8 @@ export async function createDocumentType(documentType: DocumentTypeCreateDTO): P
if (!groupId || isNaN(parseInt(groupId, 10))) {
return { error: '无效的评查点分组ID', status: 400 };
}
const groupIds = parseInt(groupId, 10); // 修改为数组形式
// const groupIds = [parseInt(groupId, 10)]; // 修改为数组形式
// const groupIds = parseInt(groupId, 10); // 修改为数组形式
const groupIds = [parseInt(groupId, 10)]; // 修改为数组形式
// 构建提示词配置 - 确保所有字段都有明确的设置
const promptConfig: Record<string, number | null> = {
@@ -580,13 +586,13 @@ export async function createDocumentType(documentType: DocumentTypeCreateDTO): P
description: documentType.description || '',
evaluation_point_groups_ids: groupIds,
prompt_config: promptConfig,
code: documentType.code || null
// code: documentType.code || null
};
// console.log('创建文档类型请求数据:', JSON.stringify(apiDocumentType, null, 2));
// console.log('创建文档类型请求数据:', apiDocumentType);
// if(apiDocumentType){
// throw new Error('测试错误');
// throw new Error('测试错误');
// }
// 发送创建请求
@@ -660,7 +666,7 @@ export async function updateDocumentType(id: string, documentType: DocumentTypeU
const promptConfig: Record<string, number | null> = {
llm_extract_template: null,
vlm_extract_template: null,
evaluation_template: null,
// evaluation_template: null,
execution_template: null,
summary_template: null
};
@@ -707,7 +713,7 @@ export async function updateDocumentType(id: string, documentType: DocumentTypeU
};
console.log('更新文档类型请求数据:', JSON.stringify(apiDocumentType, null, 2));
// throw new Error('测试错误');
// 发送更新请求
const response = await postgrestPut<DocumentType, typeof apiDocumentType>(
'document_types',
+4 -4
View File
@@ -121,17 +121,17 @@ export async function getReviewPoints(fileId: string) {
return { error: evaluationResultsResponse.error, status: evaluationResultsResponse.status };
}
const evaluationResultsData = extractApiData<EvaluationResult[]>(evaluationResultsResponse.data);
const evaluationResultsData = extractApiData<EvaluationResult[]>(evaluationResultsResponse.data) || [];
if (!evaluationResultsData || !Array.isArray(evaluationResultsData)) {
return { data: [], stats: { total: 0, success: 0, warning: 0, error: 0, score: 0 } };
if (Array.isArray(evaluationResultsData) && evaluationResultsData.length <= 0) {
return { data: [], stats: { total: 0, success: 0, warning: 0, error: 0, score: 0 },error: '获取评查结果数据失败' };
}
// 收集所有评查点ID,用于查询评查点详情
const evaluationPointIds = evaluationResultsData.map(item => item.evaluation_point_id).filter(Boolean);
if (evaluationPointIds.length === 0) {
return { data: [], stats: { total: 0, success: 0, warning: 0, error: 0, score: 0 } };
return { data: [], stats: { total: 0, success: 0, warning: 0, error: 0, score: 0 },error: '获取评查点ID失败' };
}
// 步骤2:根据evaluation_point_id查询evaluation_points表