/*
Парус 8 - Панели мониторинга - ПУДП - Пользовательская инструкция
Панель мониторинга: Пользовательская инструкция
*/
//---------------------
//Подключение библиотек
//---------------------
import React, { useContext, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { Box, Grid, Typography, Link, List, ListItem, ListItemButton, ListItemText, Divider, Fab, Icon } from "@mui/material"; //Интерфейсные элементы
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения
import img11 from "./img/11.png"; //Изображение
import img12 from "./img/12.png"; //Изображение
import img13 from "./img/13.png"; //Изображение
import img14 from "./img/14.png"; //Изображение
import img15 from "./img/15.png"; //Изображение
import img21 from "./img/21.png"; //Изображение
import img22 from "./img/22.png"; //Изображение
import img23 from "./img/23.png"; //Изображение
import img24 from "./img/24.png"; //Изображение
import img25 from "./img/25.png"; //Изображение
import img211 from "./img/211.png"; //Изображение
import img212 from "./img/212.png"; //Изображение
import img213 from "./img/213.png"; //Изображение
//---------
//Константы
//---------
//Оглавление
const CONTENT = [
{ id: "prg1", caption: "1. О структуре производства" },
{ id: "prg2", caption: "2. НСИ о продукции" }
];
//Стили
const STYLES = {
IMG_CONT: { textAlign: "center", padding: "10px" },
IMG: { maxWidth: "100%", height: "auto" },
PRGF_TABLE: { paddingTop: "20px", paddingBottom: "20px", display: "flex", justifyContent: "center" },
TABLE: { width: "80%" },
TABLE_TITLE: { backgroundColor: "lightgray" },
TABLE_SUBTITLE: { textAlign: "center", backgroundColor: "#f3eded", fontWeight: "bold" },
FAB_BACK: { position: "absolute", right: "20px", marginTop: "20px" }
};
//--------------------------------
//Вспомогательные функции и классы
//--------------------------------
//Переход к элементу страницы
const scrollToElement = id => document.getElementById(id).scrollIntoView();
//Заголовок первого уровня
const Hdr1 = ({ id, children }) => (
{children}
);
//Контроль свойств - Заголовок первого уровня
Hdr1.propTypes = {
id: PropTypes.string,
children: PropTypes.any
};
//Заголовок второго уровня
const Hdr2 = ({ id, children }) => (
{children}
);
//Контроль свойств - Заголовок второго уровня
Hdr2.propTypes = {
id: PropTypes.string,
children: PropTypes.any
};
//Заголовок третьего уровня
const Hdr3 = ({ id, children }) => (
{children}
);
//Контроль свойств - Заголовок третьего уровня
Hdr3.propTypes = {
id: PropTypes.string,
children: PropTypes.any
};
//Параграф
const Prgf = ({ style, children }) => (
{children}
);
//Контроль свойств - Параграф
Prgf.propTypes = {
style: PropTypes.object,
children: PropTypes.any
};
//Изображение
const Img = ({ src }) => (
);
//Контроль свойств - Изображение
Img.propTypes = {
src: PropTypes.string.isRequired
};
//Ссылка на раздел Системы
const UnitLink = ({ unitCode, children }) => {
//Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx);
//Генерация содержимого
return (
pOnlineShowUnit({ unitCode })}>
{children}
);
};
//Контроль свойств - Ссылка на раздел Системы
UnitLink.propTypes = {
unitCode: PropTypes.string.isRequired,
children: PropTypes.any
};
//Ссылка на главу инструкции
const ChapterLink = ({ id, dstId, onClick, children }) => {
//Генерация содержимого
return (
{
scrollToElement(dstId);
if (onClick && id) onClick(id);
}}
>
{children}
);
};
//Контроль свойств - Ссылка на главу инструкции
ChapterLink.propTypes = {
id: PropTypes.string,
dstId: PropTypes.string.isRequired,
onClick: PropTypes.func,
children: PropTypes.any
};
//Ссылка на информационную панель
const PanelLink = ({ panelName, children }) => {
//Подключение к контексту приложения
const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationСtx);
//Генерация содержимого
return (
{
const panel = findPanelByName(panelName);
if (panel) pOnlineShowTab({ id: panel.name, url: `${configUrlBase}${panel.url}`, caption: panel.caption });
}}
>
{children}
);
};
//Контроль свойств - Ссылка на информационную панель
PanelLink.propTypes = {
panelName: PropTypes.string.isRequired,
children: PropTypes.any
};
//-----------
//Тело модуля
//-----------
//Корневая панель пользовательской инструкции
const MechRecHelp = () => {
//Собственное состояние
const [navStack, setNavStack] = useState([]);
//Переход по оглавлению
const handleTitleClick = id => {
scrollToElement(id);
setNavStack([]);
};
//Обработка нажатия на кнопку "Назад"
const handleBackClick = () => {
if (navStack.length > 0) {
const tmp = [...navStack];
const backId = tmp.pop();
scrollToElement(backId);
setNavStack(tmp);
}
};
//Генерация содержимого
return (
{navStack.length > 0 ? (
arrow_back_ios
{BUTTONS.NAVIGATE_BACK}
) : null}
Оперативное управление производством
{CONTENT.map((c, i) => (
handleTitleClick(c.id)}>
))}
Оперативное управление производством1. О структуре производства
В макете настроена штатная структура предприятия и определены склады подразделений. Для просмотра штатной структуры
перейдите в раздел «Подразделения».
Производство состоит из 4 цехов, для цехов № 2 и № 4 определены участки. Участки цеха № 2 используются в описании макета
при формировании сменных заданий.
Для централизованного и внутрицехового учета материалов, покупных комплектующих (далее – ПКИ), деталей и сборочных единиц
(далее – ДСЕ) в макете определены склады. Для просмотра перечня складов перейдите в раздел «Склады».
Централизованный склад ЦМС используется для учета прихода материалов и ПКИ от поставщиков и выдачи в цеха. Склады цехов
используются для учета в цехе получения материалов и ПКИ с ЦМС, поступления готовых ДСЕ от других цехов и от участков
цеха, списание материалов, ПКИ и ДСЕ на затраты производства. На централизованный склад СГП выполняется сдача готовой
продукции.
Для выдачи заданий на станки в макете для участков цеха № 2 определено оборудование. Просмотреть оборудование можно в
разделе «Подразделения» в окне «Оборудование».
2. НСИ о продукции
Нормативно-справочная информация (далее – НСИ) о продукции доступна для просмотра через пункт головного меню «Учет».
Для просмотра НСИ перейдите в разделы, указанные в строках контекстного меню. При переходе в разделы открывается окно
«Отбор», нажимайте в окне кнопку «ОК».
Нормативная информация о производимой продукции в макете размещена в следующих разделах:
1) «Спецификации изделий»
Для изделий «Лебедка» и входящих в изделия сборочных единиц введены данные конструкторских составов.
2) «Ведомости материалов и оснастки»
Для деталей введены нормы расхода основного материала.
3) «Маршрутные карты»
Для изделий и ДСЕ введены данные маршрутных карт технологических процессов.
4) «Маршруты» в макете не используются, маршрут ДСЕ определяется маршрутной картой.
Справочник материальных ресурсов, производимых и потребляемых в процессе производства продукции, находится в разделе
«Инженерные данные».
2.1. Производственные составы изделий
На основании нормативной информации для изделий «Лебедка» сформированы Производственные составы (далее – ПС). ПС
материальных ресурсов отображаются в разделе «Инженерные данные» в окне «Производственный состав».
Пользователь может сформировать новые ПС и переформировать существующие, используя действия контекстного меню.
ПС используется в процессе планирования производства продукции, как основной нормативный документ об изделии. ПС – это
иерархическая маршрутно-материальная ведомость изделия.
Для просмотра состава ПС выполните на строке заголовка ПС действие «Показать».
Для автоматического определения при планировании производства «какой ПС использовать» созданные в макете ПС изделий
«Лебедка» переведены в «Состояние» = «Производство» и определены как «используемые по умолчанию».
);
};
//----------------
//Интерфейс модуля
//----------------
export { MechRecHelp };