@teamix/pro 1.4.6 → 1.4.9

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 (43) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +197 -129
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/dialog-form.js +22 -17
  6. package/es/actions/dialog.d.ts +5 -1
  7. package/es/actions/dialog.js +19 -11
  8. package/es/card/index.js +1 -2
  9. package/es/card/index.scss +2 -2
  10. package/es/form/Components/LightFilter/index.js +7 -2
  11. package/es/form/Components/LightFilter/index.scss +5 -0
  12. package/es/form/Filter/index.js +5 -4
  13. package/es/form/ProForm/index.js +2 -2
  14. package/es/form/ProForm/index.scss +5 -0
  15. package/es/form/SchemaForm/index.js +8 -4
  16. package/es/index-without-icon.d.ts +32 -0
  17. package/es/index-without-icon.js +35 -0
  18. package/es/index.d.ts +1 -1
  19. package/es/index.js +7 -2
  20. package/es/page-header/index.js +3 -1
  21. package/es/table/components/Filter/index.js +9 -15
  22. package/es/table/utils/genProColumnToColumn.d.ts +5 -1
  23. package/es/table/utils/genProColumnToColumn.js +3 -1
  24. package/lib/actions/dialog-form.js +22 -16
  25. package/lib/actions/dialog.d.ts +5 -1
  26. package/lib/actions/dialog.js +18 -10
  27. package/lib/card/index.js +1 -2
  28. package/lib/card/index.scss +2 -2
  29. package/lib/form/Components/LightFilter/index.js +6 -1
  30. package/lib/form/Components/LightFilter/index.scss +5 -0
  31. package/lib/form/Filter/index.js +5 -4
  32. package/lib/form/ProForm/index.js +2 -2
  33. package/lib/form/ProForm/index.scss +5 -0
  34. package/lib/form/SchemaForm/index.js +11 -6
  35. package/lib/index-without-icon.d.ts +32 -0
  36. package/lib/index-without-icon.js +316 -0
  37. package/lib/index.d.ts +1 -1
  38. package/lib/index.js +6 -3
  39. package/lib/page-header/index.js +3 -1
  40. package/lib/table/components/Filter/index.js +9 -15
  41. package/lib/table/utils/genProColumnToColumn.d.ts +5 -1
  42. package/lib/table/utils/genProColumnToColumn.js +4 -1
  43. package/package.json +1 -1
@@ -59,6 +59,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
59
59
 
60
60
  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; }
61
61
 
62
+ var toJS = _form.formilyReactive.toJS;
63
+
62
64
  function getDefaultFormPropsByDialogSize(size) {
63
65
  if (size === 'small') {
64
66
  return {
@@ -205,51 +207,55 @@ function useDialogFormAction(action, context) {
205
207
  innerFormRef.current.validate().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
206
208
  var _innerFormRef$current;
207
209
 
208
- var beforeRequestContext, requestContext;
210
+ var beforeRequestContext, fields, requestContext;
209
211
  return regeneratorRuntime.wrap(function _callee$(_context) {
210
212
  while (1) {
211
213
  switch (_context.prev = _context.next) {
212
214
  case 0:
215
+ fields = toJS((_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values);
216
+
213
217
  if (!propsBeforeRequest) {
214
- _context.next = 13;
218
+ _context.next = 14;
215
219
  break;
216
220
  }
217
221
 
218
- _context.prev = 1;
219
- _context.next = 4;
220
- return (0, _utils.resolveMaybePromiseMethod)(propsBeforeRequest, context);
222
+ _context.prev = 2;
223
+ _context.next = 5;
224
+ return (0, _utils.resolveMaybePromiseMethod)(propsBeforeRequest, _objectSpread(_objectSpread({}, context), {}, {
225
+ fields: fields
226
+ }));
221
227
 
222
- case 4:
228
+ case 5:
223
229
  beforeRequestContext = _context.sent;
224
- _context.next = 10;
230
+ _context.next = 11;
225
231
  break;
226
232
 
227
- case 7:
228
- _context.prev = 7;
229
- _context.t0 = _context["catch"](1);
233
+ case 8:
234
+ _context.prev = 8;
235
+ _context.t0 = _context["catch"](2);
230
236
  beforeRequestContext = false;
231
237
 
232
- case 10:
238
+ case 11:
233
239
  if (!(beforeRequestContext === false)) {
234
- _context.next = 13;
240
+ _context.next = 14;
235
241
  break;
236
242
  }
237
243
 
238
244
  reject(false);
239
245
  return _context.abrupt("return");
240
246
 
241
- case 13:
247
+ case 14:
242
248
  requestContext = Object.assign({
243
- fields: (_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values
249
+ fields: fields
244
250
  }, _typeof(beforeRequestContext) === 'object' ? beforeRequestContext : {});
245
251
  resolve(requestContext);
246
252
 
247
- case 15:
253
+ case 16:
248
254
  case "end":
249
255
  return _context.stop();
250
256
  }
251
257
  }
252
- }, _callee, null, [[1, 7]]);
258
+ }, _callee, null, [[2, 8]]);
253
259
  }))).catch(function () {
254
260
  resolve(false);
255
261
  });
