@zat-design/sisyphus-react 3.4.5 → 3.4.6-beta.10
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/dist/index.esm.css +151 -35
- package/dist/less.esm.css +151 -35
- package/es/ProConfigProvider/index.d.ts +2 -2
- package/es/ProConfigProvider/index.js +0 -3
- package/es/ProEditTable/components/RenderField/index.js +56 -48
- package/es/ProEditTable/index.js +3 -3
- package/es/ProEditTable/style/index.less +5 -7
- package/es/ProEditTable/utils/tools.d.ts +12 -0
- package/es/ProEditTable/utils/tools.js +79 -2
- package/es/ProForm/components/base/RangePicker/index.js +9 -9
- package/es/ProForm/components/base/TextArea/index.d.ts +1 -0
- package/es/ProForm/components/base/TextArea/index.js +4 -2
- package/es/ProForm/components/combination/Container/index.js +3 -2
- package/es/ProForm/components/combination/Container/style/index.less +5 -1
- package/es/ProForm/components/combination/FormList/index.js +1 -0
- package/es/ProForm/components/combination/{ProAddressBar → ProCascader}/index.d.ts +2 -2
- package/es/ProForm/components/combination/ProCascader/index.js +256 -0
- package/es/ProForm/components/combination/{ProAddressBar → ProCascader}/propsType.d.ts +9 -6
- package/es/ProForm/components/combination/ProCascader/utils/index.d.ts +14 -0
- package/es/ProForm/components/combination/ProCascader/utils/index.js +26 -0
- package/es/ProForm/components/combination/ProModalSelect/index.js +47 -33
- package/es/ProForm/components/combination/ProModalSelect/style/index.less +23 -0
- package/es/ProForm/components/combination/ProRangeLimit/index.d.ts +2 -2
- package/es/ProForm/components/combination/ProRangeLimit/index.js +17 -10
- package/es/ProForm/components/index.d.ts +1 -2
- package/es/ProForm/components/index.js +1 -4
- package/es/ProForm/components/render/Render.js +25 -20
- package/es/ProForm/components/render/RenderFields.js +4 -1
- package/es/ProForm/components/render/propsType.d.ts +5 -8
- package/es/ProForm/index.js +6 -2
- package/es/ProForm/propsType.d.ts +3 -0
- package/es/ProForm/style/index.less +2 -1
- package/es/ProForm/utils/index.d.ts +6 -1
- package/es/ProForm/utils/index.js +9 -6
- package/es/ProForm/utils/useChanged.js +1 -2
- package/es/ProForm/utils/useForm.js +19 -6
- package/es/ProForm/utils/useListChanged.js +1 -3
- package/es/ProIcon/config/index.d.ts +2 -0
- package/es/ProIcon/config/index.js +4 -2
- package/es/ProIcon/index.js +148 -81
- package/es/ProIcon/propsTypes.d.ts +6 -1
- package/es/ProIcon/utils/index.d.ts +5 -0
- package/es/ProIcon/utils/index.js +60 -0
- package/es/ProLayout/components/ProCollapse/index.js +6 -3
- package/es/ProLayout/components/ProCollapse/style/index.less +1 -1
- package/es/ProSelect/index.js +15 -3
- package/es/ProSelect/propsType.d.ts +2 -0
- package/es/ProSelect/utils/index.d.ts +9 -0
- package/es/ProSelect/utils/index.js +60 -0
- package/es/ProStep/components/Step/index.js +4 -3
- package/es/ProStep/style/index.less +37 -0
- package/es/ProTable/utils.js +6 -3
- package/es/ProThemeTools/component/PrdTools/index.d.ts +1 -1
- package/es/ProThemeTools/component/PrdTools/index.js +16 -6
- package/es/ProThemeTools/component/PrdTools/style/index.less +56 -48
- package/es/ProTree/components/ProTree.js +96 -74
- package/es/ProTree/components/ProTreeSelect/index.js +5 -9
- package/es/ProTree/components/ProTreeSelect/style/index.less +6 -8
- package/es/ProTree/components/Tree.js +63 -41
- package/es/ProTree/style/index.less +38 -16
- package/es/ProUpload/index.js +11 -13
- package/es/ProUpload/propsType.d.ts +8 -3
- package/es/assets/view.svg +2 -2
- package/es/global.less +37 -28
- package/lib/ProConfigProvider/index.d.ts +2 -2
- package/lib/ProConfigProvider/index.js +0 -3
- package/lib/ProEditTable/components/RenderField/index.js +54 -46
- package/lib/ProEditTable/index.js +3 -3
- package/lib/ProEditTable/style/index.less +5 -7
- package/lib/ProEditTable/utils/tools.d.ts +12 -0
- package/lib/ProEditTable/utils/tools.js +80 -2
- package/lib/ProForm/components/base/RangePicker/index.js +9 -9
- package/lib/ProForm/components/base/TextArea/index.d.ts +1 -0
- package/lib/ProForm/components/base/TextArea/index.js +4 -2
- package/lib/ProForm/components/combination/Container/index.js +3 -2
- package/lib/ProForm/components/combination/Container/style/index.less +5 -1
- package/lib/ProForm/components/combination/FormList/index.js +1 -0
- package/lib/ProForm/components/combination/{ProAddressBar → ProCascader}/index.d.ts +2 -2
- package/lib/ProForm/components/combination/ProCascader/index.js +256 -0
- package/lib/ProForm/components/combination/{ProAddressBar → ProCascader}/propsType.d.ts +9 -6
- package/lib/ProForm/components/combination/ProCascader/utils/index.d.ts +14 -0
- package/lib/ProForm/components/combination/ProCascader/utils/index.js +33 -0
- package/lib/ProForm/components/combination/ProModalSelect/index.js +46 -32
- package/lib/ProForm/components/combination/ProModalSelect/style/index.less +23 -0
- package/lib/ProForm/components/combination/ProRangeLimit/index.d.ts +2 -2
- package/lib/ProForm/components/combination/ProRangeLimit/index.js +17 -10
- package/lib/ProForm/components/index.d.ts +1 -2
- package/lib/ProForm/components/index.js +1 -8
- package/lib/ProForm/components/render/Render.js +25 -20
- package/lib/ProForm/components/render/RenderFields.js +4 -1
- package/lib/ProForm/components/render/propsType.d.ts +5 -8
- package/lib/ProForm/index.js +5 -1
- package/lib/ProForm/propsType.d.ts +3 -0
- package/lib/ProForm/style/index.less +2 -1
- package/lib/ProForm/utils/index.d.ts +6 -1
- package/lib/ProForm/utils/index.js +9 -6
- package/lib/ProForm/utils/useChanged.js +1 -2
- package/lib/ProForm/utils/useForm.js +19 -6
- package/lib/ProForm/utils/useListChanged.js +1 -3
- package/lib/ProIcon/config/index.d.ts +2 -0
- package/lib/ProIcon/config/index.js +4 -2
- package/lib/ProIcon/index.js +144 -77
- package/lib/ProIcon/propsTypes.d.ts +6 -1
- package/lib/ProIcon/utils/index.d.ts +5 -0
- package/lib/ProIcon/utils/index.js +62 -1
- package/lib/ProLayout/components/ProCollapse/index.js +6 -3
- package/lib/ProLayout/components/ProCollapse/style/index.less +1 -1
- package/lib/ProSelect/index.js +15 -3
- package/lib/ProSelect/propsType.d.ts +2 -0
- package/lib/ProSelect/utils/index.d.ts +9 -0
- package/lib/ProSelect/utils/index.js +68 -0
- package/lib/ProStep/components/Step/index.js +4 -3
- package/lib/ProStep/style/index.less +37 -0
- package/lib/ProTable/utils.js +6 -3
- package/lib/ProThemeTools/component/PrdTools/index.d.ts +1 -1
- package/lib/ProThemeTools/component/PrdTools/index.js +16 -6
- package/lib/ProThemeTools/component/PrdTools/style/index.less +56 -48
- package/lib/ProTree/components/ProTree.js +96 -74
- package/lib/ProTree/components/ProTreeSelect/index.js +5 -9
- package/lib/ProTree/components/ProTreeSelect/style/index.less +6 -8
- package/lib/ProTree/components/Tree.js +63 -41
- package/lib/ProTree/style/index.less +38 -16
- package/lib/ProUpload/index.js +10 -12
- package/lib/ProUpload/propsType.d.ts +8 -3
- package/lib/assets/view.svg +2 -2
- package/lib/global.less +37 -28
- package/package.json +2 -2
- package/es/ProForm/components/base/ProCascader/index.d.ts +0 -14
- package/es/ProForm/components/base/ProCascader/index.js +0 -72
- package/es/ProForm/components/combination/ProAddressBar/index.js +0 -437
- package/lib/ProForm/components/base/ProCascader/index.d.ts +0 -14
- package/lib/ProForm/components/base/ProCascader/index.js +0 -78
- package/lib/ProForm/components/combination/ProAddressBar/index.js +0 -437
- /package/es/ProForm/components/combination/{ProAddressBar → ProCascader}/propsType.js +0 -0
- /package/es/ProForm/components/combination/{ProAddressBar → ProCascader}/style/index.less +0 -0
- /package/lib/ProForm/components/combination/{ProAddressBar → ProCascader}/propsType.js +0 -0
- /package/lib/ProForm/components/combination/{ProAddressBar → ProCascader}/style/index.less +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.splitNames = exports.onDelete = exports.getRandom = exports.getNamePath = exports.difference = exports.customValidate = void 0;
|
|
7
|
+
exports.splitNames = exports.onDelete = exports.getRandom = exports.getNamePath = exports.getDisabled = exports.difference = exports.customValidate = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
7
9
|
var _lodash = require("lodash");
|
|
8
10
|
var getRandom = exports.getRandom = function getRandom() {
|
|
9
11
|
return Math.random().toString(36).slice(-6);
|
|
@@ -12,7 +14,8 @@ var getRandom = exports.getRandom = function getRandom() {
|
|
|
12
14
|
var difference = exports.difference = function difference(object, base) {
|
|
13
15
|
var changes = function changes(object, base) {
|
|
14
16
|
return (0, _lodash.transform)(object, function (result, value, key) {
|
|
15
|
-
|
|
17
|
+
var _key$indexOf;
|
|
18
|
+
if ((key === null || key === void 0 ? void 0 : (_key$indexOf = key.indexOf) === null || _key$indexOf === void 0 ? void 0 : _key$indexOf.call(key, '-')) > -1) {
|
|
16
19
|
result[key] = true;
|
|
17
20
|
} else if (!(0, _lodash.isEqual)(value, base[key])) {
|
|
18
21
|
result[key] = (0, _lodash.isObject)(value) && (0, _lodash.isObject)(base[key]) ? changes(value, base[key]) : value;
|
|
@@ -80,4 +83,79 @@ var onDelete = exports.onDelete = function onDelete(_ref) {
|
|
|
80
83
|
form.setFieldValue(namePath, virtualList);
|
|
81
84
|
}
|
|
82
85
|
}
|
|
86
|
+
};
|
|
87
|
+
/** 获取最终的disabled, 两张模式【子级优先,全局优先】
|
|
88
|
+
* 全局优先:globalControl为true时,全局控制
|
|
89
|
+
* 子级优先:globalControl为false时,子级控制
|
|
90
|
+
* @param globalControl 全局控制
|
|
91
|
+
* @param formDisabled 表单的disabled
|
|
92
|
+
* @param column 当前列
|
|
93
|
+
* @param tabledDisabled 表格的disabled
|
|
94
|
+
* @param columnFieldProps 当前列的fieldProps
|
|
95
|
+
* @param params 当前列的参数
|
|
96
|
+
* @param rowDisabled 行禁用参数
|
|
97
|
+
*/
|
|
98
|
+
var getDisabled = exports.getDisabled = function getDisabled(_ref2) {
|
|
99
|
+
var globalControl = _ref2.globalControl,
|
|
100
|
+
formDisabled = _ref2.formDisabled,
|
|
101
|
+
column = _ref2.column,
|
|
102
|
+
tabledDisabled = _ref2.tabledDisabled,
|
|
103
|
+
columnFieldProps = _ref2.columnFieldProps,
|
|
104
|
+
params = _ref2.params,
|
|
105
|
+
rowDisabled = _ref2.rowDisabled;
|
|
106
|
+
var convertToBoolean = function convertToBoolean(value) {
|
|
107
|
+
if (Array.isArray(value)) {
|
|
108
|
+
return value;
|
|
109
|
+
}
|
|
110
|
+
if (value === null || value === undefined || value === '') {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
if (value === 0) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return Boolean(value);
|
|
117
|
+
};
|
|
118
|
+
// 判断是否有column的disabled属性
|
|
119
|
+
var noColumnDisabled = function noColumnDisabled() {
|
|
120
|
+
if ((0, _lodash.isFunction)(column === null || column === void 0 ? void 0 : column.disabled) || (0, _lodash.isFunction)(columnFieldProps === null || columnFieldProps === void 0 ? void 0 : columnFieldProps.disabled) || (0, _lodash.isBoolean)(column === null || column === void 0 ? void 0 : column.disabled) || (0, _lodash.isBoolean)(columnFieldProps === null || columnFieldProps === void 0 ? void 0 : columnFieldProps.disabled)) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
// 判断FieldProps是否有disabled属性
|
|
124
|
+
if ((0, _lodash.isFunction)(columnFieldProps)) {
|
|
125
|
+
var _columnFieldProps = columnFieldProps.apply(void 0, (0, _toConsumableArray2.default)(params)),
|
|
126
|
+
disabled = _columnFieldProps.disabled;
|
|
127
|
+
if ((0, _lodash.isFunction)(disabled) || (0, _lodash.isBoolean)(disabled)) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
};
|
|
133
|
+
if (globalControl) {
|
|
134
|
+
return convertToBoolean(formDisabled) || convertToBoolean(tabledDisabled);
|
|
135
|
+
}
|
|
136
|
+
if (rowDisabled === 'empty') {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
// 当表单含有diabled属性时,优先使用表单的disabled
|
|
140
|
+
if ((0, _lodash.isFunction)(rowDisabled) && noColumnDisabled()) {
|
|
141
|
+
return rowDisabled(params[1]);
|
|
142
|
+
}
|
|
143
|
+
if ((0, _lodash.isFunction)(column === null || column === void 0 ? void 0 : column.disabled)) {
|
|
144
|
+
return convertToBoolean(column === null || column === void 0 ? void 0 : column.disabled.apply(column, (0, _toConsumableArray2.default)(params)));
|
|
145
|
+
}
|
|
146
|
+
// 表单FieldProps为函数时
|
|
147
|
+
if ((0, _lodash.isFunction)(columnFieldProps)) {
|
|
148
|
+
var _columnFieldProps2 = columnFieldProps.apply(void 0, (0, _toConsumableArray2.default)(params)),
|
|
149
|
+
disabled = _columnFieldProps2.disabled;
|
|
150
|
+
if ((0, _lodash.isFunction)(disabled)) {
|
|
151
|
+
return convertToBoolean(disabled.apply(void 0, (0, _toConsumableArray2.default)(params)));
|
|
152
|
+
}
|
|
153
|
+
if ((0, _lodash.isBoolean)(disabled)) {
|
|
154
|
+
return convertToBoolean(disabled);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if ((0, _lodash.isFunction)(columnFieldProps === null || columnFieldProps === void 0 ? void 0 : columnFieldProps.disabled)) {
|
|
158
|
+
return convertToBoolean(columnFieldProps === null || columnFieldProps === void 0 ? void 0 : columnFieldProps.disabled.apply(columnFieldProps, (0, _toConsumableArray2.default)(params)));
|
|
159
|
+
}
|
|
160
|
+
return convertToBoolean(column === null || column === void 0 ? void 0 : column.disabled) || convertToBoolean(columnFieldProps === null || columnFieldProps === void 0 ? void 0 : columnFieldProps.disabled) || convertToBoolean(tabledDisabled);
|
|
83
161
|
};
|
|
@@ -29,9 +29,16 @@ var RangePicker = function RangePicker(props) {
|
|
|
29
29
|
viewEmpty = _ref.viewEmpty,
|
|
30
30
|
valueType = _ref.valueType;
|
|
31
31
|
var isView = typeof props.isView === 'boolean' ? props.isView : isViewCon;
|
|
32
|
+
var _res = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, rest), {}, {
|
|
33
|
+
showTime: !rest.showTime && valueType === 'dateTime' || rest.showTime
|
|
34
|
+
});
|
|
35
|
+
// 字符串时间格式兼容
|
|
36
|
+
if (Array.isArray(_res.value) && (0, _lodash.isString)(_res.value[0]) && (0, _lodash.isString)(_res.value[1])) {
|
|
37
|
+
_res.value = [(0, _moment.default)(_res.value[0]), (0, _moment.default)(_res.value[1])];
|
|
38
|
+
}
|
|
32
39
|
if (isView) {
|
|
33
|
-
var
|
|
34
|
-
value =
|
|
40
|
+
var _res$value = _res.value,
|
|
41
|
+
value = _res$value === void 0 ? [] : _res$value;
|
|
35
42
|
var viewChildren = null;
|
|
36
43
|
if (!value || !value[0] || !value[1]) {
|
|
37
44
|
viewChildren = null;
|
|
@@ -53,13 +60,6 @@ var RangePicker = function RangePicker(props) {
|
|
|
53
60
|
children: viewChildren
|
|
54
61
|
});
|
|
55
62
|
}
|
|
56
|
-
var _res = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, rest), {}, {
|
|
57
|
-
showTime: !rest.showTime && valueType === 'dateTime' || rest.showTime
|
|
58
|
-
});
|
|
59
|
-
// 字符串时间格式兼容
|
|
60
|
-
if (Array.isArray(_res.value) && (0, _lodash.isString)(_res.value[0]) && (0, _lodash.isString)(_res.value[1])) {
|
|
61
|
-
_res.value = [(0, _moment.default)(_res.value[0]), (0, _moment.default)(_res.value[1])];
|
|
62
|
-
}
|
|
63
63
|
return (0, _jsxRuntime.jsx)(AntRangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialConfig), (0, _lodash.omit)(_res, ['separator'])));
|
|
64
64
|
};
|
|
65
65
|
var _default = exports.default = RangePicker;
|
|
@@ -17,12 +17,14 @@ var _locale = _interopRequireDefault(require("../../../../locale"));
|
|
|
17
17
|
var _ProForm = _interopRequireDefault(require("../../../../ProForm"));
|
|
18
18
|
var _Container = _interopRequireDefault(require("../../Container"));
|
|
19
19
|
require("./index.less");
|
|
20
|
-
var _excluded = ["placeholder", "otherProps", "className"];
|
|
20
|
+
var _excluded = ["placeholder", "otherProps", "className", "tooltip"];
|
|
21
21
|
var TextArea = _antd.Input.TextArea;
|
|
22
22
|
var TextAreaDef = function TextAreaDef(props) {
|
|
23
23
|
var placeholder = props.placeholder,
|
|
24
24
|
otherProps = props.otherProps,
|
|
25
25
|
className = props.className,
|
|
26
|
+
_props$tooltip = props.tooltip,
|
|
27
|
+
tooltip = _props$tooltip === void 0 ? true : _props$tooltip,
|
|
26
28
|
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
27
29
|
var _ref = _ProForm.default.useFieldProps() || {},
|
|
28
30
|
label = _ref.label,
|
|
@@ -33,7 +35,7 @@ var TextAreaDef = function TextAreaDef(props) {
|
|
|
33
35
|
if (isView) {
|
|
34
36
|
return (0, _jsxRuntime.jsx)(_Container.default, {
|
|
35
37
|
nowrap: false,
|
|
36
|
-
tooltip:
|
|
38
|
+
tooltip: tooltip,
|
|
37
39
|
viewEmpty: viewEmpty,
|
|
38
40
|
children: rest.value
|
|
39
41
|
});
|
|
@@ -28,10 +28,11 @@ var Container = function Container(props) {
|
|
|
28
28
|
disabled = _ref.disabled;
|
|
29
29
|
var _className = (0, _classnames2.default)((0, _defineProperty2.default)({
|
|
30
30
|
'pro-container': true,
|
|
31
|
-
'pro-container-diy': type === 'Container'
|
|
31
|
+
'pro-container-diy': type === 'Container',
|
|
32
|
+
'pro-container-empty': !(children === null || children === void 0 ? void 0 : children.length)
|
|
32
33
|
}, "".concat(className), className));
|
|
33
34
|
var _children = (0, _react.useMemo)(function () {
|
|
34
|
-
var result = children.map(function (item) {
|
|
35
|
+
var result = children === null || children === void 0 ? void 0 : children.map(function (item) {
|
|
35
36
|
return (0, _objectSpread2.default)({
|
|
36
37
|
clearNotShow: clearNotShow,
|
|
37
38
|
show: show,
|
|
@@ -58,6 +58,7 @@ var FormList = function FormList(props, ref) {
|
|
|
58
58
|
}) : item.names,
|
|
59
59
|
index: fieldName,
|
|
60
60
|
namePath: namePath,
|
|
61
|
+
listName: [].concat((0, _toConsumableArray2.default)(namePath), [item.name]),
|
|
61
62
|
label: mode === 'less' ? undefined : item.label
|
|
62
63
|
});
|
|
63
64
|
return column;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
declare const _default: import("react").MemoExoticComponent<(props:
|
|
2
|
+
import { ProCascaderProps } from './propsType';
|
|
3
|
+
declare const _default: import("react").MemoExoticComponent<(props: ProCascaderProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
var _react = require("react");
|
|
16
|
+
var _antd = require("antd");
|
|
17
|
+
var _lodash = require("lodash");
|
|
18
|
+
var _index = require("./utils/index");
|
|
19
|
+
var _ProConfigProvider = require("../../../../ProConfigProvider");
|
|
20
|
+
var _useEnum = _interopRequireDefault(require("../../../../ProEnum/hooks/useEnum"));
|
|
21
|
+
var _locale = _interopRequireDefault(require("../../../../locale"));
|
|
22
|
+
var _ = _interopRequireDefault(require("../../.."));
|
|
23
|
+
var _excluded = ["className", "hasDetail", "detailMaxLength", "fieldNames", "value", "disabled", "dataSource", "onChange", "useRequest", "transformResponse", "level", "isView", "enumCode", "code", "tooltip", "separator"];
|
|
24
|
+
var Text = _antd.Typography.Text;
|
|
25
|
+
var filterDataSource = function filterDataSource(dataSource, level) {
|
|
26
|
+
return dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (item) {
|
|
27
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
|
|
28
|
+
children: level === 1 ? [] : filterDataSource(item === null || item === void 0 ? void 0 : item.children, level - 1)
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
var getViewLabel = function getViewLabel(_ref) {
|
|
33
|
+
var dataSource = _ref.dataSource,
|
|
34
|
+
value = _ref.value;
|
|
35
|
+
var viewLabel = [];
|
|
36
|
+
// 根据dataSource得到label数组,查看模式展示需要
|
|
37
|
+
value === null || value === void 0 ? void 0 : value.forEach(function (value, index) {
|
|
38
|
+
var _dataSource;
|
|
39
|
+
var temp = (_dataSource = dataSource) === null || _dataSource === void 0 ? void 0 : _dataSource.find(function (item) {
|
|
40
|
+
return (item === null || item === void 0 ? void 0 : item.value) === value;
|
|
41
|
+
});
|
|
42
|
+
dataSource = (temp === null || temp === void 0 ? void 0 : temp.children) || [];
|
|
43
|
+
viewLabel[index] = temp === null || temp === void 0 ? void 0 : temp.label;
|
|
44
|
+
});
|
|
45
|
+
return viewLabel;
|
|
46
|
+
};
|
|
47
|
+
var defaultFieldNames = {
|
|
48
|
+
label: 'name',
|
|
49
|
+
value: 'code',
|
|
50
|
+
children: 'children'
|
|
51
|
+
};
|
|
52
|
+
var ProCascader = function ProCascader(props) {
|
|
53
|
+
var _value$slice, _ref7, _ref7$filter, _defaultLabel$filter, _locale$ProAddressBar, _locale$ProAddressBar2;
|
|
54
|
+
var _ref2 = (0, _ProConfigProvider.useProConfig)('ProAddressBar') || {},
|
|
55
|
+
configDetailMaxLength = _ref2.detailMaxLength,
|
|
56
|
+
configEnumCode = _ref2.enumCode,
|
|
57
|
+
configCode = _ref2.code;
|
|
58
|
+
var isAddressMode = (props === null || props === void 0 ? void 0 : props.mode) === 'address';
|
|
59
|
+
var _props$className = props.className,
|
|
60
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
61
|
+
_props$hasDetail = props.hasDetail,
|
|
62
|
+
hasDetail = _props$hasDetail === void 0 ? isAddressMode ? true : undefined : _props$hasDetail,
|
|
63
|
+
_props$detailMaxLengt = props.detailMaxLength,
|
|
64
|
+
detailMaxLength = _props$detailMaxLengt === void 0 ? isAddressMode ? configDetailMaxLength || 100 : 100 : _props$detailMaxLengt,
|
|
65
|
+
_props$fieldNames = props.fieldNames,
|
|
66
|
+
fieldNames = _props$fieldNames === void 0 ? defaultFieldNames : _props$fieldNames,
|
|
67
|
+
value = props.value,
|
|
68
|
+
disabled = props.disabled,
|
|
69
|
+
dataSource = props.dataSource,
|
|
70
|
+
onChange = props.onChange,
|
|
71
|
+
useRequest = props.useRequest,
|
|
72
|
+
transformResponse = props.transformResponse,
|
|
73
|
+
_props$level = props.level,
|
|
74
|
+
level = _props$level === void 0 ? isAddressMode ? 3 : undefined : _props$level,
|
|
75
|
+
isView = props.isView,
|
|
76
|
+
_props$enumCode = props.enumCode,
|
|
77
|
+
enumCode = _props$enumCode === void 0 ? configEnumCode : _props$enumCode,
|
|
78
|
+
_props$code = props.code,
|
|
79
|
+
code = _props$code === void 0 ? configCode : _props$code,
|
|
80
|
+
tooltip = props.tooltip,
|
|
81
|
+
_props$separator = props.separator,
|
|
82
|
+
separator = _props$separator === void 0 ? '' : _props$separator,
|
|
83
|
+
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
84
|
+
var _ref3 = _.default.useFieldProps() || {},
|
|
85
|
+
isViewCon = _ref3.isView;
|
|
86
|
+
var addressCode = code || enumCode;
|
|
87
|
+
var realIsView = typeof isView === 'boolean' ? isView : isViewCon;
|
|
88
|
+
var realLevel = Math.max(2, level);
|
|
89
|
+
var detail = value === null || value === void 0 ? void 0 : value[realLevel];
|
|
90
|
+
var enumData = (0, _useEnum.default)(addressCode);
|
|
91
|
+
var _ref4 = Array.isArray(enumData) ? enumData : [],
|
|
92
|
+
_ref5 = (0, _slicedToArray2.default)(_ref4, 1),
|
|
93
|
+
_ref5$ = _ref5[0],
|
|
94
|
+
enumDataSource = _ref5$ === void 0 ? [] : _ref5$;
|
|
95
|
+
var realDataSource = (0, _react.useMemo)(function () {
|
|
96
|
+
var innerDataSource = dataSource || (addressCode ? enumDataSource : []);
|
|
97
|
+
var result = isAddressMode && realLevel === 2 ? filterDataSource(innerDataSource, level) : innerDataSource;
|
|
98
|
+
return (0, _lodash.isEqual)(fieldNames, defaultFieldNames) ? result : (0, _index.transformDataName)(result, fieldNames);
|
|
99
|
+
}, [isAddressMode, addressCode, realLevel, dataSource, enumDataSource === null || enumDataSource === void 0 ? void 0 : enumDataSource.length]);
|
|
100
|
+
var _useRequest = (0, _objectSpread2.default)({}, useRequest),
|
|
101
|
+
service = _useRequest.service,
|
|
102
|
+
_useRequest$defaultPa = _useRequest.defaultParams,
|
|
103
|
+
defaultParams = _useRequest$defaultPa === void 0 ? {} : _useRequest$defaultPa;
|
|
104
|
+
var _useState = (0, _react.useState)([]),
|
|
105
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
106
|
+
serviceData = _useState2[0],
|
|
107
|
+
setServiceData = _useState2[1];
|
|
108
|
+
var _useState3 = (0, _react.useState)([]),
|
|
109
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
110
|
+
defaultLabel = _useState4[0],
|
|
111
|
+
setDefaultLabel = _useState4[1];
|
|
112
|
+
var getFirstLevelOptions = /*#__PURE__*/function () {
|
|
113
|
+
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
114
|
+
var _yield$service, data, newData, transFormData, serviceData;
|
|
115
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
116
|
+
while (1) switch (_context.prev = _context.next) {
|
|
117
|
+
case 0:
|
|
118
|
+
_context.next = 2;
|
|
119
|
+
return service(defaultParams);
|
|
120
|
+
case 2:
|
|
121
|
+
_yield$service = _context.sent;
|
|
122
|
+
data = _yield$service.data;
|
|
123
|
+
newData = data;
|
|
124
|
+
if (transformResponse) {
|
|
125
|
+
newData = transformResponse(data);
|
|
126
|
+
}
|
|
127
|
+
transFormData = (0, _index.transformDataName)(newData, {
|
|
128
|
+
label: fieldNames.label,
|
|
129
|
+
value: fieldNames.value,
|
|
130
|
+
children: (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || 'children'
|
|
131
|
+
});
|
|
132
|
+
serviceData = isAddressMode && realLevel === 2 ? filterDataSource(transFormData, level) : transFormData;
|
|
133
|
+
setServiceData(serviceData);
|
|
134
|
+
case 9:
|
|
135
|
+
case "end":
|
|
136
|
+
return _context.stop();
|
|
137
|
+
}
|
|
138
|
+
}, _callee);
|
|
139
|
+
}));
|
|
140
|
+
return function getFirstLevelOptions() {
|
|
141
|
+
return _ref6.apply(this, arguments);
|
|
142
|
+
};
|
|
143
|
+
}();
|
|
144
|
+
(0, _react.useEffect)(function () {
|
|
145
|
+
if (service) {
|
|
146
|
+
// 传入useRequest时,初次加载级联第一级数据源
|
|
147
|
+
getFirstLevelOptions();
|
|
148
|
+
}
|
|
149
|
+
}, [service]);
|
|
150
|
+
(0, _react.useEffect)(function () {
|
|
151
|
+
if (realIsView && value) {
|
|
152
|
+
// 传入dataSource + 查看时初始化展示
|
|
153
|
+
if (service) {
|
|
154
|
+
setDefaultLabel(getViewLabel({
|
|
155
|
+
dataSource: serviceData,
|
|
156
|
+
value: isAddressMode && hasDetail ? value === null || value === void 0 ? void 0 : value.slice(0, realLevel) : value
|
|
157
|
+
}));
|
|
158
|
+
} else if ((realDataSource === null || realDataSource === void 0 ? void 0 : realDataSource.length) > 0) {
|
|
159
|
+
setDefaultLabel(getViewLabel({
|
|
160
|
+
dataSource: realDataSource,
|
|
161
|
+
value: isAddressMode && hasDetail ? value === null || value === void 0 ? void 0 : value.slice(0, realLevel) : value
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}, [realIsView, value, realDataSource, serviceData]);
|
|
166
|
+
var handleChange = function handleChange(changeValue, selectedOptions) {
|
|
167
|
+
if (onChange) {
|
|
168
|
+
if (isAddressMode && hasDetail && detail) {
|
|
169
|
+
// 有详情地址
|
|
170
|
+
var realValue = changeValue || [];
|
|
171
|
+
realValue[realLevel] = detail;
|
|
172
|
+
onChange(realValue, selectedOptions);
|
|
173
|
+
} else {
|
|
174
|
+
onChange(changeValue, selectedOptions);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
// showSearch中的筛选函数
|
|
179
|
+
var handlefilter = function handlefilter(inputValue, path) {
|
|
180
|
+
return path.some(function (option) {
|
|
181
|
+
return option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1;
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
var handleAddressChange = function handleAddressChange(e) {
|
|
185
|
+
var cascaderValue = value === null || value === void 0 ? void 0 : value.slice(0, realLevel);
|
|
186
|
+
if (onChange) {
|
|
187
|
+
if (!e.target.value && (cascaderValue === null || cascaderValue === void 0 ? void 0 : cascaderValue.every(function (item) {
|
|
188
|
+
return !item;
|
|
189
|
+
}))) {
|
|
190
|
+
onChange(undefined);
|
|
191
|
+
} else {
|
|
192
|
+
var realValue = value ? (0, _toConsumableArray2.default)(value) : [];
|
|
193
|
+
realValue[realLevel] = e.target.value;
|
|
194
|
+
onChange(realValue);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
var displayRender = function displayRender(label) {
|
|
199
|
+
return label === null || label === void 0 ? void 0 : label.filter(function (item) {
|
|
200
|
+
return !!item;
|
|
201
|
+
}).join('/');
|
|
202
|
+
};
|
|
203
|
+
var addressValue = isAddressMode ? value && ((_value$slice = value.slice(0, realLevel)) === null || _value$slice === void 0 ? void 0 : _value$slice.some(function (item) {
|
|
204
|
+
return !!item;
|
|
205
|
+
})) ? value.slice(0, realLevel) : undefined : value;
|
|
206
|
+
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) {
|
|
207
|
+
return !!item;
|
|
208
|
+
})) === null || _ref7$filter === void 0 ? void 0 : _ref7$filter.join(separator)) || '-' : (defaultLabel === null || defaultLabel === void 0 ? void 0 : (_defaultLabel$filter = defaultLabel.filter(function (item) {
|
|
209
|
+
return !!item;
|
|
210
|
+
})) === null || _defaultLabel$filter === void 0 ? void 0 : _defaultLabel$filter.join(separator)) || '-';
|
|
211
|
+
return realIsView ? tooltip ? (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
212
|
+
className: className,
|
|
213
|
+
title: tooltip === true ? viewValue : tooltip,
|
|
214
|
+
children: (0, _jsxRuntime.jsx)(Text, {
|
|
215
|
+
ellipsis: {
|
|
216
|
+
tooltip: false
|
|
217
|
+
},
|
|
218
|
+
children: viewValue
|
|
219
|
+
})
|
|
220
|
+
}) : (0, _jsxRuntime.jsx)("span", {
|
|
221
|
+
className: className,
|
|
222
|
+
children: viewValue
|
|
223
|
+
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
224
|
+
className: "pro-address ".concat(className),
|
|
225
|
+
children: [(0, _jsxRuntime.jsx)(_antd.Cascader, (0, _objectSpread2.default)({
|
|
226
|
+
className: hasDetail ? '' : 'no-detail',
|
|
227
|
+
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,
|
|
228
|
+
value: addressValue,
|
|
229
|
+
options: service ? serviceData : realDataSource,
|
|
230
|
+
disabled: disabled,
|
|
231
|
+
displayRender: displayRender,
|
|
232
|
+
showSearch: {
|
|
233
|
+
filter: handlefilter
|
|
234
|
+
},
|
|
235
|
+
onChange: handleChange
|
|
236
|
+
}, (0, _lodash.omit)(otherProps, 'otherProps'))), hasDetail && (tooltip && disabled && detail ? (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
237
|
+
title: detail,
|
|
238
|
+
children: (0, _jsxRuntime.jsx)("span", {
|
|
239
|
+
className: "pro-address-detail",
|
|
240
|
+
children: (0, _jsxRuntime.jsx)(_antd.Input, {
|
|
241
|
+
disabled: disabled,
|
|
242
|
+
value: detail
|
|
243
|
+
})
|
|
244
|
+
})
|
|
245
|
+
}) : (0, _jsxRuntime.jsx)(_antd.Input, {
|
|
246
|
+
allowClear: true,
|
|
247
|
+
autoComplete: "off",
|
|
248
|
+
disabled: disabled,
|
|
249
|
+
value: detail,
|
|
250
|
+
maxLength: detailMaxLength,
|
|
251
|
+
placeholder: _locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProAddressBar2 = _locale.default.ProAddressBar) === null || _locale$ProAddressBar2 === void 0 ? void 0 : _locale$ProAddressBar2.detailPlaceholder,
|
|
252
|
+
onChange: handleAddressChange
|
|
253
|
+
}))]
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(ProCascader);
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { DefaultOptionType } from 'rc-select/lib/Select';
|
|
3
3
|
import { Service } from 'ahooks/lib/useRequest/src/types';
|
|
4
|
-
export interface
|
|
5
|
-
|
|
4
|
+
export interface fieldNamesProps {
|
|
5
|
+
label: string;
|
|
6
|
+
value: string;
|
|
7
|
+
children?: string;
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ProCascaderProps {
|
|
6
11
|
className?: string;
|
|
12
|
+
mode?: 'address' | 'default';
|
|
7
13
|
isView?: boolean;
|
|
8
14
|
value?: string[];
|
|
9
15
|
disabled?: boolean;
|
|
10
16
|
hasDetail?: boolean;
|
|
11
17
|
tooltip?: boolean | ReactNode;
|
|
12
18
|
detailMaxLength?: number;
|
|
13
|
-
fieldNames?:
|
|
14
|
-
label: string;
|
|
15
|
-
value: string;
|
|
16
|
-
};
|
|
19
|
+
fieldNames?: fieldNamesProps;
|
|
17
20
|
dataSource?: DefaultOptionType[];
|
|
18
21
|
useRequest?: {
|
|
19
22
|
loadData?: boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface DataNode {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
children?: DataNode[];
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
interface FieldNames {
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
children?: string;
|
|
11
|
+
[key: string]: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const transformDataName: (dataSource: any[], fieldNames: FieldNames) => DataNode[];
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.transformDataName = void 0;
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
9
|
+
var _excluded = ["label", "value", "children"];
|
|
10
|
+
var transformDataName = exports.transformDataName = function transformDataName(dataSource, fieldNames) {
|
|
11
|
+
var label = fieldNames.label,
|
|
12
|
+
value = fieldNames.value,
|
|
13
|
+
children = fieldNames.children,
|
|
14
|
+
extraFields = (0, _objectWithoutProperties2.default)(fieldNames, _excluded);
|
|
15
|
+
function transformNode(node) {
|
|
16
|
+
var newNode = {
|
|
17
|
+
label: node[label],
|
|
18
|
+
value: node[value]
|
|
19
|
+
};
|
|
20
|
+
// 处理额外的字段
|
|
21
|
+
Object.keys(extraFields).forEach(function (key) {
|
|
22
|
+
newNode[key] = node[extraFields[key]];
|
|
23
|
+
});
|
|
24
|
+
if (children && Array.isArray(node[children])) {
|
|
25
|
+
newNode.children = node[children].map(transformNode);
|
|
26
|
+
}
|
|
27
|
+
return newNode;
|
|
28
|
+
}
|
|
29
|
+
function transformData(data) {
|
|
30
|
+
return data.map(transformNode);
|
|
31
|
+
}
|
|
32
|
+
return transformData(dataSource);
|
|
33
|
+
};
|