@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.
- package/dist/pro.css +1 -1
- package/dist/pro.js +1103 -123
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/es/actions/index.d.ts +4 -0
- package/es/actions/index.js +34 -9
- package/es/actions/index.scss +5 -0
- package/es/card/index.scss +7 -0
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/sidebar/components/tree-node/components/IconSwitch/index.d.ts +2 -2
- package/es/sidebar/components/tree-node/components/IconSwitch/index.scss +1 -1
- package/es/sidebar/index.d.ts +2 -0
- package/es/sidebar/index.js +3 -1
- package/es/table/components/CardView/index.d.ts +5 -0
- package/es/table/components/CardView/index.js +446 -0
- package/es/table/components/CardView/index.scss +46 -0
- package/es/table/components/Filter/index.d.ts +1 -0
- package/es/table/components/Filter/index.js +21 -14
- package/es/table/components/Layout/index.js +4 -2
- package/es/table/components/LoadMore/index.d.ts +20 -0
- package/es/table/components/LoadMore/index.js +107 -0
- package/es/table/components/LoadMore/index.scss +19 -0
- package/es/table/components/QuickAction/index.d.ts +1 -0
- package/es/table/components/ToolBar/CardSwitch.d.ts +8 -0
- package/es/table/components/ToolBar/CardSwitch.js +63 -0
- package/es/table/components/ToolBar/FilterColumnIcon.js +13 -2
- package/es/table/components/ToolBar/Fullscreen.js +15 -2
- package/es/table/components/ToolBar/index.js +64 -33
- package/es/table/components/ToolBar/index.scss +10 -1
- package/es/table/index.js +132 -34
- package/es/table/typing.d.ts +69 -0
- package/es/table/utils/columnRender.d.ts +1 -1
- package/es/table/utils/columnRender.js +4 -2
- package/es/table/utils/genProColumnToColumn.d.ts +1 -1
- package/es/table/utils/genProColumnToColumn.js +3 -1
- package/lib/actions/index.d.ts +4 -0
- package/lib/actions/index.js +33 -9
- package/lib/actions/index.scss +5 -0
- package/lib/card/index.scss +7 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/sidebar/components/tree-node/components/IconSwitch/index.d.ts +2 -2
- package/lib/sidebar/components/tree-node/components/IconSwitch/index.scss +1 -1
- package/lib/sidebar/index.d.ts +2 -0
- package/lib/sidebar/index.js +12 -1
- package/lib/table/components/CardView/index.d.ts +5 -0
- package/lib/table/components/CardView/index.js +468 -0
- package/lib/table/components/CardView/index.scss +46 -0
- package/lib/table/components/Filter/index.d.ts +1 -0
- package/lib/table/components/Filter/index.js +21 -14
- package/lib/table/components/Layout/index.js +4 -2
- package/lib/table/components/LoadMore/index.d.ts +20 -0
- package/lib/table/components/LoadMore/index.js +128 -0
- package/lib/table/components/LoadMore/index.scss +19 -0
- package/lib/table/components/QuickAction/index.d.ts +1 -0
- package/lib/table/components/ToolBar/CardSwitch.d.ts +8 -0
- package/lib/table/components/ToolBar/CardSwitch.js +82 -0
- package/lib/table/components/ToolBar/FilterColumnIcon.js +13 -2
- package/lib/table/components/ToolBar/Fullscreen.js +15 -2
- package/lib/table/components/ToolBar/index.js +65 -32
- package/lib/table/components/ToolBar/index.scss +10 -1
- package/lib/table/index.js +134 -34
- package/lib/table/typing.d.ts +69 -0
- package/lib/table/utils/columnRender.d.ts +1 -1
- package/lib/table/utils/columnRender.js +4 -2
- package/lib/table/utils/genProColumnToColumn.d.ts +1 -1
- package/lib/table/utils/genProColumnToColumn.js +3 -1
- package/package.json +1 -1
package/lib/table/index.js
CHANGED
@@ -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
|
-
|
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 (
|
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
|
452
|
-
|
453
|
-
footerSuctionState =
|
454
|
-
setFooterSuctionState =
|
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
|
-
|
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
|
-
|
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
|
-
|
717
|
-
|
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,
|
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((
|
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
|
835
|
-
|
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
|
-
|
841
|
-
|
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
|
-
|
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
|
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((
|
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
|
|
package/lib/table/typing.d.ts
CHANGED
@@ -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
|
});
|