ztxkui 3.9.4 → 3.9.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/dist/Demo.js +17 -6
- package/dist/DemoCom/BasicDemo.js +20 -10
- package/dist/DemoCom/FormDemo.js +2 -2
- package/dist/TableDemo/EditableTable.js +1 -1
- package/dist/components/EnhanceSelect/index.d.ts +8 -1
- package/dist/components/EnhanceSelect/index.js +68 -79
- package/dist/components/InputNumber/input-number.js +11 -3
- package/dist/components/business/SearchContainer/hooks/useDynamic.d.ts +1 -0
- package/dist/components/business/SearchContainer/hooks/useDynamic.js +5 -1
- package/dist/components/business/SearchContainer/search-drawer.js +1 -1
- package/dist/components/business/SearchContainer/search-item.d.ts +2 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/hooks/useFormatter.d.ts +6 -10
- package/dist/hooks/useFormatter.js +58 -47
- package/package.json +1 -1
package/dist/Demo.js
CHANGED
|
@@ -2,11 +2,12 @@ import EnhanceSelect from 'components/EnhanceSelect';
|
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { stringify } from 'qs';
|
|
4
4
|
import { Link } from 'react-router-dom';
|
|
5
|
+
import { token } from './constants';
|
|
5
6
|
var selectStyle = { width: '200px' };
|
|
6
7
|
function request(options) {
|
|
7
8
|
return fetch(options.url + "?" + stringify(options.params), {
|
|
8
9
|
headers: {
|
|
9
|
-
'Zmdms-Auth':
|
|
10
|
+
'Zmdms-Auth': "bearer " + token,
|
|
10
11
|
},
|
|
11
12
|
method: options.method,
|
|
12
13
|
}).then(function (response) { return response.json(); });
|
|
@@ -18,14 +19,15 @@ function Demo() {
|
|
|
18
19
|
var _c = useState(), value = _c[0], setValue = _c[1];
|
|
19
20
|
var _d = useState(), value1 = _d[0], setValue1 = _d[1];
|
|
20
21
|
var _e = useState(), value2 = _e[0], setValue2 = _e[1];
|
|
21
|
-
var _f = useState(
|
|
22
|
+
var _f = useState(), value3 = _f[0], setValue3 = _f[1];
|
|
23
|
+
var _g = useState('0'), selectVal = _g[0], setSelectVal = _g[1];
|
|
22
24
|
var params = useState({
|
|
23
25
|
tenantId: '000000',
|
|
24
26
|
isCreateUser: 0,
|
|
25
27
|
})[0];
|
|
26
|
-
var
|
|
28
|
+
var _h = useState(JSON.stringify({
|
|
27
29
|
status: 50,
|
|
28
|
-
})), params1 =
|
|
30
|
+
})), params1 = _h[0], setParams1 = _h[1];
|
|
29
31
|
// 模拟接口请求
|
|
30
32
|
useEffect(function () {
|
|
31
33
|
var timeoutId = setTimeout(function () {
|
|
@@ -97,10 +99,16 @@ function Demo() {
|
|
|
97
99
|
React.createElement("h2", null, "\u5F02\u6B65\u83B7\u53D6\u6570\u636E\uFF0C\u5E76\u7F13\u5B58\u6570\u636E"),
|
|
98
100
|
React.createElement("h2", null, "\u8FDC\u7A0B\u6A21\u7CCA\u641C\u7D22"),
|
|
99
101
|
React.createElement("button", { onClick: function () { return setValue('1462433051208762629'); } }, "\u4FEE\u6539"),
|
|
102
|
+
React.createElement("button", { onClick: function () {
|
|
103
|
+
console.log(value, value3);
|
|
104
|
+
} }, "\u83B7\u53D6\u6570\u636E"),
|
|
100
105
|
React.createElement("p", null, "\u8FDC\u7A0B\u641C\u7D22"),
|
|
101
106
|
React.createElement(EnhanceSelect, { style: selectStyle,
|
|
102
107
|
// defaultList={list}
|
|
103
|
-
placeholder: "\u53EF\u8FDC\u7A0B\u6A21\u7CCA\u641C\u7D22", url: "http://192.168.0.83:8000/api/zmdms-system/employee/page", request: request, remoteSearch: true, isHandAddItem: true, isRemoteSearchDataKey: false, dataKey: "id", titleKey: "empName", value: value, showAll: true,
|
|
108
|
+
placeholder: "\u53EF\u8FDC\u7A0B\u6A21\u7CCA\u641C\u7D22", url: "http://192.168.0.83:8000/api/zmdms-system/employee/page", request: request, remoteSearch: true, isHandAddItem: true, isRemoteSearchDataKey: false, dataKey: "id", titleKey: "empName", value: value, showAll: true,
|
|
109
|
+
// isPaste
|
|
110
|
+
onChange: function (value, option, fullData) {
|
|
111
|
+
console.log(value);
|
|
104
112
|
setValue(value);
|
|
105
113
|
}, params: JSON.stringify(params),
|
|
106
114
|
// value={value}
|
|
@@ -108,7 +116,10 @@ function Demo() {
|
|
|
108
116
|
// defaultList={defaultList}
|
|
109
117
|
isClickRequest: true }),
|
|
110
118
|
React.createElement("p", null, "\u4E00\u6B21\u6027\u52A0\u8F7D\u6570\u636E"),
|
|
111
|
-
React.createElement(EnhanceSelect, { style: selectStyle, placeholder: "\u4E00\u6B21\u6027\u52A0\u8F7D\u6570\u636E", url: "http://192.168.0.83:8000/api/zmdms-system/company/list", request: request, dataKey: "id", titleKey: "name", isClickRequest: true
|
|
119
|
+
React.createElement(EnhanceSelect, { style: selectStyle, placeholder: "\u4E00\u6B21\u6027\u52A0\u8F7D\u6570\u636E", url: "http://192.168.0.83:8000/api/zmdms-system/company/list", request: request, dataKey: "id", titleKey: "name", isClickRequest: true, isPaste: true, mode: "multiple", value: value3, onChange: function (value, option, fullData) {
|
|
120
|
+
console.log(value);
|
|
121
|
+
setValue3(value);
|
|
122
|
+
} }),
|
|
112
123
|
React.createElement("p", null, "\u5F02\u6B65\u83B7\u53D6\u6570\u636E"),
|
|
113
124
|
React.createElement("button", { onClick: function () {
|
|
114
125
|
setParams1(JSON.stringify({
|
|
@@ -50,13 +50,15 @@ export var RANGEPICKER_RANGES = {
|
|
|
50
50
|
};
|
|
51
51
|
var test = "1.23asdasdasddddddddddddddddddddasdasdasddddddddddddddddddddasdasdasddddddddddddddddddddasdasdasddddddddddddddddddddasdasdasddddddddddddddddddddasdasdasddddddddddddddddddddasdasdasdddddddddddddddddddd\n2.asldkj\u963F\u65AF\u5229\u5EB7\u5927\u5BB6ask\u6765\u5F97\u53CA\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\n3.\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u770B\u963F\u65AF\u5229\u5EB7\u5927\u5BB6\u4E86\u5362\u5361\u65AF\u89C9\u5F97\n4.alskjdalkdj\u963F\u62C9\u5C71\u53E3\u5927\u5BB6\u963F\u65AF\u5229\u5EB7\u7684\u6309\u5B9E\u9645\u5F00\u6765\u5927\u5BB6lakjdaskldjalskdjlkasjdlkasjdlkasjdlkasjdlkasjdlkajsldasjlkdjaslkdjasldjaslkdjaskldjlaksjdlasjdlkasjdlkasjdklasjlkdjaslkdjaskldjaskldjlaskjdlaksjdlkasjdklaskjd\n";
|
|
52
52
|
function BasicDemo() {
|
|
53
|
-
var _a = useState(
|
|
54
|
-
var _b = useState([
|
|
53
|
+
var _a = useState(2123123), value = _a[0], setValue = _a[1];
|
|
54
|
+
var _b = useState(2123123), value1 = _b[0], setValue1 = _b[1];
|
|
55
|
+
var _c = useState(2123123), value2 = _c[0], setValue2 = _c[1];
|
|
56
|
+
var _d = useState([
|
|
55
57
|
dayjs('2022-05-11'),
|
|
56
58
|
dayjs('2022-05-31'),
|
|
57
|
-
]), rangeValue =
|
|
58
|
-
var
|
|
59
|
-
var
|
|
59
|
+
]), rangeValue = _d[0], setRangeValue = _d[1];
|
|
60
|
+
var _e = useState(false), loading = _e[0], setLoading = _e[1];
|
|
61
|
+
var _f = useState(), iValue = _f[0], setIValue = _f[1];
|
|
60
62
|
return (React.createElement(Container, { loading: loading, isFlex: true },
|
|
61
63
|
React.createElement(Button, { onClick: function () {
|
|
62
64
|
setLoading(true);
|
|
@@ -107,7 +109,17 @@ function BasicDemo() {
|
|
|
107
109
|
React.createElement(InputNumber, { value: value, onChange: function (value) {
|
|
108
110
|
console.log(value, 1);
|
|
109
111
|
setValue(value);
|
|
110
|
-
},
|
|
112
|
+
},
|
|
113
|
+
// precision={3}
|
|
114
|
+
formatterType: "currency", style: { width: '300px' } }),
|
|
115
|
+
React.createElement(InputNumber, { value: value1, onChange: function (value) {
|
|
116
|
+
console.log(value, 1);
|
|
117
|
+
setValue1(value);
|
|
118
|
+
}, precision: 3, formatterType: "percent", style: { width: '300px' } }),
|
|
119
|
+
React.createElement(InputNumber, { value: value2, onChange: function (value) {
|
|
120
|
+
console.log(value, 1);
|
|
121
|
+
setValue2(value);
|
|
122
|
+
}, precision: 3, formatterType: "thousands", style: { width: '300px' } }),
|
|
111
123
|
React.createElement(AntInputNumber, { value: value, onChange: function (value) {
|
|
112
124
|
console.log(value, 1);
|
|
113
125
|
setValue(value);
|
|
@@ -122,13 +134,11 @@ function BasicDemo() {
|
|
|
122
134
|
React.createElement("div", { className: "placeholder" },
|
|
123
135
|
React.createElement("button", { onClick: function () {
|
|
124
136
|
var _a, _b, _c, _d;
|
|
125
|
-
console.log(value, rangeValue);
|
|
137
|
+
console.log(value, value1, value2, rangeValue);
|
|
126
138
|
console.log((_b = (_a = rangeValue === null || rangeValue === void 0 ? void 0 : rangeValue[0]) === null || _a === void 0 ? void 0 : _a.format) === null || _b === void 0 ? void 0 : _b.call(_a, 'YYYY-MM-DD'));
|
|
127
139
|
console.log((_d = (_c = rangeValue === null || rangeValue === void 0 ? void 0 : rangeValue[1]) === null || _c === void 0 ? void 0 : _c.format) === null || _d === void 0 ? void 0 : _d.call(_c, 'YYYY-MM-DD'));
|
|
128
140
|
} }, "\u83B7\u53D6\u6570\u636E")),
|
|
129
|
-
React.createElement(Input.TextArea, { className: "placeholder", autoSize: true
|
|
130
|
-
console.log(el);
|
|
131
|
-
} }),
|
|
141
|
+
React.createElement(Input.TextArea, { className: "placeholder", autoSize: true }),
|
|
132
142
|
React.createElement("div", { style: { border: '1px solid red' } },
|
|
133
143
|
React.createElement(FormList, { gutter: 16 },
|
|
134
144
|
React.createElement(FormList.FormItem, { span: 24, title: "\u63D0\u5355\u53F7\u63D0\u5355\u53F7\u63D0\u5355\u53F7\u63D0\u5355\u53F7", isEllipsis: false }, test),
|
package/dist/DemoCom/FormDemo.js
CHANGED
|
@@ -61,7 +61,7 @@ var FormDemo = function () {
|
|
|
61
61
|
React.createElement(Form, { name: "test-list", form: form },
|
|
62
62
|
React.createElement(SearchContainer, { dark: true },
|
|
63
63
|
React.createElement(SearchLeft, { configInfo: configInfoMemo, isDynamic: true, dynamicStorageKey: "symbol-key-00001", isToggle: true, handleRef: handleRef },
|
|
64
|
-
React.createElement(SearchItem, { width: "half", name: "pwNo", configname: "pwNoCopy", label: "\u5165\u5E93\u5355\u53F7", rules: [
|
|
64
|
+
React.createElement(SearchItem, { width: "half", name: "pwNo", configname: "pwNoCopy", label: "\u5165\u5E93\u5355\u53F7", disabled: true, rules: [
|
|
65
65
|
{
|
|
66
66
|
required: true,
|
|
67
67
|
message: '采购基本数据-请选择入库单号',
|
|
@@ -70,7 +70,7 @@ var FormDemo = function () {
|
|
|
70
70
|
React.createElement(Input.TextArea, { autoSize: true, allowClear: true, disabled: true, onChange: function (e) {
|
|
71
71
|
console.log(e.target.value);
|
|
72
72
|
} })),
|
|
73
|
-
React.createElement(SearchItem, { width: "half", name: "pwNo1", label: "\u5165\u5E93\u5355\u53F71", rules: [
|
|
73
|
+
React.createElement(SearchItem, { width: "half", name: "pwNo1", label: "\u5165\u5E93\u5355\u53F71", dynamicdisabled: "1", rules: [
|
|
74
74
|
{
|
|
75
75
|
required: false,
|
|
76
76
|
message: '采购基本数据-请选择入库单号1',
|
|
@@ -132,6 +132,13 @@ export interface IProps<T> extends Omit<SelectProps<T>, 'onChange'> {
|
|
|
132
132
|
*/
|
|
133
133
|
isClickRequest?: boolean;
|
|
134
134
|
handleRef?: any;
|
|
135
|
+
/**
|
|
136
|
+
* 是否粘贴根据一定规则直接设置成数据。
|
|
137
|
+
* 类似于粘贴板中:'小明,小红,小丽'
|
|
138
|
+
* 需要调用onChange方法,选中 选中 小明、小红、小丽
|
|
139
|
+
*/
|
|
140
|
+
isPaste?: boolean;
|
|
141
|
+
pasteRule?: string[];
|
|
135
142
|
}
|
|
136
143
|
export declare function clearCatchData(url: string): void;
|
|
137
144
|
/**
|
|
@@ -149,6 +156,6 @@ export declare function clearCatchData(url: string): void;
|
|
|
149
156
|
* { code: 200, data: { records: [] } } || { status: 200, data: { code: 200, data: { records: [] } } }
|
|
150
157
|
* 如果数据不能在接口层面满足以上形式,那么组件提供transformData属性,转换接口数据格式
|
|
151
158
|
*/
|
|
152
|
-
declare function EnhanceSelect<VT extends SelectValue = SelectValue>({ list, defaultList, params, url, method, timeout, dataKey, componentKey, titleKey, showAll, isCatch, onCompleted, onChange, onSearch, request, remoteSearch, remoteSearchKey, remoteSearchDataKey, isRemoteSearchDataKey, transformData, joinKey, joinStr, lineFeedKey, lineFeedStr, mustHasParams, disabledValues, searchDeleteKeys, isHandAddItem, isPage, currentSize, isCopy, onBlur, onFocus, isClickRequest, handleRef, ...restProps }: IProps<VT>): JSX.Element;
|
|
159
|
+
declare function EnhanceSelect<VT extends SelectValue = SelectValue>({ list, defaultList, params, url, method, timeout, dataKey, componentKey, titleKey, showAll, isCatch, onCompleted, onChange, onSearch, request, remoteSearch, remoteSearchKey, remoteSearchDataKey, isRemoteSearchDataKey, transformData, joinKey, joinStr, lineFeedKey, lineFeedStr, mustHasParams, disabledValues, searchDeleteKeys, isHandAddItem, isPage, currentSize, isCopy, onBlur, onFocus, isClickRequest, handleRef, isPaste, pasteRule, ...restProps }: IProps<VT>): JSX.Element;
|
|
153
160
|
declare const _default: React.MemoExoticComponent<typeof EnhanceSelect>;
|
|
154
161
|
export default _default;
|
|
@@ -126,36 +126,35 @@ function clearNullData(arr, dataKey, titleKey) {
|
|
|
126
126
|
* 如果数据不能在接口层面满足以上形式,那么组件提供transformData属性,转换接口数据格式
|
|
127
127
|
*/
|
|
128
128
|
function EnhanceSelect(_a) {
|
|
129
|
-
var list = _a.list, defaultList = _a.defaultList, params = _a.params, url = _a.url, _b = _a.method, method = _b === void 0 ? 'GET' : _b, _c = _a.timeout, timeout = _c === void 0 ? 60000 : _c, _d = _a.dataKey, dataKey = _d === void 0 ? 'id' : _d, componentKey = _a.componentKey, _e = _a.titleKey, titleKey = _e === void 0 ? 'name' : _e, showAll = _a.showAll, isCatch = _a.isCatch, onCompleted = _a.onCompleted, onChange = _a.onChange, onSearch = _a.onSearch, request = _a.request, remoteSearch = _a.remoteSearch, remoteSearchKey = _a.remoteSearchKey, remoteSearchDataKey = _a.remoteSearchDataKey, _f = _a.isRemoteSearchDataKey, isRemoteSearchDataKey = _f === void 0 ? true : _f, transformData = _a.transformData, joinKey = _a.joinKey, _g = _a.joinStr, joinStr = _g === void 0 ? '-' : _g, lineFeedKey = _a.lineFeedKey, _h = _a.lineFeedStr, lineFeedStr = _h === void 0 ? '-' : _h, mustHasParams = _a.mustHasParams, disabledValues = _a.disabledValues, searchDeleteKeys = _a.searchDeleteKeys, isHandAddItem = _a.isHandAddItem, isPage = _a.isPage, _j = _a.currentSize, currentSize = _j === void 0 ? 30 : _j, isCopy = _a.isCopy, onBlur = _a.onBlur, onFocus = _a.onFocus, isClickRequest = _a.isClickRequest, handleRef = _a.handleRef, restProps = __rest(_a, ["list", "defaultList", "params", "url", "method", "timeout", "dataKey", "componentKey", "titleKey", "showAll", "isCatch", "onCompleted", "onChange", "onSearch", "request", "remoteSearch", "remoteSearchKey", "remoteSearchDataKey", "isRemoteSearchDataKey", "transformData", "joinKey", "joinStr", "lineFeedKey", "lineFeedStr", "mustHasParams", "disabledValues", "searchDeleteKeys", "isHandAddItem", "isPage", "currentSize", "isCopy", "onBlur", "onFocus", "isClickRequest", "handleRef"]);
|
|
129
|
+
var list = _a.list, defaultList = _a.defaultList, params = _a.params, url = _a.url, _b = _a.method, method = _b === void 0 ? 'GET' : _b, _c = _a.timeout, timeout = _c === void 0 ? 60000 : _c, _d = _a.dataKey, dataKey = _d === void 0 ? 'id' : _d, componentKey = _a.componentKey, _e = _a.titleKey, titleKey = _e === void 0 ? 'name' : _e, showAll = _a.showAll, isCatch = _a.isCatch, onCompleted = _a.onCompleted, onChange = _a.onChange, onSearch = _a.onSearch, request = _a.request, remoteSearch = _a.remoteSearch, remoteSearchKey = _a.remoteSearchKey, remoteSearchDataKey = _a.remoteSearchDataKey, _f = _a.isRemoteSearchDataKey, isRemoteSearchDataKey = _f === void 0 ? true : _f, transformData = _a.transformData, joinKey = _a.joinKey, _g = _a.joinStr, joinStr = _g === void 0 ? '-' : _g, lineFeedKey = _a.lineFeedKey, _h = _a.lineFeedStr, lineFeedStr = _h === void 0 ? '-' : _h, mustHasParams = _a.mustHasParams, disabledValues = _a.disabledValues, searchDeleteKeys = _a.searchDeleteKeys, isHandAddItem = _a.isHandAddItem, isPage = _a.isPage, _j = _a.currentSize, currentSize = _j === void 0 ? 30 : _j, isCopy = _a.isCopy, onBlur = _a.onBlur, onFocus = _a.onFocus, isClickRequest = _a.isClickRequest, handleRef = _a.handleRef, isPaste = _a.isPaste, _k = _a.pasteRule, pasteRule = _k === void 0 ? [',', '-', '\r\n', '\r', '\n', ' '] : _k, restProps = __rest(_a, ["list", "defaultList", "params", "url", "method", "timeout", "dataKey", "componentKey", "titleKey", "showAll", "isCatch", "onCompleted", "onChange", "onSearch", "request", "remoteSearch", "remoteSearchKey", "remoteSearchDataKey", "isRemoteSearchDataKey", "transformData", "joinKey", "joinStr", "lineFeedKey", "lineFeedStr", "mustHasParams", "disabledValues", "searchDeleteKeys", "isHandAddItem", "isPage", "currentSize", "isCopy", "onBlur", "onFocus", "isClickRequest", "handleRef", "isPaste", "pasteRule"]);
|
|
130
130
|
// TODO: 注释动态设置open逻辑 start
|
|
131
131
|
// const currentClick = useRef<boolean>(true);
|
|
132
132
|
// TODO: 注释动态设置open逻辑 end
|
|
133
133
|
// 下拉数据源
|
|
134
|
-
var
|
|
134
|
+
var _l = useFetchState([]), selectList = _l[0], setSelectList = _l[1];
|
|
135
135
|
// 手动添加的数据源
|
|
136
|
-
var
|
|
136
|
+
var _m = useState([]), handleAddItems = _m[0], setHandleAddItems = _m[1];
|
|
137
137
|
// 多选时,自己需要合并的数据
|
|
138
|
-
var
|
|
139
|
-
var
|
|
138
|
+
var _o = useFetchState([]), multipleList = _o[0], setMultipleList = _o[1];
|
|
139
|
+
var _p = useFetchState(false), loading = _p[0], setLoading = _p[1];
|
|
140
140
|
var fetchId = useRef(0); // 请求Id,每次请求都会加1
|
|
141
141
|
// 是否使用过远程搜索主键key
|
|
142
|
-
var
|
|
142
|
+
var _q = useFetchState(false), firstLoading = _q[0], setFirstLoading = _q[1];
|
|
143
143
|
// 第一次清空时,才做远程查询
|
|
144
|
-
var
|
|
144
|
+
var _r = useFetchState(false), firstClearData = _r[0], setFirstClearData = _r[1];
|
|
145
145
|
// 获得焦点选中
|
|
146
|
-
var
|
|
146
|
+
var _s = useState(false), isOpen = _s[0], setIsOpen = _s[1];
|
|
147
147
|
// 当前搜索文本
|
|
148
|
-
var
|
|
148
|
+
var _t = useState(), searchValue = _t[0], setSearchValue = _t[1];
|
|
149
149
|
// 当前页
|
|
150
|
-
var
|
|
150
|
+
var _u = useState(1), currentPage = _u[0], setCurrentPage = _u[1];
|
|
151
151
|
// 总条数
|
|
152
|
-
var
|
|
153
|
-
// TODO: 注释动态设置open逻辑 start
|
|
154
|
-
// // 手动清空数据
|
|
155
|
-
// const handleClearDataRef = useRef<boolean>(false);
|
|
156
|
-
// TODO: 注释动态设置open逻辑 end
|
|
152
|
+
var _v = useState(0), count = _v[0], setCount = _v[1];
|
|
157
153
|
// 是否自动请求
|
|
158
154
|
var isAutoRequest = useRef(false); // 请求过了
|
|
155
|
+
// 自动填词
|
|
156
|
+
var autoPasteListRef = useRef([]);
|
|
157
|
+
var selectRef = useRef();
|
|
159
158
|
// 处理value
|
|
160
159
|
var newValue = useMemo(function () {
|
|
161
160
|
var _a, _b;
|
|
@@ -238,6 +237,39 @@ function EnhanceSelect(_a) {
|
|
|
238
237
|
console.log(err);
|
|
239
238
|
});
|
|
240
239
|
}, [setSelectList, setLoading, transformData, mustHasParams]);
|
|
240
|
+
// 分词粘贴
|
|
241
|
+
function pasteHandle(value) {
|
|
242
|
+
if (isPaste && restProps.mode === 'multiple') {
|
|
243
|
+
var pasteRuleIndex = pasteRule.findIndex(function (item) { return value.indexOf(item) !== -1; });
|
|
244
|
+
if (pasteRuleIndex !== -1) {
|
|
245
|
+
var splitStr = pasteRule[pasteRuleIndex];
|
|
246
|
+
var resultValue = value.split(splitStr);
|
|
247
|
+
resultValue = Array.from(new Set(resultValue));
|
|
248
|
+
if (Array.isArray(restProps.value)) {
|
|
249
|
+
try {
|
|
250
|
+
resultValue = restProps.value.concat(resultValue.filter(function (v) {
|
|
251
|
+
return (restProps.value.findIndex(function (i) { var _a; return ((_a = i === null || i === void 0 ? void 0 : i.toString) === null || _a === void 0 ? void 0 : _a.call(i)) === v; }) === -1);
|
|
252
|
+
}));
|
|
253
|
+
}
|
|
254
|
+
catch (err) { }
|
|
255
|
+
}
|
|
256
|
+
autoPasteListRef.current = resultValue.map(function (v) {
|
|
257
|
+
var _a;
|
|
258
|
+
return (_a = {},
|
|
259
|
+
_a[dataKey] = v,
|
|
260
|
+
_a[titleKey] = v,
|
|
261
|
+
_a);
|
|
262
|
+
});
|
|
263
|
+
onChangeHandle(resultValue, resultValue);
|
|
264
|
+
setTimeout(function () {
|
|
265
|
+
var _a, _b;
|
|
266
|
+
(_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.blur) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
267
|
+
}, 300);
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
241
273
|
// 远程搜索
|
|
242
274
|
var getRemoteDataHandle = useCallback(function (value, dataKeyValue, otherObj) {
|
|
243
275
|
if (otherObj === void 0) { otherObj = {}; }
|
|
@@ -343,14 +375,10 @@ function EnhanceSelect(_a) {
|
|
|
343
375
|
var _a;
|
|
344
376
|
// 当value有值时才进行搜索
|
|
345
377
|
// if (value) {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
// setIsOpen(true);
|
|
351
|
-
// }
|
|
352
|
-
// handleClearDataRef.current = false;
|
|
353
|
-
// TODO: 注释动态设置open逻辑 end
|
|
378
|
+
var result = pasteHandle(value);
|
|
379
|
+
if (result) {
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
354
382
|
if (isHandAddItem) {
|
|
355
383
|
if (value) {
|
|
356
384
|
setHandleAddItems([
|
|
@@ -370,17 +398,14 @@ function EnhanceSelect(_a) {
|
|
|
370
398
|
getRemoteDataHandle(value, '');
|
|
371
399
|
// }
|
|
372
400
|
};
|
|
373
|
-
var onSearchHandle = debounce(searchHandle,
|
|
401
|
+
var onSearchHandle = debounce(searchHandle, 400);
|
|
374
402
|
var onSearchHandleInner = function (value) {
|
|
375
403
|
var _a;
|
|
376
404
|
// console.log(value);
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
// }
|
|
382
|
-
// handleClearDataRef.current = false;
|
|
383
|
-
// TODO: 注释动态设置open逻辑 end
|
|
405
|
+
var result = pasteHandle(value);
|
|
406
|
+
if (result) {
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
384
409
|
if (isHandAddItem) {
|
|
385
410
|
if (value) {
|
|
386
411
|
setHandleAddItems([
|
|
@@ -811,18 +836,17 @@ function EnhanceSelect(_a) {
|
|
|
811
836
|
}
|
|
812
837
|
// 本地搜索
|
|
813
838
|
var filterOptionHandle = function (input, option) {
|
|
839
|
+
if (isPaste && restProps.mode === 'multiple') {
|
|
840
|
+
var pasteRuleIndex = pasteRule.findIndex(function (item) { return input.indexOf(item) !== -1; });
|
|
841
|
+
if (pasteRuleIndex !== -1) {
|
|
842
|
+
return true;
|
|
843
|
+
}
|
|
844
|
+
}
|
|
814
845
|
var text = textContent(option === null || option === void 0 ? void 0 : option.children);
|
|
815
|
-
return (text === null || text === void 0 ? void 0 : text.toLowerCase().indexOf(input.toLowerCase())) >= 0;
|
|
846
|
+
return (text === null || text === void 0 ? void 0 : text.toLowerCase().indexOf(input.toLowerCase().trim())) >= 0;
|
|
816
847
|
};
|
|
817
848
|
// onChange 方法
|
|
818
|
-
|
|
819
|
-
// TODO: 注释动态设置open逻辑 start
|
|
820
|
-
// if ((Array.isArray(value) && value.length === 0) || !value) {
|
|
821
|
-
// currentClick.current = true;
|
|
822
|
-
// } else {
|
|
823
|
-
// currentClick.current = false;
|
|
824
|
-
// }
|
|
825
|
-
// TODO: 注释动态设置open逻辑 end
|
|
849
|
+
function onChangeHandle(value, option) {
|
|
826
850
|
setFirstLoading(true);
|
|
827
851
|
if (((Array.isArray(value) && value.length === 0) || !value) &&
|
|
828
852
|
remoteSearch &&
|
|
@@ -833,7 +857,7 @@ function EnhanceSelect(_a) {
|
|
|
833
857
|
}
|
|
834
858
|
// const _defaultList = Array.isArray(defaultList) ? defaultList : [];
|
|
835
859
|
var _defaultList = clearNullData(Array.isArray(defaultList) ? defaultList : [], dataKey, titleKey);
|
|
836
|
-
var currentList = concatData(concatData(selectList || [], _defaultList), multipleList || []);
|
|
860
|
+
var currentList = concatData(concatData(concatData(selectList || [], _defaultList), multipleList || []), autoPasteListRef.current);
|
|
837
861
|
if (currentList && Array.isArray(currentList)) {
|
|
838
862
|
var key_1 = dataKey;
|
|
839
863
|
// 支持多选模式
|
|
@@ -900,31 +924,19 @@ function EnhanceSelect(_a) {
|
|
|
900
924
|
else {
|
|
901
925
|
onChange && onChange(value, option);
|
|
902
926
|
}
|
|
903
|
-
}
|
|
927
|
+
}
|
|
904
928
|
// 焦点事件
|
|
905
929
|
var onFocusHandle = function (e) {
|
|
906
|
-
console.log('焦点事件');
|
|
930
|
+
// console.log('焦点事件');
|
|
907
931
|
setIsOpen(true);
|
|
908
|
-
// TODO: 注释动态设置open逻辑 start
|
|
909
|
-
// currentClick.current = false;
|
|
910
|
-
// TODO: 注释动态设置open逻辑 end
|
|
911
932
|
onFocus && onFocus(e);
|
|
912
933
|
};
|
|
913
934
|
var onBlurHandle = function (e) {
|
|
914
|
-
// TODO: 注释动态设置open逻辑 start
|
|
915
|
-
// console.log('失去焦点事件');
|
|
916
|
-
// setIsOpen(false);
|
|
917
|
-
// currentClick.current = false;
|
|
918
|
-
// TODO: 注释动态设置open逻辑 end
|
|
919
935
|
onBlur && onBlur(e);
|
|
920
936
|
};
|
|
921
937
|
// 清空数据时
|
|
922
938
|
var onClearHandle = function () {
|
|
923
939
|
// console.log('清空数据事件');
|
|
924
|
-
// TODO: 注释动态设置open逻辑 start
|
|
925
|
-
// handleClearDataRef.current = true;
|
|
926
|
-
// setIsOpen(false);
|
|
927
|
-
// TODO: 注释动态设置open逻辑 end
|
|
928
940
|
};
|
|
929
941
|
// 选中时
|
|
930
942
|
var onSelectHandle = function (value, obj) {
|
|
@@ -939,11 +951,6 @@ function EnhanceSelect(_a) {
|
|
|
939
951
|
document === null || document === void 0 ? void 0 : document.execCommand('copy');
|
|
940
952
|
document.body.removeChild(textarea);
|
|
941
953
|
}
|
|
942
|
-
// TODO: 注释动态设置open逻辑 start
|
|
943
|
-
// if (!restProps.mode) {
|
|
944
|
-
// setIsOpen(false);
|
|
945
|
-
// }
|
|
946
|
-
// TODO: 注释动态设置open逻辑 end
|
|
947
954
|
};
|
|
948
955
|
// 点击时
|
|
949
956
|
var onClickHandle = function (e) {
|
|
@@ -954,24 +961,6 @@ function EnhanceSelect(_a) {
|
|
|
954
961
|
sendRemoteRequest();
|
|
955
962
|
sendRemoteRequest1();
|
|
956
963
|
}
|
|
957
|
-
// TODO: 注释动态设置open逻辑 start
|
|
958
|
-
// if (currentClick.current) {
|
|
959
|
-
// console.log(e.nativeEvent.target.getAttribute('class'));
|
|
960
|
-
// let className = '';
|
|
961
|
-
// try {
|
|
962
|
-
// className = e.nativeEvent.target.getAttribute('class');
|
|
963
|
-
// } catch (err) {
|
|
964
|
-
// console.log(err);
|
|
965
|
-
// }
|
|
966
|
-
// const bool = className.indexOf('rc-virtual-list') === -1;
|
|
967
|
-
// if (isOpen && bool) {
|
|
968
|
-
// setIsOpen(false);
|
|
969
|
-
// } else {
|
|
970
|
-
// setIsOpen(true);
|
|
971
|
-
// }
|
|
972
|
-
// }
|
|
973
|
-
// currentClick.current = true;
|
|
974
|
-
// TODO: 注释动态设置open逻辑 end
|
|
975
964
|
};
|
|
976
965
|
// 滚动加载
|
|
977
966
|
var onPopupScrollHandle = function (e) {
|
|
@@ -1012,6 +1001,6 @@ function EnhanceSelect(_a) {
|
|
|
1012
1001
|
// 这里需要注释掉,因为修改了一部分逻辑
|
|
1013
1002
|
disabled: remoteSearch || isClickRequest
|
|
1014
1003
|
? restProps.disabled
|
|
1015
|
-
: loading || restProps.disabled }), renderSelectOption()));
|
|
1004
|
+
: loading || restProps.disabled, ref: selectRef }), renderSelectOption()));
|
|
1016
1005
|
}
|
|
1017
1006
|
export default memo(EnhanceSelect);
|
|
@@ -25,9 +25,12 @@ import { InputNumber as AntInputNumber } from 'antd';
|
|
|
25
25
|
import { message } from '../../index';
|
|
26
26
|
import { getFormatter, } from '../../hooks/useFormatter';
|
|
27
27
|
function InputNumber(props) {
|
|
28
|
-
var formatterType = props.formatterType, currencySymbol = props.currencySymbol, formatter = props.formatter, parser = props.parser, precision = props.precision, max = props.max, min = props.min, onChange = props.onChange, onBlur = props.onBlur, onPressEnter = props.onPressEnter, onOverRange = props.onOverRange, overMaxTip = props.overMaxTip, lowMinTip = props.lowMinTip, restProps = __rest(props, ["formatterType", "currencySymbol", "formatter", "parser", "precision", "max", "min", "onChange", "onBlur", "onPressEnter", "onOverRange", "overMaxTip", "lowMinTip"]);
|
|
28
|
+
var formatterType = props.formatterType, currencySymbol = props.currencySymbol, formatter = props.formatter, parser = props.parser, precision = props.precision, max = props.max, min = props.min, onChange = props.onChange, onBlur = props.onBlur, onPressEnter = props.onPressEnter, onOverRange = props.onOverRange, overMaxTip = props.overMaxTip, lowMinTip = props.lowMinTip, onFocus = props.onFocus, restProps = __rest(props, ["formatterType", "currencySymbol", "formatter", "parser", "precision", "max", "min", "onChange", "onBlur", "onPressEnter", "onOverRange", "overMaxTip", "lowMinTip", "onFocus"]);
|
|
29
29
|
var selfValue = useRef();
|
|
30
|
-
|
|
30
|
+
// 元素是否获得焦点
|
|
31
|
+
// 用来处理formatter优先级比precision高的问题
|
|
32
|
+
var isFocusRef = useRef(false);
|
|
33
|
+
var _a = getFormatter(formatterType, currencySymbol, isFocusRef, precision), _formatter = _a.formatter, _parser = _a.parser, _precision = _a.precision;
|
|
31
34
|
var onChangeHandle = function (value) {
|
|
32
35
|
selfValue.current = value;
|
|
33
36
|
onChange && onChange(value);
|
|
@@ -50,13 +53,18 @@ function InputNumber(props) {
|
|
|
50
53
|
}
|
|
51
54
|
};
|
|
52
55
|
var onBlurHandle = function (e) {
|
|
56
|
+
isFocusRef.current = false;
|
|
53
57
|
onOverRangeHandle();
|
|
54
58
|
onBlur && onBlur(e);
|
|
55
59
|
};
|
|
60
|
+
var onFocusHandle = function (e) {
|
|
61
|
+
isFocusRef.current = true;
|
|
62
|
+
onFocus && onFocus(e);
|
|
63
|
+
};
|
|
56
64
|
var onPressEnterHandle = function (e) {
|
|
57
65
|
onOverRangeHandle();
|
|
58
66
|
onPressEnter && onPressEnter(e);
|
|
59
67
|
};
|
|
60
|
-
return (React.createElement(AntInputNumber, __assign({ formatter: formatter || _formatter, parser: parser || _parser, precision: precision !== null && precision !== void 0 ? precision : _precision, onChange: onChangeHandle, onBlur: onBlurHandle, onPressEnter: onPressEnterHandle }, restProps)));
|
|
68
|
+
return (React.createElement(AntInputNumber, __assign({ formatter: formatter || _formatter, parser: parser || _parser, precision: precision !== null && precision !== void 0 ? precision : _precision, onChange: onChangeHandle, onBlur: onBlurHandle, onPressEnter: onPressEnterHandle, onFocus: onFocusHandle }, restProps)));
|
|
61
69
|
}
|
|
62
70
|
export default InputNumber;
|
|
@@ -135,13 +135,14 @@ dynamicStorageKey // 动态列配置的key值
|
|
|
135
135
|
// 遍历当前子元素
|
|
136
136
|
React.Children.forEach(children, function (item) {
|
|
137
137
|
if (item === null || item === void 0 ? void 0 : item.props) {
|
|
138
|
-
var _a = item.props, name_2 = _a.name, label_1 = _a.label, hiddenLabelName_1 = _a.hiddenLabelName, disabled = _a.disabled;
|
|
138
|
+
var _a = item.props, name_2 = _a.name, label_1 = _a.label, hiddenLabelName_1 = _a.hiddenLabelName, disabled = _a.disabled, dynamicDisabled_1 = _a.dynamicdisabled;
|
|
139
139
|
_initDynamicList_1.push({
|
|
140
140
|
name: name_2,
|
|
141
141
|
label: label_1,
|
|
142
142
|
hiddenLabelName: hiddenLabelName_1,
|
|
143
143
|
show: true,
|
|
144
144
|
disabled: disabled,
|
|
145
|
+
dynamicDisabled: dynamicDisabled_1,
|
|
145
146
|
});
|
|
146
147
|
if (!dynamicList_1 || dynamicList_1.length === 0) {
|
|
147
148
|
_currentDynamicList_1.push({
|
|
@@ -150,6 +151,7 @@ dynamicStorageKey // 动态列配置的key值
|
|
|
150
151
|
hiddenLabelName: hiddenLabelName_1,
|
|
151
152
|
show: true,
|
|
152
153
|
disabled: disabled,
|
|
154
|
+
dynamicDisabled: dynamicDisabled_1,
|
|
153
155
|
});
|
|
154
156
|
}
|
|
155
157
|
else {
|
|
@@ -160,6 +162,7 @@ dynamicStorageKey // 动态列配置的key值
|
|
|
160
162
|
currentData.forEach(function (item) {
|
|
161
163
|
item.label = label_1;
|
|
162
164
|
item.hiddenLabelName = hiddenLabelName_1;
|
|
165
|
+
item.dynamicDisabled = dynamicDisabled_1;
|
|
163
166
|
});
|
|
164
167
|
if (currentData.length > 1) {
|
|
165
168
|
var index = _currentDynamicList_1.findIndex(function (currentDynamic) { return currentDynamic.name === name_2; });
|
|
@@ -180,6 +183,7 @@ dynamicStorageKey // 动态列配置的key值
|
|
|
180
183
|
hiddenLabelName: item.hiddenLabelName,
|
|
181
184
|
show: true,
|
|
182
185
|
disabled: item.disabled,
|
|
186
|
+
dynamicDisabled: item.dynamicdisabled,
|
|
183
187
|
}); }));
|
|
184
188
|
// 将删除的数据剔除出去
|
|
185
189
|
_currentDynamicList_1 = _currentDynamicList_1.filter(function (item) {
|
|
@@ -65,6 +65,6 @@ var SearchDrawer = function (_a) {
|
|
|
65
65
|
React.createElement("span", null, "\uFF08\u62D6\u62FD\u6392\u5E8F\uFF09"))), width: 290, placement: "right", visible: visible, closable: false, maskClosable: false, footer: renderFooter() },
|
|
66
66
|
React.createElement(DndProvider, { backend: HTML5Backend, context: window },
|
|
67
67
|
React.createElement(Checkbox.Group, { value: checkedValues, onChange: onCheckboxChange }, dynamicList.map(function (item, index) { return (React.createElement(Sortable, { key: item.name, type: "search-drawer", index: index, onMoveItem: onMoveItem },
|
|
68
|
-
React.createElement(Checkbox, { value: item.name }, item.label || item.hiddenLabelName || item.name))); })))));
|
|
68
|
+
React.createElement(Checkbox, { value: item.name, disabled: item.disabled || item.dynamicDisabled }, item.label || item.hiddenLabelName || item.name))); })))));
|
|
69
69
|
};
|
|
70
70
|
export default memo(SearchDrawer);
|
|
@@ -18,6 +18,8 @@ export interface ISearchItem extends FormItemProps {
|
|
|
18
18
|
hiddenLabelName?: string;
|
|
19
19
|
/** 没有lable显示边框 */
|
|
20
20
|
noLabelShowBg?: boolean;
|
|
21
|
+
/** 动态列禁用隐藏 */
|
|
22
|
+
dynamicdisabled?: any;
|
|
21
23
|
}
|
|
22
24
|
declare const SearchItem: React.FC<ISearchItem>;
|
|
23
25
|
export default SearchItem;
|
package/dist/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
1
|
+
export declare const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNDY4MDM1MzUxNjI1Mjg1NjM0LDE1NDIwNzYzMDg1NzgwMjU0NzQiLCJjbGllbnRfaWQiOiJzd29yZCIsInVzZXJfdHlwZSI6IndlYiIsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxLDE0NjcwMTU5NzU0ODQ3NjAwNjYsMTQ2ODAzNDQzNzE1Nzk2MTcyOSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY2ODM5MjU4LCJvcmdfbmFtZSI6bnVsbCwianRpIjoiOWRjOTZjZTEtNGEzOS00ZGY4LTlmYzQtYTIwMTU2ZmFjYTgyIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwidXNlciIsImFkbWluaXN0cmF0b3IiXSwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvcix1c2VyLGFkbWluLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.lKFfJTGK-DB43Okpf-j3rMuPaPPMIWGNsyDJUqokBYY";
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
1
|
+
export var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJtZW1iZXJfdHlwZSI6MSwiaGFuZGxlX2hyX3Bob25lIjpudWxsLCJyZXN1bWVfZGF0ZSI6bnVsbCwidXNlcl9uYW1lIjoiY2hlbnl4IiwiZW1wX25hbWUiOm51bGwsImVtcF9udW1iZXIiOm51bGwsImltdF9pZCI6IiIsInJlYWxfbmFtZSI6IumZiOS6mumbhCIsImNsaWVudF90eXBlIjoid2ViIiwiZGF0YV9yb2xlX2lkIjoiMTM0NTk3ODUwNTMwMjA1Njk2MiwxNDY4MDM1MzUxNjI1Mjg1NjM0LDE1NDIwNzYzMDg1NzgwMjU0NzQiLCJjbGllbnRfaWQiOiJzd29yZCIsInVzZXJfdHlwZSI6IndlYiIsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxLDE0NjcwMTU5NzU0ODQ3NjAwNjYsMTQ2ODAzNDQzNzE1Nzk2MTcyOSwxNDgwODI5MzM3OTM5MTMyNDE3IiwicG9zdF9uYW1lIjpudWxsLCJzY29wZSI6WyJhbGwiXSwiaW50ZXJ2aWV3X2lkIjoiIiwiZXhwIjoxNjY2ODM5MjU4LCJvcmdfbmFtZSI6bnVsbCwianRpIjoiOWRjOTZjZTEtNGEzOS00ZGY4LTlmYzQtYTIwMTU2ZmFjYTgyIiwibWVtYmVyX2lkIjoiMSIsImNvbXBhbnlfaWQiOiIiLCJzeXN0ZW1faWQiOm51bGwsImRlcHRfbmFtZSI6bnVsbCwiYXZhdGFyIjoiIiwiZGF0YV9yb2xlX25hbWUiOiJhZG1pbixhZG1pbixhZG1pbiIsImF1dGhvcml0aWVzIjpbImFkbWluIiwidXNlciIsImFkbWluaXN0cmF0b3IiXSwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvcix1c2VyLGFkbWluLGFkbWluIiwicmVzdW1lX3RlbXBsYXRlIjpudWxsLCJsaWNlbnNlIjoicG93ZXJlZCBieSB6bWRtcyIsInBvc3RfaWQiOiIiLCJ1c2VyX2lkIjoiMTQxMjk1MzgwNDMzMzU1NTcxNCIsIm9yZ19pZCI6IiIsIm5pY2tfbmFtZSI6IumZiOS6mumbhCIsImNvbXBhbnlfbmFtZSI6bnVsbCwiZGVwdF9pZCI6IiIsImhhbmRsZV9ocl9uYW1lIjpudWxsLCJhY2NvdW50IjoiY2hlbnl4IiwicmVzdW1lX2lkIjoiIn0.lKFfJTGK-DB43Okpf-j3rMuPaPPMIWGNsyDJUqokBYY';
|
|
@@ -11,18 +11,14 @@ interface IParserFuc {
|
|
|
11
11
|
* @description 根据类型获取转换函数
|
|
12
12
|
* @param formatterType 转换类型
|
|
13
13
|
*/
|
|
14
|
-
declare function useFormatter(formatterType: IFormatterType | undefined, currencySymbol
|
|
15
|
-
formatter
|
|
16
|
-
parser
|
|
17
|
-
precision
|
|
14
|
+
declare function useFormatter(formatterType: IFormatterType | undefined, currencySymbol: ICurrencySymbol, inputNumberRef: any): {
|
|
15
|
+
formatter?: IFormatterFuc;
|
|
16
|
+
parser?: IParserFuc;
|
|
17
|
+
precision?: number;
|
|
18
18
|
};
|
|
19
|
-
export declare function getFormatter(formatterType: IFormatterType | undefined, currencySymbol?:
|
|
20
|
-
formatter: IFormatterFuc;
|
|
21
|
-
parser: IParserFuc;
|
|
22
|
-
precision: number;
|
|
23
|
-
} | {
|
|
19
|
+
export declare function getFormatter(formatterType: IFormatterType | undefined, currencySymbol: ICurrencySymbol, isFocusRef: any, precision?: number): {
|
|
24
20
|
formatter: (value: any) => any;
|
|
25
21
|
parser: (value: any) => any;
|
|
26
|
-
precision:
|
|
22
|
+
precision: number;
|
|
27
23
|
};
|
|
28
24
|
export default useFormatter;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react';
|
|
2
|
+
import { exactRound } from 'ztxkutils/dist/tools';
|
|
2
3
|
var MONEY_PRECISION = 3; // 金额的精度
|
|
3
4
|
var QUANTITY_PRECISION = 2; // 数值的精度
|
|
4
5
|
/**
|
|
@@ -6,63 +7,50 @@ var QUANTITY_PRECISION = 2; // 数值的精度
|
|
|
6
7
|
* @description 根据类型获取转换函数
|
|
7
8
|
* @param formatterType 转换类型
|
|
8
9
|
*/
|
|
9
|
-
function useFormatter(formatterType, currencySymbol) {
|
|
10
|
+
function useFormatter(formatterType, currencySymbol, inputNumberRef) {
|
|
10
11
|
if (currencySymbol === void 0) { currencySymbol = '$'; }
|
|
11
|
-
var _a = useState(
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
var _a = useState({
|
|
13
|
+
formatter: function (value) {
|
|
14
|
+
console.log('formatter', value, inputNumberRef.current);
|
|
15
|
+
return value;
|
|
16
|
+
},
|
|
17
|
+
parser: function (value) { return value; },
|
|
18
|
+
precision: undefined,
|
|
19
|
+
}), config = _a[0], setConfig = _a[1];
|
|
14
20
|
useEffect(function () {
|
|
15
21
|
if (formatterType === 'currency') {
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
? // eslint-disable-next-line no-eval
|
|
23
|
-
value.replace(eval("/${currencySymbol}\\s?|(,*)/g"), '')
|
|
24
|
-
: Number(value);
|
|
25
|
-
};
|
|
26
|
-
setFormatter(function () {
|
|
27
|
-
return formatterFn_1;
|
|
28
|
-
});
|
|
29
|
-
setParser(function () {
|
|
30
|
-
return parserFn_1;
|
|
22
|
+
var formatterFn = function (value) { return formatCurrency(value); };
|
|
23
|
+
var parserFn = function (value) { return value.replace(/(,*)/g, ''); };
|
|
24
|
+
setConfig({
|
|
25
|
+
formatter: formatterFn,
|
|
26
|
+
parser: parserFn,
|
|
27
|
+
precision: MONEY_PRECISION,
|
|
31
28
|
});
|
|
32
|
-
setPrecision(MONEY_PRECISION);
|
|
33
29
|
}
|
|
34
30
|
if (formatterType === 'percent') {
|
|
35
|
-
var
|
|
36
|
-
var
|
|
31
|
+
var formatterFn = function (value) { return value + "%"; };
|
|
32
|
+
var parserFn = function (value) {
|
|
37
33
|
return value ? value.replace('%', '') : Number(value);
|
|
38
34
|
};
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
setConfig({
|
|
36
|
+
formatter: formatterFn,
|
|
37
|
+
parser: parserFn,
|
|
38
|
+
precision: QUANTITY_PRECISION,
|
|
41
39
|
});
|
|
42
|
-
setParser(function () {
|
|
43
|
-
return parserFn_2;
|
|
44
|
-
});
|
|
45
|
-
setPrecision(QUANTITY_PRECISION);
|
|
46
40
|
}
|
|
47
41
|
if (formatterType === 'thousands') {
|
|
48
|
-
var
|
|
49
|
-
var
|
|
42
|
+
var formatterFn = function (value) { return value + "\u2030"; };
|
|
43
|
+
var parserFn = function (value) {
|
|
50
44
|
return value ? value.replace('‰', '') : Number(value);
|
|
51
45
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return parserFn_3;
|
|
46
|
+
setConfig({
|
|
47
|
+
formatter: formatterFn,
|
|
48
|
+
parser: parserFn,
|
|
49
|
+
precision: QUANTITY_PRECISION,
|
|
57
50
|
});
|
|
58
|
-
setPrecision(QUANTITY_PRECISION);
|
|
59
51
|
}
|
|
60
52
|
}, [formatterType, currencySymbol]);
|
|
61
|
-
return
|
|
62
|
-
formatter: formatter,
|
|
63
|
-
parser: parser,
|
|
64
|
-
precision: precision,
|
|
65
|
-
};
|
|
53
|
+
return config;
|
|
66
54
|
}
|
|
67
55
|
function formatCurrency(n) {
|
|
68
56
|
if (n != null) {
|
|
@@ -104,12 +92,18 @@ function formatCurrency(n) {
|
|
|
104
92
|
return n;
|
|
105
93
|
}
|
|
106
94
|
}
|
|
107
|
-
export function getFormatter(formatterType, currencySymbol) {
|
|
95
|
+
export function getFormatter(formatterType, currencySymbol, isFocusRef, precision) {
|
|
108
96
|
if (currencySymbol === void 0) { currencySymbol = '$'; }
|
|
109
97
|
if (formatterType === 'currency') {
|
|
110
98
|
// let formatterFn: IFormatterFuc = (value) =>
|
|
111
99
|
// `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
112
|
-
var formatterFn = function (
|
|
100
|
+
var formatterFn = function (v) {
|
|
101
|
+
var value = v;
|
|
102
|
+
if (value && !isFocusRef.current && precision) {
|
|
103
|
+
value = exactRound(value, precision);
|
|
104
|
+
}
|
|
105
|
+
return formatCurrency(value);
|
|
106
|
+
};
|
|
113
107
|
var parserFn = function (value) { return value.replace(/(,*)/g, ''); };
|
|
114
108
|
return {
|
|
115
109
|
formatter: formatterFn,
|
|
@@ -118,7 +112,13 @@ export function getFormatter(formatterType, currencySymbol) {
|
|
|
118
112
|
};
|
|
119
113
|
}
|
|
120
114
|
if (formatterType === 'percent') {
|
|
121
|
-
var formatterFn = function (
|
|
115
|
+
var formatterFn = function (v) {
|
|
116
|
+
var value = v;
|
|
117
|
+
if (value && !isFocusRef.current && precision) {
|
|
118
|
+
value = exactRound(value, precision);
|
|
119
|
+
}
|
|
120
|
+
return value + "%";
|
|
121
|
+
};
|
|
122
122
|
var parserFn = function (value) {
|
|
123
123
|
return value ? value.replace('%', '') : Number(value);
|
|
124
124
|
};
|
|
@@ -129,7 +129,13 @@ export function getFormatter(formatterType, currencySymbol) {
|
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
131
|
if (formatterType === 'thousands') {
|
|
132
|
-
var formatterFn = function (
|
|
132
|
+
var formatterFn = function (v) {
|
|
133
|
+
var value = v;
|
|
134
|
+
if (value && !isFocusRef.current && precision) {
|
|
135
|
+
value = exactRound(value, precision);
|
|
136
|
+
}
|
|
137
|
+
return value + "\u2030";
|
|
138
|
+
};
|
|
133
139
|
var parserFn = function (value) {
|
|
134
140
|
return value ? value.replace('‰', '') : Number(value);
|
|
135
141
|
};
|
|
@@ -140,9 +146,14 @@ export function getFormatter(formatterType, currencySymbol) {
|
|
|
140
146
|
};
|
|
141
147
|
}
|
|
142
148
|
return {
|
|
143
|
-
formatter: function (value) {
|
|
149
|
+
formatter: function (value) {
|
|
150
|
+
if (value && !isFocusRef.current && precision) {
|
|
151
|
+
return exactRound(value, precision);
|
|
152
|
+
}
|
|
153
|
+
return value;
|
|
154
|
+
},
|
|
144
155
|
parser: function (value) { return value; },
|
|
145
|
-
precision:
|
|
156
|
+
precision: precision,
|
|
146
157
|
};
|
|
147
158
|
}
|
|
148
159
|
export default useFormatter;
|