92 lines
3.7 KiB
JavaScript
92 lines
3.7 KiB
JavaScript
/*
|
||
Парус 8 - Панели мониторинга - РО - Редактор настройки регламентированного отчёта
|
||
Дополнительная разметка и вёрстка клиентских элементов
|
||
*/
|
||
|
||
//---------------------
|
||
//Подключение библиотек
|
||
//---------------------
|
||
|
||
import React from "react"; //Классы React
|
||
import { MarksToolbar } from "./components/marks_toolbar"; //Панель инструментов показателей
|
||
import { MarkCard } from "./components/mark_card"; //Карточка показателя
|
||
import { STYLES as COMMON_STYLES } from "./common"; //Общие стили и константы
|
||
|
||
//---------
|
||
//Константы
|
||
//---------
|
||
|
||
//Стили
|
||
export const STYLES = {
|
||
HEAD_CELL: {
|
||
textAlign: "center",
|
||
fontWeight: "bold",
|
||
lineHeight: "unset",
|
||
...COMMON_STYLES.FONT_DATA_GRID,
|
||
...COMMON_STYLES.BG_DATA_GRID_HEAD_CELL,
|
||
...COMMON_STYLES.BORDER_DATA_GRID_HEAD_CELL
|
||
},
|
||
HEAD_CELL_STACK: { justifyContent: "center" },
|
||
DATA_CELL: isMarkRowHead => ({
|
||
padding: "5px 5px",
|
||
textAlign: "center",
|
||
...COMMON_STYLES.FONT_DATA_GRID,
|
||
...(isMarkRowHead
|
||
? { ...COMMON_STYLES.BG_DATA_GRID_DATA_CELL, ...COMMON_STYLES.BORDER_DATA_GRID_HEAD_CELL, fontWeight: "bold" }
|
||
: COMMON_STYLES.BORDER_DATA_GRID_DATA_CELL)
|
||
})
|
||
};
|
||
|
||
//-----------
|
||
//Тело модуля
|
||
//-----------
|
||
|
||
//Генерация представления ячейки c данными показателя раздела регламентированного отчета
|
||
export const confSctnMrkCellRender = ({ row, columnDef, onMarkAdd, onMarkUpdate, onMarkDelete, onMarkOpen, onMarkCnOpen, onMarkCnAdd }) => {
|
||
//Считываем информацию о показателе
|
||
const mark = {
|
||
rn: row[columnDef.name]?.NRN,
|
||
code: row[columnDef.name]?.SCODE,
|
||
name: row[columnDef.name]?.SNAME,
|
||
row: row[columnDef.name]?.NRRPROW,
|
||
rowCode: row[columnDef.name]?.SRRPROW,
|
||
rowVersion: row[columnDef.name]?.SRRPVERSION_ROW,
|
||
column: row[columnDef.name]?.NRRPCOLUMN,
|
||
columnCode: row[columnDef.name]?.SRRPCOLUMN,
|
||
columnVersion: row[columnDef.name]?.SRRPVERSION_COLUMN,
|
||
constitution: row[columnDef.name]?.CONSTITUTION
|
||
};
|
||
//Вернём представление ячейки
|
||
return {
|
||
cellStyle: STYLES.DATA_CELL(columnDef.name === "SROW_NAME"),
|
||
data: columnDef.name != "SROW_NAME" && (
|
||
<MarkCard
|
||
mark={mark.rn}
|
||
code={mark.code}
|
||
name={mark.name}
|
||
constitution={mark.constitution}
|
||
onMarkAdd={() => onMarkAdd && onMarkAdd(mark.row, mark.column)}
|
||
onMarkUpdate={() => onMarkUpdate && onMarkUpdate({ ...mark })}
|
||
onMarkDelete={() => onMarkDelete && onMarkDelete(mark.rn)}
|
||
onMarkOpen={() => onMarkOpen && onMarkOpen(mark.rn)}
|
||
onMarkCnOpen={constitutionRn => onMarkCnOpen && onMarkCnOpen(mark.rn, constitutionRn)}
|
||
onMarkCnAdd={() => onMarkCnAdd && onMarkCnAdd(mark.rn)}
|
||
/>
|
||
)
|
||
};
|
||
};
|
||
|
||
//Генерация представления ячейки заголовка таблицы показателей
|
||
export const confSctnMrkHeadCellRender = ({ columnDef, onAdd, onRefresh, onOrder, onHelp }) => {
|
||
return {
|
||
cellStyle: STYLES.HEAD_CELL,
|
||
stackStyle: STYLES.HEAD_CELL_STACK,
|
||
data:
|
||
columnDef.name === "SROW_NAME" ? (
|
||
<MarksToolbar onAdd={onAdd} onRefresh={onRefresh} onOrder={onOrder} onHelp={onHelp} />
|
||
) : (
|
||
columnDef.caption
|
||
)
|
||
};
|
||
};
|