@teamix/pro 1.1.7 → 1.1.8

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/dist/212.js +2 -2
  2. package/dist/pro.css +1 -1
  3. package/dist/pro.js +1963 -658
  4. package/dist/pro.min.css +1 -1
  5. package/dist/pro.min.js +1 -1
  6. package/es/form/Components/ProField/index.d.ts +8 -0
  7. package/es/form/ProForm/index.js +9 -2
  8. package/es/form/ProForm/index.scss +33 -6
  9. package/es/form/SchemaForm/adapterType.js +2 -0
  10. package/es/form/SchemaForm/index.js +6 -3
  11. package/es/form/SchemaForm/initializeArrayIcon.js +7 -2
  12. package/es/form/SchemaForm/initializeFormButton.js +35 -38
  13. package/es/form/SchemaForm/initializeFormStep.d.ts +3 -1
  14. package/es/form/SchemaForm/initializeFormStep.js +21 -7
  15. package/es/form/SchemaForm/initializeProField.js +2 -0
  16. package/es/form/index.d.ts +2 -1
  17. package/es/form/index.js +2 -1
  18. package/es/form/typing.d.ts +1 -1
  19. package/es/index.d.ts +3 -3
  20. package/es/index.js +3 -3
  21. package/es/nocode/index.scss +1 -4
  22. package/es/page-header/index.d.ts +2 -0
  23. package/es/page-header/index.js +22 -6
  24. package/es/page-header/index.scss +4 -0
  25. package/es/table/components/ToolBar/FilterColumnIcon.js +77 -17
  26. package/es/table/components/ToolBar/index.scss +10 -0
  27. package/es/table/index.js +68 -36
  28. package/es/table/typing.d.ts +3 -1
  29. package/lib/form/Components/ProField/index.d.ts +8 -0
  30. package/lib/form/ProForm/index.js +10 -2
  31. package/lib/form/ProForm/index.scss +33 -6
  32. package/lib/form/SchemaForm/adapterType.js +2 -0
  33. package/lib/form/SchemaForm/index.js +7 -3
  34. package/lib/form/SchemaForm/initializeArrayIcon.js +7 -2
  35. package/lib/form/SchemaForm/initializeFormButton.js +35 -38
  36. package/lib/form/SchemaForm/initializeFormStep.d.ts +3 -1
  37. package/lib/form/SchemaForm/initializeFormStep.js +21 -7
  38. package/lib/form/SchemaForm/initializeProField.js +2 -0
  39. package/lib/form/index.d.ts +2 -1
  40. package/lib/form/index.js +35 -0
  41. package/lib/form/typing.d.ts +1 -1
  42. package/lib/index.d.ts +3 -3
  43. package/lib/index.js +3 -3
  44. package/lib/nocode/index.scss +1 -4
  45. package/lib/page-header/index.d.ts +2 -0
  46. package/lib/page-header/index.js +23 -6
  47. package/lib/page-header/index.scss +4 -0
  48. package/lib/table/components/ToolBar/FilterColumnIcon.js +75 -16
  49. package/lib/table/components/ToolBar/index.scss +10 -0
  50. package/lib/table/index.js +67 -37
  51. package/lib/table/typing.d.ts +3 -1
  52. package/package.json +1 -1
@@ -1,3 +1,5 @@
1
1
  import type { IFormSchemaItem } from '../typing';
2
- declare const initialize: (item: IFormSchemaItem) => IFormSchemaItem;
2
+ declare const initialize: (item: IFormSchemaItem & {
3
+ col?: number;
4
+ }) => IFormSchemaItem;
3
5
  export default initialize;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _excluded = ["props", "children", "title"],
8
- _excluded2 = ["props", "children"];
8
+ _excluded2 = ["col", "style"];
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
11
 
@@ -17,6 +17,13 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
17
17
 
18
18
  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; }
19
19
 
