ztxkui 1.8.3 → 1.8.7
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.
|
@@ -24,7 +24,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
24
24
|
* @author cyx
|
|
25
25
|
* @description 增强下拉框功能
|
|
26
26
|
*/
|
|
27
|
-
import React, { useCallback, useEffect, memo } from 'react';
|
|
27
|
+
import React, { useCallback, useEffect, memo, useRef } from 'react';
|
|
28
28
|
import { Select } from 'antd';
|
|
29
29
|
import { useFetchState } from 'ztxkutils/dist/hooks';
|
|
30
30
|
import debounce from 'lodash/debounce';
|
|
@@ -75,17 +75,27 @@ function EnhanceSelect(_a) {
|
|
|
75
75
|
// 下拉数据源
|
|
76
76
|
var _f = useFetchState([]), selectList = _f[0], setSelectList = _f[1];
|
|
77
77
|
var _g = useFetchState(false), loading = _g[0], setLoading = _g[1];
|
|
78
|
+
var fetchId = useRef(0); // 请求Id,每次请求都会加1
|
|
78
79
|
// 如果selectList 发生改变,那么触发onCompleted事件
|
|
79
80
|
useEffect(function () {
|
|
80
81
|
if (Array.isArray(selectList) && onCompleted) {
|
|
81
82
|
onCompleted(selectList);
|
|
82
83
|
}
|
|
83
|
-
|
|
84
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
85
|
+
}, [selectList]);
|
|
84
86
|
// 获取数据,并设置数据
|
|
85
87
|
var getDataHandle = useCallback(function (request, options, appointObj) {
|
|
88
|
+
setLoading(true);
|
|
89
|
+
// 利用闭包,存到当前请求的id
|
|
90
|
+
fetchId.current++;
|
|
91
|
+
var fetchIdClosure = fetchId.current;
|
|
86
92
|
getData(request, options)
|
|
87
93
|
.then(function (resData) {
|
|
88
94
|
var _a;
|
|
95
|
+
if (fetchIdClosure < fetchId.current) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
setLoading(false);
|
|
89
99
|
var res = transformData ? transformData(resData) : resData;
|
|
90
100
|
var result;
|
|
91
101
|
if (Array.isArray(res.data)) {
|
|
@@ -101,9 +111,10 @@ function EnhanceSelect(_a) {
|
|
|
101
111
|
}
|
|
102
112
|
})
|
|
103
113
|
.catch(function (err) {
|
|
114
|
+
setLoading(false);
|
|
104
115
|
console.log(err);
|
|
105
116
|
});
|
|
106
|
-
}, [setSelectList, transformData]);
|
|
117
|
+
}, [setSelectList, setLoading, transformData]);
|
|
107
118
|
// 远程搜索
|
|
108
119
|
var getRemoteDataHandle = useCallback(function (value) {
|
|
109
120
|
var _a;
|
|
@@ -114,6 +125,9 @@ function EnhanceSelect(_a) {
|
|
|
114
125
|
}
|
|
115
126
|
catch (err) { }
|
|
116
127
|
setLoading(true);
|
|
128
|
+
// 利用闭包,存到当前请求的id
|
|
129
|
+
fetchId.current++;
|
|
130
|
+
var fetchIdClosure = fetchId.current;
|
|
117
131
|
getData(request, {
|
|
118
132
|
url: url,
|
|
119
133
|
method: method,
|
|
@@ -121,6 +135,9 @@ function EnhanceSelect(_a) {
|
|
|
121
135
|
})
|
|
122
136
|
.then(function (resData) {
|
|
123
137
|
var _a, _b, _c;
|
|
138
|
+
if (fetchIdClosure < fetchId.current) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
124
141
|
setLoading(false);
|
|
125
142
|
var res = transformData ? transformData(resData) : resData;
|
|
126
143
|
var result;
|
|
@@ -215,13 +232,28 @@ function EnhanceSelect(_a) {
|
|
|
215
232
|
// console.log('TEST: 远程搜索');
|
|
216
233
|
getRemoteDataHandle('');
|
|
217
234
|
}, [url, remoteSearch, getRemoteDataHandle]);
|
|
235
|
+
// 数据合并
|
|
236
|
+
function concatData(originalData, newData) {
|
|
237
|
+
if (!newData) {
|
|
238
|
+
return originalData;
|
|
239
|
+
}
|
|
240
|
+
var resultData = originalData.slice() || [];
|
|
241
|
+
if (Array.isArray(newData)) {
|
|
242
|
+
newData.forEach(function (item) {
|
|
243
|
+
if (!resultData.find(function (resultItem) { return resultItem[dataKey] === item[dataKey]; })) {
|
|
244
|
+
resultData.unshift(item);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
return resultData;
|
|
249
|
+
}
|
|
218
250
|
// 渲染数据
|
|
219
251
|
function renderSelectOption() {
|
|
220
252
|
var _defaultList = Array.isArray(defaultList) ? defaultList : [];
|
|
221
253
|
return (React.createElement(React.Fragment, null,
|
|
222
254
|
showAll && (React.createElement(Select.Option, { title: "\u5168\u90E8", value: "" }, "\u5168\u90E8")),
|
|
223
255
|
Array.isArray(selectList) &&
|
|
224
|
-
selectList
|
|
256
|
+
concatData(selectList, _defaultList).map(function (item) {
|
|
225
257
|
var key = componentKey ? item[componentKey] : item[dataKey];
|
|
226
258
|
var value = item[dataKey];
|
|
227
259
|
var title = item[titleKey];
|
|
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
}
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
|
-
import React, { useEffect, useCallback } from 'react';
|
|
23
|
+
import React, { useEffect, useCallback, useRef } from 'react';
|
|
24
24
|
import { TreeSelect } from 'antd';
|
|
25
25
|
import { useFetchState } from 'ztxkutils/dist/hooks';
|
|
26
26
|
// 获取接口数据
|
|
@@ -53,6 +53,7 @@ function EnhanceTreeSelect(_a) {
|
|
|
53
53
|
* 保证数据源唯一
|
|
54
54
|
*/
|
|
55
55
|
var _d = useFetchState([]), treeData = _d[0], setTreeData = _d[1];
|
|
56
|
+
var fetchId = useRef(0); // 请求Id,每次请求都会加1
|
|
56
57
|
// 如果selectList 发生改变,那么触发onCompleted事件
|
|
57
58
|
useEffect(function () {
|
|
58
59
|
if (Array.isArray(treeData) && onCompleted) {
|
|
@@ -61,9 +62,15 @@ function EnhanceTreeSelect(_a) {
|
|
|
61
62
|
}, [treeData, onCompleted]);
|
|
62
63
|
// 获取数据,并设置数据
|
|
63
64
|
var getDataHandle = useCallback(function (request, options, isConcat) {
|
|
65
|
+
// 利用闭包,存到当前请求的id
|
|
66
|
+
fetchId.current++;
|
|
67
|
+
var fetchIdClosure = fetchId.current;
|
|
64
68
|
return getData(request, options)
|
|
65
69
|
.then(function (resData) {
|
|
66
70
|
var _a;
|
|
71
|
+
if (fetchIdClosure < fetchId.current) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
67
74
|
var res = transformData ? transformData(resData) : resData;
|
|
68
75
|
var result;
|
|
69
76
|
if (Array.isArray(res.data)) {
|
|
@@ -62,6 +62,10 @@ function useColumns(props) {
|
|
|
62
62
|
if (!_column.hideColumn) {
|
|
63
63
|
_newColumns.push(_column);
|
|
64
64
|
}
|
|
65
|
+
// 添加render字段
|
|
66
|
+
if (!_column.render) {
|
|
67
|
+
_column.render = function (text, record, index) { return (text ? text : '--'); };
|
|
68
|
+
}
|
|
65
69
|
});
|
|
66
70
|
if (showColumnDynamic) {
|
|
67
71
|
// 如果需要展示动态列
|