@@ -4,7 +4,7 @@ import { quickShowDrawerProps } from '@alicloudfe/components/types/drawer';
4
4
  import { ProFormSchema, ProFormSchemaItem } from '../form';
5
5
  import { ProMessageProps } from '../utils/message';
6
6
  import { RequestAction } from './request';
7
- export interface DialogAction extends Omit<RequestAction, 'url'>, Omit<QuickShowConfig, 'onError' | 'type'>, Omit<quickShowDrawerProps, 'trigger' | 'animation' | 'height' | 'locale' | 'onOk' | 'onCancel' | 'onError'> {
7
+ export interface DialogAction extends Omit<RequestAction, 'url'>, Omit<QuickShowConfig, 'onError' | 'type'>, Omit<quickShowDrawerProps, 'trigger' | 'animation' | 'height' | 'locale' | 'onError'> {
8
8
  /** 点击「确认按钮」后的数据请求地址,非必填,不填就不发请求 */
9
9
  url?: string;
10
10
  /** 弹窗类型,支持普通弹窗和抽屉两种模式,默认为普通弹窗 */
@@ -25,6 +25,10 @@ export interface DialogAction extends Omit<RequestAction, 'url'>, Omit<QuickShow
25
25
  schema?: any;
26
26
  /** 弹窗内容区的组件 */
27
27
  component?: any;
28
+ /** 点击确定自定义回调函数 */
29
+ onOk?: any;
30
+ /** 点击取消自定义回调函数 */
31
+ onCancel?: any;
28
32
  }
29
33
  export declare function useDialogAction(action: DialogAction, actionContext?: any, hasForm?: boolean): {
30
34
  [x: string]: (e: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>;
@@ -30,7 +30,7 @@ var _request = require("./request");
30
30
 
31
31
  var _utils2 = require("./utils");
32
32
 
33
- var _excluded = ["trigger", "url", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError"],
33
+ var _excluded = ["trigger", "url", "customRequest", "method", "params", "data", "extendParams", "successMsg", "errorMsg", "formatParams", "formatResult", "onSuccess", "onError", "onOk", "onCancel"],
34
34
  _excluded2 = ["title", "content", "component", "schema", "onFinish", "dialogType", "dialogQuickShowType", "messageType", "popType", "beforeRequest", "onTrigger", "link", "beforeContent", "afterContent", "message", "footerDescription", "footerAlign", "className"];
35
35
 
36
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -77,7 +77,9 @@ var FooterForm = function FooterForm(props) {
77
77
  var schema = props.schema,
78
78
  context = props.context,
79
79
  formRef = props.formRef;
80
- var form = (0, _form.createForm)();
80
+ var form = (0, _react.useMemo)(function () {
81
+ return (0, _form.createForm)();
82
+ }, []);
81
83
  (0, _react.useEffect)(function () {
82
84
  formRef.current = form;
83
85
  }, []);
@@ -110,6 +112,7 @@ function useDialogAction(action, actionContext, hasForm) {
110
112
 
111
113
  var trigger = action.trigger,
112
114
  url = action.url,
115
+ customRequest = action.customRequest,
113
116
  method = action.method,
114
117
  params = action.params,
115
118
  data = action.data,
@@ -120,6 +123,8 @@ function useDialogAction(action, actionContext, hasForm) {
120
123
  formatResult = action.formatResult,
121
124
  onSuccess = action.onSuccess,
122
125
  onError = action.onError,
126
+ propsOnOk = action.onOk,
127
+ propsOnCancel = action.onCancel,
123
128
  others = _objectWithoutProperties(action, _excluded);
124
129
 
125
130
  var _getTargetValue = (0, _utils.getTargetValue)(others, context),
@@ -200,33 +205,34 @@ function useDialogAction(action, actionContext, hasForm) {
200
205
 
201
206
  case 6:
202
207
  onFinish && onFinish();
208
+ propsOnOk && propsOnOk(context);
203
209
  resolve(true);
204
- _context.next = 18;
210
+ _context.next = 19;
205
211
  break;
206
212
 
207
- case 10:
208
- _context.prev = 10;
213
+ case 11:
214
+ _context.prev = 11;
209
215
  _context.t0 = _context["catch"](2);
210
216
  setLoading(false); // 如果 beforeRequest 中返回了 false 并且不是 dialog-form,则直接关闭弹窗
211
217
 
212
218
  if (!(beforeRequest && !hasForm)) {
213
- _context.next = 16;
219
+ _context.next = 17;
214
220
  break;
215
221
  }
216
222
 
217
223
  resolve(true);
218
224
  return _context.abrupt("return");
219
225
 
220
- case 16:
226
+ case 17:
221
227
  resolve(false);
222
228
  return _context.abrupt("return");
223
229
 
224
- case 18:
230
+ case 19:
225
231
  case "end":
226
232
  return _context.stop();
227
233
  }
228
234
  }
229
- }, _callee, null, [[2, 10]]);
235
+ }, _callee, null, [[2, 11]]);
230
236
  }));
