ls-pro-common 3.0.99 → 3.1.1
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/common.css +32 -0
- package/dist/common.js +1 -1
- package/dist/common.min.css +32 -0
- package/dist/common.min.js +1 -1
- package/es/components/InputTable.js +10 -9
- package/es/hooks/useSyncState.d.ts +4 -0
- package/es/hooks/useSyncState.js +18 -0
- package/es/http/index.d.ts +7 -0
- package/es/http/index.js +32 -0
- package/lib/components/InputTable.js +10 -9
- package/lib/hooks/useSyncState.d.ts +4 -0
- package/lib/hooks/useSyncState.js +18 -0
- package/lib/http/index.d.ts +7 -0
- package/lib/http/index.js +32 -0
- package/package.json +1 -1
|
@@ -244,22 +244,24 @@ var InputTable = /*#__PURE__*/React.forwardRef(function (prop, ref) {
|
|
|
244
244
|
};
|
|
245
245
|
}();
|
|
246
246
|
var initName = function initName(val) {
|
|
247
|
-
var _columns$find;
|
|
248
247
|
var updateTxt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
249
248
|
if (!val) return;
|
|
250
|
-
|
|
249
|
+
// 当返回值列不在表格配置中不查询,因为有可能会导致查询别名问题报错。
|
|
250
|
+
var valueColumn = columns.find(function (o) {
|
|
251
251
|
return o.dataIndex === valueField;
|
|
252
|
-
})
|
|
252
|
+
});
|
|
253
|
+
if (!valueColumn) return;
|
|
254
|
+
var fieldName = valueColumn.searchField; //优先取开发人员配置的searchField,没有配置取valueField
|
|
255
|
+
if (!fieldName) {
|
|
256
|
+
fieldName = (isV2 ? 'search.' : '') + valueField;
|
|
257
|
+
}
|
|
253
258
|
var param = {
|
|
254
259
|
current: 1,
|
|
255
260
|
pageSize: 1000
|
|
256
261
|
};
|
|
257
262
|
if (Array.isArray(val)) val = val.join(',');
|
|
258
263
|
if (val.toString().includes(',')) {
|
|
259
|
-
fieldName
|
|
260
|
-
}
|
|
261
|
-
if (isV2) {
|
|
262
|
-
fieldName = 'search.' + fieldName;
|
|
264
|
+
fieldName = fieldName.split('_')[0] + '_in';
|
|
263
265
|
}
|
|
264
266
|
param[fieldName] = val;
|
|
265
267
|
loadData(param).then(function (result) {
|
|
@@ -290,11 +292,10 @@ var InputTable = /*#__PURE__*/React.forwardRef(function (prop, ref) {
|
|
|
290
292
|
if (!txt) {
|
|
291
293
|
formValue[textNameProp] = val;
|
|
292
294
|
setFormValue(formValue);
|
|
293
|
-
// 多值选择或选择的初始值不在第一页时显示有问题
|
|
294
295
|
if (textField !== valueField) {
|
|
295
296
|
initName(val);
|
|
296
297
|
}
|
|
297
|
-
} else {
|
|
298
|
+
} else if (multiple) {
|
|
298
299
|
initName(val, false);
|
|
299
300
|
}
|
|
300
301
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export default function useSyncState(defaultValue) {
|
|
4
|
+
var _React$useState = React.useState(0),
|
|
5
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
6
|
+
forceUpdate = _React$useState2[1];
|
|
7
|
+
var stateRef = React.useRef(typeof defaultValue === 'function' ? defaultValue() : defaultValue);
|
|
8
|
+
var setState = React.useCallback(function (action) {
|
|
9
|
+
stateRef.current = typeof action === 'function' ? action(stateRef.current) : action;
|
|
10
|
+
forceUpdate(function (prev) {
|
|
11
|
+
return prev + 1;
|
|
12
|
+
});
|
|
13
|
+
}, []);
|
|
14
|
+
var getState = React.useCallback(function () {
|
|
15
|
+
return stateRef.current;
|
|
16
|
+
}, []);
|
|
17
|
+
return [stateRef.current, setState, getState];
|
|
18
|
+
}
|
package/es/http/index.d.ts
CHANGED
package/es/http/index.js
CHANGED
|
@@ -24,6 +24,33 @@ var browserId = '';
|
|
|
24
24
|
} catch (_unused) {}
|
|
25
25
|
}, 0);
|
|
26
26
|
})();
|
|
27
|
+
//是否跨域
|
|
28
|
+
/**
|
|
29
|
+
* 判断URL是否跨域
|
|
30
|
+
*
|
|
31
|
+
* @param url 需要判断的URL
|
|
32
|
+
* @returns 如果是跨域返回true,否则返回false
|
|
33
|
+
*/
|
|
34
|
+
export var isCrossDomain = function isCrossDomain(url) {
|
|
35
|
+
// 如果URL不是以http(s)://开头,则直接认为是同源
|
|
36
|
+
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('//')) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
// 创建URL对象
|
|
41
|
+
var currentUrl = window.location;
|
|
42
|
+
if (url.startsWith('//')) {
|
|
43
|
+
url = currentUrl.protocol + url;
|
|
44
|
+
}
|
|
45
|
+
var targetUrl = new URL(url);
|
|
46
|
+
// 判断协议、域名、端口是否一致
|
|
47
|
+
return targetUrl.protocol !== currentUrl.protocol || targetUrl.hostname !== currentUrl.hostname || targetUrl.port !== currentUrl.port;
|
|
48
|
+
} catch (e) {
|
|
49
|
+
// URL解析失败,返回true表示跨域
|
|
50
|
+
console.warn('URL解析失败:', e);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
27
54
|
/** 请求拦截器,统一添加token */
|
|
28
55
|
request.interceptors.request.use(function (url, options) {
|
|
29
56
|
var _options$params;
|
|
@@ -57,6 +84,11 @@ request.interceptors.request.use(function (url, options) {
|
|
|
57
84
|
options.headers['x-asm-prefer-tag'] = tag; //灰度发版标识
|
|
58
85
|
}
|
|
59
86
|
|
|
87
|
+
var token = getCookie('token');
|
|
88
|
+
if (token && url.indexOf('noToken=1') === -1) {
|
|
89
|
+
//@ts-ignore
|
|
90
|
+
options.headers['token'] = token;
|
|
91
|
+
}
|
|
60
92
|
url = url.replace('&noToken=1', '').replace('noToken=1', '');
|
|
61
93
|
var resCode = getUrlQuery('resCode', url) || getUrlQuery('resCode') || getUrlQuery('resourceId') || getResourceProps('resourceId');
|
|
62
94
|
var param = {
|
|
@@ -244,22 +244,24 @@ var InputTable = /*#__PURE__*/React.forwardRef(function (prop, ref) {
|
|
|
244
244
|
};
|
|
245
245
|
}();
|
|
246
246
|
var initName = function initName(val) {
|
|
247
|
-
var _columns$find;
|
|
248
247
|
var updateTxt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
249
248
|
if (!val) return;
|
|
250
|
-
|
|
249
|
+
// 当返回值列不在表格配置中不查询,因为有可能会导致查询别名问题报错。
|
|
250
|
+
var valueColumn = columns.find(function (o) {
|
|
251
251
|
return o.dataIndex === valueField;
|
|
252
|
-
})
|
|
252
|
+
});
|
|
253
|
+
if (!valueColumn) return;
|
|
254
|
+
var fieldName = valueColumn.searchField; //优先取开发人员配置的searchField,没有配置取valueField
|
|
255
|
+
if (!fieldName) {
|
|
256
|
+
fieldName = (isV2 ? 'search.' : '') + valueField;
|
|
257
|
+
}
|
|
253
258
|
var param = {
|
|
254
259
|
current: 1,
|
|
255
260
|
pageSize: 1000
|
|
256
261
|
};
|
|
257
262
|
if (Array.isArray(val)) val = val.join(',');
|
|
258
263
|
if (val.toString().includes(',')) {
|
|
259
|
-
fieldName
|
|
260
|
-
}
|
|
261
|
-
if (isV2) {
|
|
262
|
-
fieldName = 'search.' + fieldName;
|
|
264
|
+
fieldName = fieldName.split('_')[0] + '_in';
|
|
263
265
|
}
|
|
264
266
|
param[fieldName] = val;
|
|
265
267
|
loadData(param).then(function (result) {
|
|
@@ -290,11 +292,10 @@ var InputTable = /*#__PURE__*/React.forwardRef(function (prop, ref) {
|
|
|
290
292
|
if (!txt) {
|
|
291
293
|
formValue[textNameProp] = val;
|
|
292
294
|
setFormValue(formValue);
|
|
293
|
-
// 多值选择或选择的初始值不在第一页时显示有问题
|
|
294
295
|
if (textField !== valueField) {
|
|
295
296
|
initName(val);
|
|
296
297
|
}
|
|
297
|
-
} else {
|
|
298
|
+
} else if (multiple) {
|
|
298
299
|
initName(val, false);
|
|
299
300
|
}
|
|
300
301
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export default function useSyncState(defaultValue) {
|
|
4
|
+
var _React$useState = React.useState(0),
|
|
5
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
6
|
+
forceUpdate = _React$useState2[1];
|
|
7
|
+
var stateRef = React.useRef(typeof defaultValue === 'function' ? defaultValue() : defaultValue);
|
|
8
|
+
var setState = React.useCallback(function (action) {
|
|
9
|
+
stateRef.current = typeof action === 'function' ? action(stateRef.current) : action;
|
|
10
|
+
forceUpdate(function (prev) {
|
|
11
|
+
return prev + 1;
|
|
12
|
+
});
|
|
13
|
+
}, []);
|
|
14
|
+
var getState = React.useCallback(function () {
|
|
15
|
+
return stateRef.current;
|
|
16
|
+
}, []);
|
|
17
|
+
return [stateRef.current, setState, getState];
|
|
18
|
+
}
|
package/lib/http/index.d.ts
CHANGED
package/lib/http/index.js
CHANGED
|
@@ -24,6 +24,33 @@ var browserId = '';
|
|
|
24
24
|
} catch (_unused) {}
|
|
25
25
|
}, 0);
|
|
26
26
|
})();
|
|
27
|
+
//是否跨域
|
|
28
|
+
/**
|
|
29
|
+
* 判断URL是否跨域
|
|
30
|
+
*
|
|
31
|
+
* @param url 需要判断的URL
|
|
32
|
+
* @returns 如果是跨域返回true,否则返回false
|
|
33
|
+
*/
|
|
34
|
+
export var isCrossDomain = function isCrossDomain(url) {
|
|
35
|
+
// 如果URL不是以http(s)://开头,则直接认为是同源
|
|
36
|
+
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('//')) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
// 创建URL对象
|
|
41
|
+
var currentUrl = window.location;
|
|
42
|
+
if (url.startsWith('//')) {
|
|
43
|
+
url = currentUrl.protocol + url;
|
|
44
|
+
}
|
|
45
|
+
var targetUrl = new URL(url);
|
|
46
|
+
// 判断协议、域名、端口是否一致
|
|
47
|
+
return targetUrl.protocol !== currentUrl.protocol || targetUrl.hostname !== currentUrl.hostname || targetUrl.port !== currentUrl.port;
|
|
48
|
+
} catch (e) {
|
|
49
|
+
// URL解析失败,返回true表示跨域
|
|
50
|
+
console.warn('URL解析失败:', e);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
27
54
|
/** 请求拦截器,统一添加token */
|
|
28
55
|
request.interceptors.request.use(function (url, options) {
|
|
29
56
|
var _options$params;
|
|
@@ -57,6 +84,11 @@ request.interceptors.request.use(function (url, options) {
|
|
|
57
84
|
options.headers['x-asm-prefer-tag'] = tag; //灰度发版标识
|
|
58
85
|
}
|
|
59
86
|
|
|
87
|
+
var token = getCookie('token');
|
|
88
|
+
if (token && url.indexOf('noToken=1') === -1) {
|
|
89
|
+
//@ts-ignore
|
|
90
|
+
options.headers['token'] = token;
|
|
91
|
+
}
|
|
60
92
|
url = url.replace('&noToken=1', '').replace('noToken=1', '');
|
|
61
93
|
var resCode = getUrlQuery('resCode', url) || getUrlQuery('resCode') || getUrlQuery('resourceId') || getResourceProps('resourceId');
|
|
62
94
|
var param = {
|