@teamias/rex-design 0.0.17 → 0.0.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.
@@ -101,15 +101,13 @@ export var BaseForm = function BaseForm(props) {
101
101
  return /*#__PURE__*/_jsx(ProFormDependency, {
102
102
  name: allFields,
103
103
  children: function children(data, form) {
104
- var _config$item;
105
104
  // 依赖规则可能有多条,且可能作用于同一类型(如多个 hidden、disabled 等),这里需要全部规则都满足才生效
106
- var _ref2 = [],
107
- hidden = _ref2[0],
108
- disabled = _ref2[1],
109
- clear = _ref2[2],
110
- updateData = _ref2[3],
111
- show = _ref2[4],
112
- syncValue = _ref2[5];
105
+ var hidden = [],
106
+ disabled = [],
107
+ clear = [],
108
+ updateData = [],
109
+ show = [],
110
+ syncValue = [];
113
111
 
114
112
  /** 条件判断 */
115
113
  var judge = function judge(inlineItem) {
@@ -137,23 +135,48 @@ export var BaseForm = function BaseForm(props) {
137
135
  var _dependItem$isTouched;
138
136
  switch (dependItem.action) {
139
137
  case 'hidden':
140
- // 多条 hidden 规则,只有全部为 true 时才隐藏(即“与”关系)
141
- if (typeof hidden === 'undefined' || hidden) hidden = isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem);
138
+ hidden.push(isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem));
139
+ // if (typeof hidden === 'undefined' || hidden)
140
+ // hidden =
141
+ // isTouchedFn(dependItem.field, dependItem.isTouched) &&
142
+ // judge(dependItem);
142
143
  break;
143
144
  case 'show':
144
- if (typeof show === 'undefined' || show) show = isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem);
145
+ show.push(isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem));
146
+ // if (typeof show === 'undefined' || show)
147
+ // show =
148
+ // isTouchedFn(dependItem.field, dependItem.isTouched) &&
149
+ // judge(dependItem);
145
150
  break;
146
151
  case 'disabled':
147
- if (typeof disabled === 'undefined' || disabled) disabled = isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem);
152
+ disabled.push(isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem));
153
+ // if (typeof disabled === 'undefined' || disabled)
154
+ // disabled =
155
+ // isTouchedFn(dependItem.field, dependItem.isTouched) &&
156
+ // judge(dependItem);
148
157
  break;
149
158
  case 'clear':
150
- if (typeof clear === 'undefined' || clear) clear = isTouchedFn(dependItem.field, (_dependItem$isTouched = dependItem.isTouched) !== null && _dependItem$isTouched !== void 0 ? _dependItem$isTouched : true) && judge(dependItem);
159
+ clear.push(isTouchedFn(dependItem.field, (_dependItem$isTouched = dependItem.isTouched) !== null && _dependItem$isTouched !== void 0 ? _dependItem$isTouched : true) && judge(dependItem));
160
+ // if (typeof clear === 'undefined' || clear)
161
+ // clear =
162
+ // isTouchedFn(
163
+ // dependItem.field,
164
+ // dependItem.isTouched ?? true,
165
+ // ) && judge(dependItem);
151
166
  break;
152
167
  case 'updateData':
153
- if (typeof updateData === 'undefined' || updateData) updateData = isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem);
168
+ updateData.push(isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem));
169
+ // if (typeof updateData === 'undefined' || updateData)
170
+ // updateData =
171
+ // isTouchedFn(dependItem.field, dependItem.isTouched) &&
172
+ // judge(dependItem);
154
173
  break;
155
174
  case 'syncValue':
156
- if (typeof syncValue === 'undefined' || syncValue) syncValue = isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem);
175
+ syncValue.push(isTouchedFn(dependItem.field, dependItem.isTouched) && judge(dependItem));
176
+ // if (typeof syncValue === 'undefined' || syncValue)
177
+ // syncValue =
178
+ // isTouchedFn(dependItem.field, dependItem.isTouched) &&
179
+ // judge(dependItem);
157
180
  break;
158
181
  default:
159
182
  console.error('Wrong dependenciesV2 action configure');
@@ -161,19 +184,38 @@ export var BaseForm = function BaseForm(props) {
161
184
  }
162
185
  });
163
186
 
164
- // 处理冲突:hidden 优先级最高,满足则直接 return null,不渲染
165
- if (hidden) return null;
166
- // show 存在时,只有全部 show 规则都为 true 才显示,否则 return null
167
- if (typeof show === 'boolean' && !show) return null;
187
+ // hidden: 满足一条 hidden 规则则隐藏
188
+ if (hidden.some(function (ii) {
189
+ return ii;
190
+ })) return null;
191
+ // show: 满足一条 show 规则则显示
192
+ if (show.length && !show.some(function (ii) {
193
+ return ii;
194
+ })) return null;
168
195
 
169
196
  // 实时修改 fieldProps,disabled 联动
