@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.
Files changed (52) hide show
  1. package/LICENSE +201 -21
  2. package/dist/index.esm.css +60 -0
  3. package/dist/less.esm.css +60 -0
  4. package/es/ProEditTable/components/DndWrapper/index.js +1 -0
  5. package/es/ProEditTable/index.d.ts +1 -1
  6. package/es/ProEditTable/index.js +8 -3
  7. package/es/ProEditTable/propsType.d.ts +1 -0
  8. package/es/ProForm/components/combination/ProNumberRange/index.js +28 -7
  9. package/es/ProForm/components/combination/ProNumberRange/propsType.d.ts +1 -2
  10. package/es/ProForm/utils/valueType.d.ts +0 -6
  11. package/es/ProForm/utils/valueType.js +30 -2
  12. package/es/ProLayout/index.js +6 -2
  13. package/es/ProLayout/propTypes.d.ts +4 -0
  14. package/es/ProSelect/index.js +52 -45
  15. package/es/ProSelect/index.less +6 -0
  16. package/es/ProTable/components/DndWrapper/index.d.ts +15 -0
  17. package/es/ProTable/components/DndWrapper/index.js +94 -0
  18. package/es/ProTable/components/index.d.ts +1 -0
  19. package/es/ProTable/components/index.js +2 -1
  20. package/es/ProTable/index.d.ts +3 -0
  21. package/es/ProTable/index.js +177 -74
  22. package/es/ProTable/propsType.d.ts +5 -1
  23. package/es/ProTable/style/index.less +90 -0
  24. package/es/ProTree/utils.d.ts +1 -1
  25. package/es/ProTree/utils.js +1 -1
  26. package/es/ProTreeModal/index.js +10 -4
  27. package/es/ProTreeModal/style/index.less +1 -0
  28. package/lib/ProEditTable/components/DndWrapper/index.js +1 -0
  29. package/lib/ProEditTable/index.d.ts +1 -1
  30. package/lib/ProEditTable/index.js +8 -3
  31. package/lib/ProEditTable/propsType.d.ts +1 -0
  32. package/lib/ProForm/components/combination/ProNumberRange/index.js +28 -7
  33. package/lib/ProForm/components/combination/ProNumberRange/propsType.d.ts +1 -2
  34. package/lib/ProForm/utils/valueType.d.ts +0 -6
  35. package/lib/ProForm/utils/valueType.js +30 -2
  36. package/lib/ProLayout/index.js +6 -2
  37. package/lib/ProLayout/propTypes.d.ts +4 -0
  38. package/lib/ProSelect/index.js +54 -45
  39. package/lib/ProSelect/index.less +6 -0
  40. package/lib/ProTable/components/DndWrapper/index.d.ts +15 -0
  41. package/lib/ProTable/components/DndWrapper/index.js +101 -0
  42. package/lib/ProTable/components/index.d.ts +1 -0
  43. package/lib/ProTable/components/index.js +15 -1
  44. package/lib/ProTable/index.d.ts +3 -0
  45. package/lib/ProTable/index.js +173 -70
  46. package/lib/ProTable/propsType.d.ts +5 -1
  47. package/lib/ProTable/style/index.less +90 -0
  48. package/lib/ProTree/utils.d.ts +1 -1
  49. package/lib/ProTree/utils.js +1 -1
  50. package/lib/ProTreeModal/index.js +10 -4
  51. package/lib/ProTreeModal/style/index.less +1 -0
  52. package/package.json +1 -1
