@teamix/pro 1.3.3 → 1.3.4

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.
@@ -1,5 +1,5 @@
1
1
  var _excluded = ["schema"],
2
- _excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef"];
2
+ _excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef", "extendParams"];
3
3
 
4
4
  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); }
5
5
 
@@ -147,6 +147,7 @@ export function useDialogFormAction(action, context) {
147
147
  _onFinish = action.onFinish,
148
148
  propsBeforeRequest = action.beforeRequest,
149
149
  propsFormRef = action.formRef,
150
+ propsExtendParams = action.extendParams,
150
151
  others = _objectWithoutProperties(action, _excluded2);
151
152
 
152
153
  var innerFormRef = /*#__PURE__*/createRef();
@@ -167,10 +168,12 @@ export function useDialogFormAction(action, context) {
167
168
  formRef: propsFormRef
168
169
  }, dialogFormProps));
169
170
  },
170
- extendParams: useFieldValuesForRequest ? '{{fields}}' : undefined,
171
+ extendParams: useFieldValuesForRequest ? ['{{fields}}', propsExtendParams] : propsExtendParams,
171
172
  beforeRequest: function beforeRequest(context) {
172
173
  return new Promise(function (resolve, reject) {
173
174
  innerFormRef.current.validate().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
175
+ var _innerFormRef$current;
176
+
174
177
  var beforeRequestContext, requestContext;
175
178
  return regeneratorRuntime.wrap(function _callee$(_context) {
176
179
  while (1) {
@@ -206,7 +209,7 @@ export function useDialogFormAction(action, context) {
206
209
 
207
210
  case 13:
208
211
  requestContext = Object.assign({
209
- fields: innerFormRef.current.values
212
+ fields: (_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values
210
213
  }, _typeof(beforeRequestContext) === 'object' ? beforeRequestContext : {});
211
214
  resolve(requestContext);
212
215
 
@@ -222,9 +225,9 @@ export function useDialogFormAction(action, context) {
222
225
  });
223
226
  },
224
227
  onFinish: function onFinish() {
225
- var _innerFormRef$current;
228
+ var _innerFormRef$current2;
226
229
 
227
- _onFinish && _onFinish((_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values);
230
+ _onFinish && _onFinish((_innerFormRef$current2 = innerFormRef.current) === null || _innerFormRef$current2 === void 0 ? void 0 : _innerFormRef$current2.values);
228
231
  }
229
232
  }, others), context);
230
233
  }
@@ -32,7 +32,7 @@ import classnames from 'classnames';
32
32
  import { useHistory } from 'react-router-dom';
33
33
  import { Dialog, Drawer } from '@alicloudfe/components';
34
34
  import PopConfirm from '@teamix/pop-confirm';
35
- import { getTargetValue, uuid, getMessage } from '@teamix/utils';
35
+ import { getTargetValue, getMessage } from '@teamix/utils';
36
36
  import ProForm, { createForm } from '../form';
37
37
  import { renderProMessage } from '../utils/message';
38
38
  import { eventHandler } from './base';
@@ -210,9 +210,7 @@ export function useDialogAction(action, actionContext) {
210
210
  var dialogContext = Object.assign({}, context, {
211
211
  hide: hide
212
212
  });
213
- var dialogContent = Component ? /*#__PURE__*/React.createElement(Component, _objectSpread({
214
- key: uuid()
215
- }, addContext(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
213
+ var dialogContent = Component ? /*#__PURE__*/React.createElement(Component, _objectSpread({}, addContext(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
216
214
 
217
215
  var quickShowProps = _objectSpread(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, "".concat(isPop ? 'onConfirm' : 'onOk'), onOk), _defineProperty(_objectSpread2, "title", addContextForReactNode(title, dialogContext)), _defineProperty(_objectSpread2, "content", /*#__PURE__*/React.createElement(React.Fragment, null, beforeContent && /*#__PURE__*/React.createElement("div", {
218
216
  className: "teamix-pro-dialog-before-content"
@@ -12,7 +12,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
 
13
13
  import { useForm } from '@formily/react';
14
14
  import { toJS } from '@formily/reactive';
15
- import { isArr, isPlainObj, isSignificative, getValueByValue } from '@teamix/utils';
15
+ import { isArr, isPlainObj, isUsable, getValueByValue } from '@teamix/utils';
16
16
  import fieldTypeMap from '../fieldTypeMap';
17
17
  /**
18
18
  * 获取表单值的可显示值
@@ -44,7 +44,7 @@ var getDisplayValues = function getDisplayValues(form, values) {
44
44
 
45
45
  var isFieldValue = Object.keys(fieldTypeMap).includes(field === null || field === void 0 ? void 0 : field.component[0]); // 判断值的类型,递归获取每个值在该结构中的完整路径
46
46
 
47
- if (!isSignificative(values)) {
47
+ if (!isUsable(values)) {
48
48
  displayValues = {};
49
49
  } else if (isPlainObj(values) && !isFieldValue) {
50
50
  // 如果值是布局对象的值
@@ -220,7 +220,8 @@ export default /*#__PURE__*/memo(function (_ref) {
220
220
  var _initializeDataSource = initializeDataSource(dataSource, "".concat(suffix, "d")),
221
221
  defaultDataSource = _initializeDataSource.dataSource,
222
222
  dataSourceReactions = _initializeDataSource.reactions,
223
- dataSourceScope = _initializeDataSource.scope; // 初始化rules validator
223
+ dataSourceScope = _initializeDataSource.scope,
224
+ dataSourceData = _initializeDataSource.data; // 初始化rules validator
224
225
 
225
226
 
226
227
  var _initializeRules = initializeRules(rules, "".concat(suffix, "v")),
@@ -245,9 +246,9 @@ export default /*#__PURE__*/memo(function (_ref) {
245
246
  rules: defaultRules,
246
247
  reactions: defaultReactions,
247
248
  dataSource: defaultDataSource,
248
- data: data || {
249
- placeholder: true
250
- }
249
+ data: _objectSpread(_objectSpread(_objectSpread({}, data), dataSourceData), {}, {
250
+ __placeholder: true
251
+ })
251
252
  })); // 递归子组件
252
253
 
253
254
  var recursiveProperties = (children === null || children === void 0 ? void 0 : children.length) ? {
@@ -6,6 +6,7 @@ interface IInitializeDataSource {
6
6
  scope: {
7
7
  [x: string]: any;
8
8
  };
9
+ data?: any;
9
10
  };
10
11
  }
11
12
  declare const initializeDataSource: IInitializeDataSource;
@@ -4,11 +4,17 @@ import { isPlainObj } from '@teamix/utils';
4
4
 
5
5
  var initializeDataSource = function initializeDataSource(dataSource, suffix) {
6
6
  if (isPlainObj(dataSource)) {
7
+ var _requestConfig$extraC;
8
+
7
9
  var requestConfig = dataSource;
8
10
  var requestConfigName = "$requestConfig_".concat(suffix);
9
11
  return {
10
12
  reactions: ["{{$dataSource($request,".concat(requestConfigName, ",context)}}")],
11
- scope: _defineProperty({}, requestConfigName, requestConfig)
13
+ scope: _defineProperty({}, requestConfigName, requestConfig),
14
+ // dataSource请求时,默认配置字段为只读
15
+ data: {
16
+ readOnlyOnLoading: (requestConfig === null || requestConfig === void 0 ? void 0 : (_requestConfig$extraC = requestConfig.extraConfig) === null || _requestConfig$extraC === void 0 ? void 0 : _requestConfig$extraC.readOnly) !== false
17
+ }
12
18
  };
13
19
  }
14
20
 
@@ -1,5 +1,5 @@
1
1
  import type { ProFormRequestConfig } from '../typing';
2
- declare const $request: (field: any, requestConfig: ProFormRequestConfig, context: any, type: 'request' | 'validator' | 'dataSource') => Promise<unknown>;
2
+ declare const $request: (field: any, { extraConfig, ...requestConfig }: ProFormRequestConfig, context: any, type: 'request' | 'validator' | 'dataSource') => Promise<unknown>;
3
3
  declare const $common: (services: any, requestConfig: ProFormRequestConfig, context: any) => (field: any) => any;
4
4
  declare const $validator: (services: any, requestConfig: ProFormRequestConfig, context: any) => (value: any, rules: any, { field }: any) => any;
5
5
  declare const $dataSource: (services: any, requestConfig: ProFormRequestConfig, context: any) => (field: any) => any;
@@ -1,14 +1,23 @@
1
+ var _excluded = ["extraConfig"];
2
+
1
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
4
 
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
6
 
5
7
  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; }
6
8
 
9
+ 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; }
10
+
11
+ 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; }
12
+
7
13
  import { isFn, isPureObj, doCommonRequest, getValueByValue } from '@teamix/utils'; // 配置请求
8
14
 
9
- var $request = function $request(field, requestConfig, context, type) {
15
+ var $request = function $request(field, _ref, context, type) {
10
16
  var _field$data;
11
17
 
18
+ var extraConfig = _ref.extraConfig,
19
+ requestConfig = _objectWithoutProperties(_ref, _excluded);
20
+
12
21
  var params = requestConfig.params,
13
22
  beforeRequest = requestConfig.beforeRequest,
14
23
  formatResult = requestConfig.formatResult,
@@ -48,8 +57,8 @@ var $common = function $common(services, requestConfig, context) {
48
57
 
49
58
 
50
59
  var $validator = function $validator(services, requestConfig, context) {
51
- return function (value, rules, _ref) {
52
- var field = _ref.field;
60
+ return function (value, rules, _ref2) {
61
+ var field = _ref2.field;
53
62
  return services(field, requestConfig, context, 'validator').then(function (res) {
54
63
  var _requestConfig$onComp2;
55
64
 
@@ -65,16 +74,16 @@ var $dataSource = function $dataSource(services, requestConfig, context) {
65
74
  loading: true
66
75
  });
67
76
  return services(field, requestConfig, context, 'dataSource').then(function (res) {
68
- var _requestConfig$onComp3;
77
+ var _requestConfig$extraC, _requestConfig$onComp3;
69
78
 
70
79
  var isValueInDataSource = getValueByValue(res, field.value);
71
- var clearValue = isValueInDataSource ? {} : {
80
+ var clearResult = !isValueInDataSource && (requestConfig === null || requestConfig === void 0 ? void 0 : (_requestConfig$extraC = requestConfig.extraConfig) === null || _requestConfig$extraC === void 0 ? void 0 : _requestConfig$extraC.clearInvalidValue) !== false ? {
72
81
  value: undefined
73
- };
82
+ } : {};
74
83
  field.setState(_objectSpread({
75
84
  dataSource: res,
76
85
  loading: false
77
- }, clearValue));
86
+ }, clearResult));
78
87
  return (_requestConfig$onComp3 = requestConfig.onComplete) === null || _requestConfig$onComp3 === void 0 ? void 0 : _requestConfig$onComp3.call(requestConfig, res, field, context);
79
88
  }).catch(function () {
80
89
  field.setState({
@@ -31,6 +31,7 @@ declare const formilyReact: {
31
31
  displayName: string;
32
32
  };
33
33
  RecursionField: import("react").FC<originalFormilyReact.IRecursionFieldProps>;
34
+ ExpressionScope: import("react").FC<originalFormilyReact.IExpressionScopeProps>;
34
35
  createSchemaField<Components extends originalFormilyReact.SchemaReactComponents>(options?: originalFormilyReact.ISchemaFieldReactFactoryOptions<Components> | undefined): {
35
36
  <Decorator extends originalFormilyReact.JSXComponent, Component extends originalFormilyReact.JSXComponent>(props: originalFormilyReact.ISchemaFieldProps<Decorator, Component, import("@formily/core").ObjectField<Decorator, Component>>): JSX.Element;
36
37
  displayName: string;
@@ -90,7 +91,7 @@ declare const formilyReact: {
90
91
  }>>;
91
92
  connect<T_2 extends originalFormilyReact.JSXComponent>(target: T_2, ...args: originalFormilyReact.IComponentMapper<T_2>[]): import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<Partial<import("react").ComponentProps<T_2>>> & import("react").RefAttributes<unknown>>;
92
93
  observer: typeof originalFormilyReact.observer;
93
- Observer: import("react").MemoExoticComponent<import("react").FunctionComponent<import("@formily/reactive-react").IObserverProps>>;
94
+ Observer: import("react").MemoExoticComponent<import("react").FunctionComponent<import("_@formily_reactive-react@2.0.11@@formily/reactive-react").IObserverProps>>;
94
95
  useForm: <T_3 extends object = any>() => import("@formily/core").Form<T_3>;
95
96
  useField: <T_4 = import("@formily/core").GeneralField>() => T_4;
96
97
  useParentForm: () => import("@formily/core").Form<any> | import("@formily/core").ObjectField<any, any>;
@@ -23,6 +23,7 @@ export interface ProFormRequestConfig extends CommonRequestConfig {
23
23
  formatResult?: (res?: any, field?: any, context?: any) => any;
24
24
  onSuccess?: (res?: any, field?: any, context?: any) => any;
25
25
  onComplete?: (res?: any, field?: any, context?: any) => any;
26
+ extraConfig?: AnyObject;
26
27
  }
27
28
  export interface ProFormSchemaItem {
28
29
  type?: string;
package/es/form/utils.js CHANGED
@@ -55,6 +55,8 @@ var mapSize = function mapSize(props, field) {
55
55
 
56
56
 
57
57
  var mapStatus = function mapStatus(props, field) {
58
+ var _field$data;
59
+
58
60
  var takeStatus = function takeStatus() {
59
61
  var _field$warnings, _field$decoratorProps, _field$decoratorProps2;
60
62
 
@@ -77,7 +79,7 @@ var mapStatus = function mapStatus(props, field) {
77
79
  state: state
78
80
  }; // 当组件处于loading状态时,仅可读不可写。
79
81
 
80
- if (state === 'loading') {
82
+ if (state === 'loading' && ((_field$data = field.data) === null || _field$data === void 0 ? void 0 : _field$data.readOnlyOnLoading)) {
81
83
  result.readOnly = true;
82
84
  }
83
85
 
package/es/index.d.ts CHANGED
@@ -24,5 +24,5 @@ export * from './skeleton';
24
24
  export * from './table';
25
25
  export * from './utils';
26
26
  export * from './timeline';
27
- declare const version = "1.3.3";
27
+ declare const version = "1.3.4";
28
28
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProTimeline, hooks, nocode, templates, utils, };
package/es/index.js CHANGED
@@ -30,7 +30,7 @@ export * from './table';
30
30
  export * from './utils'; // export * from './sidebar';
31
31
 
32
32
  export * from './timeline';
33
- var version = '1.3.3';
33
+ var version = '1.3.4';
34
34
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, // ProLayout,
35
35
  ProPageContainer, ProPageHeader, ProSkeleton, ProTable, // ProSidebar,
36
36
  ProTimeline, hooks, nocode, templates, utils };
@@ -23,7 +23,7 @@ var _dialog = _interopRequireDefault(require("./dialog"));
23
23
  var _utils2 = require("./utils");
24
24
 
25
25
  var _excluded = ["schema"],
26
- _excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef"];
26
+ _excluded2 = ["schema", "useFieldValuesForRequest", "initialValues", "initialRequest", "formProps", "size", "onFinish", "beforeRequest", "formRef", "extendParams"];
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
@@ -168,6 +168,7 @@ function useDialogFormAction(action, context) {
168
168
  _onFinish = action.onFinish,
169
169
  propsBeforeRequest = action.beforeRequest,
170
170
  propsFormRef = action.formRef,
171
+ propsExtendParams = action.extendParams,
171
172
  others = _objectWithoutProperties(action, _excluded2);
172
173
 
173
174
  var innerFormRef = /*#__PURE__*/(0, _react.createRef)();
@@ -188,10 +189,12 @@ function useDialogFormAction(action, context) {
188
189
  formRef: propsFormRef
189
190
  }, dialogFormProps));
190
191
  },
191
- extendParams: useFieldValuesForRequest ? '{{fields}}' : undefined,
192
+ extendParams: useFieldValuesForRequest ? ['{{fields}}', propsExtendParams] : propsExtendParams,
192
193
  beforeRequest: function beforeRequest(context) {
193
194
  return new Promise(function (resolve, reject) {
194
195
  innerFormRef.current.validate().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
196
+ var _innerFormRef$current;
197
+
195
198
  var beforeRequestContext, requestContext;
196
199
  return regeneratorRuntime.wrap(function _callee$(_context) {
197
200
  while (1) {
@@ -227,7 +230,7 @@ function useDialogFormAction(action, context) {
227
230
 
228
231
  case 13:
229
232
  requestContext = Object.assign({
230
- fields: innerFormRef.current.values
233
+ fields: (_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values
231
234
  }, _typeof(beforeRequestContext) === 'object' ? beforeRequestContext : {});
232
235
  resolve(requestContext);
233
236
 
@@ -243,9 +246,9 @@ function useDialogFormAction(action, context) {
243
246
  });
244
247
  },
245
248
  onFinish: function onFinish() {
246
- var _innerFormRef$current;
249
+ var _innerFormRef$current2;
247
250
 
248
- _onFinish && _onFinish((_innerFormRef$current = innerFormRef.current) === null || _innerFormRef$current === void 0 ? void 0 : _innerFormRef$current.values);
251
+ _onFinish && _onFinish((_innerFormRef$current2 = innerFormRef.current) === null || _innerFormRef$current2 === void 0 ? void 0 : _innerFormRef$current2.values);
249
252
  }
250
253
  }, others), context);
251
254
  }
@@ -236,9 +236,7 @@ function useDialogAction(action, actionContext) {
236
236
  var dialogContext = Object.assign({}, context, {
237
237
  hide: hide
238
238
  });
239
- var dialogContent = Component ? /*#__PURE__*/_react.default.createElement(Component, _objectSpread({
240
- key: (0, _utils.uuid)()
241
- }, (0, _utils2.addContext)(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
239
+ var dialogContent = Component ? /*#__PURE__*/_react.default.createElement(Component, _objectSpread({}, (0, _utils2.addContext)(componentProps, dialogContext))) : addContextForReactNode(content, dialogContext);
242
240
 
243
241
  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", {
244
242
  className: "teamix-pro-dialog-before-content"
@@ -56,7 +56,7 @@ var getDisplayValues = function getDisplayValues(form, values) {
56
56
 
57
57
  var isFieldValue = Object.keys(_fieldTypeMap.default).includes(field === null || field === void 0 ? void 0 : field.component[0]); // 判断值的类型,递归获取每个值在该结构中的完整路径
58
58
 
59
- if (!(0, _utils.isSignificative)(values)) {
59
+ if (!(0, _utils.isUsable)(values)) {
60
60
  displayValues = {};
61
61
  } else if ((0, _utils.isPlainObj)(values) && !isFieldValue) {
62
62
  // 如果值是布局对象的值
@@ -266,7 +266,8 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
266
266
  var _initializeDataSource = (0, _initializeDataSource2.default)(dataSource, "".concat(suffix, "d")),
267
267
  defaultDataSource = _initializeDataSource.dataSource,
268
268
  dataSourceReactions = _initializeDataSource.reactions,
269
- dataSourceScope = _initializeDataSource.scope; // 初始化rules validator
269
+ dataSourceScope = _initializeDataSource.scope,
270
+ dataSourceData = _initializeDataSource.data; // 初始化rules validator
270
271
 
271
272
 
272
273
  var _initializeRules = (0, _initializeRules2.default)(rules, "".concat(suffix, "v")),
@@ -291,9 +292,9 @@ var _default = /*#__PURE__*/(0, _react.memo)(function (_ref) {
291
292
  rules: defaultRules,
292
293
  reactions: defaultReactions,
293
294
  dataSource: defaultDataSource,
294
- data: data || {
295
- placeholder: true
296
- }
295
+ data: _objectSpread(_objectSpread(_objectSpread({}, data), dataSourceData), {}, {
296
+ __placeholder: true
297
+ })
297
298
  })); // 递归子组件
298
299
 
299
300
  var recursiveProperties = (children === null || children === void 0 ? void 0 : children.length) ? {
@@ -6,6 +6,7 @@ interface IInitializeDataSource {
6
6
  scope: {
7
7
  [x: string]: any;
8
8
  };
9
+ data?: any;
9
10
  };
10
11
  }
11
12
  declare const initializeDataSource: IInitializeDataSource;
@@ -11,11 +11,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
11
11
 
12
12
  var initializeDataSource = function initializeDataSource(dataSource, suffix) {
13
13
  if ((0, _utils.isPlainObj)(dataSource)) {
14
+ var _requestConfig$extraC;
15
+
14
16
  var requestConfig = dataSource;
15
17
  var requestConfigName = "$requestConfig_".concat(suffix);
16
18
  return {
17
19
  reactions: ["{{$dataSource($request,".concat(requestConfigName, ",context)}}")],
18
- scope: _defineProperty({}, requestConfigName, requestConfig)
20
+ scope: _defineProperty({}, requestConfigName, requestConfig),
21
+ // dataSource请求时,默认配置字段为只读
22
+ data: {
23
+ readOnlyOnLoading: (requestConfig === null || requestConfig === void 0 ? void 0 : (_requestConfig$extraC = requestConfig.extraConfig) === null || _requestConfig$extraC === void 0 ? void 0 : _requestConfig$extraC.readOnly) !== false
24
+ }
19
25
  };
20
26
  }
21
27
 
@@ -1,5 +1,5 @@
1
1
  import type { ProFormRequestConfig } from '../typing';
2
- declare const $request: (field: any, requestConfig: ProFormRequestConfig, context: any, type: 'request' | 'validator' | 'dataSource') => Promise<unknown>;
2
+ declare const $request: (field: any, { extraConfig, ...requestConfig }: ProFormRequestConfig, context: any, type: 'request' | 'validator' | 'dataSource') => Promise<unknown>;
3
3
  declare const $common: (services: any, requestConfig: ProFormRequestConfig, context: any) => (field: any) => any;
4
4
  declare const $validator: (services: any, requestConfig: ProFormRequestConfig, context: any) => (value: any, rules: any, { field }: any) => any;
5
5
  declare const $dataSource: (services: any, requestConfig: ProFormRequestConfig, context: any) => (field: any) => any;
@@ -7,16 +7,25 @@ exports.$validator = exports.$request = exports.$dataSource = exports.$common =
7
7
 
8
8
  var _utils = require("@teamix/utils");
9
9
 
10
+ var _excluded = ["extraConfig"];
11
+
10
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
13
 
12
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
15
 
14
16
  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; }
15
17
 
18
+ 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; }
19
+
20
+ 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; }
21
+
16
22
  // 配置请求
17
- var $request = function $request(field, requestConfig, context, type) {
23
+ var $request = function $request(field, _ref, context, type) {
18
24
  var _field$data;
19
25
 
26
+ var extraConfig = _ref.extraConfig,
27
+ requestConfig = _objectWithoutProperties(_ref, _excluded);
28
+
20
29
  var params = requestConfig.params,
21
30
  beforeRequest = requestConfig.beforeRequest,
22
31
  formatResult = requestConfig.formatResult,
@@ -60,8 +69,8 @@ var $common = function $common(services, requestConfig, context) {
60
69
  exports.$common = $common;
61
70
 
62
71
  var $validator = function $validator(services, requestConfig, context) {
63
- return function (value, rules, _ref) {
64
- var field = _ref.field;
72
+ return function (value, rules, _ref2) {
73
+ var field = _ref2.field;
65
74
  return services(field, requestConfig, context, 'validator').then(function (res) {
66
75
  var _requestConfig$onComp2;
67
76
 
@@ -79,16 +88,16 @@ var $dataSource = function $dataSource(services, requestConfig, context) {
79
88
  loading: true
80
89
  });
81
90
  return services(field, requestConfig, context, 'dataSource').then(function (res) {
82
- var _requestConfig$onComp3;
91
+ var _requestConfig$extraC, _requestConfig$onComp3;
83
92
 
84
93
  var isValueInDataSource = (0, _utils.getValueByValue)(res, field.value);
85
- var clearValue = isValueInDataSource ? {} : {
94
+ var clearResult = !isValueInDataSource && (requestConfig === null || requestConfig === void 0 ? void 0 : (_requestConfig$extraC = requestConfig.extraConfig) === null || _requestConfig$extraC === void 0 ? void 0 : _requestConfig$extraC.clearInvalidValue) !== false ? {
86
95
  value: undefined
87
- };
96
+ } : {};
88
97
  field.setState(_objectSpread({
89
98
  dataSource: res,
90
99
  loading: false
91
- }, clearValue));
100
+ }, clearResult));
92
101
  return (_requestConfig$onComp3 = requestConfig.onComplete) === null || _requestConfig$onComp3 === void 0 ? void 0 : _requestConfig$onComp3.call(requestConfig, res, field, context);
93
102
  }).catch(function () {
94
103
  field.setState({
@@ -31,6 +31,7 @@ declare const formilyReact: {
31
31
  displayName: string;
32
32
  };
33
33
  RecursionField: import("react").FC<originalFormilyReact.IRecursionFieldProps>;
34
+ ExpressionScope: import("react").FC<originalFormilyReact.IExpressionScopeProps>;
34
35
  createSchemaField<Components extends originalFormilyReact.SchemaReactComponents>(options?: originalFormilyReact.ISchemaFieldReactFactoryOptions<Components> | undefined): {
35
36
  <Decorator extends originalFormilyReact.JSXComponent, Component extends originalFormilyReact.JSXComponent>(props: originalFormilyReact.ISchemaFieldProps<Decorator, Component, import("@formily/core").ObjectField<Decorator, Component>>): JSX.Element;
36
37
  displayName: string;
@@ -90,7 +91,7 @@ declare const formilyReact: {
90
91
  }>>;
91
92
  connect<T_2 extends originalFormilyReact.JSXComponent>(target: T_2, ...args: originalFormilyReact.IComponentMapper<T_2>[]): import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<Partial<import("react").ComponentProps<T_2>>> & import("react").RefAttributes<unknown>>;
92
93
  observer: typeof originalFormilyReact.observer;
93
- Observer: import("react").MemoExoticComponent<import("react").FunctionComponent<import("@formily/reactive-react").IObserverProps>>;
94
+ Observer: import("react").MemoExoticComponent<import("react").FunctionComponent<import("_@formily_reactive-react@2.0.11@@formily/reactive-react").IObserverProps>>;
94
95
  useForm: <T_3 extends object = any>() => import("@formily/core").Form<T_3>;
95
96
  useField: <T_4 = import("@formily/core").GeneralField>() => T_4;
96
97
  useParentForm: () => import("@formily/core").Form<any> | import("@formily/core").ObjectField<any, any>;
@@ -23,6 +23,7 @@ export interface ProFormRequestConfig extends CommonRequestConfig {
23
23
  formatResult?: (res?: any, field?: any, context?: any) => any;
24
24
  onSuccess?: (res?: any, field?: any, context?: any) => any;
25
25
  onComplete?: (res?: any, field?: any, context?: any) => any;
26
+ extraConfig?: AnyObject;
26
27
  }
27
28
  export interface ProFormSchemaItem {
28
29
  type?: string;
package/lib/form/utils.js CHANGED
@@ -69,6 +69,8 @@ var mapSize = function mapSize(props, field) {
69
69
  exports.mapSize = mapSize;
70
70
 
71
71
  var mapStatus = function mapStatus(props, field) {
72
+ var _field$data;
73
+
72
74
  var takeStatus = function takeStatus() {
73
75
  var _field$warnings, _field$decoratorProps, _field$decoratorProps2;
74
76
 
@@ -91,7 +93,7 @@ var mapStatus = function mapStatus(props, field) {
91
93
  state: state
92
94
  }; // 当组件处于loading状态时,仅可读不可写。
93
95
 
94
- if (state === 'loading') {
96
+ if (state === 'loading' && ((_field$data = field.data) === null || _field$data === void 0 ? void 0 : _field$data.readOnlyOnLoading)) {
95
97
  result.readOnly = true;
96
98
  }
97
99
 
package/lib/index.d.ts CHANGED
@@ -24,5 +24,5 @@ export * from './skeleton';
24
24
  export * from './table';
25
25
  export * from './utils';
26
26
  export * from './timeline';
27
- declare const version = "1.3.3";
27
+ declare const version = "1.3.4";
28
28
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProTimeline, hooks, nocode, templates, utils, };
package/lib/index.js CHANGED
@@ -285,5 +285,5 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
285
285
  // 设置图标源
286
286
  _icon.default.setConfig(_utils.default.getTeamixIconConfig());
287
287
 
288
- var version = '1.3.3';
288
+ var version = '1.3.4';
289
289
  exports.version = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamix/pro",
3
- "version": "1.3.3",
3
+ "version": "1.3.4",
4
4
  "description": "TeamixPro大包",
5
5
  "repository": "http://gitlab.alibaba-inc.com/teamix/pro",
6
6
  "author": "Velociraptor(迅猛龙)",