231
237
 
232
238
  return function (_x) {
@@ -249,7 +255,9 @@ function useDialogAction(action, actionContext, hasForm) {
249
255
  });
250
256
  var dialogContent = Component ? /*#__PURE__*/_react.default.createElement(Component, _objectSpread({}, (0, _utils2.addContext)(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
251
257
 
252
- 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", {
258
+ var quickShowProps = _objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, "".concat(isPop ? 'onConfirm' : 'onOk'), onOk), _defineProperty(_objectSpread2, "onCancel", function onCancel() {
259
+ propsOnCancel && propsOnCancel(context);
260
+ }), _defineProperty(_objectSpread2, "title", addContextForReactNode(title, dialogContext)), _defineProperty(_objectSpread2, "content", /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, beforeContent && /*#__PURE__*/_react.default.createElement("div", {
253
261
  className: "teamix-pro-dialog-before-content"
254
262
  }, addContextForReactNode(beforeContent, dialogContext)), message && /*#__PURE__*/_react.default.createElement("div", {
255
263
  className: "teamix-pro-dialog-message"
package/lib/card/index.js CHANGED
@@ -267,8 +267,7 @@ var ProCard = function ProCard(props) {
267
267
  value: description,
268
268
  type: "text",
269
269
  render: {
270
- ellipsis: true,
271
- tooltip: description
270
+ ellipsis: true
272
271
  }
273
272
  })));
274
273
  };
@@ -32,7 +32,7 @@
32
32
  $grid-columns: 24;
33
33
  @for $i from 1 through $grid-columns {
34
34
  &-#{$i} {
35
- $width: percentage($i/$grid-columns);
35
+ $width: percentage($i / $grid-columns);
36
36
  flex: 0 0 $width;
37
37
  width: $width;
38
38
  max-width: $width;
@@ -52,7 +52,7 @@
52
52
  }
53
53
  }
54
54
 
