@teamix/pro 1.5.0 → 1.5.1

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.
Files changed (69) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +1103 -123
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/index.d.ts +4 -0
  6. package/es/actions/index.js +34 -9
  7. package/es/actions/index.scss +5 -0
  8. package/es/card/index.scss +7 -0
  9. package/es/index.d.ts +1 -1
  10. package/es/index.js +1 -1
  11. package/es/sidebar/components/tree-node/components/IconSwitch/index.d.ts +2 -2
  12. package/es/sidebar/components/tree-node/components/IconSwitch/index.scss +1 -1
  13. package/es/sidebar/index.d.ts +2 -0
  14. package/es/sidebar/index.js +3 -1
  15. package/es/table/components/CardView/index.d.ts +5 -0
  16. package/es/table/components/CardView/index.js +446 -0
  17. package/es/table/components/CardView/index.scss +46 -0
  18. package/es/table/components/Filter/index.d.ts +1 -0
  19. package/es/table/components/Filter/index.js +21 -14
  20. package/es/table/components/Layout/index.js +4 -2
  21. package/es/table/components/LoadMore/index.d.ts +20 -0
  22. package/es/table/components/LoadMore/index.js +107 -0
  23. package/es/table/components/LoadMore/index.scss +19 -0
  24. package/es/table/components/QuickAction/index.d.ts +1 -0
  25. package/es/table/components/ToolBar/CardSwitch.d.ts +8 -0
  26. package/es/table/components/ToolBar/CardSwitch.js +63 -0
  27. package/es/table/components/ToolBar/FilterColumnIcon.js +13 -2
  28. package/es/table/components/ToolBar/Fullscreen.js +15 -2
  29. package/es/table/components/ToolBar/index.js +64 -33
  30. package/es/table/components/ToolBar/index.scss +10 -1
  31. package/es/table/index.js +132 -34
  32. package/es/table/typing.d.ts +69 -0
  33. package/es/table/utils/columnRender.d.ts +1 -1
  34. package/es/table/utils/columnRender.js +4 -2
  35. package/es/table/utils/genProColumnToColumn.d.ts +1 -1
  36. package/es/table/utils/genProColumnToColumn.js +3 -1
  37. package/lib/actions/index.d.ts +4 -0
  38. package/lib/actions/index.js +33 -9
  39. package/lib/actions/index.scss +5 -0
  40. package/lib/card/index.scss +7 -0
  41. package/lib/index.d.ts +1 -1
  42. package/lib/index.js +1 -1
  43. package/lib/sidebar/components/tree-node/components/IconSwitch/index.d.ts +2 -2
  44. package/lib/sidebar/components/tree-node/components/IconSwitch/index.scss +1 -1
  45. package/lib/sidebar/index.d.ts +2 -0
  46. package/lib/sidebar/index.js +12 -1
  47. package/lib/table/components/CardView/index.d.ts +5 -0
  48. package/lib/table/components/CardView/index.js +468 -0
  49. package/lib/table/components/CardView/index.scss +46 -0
  50. package/lib/table/components/Filter/index.d.ts +1 -0
  51. package/lib/table/components/Filter/index.js +21 -14
  52. package/lib/table/components/Layout/index.js +4 -2
  53. package/lib/table/components/LoadMore/index.d.ts +20 -0
  54. package/lib/table/components/LoadMore/index.js +128 -0
  55. package/lib/table/components/LoadMore/index.scss +19 -0
  56. package/lib/table/components/QuickAction/index.d.ts +1 -0
  57. package/lib/table/components/ToolBar/CardSwitch.d.ts +8 -0
  58. package/lib/table/components/ToolBar/CardSwitch.js +82 -0
  59. package/lib/table/components/ToolBar/FilterColumnIcon.js +13 -2
  60. package/lib/table/components/ToolBar/Fullscreen.js +15 -2
  61. package/lib/table/components/ToolBar/index.js +65 -32
  62. package/lib/table/components/ToolBar/index.scss +10 -1
  63. package/lib/table/index.js +134 -34
  64. package/lib/table/typing.d.ts +69 -0
  65. package/lib/table/utils/columnRender.d.ts +1 -1
  66. package/lib/table/utils/columnRender.js +4 -2
  67. package/lib/table/utils/genProColumnToColumn.d.ts +1 -1
  68. package/lib/table/utils/genProColumnToColumn.js +3 -1
  69. package/package.json +1 -1
@@ -42,6 +42,10 @@ var _pageContainer = _interopRequireDefault(require("../page-container"));
42
42
 
43
43
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
44
44
 
45
+ var _CardView = _interopRequireDefault(require("./components/CardView"));
46
+
47
+ var _columns = _interopRequireDefault(require("../../demos/table/columns"));
48
+
45
49
  var _typing = require("./typing");
46
50
 
