forked from CITKParus/P8-Panels
ЦИТК-979 - Редактор запросов - исправлена ошибка сброса состояния диалога редактирования аргумента запроса при возникновении серверной ошибки
This commit is contained in:
parent
1530bfa3bf
commit
3df01a36c6
@ -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 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"
|
//Нажатие на кнопку "Ok"
|
||||||
const handleOk = values => onOk && onOk({ ...values });
|
const handleOk = () => onOk && onOk(current);
|
||||||
|
|
||||||
//Нажатие на кнопку "Отмена"
|
//Нажатие на кнопку "Отмена"
|
||||||
const handleCancel = () => onCancel && onCancel();
|
const handleCancel = () => onCancel && onCancel();
|
||||||
|
|
||||||
//При изменении значений в поле ввода
|
//При изменении значений в поле ввода
|
||||||
const handleInputChange = (name, value) => {
|
const handleInputChange = (name, value) => {
|
||||||
//Если поменяли тип данных - надо пересмотреть поля для ввода
|
//Сохраним в состоянии новое значение, если сменили тип данных - сбросим "отладочное значение"
|
||||||
if (name === "dataType") {
|
setCurrent(pv => ({ ...pv, [name]: value, ...(name === "dataType" ? { value: "" } : {}) }));
|
||||||
//Сохраним в состоянии новый тип данных и сбросим "отладочное значение", ведь оно зависит от типа данных (от этого состояния зависит свойство inputs, передаваемое в P8PDialog ниже)
|
//Мы сами пересчитали форму, туда придут новые настройки элементов ввода через свойство inputs, не надо делать пересчет состояния внутри диалога
|
||||||
setCurrent({ dataType: value, value: "" });
|
return true;
|
||||||
//Мы сами пересчитали форму, туда придут новые настройки элементов ввода через свойство inputs, не надо делать пересчет состояния внутри диалога
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//Генерация содержимого
|
//Генерация содержимого
|
||||||
@ -44,8 +41,8 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato
|
|||||||
<P8PDialog
|
<P8PDialog
|
||||||
title={`${insert === true ? TITLES.INSERT : TITLES.UPDATE} аргумента`}
|
title={`${insert === true ? TITLES.INSERT : TITLES.UPDATE} аргумента`}
|
||||||
inputs={[
|
inputs={[
|
||||||
{ name: "name", value: name, label: "Имя", disabled: insert != true },
|
{ name: "name", value: current.name, label: "Имя", disabled: insert != true },
|
||||||
{ name: "title", value: title, label: "Приглашение" },
|
{ name: "title", value: current.title, label: "Приглашение" },
|
||||||
{
|
{
|
||||||
name: "dataType",
|
name: "dataType",
|
||||||
value: current.dataType,
|
value: current.dataType,
|
||||||
@ -58,7 +55,7 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "mandatory",
|
name: "mandatory",
|
||||||
value: mandatory,
|
value: current.mandatory,
|
||||||
label: "Обязательный",
|
label: "Обязательный",
|
||||||
list: [
|
list: [
|
||||||
{ name: "Нет", value: 0 },
|
{ name: "Нет", value: 0 },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user