@zat-design/sisyphus-react 3.13.15-beta.2 → 3.13.15-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/ProForm/components/combination/Group/hooks/index.js +10 -3
- package/es/ProForm/components/combination/ProCascader/index.js +51 -100
- package/es/ProForm/components/combination/ProCascader/propsType.d.ts +4 -12
- package/lib/ProForm/components/combination/Group/hooks/index.js +10 -3
- package/lib/ProForm/components/combination/ProCascader/index.js +50 -99
- package/lib/ProForm/components/combination/ProCascader/propsType.d.ts +4 -12
- package/package.json +1 -1
@@ -104,7 +104,9 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
104
104
|
// @ts-ignore
|
105
105
|
newValue = normalize === null || normalize === void 0 ? void 0 : normalize(newValue);
|
106
106
|
}
|
107
|
-
|
107
|
+
// 根据模式选择值管理方式
|
108
|
+
names ? form.setFieldValue(columnName, newValue) // 独立字段模式
|
109
|
+
: internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index); // 数组值模式
|
108
110
|
var values = form.getFieldValue(namePath);
|
109
111
|
var originRow = (namePath === null || namePath === void 0 ? void 0 : namePath.length) ? _cloneDeep(values) : undefined;
|
110
112
|
onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, args);
|
@@ -156,9 +158,14 @@ export var useTransformColumns = function useTransformColumns(params) {
|
|
156
158
|
getValueProps: transform === null || transform === void 0 ? void 0 : transform.getValueProps,
|
157
159
|
fieldProps: _objectSpread(_objectSpread(_objectSpread({}, column === null || column === void 0 ? void 0 : column.fieldProps), reactiveProps === null || reactiveProps === void 0 ? void 0 : reactiveProps.fieldProps), {}, {
|
158
160
|
onChange: handleChange,
|
159
|
-
onBlur: handleBlur
|
161
|
+
onBlur: handleBlur
|
162
|
+
}, names ? {
|
163
|
+
value: form.getFieldValue(columnName)
|
164
|
+
} // 独立字段模式
|
165
|
+
: {
|
160
166
|
value: value === null || value === void 0 ? void 0 : value[index]
|
161
|
-
}
|
167
|
+
} // 数组值模式
|
168
|
+
)
|
162
169
|
});
|
163
170
|
});
|
164
171
|
};
|
@@ -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 _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
7
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
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,8 +16,7 @@ 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
|
20
|
-
import { useRequest as useRequestFunc, useDeepCompareEffect } from 'ahooks';
|
19
|
+
import { useEffect, useState, memo, useMemo } from 'react';
|
21
20
|
import { transformDataName } from './utils/index';
|
22
21
|
import { useProConfig } from '../../../../ProConfigProvider';
|
23
22
|
import Input from '../../base/Input';
|
@@ -58,7 +57,7 @@ var getViewLabel = function getViewLabel(_ref) {
|
|
58
57
|
return viewLabel;
|
59
58
|
};
|
60
59
|
var ProCascader = function ProCascader(props) {
|
61
|
-
var _props$otherProps,
|
60
|
+
var _props$otherProps, _value$slice, _ref5, _ref5$filter, _defaultLabel$filter, _locale$ProAddressBar, _locale$ProAddressBar2;
|
62
61
|
var _ref2 = useProConfig('ProAddressBar') || {},
|
63
62
|
configDetailMaxLength = _ref2.detailMaxLength,
|
64
63
|
configEnumCode = _ref2.enumCode,
|
@@ -121,6 +120,10 @@ var ProCascader = function ProCascader(props) {
|
|
121
120
|
}
|
122
121
|
return disabled;
|
123
122
|
}, [disabled]);
|
123
|
+
var _useRequest = _objectSpread({}, useRequest),
|
124
|
+
service = _useRequest.service,
|
125
|
+
_useRequest$defaultPa = _useRequest.defaultParams,
|
126
|
+
defaultParams = _useRequest$defaultPa === void 0 ? {} : _useRequest$defaultPa;
|
124
127
|
var _useState = useState([]),
|
125
128
|
_useState2 = _slicedToArray(_useState, 2),
|
126
129
|
serviceData = _useState2[0],
|
@@ -129,104 +132,53 @@ var ProCascader = function ProCascader(props) {
|
|
129
132
|
_useState4 = _slicedToArray(_useState3, 2),
|
130
133
|
defaultLabel = _useState4[0],
|
131
134
|
setDefaultLabel = _useState4[1];
|
132
|
-
|
133
|
-
|
134
|
-
|
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
|
-
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) : [];
|
135
|
+
var getFirstLevelOptions = /*#__PURE__*/function () {
|
136
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
137
|
+
var _yield$service, data, newData, transFormData, serviceData;
|
138
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
139
|
+
while (1) switch (_context.prev = _context.next) {
|
140
|
+
case 0:
|
141
|
+
_context.next = 2;
|
142
|
+
return service(defaultParams);
|
143
|
+
case 2:
|
144
|
+
_yield$service = _context.sent;
|
145
|
+
data = _yield$service.data;
|
146
|
+
newData = data;
|
147
|
+
if (transformResponse) {
|
148
|
+
newData = transformResponse(data);
|
149
|
+
}
|
150
|
+
transFormData = transformDataName(newData, {
|
151
|
+
label: fieldNames.label,
|
152
|
+
value: fieldNames.value,
|
153
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
154
|
+
});
|
155
|
+
serviceData = isAddressMode && realLevel === 2 ? _filterDataSource(transFormData, level, fieldNames) : transFormData;
|
156
|
+
setServiceData(serviceData);
|
157
|
+
case 9:
|
158
|
+
case "end":
|
159
|
+
return _context.stop();
|
160
|
+
}
|
161
|
+
}, _callee);
|
162
|
+
}));
|
163
|
+
return function getFirstLevelOptions() {
|
164
|
+
return _ref4.apply(this, arguments);
|
165
|
+
};
|
166
|
+
}();
|
196
167
|
// 提取出来默认每次都执行
|
197
168
|
if (transformResponse) {
|
198
169
|
realDataSource = transformResponse(realDataSource);
|
199
170
|
}
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
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;
|
171
|
+
useEffect(function () {
|
172
|
+
if (service) {
|
173
|
+
// 传入useRequest时,初次加载级联第一级数据源
|
174
|
+
getFirstLevelOptions();
|
219
175
|
}
|
220
|
-
|
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]);
|
176
|
+
}, [service]);
|
225
177
|
useEffect(function () {
|
226
178
|
if (realIsView && value) {
|
227
179
|
var _realDataSource;
|
228
180
|
// 传入dataSource + 查看时初始化展示
|
229
|
-
if (
|
181
|
+
if (service) {
|
230
182
|
setDefaultLabel(getViewLabel({
|
231
183
|
dataSource: serviceData,
|
232
184
|
value: isAddressMode && hasDetail ? value === null || value === void 0 ? void 0 : value.slice(0, realLevel) : value
|
@@ -265,9 +217,9 @@ var ProCascader = function ProCascader(props) {
|
|
265
217
|
var addressValue = isAddressMode ? value && ((_value$slice = value.slice(0, realLevel)) === null || _value$slice === void 0 ? void 0 : _value$slice.some(function (item) {
|
266
218
|
return !!item;
|
267
219
|
})) ? value.slice(0, realLevel) : undefined : value;
|
268
|
-
var viewValue = isAddressMode ? ((
|
220
|
+
var viewValue = isAddressMode ? ((_ref5 = [].concat(_toConsumableArray(defaultLabel), [value === null || value === void 0 ? void 0 : value[realLevel]])) === null || _ref5 === void 0 ? void 0 : (_ref5$filter = _ref5.filter(function (item) {
|
269
221
|
return !!item;
|
270
|
-
})) === null ||
|
222
|
+
})) === null || _ref5$filter === void 0 ? void 0 : _ref5$filter.join(separator)) || '-' : (defaultLabel === null || defaultLabel === void 0 ? void 0 : (_defaultLabel$filter = defaultLabel.filter(function (item) {
|
271
223
|
return !!item;
|
272
224
|
})) === null || _defaultLabel$filter === void 0 ? void 0 : _defaultLabel$filter.join(separator)) || '-';
|
273
225
|
var _findSelectedOptions = function findSelectedOptions(options, value) {
|
@@ -298,8 +250,8 @@ var ProCascader = function ProCascader(props) {
|
|
298
250
|
return null;
|
299
251
|
};
|
300
252
|
var _selectedOptions = useMemo(function () {
|
301
|
-
return _findSelectedOptions(
|
302
|
-
}, [
|
253
|
+
return _findSelectedOptions(service ? serviceData : realDataSource, addressValue);
|
254
|
+
}, [service, serviceData, realDataSource, addressValue]);
|
303
255
|
var handleAddressChange = function handleAddressChange(e) {
|
304
256
|
var cascaderValue = value === null || value === void 0 ? void 0 : value.slice(0, realLevel);
|
305
257
|
if (onChange) {
|
@@ -324,9 +276,8 @@ var ProCascader = function ProCascader(props) {
|
|
324
276
|
className: hasDetail ? '' : 'no-detail',
|
325
277
|
placeholder: locale === null || locale === void 0 ? void 0 : (_locale$ProAddressBar = locale.ProAddressBar) === null || _locale$ProAddressBar === void 0 ? void 0 : _locale$ProAddressBar.placeholder,
|
326
278
|
value: addressValue,
|
327
|
-
options:
|
279
|
+
options: service ? serviceData : realDataSource,
|
328
280
|
disabled: lastDisabled[0],
|
329
|
-
loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
|
330
281
|
displayRender: displayRender,
|
331
282
|
showSearch: {
|
332
283
|
filter: handlefilter,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ReactNode } from 'react';
|
2
2
|
import { DefaultOptionType } from 'rc-select/lib/Select';
|
3
|
-
import { Service
|
3
|
+
import { Service } from 'ahooks/lib/useRequest/src/types';
|
4
4
|
export interface FieldNamesType {
|
5
5
|
label: string;
|
6
6
|
value: string;
|
@@ -19,18 +19,10 @@ export interface ProCascaderType {
|
|
19
19
|
fieldNames?: FieldNamesType;
|
20
20
|
dataSource?: DefaultOptionType[];
|
21
21
|
useRequest?: {
|
22
|
-
|
23
|
-
|
24
|
-
*/
|
25
|
-
service?: Service<any, any>;
|
26
|
-
/**
|
27
|
-
* @description 请求选项
|
28
|
-
*/
|
29
|
-
options?: Options<any, any>;
|
30
|
-
/**
|
31
|
-
* @deprecated 保留向后兼容性,使用 options.defaultParams 替代
|
32
|
-
*/
|
22
|
+
loadData?: boolean;
|
23
|
+
service: Service<any, any>;
|
33
24
|
defaultParams?: any;
|
25
|
+
parentKey?: string;
|
34
26
|
};
|
35
27
|
onChange?: (value: string[], selectedOptions?: any[]) => void;
|
36
28
|
transformResponse?: (data: any[]) => any[];
|
@@ -112,7 +112,9 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
|
|
112
112
|
// @ts-ignore
|
113
113
|
newValue = normalize === null || normalize === void 0 ? void 0 : normalize(newValue);
|
114
114
|
}
|
115
|
-
|
115
|
+
// 根据模式选择值管理方式
|
116
|
+
names ? form.setFieldValue(columnName, newValue) // 独立字段模式
|
117
|
+
: internalChange === null || internalChange === void 0 ? void 0 : internalChange(newValue, args[1], index); // 数组值模式
|
116
118
|
var values = form.getFieldValue(namePath);
|
117
119
|
var originRow = (namePath === null || namePath === void 0 ? void 0 : namePath.length) ? (0, _cloneDeep2.default)(values) : undefined;
|
118
120
|
onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, args);
|
@@ -164,9 +166,14 @@ var useTransformColumns = exports.useTransformColumns = function useTransformCol
|
|
164
166
|
getValueProps: transform === null || transform === void 0 ? void 0 : transform.getValueProps,
|
165
167
|
fieldProps: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, column === null || column === void 0 ? void 0 : column.fieldProps), reactiveProps === null || reactiveProps === void 0 ? void 0 : reactiveProps.fieldProps), {}, {
|
166
168
|
onChange: handleChange,
|
167
|
-
onBlur: handleBlur
|
169
|
+
onBlur: handleBlur
|
170
|
+
}, names ? {
|
171
|
+
value: form.getFieldValue(columnName)
|
172
|
+
} // 独立字段模式
|
173
|
+
: {
|
168
174
|
value: value === null || value === void 0 ? void 0 : value[index]
|
169
|
-
}
|
175
|
+
} // 数组值模式
|
176
|
+
)
|
170
177
|
});
|
171
178
|
});
|
172
179
|
};
|
@@ -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
|
-
require("
|
14
|
-
var
|
13
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
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,7 +23,6 @@ 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");
|
27
26
|
var _index = require("./utils/index");
|
28
27
|
var _ProConfigProvider = require("../../../../ProConfigProvider");
|
29
28
|
var _Input = _interopRequireDefault(require("../../base/Input"));
|
@@ -65,7 +64,7 @@ var getViewLabel = function getViewLabel(_ref) {
|
|
65
64
|
return viewLabel;
|
66
65
|
};
|
67
66
|
var ProCascader = function ProCascader(props) {
|
68
|
-
var _props$otherProps,
|
67
|
+
var _props$otherProps, _value$slice, _ref5, _ref5$filter, _defaultLabel$filter, _locale$ProAddressBar, _locale$ProAddressBar2;
|
69
68
|
var _ref2 = (0, _ProConfigProvider.useProConfig)('ProAddressBar') || {},
|
70
69
|
configDetailMaxLength = _ref2.detailMaxLength,
|
71
70
|
configEnumCode = _ref2.enumCode,
|
@@ -128,6 +127,10 @@ var ProCascader = function ProCascader(props) {
|
|
128
127
|
}
|
129
128
|
return disabled;
|
130
129
|
}, [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;
|
131
134
|
var _useState = (0, _react.useState)([]),
|
132
135
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
133
136
|
serviceData = _useState2[0],
|
@@ -136,104 +139,53 @@ var ProCascader = function ProCascader(props) {
|
|
136
139
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
137
140
|
defaultLabel = _useState4[0],
|
138
141
|
setDefaultLabel = _useState4[1];
|
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
|
-
}
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
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) : [];
|
142
|
+
var getFirstLevelOptions = /*#__PURE__*/function () {
|
143
|
+
var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
144
|
+
var _yield$service, data, newData, transFormData, serviceData;
|
145
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
146
|
+
while (1) switch (_context.prev = _context.next) {
|
147
|
+
case 0:
|
148
|
+
_context.next = 2;
|
149
|
+
return service(defaultParams);
|
150
|
+
case 2:
|
151
|
+
_yield$service = _context.sent;
|
152
|
+
data = _yield$service.data;
|
153
|
+
newData = data;
|
154
|
+
if (transformResponse) {
|
155
|
+
newData = transformResponse(data);
|
156
|
+
}
|
157
|
+
transFormData = (0, _index.transformDataName)(newData, {
|
158
|
+
label: fieldNames.label,
|
159
|
+
value: fieldNames.value,
|
160
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
161
|
+
});
|
162
|
+
serviceData = isAddressMode && realLevel === 2 ? _filterDataSource(transFormData, level, fieldNames) : transFormData;
|
163
|
+
setServiceData(serviceData);
|
164
|
+
case 9:
|
165
|
+
case "end":
|
166
|
+
return _context.stop();
|
167
|
+
}
|
168
|
+
}, _callee);
|
169
|
+
}));
|
170
|
+
return function getFirstLevelOptions() {
|
171
|
+
return _ref4.apply(this, arguments);
|
172
|
+
};
|
173
|
+
}();
|
203
174
|
// 提取出来默认每次都执行
|
204
175
|
if (transformResponse) {
|
205
176
|
realDataSource = transformResponse(realDataSource);
|
206
177
|
}
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
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;
|
178
|
+
(0, _react.useEffect)(function () {
|
179
|
+
if (service) {
|
180
|
+
// 传入useRequest时,初次加载级联第一级数据源
|
181
|
+
getFirstLevelOptions();
|
226
182
|
}
|
227
|
-
|
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]);
|
183
|
+
}, [service]);
|
232
184
|
(0, _react.useEffect)(function () {
|
233
185
|
if (realIsView && value) {
|
234
186
|
var _realDataSource;
|
235
187
|
// 传入dataSource + 查看时初始化展示
|
236
|
-
if (
|
188
|
+
if (service) {
|
237
189
|
setDefaultLabel(getViewLabel({
|
238
190
|
dataSource: serviceData,
|
239
191
|
value: isAddressMode && hasDetail ? value === null || value === void 0 ? void 0 : value.slice(0, realLevel) : value
|
@@ -272,9 +224,9 @@ var ProCascader = function ProCascader(props) {
|
|
272
224
|
var addressValue = isAddressMode ? value && ((_value$slice = value.slice(0, realLevel)) === null || _value$slice === void 0 ? void 0 : _value$slice.some(function (item) {
|
273
225
|
return !!item;
|
274
226
|
})) ? value.slice(0, realLevel) : undefined : value;
|
275
|
-
var viewValue = isAddressMode ? ((
|
227
|
+
var viewValue = isAddressMode ? ((_ref5 = [].concat((0, _toConsumableArray2.default)(defaultLabel), [value === null || value === void 0 ? void 0 : value[realLevel]])) === null || _ref5 === void 0 ? void 0 : (_ref5$filter = _ref5.filter(function (item) {
|
276
228
|
return !!item;
|
277
|
-
})) === null ||
|
229
|
+
})) === null || _ref5$filter === void 0 ? void 0 : _ref5$filter.join(separator)) || '-' : (defaultLabel === null || defaultLabel === void 0 ? void 0 : (_defaultLabel$filter = defaultLabel.filter(function (item) {
|
278
230
|
return !!item;
|
279
231
|
})) === null || _defaultLabel$filter === void 0 ? void 0 : _defaultLabel$filter.join(separator)) || '-';
|
280
232
|
var _findSelectedOptions = function findSelectedOptions(options, value) {
|
@@ -305,8 +257,8 @@ var ProCascader = function ProCascader(props) {
|
|
305
257
|
return null;
|
306
258
|
};
|
307
259
|
var _selectedOptions = (0, _react.useMemo)(function () {
|
308
|
-
return _findSelectedOptions(
|
309
|
-
}, [
|
260
|
+
return _findSelectedOptions(service ? serviceData : realDataSource, addressValue);
|
261
|
+
}, [service, serviceData, realDataSource, addressValue]);
|
310
262
|
var handleAddressChange = function handleAddressChange(e) {
|
311
263
|
var cascaderValue = value === null || value === void 0 ? void 0 : value.slice(0, realLevel);
|
312
264
|
if (onChange) {
|
@@ -331,9 +283,8 @@ var ProCascader = function ProCascader(props) {
|
|
331
283
|
className: hasDetail ? '' : 'no-detail',
|
332
284
|
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,
|
333
285
|
value: addressValue,
|
334
|
-
options:
|
286
|
+
options: service ? serviceData : realDataSource,
|
335
287
|
disabled: lastDisabled[0],
|
336
|
-
loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
|
337
288
|
displayRender: displayRender,
|
338
289
|
showSearch: {
|
339
290
|
filter: handlefilter,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ReactNode } from 'react';
|
2
2
|
import { DefaultOptionType } from 'rc-select/lib/Select';
|
3
|
-
import { Service
|
3
|
+
import { Service } from 'ahooks/lib/useRequest/src/types';
|
4
4
|
export interface FieldNamesType {
|
5
5
|
label: string;
|
6
6
|
value: string;
|
@@ -19,18 +19,10 @@ export interface ProCascaderType {
|
|
19
19
|
fieldNames?: FieldNamesType;
|
20
20
|
dataSource?: DefaultOptionType[];
|
21
21
|
useRequest?: {
|
22
|
-
|
23
|
-
|
24
|
-
*/
|
25
|
-
service?: Service<any, any>;
|
26
|
-
/**
|
27
|
-
* @description 请求选项
|
28
|
-
*/
|
29
|
-
options?: Options<any, any>;
|
30
|
-
/**
|
31
|
-
* @deprecated 保留向后兼容性,使用 options.defaultParams 替代
|
32
|
-
*/
|
22
|
+
loadData?: boolean;
|
23
|
+
service: Service<any, any>;
|
33
24
|
defaultParams?: any;
|
25
|
+
parentKey?: string;
|
34
26
|
};
|
35
27
|
onChange?: (value: string[], selectedOptions?: any[]) => void;
|
36
28
|
transformResponse?: (data: any[]) => any[];
|