diff --git a/web/src/components/table/channels/modals/ParamOverrideEditorModal.jsx b/web/src/components/table/channels/modals/ParamOverrideEditorModal.jsx index 56cf5bf16..8aa46a3f6 100644 --- a/web/src/components/table/channels/modals/ParamOverrideEditorModal.jsx +++ b/web/src/components/table/channels/modals/ParamOverrideEditorModal.jsx @@ -1485,6 +1485,24 @@ const ParamOverrideEditorModal = ({ visible, value, onSave, onCancel }) => { ); }; + const formatSelectedOperationValueAsJson = useCallback(() => { + if (!selectedOperation) return; + const raw = String(selectedOperation.value_text || '').trim(); + if (!raw) return; + if (!verifyJSON(raw)) { + showError(t('当前值不是合法 JSON,无法格式化')); + return; + } + try { + updateOperation(selectedOperation.id, { + value_text: JSON.stringify(JSON.parse(raw), null, 2), + }); + showSuccess(t('JSON 已格式化')); + } catch (error) { + showError(t('当前值不是合法 JSON,无法格式化')); + } + }, [selectedOperation, t, updateOperation]); + const updateReturnErrorDraft = (operationId, draftPatch = {}) => { const current = operations.find((item) => item.id === operationId); if (!current) return; @@ -2608,9 +2626,20 @@ const ParamOverrideEditorModal = ({ visible, value, onSave, onCancel }) => { ) : (