@zykj2024/much-library 1.1.7-beta.2 → 1.1.7-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/dist/esm/McCascader/city.js +909 -0
- package/dist/esm/McCascader/index.d.ts +19 -0
- package/dist/esm/McCascader/index.js +221 -0
- package/dist/esm/McCascader/index.less +72 -0
- package/dist/esm/McContainer/index.d.ts +192 -0
- package/dist/esm/McContainer/index.js +522 -0
- package/dist/esm/McContainer/index.less +132 -0
- package/dist/esm/McDateRange/index.d.ts +28 -0
- package/dist/esm/McDateRange/index.js +167 -0
- package/dist/esm/McDateRange/index.less +33 -0
- package/dist/esm/McEllipsis/index.d.ts +40 -0
- package/dist/esm/McEllipsis/index.js +115 -0
- package/dist/esm/McEllipsis/index.less +9 -0
- package/dist/esm/McEllipsisMiddle/index.d.ts +13 -0
- package/dist/esm/McEllipsisMiddle/index.js +42 -0
- package/dist/esm/McEllipsisMiddle/index.less +9 -0
- package/dist/esm/McFonts/index.d.ts +8 -0
- package/dist/esm/McFonts/index.js +7 -0
- package/dist/esm/McGroupPanel/comps/SelectedItem/index.d.ts +4 -0
- package/dist/esm/McGroupPanel/comps/SelectedItem/index.js +75 -0
- package/dist/esm/McGroupPanel/index.d.ts +30 -0
- package/dist/esm/McGroupPanel/index.js +426 -0
- package/dist/esm/McGroupPanel/index.less +161 -0
- package/dist/esm/McIconFont/iconfont.js +1 -0
- package/dist/esm/McIconFont/index.d.ts +5 -0
- package/dist/esm/McIconFont/index.js +8 -0
- package/dist/esm/McIcons/business.json +137 -0
- package/dist/esm/McIcons/index.less +22 -0
- package/dist/esm/McInput/Input.d.ts +19 -0
- package/dist/esm/McInput/Input.js +48 -0
- package/dist/esm/McInput/Search.d.ts +39 -0
- package/dist/esm/McInput/Search.js +81 -0
- package/dist/esm/McInput/TextArea.d.ts +11 -0
- package/dist/esm/McInput/TextArea.js +37 -0
- package/dist/esm/McInput/demo/Input/addonBefore.d.ts +3 -0
- package/dist/esm/McInput/demo/Input/addonBefore.js +67 -0
- package/dist/esm/McInput/demo/Input/base.d.ts +2 -0
- package/dist/esm/McInput/demo/Input/base.js +31 -0
- package/dist/esm/McInput/demo/Input/isTrim.d.ts +2 -0
- package/dist/esm/McInput/demo/Input/isTrim.js +22 -0
- package/dist/esm/McInput/demo/Input/label.d.ts +2 -0
- package/dist/esm/McInput/demo/Input/label.js +26 -0
- package/dist/esm/McInput/demo/Input/ref.d.ts +3 -0
- package/dist/esm/McInput/demo/Input/ref.js +53 -0
- package/dist/esm/McInput/demo/Input/status.d.ts +2 -0
- package/dist/esm/McInput/demo/Input/status.js +23 -0
- package/dist/esm/McInput/demo/Search/search-base.d.ts +2 -0
- package/dist/esm/McInput/demo/Search/search-base.js +38 -0
- package/dist/esm/McInput/demo/TextArea/text-area-base.d.ts +2 -0
- package/dist/esm/McInput/demo/TextArea/text-area-base.js +38 -0
- package/dist/esm/McInput/index.d.ts +13 -0
- package/dist/esm/McInput/index.js +7 -0
- package/dist/esm/McInput/index.less +62 -0
- package/dist/esm/McInputNumber/index.d.ts +16 -0
- package/dist/esm/McInputNumber/index.js +50 -0
- package/dist/esm/McInputNumber/index.less +18 -0
- package/dist/esm/McLazyLoader/index.d.ts +39 -0
- package/dist/esm/McLazyLoader/index.js +88 -0
- package/dist/esm/McListSelect/comps/ListSelect.d.ts +67 -0
- package/dist/esm/McListSelect/comps/ListSelect.js +289 -0
- package/dist/esm/McListSelect/comps/ListSelectPanel.d.ts +138 -0
- package/dist/esm/McListSelect/comps/ListSelectPanel.js +451 -0
- package/dist/esm/McListSelect/comps/SelectedItem.d.ts +17 -0
- package/dist/esm/McListSelect/comps/SelectedItem.js +76 -0
- package/dist/esm/McListSelect/index.d.ts +10 -0
- package/dist/esm/McListSelect/index.js +5 -0
- package/dist/esm/McListSelect/index.less +257 -0
- package/dist/esm/McModalProvider/index.d.ts +174 -0
- package/dist/esm/McModalProvider/index.js +498 -0
- package/dist/esm/McPeriodSelect/index.d.ts +13 -0
- package/dist/esm/McPeriodSelect/index.js +305 -0
- package/dist/esm/McPeriodSelect/index.less +187 -0
- package/dist/esm/McPopoverButton/index.d.ts +14 -0
- package/dist/esm/McPopoverButton/index.js +52 -0
- package/dist/esm/McPopoverForm/index.d.ts +14 -0
- package/dist/esm/McPopoverForm/index.js +95 -0
- package/dist/esm/McProSelect/index.d.ts +35 -0
- package/dist/esm/McProSelect/index.js +152 -0
- package/dist/esm/McResult/default.d.ts +1 -0
- package/dist/esm/McResult/default.js +98 -0
- package/dist/esm/McResult/icon.d.ts +25 -0
- package/dist/esm/McResult/icon.js +1014 -0
- package/dist/esm/McResult/index.d.ts +31 -0
- package/dist/esm/McResult/index.js +119 -0
- package/dist/esm/McResult/index.less +18 -0
- package/dist/esm/McResult/public/403.svg +164 -0
- package/dist/esm/McResult/public/404.svg +123 -0
- package/dist/esm/McResult/public/500.svg +129 -0
- package/dist/esm/McResult/public/building.svg +127 -0
- package/dist/esm/McResult/public/code403.svg +7 -0
- package/dist/esm/McResult/public/code404.svg +5 -0
- package/dist/esm/McResult/public/code500.svg +5 -0
- package/dist/esm/McResult/public/detailEmpty.svg +1 -0
- package/dist/esm/McResult/public/empty.svg +1 -0
- package/dist/esm/McResult/public/noFunction.svg +1 -0
- package/dist/esm/McResult/public/noUser.svg +90 -0
- package/dist/esm/McSelect/components/PanelSearchInput/index.d.ts +12 -0
- package/dist/esm/McSelect/components/PanelSearchInput/index.js +45 -0
- package/dist/esm/McSelect/components/PanelSearchInput/index.less +7 -0
- package/dist/esm/McSelect/index.d.ts +47 -0
- package/dist/esm/McSelect/index.js +436 -0
- package/dist/esm/McSelect/index.less +72 -0
- package/dist/esm/McTag/index.d.ts +22 -0
- package/dist/esm/McTag/index.js +59 -0
- package/dist/esm/McThemeConfig/customToken.json +39 -0
- package/dist/esm/McThemeConfig/globalStyle.d.ts +2 -0
- package/dist/esm/McThemeConfig/globalStyle.js +198 -0
- package/dist/esm/McThemeConfig/index.d.ts +9 -0
- package/dist/esm/McThemeConfig/index.js +16 -0
- package/dist/esm/McThemeConfig/layoutStyle.d.ts +2 -0
- package/dist/esm/McThemeConfig/layoutStyle.js +1 -0
- package/dist/esm/McThemeConfig/provider.d.ts +8 -0
- package/dist/esm/McThemeConfig/provider.js +20 -0
- package/dist/esm/McThemeConfig/themeToken.json +152 -0
- package/dist/esm/McTreePanel/SelectedItem.d.ts +4 -0
- package/dist/esm/McTreePanel/SelectedItem.js +75 -0
- package/dist/esm/McTreePanel/index.d.ts +27 -0
- package/dist/esm/McTreePanel/index.js +315 -0
- package/dist/esm/McTreePanel/index.less +106 -0
- package/dist/esm/McTreeSelect/index.d.ts +13 -0
- package/dist/esm/McTreeSelect/index.js +182 -0
- package/dist/esm/McTreeSelect/index.less +72 -0
- package/dist/esm/McUpload/comps/McFormUpload/comps/UploadForVal/index.d.ts +38 -0
- package/dist/esm/McUpload/comps/McFormUpload/comps/UploadForVal/index.js +209 -0
- package/dist/esm/McUpload/comps/McFormUpload/comps/UploadForVal/index.less +6 -0
- package/dist/esm/McUpload/comps/McFormUpload/index.d.ts +7 -0
- package/dist/esm/McUpload/comps/McFormUpload/index.js +29 -0
- package/dist/esm/McUpload/comps/McUploadCmp/index.d.ts +49 -0
- package/dist/esm/McUpload/comps/McUploadCmp/index.js +396 -0
- package/dist/esm/McUpload/comps/McUploadCmp/index.less +68 -0
- package/dist/esm/McUpload/comps/McUploadDragger/index.d.ts +49 -0
- package/dist/esm/McUpload/comps/McUploadDragger/index.js +264 -0
- package/dist/esm/McUpload/comps/McUploadTrigger/index.d.ts +39 -0
- package/dist/esm/McUpload/comps/McUploadTrigger/index.js +318 -0
- package/dist/esm/McUpload/comps/McUploadTrigger/index.less +204 -0
- package/dist/esm/McUpload/index.d.ts +14 -0
- package/dist/esm/McUpload/index.js +9 -0
- package/dist/esm/McUpload/tools/calculateMD5/index.d.ts +3 -0
- package/dist/esm/McUpload/tools/calculateMD5/index.js +94 -0
- package/dist/esm/McUpload/tools/calculateMD5/md5Worker.js +44 -0
- package/dist/esm/McUpload/tools/getUid.d.ts +1 -0
- package/dist/esm/McUpload/tools/getUid.js +6 -0
- package/dist/esm/McUpload/tools/materialVerification.d.ts +50 -0
- package/dist/esm/McUpload/tools/materialVerification.js +257 -0
- package/dist/esm/McUpload/tools/uploadTools.d.ts +5 -0
- package/dist/esm/McUpload/tools/uploadTools.js +56 -0
- package/dist/esm/Utils/index.d.ts +8 -0
- package/dist/esm/Utils/index.js +9 -0
- package/dist/esm/Utils/lib/Queue/PriorityQueue.d.ts +21 -0
- package/dist/esm/Utils/lib/Queue/PriorityQueue.js +197 -0
- package/dist/esm/Utils/lib/Queue/TaskQueue.d.ts +17 -0
- package/dist/esm/Utils/lib/Queue/TaskQueue.js +199 -0
- package/dist/esm/Utils/lib/Queue/tools/BinaryHeap.d.ts +25 -0
- package/dist/esm/Utils/lib/Queue/tools/BinaryHeap.js +184 -0
- package/dist/esm/Utils/lib/Queue/tools/publicDependencyMethod.d.ts +6 -0
- package/dist/esm/Utils/lib/Queue/tools/publicDependencyMethod.js +26 -0
- package/dist/esm/Utils/lib/Queue/types/baseTaskQueue.d.ts +23 -0
- package/dist/esm/Utils/lib/Queue/types/baseTaskQueue.js +10 -0
- package/dist/esm/Utils/lib/copyToClipboard.d.ts +8 -0
- package/dist/esm/Utils/lib/copyToClipboard.js +54 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.js +33 -0
- package/dist/esm/styles/index.less +2 -0
- package/dist/esm/styles/mixins.less +52 -0
- package/dist/esm/styles/utilities.less +51 -0
- package/dist/esm/typings.d.ts +20 -0
- package/package.json +13 -9
@@ -0,0 +1,289 @@
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
3
|
+
import { Button, Popover, Select } from 'antd';
|
4
|
+
import classNames from 'classnames';
|
5
|
+
import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
6
|
+
import "../index.less";
|
7
|
+
import ListSelectPanel, { isLabelInValue } from "./ListSelectPanel";
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @author: wangzt
|
11
|
+
* @description: 下拉列表选择器-仅支持多选
|
12
|
+
*/
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
14
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
15
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
16
|
+
var McListSelect = /*#__PURE__*/forwardRef(function (props, ref) {
|
17
|
+
/* 获取label宽度 */
|
18
|
+
var labelRef = useRef();
|
19
|
+
var _useState = useState(11),
|
20
|
+
_useState2 = _slicedToArray(_useState, 2),
|
21
|
+
paddingLeft = _useState2[0],
|
22
|
+
setPaddingLeft = _useState2[1];
|
23
|
+
useEffect(function () {
|
24
|
+
var labelResizeObserver = new ResizeObserver(function (entries) {
|
25
|
+
setPaddingLeft(entries[0].contentRect.width + 11);
|
26
|
+
});
|
27
|
+
labelRef.current && labelResizeObserver.observe(labelRef.current);
|
28
|
+
return function () {
|
29
|
+
return labelResizeObserver.disconnect();
|
30
|
+
};
|
31
|
+
}, []);
|
32
|
+
var label = props.label,
|
33
|
+
_props$placeholder = props.placeholder,
|
34
|
+
placeholder = _props$placeholder === void 0 ? '请选择' : _props$placeholder,
|
35
|
+
maxTagCount = props.maxTagCount,
|
36
|
+
_props$allowClear = props.allowClear,
|
37
|
+
allowClear = _props$allowClear === void 0 ? true : _props$allowClear,
|
38
|
+
title = props.title,
|
39
|
+
options = props.options,
|
40
|
+
fetchOptions = props.fetchOptions,
|
41
|
+
pageSize = props.pageSize,
|
42
|
+
extra = props.extra,
|
43
|
+
immediateInit = props.immediateInit,
|
44
|
+
_props$disabled = props.disabled,
|
45
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
46
|
+
_props$labelInValue = props.labelInValue,
|
47
|
+
labelInValue = _props$labelInValue === void 0 ? false : _props$labelInValue,
|
48
|
+
_props$initOnOpen = props.initOnOpen,
|
49
|
+
initOnOpen = _props$initOnOpen === void 0 ? true : _props$initOnOpen,
|
50
|
+
_props$inexistent = props.inexistent,
|
51
|
+
inexistent = _props$inexistent === void 0 ? false : _props$inexistent,
|
52
|
+
selectedLayout = props.selectedLayout,
|
53
|
+
value = props.value,
|
54
|
+
onChange = props.onChange,
|
55
|
+
style = props.style,
|
56
|
+
className = props.className;
|
57
|
+
var maxTagCount0 = props.hasOwnProperty('maxTagCount') ? maxTagCount : 1;
|
58
|
+
var inexistent0 = fetchOptions ? false : inexistent;
|
59
|
+
var _ref = typeof inexistent0 === 'boolean' ? {} : inexistent0,
|
60
|
+
_ref$text = _ref.text,
|
61
|
+
text = _ref$text === void 0 ? '不存在' : _ref$text,
|
62
|
+
_ref$color = _ref.color,
|
63
|
+
color = _ref$color === void 0 ? '#ff4d4f' : _ref$color,
|
64
|
+
_ref$reserveOriginalV = _ref.reserveOriginalValue,
|
65
|
+
reserveOriginalValue = _ref$reserveOriginalV === void 0 ? false : _ref$reserveOriginalV;
|
66
|
+
var _useState3 = useState([]),
|
67
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
68
|
+
selectValue = _useState4[0],
|
69
|
+
setSelectValue = _useState4[1];
|
70
|
+
var _useState5 = useState(false),
|
71
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
72
|
+
open = _useState6[0],
|
73
|
+
setOpen = _useState6[1];
|
74
|
+
var _useState7 = useState([]),
|
75
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
76
|
+
panelValue = _useState8[0],
|
77
|
+
setPanelValue = _useState8[1];
|
78
|
+
var valueMap0 = useRef();
|
79
|
+
var changeUndefinedFlag = useRef(false);
|
80
|
+
var panelRef = useRef();
|
81
|
+
|
82
|
+
// 格式化下拉选择器的值
|
83
|
+
var selectValue0 = useMemo(function () {
|
84
|
+
return selectValue.map(function (_ref2) {
|
85
|
+
var _valueMap0$current;
|
86
|
+
var value = _ref2.value,
|
87
|
+
label = _ref2.label;
|
88
|
+
return {
|
89
|
+
value: value,
|
90
|
+
label: label + (inexistent0 && !((_valueMap0$current = valueMap0.current) !== null && _valueMap0$current !== void 0 && _valueMap0$current[value]) ? "\u300C".concat(text, "\u300D") : '')
|
91
|
+
};
|
92
|
+
});
|
93
|
+
}, [selectValue, inexistent0]);
|
94
|
+
|
95
|
+
/* 回显 */
|
96
|
+
var echo = function echo() {
|
97
|
+
// 若已执行向外抛出undefined,则不执行后续代码并重置标记
|
98
|
+
if (changeUndefinedFlag.current) {
|
99
|
+
changeUndefinedFlag.current = false;
|
100
|
+
return;
|
101
|
+
}
|
102
|
+
var inexistentFlag = false;
|
103
|
+
var value1 = (value === null || value === void 0 ? void 0 : value.map(function (item) {
|
104
|
+
var _valueMap0$current2;
|
105
|
+
var v = isLabelInValue(item) ? item.value : item;
|
106
|
+
if ((_valueMap0$current2 = valueMap0.current) !== null && _valueMap0$current2 !== void 0 && _valueMap0$current2[v]) {
|
107
|
+
return valueMap0.current[v];
|
108
|
+
} else {
|
109
|
+
inexistentFlag = true;
|
110
|
+
return isLabelInValue(item) ? item : {
|
111
|
+
value: v,
|
112
|
+
label: v
|
113
|
+
};
|
114
|
+
}
|
115
|
+
})) || [];
|
116
|
+
setSelectValue(value1);
|
117
|
+
// 若当前有不存在的值,则向外抛出undefined并标记
|
118
|
+
if (inexistent0 && !reserveOriginalValue && value && valueMap0.current && inexistentFlag) {
|
119
|
+
changeUndefinedFlag.current = true;
|
120
|
+
onChange === null || onChange === void 0 || onChange(undefined);
|
121
|
+
}
|
122
|
+
};
|
123
|
+
|
124
|
+
/* 监听value变化,触发回显 */
|
125
|
+
useEffect(function () {
|
126
|
+
echo();
|
127
|
+
}, [value]);
|
128
|
+
|
129
|
+
/* 备选项初始化 */
|
130
|
+
var optionsInit = function optionsInit() {
|
131
|
+
// 非异步查询时
|
132
|
+
if (!fetchOptions && options) {
|
133
|
+
// 获取value映射集合
|
134
|
+
var map = {};
|
135
|
+
options === null || options === void 0 || options.forEach(function (item) {
|
136
|
+
return map[item.value] = item;
|
137
|
+
});
|
138
|
+
valueMap0.current = map;
|
139
|
+
// 更新回显数据
|
140
|
+
echo();
|
141
|
+
}
|
142
|
+
};
|
143
|
+
|
144
|
+
/* 监听options变化,触发备选项初始化 */
|
145
|
+
useEffect(function () {
|
146
|
+
optionsInit();
|
147
|
+
}, [options]);
|
148
|
+
|
149
|
+
/* 改变值的方法 */
|
150
|
+
var changeHandle = function changeHandle(v) {
|
151
|
+
// 若inexistent为true且非异步查询时,将不存在的项移除
|
152
|
+
var v1 = v.filter(function (_ref3) {
|
153
|
+
var _valueMap0$current3;
|
154
|
+
var value = _ref3.value;
|
155
|
+
return inexistent0 ? !!((_valueMap0$current3 = valueMap0.current) !== null && _valueMap0$current3 !== void 0 && _valueMap0$current3[value]) : true;
|
156
|
+
});
|
157
|
+
(!props.hasOwnProperty('value') || inexistent0) && setSelectValue(v1);
|
158
|
+
onChange === null || onChange === void 0 || onChange(!!v1.length ? v1.map(function (i) {
|
159
|
+
return labelInValue ? i : i.value;
|
160
|
+
}) : undefined);
|
161
|
+
};
|
162
|
+
useImperativeHandle(ref, function () {
|
163
|
+
return {
|
164
|
+
init: function init() {
|
165
|
+
var _panelRef$current;
|
166
|
+
setOpen(true);
|
167
|
+
(_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 || _panelRef$current.init();
|
168
|
+
}
|
169
|
+
};
|
170
|
+
});
|
171
|
+
return /*#__PURE__*/_jsxs("div", {
|
172
|
+
style: _objectSpread({
|
173
|
+
position: label ? 'relative' : 'static',
|
174
|
+
height: 'auto',
|
175
|
+
'--selector-pl': "".concat(paddingLeft, "px"),
|
176
|
+
'--inexistent-color': color
|
177
|
+
}, style),
|
178
|
+
className: classNames('mc-list-select', maxTagCount0 === 1 && 'mc-list-select--inline', className),
|
179
|
+
children: [label && /*#__PURE__*/_jsx("span", {
|
180
|
+
ref: labelRef,
|
181
|
+
className: classNames('mc-list-select__label', disabled && 'mc-list-select--disabled'),
|
182
|
+
children: label
|
183
|
+
}), /*#__PURE__*/_jsx(Select, {
|
184
|
+
className: "mc-list-select__content",
|
185
|
+
placeholder: placeholder,
|
186
|
+
mode: "multiple",
|
187
|
+
showSearch: false,
|
188
|
+
maxTagCount: maxTagCount0,
|
189
|
+
maxTagPlaceholder: function maxTagPlaceholder(v) {
|
190
|
+
return /*#__PURE__*/_jsx(Popover, {
|
191
|
+
overlayStyle: {
|
192
|
+
maxWidth: 300
|
193
|
+
},
|
194
|
+
content: v.map(function (_ref4, index) {
|
195
|
+
var _ref5;
|
196
|
+
var label = _ref4.label;
|
197
|
+
return /*#__PURE__*/_jsxs("span", {
|
198
|
+
children: [index !== 0 && /*#__PURE__*/_jsx("span", {
|
199
|
+
children: ", "
|
200
|
+
}), /*#__PURE__*/_jsx("span", {
|
201
|
+
style: {
|
202
|
+
color: ((_ref5 = '' + label) === null || _ref5 === void 0 ? void 0 : _ref5.indexOf("\u300C".concat(text, "\u300D"))) === -1 ? 'rgba(0, 0, 0, 0.88)' : color
|
203
|
+
},
|
204
|
+
children: label
|
205
|
+
})]
|
206
|
+
}, index);
|
207
|
+
}),
|
208
|
+
children: /*#__PURE__*/_jsx("span", {
|
209
|
+
children: '+' + v.length
|
210
|
+
})
|
211
|
+
});
|
212
|
+
},
|
213
|
+
allowClear: allowClear,
|
214
|
+
disabled: disabled,
|
215
|
+
open: open,
|
216
|
+
onDropdownVisibleChange: function onDropdownVisibleChange(o) {
|
217
|
+
setOpen(o);
|
218
|
+
if (o) {
|
219
|
+
var _panelRef$current2;
|
220
|
+
setPanelValue(selectValue);
|
221
|
+
initOnOpen && ((_panelRef$current2 = panelRef.current) === null || _panelRef$current2 === void 0 ? void 0 : _panelRef$current2.init());
|
222
|
+
}
|
223
|
+
},
|
224
|
+
labelInValue: true,
|
225
|
+
value: selectValue0,
|
226
|
+
onClear: function onClear() {
|
227
|
+
return changeHandle([]);
|
228
|
+
},
|
229
|
+
onDeselect: function onDeselect(o) {
|
230
|
+
return changeHandle(selectValue.filter(function (_ref6) {
|
231
|
+
var value = _ref6.value;
|
232
|
+
return value !== o.value;
|
233
|
+
}));
|
234
|
+
},
|
235
|
+
dropdownStyle: {
|
236
|
+
width: 'auto',
|
237
|
+
padding: '16px 16px 0'
|
238
|
+
},
|
239
|
+
dropdownRender: function dropdownRender() {
|
240
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
241
|
+
children: [/*#__PURE__*/_jsx(ListSelectPanel, {
|
242
|
+
ref: panelRef,
|
243
|
+
title: title,
|
244
|
+
options: options,
|
245
|
+
fetchOptions: fetchOptions,
|
246
|
+
pageSize: pageSize,
|
247
|
+
extra: extra,
|
248
|
+
immediateInit: immediateInit,
|
249
|
+
disabled: disabled,
|
250
|
+
labelInValue: true,
|
251
|
+
allowClear: allowClear,
|
252
|
+
inexistent: inexistent,
|
253
|
+
selectedLayout: selectedLayout,
|
254
|
+
value: panelValue,
|
255
|
+
onChange: function onChange(v) {
|
256
|
+
setPanelValue(v || []);
|
257
|
+
// 异步查询时,更新value映射集合
|
258
|
+
if (fetchOptions) {
|
259
|
+
var map = {};
|
260
|
+
v === null || v === void 0 || v.forEach(function (item) {
|
261
|
+
return map[item.value] = item;
|
262
|
+
});
|
263
|
+
valueMap0.current = Object.assign(valueMap0.current || {}, map);
|
264
|
+
}
|
265
|
+
}
|
266
|
+
}), /*#__PURE__*/_jsxs("div", {
|
267
|
+
className: "mc-list-select__dropdown-footer",
|
268
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
269
|
+
size: "small",
|
270
|
+
onClick: function onClick() {
|
271
|
+
return setOpen(false);
|
272
|
+
},
|
273
|
+
children: "\u53D6\u6D88"
|
274
|
+
}), /*#__PURE__*/_jsx(Button, {
|
275
|
+
type: "primary",
|
276
|
+
size: "small",
|
277
|
+
onClick: function onClick() {
|
278
|
+
changeHandle(panelValue);
|
279
|
+
setOpen(false);
|
280
|
+
},
|
281
|
+
children: "\u786E\u5B9A"
|
282
|
+
})]
|
283
|
+
})]
|
284
|
+
});
|
285
|
+
}
|
286
|
+
})]
|
287
|
+
});
|
288
|
+
});
|
289
|
+
export default McListSelect;
|
@@ -0,0 +1,138 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import '../index.less';
|
3
|
+
export type BaseValueType = string | number;
|
4
|
+
export interface Option {
|
5
|
+
value: BaseValueType;
|
6
|
+
label: string;
|
7
|
+
disabled?: boolean;
|
8
|
+
[key: string]: any;
|
9
|
+
}
|
10
|
+
export type MapType = Record<BaseValueType, Option>;
|
11
|
+
export type McListSelectFetchOptions = (params: {
|
12
|
+
current: number;
|
13
|
+
pageSize: number;
|
14
|
+
keyword?: string;
|
15
|
+
extra?: any;
|
16
|
+
}) => Promise<{
|
17
|
+
data: Option[];
|
18
|
+
total: number;
|
19
|
+
}>;
|
20
|
+
export interface PanelInexistent {
|
21
|
+
/**
|
22
|
+
* 不存在值的文字描述
|
23
|
+
* @defaultValue '不存在'
|
24
|
+
*/
|
25
|
+
text?: string;
|
26
|
+
/**
|
27
|
+
* 不存在值的文字颜色
|
28
|
+
* @defaultValue '#ff4d4f'
|
29
|
+
*/
|
30
|
+
color?: string;
|
31
|
+
/**
|
32
|
+
* 是否保留不存在的项并禁止其移除
|
33
|
+
* @defaultValue false
|
34
|
+
*/
|
35
|
+
reserved?: boolean;
|
36
|
+
}
|
37
|
+
export type LabelInValueType = {
|
38
|
+
value: BaseValueType;
|
39
|
+
label: string;
|
40
|
+
};
|
41
|
+
type SelectValueType = BaseValueType | LabelInValueType;
|
42
|
+
export declare const isLabelInValue: (value: SelectValueType) => value is LabelInValueType;
|
43
|
+
/**
|
44
|
+
* 列表选择面板组件属性
|
45
|
+
*/
|
46
|
+
export interface McListSelectPanelProps {
|
47
|
+
/**
|
48
|
+
* 面板标题
|
49
|
+
* @defaultValue '可选项'
|
50
|
+
*/
|
51
|
+
title?: React.ReactNode;
|
52
|
+
/**
|
53
|
+
* 可选数据列表
|
54
|
+
*/
|
55
|
+
options?: Option[];
|
56
|
+
/**
|
57
|
+
* 异步分页获取选项的方法
|
58
|
+
* @remarks
|
59
|
+
* - 设置后将忽略原 options 属性
|
60
|
+
* - 不执行不存在值的处理逻辑
|
61
|
+
* - 涉及回显的场景(如表单)建议设置为 true 以对象形式交互
|
62
|
+
*/
|
63
|
+
fetchOptions?: McListSelectFetchOptions;
|
64
|
+
/**
|
65
|
+
* 分页每页数量
|
66
|
+
* @defaultValue 20
|
67
|
+
*/
|
68
|
+
pageSize?: number;
|
69
|
+
/**
|
70
|
+
* 分页查询的额外参数
|
71
|
+
* @remarks 参数变化时会触发 init 方法重置查询
|
72
|
+
*/
|
73
|
+
extra?: any;
|
74
|
+
/**
|
75
|
+
* 是否立即初始化
|
76
|
+
* @defaultValue true
|
77
|
+
* @remarks 使用异步分页且存在 extra 参数时可设为 false,通过 extra 变化触发初始化避免重复
|
78
|
+
*/
|
79
|
+
immediateInit?: boolean;
|
80
|
+
/**
|
81
|
+
* 是否禁用组件
|
82
|
+
* @defaultValue false
|
83
|
+
*/
|
84
|
+
disabled?: boolean;
|
85
|
+
/**
|
86
|
+
* 是否将选项标签等信息包装到值中
|
87
|
+
* @defaultValue false
|
88
|
+
* @remarks 涉及回显的场景(如表单)建议设置为 true
|
89
|
+
*/
|
90
|
+
labelInValue?: boolean;
|
91
|
+
/**
|
92
|
+
* 是否允许清空选择
|
93
|
+
* @defaultValue true
|
94
|
+
*/
|
95
|
+
allowClear?: boolean;
|
96
|
+
/**
|
97
|
+
* 是否处理不存在值
|
98
|
+
* @defaultValue false
|
99
|
+
* @remarks 异步查询时无效
|
100
|
+
*/
|
101
|
+
inexistent?: boolean | PanelInexistent;
|
102
|
+
/**
|
103
|
+
* 已选项布局方式
|
104
|
+
* @defaultValue 'block'
|
105
|
+
* @remarks
|
106
|
+
* - 'block': 每项独占一行
|
107
|
+
* - 'inline': 行内排列
|
108
|
+
* - 'sortable': 每项独占一行且可排序
|
109
|
+
*/
|
110
|
+
selectedLayout?: 'block' | 'inline' | 'sortable';
|
111
|
+
/**
|
112
|
+
* 当前选中的值
|
113
|
+
*/
|
114
|
+
value?: SelectValueType[];
|
115
|
+
/**
|
116
|
+
* 选择变化时的回调函数
|
117
|
+
* @param value - 新选中的值数组
|
118
|
+
*/
|
119
|
+
onChange?: (value?: SelectValueType[]) => void;
|
120
|
+
/**
|
121
|
+
* 自定义样式
|
122
|
+
*/
|
123
|
+
style?: React.CSSProperties;
|
124
|
+
/**
|
125
|
+
* 自定义类名
|
126
|
+
*/
|
127
|
+
className?: string;
|
128
|
+
/**
|
129
|
+
* 组件引用
|
130
|
+
*/
|
131
|
+
ref?: any;
|
132
|
+
}
|
133
|
+
export type McListSelectPanelRef = {
|
134
|
+
/** 初始化方法(重置查询) */
|
135
|
+
init: () => void;
|
136
|
+
};
|
137
|
+
declare const _default: import("react").NamedExoticComponent<McListSelectPanelProps>;
|
138
|
+
export default _default;
|