@teamix/pro 1.2.17 → 1.2.21

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 (103) hide show
  1. package/dist/212.js +49 -49
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +2173 -744
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/es/actions/base.d.ts +2 -1
  7. package/es/actions/base.js +1 -1
  8. package/es/actions/danger-pop-confirm.d.ts +5 -0
  9. package/es/actions/danger-pop-confirm.js +10 -0
  10. package/es/actions/dialog.d.ts +1 -1
  11. package/es/actions/dialog.js +34 -36
  12. package/es/actions/index.d.ts +3 -0
  13. package/es/actions/index.js +10 -0
  14. package/es/actions/pop-confirm.d.ts +9 -0
  15. package/es/actions/pop-confirm.js +9 -0
  16. package/es/form/Components/LightFilter/componentMap.d.ts +2 -1
  17. package/es/form/Components/LightFilter/componentMap.js +4 -2
  18. package/es/form/Components/LightFilter/index.d.ts +1 -0
  19. package/es/form/Components/LightFilter/index.js +34 -16
  20. package/es/form/Components/LightFilter/index.scss +14 -4
  21. package/es/form/Filter/AdvancedFilter.d.ts +7 -0
  22. package/es/form/Filter/AdvancedFilter.js +113 -0
  23. package/es/form/Filter/LightFilter.d.ts +7 -0
  24. package/es/form/Filter/LightFilter.js +79 -0
  25. package/es/form/Filter/SimpleFilter.d.ts +7 -0
  26. package/es/form/Filter/SimpleFilter.js +74 -0
  27. package/es/form/Filter/index2.js +288 -235
  28. package/es/form/Filter/index2.scss +3 -0
  29. package/es/form/ProForm/index.js +11 -7
  30. package/es/form/ProForm/index.scss +3 -0
  31. package/es/form/ProForm/useFieldRequest.js +1 -8
  32. package/es/form/ProForm/useFormDisplayValues.js +4 -2
  33. package/es/form/SchemaForm/index.js +19 -11
  34. package/es/form/SchemaForm/initializeDataSource.d.ts +2 -2
  35. package/es/form/SchemaForm/initializeDataSource.js +4 -9
  36. package/es/form/SchemaForm/initializeRequest.d.ts +2 -2
  37. package/es/form/SchemaForm/initializeRequest.js +4 -10
  38. package/es/form/SchemaForm/initializeRules.d.ts +7 -1
  39. package/es/form/SchemaForm/initializeRules.js +9 -13
  40. package/es/form/SchemaForm/reactions.d.ts +5 -5
  41. package/es/form/SchemaForm/reactions.js +27 -29
  42. package/es/form/typing.d.ts +11 -2
  43. package/es/form/utils.d.ts +8 -7
  44. package/es/form/utils.js +5 -4
  45. package/es/index.d.ts +1 -1
  46. package/es/index.js +1 -1
  47. package/es/table/components/Filter/index.js +1 -0
  48. package/es/table/components/Pagination/index.d.ts +3 -0
  49. package/es/table/components/Pagination/index.js +82 -0
  50. package/es/table/components/ToolBar/FilterColumnIcon.js +18 -5
  51. package/es/table/components/ToolBar/index.scss +8 -2
  52. package/es/table/index.js +71 -18
  53. package/es/table/index.scss +7 -1
  54. package/es/table/typing.d.ts +5 -0
  55. package/lib/actions/base.d.ts +2 -1
  56. package/lib/actions/base.js +1 -1
  57. package/lib/actions/danger-pop-confirm.d.ts +5 -0
  58. package/lib/actions/danger-pop-confirm.js +22 -0
  59. package/lib/actions/dialog.d.ts +1 -1
  60. package/lib/actions/dialog.js +35 -36
  61. package/lib/actions/index.d.ts +3 -0
  62. package/lib/actions/index.js +12 -0
  63. package/lib/actions/pop-confirm.d.ts +9 -0
  64. package/lib/actions/pop-confirm.js +23 -0
  65. package/lib/form/Components/LightFilter/componentMap.d.ts +2 -1
  66. package/lib/form/Components/LightFilter/componentMap.js +6 -4
  67. package/lib/form/Components/LightFilter/index.d.ts +1 -0
  68. package/lib/form/Components/LightFilter/index.js +31 -14
  69. package/lib/form/Components/LightFilter/index.scss +14 -4
  70. package/lib/form/Filter/AdvancedFilter.d.ts +7 -0
  71. package/lib/form/Filter/AdvancedFilter.js +133 -0
  72. package/lib/form/Filter/LightFilter.d.ts +7 -0
  73. package/lib/form/Filter/LightFilter.js +99 -0
  74. package/lib/form/Filter/SimpleFilter.d.ts +7 -0
  75. package/lib/form/Filter/SimpleFilter.js +93 -0
  76. package/lib/form/Filter/index2.js +291 -234
  77. package/lib/form/Filter/index2.scss +3 -0
  78. package/lib/form/ProForm/index.js +10 -6
  79. package/lib/form/ProForm/index.scss +3 -0
  80. package/lib/form/ProForm/useFieldRequest.js +1 -9
  81. package/lib/form/ProForm/useFormDisplayValues.js +3 -1
  82. package/lib/form/SchemaForm/index.js +19 -10
  83. package/lib/form/SchemaForm/initializeDataSource.d.ts +2 -2
  84. package/lib/form/SchemaForm/initializeDataSource.js +4 -11
  85. package/lib/form/SchemaForm/initializeRequest.d.ts +2 -2
  86. package/lib/form/SchemaForm/initializeRequest.js +4 -11
  87. package/lib/form/SchemaForm/initializeRules.d.ts +7 -1
  88. package/lib/form/SchemaForm/initializeRules.js +9 -16
  89. package/lib/form/SchemaForm/reactions.d.ts +5 -5
  90. package/lib/form/SchemaForm/reactions.js +29 -31
  91. package/lib/form/typing.d.ts +11 -2
  92. package/lib/form/utils.d.ts +8 -7
  93. package/lib/form/utils.js +6 -5
  94. package/lib/index.d.ts +1 -1
  95. package/lib/index.js +1 -1
  96. package/lib/table/components/Pagination/index.d.ts +3 -0
  97. package/lib/table/components/Pagination/index.js +95 -0
  98. package/lib/table/components/ToolBar/FilterColumnIcon.js +18 -5
  99. package/lib/table/components/ToolBar/index.scss +8 -2
  100. package/lib/table/index.js +69 -17
  101. package/lib/table/index.scss +7 -1
  102. package/lib/table/typing.d.ts +5 -0
  103. package/package.json +3 -3
