@teamias/rex-design 0.0.18 → 0.0.20

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.
@@ -0,0 +1,28 @@
1
+ import { Descriptions, GetProps } from 'antd';
2
+ import { FC } from 'react';
3
+ import { DataCell } from '../data-cell';
4
+ export declare const BaseDescriptions: FC<IBaseDescriptionsProps>;
5
+ type TDataCellItem = GetProps<typeof DataCell>['items'][number];
6
+ /** 允许自定义参数 */
7
+ type TDataCellItemExtend = TDataCellItem & Record<string, any>;
8
+ export interface IBaseDescriptionsProps extends Omit<GetProps<typeof Descriptions>, 'items'> {
9
+ /** 主要渲染数据 */
10
+ items?: Array<{
11
+ label: React.ReactNode;
12
+ span?: number;
13
+ children?: React.ReactNode | Array<TDataCellItemExtend[]>;
14
+ }>;
15
+ /**
16
+ * - 使用 DataCell 组件渲染单元格, 需要注意数据结构
17
+ * - 默认 true
18
+ */
19
+ useDataCellRender?: boolean;
20
+ /** dataCell 的点击事件 */
21
+ onDataCellClick?: (data: {
22
+ item: TDataCellItemExtend[];
23
+ cellItem: TDataCellItemExtend;
24
+ subItem: TDataCellItemExtend[number];
25
+ index: number;
26
+ }) => void;
27
+ }
28
+ export {};
@@ -0,0 +1,58 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["items", "useDataCellRender", "onDataCellClick"];
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ 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; }
9
+ 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; }
10
+ import { Descriptions } from 'antd';
11
+ import { DataCell } from "../data-cell";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export var BaseDescriptions = function BaseDescriptions(_ref) {
14
+ var items = _ref.items,
15
+ _ref$useDataCellRende = _ref.useDataCellRender,
16
+ useDataCellRender = _ref$useDataCellRende === void 0 ? true : _ref$useDataCellRende,
17
+ onDataCellClick = _ref.onDataCellClick,
18
+ otherProps = _objectWithoutProperties(_ref, _excluded);
19
+ return /*#__PURE__*/_jsx(Descriptions, _objectSpread(_objectSpread({
20
+ size: "small"
21
+ }, otherProps), {}, {
22
+ items: items === null || items === void 0 ? void 0 : items.map(function (item, index) {
23
+ try {
24
+ var children = useDataCellRender ? item.children.map(function (topItem, topIndex) {
25
+ return /*#__PURE__*/_jsx(DataCell, {
26
+ items: topItem,
27
+ onClick: function onClick(cellItem, subItem) {
28
+ // console.log(cellItem, subItem);
29
+ onDataCellClick === null || onDataCellClick === void 0 || onDataCellClick({
30
+ item: topItem,
31
+ cellItem: cellItem,
32
+ subItem: subItem,
33
+ index: index
34
+ });
35
+ }
36
+ }, topIndex);
37
+ }) : item.children || '';
38
+ return _objectSpread(_objectSpread({}, item), {}, {
39
+ key: "".concat(index),
40
+ children: children
41
+ });
42
+ } catch (error) {
43
+ console.error('BaseDescriptions Error:', error, item, index);
44
+ return _objectSpread(_objectSpread({}, item), {}, {
45
+ key: "".concat(index),
46
+ children: /*#__PURE__*/_jsx("div", {
47
+ style: {
48
+ color: 'red'
49
+ },
50
+ children: "\u6570\u636E\u51FA\u73B0\u95EE\u9898,\u8BF7\u67E5\u770B\u63A7\u5236\u53F0\u8F93\u51FA"
51
+ })
52
+ });
53
+ }
54
+ })
55
+ }));
56
+ };
57
+
58
+ /** 允许自定义参数 */
@@ -0,0 +1,2 @@
1
+ declare const _default: () => import("react/jsx-runtime").JSX.Element;
2
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import { BaseDescriptions } from "../base-descriptions";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export default (function () {
4
+ return /*#__PURE__*/_jsx(BaseDescriptions, {
5
+ bordered: true,
6
+ useDataCellRender: false,
7
+ items: [{
8
+ label: 'UserName',
9
+ children: 'Zhou Maomao'
10
+ }, {
11
+ label: 'Telephone',
12
+ children: '1810000000'
13
+ }, {
14
+ label: 'Live',
15
+ children: 'Hangzhou, Zhejiang'
16
+ }, {
17
+ label: 'Address',
18
+ span: 2,
19
+ children: 'No. 18, Wantang Road, Xihu District, Hangzhou, Zhejiang, China'
20
+ }, {
21
+ label: 'Remark',
22
+ children: 'empty'
23
+ }]
24
+ });
25
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: () => import("react/jsx-runtime").JSX.Element;
2
+ export default _default;
@@ -0,0 +1,121 @@
1
+ import { BaseDescriptions } from "../base-descriptions";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export default (function () {
4
+ return /*#__PURE__*/_jsx(BaseDescriptions, {
5
+ bordered: true,
6
+ items: [{
7
+ label: 'Address',
8
+ span: 2,
9
+ children: [[{
10
+ type: 'group-v2',
11
+ props: {
12
+ label: 'label',
13
+ // labelStyle: {},
14
+ // itemsGap: 2,
15
+ // itemsStyle: {},
16
+ // itemsSeparator: '/',
17
+ // itemsDirection: 'row',
18
+ items: [{
19
+ type: 'text',
20
+ value: 'qweqweqweqwe',
21
+ action: 'url',
22
+ url: 'http://baidu.com'
23
+ }, {
24
+ type: 'icon',
25
+ iconsType: 'iconify',
26
+ name: 'svg-spinners:ring-resize',
27
+ size: 12,
28
+ action: 'url',
29
+ url: 'http://baidu.com'
30
+ }, {
31
+ type: 'text',
32
+ value: 'qweqweqweqwe',
33
+ copyable: true,
34
+ tooltip: true,
35
+ style: {
36
+ color: 'red'
37
+ }
38
+ }, {
39
+ type: 'tag',
40
+ value: '33123',
41
+ color: 'red'
42
+ }, {
43
+ type: 'img',
44
+ src: 'http://qweqe'
45
+ }]
46
+ }
47
+ }, {
48
+ type: 'group-v2',
49
+ props: {
50
+ items: [{
51
+ type: 'img',
52
+ src: 'http://qweqe'
53
+ }, {
54
+ type: 'group-v2',
55
+ props: {
56
+ itemsDirection: 'column',
57
+ items: [{
58
+ type: 'text',
59
+ value: 'qweqweqweqwe',
60
+ action: 'url',
61
+ url: 'http://baidu.com',
62
+ ellipsis: 1,
63
+ copyable: true
64
+ }, {
65
+ type: 'text',
66
+ value: 'qweqweqweqwe2',
67
+ ellipsis: 1,
68
+ copyable: '自定义复制'
69
+ }, {
70
+ type: 'text',
71
+ value: 'qweqweqweqwe3',
72
+ tooltip: '自定义提示'
73
+ }]
74
+ }
75
+ }]
76
+ }
77
+ }, {
78
+ type: 'group-v2',
79
+ props: {
80
+ items: [{
81
+ type: 'img',
82
+ src: 'http://qweqe'
83
+ }, {
84
+ type: 'group-v2',
85
+ props: {
86
+ itemsDirection: 'column',
87
+ items: [{
88
+ type: 'group-v2',
89
+ props: {
90
+ itemsDirection: 'column',
91
+ label: 'label',
92
+ items: [{
93
+ type: 'text',
94
+ value: 'qweqweqweqwe'
95
+ }]
96
+ }
97
+ }, {
98
+ type: 'group-v2',
99
+ props: {
100
+ itemsDirection: 'column',
101
+ label: 'label',
102
+ items: [{
103
+ type: 'text',
104
+ value: 'qweqweqweqwe2',
105
+ action: 'custom'
106
+ }]
107
+ }
108
+ }]
109
+ }
110
+ }]
111
+ }
112
+ }]]
113
+ }, {
114
+ label: 'Remark',
115
+ children: 'empty'
116
+ }],
117
+ onDataCellClick: function onDataCellClick(data) {
118
+ console.log(data);
119
+ }
120
+ });
121
+ });
@@ -0,0 +1 @@
1
+ export * from './base-descriptions';
@@ -0,0 +1 @@
1
+ export * from "./base-descriptions";
@@ -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);
@@ -1,4 +1,5 @@
1
1
  export * from './action-buttons';
2
+ export * from './base-descriptions';
2
3
  export * from './base-form';
3
4
  export * from './base-list-table';
4
5
  export * from './base-table';
@@ -1,4 +1,5 @@
1
1
  export * from "./action-buttons";
2
+ export * from "./base-descriptions";
2
3
  export * from "./base-form";
3
4
  export * from "./base-list-table";
4
5
  export * from "./base-table";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamias/rex-design",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",