/
DevDenzo
/
ERP
Обзор
Документация
Войти
/
DevDenzo
/
ERP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/tools/Trees/TreeProduction/TreeProductionSmart.jsx
80 строк
3 KB
Denis Sklyarskij
Инициализирован репозиторий
14 янв 2026, 23:32
14 янв 2026, 23:32
1df3d47
Код
Авторство
О чём код?
// Подключаем библиотеку React для взаимодействия с виртуальным DOM import React, { useContext // подключаем хук передачи состояния } from "react"; // Подключаем данные производства import { productions } from "../../../components/data/datasets/tables/production.js"; // Подключаем контекст состояния управления формами import { FormStateContext } from "../../../contexts/FormStateContext.js"; // Подключаем презентационный компонент дерева import TreeProductionPresenter from "./TreeProductionPresenter.jsx"; // Подключаем форму ввода данных об изготовленном изделии import FormEntryDataProduct from "./FormEntryDataProduct.jsx"; // Умный компонент дерева производства const TreeProductionSmart = () => { // Функция группировки данных об изделиях в зависимости от типа станка const groupProductionByType = (productions) => { const types = {}; productions.forEach(production => { if (!types[production.typeEquipment]) { types[production.typeEquipment] = { id: production.id, slug: production.slug, name: production.typeEquipment, children: [] }; } types[production.typeEquipment].children.push({ id: production.id, priority: production.priorityOrder, nameInOrder: production.positionInOrder, product: production.productName, quantity: production.quantity, standard: production.standard, status: production.status, date: production.startDate, fullName: production.performerName, description: production.descriptionEquipment, head: production.headDrilling, body: production.bodyDrilling, hProcess: production.headProcessing, fastType: production.fastenerType, fastExec: production.fastenerExecution, inHex: production.internalHexagon, grind: production.grinding, roll: production.rolling, hexHead: production.hexHead, roundHead: production.roundHead, headHeight: production.headHeight, bodyThick: production.bodyThickness, area: production.blankArea }); }); return Object.values(types); }; // Создаем дерево из массива данных о выпущенных изделиях const productionsTree = groupProductionByType(productions); // Получаем состояние управления активной формой const { isFormActive } = useContext(FormStateContext); // отображаем презентационный компонент дерева return ( <> <TreeProductionPresenter nodes={productionsTree} /> {isFormActive && ( <FormEntryDataProduct product={productions} /> )} </> ); }; export default TreeProductionSmart;