@teamix/pro 1.5.25 → 1.5.27
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.all.min.css +1 -1
- package/dist/pro.css +1 -1
- package/dist/pro.js +2130 -676
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/dist/pro.xconsole.min.css +1 -1
- package/es/card/index.scss +4 -0
- package/es/form/SchemaForm/adapterType.js +3 -0
- package/es/form/fieldTypeMap.js +3 -0
- package/es/form/global.scss +7 -0
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/table/components/Filter/index.js +3 -3
- package/es/table/index.js +91 -29
- package/es/table/index.scss +26 -0
- package/es/table/typing.d.ts +7 -1
- package/es/table/utils/columnRender.d.ts +1 -0
- package/es/table/utils/columnRender.js +41 -1
- package/es/table/utils/genAutoWidthColumns.d.ts +30 -0
- package/es/table/utils/genAutoWidthColumns.js +327 -0
- package/lib/card/index.scss +4 -0
- package/lib/form/SchemaForm/adapterType.js +3 -0
- package/lib/form/fieldTypeMap.js +3 -0
- package/lib/form/global.scss +7 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/table/components/Filter/index.js +3 -3
- package/lib/table/index.js +91 -29
- package/lib/table/index.scss +26 -0
- package/lib/table/typing.d.ts +7 -1
- package/lib/table/utils/columnRender.d.ts +1 -0
- package/lib/table/utils/columnRender.js +44 -3
- package/lib/table/utils/genAutoWidthColumns.d.ts +30 -0
- package/lib/table/utils/genAutoWidthColumns.js +342 -0
- package/package.json +1 -1
package/lib/table/index.js
CHANGED
@@ -22,6 +22,7 @@ var _proField = require("@teamix/pro-field");
|
|
22
22
|
var _actions = require("../actions");
|
23
23
|
var _classnames = _interopRequireDefault(require("classnames"));
|
24
24
|
var _pageContainer = _interopRequireDefault(require("../page-container"));
|
25
|
+
var _genAutoWidthColumns = require("./utils/genAutoWidthColumns");
|
25
26
|
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
26
27
|
var _CardView = _interopRequireDefault(require("./components/CardView"));
|
27
28
|
var _hooks = require("@teamix/hooks");
|
@@ -38,8 +39,8 @@ Object.keys(_typing).forEach(function (key) {
|
|
38
39
|
}
|
39
40
|
});
|
40
41
|
});
|
41
|
-
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", "autoRefreshProps", "customRequest", "filterColumnType", "defaultFilterParams", "reserveSelectedRecords", "size", "disableSelectAll", "context", "fixedTableBody", "isTree", "toolBarAutoWidth", "data-teamix-spm", "switchCardView", "cardViewProps", "defaultView", "emptyProps", "bindUrlProps", "bindUrl", "autoRedirect", "useMaxData"],
|
42
|
-
_excluded2 = ["onChange"];
|
42
|
+
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", "autoRefreshProps", "customRequest", "filterColumnType", "defaultFilterParams", "reserveSelectedRecords", "size", "disableSelectAll", "context", "autoWidth", "fixedTableBody", "isTree", "toolBarAutoWidth", "data-teamix-spm", "switchCardView", "cardViewProps", "defaultView", "emptyProps", "bindUrlProps", "bindUrl", "autoRedirect", "useMaxData"],
|
43
|
+
_excluded2 = ["onChange", "onPageSizeChange"];
|
43
44
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
44
45
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
45
46
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -167,6 +168,8 @@ var ProTable = function ProTable(props) {
|
|
167
168
|
propsSize = _props$size === void 0 ? 'medium' : _props$size,
|
168
169
|
disableSelectAll = props.disableSelectAll,
|
169
170
|
context = props.context,
|
171
|
+
_props$autoWidth = props.autoWidth,
|
172
|
+
autoWidthProp = _props$autoWidth === void 0 ? false : _props$autoWidth,
|
170
173
|
_props$fixedTableBody = props.fixedTableBody,
|
171
174
|
fixedTableBody = _props$fixedTableBody === void 0 ? false : _props$fixedTableBody,
|
172
175
|
isTree = props.isTree,
|
@@ -230,6 +233,19 @@ var ProTable = function ProTable(props) {
|
|
230
233
|
_useState16 = _slicedToArray(_useState15, 2),
|
231
234
|
filteredColumns = _useState16[0],
|
232
235
|
setFilteredColumns = _useState16[1];
|
236
|
+
// 全局状态 : 自适应表格
|
237
|
+
var autoWidth = (0, _react.useMemo)(function () {
|
238
|
+
var _getGlobalConfig2;
|
239
|
+
return ((_getGlobalConfig2 = (0, _utils.getGlobalConfig)('ProTable')) === null || _getGlobalConfig2 === void 0 ? void 0 : _getGlobalConfig2.autoWidth) || autoWidthProp;
|
240
|
+
}, [autoWidthProp]);
|
241
|
+
// 判断是否有操作列,有的话则渲染一个 shadow dom
|
242
|
+
var hasActionColumn = false;
|
243
|
+
if (autoWidth) {
|
244
|
+
hasActionColumn = filteredColumns.some(function (column) {
|
245
|
+
var _column$actionSchema, _column$actionSchema$;
|
246
|
+
return (column === null || column === void 0 ? void 0 : column.actionSchema) && ((_column$actionSchema = column.actionSchema) === null || _column$actionSchema === void 0 ? void 0 : (_column$actionSchema$ = _column$actionSchema.actions) === null || _column$actionSchema$ === void 0 ? void 0 : _column$actionSchema$.length) > 0;
|
247
|
+
});
|
248
|
+
}
|
233
249
|
var _useState17 = (0, _react.useState)(propsSize),
|
234
250
|
_useState18 = _slicedToArray(_useState17, 2),
|
235
251
|
size = _useState18[0],
|
@@ -238,6 +254,13 @@ var ProTable = function ProTable(props) {
|
|
238
254
|
_useState20 = _slicedToArray(_useState19, 2),
|
239
255
|
showLoading = _useState20[0],
|
240
256
|
setShowLoading = _useState20[1];
|
257
|
+
// 自动计算列宽需要的一些hook
|
258
|
+
var _useState21 = (0, _react.useState)(false),
|
259
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
260
|
+
showShadowContainer = _useState22[0],
|
261
|
+
setShowShadowContainer = _useState22[1];
|
262
|
+
var shadowContainerRef = (0, _react.useRef)(null);
|
263
|
+
var shadowActionColumnContainerRef = (0, _react.useRef)(null);
|
241
264
|
// 表格内部用作存储的 Ref,标识 Table 组件是否被第一次渲染。用作 useUrlState filter 第一次渲染时使用 state 数据请求
|
242
265
|
var dataRef = (0, _react.useRef)({
|
243
266
|
flag: true
|
@@ -258,19 +281,19 @@ var ProTable = function ProTable(props) {
|
|
258
281
|
}, [currentPage, pageSize, urlState]);
|
259
282
|
// 存储能够被 on 监听到的 ProTable 状态
|
260
283
|
// 因为只做存储用。不需要更新视图以及需要同步更改。所以不使用 setState 更新
|
261
|
-
var
|
284
|
+
var _useState23 = (0, _react.useState)({
|
262
285
|
fullScreenState: false,
|
263
286
|
filterRules: {},
|
264
287
|
filterColumns: []
|
265
288
|
}),
|
266
|
-
|
267
|
-
actionRefState =
|
289
|
+
_useState24 = _slicedToArray(_useState23, 1),
|
290
|
+
actionRefState = _useState24[0];
|
268
291
|
// 存储 on 监听事件
|
269
|
-
var
|
292
|
+
var _useState25 = (0, _react.useState)({
|
270
293
|
fullScreenState: {}
|
271
294
|
}),
|
272
|
-
|
273
|
-
actionRefCallback =
|
295
|
+
_useState26 = _slicedToArray(_useState25, 1),
|
296
|
+
actionRefCallback = _useState26[0];
|
274
297
|
// 存储定时器 id
|
275
298
|
var autoRefreshTimerRef = (0, _react.useRef)();
|
276
299
|
var onResize = null;
|
@@ -382,20 +405,20 @@ var ProTable = function ProTable(props) {
|
|
382
405
|
}, 50);
|
383
406
|
};
|
384
407
|
// header 区域高度。用作全屏计算吸顶吸底高度。默认不做计算
|
385
|
-
var
|
386
|
-
_useState26 = _slicedToArray(_useState25, 2),
|
387
|
-
headerHeight = _useState26[0],
|
388
|
-
setHeaderHeight = _useState26[1];
|
389
|
-
// 全屏显示 className
|
390
|
-
var _useState27 = (0, _react.useState)(false),
|
408
|
+
var _useState27 = (0, _react.useState)(0),
|
391
409
|
_useState28 = _slicedToArray(_useState27, 2),
|
392
|
-
|
393
|
-
|
394
|
-
//
|
395
|
-
var _useState29 = (0, _react.useState)(
|
410
|
+
headerHeight = _useState28[0],
|
411
|
+
setHeaderHeight = _useState28[1];
|
412
|
+
// 全屏显示 className
|
413
|
+
var _useState29 = (0, _react.useState)(false),
|
396
414
|
_useState30 = _slicedToArray(_useState29, 2),
|
397
|
-
|
398
|
-
|
415
|
+
fullscreenState = _useState30[0],
|
416
|
+
setFullscreenState = _useState30[1];
|
417
|
+
// 切换视角
|
418
|
+
var _useState31 = (0, _react.useState)(defaultView !== null && defaultView !== void 0 ? defaultView : 'table'),
|
419
|
+
_useState32 = _slicedToArray(_useState31, 2),
|
420
|
+
switchViewState = _useState32[0],
|
421
|
+
setSwitchViewState = _useState32[1];
|
399
422
|
// 切换全屏搜索开关
|
400
423
|
var filterEnableRef = (0, _react.useRef)({
|
401
424
|
fullscreen: false,
|
@@ -403,8 +426,8 @@ var ProTable = function ProTable(props) {
|
|
403
426
|
});
|
404
427
|
// 全局状态 : 大数据截断
|
405
428
|
var globalUseMaxData = (0, _react.useMemo)(function () {
|
406
|
-
var
|
407
|
-
return (
|
429
|
+
var _getGlobalConfig3;
|
430
|
+
return (_getGlobalConfig3 = (0, _utils.getGlobalConfig)('ProTable')) === null || _getGlobalConfig3 === void 0 ? void 0 : _getGlobalConfig3.useMaxData;
|
408
431
|
}, []);
|
409
432
|
// 非全屏状态下的
|
410
433
|
var normalDataFilterFormRef = (0, _react.useRef)();
|
@@ -415,10 +438,10 @@ var ProTable = function ProTable(props) {
|
|
415
438
|
var dataFilterFormRef = !fullscreenState ? normalDataFilterFormRef : fullscreenDataFilterFormRef;
|
416
439
|
// let dataFilterForm = dataFilterFormRef.current;
|
417
440
|
// 整个内容区是否超过一屏。用于表格在非全屏模式下的吸底
|
418
|
-
var
|
419
|
-
|
420
|
-
footerSuctionState =
|
421
|
-
setFooterSuctionState =
|
441
|
+
var _useState33 = (0, _react.useState)(false),
|
442
|
+
_useState34 = _slicedToArray(_useState33, 2),
|
443
|
+
footerSuctionState = _useState34[0],
|
444
|
+
setFooterSuctionState = _useState34[1];
|
422
445
|
// TODO 获取内容区是否超出一屏(暂时仅支持全家桶)
|
423
446
|
var getFooterSuctionState = function getFooterSuctionState() {
|
424
447
|
if (!footerSuction) {
|
@@ -569,6 +592,9 @@ var ProTable = function ProTable(props) {
|
|
569
592
|
setFullscreenState(state);
|
570
593
|
getHeaderHeight(state);
|
571
594
|
actionRef === null || actionRef === void 0 ? void 0 : (_actionRef$current2 = actionRef.current) === null || _actionRef$current2 === void 0 ? void 0 : (_actionRef$current2$s = _actionRef$current2.setState) === null || _actionRef$current2$s === void 0 ? void 0 : _actionRef$current2$s.call(_actionRef$current2, 'fullScreenState', state);
|
595
|
+
if (autoWidth) {
|
596
|
+
reGenFilteredColumnsByAutoWidth();
|
597
|
+
}
|
572
598
|
return state;
|
573
599
|
},
|
574
600
|
setColumn: function setColumn(newColumns) {
|
@@ -580,10 +606,16 @@ var ProTable = function ProTable(props) {
|
|
580
606
|
if (update) {
|
581
607
|
(0, _utils2.emit)('refreshFilterState', newColumns);
|
582
608
|
}
|
609
|
+
if (autoWidth) {
|
610
|
+
reGenFilteredColumnsByAutoWidth(columns);
|
611
|
+
}
|
583
612
|
},
|
584
613
|
size: size,
|
585
614
|
setSize: function setSize(mode) {
|
586
615
|
_setSize(mode);
|
616
|
+
if (autoWidth) {
|
617
|
+
reGenFilteredColumnsByAutoWidth();
|
618
|
+
}
|
587
619
|
},
|
588
620
|
refresh: function refresh(params) {
|
589
621
|
// card视角的刷新等于重新请求
|
@@ -647,6 +679,9 @@ var ProTable = function ProTable(props) {
|
|
647
679
|
filterEnableRef: filterEnableRef,
|
648
680
|
setData: function setData(data) {
|
649
681
|
_setData(data);
|
682
|
+
if (autoWidth) {
|
683
|
+
reGenFilteredColumnsByAutoWidth();
|
684
|
+
}
|
650
685
|
},
|
651
686
|
resetTableMaxBodyHeight: function resetTableMaxBodyHeight(offset) {
|
652
687
|
getHeaderHeight(fullscreenState, offset);
|
@@ -693,6 +728,21 @@ var ProTable = function ProTable(props) {
|
|
693
728
|
if (propsActionRef) {
|
694
729
|
propsActionRef.current = actionRef.current;
|
695
730
|
}
|
731
|
+
function reGenFilteredColumnsByAutoWidth(columns) {
|
732
|
+
if (!autoWidth) {
|
733
|
+
return;
|
734
|
+
}
|
735
|
+
setShowShadowContainer(true);
|
736
|
+
var authWidthedColumns = (0, _genAutoWidthColumns.genAutoWidthColumns)(columns !== null && columns !== void 0 ? columns : filteredColumns, shadowContainerRef, data, size, useRowSelection, shadowActionColumnContainerRef);
|
737
|
+
setFilteredColumns(authWidthedColumns);
|
738
|
+
// 移除 shadow dom
|
739
|
+
// setTimeout(() => {
|
740
|
+
// if (document.querySelector('.teamix-pro-table-shadow-container')) {
|
741
|
+
// document.querySelector('.teamix-pro-table-shadow-container')?.remove();
|
742
|
+
// }
|
743
|
+
// }, 0);
|
744
|
+
}
|
745
|
+
|
696
746
|
function onFormatResult(next) {
|
697
747
|
props.onFormatResult && props.onFormatResult(next);
|
698
748
|
// 如果开启了 autoRedirect 当当前页数不为1,并且data为空的时候,重定向到第一页
|
@@ -732,6 +782,9 @@ var ProTable = function ProTable(props) {
|
|
732
782
|
setTotal(total + (next.total || ((_next$data3 = next.data) === null || _next$data3 === void 0 ? void 0 : _next$data3.length)));
|
733
783
|
}
|
734
784
|
setShowSkeleton(false);
|
785
|
+
if (autoWidth) {
|
786
|
+
reGenFilteredColumnsByAutoWidth();
|
787
|
+
}
|
735
788
|
}
|
736
789
|
// 请求表格数据工具函数
|
737
790
|
var getData = (0, _utils.useRequest)(function (params) {
|
@@ -878,6 +931,9 @@ var ProTable = function ProTable(props) {
|
|
878
931
|
_setData([].concat(_toConsumableArray(data), _toConsumableArray(dataRes || [])));
|
879
932
|
setTotal(total + (totalRes || (dataRes === null || dataRes === void 0 ? void 0 : dataRes.length)));
|
880
933
|
}
|
934
|
+
if (autoWidth) {
|
935
|
+
reGenFilteredColumnsByAutoWidth();
|
936
|
+
}
|
881
937
|
setShowSkeleton(false);
|
882
938
|
setCustomTableLoading(false);
|
883
939
|
}
|
@@ -899,7 +955,7 @@ var ProTable = function ProTable(props) {
|
|
899
955
|
if (Number.isInteger(time) && time >= 1000) {
|
900
956
|
autoRefreshTimerRef.current = setTimeout(function () {
|
901
957
|
// 自动刷新不显示 loading
|
902
|
-
_request(
|
958
|
+
_request(params, true);
|
903
959
|
}, Number(time));
|
904
960
|
(0, _utils2.emit)('PRO_TABLE_REFRESH_TIMER_FLAG', Number(time));
|
905
961
|
}
|
@@ -1106,6 +1162,7 @@ var ProTable = function ProTable(props) {
|
|
1106
1162
|
var _props$paginationProp3;
|
1107
1163
|
var _ref8 = (_props$paginationProp3 = props === null || props === void 0 ? void 0 : props.paginationProps) !== null && _props$paginationProp3 !== void 0 ? _props$paginationProp3 : {},
|
1108
1164
|
onPaginationPropsChange = _ref8.onChange,
|
1165
|
+
onPageSizeChangeProp = _ref8.onPageSizeChange,
|
1109
1166
|
othersPaginationProps = _objectWithoutProperties(_ref8, _excluded2);
|
1110
1167
|
return /*#__PURE__*/_react.default.createElement("div", {
|
1111
1168
|
className: cls('footer', {
|
@@ -1130,7 +1187,8 @@ var ProTable = function ProTable(props) {
|
|
1130
1187
|
pageSizeSelector: total > (props.pageSize || 10) * 2 ? 'dropdown' : false,
|
1131
1188
|
type: total / pageSize <= 2 ? 'simple' : 'normal',
|
1132
1189
|
onPageSizeChange: function onPageSizeChange(number) {
|
1133
|
-
|
1190
|
+
onChangePaginationSize(number);
|
1191
|
+
onPageSizeChangeProp === null || onPageSizeChangeProp === void 0 ? void 0 : onPageSizeChangeProp(number);
|
1134
1192
|
},
|
1135
1193
|
useMaxData: globalUseMaxData !== null && globalUseMaxData !== void 0 ? globalUseMaxData : useMaxData
|
1136
1194
|
}, othersPaginationProps)))));
|
@@ -1168,7 +1226,11 @@ var ProTable = function ProTable(props) {
|
|
1168
1226
|
// 'footer-suction': footerSuctionState && footerSuction,
|
1169
1227
|
}),
|
1170
1228
|
ref: tableRef
|
1171
|
-
},
|
1229
|
+
}, showShadowContainer && (0, _genAutoWidthColumns.shadowContainer)({
|
1230
|
+
columns: filteredColumns,
|
1231
|
+
data: data,
|
1232
|
+
shadowContainerRef: shadowContainerRef
|
1233
|
+
}), hasActionColumn && (0, _genAutoWidthColumns.shadowActionColumnContainer)(filteredColumns, shadowActionColumnContainerRef), renderTable(isFullScreen), fixFooterState && /*#__PURE__*/_react.default.createElement(_pageContainer.default.FixedFooter, null, renderFooter()), !fixFooterState && renderFooter());
|
1172
1234
|
});
|
1173
1235
|
};
|
1174
1236
|
var _default = ProTable;
|
package/lib/table/index.scss
CHANGED
@@ -78,6 +78,32 @@ $fullscreenPadding: 24px;
|
|
78
78
|
transition: all 0.1s;
|
79
79
|
}
|
80
80
|
}
|
81
|
+
&-shadow-container {
|
82
|
+
overflow: hidden;
|
83
|
+
position: absolute;
|
84
|
+
right: 0;
|
85
|
+
left: 0;
|
86
|
+
top: 0;
|
87
|
+
visibility: hidden;
|
88
|
+
pointer-events: none;
|
89
|
+
}
|
90
|
+
&-shadow-container-columns {
|
91
|
+
display: flex;
|
92
|
+
>* {
|
93
|
+
flex-shrink: 0;
|
94
|
+
}
|
95
|
+
}
|
96
|
+
&-action-column-shadow-container {
|
97
|
+
overflow: hidden;
|
98
|
+
position: absolute;
|
99
|
+
right: 0;
|
100
|
+
left: 0;
|
101
|
+
top: 0;
|
102
|
+
visibility: hidden;
|
103
|
+
pointer-events: none;
|
104
|
+
display: flex;
|
105
|
+
}
|
106
|
+
|
81
107
|
// sort icon
|
82
108
|
.next-table-sort.next-table-header-icon {
|
83
109
|
line-height: 16px;
|
package/lib/table/typing.d.ts
CHANGED
@@ -13,7 +13,7 @@ import { ProCardProps } from '../card';
|
|
13
13
|
declare type IFieldRenderProps = keyof ProFieldRenderProps;
|
14
14
|
/** 列record函数 */
|
15
15
|
declare type ProTableCellFunProp = (value: any, index: number, record: any, ...others: any) => any;
|
16
|
-
declare type ITableCellRender = {
|
16
|
+
export declare type ITableCellRender = {
|
17
17
|
[key in IFieldRenderProps]?: ProFieldRenderProps[key] | ProTableCellFunProp;
|
18
18
|
} | ((...other: any) => React.ReactNode);
|
19
19
|
declare type TDataService = {
|
@@ -24,6 +24,10 @@ declare type TDataService = {
|
|
24
24
|
};
|
25
25
|
export declare type responsivePaginationType = 'mini' | 'small' | 'simple' | 'normal';
|
26
26
|
export declare type ProTableColumnProps = {
|
27
|
+
/** 自动计算宽度时的被挤占的情况 */
|
28
|
+
shrink?: number;
|
29
|
+
/** 是否自动适应该列宽度 */
|
30
|
+
autoWidth?: boolean;
|
27
31
|
/**
|
28
32
|
* 会在 title 之后展示一个 icon,hover 之后提示一些信息
|
29
33
|
*/
|
@@ -65,6 +69,8 @@ export declare type ProTableColumnProps = {
|
|
65
69
|
} & Omit<ColumnProps, 'filters' | 'dataIndex' | 'filtersMode' | 'children'>;
|
66
70
|
export declare type ProColumnProps = ProTableColumnProps;
|
67
71
|
export declare type ProTableProps = {
|
72
|
+
/** 表格是否自适应宽度 */
|
73
|
+
autoWidth?: boolean;
|
68
74
|
/** ProColums 定义,取代 Table 的 columns */
|
69
75
|
columns: ProTableColumnProps[];
|
70
76
|
/** 请求地址 */
|
@@ -11,3 +11,4 @@ export declare const renderColumnsTitle: (item: ProTableColumnProps, actionRef:
|
|
11
11
|
* 负责单元格的具体渲染
|
12
12
|
*/
|
13
13
|
export declare const renderCell: (value: any, item: ProTableColumnProps, index: number, record: any, actionRef: React.MutableRefObject<ProTableActionType | undefined>, context?: any, dataTeamixSpm?: string) => JSX.Element;
|
14
|
+
export declare const renderCellSmartWidth: (value: any, item: ProTableColumnProps, index: number, record: any) => 0 | import("@teamix/pro-field/lib/autoWidth/typing").ProFieldAutoWidthPropsItem;
|
@@ -4,12 +4,13 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
5
5
|
value: true
|
6
6
|
});
|
7
|
-
exports.renderColumnsTitle = exports.renderCell = void 0;
|
7
|
+
exports.renderColumnsTitle = exports.renderCellSmartWidth = exports.renderCell = void 0;
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
9
9
|
var _utils = require("@teamix/utils");
|
10
10
|
var _actions = require("../../actions");
|
11
11
|
var _field = _interopRequireWildcard(require("../../field"));
|
12
12
|
var _Filter = _interopRequireDefault(require("../components/Filter"));
|
13
|
+
var _proField = require("@teamix/pro-field");
|
13
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
14
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
15
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -191,9 +192,49 @@ dataTeamixSpm) {
|
|
191
192
|
value: value,
|
192
193
|
render: newRender,
|
193
194
|
dataSource: newDataSource,
|
194
|
-
format: format
|
195
|
+
format: format,
|
196
|
+
proFieldWidthType: valueType
|
195
197
|
}, props));
|
196
198
|
};
|
199
|
+
exports.renderCell = renderCell;
|
200
|
+
var renderCellSmartWidth = function renderCellSmartWidth(value, item, index, record) {
|
201
|
+
var _item$valueType2 = item.valueType,
|
202
|
+
valueType = _item$valueType2 === void 0 ? 'text' : _item$valueType2,
|
203
|
+
render = item.render;
|
204
|
+
var newRender = null;
|
205
|
+
var newDataSource = null;
|
206
|
+
var props = item.props;
|
207
|
+
// 如果 render 直接传函数
|
208
|
+
if (typeof render === 'function') {
|
209
|
+
newRender = function newRender() {
|
210
|
+
return render === null || render === void 0 ? void 0 : render(value, index, record);
|
211
|
+
};
|
212
|
+
} else {
|
213
|
+
newRender = processBuriedPoint(processRenderFunction(render, value, index, record), record, value, index);
|
214
|
+
if (valueType === 'selectGroup') {
|
215
|
+
newRender = _objectSpread(_objectSpread({
|
216
|
+
maxShowNumber: 'auto',
|
217
|
+
foldText: 'more',
|
218
|
+
editOnClick: function editOnClick() {},
|
219
|
+
edit: true
|
220
|
+
}, newRender), {}, {
|
221
|
+
ellipsis: false
|
222
|
+
});
|
223
|
+
props = _objectSpread({
|
224
|
+
valueAlias: {
|
225
|
+
value: 'TagValue',
|
226
|
+
key: 'TagKey'
|
227
|
+
}
|
228
|
+
}, props);
|
229
|
+
}
|
230
|
+
if ((render === null || render === void 0 ? void 0 : render.type) === 'step') {
|
231
|
+
newRender = _objectSpread(_objectSpread({}, newRender), {}, {
|
232
|
+
ellipsis: false
|
233
|
+
});
|
234
|
+
}
|
235
|
+
}
|
236
|
+
return (0, _proField.getProFieldWidth)(valueType, newRender);
|
237
|
+
};
|
197
238
|
/**
|
198
239
|
* 处理 render 配置项是函数的情况
|
199
240
|
* @param render ProFieldRender
|
@@ -202,7 +243,7 @@ dataTeamixSpm) {
|
|
202
243
|
* @param record table cell record
|
203
244
|
* @returns
|
204
245
|
*/
|
205
|
-
exports.
|
246
|
+
exports.renderCellSmartWidth = renderCellSmartWidth;
|
206
247
|
var processRenderFunction = function processRenderFunction() {
|
207
248
|
var render = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
208
249
|
var value = arguments.length > 1 ? arguments[1] : undefined;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { MutableRefObject } from 'react';
|
2
|
+
import { ProTableColumnProps, ITableCellRender } from '../typing';
|
3
|
+
/**
|
4
|
+
* @param fileteredColumns
|
5
|
+
* @param ref
|
6
|
+
* @param data
|
7
|
+
* @returns
|
8
|
+
*/
|
9
|
+
export declare function genAutoWidthColumns(fileteredColumns: ProTableColumnProps[], ref: MutableRefObject<HTMLDivElement | null>, data: any[], size: 'small' | 'medium', useRowSelection?: boolean | undefined, actionColumnRef?: MutableRefObject<HTMLDivElement | null>): ProTableColumnProps[];
|
10
|
+
interface IShadowContainerProps {
|
11
|
+
columns: ProTableColumnProps[];
|
12
|
+
data: any[];
|
13
|
+
shadowContainerRef: MutableRefObject<null>;
|
14
|
+
}
|
15
|
+
export declare const shadowContainer: (props: IShadowContainerProps) => JSX.Element;
|
16
|
+
export declare const shadowActionColumnContainer: (columns: ProTableColumnProps[], shadowActionColumnContainerRef: MutableRefObject<null>) => JSX.Element | undefined;
|
17
|
+
export declare const computeableWidthTypeList: {
|
18
|
+
dateTime: (data: any[], render: ITableCellRender) => any;
|
19
|
+
};
|
20
|
+
export declare const fixedWidthTypeList: {
|
21
|
+
dateWeekRange: number;
|
22
|
+
dateMonthRange: number;
|
23
|
+
dateYearRange: number;
|
24
|
+
dateQuarterRange: number;
|
25
|
+
dateTimeRange: number;
|
26
|
+
time: number;
|
27
|
+
timeRange: number;
|
28
|
+
};
|
29
|
+
export declare const fieldTypeShrink: any;
|
30
|
+
export {};
|