@pointcloud/pcloud-components 0.1.1 → 0.1.3
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.
- package/README.md +2 -2
- package/dist/esm/AdvancedFilter/FormFilter.d.ts +2 -2
- package/dist/esm/AdvancedFilter/FormFilter.js +47 -83
- package/dist/esm/AdvancedFilter/index.js +76 -107
- package/dist/esm/ConfigProvider/index.d.ts +1 -1
- package/dist/esm/ConfigProvider/index.js +5 -8
- package/dist/esm/DCascader/index.js +40 -75
- package/dist/esm/DForm/DItem.d.ts +26 -0
- package/dist/esm/DForm/DItem.js +31 -0
- package/dist/esm/DForm/DItemsMap.d.ts +32 -0
- package/dist/esm/DForm/DItemsMap.js +144 -0
- package/dist/esm/DForm/helper.d.ts +6 -0
- package/dist/esm/DForm/helper.js +56 -0
- package/dist/esm/DForm/index.d.ts +20 -0
- package/dist/esm/DForm/index.js +60 -0
- package/dist/esm/DForm/index.less +31 -0
- package/dist/esm/DInput/index.js +31 -57
- package/dist/esm/DSelect/index.js +38 -65
- package/dist/esm/DTable/index.js +62 -91
- package/dist/esm/DTreeSelect/index.js +45 -80
- package/dist/esm/ErrorBoundary/index.d.ts +2 -2
- package/dist/esm/ErrorBoundary/index.js +14 -25
- package/dist/esm/LModal/index.d.ts +5 -0
- package/dist/esm/LModal/index.js +54 -0
- package/dist/esm/LModal/interface.d.ts +8 -0
- package/dist/esm/LModal/interface.js +1 -0
- package/dist/esm/LModal/styles/index.less +25 -0
- package/dist/esm/LabelValue/index.d.ts +1 -1
- package/dist/esm/LabelValue/index.js +19 -26
- package/dist/esm/Loading/index.d.ts +2 -2
- package/dist/esm/Loading/index.js +4 -9
- package/dist/esm/Loading/interface.d.ts +3 -2
- package/dist/esm/Loading/loading.d.ts +3 -3
- package/dist/esm/Loading/loading.js +43 -33
- package/dist/esm/NoData/index.d.ts +2 -2
- package/dist/esm/NoData/index.js +18 -24
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +3 -1
- package/dist/umd/pcloud-components.min.css +1 -1
- package/dist/umd/pcloud-components.min.js +1 -1
- package/package.json +5 -5
- package/dist/umd/images/logo.png +0 -0
|
@@ -1,35 +1,23 @@
|
|
|
1
|
+
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); }
|
|
1
2
|
var _excluded = ["className", "popupClassName", "fieldNames", "options", "onChange", "loadData", "onLoadData", "loading"];
|
|
2
|
-
|
|
3
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
4
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
|
-
|
|
5
5
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
-
|
|
7
6
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
|
-
|
|
9
7
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
8
|
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; }
|
|
12
|
-
|
|
13
9
|
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; }
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
|
|
10
|
+
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; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
17
13
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
18
|
-
|
|
19
14
|
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."); }
|
|
20
|
-
|
|
21
15
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
-
|
|
23
|
-
function
|
|
24
|
-
|
|
25
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
26
|
-
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
27
18
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
28
|
-
|
|
29
19
|
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; }
|
|
30
|
-
|
|
31
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; }
|
|
32
|
-
|
|
33
21
|
/*
|
|
34
22
|
* @Author : wangfeihu
|
|
35
23
|
* @Date : 2023-05-18 13:35:38
|
|
@@ -41,70 +29,57 @@ import React, { useRef, forwardRef, useState, useEffect, useMemo, useContext } f
|
|
|
41
29
|
import { Cascader } from 'antd';
|
|
42
30
|
import { ConfigContext } from "../ConfigProvider";
|
|
43
31
|
import "./index.less";
|
|
32
|
+
|
|
44
33
|
/**
|
|
45
34
|
*
|
|
46
35
|
* 如何只显示选中的子节点
|
|
47
36
|
*/
|
|
48
37
|
|
|
49
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
50
|
-
|
|
51
38
|
function InternalCascader(props, ref) {
|
|
52
39
|
var _props$className = props.className,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
40
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
41
|
+
_props$popupClassName = props.popupClassName,
|
|
42
|
+
popupClassName = _props$popupClassName === void 0 ? '' : _props$popupClassName,
|
|
43
|
+
fieldNames = props.fieldNames,
|
|
44
|
+
initOptions = props.options,
|
|
45
|
+
onChange = props.onChange,
|
|
46
|
+
loadData = props.loadData,
|
|
47
|
+
onLoadData = props.onLoadData,
|
|
48
|
+
initLoading = props.loading,
|
|
49
|
+
otherProps = _objectWithoutProperties(props, _excluded);
|
|
64
50
|
var _useContext = useContext(ConfigContext),
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
getPrefixCls = _useContext.getPrefixCls;
|
|
67
52
|
var _useState = useState([]),
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54
|
+
options = _useState2[0],
|
|
55
|
+
setOptions = _useState2[1];
|
|
72
56
|
var _useState3 = useState(typeof initLoading === 'boolean' ? initLoading : true),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
57
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
58
|
+
loading = _useState4[0],
|
|
59
|
+
setLoading = _useState4[1];
|
|
77
60
|
var loadingParamsRef = useRef(null); // 数据加载同步处理引用
|
|
78
|
-
|
|
79
61
|
var loadingRef = useRef({
|
|
80
62
|
timer: null,
|
|
81
63
|
status: 'done'
|
|
82
64
|
}); // options加载状态引用
|
|
83
|
-
|
|
84
65
|
var timestamp = new Date().getTime();
|
|
85
|
-
|
|
86
66
|
var _className = "".concat(getPrefixCls('cascader'), " d-cascader-").concat(timestamp, " ").concat(className);
|
|
87
|
-
|
|
88
67
|
var _popupClassName = "".concat(getPrefixCls('cascader-dropdown'), " d-cascader-dropdown-").concat(timestamp, " ").concat(popupClassName);
|
|
89
|
-
|
|
90
68
|
var _fieldNames = _objectSpread({
|
|
91
69
|
label: 'label',
|
|
92
70
|
value: 'value',
|
|
93
71
|
children: 'children'
|
|
94
72
|
}, fieldNames);
|
|
95
|
-
|
|
96
73
|
var _loadingState = getDelayTime(loading, 600); // loading: 默认600ms,false或0表示不开启
|
|
97
74
|
|
|
75
|
+
var _loading = typeof initLoading === 'boolean' ? initLoading : loading;
|
|
98
76
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
77
|
+
// 将外部传入的options转化为统一的异步请求方法
|
|
102
78
|
var getOptionsFun = useMemo(function () {
|
|
103
79
|
return typeof initOptions === 'function' ? initOptions : function () {
|
|
104
80
|
return Promise.resolve(initOptions || []);
|
|
105
81
|
};
|
|
106
82
|
}, [initOptions]);
|
|
107
|
-
|
|
108
83
|
var updateOptions = function updateOptions(fun, value) {
|
|
109
84
|
// 设置加载中状态
|
|
110
85
|
if (_loadingState > 0) {
|
|
@@ -113,9 +88,8 @@ function InternalCascader(props, ref) {
|
|
|
113
88
|
loadingRef.current.timer = setTimeout(function () {
|
|
114
89
|
loadingRef.current.status === 'loading' && setLoading(true);
|
|
115
90
|
}, _loadingState);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
91
|
+
}
|
|
92
|
+
// 发起请求
|
|
119
93
|
loadingParamsRef.current = value;
|
|
120
94
|
fun === null || fun === void 0 ? void 0 : fun(value).then(function (response) {
|
|
121
95
|
if (loadingParamsRef.current === value) {
|
|
@@ -130,15 +104,11 @@ function InternalCascader(props, ref) {
|
|
|
130
104
|
}
|
|
131
105
|
});
|
|
132
106
|
};
|
|
133
|
-
|
|
134
107
|
var _loadData = function _loadData(selectedOptions) {
|
|
135
108
|
var targetOption = selectedOptions[selectedOptions.length - 1];
|
|
136
109
|
onLoadData && onLoadData(targetOption[_fieldNames.value], targetOption, selectedOptions);
|
|
137
|
-
|
|
138
110
|
var _getOptions = typeof initOptions === 'function' ? initOptions : null;
|
|
139
|
-
|
|
140
111
|
var loadFn = loadData === null ? loadData : loadData || _getOptions;
|
|
141
|
-
|
|
142
112
|
if (typeof loadFn === 'function') {
|
|
143
113
|
loadFn === null || loadFn === void 0 ? void 0 : loadFn(targetOption[_fieldNames.value], targetOption, selectedOptions).then(function (response) {
|
|
144
114
|
targetOption[_fieldNames.children] = response;
|
|
@@ -150,31 +120,28 @@ function InternalCascader(props, ref) {
|
|
|
150
120
|
});
|
|
151
121
|
}
|
|
152
122
|
};
|
|
153
|
-
|
|
154
123
|
var _onChange = function _onChange(value, selectedOptions) {
|
|
155
124
|
return onChange === null || onChange === void 0 ? void 0 : onChange(value, selectedOptions);
|
|
156
|
-
};
|
|
157
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
158
|
-
|
|
125
|
+
};
|
|
159
126
|
|
|
127
|
+
// 初始加载数据
|
|
128
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
160
129
|
useEffect(function () {
|
|
161
130
|
return updateOptions(getOptionsFun);
|
|
162
|
-
}, [getOptionsFun]);
|
|
131
|
+
}, [getOptionsFun]);
|
|
163
132
|
|
|
133
|
+
// 操作dom设置下拉菜单样式,使下拉菜单宽度与选择框保持一致
|
|
164
134
|
useEffect(function () {
|
|
165
135
|
var dSelectDropDom = document.querySelector(".d-cascader-dropdown-".concat(timestamp));
|
|
166
|
-
|
|
167
136
|
if (dSelectDropDom) {
|
|
168
137
|
updateDropDom(dSelectDropDom, timestamp);
|
|
169
138
|
} else {
|
|
170
139
|
var observer = new MutationObserver(function (mutations) {
|
|
171
140
|
var _ref = mutations[0] || {},
|
|
172
|
-
|
|
173
|
-
|
|
141
|
+
addedNodes = _ref.addedNodes;
|
|
174
142
|
for (var i = 0; i < addedNodes.length; i++) {
|
|
175
143
|
if (typeof addedNodes[i]['querySelector'] === 'function') {
|
|
176
144
|
var _dSelectDropDom = addedNodes[i]['querySelector'](".d-cascader-dropdown-".concat(timestamp));
|
|
177
|
-
|
|
178
145
|
if (_dSelectDropDom) {
|
|
179
146
|
observer.disconnect();
|
|
180
147
|
updateDropDom(_dSelectDropDom, timestamp);
|
|
@@ -190,7 +157,7 @@ function InternalCascader(props, ref) {
|
|
|
190
157
|
};
|
|
191
158
|
}
|
|
192
159
|
}, [timestamp]);
|
|
193
|
-
return /*#__PURE__*/
|
|
160
|
+
return /*#__PURE__*/React.createElement(Cascader, _extends({}, otherProps, {
|
|
194
161
|
ref: ref,
|
|
195
162
|
fieldNames: _fieldNames,
|
|
196
163
|
loadData: _loadData,
|
|
@@ -200,12 +167,11 @@ function InternalCascader(props, ref) {
|
|
|
200
167
|
loading: _loading,
|
|
201
168
|
onChange: _onChange
|
|
202
169
|
}));
|
|
203
|
-
}
|
|
204
|
-
|
|
170
|
+
}
|
|
205
171
|
|
|
172
|
+
// 获取延时时间,默认800ms,true代表默认时间,false代表0
|
|
206
173
|
function getDelayTime(value) {
|
|
207
174
|
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 800;
|
|
208
|
-
|
|
209
175
|
if (value === true) {
|
|
210
176
|
return defaultValue;
|
|
211
177
|
} else if (value === false) {
|
|
@@ -214,15 +180,14 @@ function getDelayTime(value) {
|
|
|
214
180
|
return typeof value === 'number' ? Number(value) || 0 : defaultValue;
|
|
215
181
|
}
|
|
216
182
|
}
|
|
217
|
-
|
|
218
183
|
function updateDropDom(dSelectDropDom, timestamp) {
|
|
219
184
|
var dSelectDom = document.querySelector(".d-cascader-".concat(timestamp));
|
|
220
185
|
var dSelectDropFirstMenu = dSelectDropDom.querySelector('ul.ant-cascader-menu');
|
|
221
|
-
|
|
222
186
|
if (dSelectDom) {
|
|
223
187
|
// 获取选择框宽度并恢复其初始样式
|
|
224
188
|
dSelectDropDom.style.minWidth = "".concat(dSelectDom.clientWidth, "px");
|
|
225
|
-
dSelectDropFirstMenu.style.minWidth = "".concat(dSelectDom.clientWidth, "px");
|
|
189
|
+
dSelectDropFirstMenu.style.minWidth = "".concat(dSelectDom.clientWidth, "px");
|
|
190
|
+
// className && dSelectDom.setAttribute('class', className.replace(`d-cascader-${timestamp}`, ''));
|
|
226
191
|
// dSelectDropDom.setAttribute('class', dSelectDropDom.className.replace(`d-cascader-dropdown-${timestamp}`, ''));
|
|
227
192
|
}
|
|
228
193
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { InputProps, InputNumberProps, AutoCompleteProps, CascaderProps, SelectProps, TreeSelectProps, DatePickerProps, TimePickerProps, MentionProps, CheckboxProps, RadioProps, RateProps, SliderSingleProps, SwitchProps, TransferProps, UploadProps, ButtonProps, DividerProps, FormItemProps } from 'antd';
|
|
3
|
+
import { PasswordProps, TextAreaProps } from 'antd/lib/input';
|
|
4
|
+
import { RangePickerProps } from 'antd/lib/date-picker';
|
|
5
|
+
import { SliderRangeProps } from 'antd/lib/slider';
|
|
6
|
+
import { DInputProps } from '../DInput';
|
|
7
|
+
import { DSelectProps } from '../DSelect';
|
|
8
|
+
import { DCascaderProps } from '../DCascader';
|
|
9
|
+
import { DTreeSelectProps } from '../DTreeSelect';
|
|
10
|
+
declare type RenderTypeProps = 'dInput' | 'input' | 'textArea' | 'password' | 'inputNumber' | 'autoComplete' | 'dSelect' | 'select' | 'dCascader' | 'cascader' | 'dTreeSelect' | 'treeSelect' | 'datePicker' | 'timePicker' | 'rangePicker' | 'mentions' | 'checkbox' | 'radio' | 'rate' | 'slider' | 'switch' | 'transfer' | 'upload' | 'other' | 'button' | 'divider' | 'custom';
|
|
11
|
+
export declare type InternalItemProps = DCustomItemProps & DInputProps & InputProps & TextAreaProps & PasswordProps & InputNumberProps & AutoCompleteProps & DSelectProps & SelectProps & DCascaderProps & CascaderProps & DTreeSelectProps & TreeSelectProps & DatePickerProps & TimePickerProps & RangePickerProps & MentionProps & CheckboxProps & RadioProps & RateProps & SliderSingleProps & SliderRangeProps & SwitchProps & TransferProps<any> & UploadProps & ButtonProps & DividerProps;
|
|
12
|
+
declare type DCustomItemProps = {
|
|
13
|
+
/** 渲染类型 */
|
|
14
|
+
renderType?: RenderTypeProps | 'other';
|
|
15
|
+
/** label标签文本,同antd Form.Item的label,只能是string */
|
|
16
|
+
label?: string;
|
|
17
|
+
/** name标签文本,同antd Form.Item的name */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** 自定义渲染函数 renderType等于custom、other时生效 */
|
|
20
|
+
render?: (props: InternalItemProps, formItemProps: FormItemProps, allProps?: InternalItemProps) => ReactElement;
|
|
21
|
+
/** Form.Item 的其他属性 */
|
|
22
|
+
formItemProps?: FormItemProps;
|
|
23
|
+
};
|
|
24
|
+
export declare type DItemProps = DCustomItemProps | DInputProps | InputProps | TextAreaProps | PasswordProps | InputNumberProps | AutoCompleteProps | DSelectProps | SelectProps | DCascaderProps | CascaderProps | DTreeSelectProps | TreeSelectProps | DatePickerProps | TimePickerProps | RangePickerProps | MentionProps | CheckboxProps | RadioProps | RateProps | SliderSingleProps | SliderRangeProps | SwitchProps | TransferProps<any> | UploadProps | ButtonProps | DividerProps;
|
|
25
|
+
declare function DItem(props: any): any;
|
|
26
|
+
export default DItem;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
var _excluded = ["formItemProps", "label", "name", "renderType", "render", "children"];
|
|
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; }
|
|
4
|
+
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; }
|
|
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(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
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 React from 'react';
|
|
11
|
+
import itemsMap from "./DItemsMap";
|
|
12
|
+
function DItem(props) {
|
|
13
|
+
var formItemProps = props.formItemProps,
|
|
14
|
+
_props$label = props.label,
|
|
15
|
+
label = _props$label === void 0 ? '' : _props$label,
|
|
16
|
+
name = props.name,
|
|
17
|
+
renderType = props.renderType,
|
|
18
|
+
render = props.render,
|
|
19
|
+
children = props.children,
|
|
20
|
+
otherProps = _objectWithoutProperties(props, _excluded);
|
|
21
|
+
var _formItemProps = _objectSpread({
|
|
22
|
+
label: label,
|
|
23
|
+
name: name
|
|
24
|
+
}, formItemProps);
|
|
25
|
+
if (renderType && renderType !== 'custom') {
|
|
26
|
+
return itemsMap[renderType](otherProps, _formItemProps, label, render, children, props);
|
|
27
|
+
} else {
|
|
28
|
+
return render ? render(otherProps, _formItemProps, props) : /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default DItem;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { FormItemProps } from 'antd';
|
|
3
|
+
import { InternalItemProps } from './DItem';
|
|
4
|
+
declare const renderMap: {
|
|
5
|
+
dInput: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
6
|
+
input: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
7
|
+
textArea: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
8
|
+
password: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
9
|
+
inputNumber: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
10
|
+
autoComplete: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
11
|
+
dSelect: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
12
|
+
select: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
13
|
+
dCascader: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
14
|
+
cascader: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
15
|
+
dTreeSelect: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
16
|
+
treeSelect: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
17
|
+
datePicker: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
18
|
+
timePicker: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
19
|
+
rangePicker: (props: InternalItemProps, formItemProps: FormItemProps) => ReactElement;
|
|
20
|
+
mentions: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
21
|
+
checkbox: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
22
|
+
radio: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
23
|
+
rate: (props: InternalItemProps, formItemProps: FormItemProps) => ReactElement;
|
|
24
|
+
slider: (props: InternalItemProps, formItemProps: FormItemProps) => ReactElement;
|
|
25
|
+
switch: (props: InternalItemProps, formItemProps: FormItemProps) => ReactElement;
|
|
26
|
+
transfer: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label'], render: InternalItemProps['render']) => ReactElement;
|
|
27
|
+
upload: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label'], render: InternalItemProps['render'], children: InternalItemProps['children']) => ReactElement;
|
|
28
|
+
other: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label'], render: InternalItemProps['render'], children: InternalItemProps['children'], allProps: InternalItemProps) => ReactElement;
|
|
29
|
+
button: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
30
|
+
divider: (props: InternalItemProps, formItemProps: FormItemProps, label: InternalItemProps['label']) => ReactElement;
|
|
31
|
+
};
|
|
32
|
+
export default renderMap;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
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; }
|
|
3
|
+
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
|
+
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
8
|
+
/*
|
|
9
|
+
* @Author : wangfeihu
|
|
10
|
+
* @Date : 2023-06-12 17:35:10
|
|
11
|
+
* @LastEditors : wangfeihu
|
|
12
|
+
* @LastEditTime : 2023-06-15 08:36:23
|
|
13
|
+
* @Description : 根据renderType渲染对应的表单项组件
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { Input, InputNumber, AutoComplete, Select, Cascader, TreeSelect, DatePicker, TimePicker, Mentions, Checkbox, Radio, Rate, Slider, Switch, Transfer, Upload, Form, Button, Divider } from 'antd';
|
|
18
|
+
import DInput from "../DInput";
|
|
19
|
+
import DSelect from "../DSelect";
|
|
20
|
+
import DTreeSelect from "../DTreeSelect";
|
|
21
|
+
import DCascader from "../DCascader";
|
|
22
|
+
var renderMap = {
|
|
23
|
+
dInput: function dInput(props, formItemProps, label) {
|
|
24
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(DInput, _extends({
|
|
25
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
26
|
+
}, props)));
|
|
27
|
+
},
|
|
28
|
+
input: function input(props, formItemProps, label) {
|
|
29
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Input, _extends({
|
|
30
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
31
|
+
}, props)));
|
|
32
|
+
},
|
|
33
|
+
textArea: function textArea(props, formItemProps, label) {
|
|
34
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Input.TextArea, _extends({
|
|
35
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
36
|
+
}, props)));
|
|
37
|
+
},
|
|
38
|
+
password: function password(props, formItemProps, label) {
|
|
39
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Input.Password, _extends({
|
|
40
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
41
|
+
}, props)));
|
|
42
|
+
},
|
|
43
|
+
inputNumber: function inputNumber(props, formItemProps, label) {
|
|
44
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(InputNumber, _extends({
|
|
45
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
46
|
+
}, props)));
|
|
47
|
+
},
|
|
48
|
+
autoComplete: function autoComplete(props, formItemProps, label) {
|
|
49
|
+
var _props = props;
|
|
50
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(AutoComplete, _extends({
|
|
51
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
52
|
+
}, _props)));
|
|
53
|
+
},
|
|
54
|
+
dSelect: function dSelect(props, formItemProps, label) {
|
|
55
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(DSelect, _extends({
|
|
56
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
57
|
+
}, props)));
|
|
58
|
+
},
|
|
59
|
+
select: function select(props, formItemProps, label) {
|
|
60
|
+
var _props = props;
|
|
61
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Select, _extends({
|
|
62
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
63
|
+
}, _props)));
|
|
64
|
+
},
|
|
65
|
+
dCascader: function dCascader(props, formItemProps, label) {
|
|
66
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(DCascader, _extends({
|
|
67
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
68
|
+
}, props)));
|
|
69
|
+
},
|
|
70
|
+
cascader: function cascader(props, formItemProps, label) {
|
|
71
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Cascader, _extends({
|
|
72
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
73
|
+
}, props)));
|
|
74
|
+
},
|
|
75
|
+
dTreeSelect: function dTreeSelect(props, formItemProps, label) {
|
|
76
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(DTreeSelect, _extends({
|
|
77
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
78
|
+
}, props)));
|
|
79
|
+
},
|
|
80
|
+
treeSelect: function treeSelect(props, formItemProps, label) {
|
|
81
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(TreeSelect, _extends({
|
|
82
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
83
|
+
}, props)));
|
|
84
|
+
},
|
|
85
|
+
datePicker: function datePicker(props, formItemProps, label) {
|
|
86
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(DatePicker, _extends({
|
|
87
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
88
|
+
}, props)));
|
|
89
|
+
},
|
|
90
|
+
timePicker: function timePicker(props, formItemProps, label) {
|
|
91
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
92
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
93
|
+
}, props)));
|
|
94
|
+
},
|
|
95
|
+
rangePicker: function rangePicker(props, formItemProps) {
|
|
96
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(DatePicker.RangePicker, props));
|
|
97
|
+
},
|
|
98
|
+
mentions: function mentions(props, formItemProps, label) {
|
|
99
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Mentions, _extends({
|
|
100
|
+
placeholder: label ? "\u8BF7\u8F93\u5165".concat(label) : ''
|
|
101
|
+
}, props)));
|
|
102
|
+
},
|
|
103
|
+
checkbox: function checkbox(props, formItemProps, label) {
|
|
104
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Checkbox, props, label));
|
|
105
|
+
},
|
|
106
|
+
radio: function radio(props, formItemProps, label) {
|
|
107
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Radio, props, label));
|
|
108
|
+
},
|
|
109
|
+
rate: function rate(props, formItemProps) {
|
|
110
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Rate, props));
|
|
111
|
+
},
|
|
112
|
+
slider: function slider(props, formItemProps) {
|
|
113
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Slider, props));
|
|
114
|
+
},
|
|
115
|
+
switch: function _switch(props, formItemProps) {
|
|
116
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Switch, props));
|
|
117
|
+
},
|
|
118
|
+
transfer: function transfer(props, formItemProps, label, render) {
|
|
119
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Transfer, _extends({
|
|
120
|
+
render: render
|
|
121
|
+
}, props)));
|
|
122
|
+
},
|
|
123
|
+
upload: function upload(props, formItemProps, label, render, children) {
|
|
124
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, /*#__PURE__*/React.createElement(Upload, props, children || label || ''));
|
|
125
|
+
},
|
|
126
|
+
other: function other(props, formItemProps, label, render, children, allProps) {
|
|
127
|
+
// rangePicker要求placeholder类型为string数组,在此对rangePicker类型做特殊处理
|
|
128
|
+
var _placeholder = label ? "\u8BF7\u8F93\u5165".concat(label) : '';
|
|
129
|
+
var placeholder = allProps.renderType === 'rangePicker' ? props.placeholder : _placeholder;
|
|
130
|
+
return /*#__PURE__*/React.createElement(Form.Item, formItemProps, render ? render(_objectSpread({
|
|
131
|
+
placeholder: placeholder
|
|
132
|
+
}, props), formItemProps, allProps) : children);
|
|
133
|
+
},
|
|
134
|
+
button: function button(props, formItemProps, label) {
|
|
135
|
+
return /*#__PURE__*/React.createElement(Button, props, label || '');
|
|
136
|
+
},
|
|
137
|
+
divider: function divider(props, formItemProps, label) {
|
|
138
|
+
return /*#__PURE__*/React.createElement(Divider, _extends({
|
|
139
|
+
orientation: "left",
|
|
140
|
+
orientationMargin: 0
|
|
141
|
+
}, props), label);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
export default renderMap;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
/*
|
|
3
|
+
* @Author : wangfeihu
|
|
4
|
+
* @Date : 2023-06-07 15:08:06
|
|
5
|
+
* @LastEditors : wangfeihu
|
|
6
|
+
* @LastEditTime : 2023-06-12 17:35:15
|
|
7
|
+
* @Description : 合并两个对象中的所有字段
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import mergeWith from 'lodash/mergeWith';
|
|
11
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
12
|
+
var TYPES = {
|
|
13
|
+
OPTION_TYPE_PRIMARY: 'primary',
|
|
14
|
+
OPTION_TYPE_OBJECT: 'object',
|
|
15
|
+
OPTION_TYPE_ARRAY: 'array'
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// 获取某个字段的类型
|
|
19
|
+
function getType(value) {
|
|
20
|
+
if (typeof value === 'string') {
|
|
21
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
22
|
+
} else if (typeof value === 'number') {
|
|
23
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
24
|
+
} else if (typeof value === 'boolean') {
|
|
25
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
26
|
+
} else if (typeof value === 'undefined') {
|
|
27
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
28
|
+
} else if (_typeof(value) === 'symbol') {
|
|
29
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
30
|
+
} else if (value === null) {
|
|
31
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
32
|
+
} else if (typeof value === 'function') {
|
|
33
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
34
|
+
} else if (value instanceof Array) {
|
|
35
|
+
return TYPES.OPTION_TYPE_ARRAY;
|
|
36
|
+
} else if (Object.keys(value).length > 0) {
|
|
37
|
+
return TYPES.OPTION_TYPE_OBJECT;
|
|
38
|
+
} else {
|
|
39
|
+
return TYPES.OPTION_TYPE_PRIMARY;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
var defaultCustomizer = function defaultCustomizer(objValue, srcValue) {
|
|
43
|
+
// 将空对象和空数组当成基本类型处理,不进行合并
|
|
44
|
+
if (srcValue instanceof Array && srcValue.length < 1 || getType(srcValue) === TYPES.OPTION_TYPE_PRIMARY) {
|
|
45
|
+
return srcValue;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/** 合并对象 */
|
|
50
|
+
function merge(object, sources) {
|
|
51
|
+
var customizer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultCustomizer;
|
|
52
|
+
return mergeWith(cloneDeep(object), sources, customizer);
|
|
53
|
+
}
|
|
54
|
+
export default {
|
|
55
|
+
merge: merge
|
|
56
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { FormProps, FormInstance } from 'antd';
|
|
3
|
+
import DItem, { DItemProps } from './DItem';
|
|
4
|
+
import './index.less';
|
|
5
|
+
declare type InternalFormProps = {
|
|
6
|
+
/** 表单项数组,可以通过数组的形式添加表单项 */
|
|
7
|
+
items?: DItemProps[];
|
|
8
|
+
/** 统一设置items的默认属性 */
|
|
9
|
+
defaultItemProps?: DItemProps;
|
|
10
|
+
/** children 方式添加表单项,如果同时设置了 items,则 children 在 items 下面 */
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
/** 布局方式 新增了行内垂直布局方式inlineVertical */
|
|
13
|
+
layout?: 'inline' | 'horizontal' | 'vertical' | 'inlineVertical';
|
|
14
|
+
};
|
|
15
|
+
export declare type DFormProps = Omit<FormProps, 'children' | 'layout'> & InternalFormProps;
|
|
16
|
+
declare function InternalForm(props: DFormProps, ref: React.Ref<FormInstance<any>>): React.JSX.Element;
|
|
17
|
+
declare const DForm: typeof InternalForm & {
|
|
18
|
+
Item: typeof DItem;
|
|
19
|
+
};
|
|
20
|
+
export default DForm;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var _excluded = ["className", "defaultItemProps", "items", "children", "layout"];
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
5
|
+
/*
|
|
6
|
+
* @Author : wangfeihu
|
|
7
|
+
* @Date : 2023-06-02 09:29:11
|
|
8
|
+
* @LastEditors : wangfeihu
|
|
9
|
+
* @LastEditTime : 2023-06-15 08:28:12
|
|
10
|
+
* @Description : 基于antd的Form组件
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import React, { forwardRef, useMemo, useContext } from 'react';
|
|
14
|
+
import { Form } from 'antd';
|
|
15
|
+
import { ConfigContext } from "../ConfigProvider";
|
|
16
|
+
import helper from "./helper";
|
|
17
|
+
import DItem from "./DItem";
|
|
18
|
+
import "./index.less";
|
|
19
|
+
function getChildren(items, children, _defaultItemProps) {
|
|
20
|
+
var list = [];
|
|
21
|
+
if (items instanceof Array && items.length > 0) {
|
|
22
|
+
list = items.map(function (item, index) {
|
|
23
|
+
var _item = helper.merge(_defaultItemProps, item);
|
|
24
|
+
return /*#__PURE__*/React.createElement(DItem, _extends({
|
|
25
|
+
key: (item === null || item === void 0 ? void 0 : item.name) || index
|
|
26
|
+
}, _item));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
if (children) {
|
|
30
|
+
var childrenList = children instanceof Array ? children : [children];
|
|
31
|
+
list = list.concat(childrenList);
|
|
32
|
+
}
|
|
33
|
+
return list;
|
|
34
|
+
}
|
|
35
|
+
function InternalForm(props, ref) {
|
|
36
|
+
var _props$className = props.className,
|
|
37
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
38
|
+
defaultItemProps = props.defaultItemProps,
|
|
39
|
+
items = props.items,
|
|
40
|
+
children = props.children,
|
|
41
|
+
layout = props.layout,
|
|
42
|
+
otherProps = _objectWithoutProperties(props, _excluded);
|
|
43
|
+
var _useContext = useContext(ConfigContext),
|
|
44
|
+
getPrefixCls = _useContext.getPrefixCls;
|
|
45
|
+
var _className = "".concat(getPrefixCls('d-form'), " ").concat(className, " ").concat(layout === 'inlineVertical' ? 'inlineVertical' : '');
|
|
46
|
+
var _layout = layout === 'inlineVertical' ? 'inline' : layout;
|
|
47
|
+
var itemChildren = useMemo(function () {
|
|
48
|
+
return getChildren(items, children, defaultItemProps);
|
|
49
|
+
}, [items, children, defaultItemProps]);
|
|
50
|
+
return /*#__PURE__*/React.createElement(Form, _extends({}, otherProps, {
|
|
51
|
+
className: _className,
|
|
52
|
+
layout: _layout,
|
|
53
|
+
ref: ref
|
|
54
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
55
|
+
className: "form-wrapper"
|
|
56
|
+
}, itemChildren));
|
|
57
|
+
}
|
|
58
|
+
var DForm = /*#__PURE__*/forwardRef(InternalForm);
|
|
59
|
+
DForm.Item = DItem;
|
|
60
|
+
export default DForm;
|