170
- var fieldProps = ((_config$item = config.item) === null || _config$item === void 0 ? void 0 : _config$item.fieldProps) || {};
171
- config.item.fieldProps = _objectSpread(_objectSpread({}, fieldProps), {}, {
172
- disabled: disabled
173
- });
197
+ if (disabled.length) {
198
+ if (disabled.some(function (ii) {
199
+ return ii;
200
+ })) {
201
+ var _config$item;
202
+ var fieldProps = ((_config$item = config.item) === null || _config$item === void 0 ? void 0 : _config$item.fieldProps) || {};
203
+ config.item.fieldProps = _objectSpread(_objectSpread({}, fieldProps), {}, {
204
+ disabled: true
205
+ });
206
+ } else {
207
+ var _config$item2;
208
+ var _fieldProps = ((_config$item2 = config.item) === null || _config$item2 === void 0 ? void 0 : _config$item2.fieldProps) || {};
209
+ config.item.fieldProps = _objectSpread(_objectSpread({}, _fieldProps), {}, {
210
+ disabled: false
211
+ });
212
+ }
213
+ }
174
214
 
175
- // clear 联动,满足全部 clear 规则时清空当前字段
176
- if (clear) {
215
+ // clear: 满足一条 clear 规则则清除
216
+ if (clear.some(function (ii) {
217
+ return ii;
218
+ })) {
177
219
  setTimeout(function () {
178
220
  form.setFields([{
179
221
  name: keyStr,
@@ -184,11 +226,15 @@ export var BaseForm = function BaseForm(props) {
184
226
  });
185
227
  }
186
228
 
187
- // updateData 联动,满足全部 updateData 规则时缓存依赖数据
188
- dependenciesSearchCacheData[keyStr] = updateData ? data : undefined;
229
+ // updateData: 满足一条 updateData 规则则缓存依赖数据
230
+ dependenciesSearchCacheData[keyStr] = updateData.some(function (ii) {
231
+ return ii;
232
+ }) ? data : undefined;
189
233
 
190
- // syncValue 联动,满足全部 syncValue 规则时同步指定字段的值
191
- if (syncValue) {
234
+ // syncValue: 满足一条 syncValue 规则则同步指定字段的值
235
+ if (syncValue.some(function (ii) {
236
+ return ii;
237
+ })) {
192
238
  // 只取第一个 syncValue 规则对应的字段
193
239
  var key = item.dependenciesV2.find(function (ii) {
194
240
  return ii.action === 'syncValue';
@@ -224,8 +270,8 @@ export var BaseForm = function BaseForm(props) {
224
270
  return values[field] !== undefined && values[field] !== false && values[field].length !== 0;
225
271
  });
226
272
  if ((disabledFields === null || disabledFields === void 0 ? void 0 : disabledFields.length) > 0 && shouldDisabled) {
227
- var _config$item2;
228
- var fieldProps = ((_config$item2 = config.item) === null || _config$item2 === void 0 ? void 0 : _config$item2.fieldProps) || {};
273
+ var _config$item3;
274
+ var fieldProps = ((_config$item3 = config.item) === null || _config$item3 === void 0 ? void 0 : _config$item3.fieldProps) || {};
229
275
  config.item.fieldProps = _objectSpread(_objectSpread({}, fieldProps), {}, {
230
276
  disabled: true
231
277
  });
@@ -66,11 +66,6 @@ var s2 = function s2(params) {
66
66
  };
67
67
  export default (function () {
68
68
  var fields = [{
69
- valueType: 'dateRange',
70
- field: ['dateRange-start', 'dateRange-end'],
71
- label: 'dateRange',
72
- defaultValue: -6
73
- }, {
74
69
  valueType: 'selectDim',
75
70
  field: 'selectDim',
76
71
  label: 'selectDim',
@@ -80,18 +75,16 @@ export default (function () {
80
75
  }, {
81
76
  valueType: 'select',
82
77
  field: 'select',
83
- label: 'select(updateData)',
78
+ label: '1.selectDim 改变后更新接口数据 (updateData)',
84
79
  api: '/selectData',
85
80
  dependenciesV2: [{
86
81
  field: 'selectDim',
87
- action: 'updateData',
88
- op: 'eq',
89
- target: '2'
82
+ action: 'updateData'
90
83
  }]
91
84
  }, {
92
85
  valueType: 'input',
93
86
  field: 'input111',
94
- label: 'input (selectDim === 2 显示)',
87
+ label: '2.selectDim === 2 显示',
95
88
  dependenciesV2: [{
96
89
  field: 'selectDim',
97
90
  action: 'show',
@@ -101,7 +94,7 @@ export default (function () {
101
94
  }, {
102
95
  valueType: 'input',
103
96
  field: 'input222',
104
- label: 'input (selectDim 为空时隐藏)',
97
+ label: '3.selectDim 为空时隐藏',
105
98
  dependenciesV2: [{
106
99
  field: 'selectDim',
107
100
  action: 'hidden',
@@ -110,15 +103,18 @@ export default (function () {
110
103
  }, {
111
104
  valueType: 'input',
112
105
  field: 'input333',
113
- label: 'input (selectDim 改变时,清空值)',
106
+ label: '4.(selectDim 和 1.) 改变时,清空值',
114
107
  dependenciesV2: [{
115
108
  field: 'selectDim',
116
109
  action: 'clear'
110
+ }, {
111
+ field: 'select',
112
+ action: 'clear'
117
113
  }]
118
114
  }, {
119
115
  valueType: 'input',
120
116
  field: 'input444',
121
- label: 'input (selectDim 改变时同步赋值)',
117
+ label: '5.selectDim 改变时同步赋值',
122
118
  dependenciesV2: [{
123
119
  field: 'selectDim',
124
120
  action: 'syncValue'
@@ -126,7 +122,7 @@ export default (function () {
126
122
  }, {
127
123
  valueType: 'input',
128
124
  field: 'input555',
129
- label: 'input (selectDim 非空disabled)',
125
+ label: '6.selectDim 非空 disabled',
130
126
  dependenciesV2: [{
131
127
  field: 'selectDim',
132
128
  action: 'disabled',
@@ -135,28 +131,6 @@ export default (function () {
135
131
  field: 'selectDim',
136
132
  action: 'syncValue'
137
133
  }]
138
- }, {
139
- label: '订单类型',
140
- field: 'order_type',
141
- valueType: 'select',
142
- multiple: false,
143
- api: '/selectData',
144
- defaultParams: {
145
- type: 1
146
- }
147
- }, {
148
- label: '状态',
149
- field: 'status',
150
- valueType: 'select',
151
- multiple: false,
152
- api: '/selectData',
153
- dependenciesV2: [{
154
- field: 'order_type',
155
- action: 'updateData'
156
- }]
157
- // "defaultParams": {
158
- // "order_type": 2
159
- // }
160
134
  }];
161
135
  var initialValues = getFieldsDefaultValues(fields);
162
136
  // console.log(initialValues);
@@ -14,9 +14,14 @@ import { getFieldsDefaultValues } from "../modules/handlerData";
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  export default (function () {
17
+ var t = 'hidden';
17
18
  var _useStateData = useStateData(function () {
18
19
  return {
19
20
  fields: [{
21
+ valueType: 'hidden',
22
+ field: 'www.hidden',
23
+ initialValue: 'I am hidden'
24
+ }, {
20
25
  valueType: 'multipleComponents',
21
26
  compact: false,
22
27
  label: '尺寸',
@@ -5,7 +5,7 @@ import { ReactNode } from 'react';
5
5
  /** 组件props */
6
6
  export interface IBaseFormProps {
7
7
  /** 字段配置 */
8
- fields?: Array<TInputProps | TDateRangeProps | TSelectProps | TSelectInputProps | TSelectDimProps | TCustomProps | TSelectDateRangeProps | TCascaderProps | TTreeSelectProps | TCheckboxProps | TCheckboxGroupProps | TRadioGroupProps | TInputNumberProps | TInputNumberRangeProps | TTextAreaProps | TSelectRadioProps | TMultipleComponentsProps | TSwitchProps | TDatePickerProps>;
8
+ fields?: Array<TInputProps | TDateRangeProps | TSelectProps | TSelectInputProps | TSelectDimProps | TCustomProps | TSelectDateRangeProps | TCascaderProps | TTreeSelectProps | TCheckboxProps | TCheckboxGroupProps | TRadioGroupProps | TInputNumberProps | TInputNumberRangeProps | TTextAreaProps | TSelectRadioProps | TMultipleComponentsProps | TSwitchProps | TDatePickerProps | THiddenProps>;
9
9
  /** 字段对应的本地代码配置 */
10
10
  fieldProps?: Record<string, Exclude<IBaseFormProps['fields'], undefined>[number]>;
11
11
  /**
@@ -40,6 +40,7 @@ export type TTextAreaProps = IBaseFormFieldItem<'textArea'> & Omit<GetProps<type
40
40
  export type TSelectRadioProps = IBaseFormFieldItem<'selectRadio'> & Omit<GetProps<typeof ProFormSelect>, TOmitComponentItemType>;
41
41
  export type TSwitchProps = IBaseFormFieldItem<'switch'> & Omit<GetProps<typeof ProFormSwitch>, TOmitComponentItemType>;
42
42
  export type TDatePickerProps = IBaseFormFieldItem<'datePicker'> & Omit<GetProps<typeof ProFormDatePicker>, TOmitComponentItemType>;
43
+ export type THiddenProps = IBaseFormFieldItem<'hidden'> & Omit<GetProps<typeof ProFormText>, TOmitComponentItemType>;
43
44
  export type TSelectInputProps = IBaseFormFieldItem<'selectInput'> & Omit<GetProps<typeof ProFormText>, TOmitComponentItemType>;
44
45
  export type TSelectDateRangeProps = IBaseFormFieldItem<'selectDateRange'> & Omit<GetProps<typeof ProFormDateRangePicker>, TOmitComponentItemType>;
45
46
  export type TMultipleComponentsProps = IBaseFormFieldItem<'multipleComponents'> & GetProps<typeof Form.Item> & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamias/rex-design",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",