@@ -54,7 +54,8 @@ var processColumns = function processColumns(columns) {
54
54
  var FilterColumnIcon = function FilterColumnIcon(props) {
55
55
  var _props$columns = props.columns,
56
56
  columns = _props$columns === void 0 ? [] : _props$columns,
57
- actionRef = props.actionRef;
57
+ actionRef = props.actionRef,
58
+ filterColumnType = props.filterColumnType;
58
59
 
59
60
  var _useState = useState(true),
60
61
  _useState2 = _slicedToArray(_useState, 2),
@@ -241,7 +242,9 @@ var FilterColumnIcon = function FilterColumnIcon(props) {
241
242
  align: "tr br"
242
243
  }, /*#__PURE__*/React.createElement("div", {
243
244
  className: cls()
244
- }, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(CheckboxItem, {
245
+ }, /*#__PURE__*/React.createElement(Menu, {
246
+ className: cls('all-select')
247
+ }, /*#__PURE__*/React.createElement(CheckboxItem, {
245
248
  indeterminate: indeterminate,
246
249
  checked: allVisible,
247
250
  onChange: onChangeAllColumns
@@ -254,7 +257,9 @@ var FilterColumnIcon = function FilterColumnIcon(props) {
254
257
  type: "primary"
255
258
  }, getMessage('reset'))), /*#__PURE__*/React.createElement(Menu.Divider, {
256
259
  key: "divider"
257
- }), newColumns.map(function (_ref9, index) {
260
+ })), /*#__PURE__*/React.createElement(Menu, {
261
+ className: cls('checkbox-group')
262
+ }, newColumns.map(function (_ref9, index) {
258
263
  var _newColumns$find;
259
264
 
260
265
  var dataIndex = _ref9.dataIndex,
@@ -344,12 +349,20 @@ var FilterColumnIcon = function FilterColumnIcon(props) {
344
349
  },
345
350
  disabled: columnFiltersDisabled
346
351
  }, /*#__PURE__*/React.createElement(Ellipsis, {
347
- tooltip: false
352
+ tooltip: title
348
353
  }, title)));
349
354
  }))));
350
355
  };
351
356
 