20
+ var getWidth = function getWidth(col, length) {
21
+ var newCol = col !== null && col !== void 0 ? col : (length + 1) * 4;
22
+ newCol = newCol > 24 ? 24 : newCol;
23
+ var width = 100 / 24 * newCol;
24
+ return "".concat(width, "%");
25
+ };
26
+
20
27
  var initializeStepPane = function initializeStepPane(item) {
21
28
  var _item$props = item.props,
22
29
  props = _item$props === void 0 ? {} : _item$props,
@@ -38,17 +45,24 @@ var initialize = function initialize(item) {
38
45
  var _item$props2 = item.props,
39
46
  props = _item$props2 === void 0 ? {} : _item$props2,
40
47
  _item$children2 = item.children,
41
- children = _item$children2 === void 0 ? [] : _item$children2,
42
- otherProps = _objectWithoutProperties(item, _excluded2);
48
+ children = _item$children2 === void 0 ? [] : _item$children2;
43
49
 
44
- return _objectSpread({
50
+ var col = props.col,
51
+ style = props.style,
52
+ otherProps = _objectWithoutProperties(props, _excluded2);
53
+
54
+ var width = getWidth(col, children.length);
55
+ return _objectSpread(_objectSpread({}, item), {}, {
45
56
  props: _objectSpread({
46
- labelPlacement: 'hoz'
47
- }, props),
57
+ labelPlacement: 'hoz',
58
+ style: _objectSpread({
59
+ width: width
60
+ }, style)
61
+ }, otherProps),
48
62
  children: children.map(function (item) {
49
63
  return initializeStepPane(item);
50
64
  })
51
- }, otherProps);
65
+ });
52
66
  };
53
67
 
54
68
  var _default = initialize;
@@ -51,6 +51,8 @@ var proFieldTypeMap = {
51
51
  ColorRadio: 'colorRadio',
52
52
  IconPicker: 'icon',
53
53
  JsonInput: 'json',
54
+ TagPicker: 'tagFilter',
55
+ Range: 'range',
54
56
  Search: 'search' // Upload: 'upload',
55
57
 
56
58
  };
@@ -14,7 +14,8 @@ export * as formilyTeamix from '@teamix/formily';
14
14
  */
15
15
  import { createForm, registerValidateRules as registerRules, registerValidateFormats as registerFormats, registerValidateLocale, setValidateLanguage } from '@formily/core';
16
16
  import { FormConsumer } from '@formily/react';
17
- export { createForm, FormConsumer, registerRules, registerFormats, registerValidateLocale, setValidateLanguage, };
17
+ import { FormDialog, FormDrawer, FormStep, FormTab, FormCollapse } from '@teamix/formily';
18
+ export { createForm, FormConsumer, FormDialog, FormDrawer, FormStep, FormTab, FormCollapse, registerRules, registerFormats, registerValidateLocale, setValidateLanguage, };
18
19
  /**
19
20
  * 导出 Filter 组件
20
21
  */
package/lib/form/index.js CHANGED
@@ -15,6 +15,11 @@ var _exportNames = {
15
15
  FormConsumer: true,
16
16
  formilyReact: true,
17
17
  formilyReactive: true,
18
+ FormDialog: true,
19
+ FormDrawer: true,
20
+ FormStep: true,
21
+ FormTab: true,
22
+ FormCollapse: true,
18
23
  formilyTeamix: true,
19
24
  AdvancedFilter: true,
20
25
  SimpleFilter: true,
@@ -26,12 +31,42 @@ Object.defineProperty(exports, "AdvancedFilter", {
26
31
  return _Filter.AdvancedFilter;
27
32
  }
28
33
  });
34
+ Object.defineProperty(exports, "FormCollapse", {
35
+ enumerable: true,
36
+ get: function get() {
37
+ return _formilyTeamix.FormCollapse;
38
+ }
39
+ });
29
40
  Object.defineProperty(exports, "FormConsumer", {
30
41
  enumerable: true,
31
42
  get: function get() {
32
43
  return _formilyReact.FormConsumer;
33
44
  }
34
45
  });
