@nokecy/qc-ui 1.0.50 → 1.0.52

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.
@@ -24,7 +24,7 @@ var _customGroupCellRenderer = _interopRequireDefault(require("./_utils/customGr
24
24
  var _processColumnGroups = _interopRequireDefault(require("./_utils/processColumnGroups"));
25
25
  var _processFormColumnState = _interopRequireDefault(require("./_utils/processFormColumnState"));
26
26
  var _antdV = require("@formily/antd-v5");
27
- var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows"];
27
+ var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange"];
28
28
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
29
29
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -67,6 +67,7 @@ function AgGridPlus(props) {
67
67
  defaultSearchExpand = props.defaultSearchExpand,
68
68
  overlayNoRowsTemplateText = props.overlayNoRowsTemplateText,
69
69
  queryDefaultRows = props.queryDefaultRows,
70
+ onSelectedRowsChange = props.onSelectedRowsChange,
70
71
  rest = _objectWithoutProperties(props, _excluded);
71
72
  var _useGridPlusColumnSta = (0, _.useGridPlusColumnState)(),
72
73
  onSaveColumnState = _useGridPlusColumnSta.onSaveColumnState,
@@ -272,8 +273,46 @@ function AgGridPlus(props) {
272
273
  }, []);
273
274
  var onRowSelected = (0, _react.useCallback)(function (e) {
274
275
  setSelectRow(e.data);
276
+
277
+ // 处理选中行数据回调
278
+ if (onSelectedRowsChange && apiRef.current) {
279
+ // 获取所有选中的行
280
+ var allSelectedRows = apiRef.current.getSelectedRows();
281
+
282
+ // 获取当前显示的行(经过筛选后的行)
283
+ var displayedRows = [];
284
+ apiRef.current.forEachNodeAfterFilterAndSort(function (node) {
285
+ displayedRows.push(node.data);
286
+ });
287
+
288
+ // 获取行ID的方法,优先使用外部传入的getRowId,否则默认使用id字段
289
+ var getRowIdMethod = props.getRowId || function (params) {
290
+ var _params$data, _params$data2;
291
+ return ((_params$data = params.data) === null || _params$data === void 0 ? void 0 : _params$data.id) || ((_params$data2 = params.data) === null || _params$data2 === void 0 ? void 0 : _params$data2._id);
292
+ };
293
+
294
+ // 只保留既被选中又在当前显示的行
295
+ var visibleSelectedRows = allSelectedRows.filter(function (selectedRow) {
296
+ return displayedRows.some(function (displayedRow) {
297
+ var selectedRowId = getRowIdMethod({
298
+ data: selectedRow,
299
+ level: 0,
300
+ api: apiRef.current,
301
+ context: null
302
+ });
303
+ var displayedRowId = getRowIdMethod({
304
+ data: displayedRow,
305
+ level: 0,
306
+ api: apiRef.current,
307
+ context: null
308
+ });
309
+ return selectedRowId && displayedRowId && selectedRowId === displayedRowId;
310
+ });
311
+ });
312
+ onSelectedRowsChange(visibleSelectedRows);
313
+ }
275
314
  props.onRowSelected && props.onRowSelected(e);
276
- }, []);
315
+ }, [onSelectedRowsChange, props.getRowId]);
277
316
  var onColumnStateChanged = function onColumnStateChanged(columnState) {
278
317
  if (gridKey) {
279
318
  onSaveColumnState && onSaveColumnState(gridKey, columnState);
@@ -285,7 +324,7 @@ function AgGridPlus(props) {
285
324
  };
286
325
  var sumFun = function sumFun(field, displayedData) {
287
326
  return (0, _sumBy2.default)(displayedData, function (cur) {
288
- if (isValidNumber(cur[field])) {
327
+ if (cur && isValidNumber(cur[field])) {
289
328
  return cur[field];
290
329
  }
291
330
  return 0;
@@ -293,13 +332,13 @@ function AgGridPlus(props) {
293
332
  };
294
333
  var avgFun = function avgFun(field, displayedData) {
295
334
  var sum = (0, _sumBy2.default)(displayedData, function (cur) {
296
- if (isValidNumber(cur[field]) && cur[field] !== undefined && cur[field] !== null) {
335
+ if (cur && isValidNumber(cur[field]) && cur[field] !== undefined && cur[field] !== null) {
297
336
  return cur[field];
298
337
  }
299
338
  return 0;
300
339
  });
301
340
  var count = displayedData.filter(function (cur) {
302
- return cur[field] !== undefined && cur[field] !== null;
341
+ return cur && cur[field] !== undefined && cur[field] !== null;
303
342
  });
304
343
  return count ? sum / count.length : 0;
305
344
  };
@@ -311,7 +350,7 @@ function AgGridPlus(props) {
311
350
  if (count === 0) return 0;
312
351
  var mean = sumFun(field, displayedData) / count;
313
352
  var variance = (0, _sumBy2.default)(displayedData, function (cur) {
314
- if (cur[field] !== undefined && cur[field] !== null) {
353
+ if (cur && cur[field] !== undefined && cur[field] !== null) {
315
354
  var diff = cur[field] - mean;
316
355
  return diff * diff;
317
356
  }
@@ -630,6 +669,10 @@ function AgGridPlus(props) {
630
669
  rowData: rowDataMemo,
631
670
  onGridReady: onGridReady,
632
671
  defaultColDef: defaultColDef,
672
+ getRowId: props.getRowId || function (params) {
673
+ var _params$data3, _params$data4;
674
+ return ((_params$data3 = params.data) === null || _params$data3 === void 0 ? void 0 : _params$data3.id) || ((_params$data4 = params.data) === null || _params$data4 === void 0 ? void 0 : _params$data4._id);
675
+ },
633
676
  onSortChanged: function onSortChanged(event) {
634
677
  sortChanged(event.api);
635
678
  props.onSortChanged && props.onSortChanged(event);
@@ -45,6 +45,10 @@ interface GridProps extends AgGridReactProps {
45
45
  pageSizeOptions?: number[];
46
46
  hidePagination?: boolean;
47
47
  gridRef?: React.Ref<GridRef | undefined>;
48
+ /**
49
+ * 选中行变化回调函数
50
+ */
51
+ onSelectedRowsChange?: (selectedRows: any[]) => void;
48
52
  }
49
53
  interface AgGridColumnPropsClone extends ColDef {
50
54
  /**
@@ -104,7 +104,25 @@ var ArrayTable = (0, _react2.observer)(function (props) {
104
104
  onSaveColumnState && onSaveColumnState(props.gridKey, columnState);
105
105
  }
106
106
  };
107
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Space, {
107
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
108
+ ref: ref,
109
+ style: {
110
+ height: height ? height : 400
111
+ }
112
+ }, /*#__PURE__*/_react.default.createElement(_arrayBase.default, {
113
+ onAdd: onAdd,
114
+ onCopy: onCopy,
115
+ onRemove: onRemove,
116
+ onMoveUp: onMoveUp,
117
+ onMoveDown: onMoveDown
118
+ }, /*#__PURE__*/_react.default.createElement("div", {
119
+ style: {
120
+ width: '100%',
121
+ display: 'flex',
122
+ justifyContent: 'space-between',
123
+ alignItems: 'center'
124
+ }
125
+ }, /*#__PURE__*/_react.default.createElement(_antd.Space, {
108
126
  style: {
109
127
  marginBottom: 5
110
128
  }
@@ -125,24 +143,7 @@ var ArrayTable = (0, _react2.observer)(function (props) {
125
143
  name: key,
126
144
  onlyRenderProperties: true
127
145
  });
128
- })), /*#__PURE__*/_react.default.createElement("div", {
129
- ref: ref,
130
- style: {
131
- height: height ? height : 400
132
- }
133
- }, /*#__PURE__*/_react.default.createElement(_arrayBase.default, {
134
- onAdd: onAdd,
135
- onCopy: onCopy,
136
- onRemove: onRemove,
137
- onMoveUp: onMoveUp,
138
- onMoveDown: onMoveDown
139
- }, /*#__PURE__*/_react.default.createElement("div", {
140
- style: {
141
- width: '100%',
142
- display: 'flex',
143
- justifyContent: 'flex-end'
144
- }
145
- }, /*#__PURE__*/_react.default.createElement(_setting.default, {
146
+ })), /*#__PURE__*/_react.default.createElement(_setting.default, {
146
147
  gridKey: props.gridKey,
147
148
  gridApi: apiRef.current,
148
149
  gridApiState: gridApiState,
@@ -2,7 +2,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
2
2
  import _sumBy from "lodash/sumBy";
3
3
  import _uniqueId from "lodash/uniqueId";
4
4
  import _isArray from "lodash/isArray";
5
- var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows"];
5
+ var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange"];
6
6
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
7
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
8
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -58,6 +58,7 @@ function AgGridPlus(props) {
58
58
  defaultSearchExpand = props.defaultSearchExpand,
59
59
  overlayNoRowsTemplateText = props.overlayNoRowsTemplateText,
60
60
  queryDefaultRows = props.queryDefaultRows,
61
+ onSelectedRowsChange = props.onSelectedRowsChange,
61
62
  rest = _objectWithoutProperties(props, _excluded);
62
63
  var _useGridPlusColumnSta = useGridPlusColumnState(),
63
64
  onSaveColumnState = _useGridPlusColumnSta.onSaveColumnState,
@@ -263,8 +264,46 @@ function AgGridPlus(props) {
263
264
  }, []);
264
265
  var onRowSelected = useCallback(function (e) {
265
266
  setSelectRow(e.data);
267
+
268
+ // 处理选中行数据回调
269
+ if (onSelectedRowsChange && apiRef.current) {
270
+ // 获取所有选中的行
271
+ var allSelectedRows = apiRef.current.getSelectedRows();
272
+
273
+ // 获取当前显示的行(经过筛选后的行)
274
+ var displayedRows = [];
275
+ apiRef.current.forEachNodeAfterFilterAndSort(function (node) {
276
+ displayedRows.push(node.data);
277
+ });
278
+
279
+ // 获取行ID的方法,优先使用外部传入的getRowId,否则默认使用id字段
280
+ var getRowIdMethod = props.getRowId || function (params) {
281
+ var _params$data, _params$data2;
282
+ return ((_params$data = params.data) === null || _params$data === void 0 ? void 0 : _params$data.id) || ((_params$data2 = params.data) === null || _params$data2 === void 0 ? void 0 : _params$data2._id);
283
+ };
284
+
285
+ // 只保留既被选中又在当前显示的行
286
+ var visibleSelectedRows = allSelectedRows.filter(function (selectedRow) {
287
+ return displayedRows.some(function (displayedRow) {
288
+ var selectedRowId = getRowIdMethod({
289
+ data: selectedRow,
290
+ level: 0,
291
+ api: apiRef.current,
292
+ context: null
293
+ });
294
+ var displayedRowId = getRowIdMethod({
295
+ data: displayedRow,
296
+ level: 0,
297
+ api: apiRef.current,
298
+ context: null
299
+ });
300
+ return selectedRowId && displayedRowId && selectedRowId === displayedRowId;
301
+ });
302
+ });
303
+ onSelectedRowsChange(visibleSelectedRows);
304
+ }
266
305
  props.onRowSelected && props.onRowSelected(e);
267
- }, []);
306
+ }, [onSelectedRowsChange, props.getRowId]);
268
307
  var onColumnStateChanged = function onColumnStateChanged(columnState) {
269
308
  if (gridKey) {
270
309
  onSaveColumnState && onSaveColumnState(gridKey, columnState);
@@ -276,7 +315,7 @@ function AgGridPlus(props) {
276
315
  };
277
316
  var sumFun = function sumFun(field, displayedData) {
278
317
  return _sumBy(displayedData, function (cur) {
279
- if (isValidNumber(cur[field])) {
318
+ if (cur && isValidNumber(cur[field])) {
280
319
  return cur[field];
281
320
  }
282
321
  return 0;
@@ -284,13 +323,13 @@ function AgGridPlus(props) {
284
323
  };
285
324
  var avgFun = function avgFun(field, displayedData) {
286
325
  var sum = _sumBy(displayedData, function (cur) {
287
- if (isValidNumber(cur[field]) && cur[field] !== undefined && cur[field] !== null) {
326
+ if (cur && isValidNumber(cur[field]) && cur[field] !== undefined && cur[field] !== null) {
288
327
  return cur[field];
289
328
  }
290
329
  return 0;
291
330
  });
292
331
  var count = displayedData.filter(function (cur) {
293
- return cur[field] !== undefined && cur[field] !== null;
332
+ return cur && cur[field] !== undefined && cur[field] !== null;
294
333
  });
295
334
  return count ? sum / count.length : 0;
296
335
  };
@@ -302,7 +341,7 @@ function AgGridPlus(props) {
302
341
  if (count === 0) return 0;
303
342
  var mean = sumFun(field, displayedData) / count;
304
343
  var variance = _sumBy(displayedData, function (cur) {
305
- if (cur[field] !== undefined && cur[field] !== null) {
344
+ if (cur && cur[field] !== undefined && cur[field] !== null) {
306
345
  var diff = cur[field] - mean;
307
346
  return diff * diff;
308
347
  }
@@ -621,6 +660,10 @@ function AgGridPlus(props) {
621
660
  rowData: rowDataMemo,
622
661
  onGridReady: onGridReady,
623
662
  defaultColDef: defaultColDef,
663
+ getRowId: props.getRowId || function (params) {
664
+ var _params$data3, _params$data4;
665
+ return ((_params$data3 = params.data) === null || _params$data3 === void 0 ? void 0 : _params$data3.id) || ((_params$data4 = params.data) === null || _params$data4 === void 0 ? void 0 : _params$data4._id);
666
+ },
624
667
  onSortChanged: function onSortChanged(event) {
625
668
  sortChanged(event.api);
626
669
  props.onSortChanged && props.onSortChanged(event);
@@ -45,6 +45,10 @@ interface GridProps extends AgGridReactProps {
45
45
  pageSizeOptions?: number[];
46
46
  hidePagination?: boolean;
47
47
  gridRef?: React.Ref<GridRef | undefined>;
48
+ /**
49
+ * 选中行变化回调函数
50
+ */
51
+ onSelectedRowsChange?: (selectedRows: any[]) => void;
48
52
  }
49
53
  interface AgGridColumnPropsClone extends ColDef {
50
54
  /**
@@ -98,7 +98,25 @@ var ArrayTable = observer(function (props) {
98
98
  onSaveColumnState && onSaveColumnState(props.gridKey, columnState);
99
99
  }
100
100
  };
101
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Space, {
101
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
102
+ ref: ref,
103
+ style: {
104
+ height: height ? height : 400
105
+ }
106
+ }, /*#__PURE__*/React.createElement(ArrayBase, {
107
+ onAdd: onAdd,
108
+ onCopy: onCopy,
109
+ onRemove: onRemove,
110
+ onMoveUp: onMoveUp,
111
+ onMoveDown: onMoveDown
112
+ }, /*#__PURE__*/React.createElement("div", {
113
+ style: {
114
+ width: '100%',
115
+ display: 'flex',
116
+ justifyContent: 'space-between',
117
+ alignItems: 'center'
118
+ }
119
+ }, /*#__PURE__*/React.createElement(Space, {
102
120
  style: {
103
121
  marginBottom: 5
104
122
  }
@@ -119,24 +137,7 @@ var ArrayTable = observer(function (props) {
119
137
  name: key,
120
138
  onlyRenderProperties: true
121
139
  });
122
- })), /*#__PURE__*/React.createElement("div", {
123
- ref: ref,
124
- style: {
125
- height: height ? height : 400
126
- }
127
- }, /*#__PURE__*/React.createElement(ArrayBase, {
128
- onAdd: onAdd,
129
- onCopy: onCopy,
130
- onRemove: onRemove,
131
- onMoveUp: onMoveUp,
132
- onMoveDown: onMoveDown
133
- }, /*#__PURE__*/React.createElement("div", {
134
- style: {
135
- width: '100%',
136
- display: 'flex',
137
- justifyContent: 'flex-end'
138
- }
139
- }, /*#__PURE__*/React.createElement(Setting, {
140
+ })), /*#__PURE__*/React.createElement(Setting, {
140
141
  gridKey: props.gridKey,
141
142
  gridApi: apiRef.current,
142
143
  gridApiState: gridApiState,