352
- if (newColumns.length > 10) {
357
+ if (filterColumnType === 'dialog') {
358
+ return renderDialog();
359
+ }
360
+
361
+ if (filterColumnType === 'dropdown') {
362
+ return renderDropdown();
363
+ }
364
+
365
+ if (newColumns.length >= 20) {
353
366
  return renderDialog();
354
367
  }
355
368
 
@@ -18,8 +18,6 @@
18
18
  // FilterColumn
19
19
  .teamix-pro-table-toolbar-filter-column {
20
20
  min-width: 180px;
21
- max-height: 350px;
22
- overflow: auto;
23
21
  box-shadow: var(--popup-local-shadow, 0px 6px 24px 0px rgba(0, 0, 0, 0.1));
24
22
  background: var(--menu-background);
25
23
  &-reset {
@@ -76,6 +74,14 @@
76
74
  align-items: center;
77
75
  }
78
76
  }
77
+ .teamix-pro-table-toolbar-filter-column-all-select.teamix-pro-table-toolbar-filter-column-all-select {
78
+ padding-bottom: 0;
79
+ }
80
+ .teamix-pro-table-toolbar-filter-column-checkbox-group.teamix-pro-table-toolbar-filter-column-checkbox-group {
81
+ padding-top: 0;
82
+ max-height: 310px;
83
+ overflow: auto;
84
+ }
79
85
 
80
86
  // fullscreen
81
87
  .teamix-pro-table-full-screen {
package/es/table/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestWhenMount", "showPagination", "pageSizeList", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "customRequest"];
1
+ var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestWhenMount", "showPagination", "pageSizeList", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "customRequest", "filterColumnType"];
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
4
 
@@ -33,7 +33,8 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
33
33
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
34
34
 
35
35
  import React, { useState, useEffect, useRef, useMemo } from 'react';
36
- import { Table, Pagination, Checkbox } from '@alicloudfe/components';
36
+ import { Table, Checkbox, Pagination } from '@alicloudfe/components'; // import Pagination from './components/Pagination';
37
+
37
38
  import genProColumnToColumn from './utils/genProColumnToColumn';
38
39
  import { baseClass, useRequest, request as utilResquest, getDeepValue, getMessage, pickProps } from '@teamix/utils';
39
40
  import { ProSkeletonRaw as Skeleton } from '../skeleton';
@@ -59,10 +60,36 @@ var toJS = formilyReactive.toJS;
59
60
  * @returns
60
61
  */
61
62
 
62
- var processColumns = function processColumns(columns) {
63
- return columns.filter(function (item) {
63
+ var processColumns = function processColumns(columns, initialColumns) {
64
+ var filterColumns = columns.filter(function (item) {
64
65
  return item.columnFilters !== false;
65
- });
66
+ }); // 处理只剩一列批量选择的情况下宽度错乱问题
67
+
68
+ if (filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) {
69
+ if ((filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) === 1) {
70
+ var _filterColumns$, _filterColumns$2;
71
+
72
+ if ((_filterColumns$ = filterColumns[0]) === null || _filterColumns$ === void 0 ? void 0 : _filterColumns$.width) {
73
+ delete filterColumns[0].width;
74
+ }
75
+
76
+ if ((_filterColumns$2 = filterColumns[0]) === null || _filterColumns$2 === void 0 ? void 0 : _filterColumns$2.lock) {
77
+ filterColumns[0].lock = false;
78
+ }
79
+ } else {
80
+ var _initialColumns$, _initialColumns$2;
81
+
82
+ if ((_initialColumns$ = initialColumns[0]) === null || _initialColumns$ === void 0 ? void 0 : _initialColumns$.width) {
83
+ filterColumns[0].width = initialColumns[0].width;
84
+ }
85
+
86
+ if ((_initialColumns$2 = initialColumns[0]) === null || _initialColumns$2 === void 0 ? void 0 : _initialColumns$2.lock) {
87
+ filterColumns[0].lock = initialColumns[0].lock;
88
+ }
89
+ }
90
+ }
91
+
92
+ return filterColumns;
66
93
  };
67
94
  /** 默认请求翻页参数 */
68
95
 
@@ -132,6 +159,8 @@ var ProTable = function ProTable(props) {
132
159
  return false;
133
160
  } : _props$autoRefresh,
134
161
  customRequest = props.customRequest,
162
+ _props$filterColumnTy = props.filterColumnType,
163
+ filterColumnType = _props$filterColumnTy === void 0 ? 'auto' : _props$filterColumnTy,
135
164
  otherProps = _objectWithoutProperties(props, _excluded);
136
165
 
137
166
  var targetPageKey = pageKey || globalPageKey;
@@ -163,7 +192,7 @@ var ProTable = function ProTable(props) {
163
192
  sort = _useState10[0],
164
193
  setSort = _useState10[1];
165
194
 
166
- var _useState11 = useState(requestWhenMount && propsShowSkeleton),
195
+ var _useState11 = useState(!propsDataSource && requestWhenMount && propsShowSkeleton),
167
196
  _useState12 = _slicedToArray(_useState11, 2),
168
197
  showSkeleton = _useState12[0],
169
198
  setShowSkeleton = _useState12[1]; // 首次加载,渲染骨架屏
@@ -180,7 +209,7 @@ var ProTable = function ProTable(props) {
180
209
  var tableRef = useRef(null);
181
210
  var actionRef = useRef(); // 传给 table 的过滤后的 columns
182
211
 
183
- var _useState15 = useState(processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : [])),
212
+ var _useState15 = useState(processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : [], propsColumns)),
184
213
  _useState16 = _slicedToArray(_useState15, 2),
185
214
  filteredColumns = _useState16[0],
186
215
  setFilteredColumns = _useState16[1];
@@ -351,10 +380,16 @@ var ProTable = function ProTable(props) {
351
380
  useEffect(function () {
352
381
  var _actionRef$current, _actionRef$current$se;
353
382
 
354
- var columns = processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : []);
383
+ var columns = processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : [], propsColumns);
355
384
  setFilteredColumns(columns);
356
385
  (_actionRef$current = actionRef.current) === null || _actionRef$current === void 0 ? void 0 : (_actionRef$current$se = _actionRef$current.setState) === null || _actionRef$current$se === void 0 ? void 0 : _actionRef$current$se.call(_actionRef$current, 'filterColumns', columns);
357
- }, [propsColumns]); // 绑定 Actions
386
+ }, [propsColumns]); // dataSource 受控
387
+
388
+ useEffect(function () {
389
+ if (propsDataSource) {
390
+ setData(propsDataSource);
391
+ }
392
+ }, [propsDataSource]); // 绑定 Actions
358
393
 
