diff --git a/app/api/evaluation_points/rules.ts b/app/api/evaluation_points/rules.ts index 312b97d..19c21e0 100644 --- a/app/api/evaluation_points/rules.ts +++ b/app/api/evaluation_points/rules.ts @@ -2009,10 +2009,28 @@ export async function createEvaluationPoint( return { error: response.error, status: response.status }; } - if (response.data && Array.isArray(response.data) && response.data.length > 0) { - return { data: response.data[0] }; - } else if (response.data && !Array.isArray(response.data)) { - return { data: response.data }; + // 调试日志:查看实际返回的数据格式 + console.log('createEvaluationPoint 响应数据:', { + data: response.data, + isArray: Array.isArray(response.data), + type: typeof response.data, + length: Array.isArray(response.data) ? response.data.length : 'N/A' + }); + + if (response.data) { + // 如果是数组且有数据,返回第一个元素 + if (Array.isArray(response.data) && response.data.length > 0) { + return { data: response.data[0] }; + } + // 如果是数组但为空,PostgREST 可能没有配置正确的 Prefer 头部 + else if (Array.isArray(response.data) && response.data.length === 0) { + console.error('PostgREST 返回空数组,无法获取新创建的评查点数据'); + return { error: '创建成功但无法获取创建的数据,请刷新页面', status: 500 }; + } + // 如果不是数组,直接返回 + else if (!Array.isArray(response.data)) { + return { data: response.data }; + } } return { error: '创建评查点失败:返回数据格式不正确', status: 500 }; @@ -2050,10 +2068,33 @@ export async function updateEvaluationPoint( return { error: response.error, status: response.status }; } - if (response.data && Array.isArray(response.data) && response.data.length > 0) { - return { data: response.data[0] }; - } else if (response.data && !Array.isArray(response.data)) { - return { data: response.data }; + // 调试日志:查看实际返回的数据格式 + console.log('updateEvaluationPoint 响应数据:', { + data: response.data, + isArray: Array.isArray(response.data), + type: typeof response.data, + length: Array.isArray(response.data) ? response.data.length : 'N/A' + }); + + if (response.data) { + // 如果是数组且有数据,返回第一个元素 + if (Array.isArray(response.data) && response.data.length > 0) { + return { data: response.data[0] }; + } + // 如果是数组但为空,说明可能是 PostgREST 配置问题,但更新应该成功了 + else if (Array.isArray(response.data) && response.data.length === 0) { + console.warn('PostgREST 返回空数组,可能需要检查 Prefer 头部设置'); + // 尝试重新获取数据 + const refetchResponse = await getEvaluationPoint(id, token); + if (refetchResponse.data) { + return { data: refetchResponse.data }; + } + return { error: '更新成功但无法获取更新后的数据', status: 500 }; + } + // 如果不是数组,直接返回 + else if (!Array.isArray(response.data)) { + return { data: response.data }; + } } return { error: '更新评查点失败:返回数据格式不正确', status: 500 };