46
+ Object.defineProperty(exports, "FormDialog", {
47
+ enumerable: true,
48
+ get: function get() {
49
+ return _formilyTeamix.FormDialog;
50
+ }
51
+ });
52
+ Object.defineProperty(exports, "FormDrawer", {
53
+ enumerable: true,
54
+ get: function get() {
55
+ return _formilyTeamix.FormDrawer;
56
+ }
57
+ });
58
+ Object.defineProperty(exports, "FormStep", {
59
+ enumerable: true,
60
+ get: function get() {
61
+ return _formilyTeamix.FormStep;
62
+ }
63
+ });
64
+ Object.defineProperty(exports, "FormTab", {
65
+ enumerable: true,
66
+ get: function get() {
67
+ return _formilyTeamix.FormTab;
68
+ }
69
+ });
35
70
  Object.defineProperty(exports, "QueryFilter", {
36
71
  enumerable: true,
37
72
  get: function get() {
@@ -6,7 +6,7 @@ export interface anyObject {
6
6
  [propName: string]: any;
7
7
  }
8
8
  declare type FieldDisplayTypes = 'none' | 'hidden' | 'visible';
9
- export declare type IBaseComponent = 'Input' | 'Password' | 'TextArea' | 'NumberPicker' | 'Percent' | 'Money' | 'Select' | 'MultipleSelect' | 'TreeSelect' | 'Cascader' | 'MultipleCascader' | 'ArbitraryCascader' | 'Radio' | 'Checkbox' | 'Switch' | 'DatePicker' | 'TimePicker' | 'DateTimePicker' | 'WeekPicker' | 'MonthPicker' | 'YearPicker' | 'QuarterPicker' | 'DateRangePicker' | 'TimeRangePicker' | 'DateTimeRangePicker' | 'WeekRangePicker' | 'MonthRangePicker' | 'YearRangePicker' | 'QuarterRangePicker' | 'Transfer' | 'Upload' | 'ColorPicker' | 'ColorRadio' | 'IconPicker' | 'JsonInput';
9
+ export declare type IBaseComponent = 'Input' | 'Password' | 'TextArea' | 'NumberPicker' | 'Percent' | 'Money' | 'Select' | 'MultipleSelect' | 'TreeSelect' | 'Cascader' | 'MultipleCascader' | 'ArbitraryCascader' | 'Radio' | 'Checkbox' | 'Switch' | 'DatePicker' | 'TimePicker' | 'DateTimePicker' | 'WeekPicker' | 'MonthPicker' | 'YearPicker' | 'QuarterPicker' | 'DateRangePicker' | 'TimeRangePicker' | 'DateTimeRangePicker' | 'WeekRangePicker' | 'MonthRangePicker' | 'YearRangePicker' | 'QuarterRangePicker' | 'Transfer' | 'Upload' | 'ColorPicker' | 'ColorRadio' | 'IconPicker' | 'JsonInput' | 'TagPicker' | 'Range' | 'Search';
10
10
  export declare type IButtonComponent = 'Submit' | 'Reset';
11
11
  export declare type IComboComponent = 'ArrayCards' | 'ArrayCards.Addition' | 'ArrayCards.Remove' | 'ArrayCards.MoveUp' | 'ArrayCards.MoveDown' | 'ArrayCards.Index' | 'ArrayCollapse' | 'ArrayCollapse.CollapsePanel' | 'ArrayCollapse.Addition' | 'ArrayCollapse.Remove' | 'ArrayCollapse.MoveUp' | 'ArrayCollapse.MoveDown' | 'ArrayCollapse.Index' | 'ArrayTable' | 'ArrayTable.Column' | 'ArrayTable.SortHandle' | 'ArrayTable.Addition' | 'ArrayTable.Remove' | 'ArrayTable.MoveDown' | 'ArrayTable.MoveUp' | 'ArrayTable.Index' | 'ArrayItems' | 'ArrayItems.Item' | 'ArrayItems.SortHandle' | 'ArrayItems.Addition' | 'ArrayItems.Remove' | 'ArrayItems.MoveDown' | 'ArrayItems.MoveUp' | 'ArrayItems.Index' | 'Editable' | 'Editable.Popover' | 'Editable.Dialog' | 'Editable.Drawer';
12
12
  export declare type ILayoutComponent = 'FormFlex' | 'FormGrid' | 'FormGroup' | 'FormGroup.GroupPanel' | 'Search' | 'Search.SearchPanel' | 'FormTab' | 'FormTab.TabPane' | 'FormStep' | 'FormStep.StepPane' | 'FormCollapse' | 'FormCollapse.CollapsePanel' | 'FormButtonGroup' | 'FormDialog' | 'FormDrawer' | 'FormDialog.Footer' | 'FormDrawer.Footer';
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import ProAction from './actions';
1
+ import ProActions from './actions';
2
2
  import ProCard from './card';
3
3
  import ProField from './field';
4
4
  import ProForm from './form';
@@ -20,5 +20,5 @@ export * from './page-container';
20
20
  export * from './page-header';
21
21
  export * from './skeleton';
22
22
  export * from './table';
23
- declare const version = "1.1.6";
24
- export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, hooks, nocode, templates, utils, };
23
+ declare const version = "1.1.7";
24
+ export { version, ProActions, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, hooks, nocode, templates, utils, };
package/lib/index.js CHANGED
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  var _exportNames = {
9
9
  version: true,
10
- ProAction: true,
10
+ ProActions: true,
11
11
  ProCard: true,
12
12
  ProField: true,
13
13
  ProForm: true,
@@ -21,7 +21,7 @@ var _exportNames = {
21
21
  nocode: true,
22
22
  templates: true
23
23
  };
24
- Object.defineProperty(exports, "ProAction", {
24
+ Object.defineProperty(exports, "ProActions", {
25
25
  enumerable: true,
26
26
  get: function get() {
27
27
  return _actions.default;
@@ -240,5 +240,5 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
240
240
  // 设置图标源
241
241
  _icon.default.setConfig(_utils.default.getTeamixIconConfig());
242
242
 
243
- var version = '1.1.6';
243
+ var version = '1.1.7';
244
244
  exports.version = version;
@@ -17,13 +17,10 @@
17
17
  border: 1px solid var(--color-line1-1, #eaeaea);
18
18
 
19
19
  &-component {
20
+ position: relative;
20
21
  padding: 20px;
21
22
  flex-grow: 1;
22
23
  border-right: 1px solid var(--color-line1-1, #eaeaea);
23
-
24
- &>.teamix-pro-page-container {
25
- padding: 0;
26
- }
27
24
  }
28
25
 
29
26
  &-configurator {
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { IActionButton } from '../actions';
3
+ import { ProInfoProps } from '../info';
3
4
  import './index.scss';
4
5
  export interface BreadcrumbItem {
5
6
  link?: string;
@@ -38,6 +39,7 @@ export declare type PageHeaderProps = {
38
39
  maxActions?: number;
39
40
  tags?: TagItem[];
40
41
  data?: DataItem[];
42
+ info?: ProInfoProps | React.ReactNode;
41
43
  } & React.HTMLAttributes<HTMLElement>;
42
44
  declare const PageHeader: React.FC<PageHeaderProps>;
43
45
  export default PageHeader;
@@ -21,20 +21,22 @@ var _actions = require("../actions");
21
21
 
22
22
  var _skeleton = require("../skeleton");
23
23
 
24
+ var _info = _interopRequireDefault(require("../info"));
25
+
24
26
  require("./index.scss");
25
27
 
26
- var _excluded = ["title", "description", "icon", "iconColor", "iconBackgroundType", "iconBackgroundColor", "maxActions", "goback", "operation", "extra", "image", "loading", "breadcrumb", "tags", "data", "children", "className", "style"];
28
+ var _excluded = ["title", "description", "icon", "iconColor", "iconBackgroundType", "iconBackgroundColor", "maxActions", "goback", "operation", "extra", "image", "loading", "breadcrumb", "tags", "data", "info", "children", "className", "style"];
27
29
 
28
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
31
 
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
-
34
32
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
35
33
 
36
34
  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; }
37
35
 
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
+
38
40
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
39
41
 
40
42
  var cls = (0, _utils.baseClass)('teamix-pro-page-header');
@@ -158,6 +160,18 @@ var renderData = function renderData(data) {
158
160
  }));
159
161
  };
160
162
 
163
+ var renderInfo = function renderInfo(info) {
164
+ // @ts-ignore
165
+ if (info === null || info === void 0 ? void 0 : info.columns) {
166
+ // @ts-ignore
167
+ return /*#__PURE__*/_react.default.createElement(_info.default, _objectSpread({
168
+ type: "header"
169
+ }, info));
170
+ }
171
+
172
+ return info;
173
+ };
174
+
161
175
  var PageHeader = function PageHeader(props) {
162
176
  var title = props.title,
163
177
  description = props.description,
@@ -176,6 +190,7 @@ var PageHeader = function PageHeader(props) {
176
190
  breadcrumb = props.breadcrumb,
177
191
  tags = props.tags,
178
192
  data = props.data,
193
+ info = props.info,
179
194
  children = props.children,
180
195
  className = props.className,
181
196
  style = props.style,
@@ -245,7 +260,9 @@ var PageHeader = function PageHeader(props) {
245
260
  className: cls('data')
246
261
  }, renderData(data)), /*#__PURE__*/_react.default.createElement("section", {
247
262
  className: cls('operation')
248
- }, !loading && renderOperations(operation, maxActions)))), children);
263
+ }, !loading && renderOperations(operation, maxActions)))), info && !loading && /*#__PURE__*/_react.default.createElement("section", {
264
+ className: (0, _classnames2.default)(cls('section'), cls('info'))
265
+ }, renderInfo(info)), children);
249
266
  };
250
267
 
251
268
  var _default = PageHeader;
@@ -20,6 +20,10 @@ $prefix: 'teamix-pro-page-header';
20
20
  }
21
21
  }
22
22
 
23
+ .#{$prefix}-info {
24
+ padding-top: var(--s-2, 8px);
25
+ }
26
+
23
27
  .#{$prefix}-title {
24
28
  display: flex;
25
29
  font-size: var(--font-size-display-1, 24px);
@@ -43,8 +43,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
43
43
 
44
44
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
45
 
46
- var CheckboxItem = _components.Menu.CheckboxItem; // const { Tooltip } = Balloon;
47
-
46
+ var CheckboxItem = _components.Menu.CheckboxItem;
47
+ var Row = _components.Grid.Row,
48
+ Col = _components.Grid.Col;
48
49
  var cls = (0, _utils.baseClass)('teamix-pro-table-toolbar-filter-column');
49
50
 
50
51
  var processColumns = function processColumns(columns) {
@@ -144,6 +145,13 @@ var FilterColumnIcon = function FilterColumnIcon(props) {
144
145
  return item;
145
146
  });
146
147
  notifyTableRender(keyNewColumns);
148
+ }; // 修改:dialog
149
+
150
+
151
+ var onChangeColumnsForDialog = function onChangeColumnsForDialog() {
152
+ var keyNewColumns = (0, _utils2.cloneDeep)(newColumns);
153
+ notifyTableRender(keyNewColumns);
154
+ setDropdownVisible(false);
147
155
  }; // 向上
148
156
 
149
157
 
@@ -283,20 +291,71 @@ var FilterColumnIcon = function FilterColumnIcon(props) {
283
291
  })))));
284
292
  };
285
293
 
286
- return renderDropdown(); // <Tooltip
287
- // trigger={renderDropdown()}
288
- // align={fullscreen ? 'b' : 't'}
289
- // popupProps={{
290
- // offset: fullscreen ? [5, 20] : [5, -18],
291
- // animation: { in: 'fadeIn', out: 'fadeOut' },
292
- // visible: tooltipVisible && !dropdownVisible,
293
- // onVisibleChange: (state) => {
294
- // setTooltipVisible(state);
295
- // },
296
- // }}
297
- // >
298
- // {getMessage('customColumnSetting')}
299
- // </Tooltip>
294
+ var renderDialog = function renderDialog() {
295
+ // 对话框关闭
296
+ var dialogOnClose = function dialogOnClose() {
297
+ setDropdownVisible(false);
298
+ };
299
+
300
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.Button, {
301
+ iconSize: "small",
302
+ className: "teamix-pro-table-toolbar-icon",
303
+ onClick: function onClick() {
304
+ setDropdownVisible(!dropdownVisible);
305
+ }
306
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
307
+ size: "small",
308
+ type: "set-line"
309
+ })), /*#__PURE__*/_react.default.createElement(_components.Dialog, {
310
+ title: (0, _utils.getMessage)('customColumnSetting'),
311
+ visible: dropdownVisible,
312
+ onOk: onChangeColumnsForDialog,
313
+ onCancel: dialogOnClose,
314
+ onClose: dialogOnClose,
315
+ style: {
316
+ width: '440px'
317
+ }
318
+ }, /*#__PURE__*/_react.default.createElement(Row, {
319
+ gutter: 20,
320
+ wrap: true,
321
+ className: cls('row')
322
+ }, newColumns.map(function (item, index) {
323
+ var _newColumns$find2;
324
+
325
+ var dataIndex = item.dataIndex,
326
+ title = item.title,
327
+ columnFiltersDisabled = item.columnFiltersDisabled;
328
+ return /*#__PURE__*/_react.default.createElement(Col, {
329
+ span: 8,
330
+ key: index,
331
+ className: cls('col')
332
+ }, /*#__PURE__*/_react.default.createElement(_components.Checkbox, {
333
+ checked: (_newColumns$find2 = newColumns.find(function (_ref5) {
334
+ var key = _ref5.dataIndex;
335
+ return key === dataIndex;
336
+ })) === null || _newColumns$find2 === void 0 ? void 0 : _newColumns$find2.columnFilters,
337
+ onChange: function onChange(check) {
338
+ var columnsList = (0, _utils2.cloneDeep)(newColumns).map(function (item) {
339
+ if (item.dataIndex === dataIndex) {
340
+ item.columnFilters = check;
341
+ }
342
+
343
+ return item;
344
+ });
345
+ setNewColumns(columnsList);
346
+ },
347
+ disabled: columnFiltersDisabled
348
+ }, /*#__PURE__*/_react.default.createElement(_utils.Ellipsis, {
349
+ tooltip: false
350
+ }, title)));
351
+ }))));
352
+ };
353
+
354
+ if (newColumns.length > 10) {
355
+ return renderDialog();
356
+ }
357
+
358
+ return renderDropdown();
300
359
  };
301
360
 
302
361
  var _default = FilterColumnIcon;
@@ -66,8 +66,18 @@
66
66
  }
67
67
  }
68
68
  }
69
+
70
+
71
+ }
72
+ .teamix-pro-table-toolbar-filter-column-col {
73
+ height: 28px;
74
+ .next-checkbox-wrapper {
75
+ display: flex;
76
+ align-items: center;
77
+ }
69
78
  }
70
79
 
80
+
71
81
  // fullscreen
72
82
  .teamix-pro-table-full-screen {
73
83
  width: 100vw;
@@ -63,10 +63,7 @@ Object.keys(_typing).forEach(function (key) {
63
63
  }
64
64
  });
65
65
  });
66
-
67
- var _ahooks = require("ahooks");
68
-
69
- var _excluded = ["header", "className", "tableClassName", "mainAction", "quickAction", "dataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestWhenMount", "showPagination", "pageSizeList", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction"];
66
+ var _excluded = ["header", "className", "tableClassName", "mainAction", "quickAction", "dataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestWhenMount", "showPagination", "pageSizeList", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh"];
70
67
 
71
68
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
72
69
 
@@ -106,6 +103,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
106
103
 
107
104
  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; }
108
105
 
106
+ // import { useSize } from 'ahooks';
109
107
  var cls = (0, _utils.baseClass)('teamix-pro-table');
110
108
  var toJS = _form.formilyReactive.toJS;
111
109
  /**
@@ -181,6 +179,10 @@ var ProTable = function ProTable(props) {
181
179
  filterDebounce = _props$filterDebounce === void 0 ? 300 : _props$filterDebounce,
182
180
  _props$footerSuction = props.footerSuction,
183
181
  footerSuction = _props$footerSuction === void 0 ? false : _props$footerSuction,
182
+ _props$autoRefresh = props.autoRefresh,
183
+ autoRefresh = _props$autoRefresh === void 0 ? function () {
184
+ return false;
185
+ } : _props$autoRefresh,
184
186
  otherProps = _objectWithoutProperties(props, _excluded);
185
187
 
186
188
  var targetPageKey = pageKey || globalPageKey;
@@ -231,9 +233,16 @@ var ProTable = function ProTable(props) {
231
233
  var _useState15 = (0, _react.useState)('medium'),
232
234
  _useState16 = _slicedToArray(_useState15, 2),
233
235
  size = _useState16[0],
234
- _setSize = _useState16[1]; // 获取header高度,用作全屏吸底吸顶高度计算
236
+ _setSize = _useState16[1];
237
+
238
+ var _useState17 = (0, _react.useState)(true),
239
+ _useState18 = _slicedToArray(_useState17, 2),
240
+ showLoading = _useState18[0],
241
+ setShowLoading = _useState18[1]; // 存储定时器 id
235
242
 
236
243
 
244
+ var autoRefreshTimerRef = (0, _react.useRef)(); // 获取header高度,用作全屏吸底吸顶高度计算
245
+
237
246
  var getHeaderHeight = function getHeaderHeight() {
238
247
  var _tableDom$getElements, _tableDom$getElements2;
239
248
 
@@ -253,30 +262,30 @@ var ProTable = function ProTable(props) {
253
262
  }; // header 区域高度。用作全屏计算吸顶吸底高度。默认不做计算
254
263
 
255
264
 
256
- var _useState17 = (0, _react.useState)(0),
257
- _useState18 = _slicedToArray(_useState17, 2),
258
- headerHeight = _useState18[0],
259
- setHeaderHeight = _useState18[1]; // 全屏显示 className
260
-
261
-
262
- var _useState19 = (0, _react.useState)(false),
265
+ var _useState19 = (0, _react.useState)(0),
263
266
  _useState20 = _slicedToArray(_useState19, 2),
264
- fullscreenState = _useState20[0],
265
- setFullscreenState = _useState20[1]; // 父元素位置。用作非全屏模式下的吸底
267
+ headerHeight = _useState20[0],
268
+ setHeaderHeight = _useState20[1]; // 全屏显示 className
266
269
 
267
270
 
268
- var _useState21 = (0, _react.useState)(),
271
+ var _useState21 = (0, _react.useState)(false),
269
272
  _useState22 = _slicedToArray(_useState21, 2),
270
- parentPosition = _useState22[0],
271
- setParentPosition = _useState22[1];
273
+ fullscreenState = _useState22[0],
274
+ setFullscreenState = _useState22[1]; // 父元素位置。用作非全屏模式下的吸底
275
+
276
+
277
+ var _useState23 = (0, _react.useState)(),
278
+ _useState24 = _slicedToArray(_useState23, 2),
279
+ parentPosition = _useState24[0],
280
+ setParentPosition = _useState24[1];
272
281
  /** 筛选区域 form */
273
282
 
274
283
 
275
284
  var dataFilterForm = (0, _react.useMemo)(function () {
276
285
  return (0, _form.createForm)();
277
286
  }, []); // 获取表格大小
278
-
279
- var tableSize = (0, _ahooks.useSize)(tableRef); // 获取父元素位置
287
+ // const tableSize = useSize(tableRef);
288
+ // 获取父元素位置
280
289
 
281
290
  var getParentPosition = function getParentPosition() {
282
291
  // 暂时仅支持使用全家桶
@@ -290,12 +299,12 @@ var ProTable = function ProTable(props) {
290
299
  });
291
300
  }
292
301
  }; // 监听表格大小动态改变吸底footer大小
302
+ // useEffect(() => {
303
+ // getParentPosition();
304
+ // }, [tableSize]);
305
+ // rowSelection 相关
293
306
 
294
307
 
295
- (0, _react.useEffect)(function () {
296
- getParentPosition();
297
- }, [tableSize]); // rowSelection 相关
298
-
299
308
  var rowSelectionHook = (0, _useTableSelection.default)(_objectSpread(_objectSpread({}, propsRowSelection), {}, {
300
309
  onChange: onChangeRowSelection
301
310
  }), primaryKey);
@@ -407,6 +416,25 @@ var ProTable = function ProTable(props) {
407
416
 
408
417
  if (propsActionRef) {
409
418
  propsActionRef.current = actionRef.current;
419
+ }
420
+
421
+ function onFormatResult(next) {
422
+ var _next$data;
423
+
424
+ props.onFormatResult && props.onFormatResult(next);
425
+ var time = autoRefresh ? autoRefresh(next.data) : false;
426
+
427
+ if (Number.isInteger(time) && time >= 1000) {
428
+ autoRefreshTimerRef.current = setTimeout(function () {
429
+ // 自动刷新不显示 loading
430
+ _request({}, true);
431
+ }, Number(time));
432
+ } // 设置 dataSource、total
433
+
434
+
435
+ setData(next.data || []);
436
+ setTotal(next.total || ((_next$data = next.data) === null || _next$data === void 0 ? void 0 : _next$data.length));
437
+ setShowSkeleton(false);
410
438
  } // 请求表格数据工具函数
411
439
 
412
440
 
@@ -437,16 +465,6 @@ var ProTable = function ProTable(props) {
437
465
  }
438
466
  }
439
467
 
440
- function onFormatResult(next) {
441
- var _next$data;
442
-
443
- props.onFormatResult && props.onFormatResult(next); // 设置 dataSource、total
444
-
445
- setData(next.data || []);
446
- setTotal(next.total || ((_next$data = next.data) === null || _next$data === void 0 ? void 0 : _next$data.length));
447
- setShowSkeleton(false);
448
- }
449
-
450
468
  if (nextData instanceof Promise) {
451
469
  nextData.then(function (res) {
452
470
  onFormatResult(res);
@@ -468,10 +486,12 @@ var ProTable = function ProTable(props) {
468
486
  }
469
487
  }); // 请求函数
470
488
 
471
- function _request(params) {
489
+ function _request(params, noLoading) {
472
490
  var _actionRef$current, _actionRef$current$se, _objectSpread2;
473
491
 
474
- // 请求前需要优先清空列过滤条件
492
+ var nextShowLoading = !noLoading;
493
+ nextShowLoading !== showLoading && setShowLoading(nextShowLoading); // 请求前需要优先清空列过滤条件
494
+
475
495
  (_actionRef$current = actionRef.current) === null || _actionRef$current === void 0 ? void 0 : (_actionRef$current$se = _actionRef$current.setFilterRules) === null || _actionRef$current$se === void 0 ? void 0 : _actionRef$current$se.call(_actionRef$current, {});
476
496
  var sortParams = targetFormatSort(sort); // 筛选区请求参数
477
497
 
@@ -480,7 +500,11 @@ var ProTable = function ProTable(props) {
480
500
  var requestData = formatParams(_objectSpread(_objectSpread({}, !showPagination ? _objectSpread(_objectSpread(_objectSpread({}, dataFilterParams), propsParams), sortParams) : _objectSpread(_objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, targetPageKey, currentPage), _defineProperty(_objectSpread2, targetPageSizeKey, pageSize), _objectSpread2), dataFilterParams), propsParams), sortParams)), params));
481
501
 
482
502
  if (requestData) {
483
- // console.log('requestData', requestData);
503
+ if (autoRefreshTimerRef.current) {
504
+ clearTimeout(autoRefreshTimerRef.current);
505
+ autoRefreshTimerRef.current = null;
506
+ }
507
+
484
508
  getData.run(requestData);
485
509
  }
486
510
  }
@@ -489,6 +513,12 @@ var ProTable = function ProTable(props) {
489
513
  if (requestWhenMount) {
490
514
  _request();
491
515
  }
516
+
517
+ return function () {
518
+ if (autoRefreshTimerRef.current) {
519
+ clearTimeout(autoRefreshTimerRef.current);
520
+ }
521
+ };
492
522
  }, []);
493
523
 
494
524
  function onSort(dataIndex, order) {
@@ -534,7 +564,7 @@ var ProTable = function ProTable(props) {
534
564
  hasBorder: false,
535
565
  dataSource: showSkeleton ? skeletonDataSource : data || props.dataSource,
536
566
  columns: (0, _genProColumnToColumn.default)(filteredColumns, showSkeleton, actionRef),
537
- loading: !showSkeleton && (getData.loading || props.loading),
567
+ loading: showLoading && !showSkeleton && (getData.loading || props.loading),
538
568
  className: (0, _classnames.default)('teamix-pro-table', tableClassName, {
539
569
  'with-row-select': rowSelection
540
570
  }),
@@ -103,8 +103,10 @@ export declare type ProTableProps = {
103
103
  skeletonSize?: number;
104
104
  /** 表格主题 className */
105
105
  tableClassName?: string;
106
- /** 非全屏模式下是否吸底 默认状态下取用 ProPageContainer 作为参照物。如果传入了Dom,则取用Dom作为参照物 */
106
+ /** 非全屏模式下是否吸底 默认状态下取用 ProPageContainer 作为参照物。如果传入了 Dom,则取用 Dom 作为参照物 */
107
107
  footerSuction?: boolean | Element;
108
+ /** 当满足条件时开启自动刷新,返回值为自动刷新间隔时间,如果返回 0 或 false 则停止自动刷新,每次触发翻页、搜索都将重置时间 */
109
+ autoRefresh?: (dataSource: any[]) => number | boolean;
108
110
  } & Omit<TableProps, 'columns'> & ProTableTopAreaProps;
109
111
  export declare type rowSelectionType = {
110
112
  getProps?: (record: any, index: number) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamix/pro",
3
- "version": "1.1.7",
3
+ "version": "1.1.8",
4
4
  "description": "TeamixPro大包",
5
5
  "repository": "http://gitlab.alibaba-inc.com/teamix/pro",
6
6
  "author": "Velociraptor(迅猛龙)",