From 3df01a36c61230f30de2b03946dccbb9a4d05805 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Tue, 14 Oct 2025 14:13:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A6=D0=98=D0=A2=D0=9A-979=20-=20=D0=A0=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=BE=D1=80=20=D0=B7=D0=B0=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D0=BE=D0=B2=20-=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=B1=D1=80=D0=BE=D1=81=D0=B0=20=D1=81=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=B8=D0=B0?= =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B0=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B0=D1=80?= =?UTF-8?q?=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=81=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=BD=D0=B8=D0=BA=D0=BD=D0=BE=D0=B2=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B8=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=BD=D0=BE=D0=B9?= =?UTF-8?q?=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspector_query_args/arg_iu_dialog.js | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js b/app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js index 85fdf20..d004e00 100644 --- a/app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js +++ b/app/panels/query_editor/components/inspector_query_args/arg_iu_dialog.js @@ -19,24 +19,21 @@ import { DATA_TYPE } from "../../common"; //Общие константы ред //Диалог добавления/исправления аргумента запроса const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandatory = 0, value = "", insert = true, onOk, onCancel }) => { - //Собственное состояние - текущее состояние аргумента - const [current, setCurrent] = useState({ value, dataType }); + //Собственное состояние - текущие значения полей аргумента запроса + const [current, setCurrent] = useState({ name, title, dataType, mandatory, value }); //Нажатие на кнопку "Ok" - const handleOk = values => onOk && onOk({ ...values }); + const handleOk = () => onOk && onOk(current); //Нажатие на кнопку "Отмена" const handleCancel = () => onCancel && onCancel(); //При изменении значений в поле ввода const handleInputChange = (name, value) => { - //Если поменяли тип данных - надо пересмотреть поля для ввода - if (name === "dataType") { - //Сохраним в состоянии новый тип данных и сбросим "отладочное значение", ведь оно зависит от типа данных (от этого состояния зависит свойство inputs, передаваемое в P8PDialog ниже) - setCurrent({ dataType: value, value: "" }); - //Мы сами пересчитали форму, туда придут новые настройки элементов ввода через свойство inputs, не надо делать пересчет состояния внутри диалога - return true; - } + //Сохраним в состоянии новое значение, если сменили тип данных - сбросим "отладочное значение" + setCurrent(pv => ({ ...pv, [name]: value, ...(name === "dataType" ? { value: "" } : {}) })); + //Мы сами пересчитали форму, туда придут новые настройки элементов ввода через свойство inputs, не надо делать пересчет состояния внутри диалога + return true; }; //Генерация содержимого @@ -44,8 +41,8 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato