@teamix/pro 1.2.18 → 1.2.19

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 (51) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +733 -273
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/base.d.ts +2 -1
  6. package/es/actions/base.js +1 -1
  7. package/es/actions/danger-pop-confirm.d.ts +5 -0
  8. package/es/actions/danger-pop-confirm.js +10 -0
  9. package/es/actions/dialog.d.ts +1 -1
  10. package/es/actions/dialog.js +32 -31
  11. package/es/actions/index.d.ts +3 -0
  12. package/es/actions/index.js +10 -0
  13. package/es/actions/pop-confirm.d.ts +9 -0
  14. package/es/actions/pop-confirm.js +9 -0
  15. package/es/form/Components/LightFilter/componentMap.d.ts +2 -1
  16. package/es/form/Components/LightFilter/componentMap.js +2 -1
  17. package/es/form/Components/LightFilter/index.d.ts +1 -0
  18. package/es/form/Components/LightFilter/index.js +19 -13
  19. package/es/form/Components/LightFilter/index.scss +13 -3
  20. package/es/form/Filter/index2.js +157 -50
  21. package/es/form/Filter/index2.scss +3 -0
  22. package/es/form/ProForm/index.js +3 -2
  23. package/es/form/typing.d.ts +5 -0
  24. package/es/index.d.ts +1 -1
  25. package/es/index.js +1 -1
  26. package/es/table/components/ToolBar/FilterColumnIcon.js +1 -1
  27. package/es/table/index.js +39 -12
  28. package/lib/actions/base.d.ts +2 -1
  29. package/lib/actions/base.js +1 -1
  30. package/lib/actions/danger-pop-confirm.d.ts +5 -0
  31. package/lib/actions/danger-pop-confirm.js +22 -0
  32. package/lib/actions/dialog.d.ts +1 -1
  33. package/lib/actions/dialog.js +33 -31
  34. package/lib/actions/index.d.ts +3 -0
  35. package/lib/actions/index.js +12 -0
  36. package/lib/actions/pop-confirm.d.ts +9 -0
  37. package/lib/actions/pop-confirm.js +23 -0
  38. package/lib/form/Components/LightFilter/componentMap.d.ts +2 -1
  39. package/lib/form/Components/LightFilter/componentMap.js +4 -3
  40. package/lib/form/Components/LightFilter/index.d.ts +1 -0
  41. package/lib/form/Components/LightFilter/index.js +18 -12
  42. package/lib/form/Components/LightFilter/index.scss +13 -3
  43. package/lib/form/Filter/index2.js +157 -49
  44. package/lib/form/Filter/index2.scss +3 -0
  45. package/lib/form/ProForm/index.js +4 -2
  46. package/lib/form/typing.d.ts +5 -0
  47. package/lib/index.d.ts +1 -1
  48. package/lib/index.js +1 -1
  49. package/lib/table/components/ToolBar/FilterColumnIcon.js +1 -1
  50. package/lib/table/index.js +39 -12
  51. package/package.json +2 -2
@@ -17,6 +17,8 @@ var _icon = _interopRequireDefault(require("@teamix/icon"));
17
17
 
18
18
  var _core = require("@formily/core");
19
19
 
20
+ var _reactive = require("@formily/reactive");
21
+
20
22
  var _utils = require("@teamix/utils");
21
23
 
22
24
  var _index = _interopRequireDefault(require("../../field/index"));
@@ -33,8 +35,8 @@ require("./index2.scss");
33
35
 
34
36
  var _excluded = ["schema", "onChange", "onSubmit"],
35
37
  _excluded2 = ["form", "schema", "onSubmit", "onChange"],
36
- _excluded3 = ["schema", "onSubmit", "onChange", "onReset", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol"],
37
- _excluded4 = ["addonAfter", "addonBefore", "onFilter", "mode", "expand"];
38
+ _excluded3 = ["schema", "onSubmit", "onReset", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol"],
39
+ _excluded4 = ["addonAfter", "addonBefore", "onFilter", "onInit", "onReset", "mode", "expand"];
38
40
 
39
41
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
42
 
@@ -42,6 +44,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
42
44
 
43
45
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
44
46
 
47
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
48
+
49
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
50
+
45
51
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
46
52
 
47
53
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -124,9 +130,17 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
124
130
  var prefixCls = (0, _utils.usePrefixCls)('', {
125
131
  prefix: 'teamix-pro-form-query-filter-light'
126
132
  });
133
+ var onBtnClick = (0, _react.useCallback)(function () {
134
+ onChange && onChange((0, _reactive.toJS)(form.values));
135
+ }, [form]);
127
136
  var LightSchema = (0, _react.useMemo)(function () {
128
137
  return [{
129
138
  component: 'LightFilter',
139
+ props: {
140
+ buttonProps: {
141
+ onClick: onBtnClick
142
+ }
143
+ },
130
144
  children: schema
131
145
  }, {
132
146
  component: 'Submit',
@@ -136,19 +150,12 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
136
150
  }
137
151
  }
138
152
  }];
139
- }, [schema]); // useEffect(() => {
140
- // form.addEffects('onChange', () => {
141
- // onFieldValueChange('',(field:any) => {
142
- // console.log(field.value);
143
- // });
144
- // });
145
- // }, [form, onChange]);
146
-
153
+ }, [schema, onBtnClick]);
147
154
  return /*#__PURE__*/_react.default.createElement(_ProForm.default, _objectSpread(_objectSpread({}, otherProps), {}, {
148
155
  form: form,
149
156
  className: (0, _classnames.default)(prefixCls, props.className),
150
157
  schema: LightSchema,
151
- feedbackLayout: "popover",
158
+ feedbackLayout: "none",
152
159
  breakpoints: [],
153
160
  bordered: false,
154
161
  onSubmit: onSubmit,
@@ -162,7 +169,6 @@ var LightFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
162
169
  var AdvancedFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
163
170
  var schema = props.schema,
164
171
  onSubmit = props.onSubmit,
165
- onChange = props.onChange,
166
172
  onReset = props.onReset,
167
173
  layout = props.layout,
168
174
  labelAlign = props.labelAlign,
@@ -237,25 +243,79 @@ AdvancedFilter.defaultProps = {
237
243
  labelCol: 6,
238
244
  wrapperCol: 18
239
245
  };
246
+
247
+ var getSpecialProps = function getSpecialProps(props) {
248
+ var initialValues = props.initialValues,
249
+ initialRequest = props.initialRequest;
250
+ var hasDefault = !!initialValues;
251
+ var hasAsyncDefault = !!initialRequest;
252
+ var hasRequired = false;
253
+
254
+ var hasDefaultOrRule = function hasDefaultOrRule(schema) {
255
+ schema.forEach(function (item) {
256
+ var value = item.default,
257
+ required = item.required,
258
+ rules = item.rules,
259
+ request = item.request,
260
+ dataSource = item.dataSource,
261
+ children = item.children;
262
+ hasDefault = hasDefault || (0, _utils.isSignificative)(value);
263
+ hasRequired = hasRequired || required || !!rules;
264
+ hasAsyncDefault = hasAsyncDefault || !!request || // 如果dataSource是异步且default取自dataSource
265
+ !!((0, _utils.isPlainObj)(dataSource) && (0, _utils.isStr)(value) && value.indexOf('.dataSource'));
266
+
267
+ if (children === null || children === void 0 ? void 0 : children.length) {
268
+ hasDefaultOrRule(children);
269
+ }
270
+ });
271
+ };
272
+
273
+ hasDefaultOrRule(props.schema);
274
+ return {
275
+ hasDefault: hasDefault,
276
+ hasAsyncDefault: hasAsyncDefault,
277
+ hasRequired: hasRequired
278
+ };
279
+ };
240
280
  /**
241
281
  * 查询筛选
242
282
  */
243
283
 
284
+
244
285
  var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
245
286
  var addonAfter = props.addonAfter,
246
287
  addonBefore = props.addonBefore,
247
288
  onFilter = props.onFilter,
289
+ onInit = props.onInit,
290
+ onReset = props.onReset,
248
291
  mode = props.mode,
249
292
  expand = props.expand,
250
293
  otherProps = _objectWithoutProperties(props, _excluded4);
251
294
 
252
- var form = (0, _react.useMemo)(function () {
253
- return props.form || (0, _core.createForm)({
295
+ var simpleForm = (0, _react.useMemo)(function () {
296
+ return (0, _core.createForm)({
297
+ validateFirst: true
298
+ });
299
+ }, []);
300
+ var lightForm = (0, _react.useMemo)(function () {
301
+ return (0, _core.createForm)({
302
+ validateFirst: true
303
+ });
304
+ }, []);
305
+ var advancedForm = (0, _react.useMemo)(function () {
306
+ return (0, _core.createForm)({
254
307
  validateFirst: true
255
308
  });
256
309
  }, []);
257
310
 
258
- var _useState = (0, _react.useState)(expand),
311
+ var _getSpecialProps = getSpecialProps(props),
312
+ hasDefault = _getSpecialProps.hasDefault,
313
+ hasAsyncDefault = _getSpecialProps.hasAsyncDefault,
314
+ hasRequired = _getSpecialProps.hasRequired;
315
+
316
+ var hasDefaultOrRequired = hasDefault || hasAsyncDefault || hasRequired;
317
+
318
+ var _useState = (0, _react.useState)(!!expand || hasDefaultOrRequired),
259
319
  _useState2 = _slicedToArray(_useState, 2),
260
320
  advancedFilterVisible = _useState2[0],
261
321
  setAdvancedFilterVisible = _useState2[1];
@@ -267,7 +327,8 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
267
327
 
268
328
  var prefixCls = (0, _utils.usePrefixCls)('', {
269
329
  prefix: 'teamix-pro-form-query-filter'
270
- }); // 展开收起高级筛选
330
+ });
331
+ var currentForm = mode === 'panel' ? advancedFilterVisible ? 'advanced' : 'light' : 'simple'; // 展开收起高级筛选
271
332
 
272
333
  var toggleAdvancedFilter = (0, _react.useCallback)(function () {
273
334
  setAdvancedFilterVisible(function (visible) {
@@ -293,31 +354,78 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
293
354
  }).filter(function (item) {
294
355
  return (0, _utils.isSignificative)(item.value);
295
356
  });
296
- }, []); // 表单值提交
297
-
298
- var onFormSubmit = (0, _react.useCallback)(function (values) {
299
- setTagDataSource(getTagDataSource(form));
300
- onFilter && onFilter(values);
301
- }, []); // 轻量表单onChange
357
+ }, []); // 设置标签数据
358
+
359
+ var configTag = (0, _react.useCallback)(function () {
360
+ setTagDataSource(getTagDataSource(advancedForm));
361
+ }, []); // 简单搜索Filter
362
+
363
+ var onSimpleFilter = (0, _react.useCallback)(function (values) {
364
+ if (currentForm === 'simple') {
365
+ onFilter && onFilter(values);
366
+ }
367
+ }, [onFilter, currentForm]); // 轻量搜索Filter
368
+
369
+ var onLightFilter = (0, _react.useCallback)( /*#__PURE__*/function () {
370
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(values) {
371
+ return regeneratorRuntime.wrap(function _callee$(_context) {
372
+ while (1) {
373
+ switch (_context.prev = _context.next) {
374
+ case 0:
375
+ if (!(currentForm === 'light')) {
376
+ _context.next = 5;
377
+ break;
378
+ }
379
+
380
+ onFilter && onFilter(values);
381
+ _context.next = 4;
382
+ return advancedForm.reset();
383
+
384
+ case 4:
385
+ configTag();
386
+
387
+ case 5:
388
+ case "end":
389
+ return _context.stop();
390
+ }
391
+ }
392
+ }, _callee);
393
+ }));
302
394
 
303
- var onLightValueChange = (0, _react.useCallback)(function (values) {
304
- form.reset();
305
- setTagDataSource(getTagDataSource(form));
306
- onFilter && onFilter(values);
307
- }, [form]); // 简单表单onChange
395
+ return function (_x) {
396
+ return _ref3.apply(this, arguments);
397
+ };
398
+ }(), [onFilter, currentForm]); // 高级搜索Filter
308
399
 
309
- var onSimpleValueChange = (0, _react.useCallback)(function (values) {
310
- setTagDataSource(getTagDataSource(form));
311
- onFilter && onFilter(values);
312
- }, []); // 关闭标签清空表单字段值
400
+ var onAdvancedFilter = (0, _react.useCallback)(function (values) {
401
+ if (currentForm === 'advanced') {
402
+ onFilter && onFilter(values);
403
+ configTag();
404
+ lightForm.reset();
405
+ }
406
+ }, [onFilter, currentForm]); // 关闭标签清空表单字段值
313
407
 
314
408
  var onTagClose = (0, _react.useCallback)(function (key) {
315
- form.setValuesIn(key, undefined);
316
- }, [form]); // 设置默认值标签数据
409
+ advancedForm.setValuesIn(key, undefined);
410
+ setTagDataSource(getTagDataSource(advancedForm));
411
+ }, []); // 判断表单是否有校验和默认值
317
412
 
318
413
  (0, _react.useEffect)(function () {
319
- setTagDataSource(getTagDataSource(form));
320
- }, []);
414
+ if (hasDefault || hasAsyncDefault || hasRequired) {}
415
+ }, [hasDefault, hasAsyncDefault, hasRequired]); // 设置默认值标签数据
416
+
417
+ (0, _react.useEffect)(function () {// onInit
418
+ // if (mode === 'panel') {
419
+ // if (expand) {
420
+ // onInit && onInit(toJS(advancedForm.values));
421
+ // } else {
422
+ // onInit && onInit(toJS(lightForm.values));
423
+ // }
424
+ // configTag();
425
+ // } else {
426
+ // onInit && onInit(toJS(simpleForm.values));
427
+ // }
428
+ }, [mode]);
321
429
  return /*#__PURE__*/_react.default.createElement("div", {
322
430
  className: (0, _classnames.default)(prefixCls, props.className)
323
431
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -327,11 +435,11 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
327
435
  }, addonBefore ? /*#__PURE__*/_react.default.createElement("div", {
328
436
  className: "".concat(prefixCls, "-addonBefore")
329
437
  }, addonBefore) : null, mode === 'panel' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
330
- className: "".concat(prefixCls, "-inline-form")
438
+ className: (0, _classnames.default)("".concat(prefixCls, "-inline-form"), hasAsyncDefault ? "".concat(prefixCls, "-inline-form-hidden") : '')
331
439
  }, /*#__PURE__*/_react.default.createElement(LightFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
332
- form: form,
333
- onFilter: onLightValueChange,
334
- onSubmit: onFormSubmit
440
+ form: lightForm,
441
+ onChange: onLightFilter,
442
+ onSubmit: onLightFilter
335
443
  }))), /*#__PURE__*/_react.default.createElement("div", {
336
444
  className: "".concat(prefixCls, "-toggle")
337
445
  }, /*#__PURE__*/_react.default.createElement(_components.Badge, {
@@ -351,20 +459,20 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
351
459
  }), (0, _utils.getMessage)('advancedFilter'))))) : /*#__PURE__*/_react.default.createElement("div", {
352
460
  className: "".concat(prefixCls, "-inline-form")
353
461
  }, /*#__PURE__*/_react.default.createElement(SimpleFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
354
- form: form,
355
- onFilter: onSimpleValueChange,
356
- onSubmit: onFormSubmit
462
+ form: simpleForm,
463
+ onChange: onSimpleFilter,
464
+ onSubmit: onSimpleFilter
357
465
  })))), addonAfter ? /*#__PURE__*/_react.default.createElement("div", {
358
466
  className: "".concat(prefixCls, "-addonAfter")
359
467
  }, addonAfter) : null), mode === 'panel' ? /*#__PURE__*/_react.default.createElement("div", {
360
468
  className: "".concat(prefixCls, "-panel")
361
469
  }, /*#__PURE__*/_react.default.createElement("div", {
362
470
  className: (0, _classnames.default)("".concat(prefixCls, "-tag"), advancedFilterVisible ? "".concat(prefixCls, "-tag-hidden") : '')
363
- }, /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref3) {
364
- var key = _ref3.key,
365
- label = _ref3.label,
366
- value = _ref3.value,
367
- type = _ref3.type;
471
+ }, /*#__PURE__*/_react.default.createElement(_components.Tag.Group, null, tagDataSource.map(function (_ref4) {
472
+ var key = _ref4.key,
473
+ label = _ref4.label,
474
+ value = _ref4.value,
475
+ type = _ref4.type;
368
476
  return /*#__PURE__*/_react.default.createElement(_components.Tag.Closeable, {
369
477
  key: key,
370
478
  afterClose: function afterClose() {
@@ -381,8 +489,8 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
381
489
  }))), /*#__PURE__*/_react.default.createElement("div", {
382
490
  className: (0, _classnames.default)("".concat(prefixCls, "-advanced-wrap"), !advancedFilterVisible ? "".concat(prefixCls, "-advanced-wrap-hidden") : '')
383
491
  }, /*#__PURE__*/_react.default.createElement(AdvancedFilter, _objectSpread(_objectSpread({}, otherProps), {}, {
384
- form: form,
385
- onSubmit: onFormSubmit
492
+ form: advancedForm,
493
+ onSubmit: onAdvancedFilter
386
494
  })))) : null);
387
495
  });
388
496
  exports.QueryFilter = QueryFilter;
@@ -19,6 +19,9 @@ $query-filter: #{$teamix-pro-form}-query-filter;
19
19
  margin-right: 8px;
20
20
  margin-bottom: 8px;
21
21
  }
22
+ .#{$query-filter}-inline-form-hidden {
23
+ display: none;
24
+ }
22
25
  .#{$query-filter}-toggle {
23
26
  margin-bottom: 8px;
24
27
  }
@@ -29,6 +29,8 @@ var _useInitialRequest = _interopRequireDefault(require("./useInitialRequest"));
29
29
 
30
30
  var _validate = _interopRequireDefault(require("../locales/validate"));
31
31
 
32
+ var _lodash = _interopRequireDefault(require("lodash.debounce"));
33
+
32
34
  require("./index.scss");
33
35
 
34
36
  var _excluded = ["form", "initialValues", "initialRequest", "schema", "scope", "context", "components", "children", "layout", "labelAlign", "wrapperAlign", "labelCol", "wrapperCol", "breakpoints", "onChange", "onSubmit", "onSubmitFailed", "className"];
@@ -107,11 +109,11 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
107
109
  (0, _react.useEffect)(function () {
108
110
  form.removeEffects('onChange');
109
111
  form.addEffects('onChange', function () {
110
- (0, _core.onFormValuesChange)(function (form) {
112
+ (0, _core.onFormValuesChange)((0, _lodash.default)(function (form) {
111
113
  if (onChange) {
112
114
  onChange((0, _reactive.toJS)(form.values));
113
115
  }
114
- });
116
+ }, 300));
115
117
  });
116
118
  }, [form, onChange]); // 配置表单默认值
117
119
 
@@ -64,6 +64,10 @@ export interface ProFormProps extends IFormLayoutProps {
64
64
  onSubmit?: ((values: any) => any) | CommonRequestConfig;
65
65
  onSubmitFailed?: (feedbacks: IFormFeedback[]) => void;
66
66
  }
67
+ export interface FilterProps extends ProFormProps {
68
+ form: FormType;
69
+ onReset?: (payload?: any) => void;
70
+ }
67
71
  export interface QueryFilterProps extends ProFormProps {
68
72
  /**
69
73
  * @deprecated triggerType已弃用
@@ -73,6 +77,7 @@ export interface QueryFilterProps extends ProFormProps {
73
77
  expand?: boolean;
74
78
  addonBefore?: ReactNode;
75
79
  addonAfter?: ReactNode;
80
+ onInit?: (values: any) => void;
76
81
  onFilter?: (values: any) => void;
77
82
  onReset?: (payload?: any) => void;
78
83
  }
package/lib/index.d.ts CHANGED
@@ -21,5 +21,5 @@ export * from './page-container';
21
21
  export * from './page-header';
22
22
  export * from './skeleton';
23
23
  export * from './table';
24
- declare const version = "1.2.17";
24
+ declare const version = "1.2.18";
25
25
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, hooks, nocode, templates, utils, };
package/lib/index.js CHANGED
@@ -253,5 +253,5 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
253
253
  _icon.default.setConfig(_utils.default.getTeamixIconConfig());
254
254
 
255
255
  // export * from './sidebar';
256
- var version = '1.2.17';
256
+ var version = '1.2.18';
257
257
  exports.version = version;
@@ -361,7 +361,7 @@ var FilterColumnIcon = function FilterColumnIcon(props) {
361
361
  },
362
362
  disabled: columnFiltersDisabled
363
363
  }, /*#__PURE__*/_react.default.createElement(_utils.Ellipsis, {
364
- tooltip: false
364
+ tooltip: title
365
365
  }, title)));
366
366
  }))));
367
367
  };
@@ -103,10 +103,34 @@ var toJS = _form.formilyReactive.toJS;
103
103
  * @returns
104
104
  */
105
105
 
106
- var processColumns = function processColumns(columns) {
107
- return columns.filter(function (item) {
106
+ var processColumns = function processColumns(columns, initialColumns) {
107
+ var filterColumns = columns.filter(function (item) {
108
108
  return item.columnFilters !== false;
109
- });
109
+ }); // 处理只剩一列批量选择的情况下宽度错乱问题
110
+
111
+ if ((filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) && (filterColumns === null || filterColumns === void 0 ? void 0 : filterColumns.length) === 1) {
112
+ var _filterColumns$, _filterColumns$2;
113
+
114
+ if ((_filterColumns$ = filterColumns[0]) === null || _filterColumns$ === void 0 ? void 0 : _filterColumns$.width) {
115
+ delete filterColumns[0].width;
116
+ }
117
+
118
+ if ((_filterColumns$2 = filterColumns[0]) === null || _filterColumns$2 === void 0 ? void 0 : _filterColumns$2.lock) {
119
+ filterColumns[0].lock = false;
120
+ }
121
+ } else {
122
+ var _initialColumns$, _initialColumns$2;
123
+
124
+ if ((_initialColumns$ = initialColumns[0]) === null || _initialColumns$ === void 0 ? void 0 : _initialColumns$.width) {
125
+ filterColumns[0].width = initialColumns[0].width;
126
+ }
127
+
128
+ if ((_initialColumns$2 = initialColumns[0]) === null || _initialColumns$2 === void 0 ? void 0 : _initialColumns$2.lock) {
129
+ filterColumns[0].lock = initialColumns[0].lock;
130
+ }
131
+ }
132
+
133
+ return filterColumns;
110
134
  };
111
135
  /** 默认请求翻页参数 */
112
136
 
@@ -207,7 +231,7 @@ var ProTable = function ProTable(props) {
207
231
  sort = _useState10[0],
208
232
  setSort = _useState10[1];
209
233
 
210
- var _useState11 = (0, _react.useState)(requestWhenMount && propsShowSkeleton),
234
+ var _useState11 = (0, _react.useState)(!propsDataSource && requestWhenMount && propsShowSkeleton),
211
235
  _useState12 = _slicedToArray(_useState11, 2),
212
236
  showSkeleton = _useState12[0],
213
237
  setShowSkeleton = _useState12[1]; // 首次加载,渲染骨架屏
@@ -224,7 +248,7 @@ var ProTable = function ProTable(props) {
224
248
  var tableRef = (0, _react.useRef)(null);
225
249
  var actionRef = (0, _react.useRef)(); // 传给 table 的过滤后的 columns
226
250
 
227
- var _useState15 = (0, _react.useState)(processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : [])),
251
+ var _useState15 = (0, _react.useState)(processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : [], propsColumns)),
228
252
  _useState16 = _slicedToArray(_useState15, 2),
229
253
  filteredColumns = _useState16[0],
230
254
  setFilteredColumns = _useState16[1];
@@ -395,10 +419,16 @@ var ProTable = function ProTable(props) {
395
419
  (0, _react.useEffect)(function () {
396
420
  var _actionRef$current, _actionRef$current$se;
397
421
 
398
- var columns = processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : []);
422
+ var columns = processColumns(propsColumns !== null && propsColumns !== void 0 ? propsColumns : [], propsColumns);
399
423
  setFilteredColumns(columns);
400
424
  (_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);
401
- }, [propsColumns]); // 绑定 Actions
425
+ }, [propsColumns]); // dataSource 受控
426
+
427
+ (0, _react.useEffect)(function () {
428
+ if (propsDataSource) {
429
+ setData(propsDataSource);
430
+ }
431
+ }, [propsDataSource]); // 绑定 Actions
402
432
 
403
433
  (0, _utils2.useActionType)(actionRef, {
404
434
  fullScreen: function fullScreen() {
@@ -413,7 +443,7 @@ var ProTable = function ProTable(props) {
413
443
  setColumn: function setColumn(newColumns) {
414
444
  var _actionRef$current2, _actionRef$current2$s;
415
445
 
416
- var columns = processColumns(newColumns);
446
+ var columns = processColumns(newColumns, propsColumns);
417
447
  setFilteredColumns(columns);
418
448
  (_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);
419
449
  },
@@ -667,10 +697,7 @@ var ProTable = function ProTable(props) {
667
697
 
668
698
  // 搜索变化时,暂时先清空选择
669
699
  (_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);
670
- setCurrentPage(1); // const { mode, schema } = propsDataFilter as ProTableDataFilterProps;
671
- // TODO: 针对 inline 模式下的 search 组件做一下处理,如果空值切换下拉的时候不触发请求
672
- // if (mode === 'inline') {
673
- // }
700
+ setCurrentPage(1);
674
701
 
675
702
  _request(_defineProperty({}, targetPageKey, 1));
676
703
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamix/pro",
3
- "version": "1.2.18",
3
+ "version": "1.2.19",
4
4
  "description": "TeamixPro大包",
5
5
  "repository": "http://gitlab.alibaba-inc.com/teamix/pro",
6
6
  "author": "Velociraptor(迅猛龙)",
@@ -26,7 +26,7 @@
26
26
  "@formily/react": "2.0.5",
27
27
  "@teamix/formily": "2.0.5-1",
28
28
  "@teamix/hooks": "^0.1.0",
29
- "@teamix/pop-confirm": "^1.2.2",
29
+ "@teamix/pop-confirm": "^1.2.4",
30
30
  "@teamix/pro-field": "^1.0.0",
31
31
  "@teamix/pro-page-container": "^1.0.0",
32
32
  "@teamix/pro-skeleton": "^1.0.0",