359
394
  useActionType(actionRef, {
360
395
  fullScreen: function fullScreen() {
@@ -369,7 +404,7 @@ var ProTable = function ProTable(props) {
369
404
  setColumn: function setColumn(newColumns) {
370
405
  var _actionRef$current2, _actionRef$current2$s;
371
406
 
372
- var columns = processColumns(newColumns);
407
+ var columns = processColumns(newColumns, propsColumns);
373
408
  setFilteredColumns(columns);
374
409
  (_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, 'filterColumns', columns);
375
410
  },
@@ -381,6 +416,15 @@ var ProTable = function ProTable(props) {
381
416
  },
382
417
  request: function request(params) {
383
418
  if (dataFilterForm.validate()) {
419
+ // 如果请求中还有翻页相关信息,需要自动设置到指定页
420
+ if (params === null || params === void 0 ? void 0 : params[targetPageKey]) {
421
+ setCurrentPage(params[targetPageKey]);
422
+ }
423
+
424
+ if (params === null || params === void 0 ? void 0 : params[targetPageSizeKey]) {
425
+ setPageSize(params[targetPageSizeKey]);
426
+ }
427
+
384
428
  _request(params);
385
429
  }
386
430
  },
@@ -411,6 +455,7 @@ var ProTable = function ProTable(props) {
411
455
  targetPageSizeKey: targetPageSizeKey,
412
456
  pageSize: pageSize
413
457
  },
458
+ data: data,
414
459
  dataFilterForm: dataFilterForm,
415
460
  resetTableMaxBodyHeight: function resetTableMaxBodyHeight() {
416
461
  getHeaderHeight().then(function (height) {
@@ -609,10 +654,11 @@ var ProTable = function ProTable(props) {
609
654
  (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onFilter) && (propsDataFilter === null || propsDataFilter === void 0 ? void 0 : propsDataFilter.onFilter(_objectSpread({}, toJS(dataFilterForm.values))));
610
655
 
611
656
  if (dataFilterForm.validate()) {
612
- setCurrentPage(1); // const { mode, schema } = propsDataFilter as ProTableDataFilterProps;
613
- // TODO: 针对 inline 模式下的 search 组件做一下处理,如果空值切换下拉的时候不触发请求
614
- // if (mode === 'inline') {
615
- // }
657
+ var _actionRef$current6, _actionRef$current6$c;
658
+
659
+ // 搜索变化时,暂时先清空选择
660
+ (_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);
661
+ setCurrentPage(1);
616
662
 
617
663
  _request(_defineProperty({}, targetPageKey, 1));
618
664
  }
@@ -647,7 +693,8 @@ var ProTable = function ProTable(props) {
647
693
  columns: propsColumns,
648
694
  dataFilter: dataFilter,
649
695
  dataFilterForm: dataFilterForm,
650
- rowSelection: rowSelection
696
+ rowSelection: rowSelection,
697
+ filterColumnType: filterColumnType
651
698
  }), /*#__PURE__*/React.createElement(Table.StickyLock, _objectSpread({
652
699
  hasBorder: false,
653
700
  dataSource: showSkeleton ? skeletonDataSource : data || props.dataSource,
@@ -705,15 +752,21 @@ var ProTable = function ProTable(props) {
705
752
 
706
753
  var renderFooter = function renderFooter() {
707
754
  function onChangePagination(currentPage) {
755
+ var _actionRef$current7, _actionRef$current7$c;
756
+
708
757
  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
758
+ // 翻页暂时先清空选择
759
+ (_actionRef$current7 = actionRef.current) === null || _actionRef$current7 === void 0 ? void 0 : (_actionRef$current7$c = _actionRef$current7.clearRowSelection) === null || _actionRef$current7$c === void 0 ? void 0 : _actionRef$current7$c.call(_actionRef$current7);
709
760
  setCurrentPage(currentPage);
710
761
 
711
762
  _request(_objectSpread(_defineProperty({}, targetPageKey, currentPage), params));
712
763
  }
713
764
 
714
765
  function onChangePaginationSize(currentPageSize) {
715
- var _request5;
766
+ var _actionRef$current8, _actionRef$current8$c, _request5;
716
767
 
768
+ // 翻页暂时先清空选择
769
+ (_actionRef$current8 = actionRef.current) === null || _actionRef$current8 === void 0 ? void 0 : (_actionRef$current8$c = _actionRef$current8.clearRowSelection) === null || _actionRef$current8$c === void 0 ? void 0 : _actionRef$current8$c.call(_actionRef$current8);
717
770
  setPageSize(currentPageSize);
718
771
  setCurrentPage(1);
719
772
 
@@ -753,6 +806,8 @@ var ProTable = function ProTable(props) {
753
806
  return onChangePagination(number);
754
807
  },
755
808
  total: total,
809
+ shape: "arrow-only",
810
+ pageSizePosition: "end",
756
811
  totalRender: function totalRender(total) {
757
812
  return getMessage('total', {
758
813
  total: total
@@ -760,10 +815,8 @@ var ProTable = function ProTable(props) {
760
815
  },
761
816
  pageSize: pageSize,
762
817
  current: currentPage,
763
- shape: "arrow-only",
764
818
  pageSizeList: pageSizeList,
765
819
  pageSizeSelector: total > (props.pageSize || 10) * 2 ? 'dropdown' : false,
766
- pageSizePosition: "end",
767
820
  type: total / pageSize <= 2 ? 'simple' : 'normal',
768
821
  onPageSizeChange: function onPageSizeChange(number) {
769
822
  return onChangePaginationSize(number);
@@ -32,12 +32,18 @@ $fullscreenPadding: 24px;
32
32
  }
33
33
  &-footer-left-wrapper {
34
34
  display: flex;
35
- flex: 1;
35
+ flex-shrink: 0;
36
36
  align-items: center;
37
37
  }
38
38
  &-footer-right-wrapper {
39
39
  display: flex;
40
40
  justify-content: flex-end;
41
+ width: 100%;
42
+ }
43
+ .pagination-wrapper {
44
+ display: flex;
45
+ justify-content: flex-end;
46
+ width: 100%;
41
47
  }
42
48
  &-footer-action {
43
49
  margin-left: 16px;
@@ -129,6 +129,7 @@ export declare type rowSelectionType = {
129
129
  onSelect?: (selected: boolean, record: any, records: Array<any>) => void;
130
130
  onSelectAll?: (selected: boolean, records: Array<any>) => void;
131
131
  selectedRowKeys?: Array<any>;
132
+ selectedRecords?: any[];
132
133
  mode?: 'single' | 'multiple';
133
134
  titleProps?: () => any;
134
135
  columnProps?: () => any;
@@ -177,6 +178,8 @@ export declare type ProTableActionType = {
177
178
  resetPage?: () => void;
178
179
  /** 获取数据过滤区表单实例 */
179
180
  dataFilterForm?: FormType;
181
+ /** 表格当前的数据 */
182
+ data?: any[];
180
183
  } & ProTableActionTypeMutations;
181
184
  /** action State 定义 */
182
185
  export declare type ProTableActionTypeMutations = {
@@ -232,6 +235,8 @@ export declare type ProTableTopAreaProps = {
232
235
  dataFilter?: ProTableDataFilterProps;
233
236
  /** 数据过滤区 form 表单模型 */
234
237
  dataFilterForm?: FormType;
238
+ /** 排序、筛选列展示状态 */
239
+ filterColumnType?: 'dialog' | 'dropdown' | 'auto';
235
240
  };
236
241
  /** 单个工具栏 */
237
242
  export declare type ProTableToolBarItem = React.ReactNode | 'refresh' | 'density' | 'filterColumn' | 'fullscreen';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MaybePromise } from '@teamix/utils';
2
3
  export interface BaseAction {
3
4
  /** 事件触发方式,默认是 onClick */
@@ -17,7 +18,7 @@ export interface BaseAction {
17
18
  /** 事件开始执行完毕的回调函数 */
18
19
  onFinish?: (params?: any) => any;
19
20
  }
20
- export declare function eventHandler(action: BaseAction, actionContext: any, onTrigger: (context: any) => void): {
21
+ export declare function eventHandler(action: BaseAction, actionContext: any, onTrigger: (context: any, e: React.MouseEvent<HTMLElement>) => void): {
21
22
  [x: string]: (e: React.MouseEvent<HTMLElement>) => Promise<void>;
22
23
  };
23
24
  export default eventHandler;
@@ -65,7 +65,7 @@ function eventHandler(action, actionContext, onTrigger) {
65
65
  return _context.abrupt("return");
66
66
 
67
67
  case 14:
68
- onTrigger(Object.assign({}, beforeActionContext, actionContext));
68
+ onTrigger(Object.assign({}, beforeActionContext, actionContext), e);
69
69
  (_action$onTrigger = action.onTrigger) === null || _action$onTrigger === void 0 ? void 0 : _action$onTrigger.call(action);
70
70
 
71
71
  case 16:
@@ -0,0 +1,5 @@
1
+ import { PopConfirmAction } from './pop-confirm';
2
+ export declare function useDangerPopConfirmAction(action: PopConfirmAction, context?: any): {
3
+ [x: string]: (e: import("react").MouseEvent<HTMLElement, MouseEvent>) => Promise<void>;
4
+ };
5
+ export default useDangerPopConfirmAction;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.useDangerPopConfirmAction = useDangerPopConfirmAction;
8
+
9
+ var _utils = require("@teamix/utils");
10
+
11
+ var _dialog = require("./dialog");
12
+
13
+ function useDangerPopConfirmAction(action, context) {
14
+ return (0, _dialog.useDialogAction)((0, _utils.deepMerge)({
15
+ dialogType: 'pop',
16
+ popType: 'danger',
17
+ align: 'br'
18
+ }, action), context);
19
+ }
20
+
21
+ var _default = useDangerPopConfirmAction;
22
+ exports.default = _default;
@@ -8,7 +8,7 @@ export interface DialogAction extends Omit<RequestAction, 'url'>, Omit<QuickShow
8
8
  /** 点击「确认按钮」后的数据请求地址,非必填,不填就不发请求 */
9
9
  url?: string;
10
10
  /** 弹窗类型,支持普通弹窗和抽屉两种模式,默认为普通弹窗 */
11
- dialogType?: 'dialog' | 'drawer';
11
+ dialogType?: 'dialog' | 'drawer' | 'pop';
12
12
  /** 弹窗快捷调用类型 */
13
13
  dialogQuickShowType?: 'alert' | 'confirm';
14
14
  /** 弹窗消息类型 */
@@ -16,6 +16,8 @@ var _reactRouterDom = require("react-router-dom");
16
16
 
17
17
  var _components = require("@alicloudfe/components");
18
18
 
19
+ var _popConfirm = _interopRequireDefault(require("@teamix/pop-confirm"));
20
+
19
21
  var _utils = require("@teamix/utils");
20
22
 
21
23
  var _form = _interopRequireWildcard(require("../form"));
@@ -29,7 +31,7 @@ var _request = require("./request");
29
31
  var _utils2 = require("./utils");
30
32
 
31
33
  var _excluded = ["url", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError"],
32
- _excluded2 = ["title", "content", "component", "schema", "onFinish", "dialogType", "dialogQuickShowType", "messageType", "beforeRequest", "onTrigger", "link", "beforeContent", "afterContent", "message", "footerDescription", "footerAlign", "className"];
34
+ _excluded2 = ["title", "content", "component", "schema", "onFinish", "dialogType", "dialogQuickShowType", "messageType", "popType", "beforeRequest", "onTrigger", "link", "beforeContent", "afterContent", "message", "footerDescription", "footerAlign", "className"];
33
35
 
34
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
37
 
@@ -102,7 +104,9 @@ function useDialogAction(action, actionContext) {
102
104
  var footerDescriptionRef = (0, _react.useRef)();
103
105
  var history = (0, _reactRouterDom.useHistory)();
104
106
 
105
- var onActionStart = function onActionStart(context) {
107
+ var onActionStart = function onActionStart(context, e) {
108
+ var _objectSpread2;
109
+
106
110
  var url = action.url,
107
111
  method = action.method,
108
112
  params = action.params,
@@ -126,6 +130,7 @@ function useDialogAction(action, actionContext) {
126
130
  dialogQuickShowType = _getTargetValue.dialogQuickShowType,
127
131
  _getTargetValue$messa = _getTargetValue.messageType,
128
132
  messageType = _getTargetValue$messa === void 0 ? 'notice' : _getTargetValue$messa,
133
+ popType = _getTargetValue.popType,
129
134
  beforeRequest = _getTargetValue.beforeRequest,
130
135
  onTrigger = _getTargetValue.onTrigger,
131
136
  link = _getTargetValue.link,
@@ -135,20 +140,25 @@ function useDialogAction(action, actionContext) {
135
140
  footerDescription = _getTargetValue.footerDescription,
136
141
  footerAlign = _getTargetValue.footerAlign,
137
142
  className = _getTargetValue.className,
138
- containerProps = _objectWithoutProperties(_getTargetValue, _excluded2);
143
+ containerOtherProps = _objectWithoutProperties(_getTargetValue, _excluded2);
139
144
 
140
145
  var isDrawer = dialogType === 'drawer';
141
- var container = isDrawer ? _components.Drawer : _components.Dialog;
142
- var dialogOnlyProps = {
146
+ var isPop = dialogType === 'pop';
147
+ var container = isDrawer ? _components.Drawer : isPop ? _popConfirm.default : _components.Dialog;
148
+ var containerProps = isDrawer ? {
149
+ okText: (0, _utils.getMessage)('ok'),
150
+ cancelText: (0, _utils.getMessage)('cancel'),
151
+ closeable: !loading
152
+ } : isPop ? {
153
+ type: popType,
154
+ trigger: e.currentTarget
155
+ } : {
143
156
  type: dialogQuickShowType,
144
157
  messageProps: {
145
158
  type: messageType
146
- }
159
+ },
160
+ closeable: !loading
147
161
  };
148
- var containerOtherProps = isDrawer ? {
149
- okText: (0, _utils.getMessage)('ok'),
150
- cancelText: (0, _utils.getMessage)('cancel')
151
- } : dialogOnlyProps;
152
162
 
153
163
  var renderDialogFooterDescription = function renderDialogFooterDescription(footer) {
154
164
  if (footer instanceof Array || footer.component) {
@@ -177,15 +187,12 @@ function useDialogAction(action, actionContext) {
177
187
  while (1) {
178
188
  switch (_context.prev = _context.next) {
179
189
  case 0:
180
- if (url) {
190
+ if (!link) {
181
191
  _context.next = 5;
182
192
  break;
183
193
  }
184
194
 
185
- if (link) {
186
- (0, _utils.goToLink)(link, history);
187
- }
188
-
195
+ (0, _utils.goToLink)(link, history);
189
196
  onFinish && onFinish();
190
197
  resolve(true);
191
198
  return _context.abrupt("return");
@@ -243,27 +250,19 @@ function useDialogAction(action, actionContext) {
243
250
  key: (0, _utils.uuid)()
244
251
  }, (0, _utils2.addContext)(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
245
252
 
246
- var quickShowProps = _objectSpread(_objectSpread({
247
- // @ts-ignore
248
- onOk: onOk,
249
- title: addContextForReactNode(title, dialogContext),
250
- content: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, beforeContent && /*#__PURE__*/_react.default.createElement("div", {
251
- className: "teamix-pro-dialog-before-content"
252
- }, addContextForReactNode(beforeContent, dialogContext)), message && /*#__PURE__*/_react.default.createElement("div", {
253
- className: "teamix-pro-dialog-message"
254
- }, (0, _message.renderProMessage)(message, {
255
- type: 'notice'
256
- })), dialogContent, afterContent && /*#__PURE__*/_react.default.createElement("div", {
257
- className: "teamix-pro-dialog-after-content"
258
- }, addContextForReactNode(afterContent, dialogContext)), footerDescription && /*#__PURE__*/_react.default.createElement("div", {
259
- className: (0, _classnames.default)('teamix-pro-dialog-footer-description', getFooterAlignClass(isDrawer, footerAlign))
260
- }, renderDialogFooterDescription(footerDescription))),
261
- closeable: !loading,
262
- footerAlign: footerAlign,
263
- className: (0, _classnames.default)('teamix-pro-action-dialog', {
264
- 'has-footer-description': !!footerDescription
265
- })
266
- }, containerOtherProps), containerProps);
253
+ var quickShowProps = _objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, "".concat(isPop ? 'onConfirm' : 'onOk'), onOk), _defineProperty(_objectSpread2, "title", addContextForReactNode(title, dialogContext)), _defineProperty(_objectSpread2, "content", /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, beforeContent && /*#__PURE__*/_react.default.createElement("div", {
254
+ className: "teamix-pro-dialog-before-content"
255
+ }, addContextForReactNode(beforeContent, dialogContext)), message && /*#__PURE__*/_react.default.createElement("div", {
256
+ className: "teamix-pro-dialog-message"
257
+ }, (0, _message.renderProMessage)(message, {
258
+ type: 'notice'
259
+ })), dialogContent, afterContent && /*#__PURE__*/_react.default.createElement("div", {
260
+ className: "teamix-pro-dialog-after-content"
261
+ }, addContextForReactNode(afterContent, dialogContext)), !isPop && footerDescription && /*#__PURE__*/_react.default.createElement("div", {
262
+ className: (0, _classnames.default)('teamix-pro-dialog-footer-description', getFooterAlignClass(isDrawer, footerAlign))
263
+ }, renderDialogFooterDescription(footerDescription)))), _defineProperty(_objectSpread2, "footerAlign", footerAlign), _defineProperty(_objectSpread2, "className", (0, _classnames.default)('teamix-pro-action-dialog', {
264
+ 'has-footer-description': !!footerDescription
265
+ })), _objectSpread2), containerProps), containerOtherProps);
267
266
 
268
267
  var ret = container.show(quickShowProps);
269
268
  store.hide = ret.hide;
@@ -7,6 +7,7 @@ import { DialogAction } from './dialog';
7
7
  import { DialogFormAction } from './dialog-form';
8
8
  import { DialogTableAction } from './dialog-table';
9
9
  import { DialogInfoAction } from './dialog-info';
10
+ import { PopConfirmAction } from './pop-confirm';
10
11
  import './index.scss';
11
12
  export declare type ProActionConfig = ({
12
13
  type: 'dialog-form' | 'drawer-form';
@@ -15,6 +16,8 @@ export declare type ProActionConfig = ({
15
16
  } & DialogTableAction) | ({
16
17
  type: 'dialog-info' | 'drawer-info';
17
18
  } & DialogInfoAction) | ({
19
+ type: 'pop-confirm' | 'danger-pop-confirm';
20
+ } & PopConfirmAction) | ({
18
21
  type: 'dialog' | 'drawer' | 'confirm' | 'danger-confirm' | 'notice' | 'error';
19
22
  } & DialogAction) | ({
20
23
  type: 'request';
@@ -47,6 +47,10 @@ var _drawerTable = require("./drawer-table");
47
47
 
48
48
  var _drawerInfo = require("./drawer-info");
49
49
 
50
+ var _popConfirm = require("./pop-confirm");
51
+
52
+ var _dangerPopConfirm = require("./danger-pop-confirm");
53
+
50
54
  require("./index.scss");
51
55
 
52
56
  var _excluded = ["type"],
@@ -155,6 +159,14 @@ function useAction(config, context) {
155
159
  return (0, _drawerInfo.useDrawerInfoAction)(others, context);
156
160
  }
157
161
 
162
+ if (type === 'pop-confirm') {
163
+ return (0, _popConfirm.usePopConfirmAction)(others, context);
164
+ }
165
+
166
+ if (type === 'danger-pop-confirm') {
167
+ return (0, _dangerPopConfirm.useDangerPopConfirmAction)(others, context);
168
+ }
169
+
158
170
  var registedAction = RegistedActions.get(type);
159
171
 
160
172
  if (!registedAction) {
@@ -0,0 +1,9 @@
1
+ import { IPopConfirmProps } from '@teamix/pop-confirm';
2
+ import { DialogAction } from './dialog';
3
+ export declare type PopConfirmAction = DialogAction & Omit<IPopConfirmProps, 'type' | 'trigger'> & {
4
+ popType?: IPopConfirmProps['type'];
5
+ };
6
+ export declare function usePopConfirmAction(action: PopConfirmAction, context?: any): {
7
+ [x: string]: (e: import("react").MouseEvent<HTMLElement, MouseEvent>) => Promise<void>;
8
+ };
9
+ export default usePopConfirmAction;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.usePopConfirmAction = usePopConfirmAction;
8
+
9
+ var _utils = require("@teamix/utils");
10
+
11
+ var _dialog = _interopRequireDefault(require("./dialog"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ function usePopConfirmAction(action, context) {
16
+ return (0, _dialog.default)((0, _utils.deepMerge)({
17
+ dialogType: 'pop',
18
+ align: 'br'
19
+ }, action), context);
20
+ }
21
+
22
+ var _default = usePopConfirmAction;
23
+ exports.default = _default;
@@ -1,2 +1,3 @@
1
1
  declare const componentMap: any;
2
- export default componentMap;
2
+ declare const inputCategory: any[];
3
+ export { componentMap, inputCategory };
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.inputCategory = exports.componentMap = void 0;
7
7
  var componentMap = {
8
8
  Radio: 'Select',
9
- Checkbox: 'Select'
9
+ Checkbox: 'Select',
10
+ CheckboxGroup: 'MultipleSelect'
10
11
  };
11
- var _default = componentMap;
12
- exports.default = _default;
12
+ exports.componentMap = componentMap;
13
+ var inputCategory = ['Input', 'Password', 'TextArea', 'NumberPicker', 'Percent', 'Money'];
14
+ exports.inputCategory = inputCategory;
@@ -8,6 +8,7 @@ import './index.scss';
8
8
  interface ILightFiter {
9
9
  size?: 'small' | 'medium' | 'large';
10
10
  defaultFilterValue?: string;
11
+ onFilterChange?: (schema?: any) => any;
11
12
  filterProps?: SelectProps;
12
13
  buttonProps?: ButtonProps;
13
14
  }