August 31, 2023
calculateAndHandleTotalByConditions
calculateAndHandleTotalByConditions
Описание
Функция сalculateAndHandleTotalByConditions
осуществляет автоматические расчеты и обновляет значения полей в форме на основе предоставленной конфигурации. Она упрощает процесс работы с формами и декларациями, позволяя легко переиспользовать логику расчетов
Сигнатура
const calculateAndHandleTotalByConditions = ({ formik, tableName, config }) => {...};
Параметры
formik
(Объект): Объект Formik, содержащий текущие значения и состояние формы.tableName
(Строка): Название таблицы, для которой нужно выполнить вычисления.config
(Массив): Массив объектов конфигурации для расчетов. Каждый объект в конфигурации содержит следующие поля:
Возвращаемое значение
Функция не возвращает значения. Она выполняет расчеты на основе конфигурации и обновляет значения в форме, если они изменились.
Пример использования
// Конфигурация для расчетов в таблице const config = [ { totalName: 'F', // Название поля для расчета conditionCallback: (item) => item?.G === '1', // Условие для включения поля в расчет eventName: 'application01[0].totalAnnualIncome._001.value', // Название события после расчета }, // Другие объекты конфигурации... ];
import { calculateAndHandleTotalByConditions } from '@/pages/MGU/Monitoring/FNO/functions/formik/calculateAndHandleTotalByConditions'; const formik = /* Получите объект Formik */; const APPLICATION_8_FORM_NAME_OF_TABLE = 'application08.rows'; // наименование таблицы useEffect(() => { // Проверяем, можно ли выполнять эффекты в текущем режиме if (!canRunEffects({ mode })) return; // Вызываем функцию для расчетов с передачей формика, конфигурации и имени таблицы calculateAndHandleTotalByConditions({ formik, // Объект Formik config, // Конфигурация для расчетов tableName: APPLICATION_8_FORM_NAME_OF_TABLE, // Имя таблицы }); }, [getNestedProperty(formik.values, APPLICATION_8_FORM_NAME_OF_TABLE, true)]);
Функция calculateAndHandleTotalByConditions
позволяет легко настраивать и выполнять расчеты для разных полей и таблиц в вашей форме. Вы можете определить разные условия и события для обновления значений в зависимости от ваших потребностей.
По вопросам общаться к https://t.me/usar0vv