55
- &-name{
55
+ &-name {
56
56
  flex-shrink: 0;
57
57
  }
58
58
 
@@ -135,6 +135,11 @@ var LightFilter = (0, _react2.observer)(function (props) {
135
135
  setActive(value);
136
136
  onFilterChange && onFilterChange(value);
137
137
  }, [onFilterChange]);
138
+ (0, _react.useEffect)(function () {
139
+ if (!filterItems.length) {
140
+ setActive(undefined);
141
+ }
142
+ }, [filterItems.length]);
138
143
  return /*#__PURE__*/_react.default.createElement("span", {
139
144
  className: (0, _classnames.default)(basePrefix(size), prefixCls({
140
145
  '': true,
@@ -143,7 +148,7 @@ var LightFilter = (0, _react2.observer)(function (props) {
143
148
  }, /*#__PURE__*/_react.default.createElement("span", {
144
149
  className: prefixCls('main')
145
150
  }, /*#__PURE__*/_react.default.createElement(_components.Select, _objectSpread(_objectSpread({}, filterProps), {}, {
146
- className: (0, _classnames.default)(prefixCls('select'), filterProps === null || filterProps === void 0 ? void 0 : filterProps.className),
151
+ className: (0, _classnames.default)(prefixCls('select'), _defineProperty({}, prefixCls('select-none'), !content.length), filterProps === null || filterProps === void 0 ? void 0 : filterProps.className),
147
152
  dataSource: filterItems,
148
153
  onChange: onSelectChange,
149
154
  value: active
@@ -37,6 +37,11 @@ $light-filter: #{teamix-pro-form}-light-filter;
37
37
  padding-right: 0;
38
38
  }
39
39
  }
40
+ .#{$light-filter}-select-none {
41
+ .#{$css-prefix}input-control {
42
+ padding-right: var(--input-m-icon-padding-right, 8px);
43
+ }
44
+ }
40
45
  }
41
46
 
42
47
  // 按钮后缀
@@ -45,7 +45,7 @@ var _useBindUrl2 = _interopRequireDefault(require("./useBindUrl"));
45
45
 
46
46
  require("./index.scss");
47
47
 
48
- var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "bindUrl", "onFilter", "onInit", "onReset", "onExpand", "onChange"];
48
+ var _excluded = ["addonAfter", "addonBefore", "mode", "purePanel", "expand", "formRef", "defaultFilterValue", "filterValues", "filterDebounce", "bindUrl", "onFilter", "onInit", "onReset", "onExpand", "onChange", "form"];
49
49
 
50
50
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
51
51
 
@@ -106,6 +106,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
106
106
  outerReset = props.onReset,
107
107
  onExpand = props.onExpand,
108
108
  onChange = props.onChange,
109
+ form = props.form,
109
110
  otherProps = _objectWithoutProperties(props, _excluded);
110
111
 
111
112
  var _useSpecialProps = (0, _useSpecialProps2.default)(props),
@@ -324,7 +325,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
324
325
  });
325
326
  }
326
327
  });
327
- }, []); // 创建轻量筛选表单实例
328
+ }, [form]); // 创建轻量筛选表单实例
328
329
 
329
330
  var lightForm = (0, _react.useMemo)(function () {
330
331
  return (0, _core.createForm)({
@@ -335,7 +336,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
335
336
  });
336
337
  }
337
338
  });
338
- }, []); // 创建高级筛选表单实例
339
+ }, [form]); // 创建高级筛选表单实例
339
340
 
340
341
  var advancedForm = (0, _react.useMemo)(function () {
341
342
  return (0, _core.createForm)({
@@ -355,7 +356,7 @@ var QueryFilter = /*#__PURE__*/(0, _react.memo)(function (props) {
355
356
  });
356
357
  }
357
358
  });
358
- }, []);
359
+ }, [form]);
359
360
  var formMap = {
360
361
  simple: simpleForm,
361
362
  light: lightForm,
@@ -121,7 +121,7 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
121
121
  return outerForm || (0, _core.createForm)({
122
122
  validateFirst: validateFirst
123
123
  });
124
- }, []);
124
+ }, [outerForm]);
125
125
  var prefixCls = (0, _utils.usePrefixCls)('teamix-pro-form'); // 由于Actions需要,解构context供使用。原context键名的上下文继续保留。
126
126
 
127
127
  var mergedScope = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, context), globalScope), scope), {}, {
@@ -182,7 +182,7 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
182
182
  });
183
183
  });
184
184
  }
185
- }, [onChange]);
185
+ }, [onChange, form]);
186
186
  (0, _react.useEffect)(function () {
187
187
  // 配置国际化
188
188
  (0, _core.setValidateLanguage)((0, _utils.getLanguage)() || 'zh-cn');
@@ -332,6 +332,11 @@
332
332
  }
333
333
  }
334
334
 
335
+ // ArrayTable
336
+ .#{$form-array}-table-status-select {
337
+ display: none;
338
+ }
339
+
335
340
  // SelectTable
336
341
  .#{$teamix-pro-form}-select-table-column-tree
337
342
  > .#{$css-prefix}table-cell-wrapper {
@@ -11,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _react2 = require("@formily/react");
13
13
 
