@nokecy/qc-ui 0.2.8 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,6 +31,8 @@ var _utils = require("./utils");
31
31
 
32
32
  var _setting = _interopRequireDefault(require("./setting"));
33
33
 
34
+ var _ = require(".");
35
+
34
36
  var _excluded = ["style", "loading", "params", "request", "dataSource", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "gridColumnState", "children"];
35
37
 
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -86,6 +88,7 @@ function AgGridPlus(props) {
86
88
  children = props.children,
87
89
  rest = _objectWithoutProperties(props, _excluded);
88
90
 
91
+ var gridPlusColumnState = (0, _.useGridPlusColumnState)();
89
92
  var gridRef = (0, _react.useRef)();
90
93
  var apiRef = (0, _react.useRef)();
91
94
  var columnsRef = (0, _react.useRef)();
@@ -110,29 +113,24 @@ function AgGridPlus(props) {
110
113
  rowData = _useState8[0],
111
114
  setRowData = _useState8[1];
112
115
 
113
- var _useState9 = (0, _react.useState)([]),
116
+ var _useState9 = (0, _react.useState)({}),
114
117
  _useState10 = _slicedToArray(_useState9, 2),
115
- selectRows = _useState10[0],
116
- setSelectRows = _useState10[1];
118
+ queryFilter = _useState10[0],
119
+ setQueryFilter = _useState10[1];
117
120
 
118
- var _useState11 = (0, _react.useState)({}),
121
+ var _useState11 = (0, _react.useState)(),
119
122
  _useState12 = _slicedToArray(_useState11, 2),
120
- queryFilter = _useState12[0],
121
- setQueryFilter = _useState12[1];
122
-
123
- var _useState13 = (0, _react.useState)(),
124
- _useState14 = _slicedToArray(_useState13, 2),
125
- sortColumn = _useState14[0],
126
- setSortColumn = _useState14[1];
123
+ sortColumn = _useState12[0],
124
+ setSortColumn = _useState12[1];
127
125
 
128
- var _useState15 = (0, _react.useState)({
126
+ var _useState13 = (0, _react.useState)({
129
127
  pageSize: 200,
130
128
  current: 1,
131
129
  total: dataSource ? dataSource.length : 0
132
130
  }),
133
- _useState16 = _slicedToArray(_useState15, 2),
134
- pagination = _useState16[0],
135
- setPagination = _useState16[1];
131
+ _useState14 = _slicedToArray(_useState13, 2),
132
+ pagination = _useState14[0],
133
+ setPagination = _useState14[1];
136
134
 
137
135
  (0, _react.useImperativeHandle)(propsGridRef, function () {
138
136
  return gridRef.current;
@@ -192,13 +190,13 @@ function AgGridPlus(props) {
192
190
  }, [ready, JSON.stringify(gridParams), JSON.stringify(sortColumn), pagination.pageSize, pagination.current]); // 加载列方案
193
191
 
194
192
  (0, _react.useEffect)(function () {
195
- if (gridColumnState && columnsRef.current) {
193
+ if (gridPlusColumnState && gridKey && gridPlusColumnState[gridKey] && columnsRef.current) {
196
194
  columnsRef.current.applyColumnState({
197
- state: gridColumnState,
195
+ state: gridPlusColumnState[gridKey],
198
196
  applyOrder: true
199
197
  });
200
198
  }
201
- }, [gridColumnState, columnsRef.current]);
199
+ }, [gridPlusColumnState, columnsRef.current]);
202
200
  (0, _react.useEffect)(function () {
203
201
  setRowData(dataSource || propRowData || []);
204
202
  }, [dataSource, propRowData]); //外部loading
@@ -245,7 +243,9 @@ function AgGridPlus(props) {
245
243
  });
246
244
  };
247
245
 
248
- var actionDom = toolBarRender && toolBarRender(apiRef.current, (0, _utils.convertFilterModel)(queryFilter), queryFilter);
246
+ var actionDom = (0, _react.useMemo)(function () {
247
+ return toolBarRender && toolBarRender(apiRef.current, (0, _utils.convertFilterModel)(queryFilter), queryFilter);
248
+ }, []);
249
249
 
250
250
  var sortChanged = function sortChanged(columnApi) {
251
251
  var sortedColumn = columnApi.getColumnState().find(function (col) {
@@ -258,7 +258,14 @@ function AgGridPlus(props) {
258
258
  request && onRequest(queryFilter);
259
259
  };
260
260
 
261
- var onSaveColumnState = function onSaveColumnState(columnState) {};
261
+ var onRowChanged = (0, _react.useCallback)(function (e) {
262
+ props.onSelectionChanged && props.onSelectionChanged(e);
263
+ }, []);
264
+ var onRowSelected = (0, _react.useCallback)(function (e) {
265
+ props.onRowSelected && props.onRowSelected(e);
266
+ }, []);
267
+
268
+ var onColumnStateChanged = function onColumnStateChanged(columnState) {};
262
269
 
263
270
  (0, _react.useEffect)(function () {
264
271
  gridRef.current = {
@@ -268,8 +275,13 @@ function AgGridPlus(props) {
268
275
  var colDefs = (0, _react.useMemo)(function () {
269
276
  return _react.default.Children.map(children, function (child, index) {
270
277
  return child.props;
278
+ }).filter(function (x) {
279
+ return !x.hideInTable;
271
280
  });
272
- }, [children]);
281
+ }, []);
282
+ var rowDataMemo = (0, _react.useMemo)(function () {
283
+ return props.treeData ? (0, _utils.flatten)((0, _utils.toTree)(rowData), treeParentName) : rowData;
284
+ }, [rowData, props.treeData]);
273
285
  return /*#__PURE__*/_react.default.createElement(_antd.Spin, {
274
286
  spinning: loading,
275
287
  wrapperClassName: "grid-spin"
@@ -319,37 +331,23 @@ function AgGridPlus(props) {
319
331
  }), /*#__PURE__*/_react.default.createElement(_setting.default, {
320
332
  gridApi: apiRef.current,
321
333
  columnApi: columnsRef.current,
322
- onSaveColumnState: onSaveColumnState
334
+ onSaveColumnState: onColumnStateChanged
323
335
  })]
324
336
  }), /*#__PURE__*/_react.default.createElement(_agGridReact.AgGridReact, _extends({
325
337
  className: "ag-theme-alpine"
326
338
  }, rest, {
327
- onFirstDataRendered: function onFirstDataRendered() {} //指定客户端模式
328
- ,
339
+ //指定客户端模式
329
340
  rowModelType: "clientSide",
330
- rowData: props.treeData ? (0, _utils.flatten)((0, _utils.toTree)(rowData), treeParentName) : rowData,
341
+ maintainColumnOrder: true,
342
+ rowData: rowDataMemo,
331
343
  onGridReady: onGridReady,
332
344
  defaultColDef: defaultColDef,
333
345
  onSortChanged: function onSortChanged(event) {
334
346
  sortChanged(event.columnApi);
335
347
  props.onSortChanged && props.onSortChanged(event);
336
348
  },
337
- onSelectionChanged: function onSelectionChanged(e) {
338
- props.onSelectionChanged && props.onSelectionChanged(e);
339
- setSelectRows(e.api.getSelectedRows());
340
- },
341
- onDragStopped: function onDragStopped(e) {
342
- if (columnsRef.current) {// setColumnState(columnsRef.current?.getColumnState());
343
- }
344
- },
345
- onColumnResized: function onColumnResized(e) {
346
- if (columnsRef.current) {// setColumnState(columnsRef.current?.getColumnState());
347
- }
348
- },
349
- onColumnMoved: function onColumnMoved() {
350
- if (columnsRef.current) {// setColumnState(columnsRef.current?.getColumnState());
351
- }
352
- },
349
+ onSelectionChanged: onRowChanged,
350
+ onRowSelected: onRowSelected,
353
351
  columnTypes: columnTypes,
354
352
  animateRows: true //停用默认分页组件
355
353
  ,
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const GridPlusContext: React.Context<any>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GridPlusContext = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var GridPlusContext = /*#__PURE__*/_react.default.createContext(null);
13
+
14
+ exports.GridPlusContext = GridPlusContext;
@@ -1,4 +1,5 @@
1
1
  import AgGridPlus from "./ag-gridPlus";
2
2
  import { AgGridColumn } from "./interface";
3
+ export declare const useGridPlusColumnState: () => any;
3
4
  export { AgGridPlus, AgGridColumn };
4
5
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
@@ -57,11 +57,22 @@ Object.defineProperty(exports, "toTree", {
57
57
  return _utils.toTree;
58
58
  }
59
59
  });
60
+ exports.useGridPlusColumnState = void 0;
61
+
62
+ var _react = _interopRequireDefault(require("react"));
60
63
 
61
64
  var _agGridPlus = _interopRequireDefault(require("./ag-gridPlus"));
62
65
 
63
66
  var _interface = require("./interface");
64
67
 
68
+ var _gridContext = require("./context/gridContext");
69
+
65
70
  var _utils = require("./utils");
66
71
 
67
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
72
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
73
+
74
+ var useGridPlusColumnState = function useGridPlusColumnState() {
75
+ return _react.default.useContext(_gridContext.GridPlusContext);
76
+ };
77
+
78
+ exports.useGridPlusColumnState = useGridPlusColumnState;
@@ -30,7 +30,7 @@ interface AgGridColumnPropsClone extends ColDef {
30
30
  hideInTable?: boolean;
31
31
  hideInSearch?: boolean;
32
32
  queryField?: string;
33
- searchComponent?: ReactNode | JSX.Element;
33
+ searchComponent?: ReactNode | JSX.Element | ((props: any) => JSX.Element);
34
34
  searchComponentProps?: any;
35
35
  searchSort?: number;
36
36
  }
@@ -36,6 +36,7 @@ import SettingItem from "./settingItem";
36
36
  import { RedoOutlined } from '@ant-design/icons';
37
37
  import { convertFilterModel, dateTimeValueFormatter, dateValueFormatter, flatten, toTree } from "./utils";
38
38
  import Setting from "./setting";
39
+ import { useGridPlusColumnState } from '.';
39
40
 
40
41
  var getSort = function getSort(columnState) {
41
42
  return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
@@ -60,6 +61,7 @@ function AgGridPlus(props) {
60
61
  children = props.children,
61
62
  rest = _objectWithoutProperties(props, _excluded);
62
63
 
64
+ var gridPlusColumnState = useGridPlusColumnState();
63
65
  var gridRef = useRef();
64
66
  var apiRef = useRef();
65
67
  var columnsRef = useRef();
@@ -84,29 +86,24 @@ function AgGridPlus(props) {
84
86
  rowData = _useState8[0],
85
87
  setRowData = _useState8[1];
86
88
 
87
- var _useState9 = useState([]),
89
+ var _useState9 = useState({}),
88
90
  _useState10 = _slicedToArray(_useState9, 2),
89
- selectRows = _useState10[0],
90
- setSelectRows = _useState10[1];
91
+ queryFilter = _useState10[0],
92
+ setQueryFilter = _useState10[1];
91
93
 
92
- var _useState11 = useState({}),
94
+ var _useState11 = useState(),
93
95
  _useState12 = _slicedToArray(_useState11, 2),
94
- queryFilter = _useState12[0],
95
- setQueryFilter = _useState12[1];
96
+ sortColumn = _useState12[0],
97
+ setSortColumn = _useState12[1];
96
98
 
97
- var _useState13 = useState(),
98
- _useState14 = _slicedToArray(_useState13, 2),
99
- sortColumn = _useState14[0],
100
- setSortColumn = _useState14[1];
101
-
102
- var _useState15 = useState({
99
+ var _useState13 = useState({
103
100
  pageSize: 200,
104
101
  current: 1,
105
102
  total: dataSource ? dataSource.length : 0
106
103
  }),
107
- _useState16 = _slicedToArray(_useState15, 2),
108
- pagination = _useState16[0],
109
- setPagination = _useState16[1];
104
+ _useState14 = _slicedToArray(_useState13, 2),
105
+ pagination = _useState14[0],
106
+ setPagination = _useState14[1];
110
107
 
111
108
  useImperativeHandle(propsGridRef, function () {
112
109
  return gridRef.current;
@@ -166,13 +163,13 @@ function AgGridPlus(props) {
166
163
  }, [ready, JSON.stringify(gridParams), JSON.stringify(sortColumn), pagination.pageSize, pagination.current]); // 加载列方案
167
164
 
168
165
  useEffect(function () {
169
- if (gridColumnState && columnsRef.current) {
166
+ if (gridPlusColumnState && gridKey && gridPlusColumnState[gridKey] && columnsRef.current) {
170
167
  columnsRef.current.applyColumnState({
171
- state: gridColumnState,
168
+ state: gridPlusColumnState[gridKey],
172
169
  applyOrder: true
173
170
  });
174
171
  }
175
- }, [gridColumnState, columnsRef.current]);
172
+ }, [gridPlusColumnState, columnsRef.current]);
176
173
  useEffect(function () {
177
174
  setRowData(dataSource || propRowData || []);
178
175
  }, [dataSource, propRowData]); //外部loading
@@ -219,7 +216,9 @@ function AgGridPlus(props) {
219
216
  });
220
217
  };
221
218
 
222
- var actionDom = toolBarRender && toolBarRender(apiRef.current, convertFilterModel(queryFilter), queryFilter);
219
+ var actionDom = useMemo(function () {
220
+ return toolBarRender && toolBarRender(apiRef.current, convertFilterModel(queryFilter), queryFilter);
221
+ }, []);
223
222
 
224
223
  var sortChanged = function sortChanged(columnApi) {
225
224
  var sortedColumn = columnApi.getColumnState().find(function (col) {
@@ -232,7 +231,14 @@ function AgGridPlus(props) {
232
231
  request && onRequest(queryFilter);
233
232
  };
234
233
 
235
- var onSaveColumnState = function onSaveColumnState(columnState) {};
234
+ var onRowChanged = useCallback(function (e) {
235
+ props.onSelectionChanged && props.onSelectionChanged(e);
236
+ }, []);
237
+ var onRowSelected = useCallback(function (e) {
238
+ props.onRowSelected && props.onRowSelected(e);
239
+ }, []);
240
+
241
+ var onColumnStateChanged = function onColumnStateChanged(columnState) {};
236
242
 
237
243
  useEffect(function () {
238
244
  gridRef.current = {
@@ -242,8 +248,13 @@ function AgGridPlus(props) {
242
248
  var colDefs = useMemo(function () {
243
249
  return React.Children.map(children, function (child, index) {
244
250
  return child.props;
251
+ }).filter(function (x) {
252
+ return !x.hideInTable;
245
253
  });
246
- }, [children]);
254
+ }, []);
255
+ var rowDataMemo = useMemo(function () {
256
+ return props.treeData ? flatten(toTree(rowData), treeParentName) : rowData;
257
+ }, [rowData, props.treeData]);
247
258
  return /*#__PURE__*/React.createElement(Spin, {
248
259
  spinning: loading,
249
260
  wrapperClassName: "grid-spin"
@@ -293,37 +304,23 @@ function AgGridPlus(props) {
293
304
  }), /*#__PURE__*/React.createElement(Setting, {
294
305
  gridApi: apiRef.current,
295
306
  columnApi: columnsRef.current,
296
- onSaveColumnState: onSaveColumnState
307
+ onSaveColumnState: onColumnStateChanged
297
308
  })]
298
309
  }), /*#__PURE__*/React.createElement(AgGridReact, _extends({
299
310
  className: "ag-theme-alpine"
300
311
  }, rest, {
301
- onFirstDataRendered: function onFirstDataRendered() {} //指定客户端模式
302
- ,
312
+ //指定客户端模式
303
313
  rowModelType: "clientSide",
304
- rowData: props.treeData ? flatten(toTree(rowData), treeParentName) : rowData,
314
+ maintainColumnOrder: true,
315
+ rowData: rowDataMemo,
305
316
  onGridReady: onGridReady,
306
317
  defaultColDef: defaultColDef,
307
318
  onSortChanged: function onSortChanged(event) {
308
319
  sortChanged(event.columnApi);
309
320
  props.onSortChanged && props.onSortChanged(event);
310
321
  },
311
- onSelectionChanged: function onSelectionChanged(e) {
312
- props.onSelectionChanged && props.onSelectionChanged(e);
313
- setSelectRows(e.api.getSelectedRows());
314
- },
315
- onDragStopped: function onDragStopped(e) {
316
- if (columnsRef.current) {// setColumnState(columnsRef.current?.getColumnState());
317
- }
318
- },
319
- onColumnResized: function onColumnResized(e) {
320
- if (columnsRef.current) {// setColumnState(columnsRef.current?.getColumnState());
321
- }
322
- },
323
- onColumnMoved: function onColumnMoved() {
324
- if (columnsRef.current) {// setColumnState(columnsRef.current?.getColumnState());
325
- }
326
- },
322
+ onSelectionChanged: onRowChanged,
323
+ onRowSelected: onRowSelected,
327
324
  columnTypes: columnTypes,
328
325
  animateRows: true //停用默认分页组件
329
326
  ,
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const GridPlusContext: React.Context<any>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export var GridPlusContext = /*#__PURE__*/React.createContext(null);
@@ -1,4 +1,5 @@
1
1
  import AgGridPlus from "./ag-gridPlus";
2
2
  import { AgGridColumn } from "./interface";
3
+ export declare const useGridPlusColumnState: () => any;
3
4
  export { AgGridPlus, AgGridColumn };
4
5
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
@@ -1,4 +1,9 @@
1
+ import React from "react";
1
2
  import AgGridPlus from "./ag-gridPlus";
2
3
  import { AgGridColumn } from "./interface";
4
+ import { GridPlusContext } from "./context/gridContext";
5
+ export var useGridPlusColumnState = function useGridPlusColumnState() {
6
+ return React.useContext(GridPlusContext);
7
+ };
3
8
  export { AgGridPlus, AgGridColumn };
4
9
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
@@ -30,7 +30,7 @@ interface AgGridColumnPropsClone extends ColDef {
30
30
  hideInTable?: boolean;
31
31
  hideInSearch?: boolean;
32
32
  queryField?: string;
33
- searchComponent?: ReactNode | JSX.Element;
33
+ searchComponent?: ReactNode | JSX.Element | ((props: any) => JSX.Element);
34
34
  searchComponentProps?: any;
35
35
  searchSort?: number;
36
36
  }