@zat-design/sisyphus-react 3.13.15-beta.4 → 3.13.15-beta.6
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/es/ProForm/components/combination/Group/hooks/index.js +9 -2
- package/es/ProForm/components/combination/ProCascader/index.js +100 -51
- package/es/ProForm/components/combination/ProCascader/propsType.d.ts +12 -4
- package/es/ProStep/components/Item/index.js +1 -3
- package/lib/ProForm/components/combination/Group/hooks/index.js +9 -2
- package/lib/ProForm/components/combination/ProCascader/index.js +99 -50
- package/lib/ProForm/components/combination/ProCascader/propsType.d.ts +12 -4
- package/lib/ProStep/components/Item/index.js +1 -3
- package/package.json +1 -1
@@ -105,8 +105,15 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
105
105
|
newValue = normalize === null || normalize === void 0 ? void 0 : normalize(newValue);
|
106
106
|
}
|
107
107
|
// 根据模式选择值管理方式
|
108
|
-
|
109
|
-
|
108
|
+
if (names) {
|
109
|
+
// 独立字段模式:设置单个字段值 + 触发整体校验
|
110
|
+
form.setFieldValue(columnName, newValue);
|
111
|
+
// 确保触发Group整体的校验
|
112
|
+
internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index);
|
113
|
+
} else {
|
114
|
+
// 数组值模式
|
115
|
+
internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index);
|
116
|
+
}
|
110
117
|
var values = form.getFieldValue(namePath);
|
111
118
|
var originRow = (namePath === null || namePath === void 0 ? void 0 : namePath.length) ? _cloneDeep(values) : undefined;
|
112
119
|
onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, args);
|
@@ -3,8 +3,8 @@ import _Tooltip from "antd/es/tooltip";
|
|
3
3
|
import "antd/es/cascader/style";
|
4
4
|
import _Cascader from "antd/es/cascader";
|
5
5
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
6
|
-
import
|
7
|
-
import
|
6
|
+
import "antd/es/message/style";
|
7
|
+
import _message from "antd/es/message";
|
8
8
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
9
9
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
10
10
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
@@ -16,7 +16,8 @@ import _find2 from "lodash/find";
|
|
16
16
|
import _omit from "lodash/omit";
|
17
17
|
var _excluded = ["className", "hasDetail", "detailMaxLength", "fieldNames", "value", "disabled", "dataSource", "onChange", "useRequest", "transformResponse", "level", "isView", "enumCode", "code", "tooltip", "separator", "detailPlaceholder", "scrollFollowParent", "desensitization", "otherProps"];
|
18
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
19
|
-
import { useEffect, useState, memo, useMemo } from 'react';
|
19
|
+
import { useEffect, useState, memo, useMemo, useCallback } from 'react';
|
20
|
+
import { useRequest as useRequestFunc, useDeepCompareEffect } from 'ahooks';
|
20
21
|
import { transformDataName } from './utils/index';
|
21
22
|
import { useProConfig } from '../../../../ProConfigProvider';
|
22
23
|
import Input from '../../base/Input';
|
@@ -57,7 +58,7 @@ var getViewLabel = function getViewLabel(_ref) {
|
|
57
58
|
return viewLabel;
|
58
59
|
};
|
59
60
|
var ProCascader = function ProCascader(props) {
|
60
|
-
var _props$otherProps, _value$slice,
|
61
|
+
var _props$otherProps, _useRequest$options3, _value$slice, _ref7, _ref7$filter, _defaultLabel$filter, _locale$ProAddressBar, _locale$ProAddressBar2;
|
61
62
|
var _ref2 = useProConfig('ProAddressBar') || {},
|
62
63
|
configDetailMaxLength = _ref2.detailMaxLength,
|
63
64
|
configEnumCode = _ref2.enumCode,
|
@@ -120,10 +121,6 @@ var ProCascader = function ProCascader(props) {
|
|
120
121
|
}
|
121
122
|
return disabled;
|
122
123
|
}, [disabled]);
|
123
|
-
var _useRequest = _objectSpread({}, useRequest),
|
124
|
-
service = _useRequest.service,
|
125
|
-
_useRequest$defaultPa = _useRequest.defaultParams,
|
126
|
-
defaultParams = _useRequest$defaultPa === void 0 ? {} : _useRequest$defaultPa;
|
127
124
|
var _useState = useState([]),
|
128
125
|
_useState2 = _slicedToArray(_useState, 2),
|
129
126
|
serviceData = _useState2[0],
|
@@ -132,53 +129,104 @@ var ProCascader = function ProCascader(props) {
|
|
132
129
|
_useState4 = _slicedToArray(_useState3, 2),
|
133
130
|
defaultLabel = _useState4[0],
|
134
131
|
setDefaultLabel = _useState4[1];
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
}
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
132
|
+
// 默认成功处理函数
|
133
|
+
var defaultOnSuccessFun = function defaultOnSuccessFun(res) {
|
134
|
+
var _ref4 = res || {},
|
135
|
+
_ref4$status = _ref4.status,
|
136
|
+
status = _ref4$status === void 0 ? 200 : _ref4$status,
|
137
|
+
msg = _ref4.message,
|
138
|
+
data = _ref4.data;
|
139
|
+
if (status !== 200) {
|
140
|
+
_message.error(msg);
|
141
|
+
return;
|
142
|
+
}
|
143
|
+
var newData = data;
|
144
|
+
if (transformResponse) {
|
145
|
+
newData = transformResponse(data);
|
146
|
+
}
|
147
|
+
var transFormData = transformDataName(newData, {
|
148
|
+
label: fieldNames.label,
|
149
|
+
value: fieldNames.value,
|
150
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
151
|
+
});
|
152
|
+
var serviceData = isAddressMode && realLevel === 2 ? _filterDataSource(transFormData, level, fieldNames) : transFormData;
|
153
|
+
setServiceData(serviceData);
|
154
|
+
};
|
155
|
+
// 数据转换处理
|
156
|
+
var successTransformDataHandle = useCallback(function (res) {
|
157
|
+
if (transformResponse && typeof transformResponse === 'function') {
|
158
|
+
return transformResponse(res);
|
159
|
+
}
|
160
|
+
var _ref5 = res || {},
|
161
|
+
_ref5$status = _ref5.status,
|
162
|
+
status = _ref5$status === void 0 ? 200 : _ref5$status,
|
163
|
+
msg = _ref5.message,
|
164
|
+
data = _ref5.data;
|
165
|
+
if (status !== 200) {
|
166
|
+
_message.error(msg);
|
167
|
+
return;
|
168
|
+
}
|
169
|
+
return data;
|
170
|
+
}, [transformResponse]);
|
171
|
+
// 使用ahooks的useRequest
|
172
|
+
var fetchFunction = useRequestFunc(useRequest === null || useRequest === void 0 ? void 0 : useRequest.service, _objectSpread(_objectSpread({
|
173
|
+
manual: true,
|
174
|
+
debounceWait: 300
|
175
|
+
}, useRequest === null || useRequest === void 0 ? void 0 : useRequest.options), {}, {
|
176
|
+
onSuccess: function onSuccess(data) {
|
177
|
+
var _useRequest$options, _useRequest$options$o, _useRequest$options2;
|
178
|
+
if (transformResponse && typeof transformResponse === 'function') {
|
179
|
+
var responseData = transformResponse(data);
|
180
|
+
var transFormData = transformDataName(responseData, {
|
181
|
+
label: fieldNames.label,
|
182
|
+
value: fieldNames.value,
|
183
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
184
|
+
});
|
185
|
+
var _serviceData = isAddressMode && realLevel === 2 ? _filterDataSource(transFormData, level, fieldNames) : transFormData;
|
186
|
+
setServiceData(_serviceData);
|
187
|
+
} else {
|
188
|
+
defaultOnSuccessFun(data);
|
189
|
+
}
|
190
|
+
// 执行传入的onSuccess
|
191
|
+
useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options = useRequest.options) === null || _useRequest$options === void 0 ? void 0 : (_useRequest$options$o = _useRequest$options.onSuccess) === null || _useRequest$options$o === void 0 ? void 0 : _useRequest$options$o.call(_useRequest$options, data, useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options2 = useRequest.options) === null || _useRequest$options2 === void 0 ? void 0 : _useRequest$options2.defaultParams);
|
192
|
+
}
|
193
|
+
}));
|
194
|
+
// 缓存数据处理
|
195
|
+
var cacheList = (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options3 = useRequest.options) === null || _useRequest$options3 === void 0 ? void 0 : _useRequest$options3.cacheKey) ? successTransformDataHandle(fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.data) : [];
|
167
196
|
// 提取出来默认每次都执行
|
168
197
|
if (transformResponse) {
|
169
198
|
realDataSource = transformResponse(realDataSource);
|
170
199
|
}
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
200
|
+
// 设置缓存数据
|
201
|
+
useDeepCompareEffect(function () {
|
202
|
+
var _useRequest$options4;
|
203
|
+
if (!(serviceData === null || serviceData === void 0 ? void 0 : serviceData.length) && (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options4 = useRequest.options) === null || _useRequest$options4 === void 0 ? void 0 : _useRequest$options4.cacheKey)) {
|
204
|
+
if (cacheList === null || cacheList === void 0 ? void 0 : cacheList.length) {
|
205
|
+
setServiceData(cacheList);
|
206
|
+
}
|
207
|
+
}
|
208
|
+
}, [fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.data]);
|
209
|
+
// 初始化请求数据
|
210
|
+
useDeepCompareEffect(function () {
|
211
|
+
var _useRequest$options5;
|
212
|
+
if (!(useRequest === null || useRequest === void 0 ? void 0 : useRequest.service)) {
|
213
|
+
return;
|
214
|
+
}
|
215
|
+
var _ref6 = (useRequest === null || useRequest === void 0 ? void 0 : useRequest.options) || {},
|
216
|
+
manual = _ref6.manual;
|
217
|
+
if (manual || (cacheList === null || cacheList === void 0 ? void 0 : cacheList.length)) {
|
218
|
+
return;
|
175
219
|
}
|
176
|
-
|
220
|
+
// 向后兼容性:优先使用 options.defaultParams,fallback 到 useRequest.defaultParams
|
221
|
+
var defaultParams = (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options5 = useRequest.options) === null || _useRequest$options5 === void 0 ? void 0 : _useRequest$options5.defaultParams) || (useRequest === null || useRequest === void 0 ? void 0 : useRequest.defaultParams);
|
222
|
+
var params = Array.isArray(defaultParams) ? defaultParams === null || defaultParams === void 0 ? void 0 : defaultParams[0] : defaultParams || {};
|
223
|
+
fetchFunction.run(params);
|
224
|
+
}, [useRequest === null || useRequest === void 0 ? void 0 : useRequest.options]);
|
177
225
|
useEffect(function () {
|
178
226
|
if (realIsView && value) {
|
179
227
|
var _realDataSource;
|
180
228
|
// 传入dataSource + 查看时初始化展示
|
181
|
-
if (service) {
|
229
|
+
if (useRequest === null || useRequest === void 0 ? void 0 : useRequest.service) {
|
182
230
|
setDefaultLabel(getViewLabel({
|
183
231
|
dataSource: serviceData,
|
184
232
|
value: isAddressMode && hasDetail ? value === null || value === void 0 ? void 0 : value.slice(0, realLevel) : value
|
@@ -217,9 +265,9 @@ var ProCascader = function ProCascader(props) {
|
|
217
265
|
var addressValue = isAddressMode ? value && ((_value$slice = value.slice(0, realLevel)) === null || _value$slice === void 0 ? void 0 : _value$slice.some(function (item) {
|
218
266
|
return !!item;
|
219
267
|
})) ? value.slice(0, realLevel) : undefined : value;
|
220
|
-
var viewValue = isAddressMode ? ((
|
268
|
+
var viewValue = isAddressMode ? ((_ref7 = [].concat(_toConsumableArray(defaultLabel), [value === null || value === void 0 ? void 0 : value[realLevel]])) === null || _ref7 === void 0 ? void 0 : (_ref7$filter = _ref7.filter(function (item) {
|
221
269
|
return !!item;
|
222
|
-
})) === null ||
|
270
|
+
})) === null || _ref7$filter === void 0 ? void 0 : _ref7$filter.join(separator)) || '-' : (defaultLabel === null || defaultLabel === void 0 ? void 0 : (_defaultLabel$filter = defaultLabel.filter(function (item) {
|
223
271
|
return !!item;
|
224
272
|
})) === null || _defaultLabel$filter === void 0 ? void 0 : _defaultLabel$filter.join(separator)) || '-';
|
225
273
|
var _findSelectedOptions = function findSelectedOptions(options, value) {
|
@@ -250,8 +298,8 @@ var ProCascader = function ProCascader(props) {
|
|
250
298
|
return null;
|
251
299
|
};
|
252
300
|
var _selectedOptions = useMemo(function () {
|
253
|
-
return _findSelectedOptions(service ? serviceData : realDataSource, addressValue);
|
254
|
-
}, [service, serviceData, realDataSource, addressValue]);
|
301
|
+
return _findSelectedOptions((useRequest === null || useRequest === void 0 ? void 0 : useRequest.service) ? serviceData : realDataSource, addressValue);
|
302
|
+
}, [useRequest === null || useRequest === void 0 ? void 0 : useRequest.service, serviceData, realDataSource, addressValue]);
|
255
303
|
var handleAddressChange = function handleAddressChange(e) {
|
256
304
|
var cascaderValue = value === null || value === void 0 ? void 0 : value.slice(0, realLevel);
|
257
305
|
if (onChange) {
|
@@ -276,8 +324,9 @@ var ProCascader = function ProCascader(props) {
|
|
276
324
|
className: hasDetail ? '' : 'no-detail',
|
277
325
|
placeholder: locale === null || locale === void 0 ? void 0 : (_locale$ProAddressBar = locale.ProAddressBar) === null || _locale$ProAddressBar === void 0 ? void 0 : _locale$ProAddressBar.placeholder,
|
278
326
|
value: addressValue,
|
279
|
-
options: service ? serviceData : realDataSource,
|
327
|
+
options: (useRequest === null || useRequest === void 0 ? void 0 : useRequest.service) ? serviceData : realDataSource,
|
280
328
|
disabled: lastDisabled[0],
|
329
|
+
loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
|
281
330
|
displayRender: displayRender,
|
282
331
|
showSearch: {
|
283
332
|
filter: handlefilter,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ReactNode } from 'react';
|
2
2
|
import { DefaultOptionType } from 'rc-select/lib/Select';
|
3
|
-
import { Service } from 'ahooks/lib/useRequest/src/types';
|
3
|
+
import { Service, Options } from 'ahooks/lib/useRequest/src/types';
|
4
4
|
export interface FieldNamesType {
|
5
5
|
label: string;
|
6
6
|
value: string;
|
@@ -19,10 +19,18 @@ export interface ProCascaderType {
|
|
19
19
|
fieldNames?: FieldNamesType;
|
20
20
|
dataSource?: DefaultOptionType[];
|
21
21
|
useRequest?: {
|
22
|
-
|
23
|
-
|
22
|
+
/**
|
23
|
+
* @description 请求服务函数
|
24
|
+
*/
|
25
|
+
service?: Service<any, any>;
|
26
|
+
/**
|
27
|
+
* @description 请求选项
|
28
|
+
*/
|
29
|
+
options?: Options<any, any>;
|
30
|
+
/**
|
31
|
+
* @deprecated 保留向后兼容性,使用 options.defaultParams 替代
|
32
|
+
*/
|
24
33
|
defaultParams?: any;
|
25
|
-
parentKey?: string;
|
26
34
|
};
|
27
35
|
onChange?: (value: string[], selectedOptions?: any[]) => void;
|
28
36
|
transformResponse?: (data: any[]) => any[];
|
@@ -26,8 +26,7 @@ var ProStepItem = function ProStepItem(_ref) {
|
|
26
26
|
var _useStep = useStep(),
|
27
27
|
register = _useStep.register,
|
28
28
|
collapse = _useStep.collapse,
|
29
|
-
globalLazyLoad = _useStep.lazyLoad
|
30
|
-
unNotify = _useStep.unNotify;
|
29
|
+
globalLazyLoad = _useStep.lazyLoad;
|
31
30
|
var lazyLoad = stepLazyLoad !== null && stepLazyLoad !== void 0 ? stepLazyLoad : globalLazyLoad;
|
32
31
|
useEffect(function () {
|
33
32
|
// Schedule registration to avoid re-render issues
|
@@ -40,7 +39,6 @@ var ProStepItem = function ProStepItem(_ref) {
|
|
40
39
|
}, restProps));
|
41
40
|
}, 0);
|
42
41
|
return function () {
|
43
|
-
unNotify([id]);
|
44
42
|
clearTimeout(timeoutId);
|
45
43
|
};
|
46
44
|
}, [id, title, order, lazyLoad, restProps, register]);
|
@@ -113,8 +113,15 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
|
|
113
113
|
newValue = normalize === null || normalize === void 0 ? void 0 : normalize(newValue);
|
114
114
|
}
|
115
115
|
// 根据模式选择值管理方式
|
116
|
-
|
117
|
-
|
116
|
+
if (names) {
|
117
|
+
// 独立字段模式:设置单个字段值 + 触发整体校验
|
118
|
+
form.setFieldValue(columnName, newValue);
|
119
|
+
// 确保触发Group整体的校验
|
120
|
+
internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index);
|
121
|
+
} else {
|
122
|
+
// 数组值模式
|
123
|
+
internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index);
|
124
|
+
}
|
118
125
|
var values = form.getFieldValue(namePath);
|
119
126
|
var originRow = (namePath === null || namePath === void 0 ? void 0 : namePath.length) ? (0, _cloneDeep2.default)(values) : undefined;
|
120
127
|
onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, args);
|
@@ -10,8 +10,8 @@ var _tooltip = _interopRequireDefault(require("antd/es/tooltip"));
|
|
10
10
|
require("antd/es/cascader/style");
|
11
11
|
var _cascader = _interopRequireDefault(require("antd/es/cascader"));
|
12
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
13
|
-
|
14
|
-
var
|
13
|
+
require("antd/es/message/style");
|
14
|
+
var _message2 = _interopRequireDefault(require("antd/es/message"));
|
15
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
16
16
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
@@ -23,6 +23,7 @@ var _find = _interopRequireDefault(require("lodash/find"));
|
|
23
23
|
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
24
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
25
25
|
var _react = require("react");
|
26
|
+
var _ahooks = require("ahooks");
|
26
27
|
var _index = require("./utils/index");
|
27
28
|
var _ProConfigProvider = require("../../../../ProConfigProvider");
|
28
29
|
var _Input = _interopRequireDefault(require("../../base/Input"));
|
@@ -64,7 +65,7 @@ var getViewLabel = function getViewLabel(_ref) {
|
|
64
65
|
return viewLabel;
|
65
66
|
};
|
66
67
|
var ProCascader = function ProCascader(props) {
|
67
|
-
var _props$otherProps, _value$slice,
|
68
|
+
var _props$otherProps, _useRequest$options3, _value$slice, _ref7, _ref7$filter, _defaultLabel$filter, _locale$ProAddressBar, _locale$ProAddressBar2;
|
68
69
|
var _ref2 = (0, _ProConfigProvider.useProConfig)('ProAddressBar') || {},
|
69
70
|
configDetailMaxLength = _ref2.detailMaxLength,
|
70
71
|
configEnumCode = _ref2.enumCode,
|
@@ -127,10 +128,6 @@ var ProCascader = function ProCascader(props) {
|
|
127
128
|
}
|
128
129
|
return disabled;
|
129
130
|
}, [disabled]);
|
130
|
-
var _useRequest = (0, _objectSpread3.default)({}, useRequest),
|
131
|
-
service = _useRequest.service,
|
132
|
-
_useRequest$defaultPa = _useRequest.defaultParams,
|
133
|
-
defaultParams = _useRequest$defaultPa === void 0 ? {} : _useRequest$defaultPa;
|
134
131
|
var _useState = (0, _react.useState)([]),
|
135
132
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
136
133
|
serviceData = _useState2[0],
|
@@ -139,53 +136,104 @@ var ProCascader = function ProCascader(props) {
|
|
139
136
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
140
137
|
defaultLabel = _useState4[0],
|
141
138
|
setDefaultLabel = _useState4[1];
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
}
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
139
|
+
// 默认成功处理函数
|
140
|
+
var defaultOnSuccessFun = function defaultOnSuccessFun(res) {
|
141
|
+
var _ref4 = res || {},
|
142
|
+
_ref4$status = _ref4.status,
|
143
|
+
status = _ref4$status === void 0 ? 200 : _ref4$status,
|
144
|
+
msg = _ref4.message,
|
145
|
+
data = _ref4.data;
|
146
|
+
if (status !== 200) {
|
147
|
+
_message2.default.error(msg);
|
148
|
+
return;
|
149
|
+
}
|
150
|
+
var newData = data;
|
151
|
+
if (transformResponse) {
|
152
|
+
newData = transformResponse(data);
|
153
|
+
}
|
154
|
+
var transFormData = (0, _index.transformDataName)(newData, {
|
155
|
+
label: fieldNames.label,
|
156
|
+
value: fieldNames.value,
|
157
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
158
|
+
});
|
159
|
+
var serviceData = isAddressMode && realLevel === 2 ? _filterDataSource(transFormData, level, fieldNames) : transFormData;
|
160
|
+
setServiceData(serviceData);
|
161
|
+
};
|
162
|
+
// 数据转换处理
|
163
|
+
var successTransformDataHandle = (0, _react.useCallback)(function (res) {
|
164
|
+
if (transformResponse && typeof transformResponse === 'function') {
|
165
|
+
return transformResponse(res);
|
166
|
+
}
|
167
|
+
var _ref5 = res || {},
|
168
|
+
_ref5$status = _ref5.status,
|
169
|
+
status = _ref5$status === void 0 ? 200 : _ref5$status,
|
170
|
+
msg = _ref5.message,
|
171
|
+
data = _ref5.data;
|
172
|
+
if (status !== 200) {
|
173
|
+
_message2.default.error(msg);
|
174
|
+
return;
|
175
|
+
}
|
176
|
+
return data;
|
177
|
+
}, [transformResponse]);
|
178
|
+
// 使用ahooks的useRequest
|
179
|
+
var fetchFunction = (0, _ahooks.useRequest)(useRequest === null || useRequest === void 0 ? void 0 : useRequest.service, (0, _objectSpread3.default)((0, _objectSpread3.default)({
|
180
|
+
manual: true,
|
181
|
+
debounceWait: 300
|
182
|
+
}, useRequest === null || useRequest === void 0 ? void 0 : useRequest.options), {}, {
|
183
|
+
onSuccess: function onSuccess(data) {
|
184
|
+
var _useRequest$options, _useRequest$options$o, _useRequest$options2;
|
185
|
+
if (transformResponse && typeof transformResponse === 'function') {
|
186
|
+
var responseData = transformResponse(data);
|
187
|
+
var transFormData = (0, _index.transformDataName)(responseData, {
|
188
|
+
label: fieldNames.label,
|
189
|
+
value: fieldNames.value,
|
190
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
191
|
+
});
|
192
|
+
var _serviceData = isAddressMode && realLevel === 2 ? _filterDataSource(transFormData, level, fieldNames) : transFormData;
|
193
|
+
setServiceData(_serviceData);
|
194
|
+
} else {
|
195
|
+
defaultOnSuccessFun(data);
|
196
|
+
}
|
197
|
+
// 执行传入的onSuccess
|
198
|
+
useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options = useRequest.options) === null || _useRequest$options === void 0 ? void 0 : (_useRequest$options$o = _useRequest$options.onSuccess) === null || _useRequest$options$o === void 0 ? void 0 : _useRequest$options$o.call(_useRequest$options, data, useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options2 = useRequest.options) === null || _useRequest$options2 === void 0 ? void 0 : _useRequest$options2.defaultParams);
|
199
|
+
}
|
200
|
+
}));
|
201
|
+
// 缓存数据处理
|
202
|
+
var cacheList = (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options3 = useRequest.options) === null || _useRequest$options3 === void 0 ? void 0 : _useRequest$options3.cacheKey) ? successTransformDataHandle(fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.data) : [];
|
174
203
|
// 提取出来默认每次都执行
|
175
204
|
if (transformResponse) {
|
176
205
|
realDataSource = transformResponse(realDataSource);
|
177
206
|
}
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
207
|
+
// 设置缓存数据
|
208
|
+
(0, _ahooks.useDeepCompareEffect)(function () {
|
209
|
+
var _useRequest$options4;
|
210
|
+
if (!(serviceData === null || serviceData === void 0 ? void 0 : serviceData.length) && (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options4 = useRequest.options) === null || _useRequest$options4 === void 0 ? void 0 : _useRequest$options4.cacheKey)) {
|
211
|
+
if (cacheList === null || cacheList === void 0 ? void 0 : cacheList.length) {
|
212
|
+
setServiceData(cacheList);
|
213
|
+
}
|
214
|
+
}
|
215
|
+
}, [fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.data]);
|
216
|
+
// 初始化请求数据
|
217
|
+
(0, _ahooks.useDeepCompareEffect)(function () {
|
218
|
+
var _useRequest$options5;
|
219
|
+
if (!(useRequest === null || useRequest === void 0 ? void 0 : useRequest.service)) {
|
220
|
+
return;
|
221
|
+
}
|
222
|
+
var _ref6 = (useRequest === null || useRequest === void 0 ? void 0 : useRequest.options) || {},
|
223
|
+
manual = _ref6.manual;
|
224
|
+
if (manual || (cacheList === null || cacheList === void 0 ? void 0 : cacheList.length)) {
|
225
|
+
return;
|
182
226
|
}
|
183
|
-
|
227
|
+
// 向后兼容性:优先使用 options.defaultParams,fallback 到 useRequest.defaultParams
|
228
|
+
var defaultParams = (useRequest === null || useRequest === void 0 ? void 0 : (_useRequest$options5 = useRequest.options) === null || _useRequest$options5 === void 0 ? void 0 : _useRequest$options5.defaultParams) || (useRequest === null || useRequest === void 0 ? void 0 : useRequest.defaultParams);
|
229
|
+
var params = Array.isArray(defaultParams) ? defaultParams === null || defaultParams === void 0 ? void 0 : defaultParams[0] : defaultParams || {};
|
230
|
+
fetchFunction.run(params);
|
231
|
+
}, [useRequest === null || useRequest === void 0 ? void 0 : useRequest.options]);
|
184
232
|
(0, _react.useEffect)(function () {
|
185
233
|
if (realIsView && value) {
|
186
234
|
var _realDataSource;
|
187
235
|
// 传入dataSource + 查看时初始化展示
|
188
|
-
if (service) {
|
236
|
+
if (useRequest === null || useRequest === void 0 ? void 0 : useRequest.service) {
|
189
237
|
setDefaultLabel(getViewLabel({
|
190
238
|
dataSource: serviceData,
|
191
239
|
value: isAddressMode && hasDetail ? value === null || value === void 0 ? void 0 : value.slice(0, realLevel) : value
|
@@ -224,9 +272,9 @@ var ProCascader = function ProCascader(props) {
|
|
224
272
|
var addressValue = isAddressMode ? value && ((_value$slice = value.slice(0, realLevel)) === null || _value$slice === void 0 ? void 0 : _value$slice.some(function (item) {
|
225
273
|
return !!item;
|
226
274
|
})) ? value.slice(0, realLevel) : undefined : value;
|
227
|
-
var viewValue = isAddressMode ? ((
|
275
|
+
var viewValue = isAddressMode ? ((_ref7 = [].concat((0, _toConsumableArray2.default)(defaultLabel), [value === null || value === void 0 ? void 0 : value[realLevel]])) === null || _ref7 === void 0 ? void 0 : (_ref7$filter = _ref7.filter(function (item) {
|
228
276
|
return !!item;
|
229
|
-
})) === null ||
|
277
|
+
})) === null || _ref7$filter === void 0 ? void 0 : _ref7$filter.join(separator)) || '-' : (defaultLabel === null || defaultLabel === void 0 ? void 0 : (_defaultLabel$filter = defaultLabel.filter(function (item) {
|
230
278
|
return !!item;
|
231
279
|
})) === null || _defaultLabel$filter === void 0 ? void 0 : _defaultLabel$filter.join(separator)) || '-';
|
232
280
|
var _findSelectedOptions = function findSelectedOptions(options, value) {
|
@@ -257,8 +305,8 @@ var ProCascader = function ProCascader(props) {
|
|
257
305
|
return null;
|
258
306
|
};
|
259
307
|
var _selectedOptions = (0, _react.useMemo)(function () {
|
260
|
-
return _findSelectedOptions(service ? serviceData : realDataSource, addressValue);
|
261
|
-
}, [service, serviceData, realDataSource, addressValue]);
|
308
|
+
return _findSelectedOptions((useRequest === null || useRequest === void 0 ? void 0 : useRequest.service) ? serviceData : realDataSource, addressValue);
|
309
|
+
}, [useRequest === null || useRequest === void 0 ? void 0 : useRequest.service, serviceData, realDataSource, addressValue]);
|
262
310
|
var handleAddressChange = function handleAddressChange(e) {
|
263
311
|
var cascaderValue = value === null || value === void 0 ? void 0 : value.slice(0, realLevel);
|
264
312
|
if (onChange) {
|
@@ -283,8 +331,9 @@ var ProCascader = function ProCascader(props) {
|
|
283
331
|
className: hasDetail ? '' : 'no-detail',
|
284
332
|
placeholder: _locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProAddressBar = _locale.default.ProAddressBar) === null || _locale$ProAddressBar === void 0 ? void 0 : _locale$ProAddressBar.placeholder,
|
285
333
|
value: addressValue,
|
286
|
-
options: service ? serviceData : realDataSource,
|
334
|
+
options: (useRequest === null || useRequest === void 0 ? void 0 : useRequest.service) ? serviceData : realDataSource,
|
287
335
|
disabled: lastDisabled[0],
|
336
|
+
loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
|
288
337
|
displayRender: displayRender,
|
289
338
|
showSearch: {
|
290
339
|
filter: handlefilter,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ReactNode } from 'react';
|
2
2
|
import { DefaultOptionType } from 'rc-select/lib/Select';
|
3
|
-
import { Service } from 'ahooks/lib/useRequest/src/types';
|
3
|
+
import { Service, Options } from 'ahooks/lib/useRequest/src/types';
|
4
4
|
export interface FieldNamesType {
|
5
5
|
label: string;
|
6
6
|
value: string;
|
@@ -19,10 +19,18 @@ export interface ProCascaderType {
|
|
19
19
|
fieldNames?: FieldNamesType;
|
20
20
|
dataSource?: DefaultOptionType[];
|
21
21
|
useRequest?: {
|
22
|
-
|
23
|
-
|
22
|
+
/**
|
23
|
+
* @description 请求服务函数
|
24
|
+
*/
|
25
|
+
service?: Service<any, any>;
|
26
|
+
/**
|
27
|
+
* @description 请求选项
|
28
|
+
*/
|
29
|
+
options?: Options<any, any>;
|
30
|
+
/**
|
31
|
+
* @deprecated 保留向后兼容性,使用 options.defaultParams 替代
|
32
|
+
*/
|
24
33
|
defaultParams?: any;
|
25
|
-
parentKey?: string;
|
26
34
|
};
|
27
35
|
onChange?: (value: string[], selectedOptions?: any[]) => void;
|
28
36
|
transformResponse?: (data: any[]) => any[];
|
@@ -34,8 +34,7 @@ var ProStepItem = function ProStepItem(_ref) {
|
|
34
34
|
var _useStep = (0, _index.useStep)(),
|
35
35
|
register = _useStep.register,
|
36
36
|
collapse = _useStep.collapse,
|
37
|
-
globalLazyLoad = _useStep.lazyLoad
|
38
|
-
unNotify = _useStep.unNotify;
|
37
|
+
globalLazyLoad = _useStep.lazyLoad;
|
39
38
|
var lazyLoad = stepLazyLoad !== null && stepLazyLoad !== void 0 ? stepLazyLoad : globalLazyLoad;
|
40
39
|
(0, _react.useEffect)(function () {
|
41
40
|
// Schedule registration to avoid re-render issues
|
@@ -48,7 +47,6 @@ var ProStepItem = function ProStepItem(_ref) {
|
|
48
47
|
}, restProps));
|
49
48
|
}, 0);
|
50
49
|
return function () {
|
51
|
-
unNotify([id]);
|
52
50
|
clearTimeout(timeoutId);
|
53
51
|
};
|
54
52
|
}, [id, title, order, lazyLoad, restProps, register]);
|