14
+ var _utils = require("@teamix/utils");
15
+
14
16
  var _adapterType = _interopRequireDefault(require("./adapterType"));
15
17
 
16
18
  var _adapterComponent = _interopRequireDefault(require("./adapterComponent"));
@@ -49,7 +51,7 @@ var _reactions = require("./reactions");
49
51
 
50
52
  var _fieldTypeMap = _interopRequireDefault(require("../fieldTypeMap"));
51
53
 
52
- var _utils = require("../utils");
54
+ var _utils2 = require("../utils");
53
55
 
54
56
  var _warning = _interopRequireDefault(require("../warning"));
55
57
 
@@ -173,8 +175,7 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
173
175
  var _newItem2 = newItem,
174
176
  component = _newItem2.component,
175
177
  type = _newItem2.type,
176
- _newItem2$name = _newItem2.name,
177
- name = _newItem2$name === void 0 ? (0, _utils.getFieldName)(component === null || component === void 0 ? void 0 : component.replace(/\./g, ''), suffix) : _newItem2$name,
178
+ name = _newItem2.name,
178
179
  decorator = _newItem2.decorator,
179
180
  decoratorProps = _newItem2.decoratorProps,
180
181
  dataSource = _newItem2.dataSource,
@@ -185,8 +186,10 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
185
186
  tooltip = _newItem2.tooltip,
186
187
  request = _newItem2.request,
187
188
  data = _newItem2.data,
188
- otherProps = _objectWithoutProperties(_newItem2, _excluded); // 默认类型
189
+ otherProps = _objectWithoutProperties(_newItem2, _excluded); // 默认字段名
190
+
189
191
 
192
+ var defaultName = !name ? (0, _utils2.getFieldName)(component === null || component === void 0 ? void 0 : component.replace(/\./g, ''), suffix) : name; // 默认类型
190
193
 
191
194
  var defaultType = (0, _adapterType.default)(type, originalComponent); // 默认装饰组件
192
195
 
@@ -225,7 +228,7 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
225
228
 
226
229
  schemaScopeRef.current[k] = v;
227
230
  });
228
- var formatParam = (0, _utils.mapSchemaName)(_objectSpread(_objectSpread({}, otherProps), {}, {
231
+ var formatParam = (0, _utils2.mapSchemaName)(_objectSpread(_objectSpread({}, otherProps), {}, {
229
232
  type: defaultType,
230
233
  component: component,
231
234
  decorator: defaultDecorator,
@@ -245,7 +248,9 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
245
248
 
246
249
  var recursiveItems = items ? formatSchema([items], suffix) : {}; // 配置组件属性
247
250
 
248
- schemaProperties[name] = _objectSpread(_objectSpread(_objectSpread({}, formatParam), recursiveProperties), recursiveItems);
251
+ if ((0, _utils.isUsable)(item)) {
252
+ schemaProperties[defaultName] = _objectSpread(_objectSpread(_objectSpread({}, formatParam), recursiveProperties), recursiveItems);
253
+ }
249
254
  });
250
255
  return schemaProperties;
251
256
  }, []);
@@ -0,0 +1,32 @@
1
+ import ProAction from './actions';
2
+ import ProCard from './card';
3
+ import ProField from './field';
4
+ import ProForm from './form';
5
+ import hooks from './hooks';
6
+ import ProInfo from './info';
7
+ import ProPageContainer from './page-container';
8
+ import ProPageHeader from './page-header';
9
+ import ProTable from './table';
10
+ import ProSkeleton from './skeleton';
11
+ import utils from './utils';
12
+ import ProSidebar from './sidebar';
13
+ import { ProTimeline } from './timeline';
14
+ import * as nocode from './nocode';
15
+ import * as templates from './templates';
16
+ import TeamixIcon from '@teamix/icon';
17
+ import './global.scss';
18
+ export * from './actions';
19
+ export * from './card';
20
+ export * from './field';
21
+ export * from './form';
22
+ export * from './info';
23
+ export * from './nocode';
24
+ export * from './page-container';
25
+ export * from './page-header';
26
+ export * from './skeleton';
27
+ export * from './table';
28
+ export * from './sidebar';
29
+ export * from './utils';
30
+ export * from './timeline';
31
+ declare const version = "1.4.7";
32
+ export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProSidebar, ProTimeline, TeamixIcon, hooks, nocode, templates, utils, };