@@ -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
- _props$viewportReady = props.viewportReady,
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 refSelect = useRef();
66
- var _useInViewport = useInViewport(refSelect),
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(_Select, _objectSpread(_objectSpread({
303
- placeholder: locale === null || locale === void 0 ? void 0 : (_locale$ProSelect = locale.ProSelect) === null || _locale$ProSelect === void 0 ? void 0 : _locale$ProSelect.select,
304
- allowClear: true,
305
- showArrow: true,
306
- loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
307
- onChange: handleChange,
308
- optionLabelProp: "children" // 解决warning报错,添加默认值
309
- ,
310
- showSearch: true,
311
- filterOption: isFunction(_onSearch) ? false : function (input, option) {
312
- var _option$children, _option$children$prop;
313
- 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;
314
- return value.toLowerCase().includes(input.toLowerCase());
315
- },
316
- onSearch: function onSearch(value) {
317
- _onSearch && _onSearch(value, _objectSpread({}, fetchFunction));
318
- },
319
- getPopupContainer: function getPopupContainer(trigger) {
320
- return scrollFollowParent ? trigger.parentElement : document.body;
321
- }
322
- }, omit(cloneDeep(selectProps), ['isView', 'showCodeName', 'form', 'name'])), {}, {
323
- value: transformValue(),
324
- children: Array.isArray(newSelectList) && newSelectList.map(function (item) {
325
- return _jsx(Option, {
326
- value: item[code],
327
- record: item,
328
- disabled: !!item.disabled,
329
- children: _jsx(TooltipOption, {
330
- title: OptionRender ? OptionRender(item) : selectProps.showCodeName ? "".concat(item[code], "-").concat(item[label]) : item[label],
331
- children: OptionRender ? _jsx("span", {
332
- title: OptionRender(item),
333
- children: OptionRender(item)
334
- }) : _jsx("span", {
335
- title: "".concat(item[code], "-").concat(item[label]),
336
- children: selectProps.showCodeName ? "".concat(item[code], "-").concat(item[label]) : item[label]
337
- })
338
- }, item[code])
339
- }, item[code]);
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);
@@ -9,3 +9,9 @@
9
9
  text-overflow: ellipsis;
10
10
  word-break: keep-all;
11
11
  }
12
+ .ant-select-compact-item-div {
13
+ width: 100%;
14
+ >.ant-select {
15
+ width: 100%;
16
+ }
17
+ }
@@ -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;
@@ -1,2 +1,3 @@
1
1
  export { default as ResizableLine } from './ResizableLine';
2
2
  export { default as TableResizable } from './TableResizable';
3
+ export { default as DndWrapper, Row } from './DndWrapper';
@@ -1,2 +1,3 @@
1
1
  export { default as ResizableLine } from './ResizableLine';
2
- export { default as TableResizable } from './TableResizable';
2
+ export { default as TableResizable } from './TableResizable';
3
+ export { default as DndWrapper, Row } from './DndWrapper';
@@ -10,6 +10,9 @@ declare namespace ProTable {
10
10
  var defaultProps: {
11
11
  quickConfig: boolean;
12
12
  stripe: boolean;
13
+ draggable: boolean;
14
+ disabled: boolean;
15
+ isView: boolean;
13
16
  };
14
17
  var useAntdTable: typeof import("./useAntdTable").default;
15
18
  }
@@ -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 = dataSource ? keyBy(dataSource, rowKey) : {};
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 (!(dataSource === null || dataSource === void 0 ? void 0 : dataSource.length)) {
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 = 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) {
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: _jsxs("div", {
361
+ children: _jsx("div", {
273
362
  className: cls,
274
- children: [(headerRender || columnConfig || resizeColumn) && _jsxs("div", {
275
- className: "column-config",
276
- children: [_jsx("div", {
277
- className: "left-contain",
278
- children: headerRender ? typeof headerRender === 'function' ? headerRender() : headerRender : null
279
- }), _jsxs("div", {
280
- className: "right-actions",
281
- children: [resizeColumn && _jsx(_Button, {
282
- icon: _jsx(ReactSVG, {
283
- className: "anticon",
284
- wrapper: "span",
285
- src: resetSvg
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: customColumnSvg
379
+ src: resetSvg
304
380
  }),
305
- children: locale === null || locale === void 0 ? void 0 : (_locale$ProTable4 = locale.ProTable) === null || _locale$ProTable4 === void 0 ? void 0 : _locale$ProTable4.customColumns
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
- }), _jsxs("div", {
310
- className: "pro-table-container",
311
- children: [_jsx(_Table, _objectSpread({
312
- components: resizeColumn ? TableResizable.components : undefined,
313
- // @ts-ignore
314
- columns: columns,
315
- locale: {
316
- emptyText: _jsxs("div", {
317
- className: "pro-table-empty",
318
- children: [_jsx("div", {
319
- className: "empty-image",
320
- children: _jsx("img", {
321
- src: empty,
322
- alt: locale === null || locale === void 0 ? void 0 : (_locale$ProTable5 = locale.ProTable) === null || _locale$ProTable5 === void 0 ? void 0 : _locale$ProTable5.noData
323
- })
324
- }), _jsx("div", {
325
- className: "empty-description",
326
- children: typeof emptyText === 'function' ? emptyText() : emptyText
327
- })]
328
- })
329
- },
330
- summary: _typeof(summary) === 'object' ? function () {
331
- return renderSummary();
332
- } : summary,
333
- rowClassName: function rowClassName(record, index) {
334
- if (originalDataSource && !originalObj.hasOwnProperty(get(record, rowKey))) {
335
- return 'new-cell';
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
- }, tableProps)), _jsx(ResizableLine, {})]
339
- }), footerRender ? _jsx("div", {
340
- className: "pro-table-footer ".concat(pagination && !!(dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) ? 'has-page' : 'no-page'),
341
- children: typeof footerRender === 'function' ? footerRender() : footerRender
342
- }) : null]
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
  */