diff --git a/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue b/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue index 44499dd42..073a4f6bf 100644 --- a/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue +++ b/apps/web-antd/src/views/aiot/device/roi/components/AlgorithmParamEditor.vue @@ -94,22 +94,34 @@ function isWorkingHoursField(key: string): boolean { async function handleSave() { try { + console.log('[算法参数保存] 开始保存,原始数据:', formData.value); + // 保存前验证参数 const validation = validateParams(formData.value); + console.log('[算法参数保存] 验证结果:', validation); + if (!validation.valid) { message.error(validation.error || '参数格式错误'); return; } - await updateAlgoParams({ + const paramsJson = JSON.stringify(formData.value); + console.log('[算法参数保存] JSON序列化后:', paramsJson); + + const payload = { bindId: props.bindId, - params: JSON.stringify(formData.value), - }); + params: paramsJson, + }; + console.log('[算法参数保存] 发送请求:', payload); + + await updateAlgoParams(payload); message.success('参数保存成功'); emit('saved', formData.value); emit('update:open', false); } catch (error: any) { - console.error('保存失败:', error); + console.error('[算法参数保存] 保存失败,完整错误:', error); + console.error('[算法参数保存] 错误响应:', error?.response); + // 改进错误提示:显示后端返回的具体错误信息 const errorMsg = error?.response?.data?.msg || error?.response?.data?.message || @@ -151,18 +163,30 @@ function validateParams(params: Record): { // 特殊校验 working_hours 格式 if (key === 'working_hours' && value.length > 0) { + console.log('[working_hours 验证] 当前值:', value); + console.log('[working_hours 验证] 值类型:', typeof value); + console.log('[working_hours 验证] 是否数组:', Array.isArray(value)); + const isValid = value.every( - (item: any) => - typeof item === 'object' && - typeof item.start === 'string' && - typeof item.end === 'string', + (item: any, index: number) => { + const valid = typeof item === 'object' && + typeof item.start === 'string' && + typeof item.end === 'string'; + if (!valid) { + console.error(`[working_hours 验证] 第 ${index} 项格式错误:`, item); + } + return valid; + } ); + if (!isValid) { return { valid: false, - error: '工作时间段格式错误,每项需包含 start 和 end', + error: '工作时间段格式错误,每项需包含 start 和 end 字符串', }; } + + console.log('[working_hours 验证] 格式正确 ✓'); } } }