From 34cba4a34f1dd8584236b43af59a34aef3719cd4 Mon Sep 17 00:00:00 2001 From: yorn <1057707203@qq.com> Date: Mon, 3 Nov 2025 09:47:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AF=84=E6=9F=A5?= =?UTF-8?q?=E7=82=B9=E5=88=86=E7=BB=84=E7=9A=84=E7=BB=93=E6=9E=9C=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/evaluation_points/rule-groups.ts | 43 +++++++++++++++++++----- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/app/api/evaluation_points/rule-groups.ts b/app/api/evaluation_points/rule-groups.ts index ab448d9..2cef5bf 100644 --- a/app/api/evaluation_points/rule-groups.ts +++ b/app/api/evaluation_points/rule-groups.ts @@ -516,30 +516,57 @@ export async function createRuleGroup(groupData: RuleGroupCreateUpdateDto, token */ export async function updateRuleGroup(id: string, data: RuleGroupCreateUpdateDto, token?: string): Promise<{data: RuleGroup; error?: never} | {data?: never; error: string; status?: number}> { try { + // 验证必填字段 + if (!data.name || !data.code) { + return { error: '分组名称和编码不能为空', status: 400 }; + } + + // 根据 reviewType 确定 m_type 的值 + // contract -> 0, 其他 -> 1 + const mType = data.reviewType === 'contract' ? 0 : 1; + + // 构建符合数据库结构的对象 + const apiGroup: Partial = { + name: data.name.trim(), + code: data.code.trim(), + description: data.description || '', + is_enabled: data.is_enabled, + m_type: mType // 使用 m_type 而不是 reviewType + }; + + // 如果需要更新父分组,添加 pid + if (data.pid !== undefined) { + const pidValue = data.pid ? Number(data.pid) : 0; + if (isNaN(pidValue)) { + return { error: '父分组ID必须是有效的数字', status: 400 }; + } + apiGroup.pid = pidValue; + } + // 使用新的filters参数 - const response = await postgrestPut | RuleGroup, RuleGroupCreateUpdateDto>( + const response = await postgrestPut | RuleGroup, Partial>( 'evaluation_point_groups', - data, + apiGroup, // 使用转换后的对象 { id }, token ); - + if (response.error) { return { error: response.error, status: response.status }; } - + // 使用辅助函数提取数据 const extractedData = extractApiData(response.data); - + if (!extractedData) { return { error: '更新成功但未返回数据' }; } - + return { data: extractedData }; } catch (error) { console.error('更新评查点分组失败:', error); - return { - error: error instanceof Error ? error.message : '更新评查点分组失败' + return { + error: error instanceof Error ? error.message : '更新评查点分组失败' }; } }