WEB APP: Панель "Samples" - в пример "P8PDataGrid" добавлена поддержка сложных заголовков и группировок

This commit is contained in:
Mikhail Chechnev 2024-02-05 16:08:04 +03:00
parent 3eef77ed44
commit feb2e69466
2 changed files with 12 additions and 2 deletions

View File

@ -74,6 +74,9 @@ const headCellRender = ({ columnDef }) => {
} }
}; };
//Генерация представления ячейки заголовка группы
export const groupCellRender = () => ({ cellStyle: { padding: "2px" } });
//----------- //-----------
//Тело модуля //Тело модуля
//----------- //-----------
@ -86,6 +89,7 @@ const DataGrid = ({ title }) => {
columnsDef: [], columnsDef: [],
filters: null, filters: null,
orders: null, orders: null,
groups: [],
rows: [], rows: [],
reload: true, reload: true,
pageNumber: 1, pageNumber: 1,
@ -113,6 +117,10 @@ const DataGrid = ({ title }) => {
...pv, ...pv,
columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef, columnsDef: data.XCOLUMNS_DEF ? [...data.XCOLUMNS_DEF] : pv.columnsDef,
rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])], rows: pv.pageNumber == 1 ? [...(data.XROWS || [])] : [...pv.rows, ...(data.XROWS || [])],
groups:
pv.pageNumber == 1
? [...(data.XGROUPS || [])]
: [...pv.groups, ...(data.XGROUPS.filter(g => !pv.groups.find(pg => pg.name == g.name)) || [])],
dataLoaded: true, dataLoaded: true,
reload: false, reload: false,
morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE morePages: (data.XROWS || []).length >= DATA_GRID_PAGE_SIZE
@ -147,6 +155,7 @@ const DataGrid = ({ title }) => {
<P8PDataGrid <P8PDataGrid
{...P8P_DATA_GRID_CONFIG_PROPS} {...P8P_DATA_GRID_CONFIG_PROPS}
columnsDef={dataGrid.columnsDef} columnsDef={dataGrid.columnsDef}
groups={dataGrid.groups}
rows={dataGrid.rows} rows={dataGrid.rows}
size={P8P_DATA_GRID_SIZE.LARGE} size={P8P_DATA_GRID_SIZE.LARGE}
filtersInitial={dataGrid.filters} filtersInitial={dataGrid.filters}
@ -155,6 +164,7 @@ const DataGrid = ({ title }) => {
valueFormatter={valueFormatter} valueFormatter={valueFormatter}
headCellRender={headCellRender} headCellRender={headCellRender}
dataCellRender={dataCellRender} dataCellRender={dataCellRender}
groupCellRender={groupCellRender}
onOrderChanged={handleOrderChanged} onOrderChanged={handleOrderChanged}
onFilterChanged={handleFilterChanged} onFilterChanged={handleFilterChanged}
onPagesCountChanged={handlePagesCountChanged} onPagesCountChanged={handlePagesCountChanged}

4
dist/p8-panels.js vendored

File diff suppressed because one or more lines are too long