47
51
  Object.keys(_typing).forEach(function (key) {
@@ -55,7 +59,7 @@ Object.keys(_typing).forEach(function (key) {
55
59
  }
56
60
  });
57
61
  });
58
- var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "afterDataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestConfig", "requestWhenMount", "showPagination", "pageSizeList", "responsivePaginationType", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "customRequest", "filterColumnType", "defaultFilterParams", "reserveSelectedRecords", "size", "disableSelectAll", "context", "fixedTableBody", "isTree"];
62
+ var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "afterDataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestConfig", "requestWhenMount", "showPagination", "pageSizeList", "responsivePaginationType", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "customRequest", "filterColumnType", "defaultFilterParams", "reserveSelectedRecords", "size", "disableSelectAll", "context", "fixedTableBody", "isTree", "toolBarAutoWidth", "data-teamix-spm", "switchCardView", "cardViewProps", "defaultView"];
59
63
 
60
64
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
61
65
 
@@ -221,6 +225,14 @@ var ProTable = function ProTable(props) {
221
225
  _props$fixedTableBody = props.fixedTableBody,
222
226
  fixedTableBody = _props$fixedTableBody === void 0 ? false : _props$fixedTableBody,
223
227
  isTree = props.isTree,
228
+ _props$toolBarAutoWid = props.toolBarAutoWidth,
229
+ toolBarAutoWidth = _props$toolBarAutoWid === void 0 ? true : _props$toolBarAutoWid,
230
+ dataTeamixSpm = props['data-teamix-spm'],
231
+ _props$switchCardView = props.switchCardView,
232
+ switchCardView = _props$switchCardView === void 0 ? false : _props$switchCardView,
233
+ cardViewProps = props.cardViewProps,
234
+ _props$defaultView = props.defaultView,
235
+ defaultView = _props$defaultView === void 0 ? 'table' : _props$defaultView,
224
236
  otherProps = _objectWithoutProperties(props, _excluded);
225
237
 
226
238
  var targetPageKey = pageKey || globalPageKey;
@@ -245,7 +257,7 @@ var ProTable = function ProTable(props) {
245
257
  var _useState7 = (0, _react.useState)(propsDataSource !== null && propsDataSource !== void 0 ? propsDataSource : []),
246
258
  _useState8 = _slicedToArray(_useState7, 2),
247
259
  data = _useState8[0],
248
- setData = _useState8[1];
260
+ _setData = _useState8[1];
249
261
 
250
262
  var _useState9 = (0, _react.useState)(props.sort || {}),
251
263
  _useState10 = _slicedToArray(_useState9, 2),
@@ -397,7 +409,11 @@ var ProTable = function ProTable(props) {
397
409
 
398
410
  var offsetHeaderHeight = headerHeight + tableHeaderHeight + pageHeaderHeight + teamixNavHeight + footerRowSelectionHeight + 16 + (offset !== null && offset !== void 0 ? offset : 0) + 1;
399
411
 
400
- if (tableBodyDom.clientHeight < tableBodyDom.scrollHeight) {
412
+ if (switchViewState === 'card') {
413
+ offsetHeaderHeight = offsetHeaderHeight - tableHeaderHeight - footerRowSelectionHeight;
414
+ }
415
+
416
+ if ((tableBodyDom === null || tableBodyDom === void 0 ? void 0 : tableBodyDom.clientHeight) < (tableBodyDom === null || tableBodyDom === void 0 ? void 0 : tableBodyDom.scrollHeight)) {
401
417
  setFooterSuctionState(true);
402
418
  } else {
403
419
  setFooterSuctionState(false);
@@ -432,7 +448,13 @@ var ProTable = function ProTable(props) {
432
448
  var _useState27 = (0, _react.useState)(false),
433
449
  _useState28 = _slicedToArray(_useState27, 2),
434
450
  fullscreenState = _useState28[0],
435
- setFullscreenState = _useState28[1]; // 切换全屏搜索开关
451
+ setFullscreenState = _useState28[1]; // 切换视角
452
+
453
+
454
+ var _useState29 = (0, _react.useState)(defaultView !== null && defaultView !== void 0 ? defaultView : 'table'),
455
+ _useState30 = _slicedToArray(_useState29, 2),
456
+ switchViewState = _useState30[0],
457
+ setSwitchViewState = _useState30[1]; // 切换全屏搜索开关
436
458
 
437
459
 
438
460
  var filterEnableRef = (0, _react.useRef)({
@@ -448,10 +470,10 @@ var ProTable = function ProTable(props) {
448
470
  var dataFilterFormRef = !fullscreenState ? normalDataFilterFormRef : fullscreenDataFilterFormRef; // let dataFilterForm = dataFilterFormRef.current;
449
471
  // 整个内容区是否超过一屏。用于表格在非全屏模式下的吸底
450
472
 
451
- var _useState29 = (0, _react.useState)(false),
452
- _useState30 = _slicedToArray(_useState29, 2),
453
- footerSuctionState = _useState30[0],
454
- setFooterSuctionState = _useState30[1]; // TODO 获取内容区是否超出一屏(暂时仅支持全家桶)
473
+ var _useState31 = (0, _react.useState)(false),
474
+ _useState32 = _slicedToArray(_useState31, 2),
475
+ footerSuctionState = _useState32[0],
476
+ setFooterSuctionState = _useState32[1]; // TODO 获取内容区是否超出一屏(暂时仅支持全家桶)
455
477
 
456
478
 
457
479
  var getFooterSuctionState = function getFooterSuctionState() {
@@ -576,7 +598,7 @@ var ProTable = function ProTable(props) {
576
598
 
577
599
  (0, _react.useEffect)(function () {
578
600
  if (propsDataSource) {
579
- setData(propsDataSource);
601
+ _setData(propsDataSource);
580
602
  }
581
603
  }, [propsDataSource]); // 初始化 ActionRef。
582
604
 
@@ -643,7 +665,16 @@ var ProTable = function ProTable(props) {
643
665
  _setSize(mode);
644
666
  },
645
667
  refresh: function refresh(params) {
646
- return _request(params);
668
+ // card视角的刷新等于重新请求
669
+ if (switchViewState === 'card') {
670
+ setCurrentPage(1);
671
+
672
+ _request(_objectSpread(_objectSpread({}, params), {}, _defineProperty({}, targetPageKey, 1)));
673
+
674
+ setShowSkeleton(true);
675
+ } else {
676
+ _request(params);
677
+ }
647
678
  },
648
679
  request: function request(params) {
649
680
  // 如果请求中还有翻页相关信息,需要自动设置到指定页
@@ -671,6 +702,12 @@ var ProTable = function ProTable(props) {
671
702
  resetPage: function resetPage() {
672
703
  setCurrentPage(1);
673
704
  },
705
+ nextPage: function nextPage() {
706
+ var newCurrentPage = currentPage + 1;
707
+ setCurrentPage(newCurrentPage);
708
+
709
+ _request(_defineProperty({}, targetPageKey, newCurrentPage));
710
+ },
674
711
  rowSelection: rowSelection,
675
712
  clearRowSelection: function clearRowSelection() {
676
713
  rowSelectionHook.setSelectedRowKeys([]);
@@ -690,8 +727,34 @@ var ProTable = function ProTable(props) {
690
727
  normalDataFilterForm: normalDataFilterForm,
691
728
  fullscreenDataFilterForm: fullscreenDataFilterForm,
692
729
  filterEnableRef: filterEnableRef,
730
+ setData: function setData(data) {
731
+ _setData(data);
732
+ },
693
733
  resetTableMaxBodyHeight: function resetTableMaxBodyHeight(offset) {
694
734
  getHeaderHeight(fullscreenState, offset);
735
+ },
736
+ switchView: function switchView(view) {
737
+ setSwitchViewState(view);
738
+ setShowSkeleton(true);
739
+ setCurrentPage(1);
740
+
741
+ if (view === 'table') {
742
+ var _request4;
743
+
744
+ setPageSize(pageSize !== null && pageSize !== void 0 ? pageSize : 20);
745
+
746
+ _request((_request4 = {}, _defineProperty(_request4, targetPageSizeKey, pageSize !== null && pageSize !== void 0 ? pageSize : 20), _defineProperty(_request4, targetPageKey, 1), _request4));
747
+ }
748
+
749
+ if (view === 'card') {
750
+ var _cardViewProps$pageSi, _cardViewProps$pageSi2, _request5;
751
+
752
+ setPageSize((_cardViewProps$pageSi = cardViewProps === null || cardViewProps === void 0 ? void 0 : cardViewProps.pageSize) !== null && _cardViewProps$pageSi !== void 0 ? _cardViewProps$pageSi : 12);
753
+
754
+ _request((_request5 = {}, _defineProperty(_request5, targetPageSizeKey, (_cardViewProps$pageSi2 = cardViewProps === null || cardViewProps === void 0 ? void 0 : cardViewProps.pageSize) !== null && _cardViewProps$pageSi2 !== void 0 ? _cardViewProps$pageSi2 : 12), _defineProperty(_request5, targetPageKey, 1), _request5));
755
+ }
756
+
757
+ getHeaderHeight(fullscreenState);
695
758
  }
696
759
  }); // 将 Actions 绑定到传入的 propsActionRef 中
697
760
 
@@ -700,8 +763,6 @@ var ProTable = function ProTable(props) {
700
763
  }
701
764
 
702
765
  function onFormatResult(next) {
703
- var _next$data;
704
-
705
766
  props.onFormatResult && props.onFormatResult(next);
706
767
  var time = autoRefresh ? autoRefresh(next.data) : false;
707
768
 
@@ -713,8 +774,22 @@ var ProTable = function ProTable(props) {
713
774
  } // 设置 dataSource、total
714
775
 
715
776
 
716
- setData(next.data || []);
717
- setTotal(next.total || ((_next$data = next.data) === null || _next$data === void 0 ? void 0 : _next$data.length));
777
+ if (switchViewState === 'table' || currentPage === 1) {
778
+ var _next$data;
779
+
780
+ _setData(next.data || []);
781
+
782
+ setTotal(next.total || ((_next$data = next.data) === null || _next$data === void 0 ? void 0 : _next$data.length));
783
+ }
784
+
785
+ if (switchViewState === 'card' && currentPage !== 1) {
786
+ var _next$data2;
787
+
788
+ _setData([].concat(_toConsumableArray(data), _toConsumableArray(next.data || [])));
789
+
790
+ setTotal(total + (next.total || ((_next$data2 = next.data) === null || _next$data2 === void 0 ? void 0 : _next$data2.length)));
791
+ }
792
+
718
793
  setShowSkeleton(false);
719
794
  } // 请求表格数据工具函数
720
795
 
@@ -786,7 +861,7 @@ var ProTable = function ProTable(props) {
786
861
  }); // 请求函数
787
862
 
788
863
  function _request(params, noLoading, filterParams) {
789
- var _dataFilterFormRef$cu2, _actionRef$current$ge, _actionRef$current5, _actionRef$current5$g, _objectSpread2;
864
+ var _dataFilterFormRef$cu2, _actionRef$current$ge, _actionRef$current5, _actionRef$current5$g, _objectSpread3;
790
865
 
791
866
  // 如果没有传 url 且没有 customRequest,直接返回
792
867
  if (!url && !customRequest) {
@@ -803,7 +878,7 @@ var ProTable = function ProTable(props) {
803
878
 
804
879
  var columnsFilterParams = (_actionRef$current$ge = (_actionRef$current5 = actionRef.current) === null || _actionRef$current5 === void 0 ? void 0 : (_actionRef$current5$g = _actionRef$current5.getFilterRules) === null || _actionRef$current5$g === void 0 ? void 0 : _actionRef$current5$g.call(_actionRef$current5)) !== null && _actionRef$current$ge !== void 0 ? _actionRef$current$ge : {}; // 格式化后的请求参数
805
880
 
806
- var requestData = formatParams(_objectSpread(_objectSpread({}, !showPagination ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, dataFilterParams), propsParams), sortParams), columnsFilterParams) : _objectSpread(_objectSpread(_objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, targetPageKey, currentPage), _defineProperty(_objectSpread2, targetPageSizeKey, pageSize), _objectSpread2), dataFilterParams), propsParams), sortParams), columnsFilterParams)), params));
881
+ var requestData = formatParams(_objectSpread(_objectSpread({}, !showPagination ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, dataFilterParams), propsParams), sortParams), columnsFilterParams) : _objectSpread(_objectSpread(_objectSpread(_objectSpread((_objectSpread3 = {}, _defineProperty(_objectSpread3, targetPageKey, currentPage), _defineProperty(_objectSpread3, targetPageSizeKey, pageSize), _objectSpread3), dataFilterParams), propsParams), sortParams), columnsFilterParams)), params));
807
882
 
808
883
  if (requestData) {
809
884
  if (autoRefreshTimerRef.current) {
@@ -831,14 +906,24 @@ var ProTable = function ProTable(props) {
831
906
  if (customRequest && typeof customRequest === 'function') {
832
907
  setCustomTableLoading(true);
833
908
  customRequest(requestData).then(function (res) {
834
- var data = res.data,
835
- total = res.total,
909
+ var dataRes = res.data,
910
+ totalRes = res.total,
836
911
  success = res.success;
837
912
 
838
913
  if (success === true) {
839
914
  // 设置 dataSource、total
840
- setData(data || []);
841
- setTotal(total || (data === null || data === void 0 ? void 0 : data.length));
915
+ if (switchViewState === 'table' || params['targetPageKey'] === 1) {
916
+ _setData(dataRes || []);
917
+
918
+ setTotal(totalRes || (dataRes === null || dataRes === void 0 ? void 0 : dataRes.length));
919
+ }
920
+
921
+ if (switchViewState === 'card' && params['targetPageKey'] !== 1) {
922
+ _setData([].concat(_toConsumableArray(data), _toConsumableArray(dataRes || [])));
923
+
924
+ setTotal(total + (totalRes || (dataRes === null || dataRes === void 0 ? void 0 : dataRes.length)));
925
+ }
926
+
842
927
  setShowSkeleton(false);
843
928
  setCustomTableLoading(false);
844
929
  } // 重新计算是否需要吸底
@@ -908,7 +993,6 @@ var ProTable = function ProTable(props) {
908
993
 
909
994
  (_actionRef$current6 = actionRef.current) === null || _actionRef$current6 === void 0 ? void 0 : (_actionRef$current6$c = _actionRef$current6.clearRowSelection) === null || _actionRef$current6$c === void 0 ? void 0 : _actionRef$current6$c.call(_actionRef$current6);
910
995
  setCurrentPage(1);
911
- console.log('currentPageSize1', pageSize);
912
996
 
913
997
  _request(_defineProperty({}, targetPageKey, 1), false, values);
914
998
  },
@@ -918,7 +1002,6 @@ var ProTable = function ProTable(props) {
918
1002
  (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onReset) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onReset());
919
1003
  (_dataFilterFormRef$cu3 = dataFilterFormRef.current) === null || _dataFilterFormRef$cu3 === void 0 ? void 0 : _dataFilterFormRef$cu3.reset();
920
1004
  setCurrentPage(1);
921
- console.log('currentPageSize2', pageSize);
922
1005
 
923
1006
  _request(_defineProperty({}, targetPageKey, 1), false, values);
924
1007
  }
@@ -938,7 +1021,8 @@ var ProTable = function ProTable(props) {
938
1021
  className: (0, _classnames.default)('teamix-pro-table-container', className, 'teamix-test-request'),
939
1022
  "data-teamix-test-request": "url=".concat(url, "&formatResult=").concat(!!formatResult),
940
1023
  "data-teamix-test-params": (0, _utils.getTestRequestParams)(propsParams),
941
- "data-teamix-test-data": (0, _utils.getTestRequestData)(propsColumns)
1024
+ "data-teamix-test-data": (0, _utils.getTestRequestData)(propsColumns),
1025
+ "data-teamix-spm": dataTeamixSpm
942
1026
  }, /*#__PURE__*/_react.default.createElement(_Layout.default, {
943
1027
  header: header,
944
1028
  mainAction: mainAction,
@@ -951,11 +1035,15 @@ var ProTable = function ProTable(props) {
951
1035
  dataFilterFormRef: isFullScreen ? fullscreenDataFilterFormRef : normalDataFilterFormRef,
952
1036
  rowSelection: rowSelection,
953
1037
  filterColumnType: filterColumnType,
954
- fullScreenState: isFullScreen
955
- }), /*#__PURE__*/_react.default.createElement(_components.Table.StickyLock, _objectSpread({
1038
+ fullScreenState: isFullScreen,
1039
+ toolBarAutoWidth: toolBarAutoWidth,
1040
+ dataTeamixSpm: dataTeamixSpm,
1041
+ switchCardView: switchCardView,
1042
+ defaultView: defaultView
1043
+ }), switchViewState === 'table' && /*#__PURE__*/_react.default.createElement(_components.Table.StickyLock, _objectSpread({
956
1044
  hasBorder: false,
957
1045
  dataSource: showSkeleton ? skeletonDataSource : data || props.dataSource,
958
- columns: (0, _genProColumnToColumn.default)(filteredColumns, showSkeleton, actionRef, context),
1046
+ columns: (0, _genProColumnToColumn.default)(filteredColumns, showSkeleton, actionRef, context, dataTeamixSpm),
959
1047
  loading: getTableLoading(),
960
1048
  className: (0, _classnames.default)('teamix-pro-table', tableClassName, {
961
1049
  'with-row-select': rowSelection,
@@ -971,7 +1059,17 @@ var ProTable = function ProTable(props) {
971
1059
  sortIcons: (0, _getTableSortIcons.default)(),
972
1060
  fixedHeader: fullscreenState || fixedTableBody,
973
1061
  maxBodyHeight: "calc(100vh - ".concat(headerHeight, "px)")
974
- }, (0, _utils.pickProps)((0, _getTableProps.default)(), otherProps))));
1062
+ }, (0, _utils.pickProps)((0, _getTableProps.default)(), otherProps))), switchViewState === 'card' && /*#__PURE__*/_react.default.createElement(_CardView.default, {
1063
+ dataSource: showSkeleton ? skeletonDataSource : data || props.dataSource,
1064
+ showSkeleton: showSkeleton,
1065
+ loading: getTableLoading(),
1066
+ originColumns: _columns.default,
1067
+ cardViewProps: cardViewProps,
1068
+ scrollHeight: fullscreenState || fixedTableBody ? "calc(100vh - ".concat(headerHeight, "px)") : undefined,
1069
+ actionRef: actionRef,
1070
+ context: context,
1071
+ columns: (0, _genProColumnToColumn.default)(filteredColumns, showSkeleton, actionRef, context)
1072
+ }));
975
1073
  } else {
976
1074
  // 不传 columns 直接返回原始 Table
977
1075
  return /*#__PURE__*/_react.default.createElement(_components.Table, _objectSpread({
@@ -1003,7 +1101,8 @@ var ProTable = function ProTable(props) {
1003
1101
  return /*#__PURE__*/_react.default.createElement("div", {
1004
1102
  className: cls('footer-action')
1005
1103
  }, /*#__PURE__*/_react.default.createElement(_actions.ProActionGroup, _objectSpread(_objectSpread({}, targetFooterActions), {}, {
1006
- context: _objectSpread(_objectSpread({}, defaultContext), targetFooterActions === null || targetFooterActions === void 0 ? void 0 : targetFooterActions.context)
1104
+ context: _objectSpread(_objectSpread({}, defaultContext), targetFooterActions === null || targetFooterActions === void 0 ? void 0 : targetFooterActions.context),
1105
+ "data-teamix-spm": dataTeamixSpm ? "".concat(dataTeamixSpm, "-footerAction") : undefined
1007
1106
  })));
1008
1107
  } else return footerAction;
1009
1108
  };
@@ -1025,7 +1124,7 @@ var ProTable = function ProTable(props) {
1025
1124
  }
1026
1125
 
1027
1126
  function onChangePaginationSize(currentPageSize) {
1028
- var _request5;
1127
+ var _request8;
1029
1128
 
1030
1129
  // 翻页默认清空选择
1031
1130
  if (!reserveSelectedRecords) {
@@ -1037,7 +1136,7 @@ var ProTable = function ProTable(props) {
1037
1136
  setPageSize(currentPageSize);
1038
1137
  setCurrentPage(1);
1039
1138
 
1040
- _request((_request5 = {}, _defineProperty(_request5, targetPageSizeKey, currentPageSize), _defineProperty(_request5, targetPageKey, 1), _request5));
1139
+ _request((_request8 = {}, _defineProperty(_request8, targetPageSizeKey, currentPageSize), _defineProperty(_request8, targetPageKey, 1), _request8));
1041
1140
  }
1042
1141
 
1043
1142
  function renderRowSelection() {
@@ -1049,13 +1148,13 @@ var ProTable = function ProTable(props) {
1049
1148
  } else {
1050
1149
  return /*#__PURE__*/_react.default.createElement("div", {
1051
1150
  className: cls('footer-left-wrapper')
1052
- }, rowSelection.mode !== 'single' && /*#__PURE__*/_react.default.createElement(_components.Checkbox, _objectSpread({
1151
+ }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, rowSelection.mode !== 'single' && /*#__PURE__*/_react.default.createElement(_components.Checkbox, _objectSpread({
1053
1152
  className: cls("footer-checkbox-".concat(size))
1054
1153
  }, getCheckAllProps())), footerAction && renderFooterAction(), /*#__PURE__*/_react.default.createElement("span", {
1055
1154
  className: cls('selected-msg')
1056
1155
  }, (0, _utils.getMessage)('selected', {
1057
1156
  count: selectedCount
1058
- })));
1157
+ }))));
1059
1158
  }
1060
1159
  } else if (footerAction) {
1061
1160
  if (showSkeleton) {
@@ -1070,7 +1169,7 @@ var ProTable = function ProTable(props) {
1070
1169
  }
1071
1170
  }
1072
1171
 
1073
- if (showPagination) {
1172
+ if (showPagination && switchViewState === 'table') {
1074
1173
  return /*#__PURE__*/_react.default.createElement("div", {
1075
1174
  className: cls('footer', {
1076
1175
  'footer-has-rowSelection': rowSelection,
@@ -1101,7 +1200,7 @@ var ProTable = function ProTable(props) {
1101
1200
  return onChangePaginationSize(number);
1102
1201
  }
1103
1202
  }, props.paginationProps)))));
1104
- } else if (!showPagination) {
1203
+ } else if (!showPagination && (footerAction || rowSelection || useRowSelection)) {
1105
1204
  return /*#__PURE__*/_react.default.createElement("div", {
1106
1205
  className: cls('footer', {
1107
1206
  'footer-has-rowSelection': rowSelection
@@ -1115,6 +1214,7 @@ var ProTable = function ProTable(props) {
1115
1214
 
1116
1215
  var fixFooterState = (0, _react.useMemo)(function () {
1117
1216
  if (fullscreenState) {
1217
+ // TODO XXX
1118
1218
  return false;
1119
1219
  }
1120
1220
 
@@ -9,6 +9,7 @@ import { PaginationProps } from '@alicloudfe/components/types/pagination';
9
9
  import { HeaderProps as ProTableHeaderProps } from '../field';
10
10
  import { Method, AxiosRequestConfig } from 'axios';
11
11
  import React from 'react';
12
+ import { ProCardProps } from '../card';
12
13
  declare type IFieldRenderProps = keyof ProFieldRenderProps;
13
14
  /** 列record函数 */
14
15
  declare type ProTableCellFunProp = (value: any, index: number, record: any, ...others: any) => any;
@@ -147,6 +148,14 @@ export declare type ProTableProps = {
147
148
  context?: any;
148
149
  /** 是否固定表格主体(开启后横向滚动条会固定在底部) */
149
150
  fixedTableBody?: boolean;
151
+ /** 用于埋点 */
152
+ 'data-teamix-spm'?: string;
153
+ /** 是否切换卡片视角 **/
154
+ switchCardView?: boolean;
155
+ /** 卡片视角配置 **/
156
+ cardViewProps?: ProTableCardProps;
157
+ /** 默认展示维度 **/
158
+ defaultView?: 'table' | 'card';
150
159
  } & Omit<TableProps, 'columns'> & ProTableTopAreaProps;
151
160
  export declare type rowSelectionType = {
152
161
  getProps?: (record: any, index: number) => any;
@@ -203,6 +212,7 @@ export declare type ProTableActionType = {
203
212
  };
204
213
  /** 重置翻页器为1,不发送请求 */
205
214
  resetPage?: () => void;
215
+ nextPage?: () => void;
206
216
  /** 获取数据过滤区表单实例 */
207
217
  dataFilterForm?: ProFormType;
208
218
  /** 用于在 mount 的时候获取到表单 ref */
@@ -212,6 +222,11 @@ export declare type ProTableActionType = {
212
222
  filterEnableRef?: any;
213
223
  /** 表格当前的数据 */
214
224
  data?: any[];
225
+ /** 切换视角 **/
226
+ switchView?: (view: 'card' | 'table') => void;
227
+ /** 设置数据源 **/
228
+ setData?: (data: any[]) => void;
229
+ setCardViewScrollPosition?: (scrollTop: number) => void;
215
230
  } & ProTableActionTypeMutations;
216
231
  /** action State 定义 */
217
232
  export declare type ProTableActionTypeMutations = {
@@ -258,6 +273,8 @@ export declare type ProTableTopAreaProps = {
258
273
  mainAction?: ProActionGroupProps | React.ReactNode;
259
274
  /** 工具栏区 */
260
275
  toolBar?: boolean | ProTableToolBarItem[];
276
+ /** 是否开启工具栏自适应 */
277
+ toolBarAutoWidth?: boolean;
261
278
  /** 快捷操作区 */
262
279
  extra?: ProActionButtonProps | React.ReactNode | React.ReactNode[];
263
280
  /** 数据过滤区 */
@@ -277,6 +294,9 @@ export declare type ProTableLayoutProps = {
277
294
  columns?: ProTableColumnProps[];
278
295
  rowSelection?: innerRowSelectionType | rowSelectionType;
279
296
  fullScreenState?: boolean;
297
+ dataTeamixSpm?: string;
298
+ switchCardView?: boolean;
299
+ defaultView?: 'table' | 'card';
280
300
  } & ProTableTopAreaProps;
281
301
  /** columns 列过滤 */
282
302
  export declare type ProTableColumnsFilterItemProps = {
@@ -299,4 +319,53 @@ export declare type parentPositionProps = {
299
319
  offsetLeft: number;
300
320
  offsetRight: number;
301
321
  };
322
+ /** card props **/
323
+ export declare type ProTableCardProps = {
324
+ /** 标题 dataIndex **/
325
+ title?: (ProTableColumnProps['dataIndex'] | ProTableColumnProps) | ((index: number, record: any) => ProTableColumnProps['dataIndex'] | ProTableColumnProps);
326
+ /** 副标题 dataIndex **/
327
+ subTitle?: (ProTableColumnProps['dataIndex'] | ProTableColumnProps) | ((index: number, record: any) => ProTableColumnProps['dataIndex'] | ProTableColumnProps);
328
+ /** 内容区域 dataIndex **/
329
+ content?: (ProTableColumnProps['dataIndex'] | ProTableColumnProps)[] | ((index: number, record: any) => (ProTableColumnProps['dataIndex'] | ProTableColumnProps)[]);
330
+ /** extra 区域 **/
331
+ extra?: (ProActionGroupProps | React.ReactNode | ProTableColumnProps['dataIndex'])[] | ((index: number, record: any) => (ProActionGroupProps | React.ReactNode | ProTableColumnProps['dataIndex'])[]);
332
+ /** 标签区域 **/
333
+ tags?: (ProTableColumnProps['dataIndex'] | ProTableColumnProps)[] | ((index: number, record: any) => (ProTableColumnProps['dataIndex'] | ProTableColumnProps)[]);
334
+ /** 分页器条数 **/
335
+ pageSize?: 12 | 24 | 48 | 96 | number;
336
+ /** 卡片区域滚动高度 **/
337
+ scrollHeight?: number | string;
338
+ /** 自动加载下一页 **/
339
+ autoLoadNextPage?: boolean;
340
+ /** 滚动容器 用于监听触底事件 **/
341
+ scrollDom?: HTMLElement;
342
+ /** 触底事件 **/
343
+ onScrollBottom?: () => void;
344
+ /** 卡片配置 **/
345
+ cardProps?: {
346
+ [key in keyof ProCardProps]?: ProCardProps[key] | ((index: number, record: any) => ProCardProps[key]);
347
+ };
348
+ };
349
+ /** card 视角 Props (内部组件) **/
350
+ export declare type ProTableCardViewProps = {
351
+ /** 卡片视角配置 **/
352
+ cardViewProps?: ProTableCardProps;
353
+ /** 数据源 **/
354
+ dataSource?: any[];
355
+ /** 原始 columns **/
356
+ originColumns?: any[];
357
+ /** 处理过后的 columns **/
358
+ columns?: any[];
359
+ /** 加载动画 **/
360
+ loading?: boolean;
361
+ /** 上下文 **/
362
+ context?: any;
363
+ actionRef?: React.MutableRefObject<ProTableActionType | undefined>;
364
+ /** 卡片区域滚动高度 **/
365
+ scrollHeight?: number | string;
366
+ /** 骨架屏状态 **/
367
+ showSkeleton?: boolean;
368
+ /** ProCard 卡片配置 **/
369
+ cardProps?: ProTableCardProps['cardProps'];
370
+ };
302
371
  export {};
@@ -10,4 +10,4 @@ export declare const renderColumnsTitle: (item: ProTableColumnProps, actionRef:
10
10
  /**
11
11
  * 负责单元格的具体渲染
12
12
  */
13
- export declare const renderCell: (value: any, item: ProTableColumnProps, index: number, record: any, actionRef: React.MutableRefObject<ProTableActionType | undefined>, context?: any) => JSX.Element;
13
+ export declare const renderCell: (value: any, item: ProTableColumnProps, index: number, record: any, actionRef: React.MutableRefObject<ProTableActionType | undefined>, context?: any, dataTeamixSpm?: string | undefined) => JSX.Element;
@@ -130,7 +130,8 @@ exports.renderColumnsTitle = renderColumnsTitle;
130
130
 
131
131
  var renderCell = function renderCell(value, item, index, record, actionRef,
132
132
  /** 接收外部比如 dialog-table 传过来的 context,用于弹窗关闭等 */
133
- context) {
133
+ context, // 用于埋点
134
+ dataTeamixSpm) {
134
135
  var _actionSchema$actions;
135
136
 
136
137
  var _item$valueType = item.valueType,
@@ -201,7 +202,8 @@ context) {
201
202
  return /*#__PURE__*/_react.default.createElement(_actions.ProActionGroup, _objectSpread(_objectSpread({
202
203
  type: "text"
203
204
  }, actionSchema), {}, {
204
- context: _objectSpread(_objectSpread({}, defaultContext), actionSchema.context)
205
+ context: _objectSpread(_objectSpread({}, defaultContext), actionSchema.context),
206
+ "data-teamix-spm": dataTeamixSpm ? "".concat(dataTeamixSpm, "-columnAction") : undefined
205
207
  }));
206
208
  } // dataSource可传函数
207
209
 
@@ -9,5 +9,5 @@ declare type FixedColumnProps = ColumnProps & {
9
9
  */
10
10
  export default function genProColumnToColumn(columns: ProTableColumnProps[],
11
11
  /** 是否渲染骨架屏 */
12
- showSkeleton: boolean, actionRef: React.MutableRefObject<ProTableActionType | undefined>, context?: any): FixedColumnProps[];
12
+ showSkeleton: boolean, actionRef: React.MutableRefObject<ProTableActionType | undefined>, context?: any, dataTeamixSpm?: string): FixedColumnProps[];
13
13
  export {};
@@ -34,6 +34,8 @@ function genProColumnToColumn(columns,
34
34
  /** 是否渲染骨架屏 */
35
35
  showSkeleton, actionRef) {
36
36
  var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
37
+ var // 用于埋点
38
+ dataTeamixSpm = arguments.length > 4 ? arguments[4] : undefined;
37
39
  return columns.map(function (columnProps) {
38
40
  var filters = columnProps.filters,
39
41
  dataIndex = columnProps.dataIndex,
@@ -59,7 +61,7 @@ showSkeleton, actionRef) {
59
61
  dataIndex: dataIndex === null || dataIndex === void 0 ? void 0 : dataIndex.toString(),
60
62
  title: (0, _columnRender.renderColumnsTitle)(columnProps, actionRef),
61
63
  cell: function cell(value, index, record) {
62
- return (0, _columnRender.renderCell)(value, columnProps, index, record, actionRef, context);
64
+ return (0, _columnRender.renderCell)(value, columnProps, index, record, actionRef, context, dataTeamixSpm);
63
65
  }
64
66
  });
65
67
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamix/pro",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "TeamixPro大包",
5
5
  "keywords": [
6
6
  "aliyun",