diff --git a/app/panels/mech_rec_help/img/11.png b/app/panels/mech_rec_help/img/11.png new file mode 100644 index 0000000..4efb611 Binary files /dev/null and b/app/panels/mech_rec_help/img/11.png differ diff --git a/app/panels/mech_rec_help/img/12.png b/app/panels/mech_rec_help/img/12.png new file mode 100644 index 0000000..90c381b Binary files /dev/null and b/app/panels/mech_rec_help/img/12.png differ diff --git a/app/panels/mech_rec_help/img/13.png b/app/panels/mech_rec_help/img/13.png new file mode 100644 index 0000000..6211396 Binary files /dev/null and b/app/panels/mech_rec_help/img/13.png differ diff --git a/app/panels/mech_rec_help/img/14.png b/app/panels/mech_rec_help/img/14.png new file mode 100644 index 0000000..96d1bf8 Binary files /dev/null and b/app/panels/mech_rec_help/img/14.png differ diff --git a/app/panels/mech_rec_help/img/15.png b/app/panels/mech_rec_help/img/15.png new file mode 100644 index 0000000..e211cad Binary files /dev/null and b/app/panels/mech_rec_help/img/15.png differ diff --git a/app/panels/mech_rec_help/img/21.png b/app/panels/mech_rec_help/img/21.png new file mode 100644 index 0000000..43efac5 Binary files /dev/null and b/app/panels/mech_rec_help/img/21.png differ diff --git a/app/panels/mech_rec_help/img/211.png b/app/panels/mech_rec_help/img/211.png new file mode 100644 index 0000000..ebfd51c Binary files /dev/null and b/app/panels/mech_rec_help/img/211.png differ diff --git a/app/panels/mech_rec_help/img/212.png b/app/panels/mech_rec_help/img/212.png new file mode 100644 index 0000000..62032dc Binary files /dev/null and b/app/panels/mech_rec_help/img/212.png differ diff --git a/app/panels/mech_rec_help/img/213.png b/app/panels/mech_rec_help/img/213.png new file mode 100644 index 0000000..ca63c42 Binary files /dev/null and b/app/panels/mech_rec_help/img/213.png differ diff --git a/app/panels/mech_rec_help/img/22.png b/app/panels/mech_rec_help/img/22.png new file mode 100644 index 0000000..bb628b1 Binary files /dev/null and b/app/panels/mech_rec_help/img/22.png differ diff --git a/app/panels/mech_rec_help/img/23.png b/app/panels/mech_rec_help/img/23.png new file mode 100644 index 0000000..0bc07da Binary files /dev/null and b/app/panels/mech_rec_help/img/23.png differ diff --git a/app/panels/mech_rec_help/img/24.png b/app/panels/mech_rec_help/img/24.png new file mode 100644 index 0000000..ade0241 Binary files /dev/null and b/app/panels/mech_rec_help/img/24.png differ diff --git a/app/panels/mech_rec_help/img/25.png b/app/panels/mech_rec_help/img/25.png new file mode 100644 index 0000000..d433e0b Binary files /dev/null and b/app/panels/mech_rec_help/img/25.png differ diff --git a/app/panels/mech_rec_help/index.js b/app/panels/mech_rec_help/index.js new file mode 100644 index 0000000..39363dd --- /dev/null +++ b/app/panels/mech_rec_help/index.js @@ -0,0 +1,16 @@ +/* + Парус 8 - Панели мониторинга - ПУДП - Пользовательская инструкция + Панель мониторинга: Пользовательская инструкция +*/ + +//--------------------- +//Подключение библиотек +//--------------------- + +import { MechRecHelp } from "./mech_rec_help"; //Корневая панель пользовательской инструкции + +//---------------- +//Интерфейс модуля +//---------------- + +export const RootClass = MechRecHelp; diff --git a/app/panels/mech_rec_help/mech_rec_help.js b/app/panels/mech_rec_help/mech_rec_help.js new file mode 100644 index 0000000..fd79324 --- /dev/null +++ b/app/panels/mech_rec_help/mech_rec_help.js @@ -0,0 +1,339 @@ +/* + Парус 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 }; diff --git a/img/prj_help.jpg b/img/help.jpg similarity index 100% rename from img/prj_help.jpg rename to img/help.jpg diff --git a/p8panels.config b/p8panels.config index c15f461..41e196d 100644 --- a/p8panels.config +++ b/p8panels.config @@ -25,6 +25,7 @@ + @@ -67,7 +68,7 @@ path="prj_help" icon="help_outline" showInPanelsList="true" - preview="./img/prj_help.jpg"/> + preview="./img/help.jpg"/> +