@nokecy/qc-ui 0.2.8 → 0.2.9

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 = {
@@ -269,7 +276,10 @@ function AgGridPlus(props) {
269
276
  return _react.default.Children.map(children, function (child, index) {
270
277
  return child.props;
271
278
  });
272
- }, [children]);
279
+ }, []);
280
+ var rowDataMemo = (0, _react.useMemo)(function () {
281
+ return props.treeData ? (0, _utils.flatten)((0, _utils.toTree)(rowData), treeParentName) : rowData;
282
+ }, [rowData, props.treeData]);
273
283
  return /*#__PURE__*/_react.default.createElement(_antd.Spin, {
274
284
  spinning: loading,
275
285
  wrapperClassName: "grid-spin"
@@ -319,37 +329,23 @@ function AgGridPlus(props) {
319
329
  }), /*#__PURE__*/_react.default.createElement(_setting.default, {
320
330
  gridApi: apiRef.current,
321
331
  columnApi: columnsRef.current,
322
- onSaveColumnState: onSaveColumnState
332
+ onSaveColumnState: onColumnStateChanged
323
333
  })]
324
334
  }), /*#__PURE__*/_react.default.createElement(_agGridReact.AgGridReact, _extends({
325
335
  className: "ag-theme-alpine"
326
336
  }, rest, {
327
- onFirstDataRendered: function onFirstDataRendered() {} //指定客户端模式
328
- ,
337
+ //指定客户端模式
329
338
  rowModelType: "clientSide",
330
- rowData: props.treeData ? (0, _utils.flatten)((0, _utils.toTree)(rowData), treeParentName) : rowData,
339
+ maintainColumnOrder: true,
340
+ rowData: rowDataMemo,
331
341
  onGridReady: onGridReady,
332
342
  defaultColDef: defaultColDef,
333
343
  onSortChanged: function onSortChanged(event) {
334
344
  sortChanged(event.columnApi);
335
345
  props.onSortChanged && props.onSortChanged(event);
336
346
  },
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
- },
347
+ onSelectionChanged: onRowChanged,
348
+ onRowSelected: onRowSelected,
353
349
  columnTypes: columnTypes,
354
350
  animateRows: true //停用默认分页组件
355
351
  ,
@@ -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;
@@ -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 = {
@@ -243,7 +249,10 @@ function AgGridPlus(props) {
243
249
  return React.Children.map(children, function (child, index) {
244
250
  return child.props;
245
251
  });
246
- }, [children]);
252
+ }, []);
253
+ var rowDataMemo = useMemo(function () {
254
+ return props.treeData ? flatten(toTree(rowData), treeParentName) : rowData;
255
+ }, [rowData, props.treeData]);
247
256
  return /*#__PURE__*/React.createElement(Spin, {
248
257
  spinning: loading,
249
258
  wrapperClassName: "grid-spin"
@@ -293,37 +302,23 @@ function AgGridPlus(props) {
293
302
  }), /*#__PURE__*/React.createElement(Setting, {
294
303
  gridApi: apiRef.current,
295
304
  columnApi: columnsRef.current,
296
- onSaveColumnState: onSaveColumnState
305
+ onSaveColumnState: onColumnStateChanged
297
306
  })]
298
307
  }), /*#__PURE__*/React.createElement(AgGridReact, _extends({
299
308
  className: "ag-theme-alpine"
300
309
  }, rest, {
301
- onFirstDataRendered: function onFirstDataRendered() {} //指定客户端模式
302
- ,
310
+ //指定客户端模式
303
311
  rowModelType: "clientSide",
304
- rowData: props.treeData ? flatten(toTree(rowData), treeParentName) : rowData,
312
+ maintainColumnOrder: true,
313
+ rowData: rowDataMemo,
305
314
  onGridReady: onGridReady,
306
315
  defaultColDef: defaultColDef,
307
316
  onSortChanged: function onSortChanged(event) {
308
317
  sortChanged(event.columnApi);
309
318
  props.onSortChanged && props.onSortChanged(event);
310
319
  },
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
- },
320
+ onSelectionChanged: onRowChanged,
321
+ onRowSelected: onRowSelected,
327
322
  columnTypes: columnTypes,
328
323
  animateRows: true //停用默认分页组件
329
324
  ,
@@ -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";