@zat-design/sisyphus-react 3.4.13 → 3.5.0
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/LICENSE +201 -21
- package/dist/index.esm.css +60 -0
- package/dist/less.esm.css +60 -0
- package/es/ProEditTable/components/DndWrapper/index.js +1 -0
- package/es/ProEditTable/index.d.ts +1 -1
- package/es/ProEditTable/index.js +8 -3
- package/es/ProEditTable/propsType.d.ts +1 -0
- package/es/ProForm/components/combination/ProNumberRange/index.js +28 -7
- package/es/ProForm/components/combination/ProNumberRange/propsType.d.ts +1 -2
- package/es/ProForm/utils/valueType.d.ts +0 -6
- package/es/ProForm/utils/valueType.js +30 -2
- package/es/ProLayout/index.js +6 -2
- package/es/ProLayout/propTypes.d.ts +4 -0
- package/es/ProSelect/index.js +52 -45
- package/es/ProSelect/index.less +6 -0
- package/es/ProTable/components/DndWrapper/index.d.ts +15 -0
- package/es/ProTable/components/DndWrapper/index.js +94 -0
- package/es/ProTable/components/index.d.ts +1 -0
- package/es/ProTable/components/index.js +2 -1
- package/es/ProTable/index.d.ts +3 -0
- package/es/ProTable/index.js +177 -74
- package/es/ProTable/propsType.d.ts +5 -1
- package/es/ProTable/style/index.less +90 -0
- package/es/ProTree/utils.d.ts +1 -1
- package/es/ProTree/utils.js +1 -1
- package/es/ProTreeModal/index.js +10 -4
- package/es/ProTreeModal/style/index.less +1 -0
- package/lib/ProEditTable/components/DndWrapper/index.js +1 -0
- package/lib/ProEditTable/index.d.ts +1 -1
- package/lib/ProEditTable/index.js +8 -3
- package/lib/ProEditTable/propsType.d.ts +1 -0
- package/lib/ProForm/components/combination/ProNumberRange/index.js +28 -7
- package/lib/ProForm/components/combination/ProNumberRange/propsType.d.ts +1 -2
- package/lib/ProForm/utils/valueType.d.ts +0 -6
- package/lib/ProForm/utils/valueType.js +30 -2
- package/lib/ProLayout/index.js +6 -2
- package/lib/ProLayout/propTypes.d.ts +4 -0
- package/lib/ProSelect/index.js +54 -45
- package/lib/ProSelect/index.less +6 -0
- package/lib/ProTable/components/DndWrapper/index.d.ts +15 -0
- package/lib/ProTable/components/DndWrapper/index.js +101 -0
- package/lib/ProTable/components/index.d.ts +1 -0
- package/lib/ProTable/components/index.js +15 -1
- package/lib/ProTable/index.d.ts +3 -0
- package/lib/ProTable/index.js +173 -70
- package/lib/ProTable/propsType.d.ts +5 -1
- package/lib/ProTable/style/index.less +90 -0
- package/lib/ProTree/utils.d.ts +1 -1
- package/lib/ProTree/utils.js +1 -1
- package/lib/ProTreeModal/index.js +10 -4
- package/lib/ProTreeModal/style/index.less +1 -0
- package/package.json +1 -1
package/es/ProSelect/index.js
CHANGED
|
@@ -27,7 +27,8 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
27
27
|
var _ref = useProConfig('ProSelect') || {},
|
|
28
28
|
_ref$fieldNames = _ref.fieldNames,
|
|
29
29
|
proSelectFieldNames = _ref$fieldNames === void 0 ? {} : _ref$fieldNames,
|
|
30
|
-
showCodeName = _ref.showCodeName
|
|
30
|
+
showCodeName = _ref.showCodeName,
|
|
31
|
+
gViewportReady = _ref.viewportReady;
|
|
31
32
|
var label = 'label';
|
|
32
33
|
var code = 'value';
|
|
33
34
|
if (proSelectFieldNames && Object.keys(proSelectFieldNames).length) {
|
|
@@ -54,16 +55,16 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
54
55
|
updateDataSource = props.updateDataSource,
|
|
55
56
|
transformResponse = props.transformResponse,
|
|
56
57
|
isViewPro = props.isView,
|
|
57
|
-
|
|
58
|
-
viewportReady = _props$viewportReady === void 0 ? false : _props$viewportReady,
|
|
58
|
+
__viewportReady = props.viewportReady,
|
|
59
59
|
selectProps = _objectWithoutProperties(props, _excluded);
|
|
60
|
+
var viewportReady = __viewportReady || gViewportReady;
|
|
60
61
|
/** 是否在可视区域出现过 */
|
|
61
62
|
var _useState = useState(false),
|
|
62
63
|
_useState2 = _slicedToArray(_useState, 2),
|
|
63
64
|
viewFlag = _useState2[0],
|
|
64
65
|
setViewFlag = _useState2[1];
|
|
65
|
-
var
|
|
66
|
-
var _useInViewport = useInViewport(
|
|
66
|
+
var refSelect1 = useRef();
|
|
67
|
+
var _useInViewport = useInViewport(refSelect1),
|
|
67
68
|
_useInViewport2 = _slicedToArray(_useInViewport, 1),
|
|
68
69
|
inViewport = _useInViewport2[0];
|
|
69
70
|
selectProps.showCodeName = (_selectProps$showCode = selectProps.showCodeName) !== null && _selectProps$showCode !== void 0 ? _selectProps$showCode : showCodeName;
|
|
@@ -299,45 +300,51 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
|
299
300
|
fieldNames: fieldNames
|
|
300
301
|
});
|
|
301
302
|
}
|
|
302
|
-
return _jsx(
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
title: "".concat(item[code], "-").concat(item[label]),
|
|
336
|
-
children:
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
303
|
+
return _jsx("div", {
|
|
304
|
+
ref: refSelect1,
|
|
305
|
+
style: props.style,
|
|
306
|
+
className: "ant-select-compact-item-div",
|
|
307
|
+
children: _jsx(_Select, _objectSpread(_objectSpread({
|
|
308
|
+
// id={refSelect1.current}
|
|
309
|
+
placeholder: locale === null || locale === void 0 ? void 0 : (_locale$ProSelect = locale.ProSelect) === null || _locale$ProSelect === void 0 ? void 0 : _locale$ProSelect.select,
|
|
310
|
+
allowClear: true,
|
|
311
|
+
showArrow: true,
|
|
312
|
+
loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
|
|
313
|
+
onChange: handleChange,
|
|
314
|
+
optionLabelProp: "children" // 解决warning报错,添加默认值
|
|
315
|
+
,
|
|
316
|
+
showSearch: true,
|
|
317
|
+
filterOption: isFunction(_onSearch) ? false : function (input, option) {
|
|
318
|
+
var _option$children, _option$children$prop;
|
|
319
|
+
var value = isString(option === null || option === void 0 ? void 0 : option.children) ? option === null || option === void 0 ? void 0 : option.children : option === null || option === void 0 ? void 0 : (_option$children = option.children) === null || _option$children === void 0 ? void 0 : (_option$children$prop = _option$children.props) === null || _option$children$prop === void 0 ? void 0 : _option$children$prop.title;
|
|
320
|
+
return value.toLowerCase().includes(input.toLowerCase());
|
|
321
|
+
},
|
|
322
|
+
onSearch: function onSearch(value) {
|
|
323
|
+
_onSearch && _onSearch(value, _objectSpread({}, fetchFunction));
|
|
324
|
+
},
|
|
325
|
+
getPopupContainer: function getPopupContainer(trigger) {
|
|
326
|
+
return scrollFollowParent ? trigger.parentElement : document.body;
|
|
327
|
+
}
|
|
328
|
+
}, omit(cloneDeep(selectProps), ['isView', 'showCodeName', 'form', 'name', 'style'])), {}, {
|
|
329
|
+
value: transformValue(),
|
|
330
|
+
children: Array.isArray(newSelectList) && newSelectList.map(function (item) {
|
|
331
|
+
return _jsx(Option, {
|
|
332
|
+
value: item[code],
|
|
333
|
+
record: item,
|
|
334
|
+
disabled: !!item.disabled,
|
|
335
|
+
children: _jsx(TooltipOption, {
|
|
336
|
+
title: OptionRender ? OptionRender(item) : selectProps.showCodeName ? "".concat(item[code], "-").concat(item[label]) : item[label],
|
|
337
|
+
children: OptionRender ? _jsx("span", {
|
|
338
|
+
title: OptionRender(item),
|
|
339
|
+
children: OptionRender(item)
|
|
340
|
+
}) : _jsx("span", {
|
|
341
|
+
title: "".concat(item[code], "-").concat(item[label]),
|
|
342
|
+
children: selectProps.showCodeName ? "".concat(item[code], "-").concat(item[label]) : item[label]
|
|
343
|
+
})
|
|
344
|
+
}, item[code])
|
|
345
|
+
}, item[code]);
|
|
346
|
+
})
|
|
347
|
+
}))
|
|
348
|
+
});
|
|
342
349
|
};
|
|
343
350
|
export default /*#__PURE__*/forwardRef(ProSelect);
|
package/es/ProSelect/index.less
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
|
+
interface RowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
3
|
+
'data-row-key': string;
|
|
4
|
+
'data-hide'?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const Row: FC<RowProps>;
|
|
8
|
+
declare const DndWrapper: ({ draggable, value, onChange, disabled, children }: {
|
|
9
|
+
draggable: any;
|
|
10
|
+
value: any;
|
|
11
|
+
onChange: any;
|
|
12
|
+
disabled: any;
|
|
13
|
+
children: any;
|
|
14
|
+
}) => any;
|
|
15
|
+
export default DndWrapper;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["disabled", "children"];
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { DndContext } from '@dnd-kit/core';
|
|
7
|
+
import { arrayMove, useSortable, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';
|
|
8
|
+
import { CSS } from '@dnd-kit/utilities';
|
|
9
|
+
import ProIcon from '../../../ProIcon';
|
|
10
|
+
export var Row = function Row(props) {
|
|
11
|
+
var disabled = props.disabled,
|
|
12
|
+
children = props.children,
|
|
13
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
14
|
+
var data = useSortable({
|
|
15
|
+
id: props['data-row-key'],
|
|
16
|
+
disabled: disabled
|
|
17
|
+
});
|
|
18
|
+
var attributes = data.attributes,
|
|
19
|
+
listeners = data.listeners,
|
|
20
|
+
setNodeRef = data.setNodeRef,
|
|
21
|
+
transform = data.transform,
|
|
22
|
+
transition = data.transition,
|
|
23
|
+
isDragging = data.isDragging;
|
|
24
|
+
var style = _objectSpread(_objectSpread({}, props.style), {}, {
|
|
25
|
+
transform: CSS.Transform.toString(transform && _objectSpread(_objectSpread({}, transform), {}, {
|
|
26
|
+
scaleY: 1
|
|
27
|
+
})),
|
|
28
|
+
transition: transition
|
|
29
|
+
}, isDragging ? {
|
|
30
|
+
position: 'relative',
|
|
31
|
+
zIndex: 2
|
|
32
|
+
} : {});
|
|
33
|
+
return _jsx("tr", _objectSpread(_objectSpread(_objectSpread({}, restProps), {}, {
|
|
34
|
+
ref: setNodeRef,
|
|
35
|
+
style: style
|
|
36
|
+
}, attributes), {}, {
|
|
37
|
+
children: React.Children.map(children, function (child) {
|
|
38
|
+
if (child.key === 'RC_TABLE_KEY') {
|
|
39
|
+
var _ref = (child === null || child === void 0 ? void 0 : child.props) || {},
|
|
40
|
+
render = _ref.render,
|
|
41
|
+
record = _ref.record,
|
|
42
|
+
renderIndex = _ref.renderIndex;
|
|
43
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
44
|
+
children: _jsxs("span", {
|
|
45
|
+
className: "drag-wrapper".concat(props['data-hide'] ? ' no-check' : ''),
|
|
46
|
+
children: [_jsx(ProIcon, _objectSpread({
|
|
47
|
+
className: "drag-icon",
|
|
48
|
+
style: {
|
|
49
|
+
touchAction: 'none',
|
|
50
|
+
cursor: disabled ? 'no-drop' : 'move'
|
|
51
|
+
},
|
|
52
|
+
type: "drag",
|
|
53
|
+
size: 20
|
|
54
|
+
}, listeners)), props['data-hide'] ? null : render === null || render === void 0 ? void 0 : render(null, record, renderIndex)]
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return child;
|
|
59
|
+
})
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
62
|
+
var DndWrapper = function DndWrapper(_ref2) {
|
|
63
|
+
var _value$;
|
|
64
|
+
var draggable = _ref2.draggable,
|
|
65
|
+
value = _ref2.value,
|
|
66
|
+
onChange = _ref2.onChange,
|
|
67
|
+
disabled = _ref2.disabled,
|
|
68
|
+
children = _ref2.children;
|
|
69
|
+
var onDragEnd = function onDragEnd(_ref3) {
|
|
70
|
+
var active = _ref3.active,
|
|
71
|
+
over = _ref3.over;
|
|
72
|
+
if (active.id !== (over === null || over === void 0 ? void 0 : over.id)) {
|
|
73
|
+
var activeIndex = value.findIndex(function (i) {
|
|
74
|
+
return i.rowKey === active.id;
|
|
75
|
+
});
|
|
76
|
+
var overIndex = value.findIndex(function (i) {
|
|
77
|
+
return i.rowKey === (over === null || over === void 0 ? void 0 : over.id);
|
|
78
|
+
});
|
|
79
|
+
var nextValue = arrayMove(value, activeIndex, overIndex);
|
|
80
|
+
onChange(nextValue);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
return draggable && !disabled ? _jsx(DndContext, {
|
|
84
|
+
onDragEnd: onDragEnd,
|
|
85
|
+
children: _jsx(SortableContext, {
|
|
86
|
+
items: (value === null || value === void 0 ? void 0 : (_value$ = value[0]) === null || _value$ === void 0 ? void 0 : _value$.rowKey) ? value.map(function (i) {
|
|
87
|
+
return i.rowKey;
|
|
88
|
+
}) : [],
|
|
89
|
+
strategy: verticalListSortingStrategy,
|
|
90
|
+
children: children
|
|
91
|
+
})
|
|
92
|
+
}) : children;
|
|
93
|
+
};
|
|
94
|
+
export default DndWrapper;
|
package/es/ProTable/index.d.ts
CHANGED
package/es/ProTable/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
2
|
import "antd/es/button/style";
|
|
3
3
|
import _Button from "antd/es/button";
|
|
4
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
5
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
6
|
import "antd/es/table/style";
|
|
5
7
|
import _Table from "antd/es/table";
|
|
6
8
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
@@ -8,18 +10,18 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
8
10
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
9
11
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
10
12
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
11
|
-
var _excluded = ["tableId", "headerRender", "footerRender", "quickConfig", "stripe", "columns", "className", "summary", "emptyText", "originalDataSource"],
|
|
13
|
+
var _excluded = ["tableId", "headerRender", "footerRender", "quickConfig", "stripe", "columns", "className", "draggable", "disabled", "isView", "rowDisabled", "summary", "emptyText", "originalDataSource"],
|
|
12
14
|
_excluded2 = ["resizeColumn", "columnConfig", "cacheTime", "storage"];
|
|
13
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
16
|
import { useEffect, useMemo, useState, createContext } from 'react';
|
|
15
|
-
import { cloneDeep, get, keyBy } from 'lodash';
|
|
16
|
-
import { useDebounceEffect, useDeepCompareEffect } from 'ahooks';
|
|
17
|
+
import { cloneDeep, get, keyBy, assign } from 'lodash';
|
|
18
|
+
import { useDebounceEffect, useDeepCompareEffect, useSetState } from 'ahooks';
|
|
17
19
|
import { ReactSVG } from 'react-svg';
|
|
18
20
|
import classnames from 'classnames';
|
|
19
21
|
import { tools } from '@zat-design/utils';
|
|
20
22
|
import { useProConfig, ProTreeModal } from '../index';
|
|
21
23
|
import { valueTypeRender } from '../ProUtils/utils';
|
|
22
|
-
import { TableResizable, ResizableLine } from './components';
|
|
24
|
+
import { TableResizable, ResizableLine, DndWrapper, Row } from './components';
|
|
23
25
|
import useAntdTable from './useAntdTable';
|
|
24
26
|
import empty from '../assets/empty.png';
|
|
25
27
|
import resetSvg from '../assets/reset.svg';
|
|
@@ -49,6 +51,10 @@ function ProTable(props) {
|
|
|
49
51
|
_props$columns = props.columns,
|
|
50
52
|
propsColumns = _props$columns === void 0 ? [] : _props$columns,
|
|
51
53
|
className = props.className,
|
|
54
|
+
draggable = props.draggable,
|
|
55
|
+
disabled = props.disabled,
|
|
56
|
+
isView = props.isView,
|
|
57
|
+
rowDisabled = props.rowDisabled,
|
|
52
58
|
summary = props.summary,
|
|
53
59
|
_props$emptyText = props.emptyText,
|
|
54
60
|
emptyText = _props$emptyText === void 0 ? locale === null || locale === void 0 ? void 0 : (_locale$ProTable = locale.ProTable) === null || _locale$ProTable === void 0 ? void 0 : _locale$ProTable.noData : _props$emptyText,
|
|
@@ -74,8 +80,24 @@ function ProTable(props) {
|
|
|
74
80
|
pagination = _ref3.pagination,
|
|
75
81
|
dataSource = _ref3.dataSource,
|
|
76
82
|
rowKey = _ref3.rowKey;
|
|
83
|
+
var initDataSource = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (item) {
|
|
84
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
85
|
+
rowKey: item === null || item === void 0 ? void 0 : item[rowKey]
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
var _useSetState = useSetState({
|
|
89
|
+
dataSource: initDataSource
|
|
90
|
+
}),
|
|
91
|
+
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
92
|
+
_dataSource = _useSetState2[0].dataSource,
|
|
93
|
+
setState = _useSetState2[1];
|
|
94
|
+
useDeepCompareEffect(function () {
|
|
95
|
+
setState({
|
|
96
|
+
dataSource: initDataSource
|
|
97
|
+
});
|
|
98
|
+
}, [initDataSource]);
|
|
77
99
|
var originalObj = originalDataSource ? keyBy(originalDataSource, rowKey) : undefined;
|
|
78
|
-
var dataSourceObj =
|
|
100
|
+
var dataSourceObj = _dataSource ? keyBy(_dataSource, rowKey) : {};
|
|
79
101
|
var propsColumnObj = useMemo(function () {
|
|
80
102
|
return propsColumns.reduce(function (acc, cur) {
|
|
81
103
|
// @ts-ignore
|
|
@@ -222,7 +244,7 @@ function ProTable(props) {
|
|
|
222
244
|
var _ref6 = tableProps || {},
|
|
223
245
|
dataSource = _ref6.dataSource;
|
|
224
246
|
// 没有数据时,不展示合计栏
|
|
225
|
-
if (!(
|
|
247
|
+
if (!(_dataSource === null || _dataSource === void 0 ? void 0 : _dataSource.length)) {
|
|
226
248
|
return null;
|
|
227
249
|
}
|
|
228
250
|
return _jsx(_Table.Summary, {
|
|
@@ -243,7 +265,7 @@ function ProTable(props) {
|
|
|
243
265
|
} else if (total && key) {
|
|
244
266
|
var _dataSource$reduce;
|
|
245
267
|
var format = valueTypeRender === null || valueTypeRender === void 0 ? void 0 : valueTypeRender[valueType];
|
|
246
|
-
var sum =
|
|
268
|
+
var sum = _dataSource === null || _dataSource === void 0 ? void 0 : (_dataSource$reduce = _dataSource.reduce) === null || _dataSource$reduce === void 0 ? void 0 : _dataSource$reduce.call(_dataSource, function (pre, cur) {
|
|
247
269
|
var _get;
|
|
248
270
|
return tools.calc(pre, '+', (_get = get(cur, key)) !== null && _get !== void 0 ? _get : 0);
|
|
249
271
|
}, 0);
|
|
@@ -261,91 +283,172 @@ function ProTable(props) {
|
|
|
261
283
|
};
|
|
262
284
|
var cls = classnames(_defineProperty({
|
|
263
285
|
'pro-table': true,
|
|
264
|
-
'pro-table-no-stripe': !stripe
|
|
286
|
+
'pro-table-no-stripe': !stripe,
|
|
287
|
+
'pro-table-draggable-only': draggable && !(tableProps === null || tableProps === void 0 ? void 0 : tableProps.rowSelection)
|
|
265
288
|
}, className, className));
|
|
289
|
+
// 复选框
|
|
290
|
+
var _rowSelection = tableProps.rowSelection ? _objectSpread({
|
|
291
|
+
fixed: draggable,
|
|
292
|
+
getCheckboxProps: function getCheckboxProps(record) {
|
|
293
|
+
if (rowDisabled) {
|
|
294
|
+
var _disabled = rowDisabled(record);
|
|
295
|
+
return {
|
|
296
|
+
disabled: _disabled
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
return {};
|
|
300
|
+
},
|
|
301
|
+
hideSelectAll: disabled || isView
|
|
302
|
+
}, tableProps.rowSelection) : undefined;
|
|
303
|
+
/**
|
|
304
|
+
* 渲染表格选择器
|
|
305
|
+
* @returns rowSelection
|
|
306
|
+
*/
|
|
307
|
+
var renderRowSelection = function renderRowSelection() {
|
|
308
|
+
if (disabled || isView) {
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
if (draggable && !tableProps.rowSelection) {
|
|
312
|
+
return {
|
|
313
|
+
fixed: true,
|
|
314
|
+
hideSelectAll: true,
|
|
315
|
+
renderCell: function renderCell() {
|
|
316
|
+
return _jsx(_Fragment, {});
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
return _rowSelection;
|
|
321
|
+
};
|
|
322
|
+
var onDataSourceChange = /*#__PURE__*/function () {
|
|
323
|
+
var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(nextDataSource) {
|
|
324
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
325
|
+
while (1) switch (_context.prev = _context.next) {
|
|
326
|
+
case 0:
|
|
327
|
+
setState({
|
|
328
|
+
dataSource: nextDataSource
|
|
329
|
+
});
|
|
330
|
+
// 覆盖引用值
|
|
331
|
+
assign(dataSource, nextDataSource);
|
|
332
|
+
case 2:
|
|
333
|
+
case "end":
|
|
334
|
+
return _context.stop();
|
|
335
|
+
}
|
|
336
|
+
}, _callee);
|
|
337
|
+
}));
|
|
338
|
+
return function onDataSourceChange(_x) {
|
|
339
|
+
return _ref8.apply(this, arguments);
|
|
340
|
+
};
|
|
341
|
+
}();
|
|
342
|
+
var renderComponents = function renderComponents() {
|
|
343
|
+
if (draggable) {
|
|
344
|
+
return {
|
|
345
|
+
body: {
|
|
346
|
+
row: Row
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
if (resizeColumn) {
|
|
351
|
+
return TableResizable.components;
|
|
352
|
+
}
|
|
353
|
+
return null;
|
|
354
|
+
};
|
|
266
355
|
return _jsx(TableContext.Provider, {
|
|
267
356
|
value: {
|
|
268
357
|
pathKey: pathKey,
|
|
269
358
|
tableConfig: tableConfig,
|
|
270
359
|
Storage: Storage
|
|
271
360
|
},
|
|
272
|
-
children:
|
|
361
|
+
children: _jsx("div", {
|
|
273
362
|
className: cls,
|
|
274
|
-
children:
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
className: "
|
|
281
|
-
children: [
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
onClick: resetColumnWidth,
|
|
288
|
-
children: locale === null || locale === void 0 ? void 0 : (_locale$ProTable2 = locale.ProTable) === null || _locale$ProTable2 === void 0 ? void 0 : _locale$ProTable2.resetColumnWidth
|
|
289
|
-
}), columnConfig && _jsx(ProTreeModal, {
|
|
290
|
-
title: locale === null || locale === void 0 ? void 0 : (_locale$ProTable3 = locale.ProTable) === null || _locale$ProTable3 === void 0 ? void 0 : _locale$ProTable3.customColumns,
|
|
291
|
-
span: 8,
|
|
292
|
-
mode: "list",
|
|
293
|
-
draggable: true,
|
|
294
|
-
dataSource: customColumns,
|
|
295
|
-
value: checkColumns,
|
|
296
|
-
allValue: "all",
|
|
297
|
-
onChange: handleColumnConfig,
|
|
298
|
-
trigger: _jsx(_Button, {
|
|
299
|
-
className: "custom-column-btn",
|
|
363
|
+
children: _jsxs(DndWrapper, {
|
|
364
|
+
value: _dataSource,
|
|
365
|
+
onChange: onDataSourceChange,
|
|
366
|
+
disabled: false,
|
|
367
|
+
draggable: draggable,
|
|
368
|
+
children: [(headerRender || columnConfig || resizeColumn) && _jsxs("div", {
|
|
369
|
+
className: "column-config",
|
|
370
|
+
children: [_jsx("div", {
|
|
371
|
+
className: "left-contain",
|
|
372
|
+
children: headerRender ? typeof headerRender === 'function' ? headerRender() : headerRender : null
|
|
373
|
+
}), _jsxs("div", {
|
|
374
|
+
className: "right-actions",
|
|
375
|
+
children: [resizeColumn && _jsx(_Button, {
|
|
300
376
|
icon: _jsx(ReactSVG, {
|
|
301
377
|
className: "anticon",
|
|
302
378
|
wrapper: "span",
|
|
303
|
-
src:
|
|
379
|
+
src: resetSvg
|
|
304
380
|
}),
|
|
305
|
-
|
|
306
|
-
|
|
381
|
+
onClick: resetColumnWidth,
|
|
382
|
+
children: locale === null || locale === void 0 ? void 0 : (_locale$ProTable2 = locale.ProTable) === null || _locale$ProTable2 === void 0 ? void 0 : _locale$ProTable2.resetColumnWidth
|
|
383
|
+
}), columnConfig && _jsx(ProTreeModal, {
|
|
384
|
+
title: locale === null || locale === void 0 ? void 0 : (_locale$ProTable3 = locale.ProTable) === null || _locale$ProTable3 === void 0 ? void 0 : _locale$ProTable3.customColumns,
|
|
385
|
+
span: 8,
|
|
386
|
+
mode: "list",
|
|
387
|
+
draggable: true,
|
|
388
|
+
dataSource: customColumns,
|
|
389
|
+
value: checkColumns,
|
|
390
|
+
allValue: "all",
|
|
391
|
+
onChange: handleColumnConfig,
|
|
392
|
+
trigger: _jsx(_Button, {
|
|
393
|
+
className: "custom-column-btn",
|
|
394
|
+
icon: _jsx(ReactSVG, {
|
|
395
|
+
className: "anticon",
|
|
396
|
+
wrapper: "span",
|
|
397
|
+
src: customColumnSvg
|
|
398
|
+
}),
|
|
399
|
+
children: locale === null || locale === void 0 ? void 0 : (_locale$ProTable4 = locale.ProTable) === null || _locale$ProTable4 === void 0 ? void 0 : _locale$ProTable4.customColumns
|
|
400
|
+
})
|
|
401
|
+
})]
|
|
307
402
|
})]
|
|
308
|
-
})
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
403
|
+
}), _jsxs("div", {
|
|
404
|
+
className: "pro-table-container",
|
|
405
|
+
children: [_jsx(_Table, _objectSpread(_objectSpread({
|
|
406
|
+
className: draggable ? 'pro-edit-table-drag' : '',
|
|
407
|
+
// components={resizeColumn ? TableResizable.components : undefined}
|
|
408
|
+
components: renderComponents(),
|
|
409
|
+
// @ts-ignore
|
|
410
|
+
columns: columns,
|
|
411
|
+
locale: {
|
|
412
|
+
emptyText: _jsxs("div", {
|
|
413
|
+
className: "pro-table-empty",
|
|
414
|
+
children: [_jsx("div", {
|
|
415
|
+
className: "empty-image",
|
|
416
|
+
children: _jsx("img", {
|
|
417
|
+
src: empty,
|
|
418
|
+
alt: locale === null || locale === void 0 ? void 0 : (_locale$ProTable5 = locale.ProTable) === null || _locale$ProTable5 === void 0 ? void 0 : _locale$ProTable5.noData
|
|
419
|
+
})
|
|
420
|
+
}), _jsx("div", {
|
|
421
|
+
className: "empty-description",
|
|
422
|
+
children: typeof emptyText === 'function' ? emptyText() : emptyText
|
|
423
|
+
})]
|
|
424
|
+
})
|
|
425
|
+
},
|
|
426
|
+
summary: _typeof(summary) === 'object' ? function () {
|
|
427
|
+
return renderSummary();
|
|
428
|
+
} : summary,
|
|
429
|
+
rowClassName: function rowClassName(record, index) {
|
|
430
|
+
if (originalDataSource && !originalObj.hasOwnProperty(get(record, rowKey))) {
|
|
431
|
+
return 'new-cell';
|
|
432
|
+
}
|
|
336
433
|
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
434
|
+
}, tableProps), {}, {
|
|
435
|
+
dataSource: _dataSource,
|
|
436
|
+
rowSelection: renderRowSelection()
|
|
437
|
+
})), _jsx(ResizableLine, {})]
|
|
438
|
+
}), footerRender ? _jsx("div", {
|
|
439
|
+
className: "pro-table-footer ".concat(pagination && !!(_dataSource === null || _dataSource === void 0 ? void 0 : _dataSource.length) ? 'has-page' : 'no-page'),
|
|
440
|
+
children: typeof footerRender === 'function' ? footerRender() : footerRender
|
|
441
|
+
}) : null]
|
|
442
|
+
})
|
|
343
443
|
})
|
|
344
444
|
});
|
|
345
445
|
}
|
|
346
446
|
ProTable.defaultProps = {
|
|
347
447
|
quickConfig: false,
|
|
348
|
-
stripe: true
|
|
448
|
+
stripe: true,
|
|
449
|
+
draggable: false,
|
|
450
|
+
disabled: false,
|
|
451
|
+
isView: false
|
|
349
452
|
};
|
|
350
453
|
ProTable.useAntdTable = useAntdTable;
|
|
351
454
|
export default ProTable;
|
|
@@ -35,7 +35,7 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
|
|
|
35
35
|
};
|
|
36
36
|
transform?: (value: any, record?: any) => string[];
|
|
37
37
|
}
|
|
38
|
-
export interface ProTableProps extends Omit<TableProps<any>, 'summary' | 'columns'> {
|
|
38
|
+
export interface ProTableProps<T = any> extends Omit<TableProps<any>, 'summary' | 'columns'> {
|
|
39
39
|
tableId?: string;
|
|
40
40
|
rowKey?: string | GetRowKey<any>;
|
|
41
41
|
headerRender?: ReactNode | (() => ReactNode);
|
|
@@ -49,6 +49,10 @@ export interface ProTableProps extends Omit<TableProps<any>, 'summary' | 'column
|
|
|
49
49
|
footerRender?: ReactNode | (() => ReactNode);
|
|
50
50
|
emptyText?: string | ReactNode | (() => ReactNode);
|
|
51
51
|
summary?: ProTableSummaryProps | TableProps<any>['summary'];
|
|
52
|
+
draggable?: boolean;
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
isView?: boolean;
|
|
55
|
+
rowDisabled?: (record?: T) => string | boolean;
|
|
52
56
|
/**
|
|
53
57
|
* 斑马纹设置
|
|
54
58
|
*/
|