ztxkui 2.6.2 → 2.6.5
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/components/business/SearchContainer/hooks/useDynamic.d.ts +8 -1
- package/dist/components/business/SearchContainer/hooks/useDynamic.js +44 -12
- package/dist/components/business/SearchContainer/search-left.d.ts +1 -0
- package/dist/components/business/SearchContainer/search-left.js +19 -5
- package/dist/components/business/SortList/hooks/useSort.js +4 -3
- package/package.json +1 -1
|
@@ -5,7 +5,14 @@ export interface ISearchLayout {
|
|
|
5
5
|
show?: boolean;
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @description 将动态配置存在本地存储中
|
|
10
|
+
* @param dynamicStorageKey 保留的key值
|
|
11
|
+
* @param value 值
|
|
12
|
+
*/
|
|
13
|
+
export declare function setDynamicKey(dynamicStorageKey: string, value: any): void;
|
|
14
|
+
declare function useDynamic(children: React.ReactNode, isDynamic?: boolean, // 是否利用动态列配置
|
|
15
|
+
dynamicStorageKey?: string): {
|
|
9
16
|
dynamicArr: ISearchLayout[];
|
|
10
17
|
initDynamicArr: ISearchLayout[];
|
|
11
18
|
newChildren: any;
|
|
@@ -1,28 +1,60 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
|
|
2
|
+
var LOCALSTORAGE_KEY = 'ztui_dynamic_list_key';
|
|
3
|
+
/**
|
|
4
|
+
* @description 将动态配置存在本地存储中
|
|
5
|
+
* @param dynamicStorageKey 保留的key值
|
|
6
|
+
* @param value 值
|
|
7
|
+
*/
|
|
8
|
+
export function setDynamicKey(dynamicStorageKey, value) {
|
|
9
|
+
var obj = {};
|
|
10
|
+
try {
|
|
11
|
+
obj = JSON.parse(localStorage.getItem(LOCALSTORAGE_KEY) || '{}') || {};
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
console.error(err);
|
|
15
|
+
}
|
|
16
|
+
obj[dynamicStorageKey] = value;
|
|
17
|
+
localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(obj));
|
|
18
|
+
}
|
|
19
|
+
function useDynamic(children, isDynamic, // 是否利用动态列配置
|
|
20
|
+
dynamicStorageKey // 动态列配置的key值
|
|
21
|
+
) {
|
|
22
|
+
/** 当前传入的组件排列顺序 */
|
|
3
23
|
var _a = useState([]), dynamicArr = _a[0], setDynamicArr = _a[1];
|
|
24
|
+
/** 初始化顺序,根据传入得组件children元素得到,重置时需要用到它 */
|
|
4
25
|
var _b = useState([]), initDynamicArr = _b[0], setInitDynamicArr = _b[1];
|
|
26
|
+
/** 组件子元素得拷贝 */
|
|
5
27
|
var _c = useState(null), newChildren = _c[0], setNewChildren = _c[1];
|
|
6
28
|
/**
|
|
7
29
|
* 这里这么做的用处是防止dom发生改变
|
|
8
30
|
*/
|
|
9
31
|
useEffect(function () {
|
|
10
|
-
if (isDynamic) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
32
|
+
if (isDynamic && dynamicStorageKey) {
|
|
33
|
+
// 从storage中取到历史数据
|
|
34
|
+
var dynamicList_1 = [];
|
|
35
|
+
try {
|
|
36
|
+
var obj = JSON.parse(localStorage.getItem(LOCALSTORAGE_KEY) || '{}') || {};
|
|
37
|
+
dynamicList_1 = obj[dynamicStorageKey];
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
console.log(err);
|
|
41
|
+
}
|
|
42
|
+
// 如果默认传入了需要设置的顺序,那么当前顺序取这个
|
|
43
|
+
var _currentDynamicList_1 = Array.isArray(dynamicList_1) && dynamicList_1.length > 0 ? dynamicList_1 : [];
|
|
44
|
+
// 初始化的排列顺序
|
|
45
|
+
var _initDynamicList_1 = [];
|
|
46
|
+
// 遍历当前子元素
|
|
15
47
|
React.Children.forEach(children, function (item) {
|
|
16
48
|
if (item === null || item === void 0 ? void 0 : item.props) {
|
|
17
49
|
var _a = item.props, name_1 = _a.name, label = _a.label, disabled = _a.disabled;
|
|
18
|
-
|
|
50
|
+
_initDynamicList_1.push({
|
|
19
51
|
name: name_1,
|
|
20
52
|
label: label,
|
|
21
53
|
show: true,
|
|
22
54
|
disabled: disabled,
|
|
23
55
|
});
|
|
24
|
-
if (!
|
|
25
|
-
|
|
56
|
+
if (!dynamicList_1 || dynamicList_1.length === 0) {
|
|
57
|
+
_currentDynamicList_1.push({
|
|
26
58
|
name: name_1,
|
|
27
59
|
label: label,
|
|
28
60
|
show: true,
|
|
@@ -32,10 +64,10 @@ function useDynamic(children, isDynamic, searchLayout) {
|
|
|
32
64
|
}
|
|
33
65
|
});
|
|
34
66
|
setNewChildren(children);
|
|
35
|
-
setDynamicArr(
|
|
36
|
-
setInitDynamicArr(
|
|
67
|
+
setDynamicArr(_currentDynamicList_1);
|
|
68
|
+
setInitDynamicArr(_initDynamicList_1);
|
|
37
69
|
}
|
|
38
|
-
}, [children,
|
|
70
|
+
}, [children, dynamicStorageKey, isDynamic]);
|
|
39
71
|
return {
|
|
40
72
|
dynamicArr: dynamicArr,
|
|
41
73
|
initDynamicArr: initDynamicArr,
|
|
@@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useState } from 'react';
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import SearchDrawer from './search-drawer';
|
|
4
4
|
import { SettingOutlined } from '@ant-design/icons';
|
|
5
|
-
import useDynamic from './hooks/useDynamic';
|
|
5
|
+
import useDynamic, { setDynamicKey } from './hooks/useDynamic';
|
|
6
6
|
function useConfigChildren(children) {
|
|
7
7
|
var _a = useState(null), configChildren = _a[0], setConfigChildren = _a[1];
|
|
8
8
|
useEffect(function () {
|
|
@@ -13,9 +13,15 @@ function useConfigChildren(children) {
|
|
|
13
13
|
return { configChildren: configChildren };
|
|
14
14
|
}
|
|
15
15
|
var SearchLeft = function (_a) {
|
|
16
|
-
var children = _a.children, className = _a.className, isDynamic = _a.isDynamic,
|
|
16
|
+
var children = _a.children, className = _a.className, isDynamic = _a.isDynamic, _dynamicStorageKey = _a.dynamicStorageKey, onChange = _a.onChange, _b = _a.isFlex, isFlex = _b === void 0 ? true : _b, configInfo = _a.configInfo;
|
|
17
|
+
// 为了兼容之前的写法,默认取当前路由地址,但是这种情况会导致微前端下面出现一些问题
|
|
18
|
+
// 所以在使用组件的时候,如果要使用动态配置,必须传入dynamicStorageKey
|
|
19
|
+
// 如果有时间还是需要传入storageKey,之前的写法需要简化
|
|
20
|
+
var dynamicStorageKey = _dynamicStorageKey
|
|
21
|
+
? _dynamicStorageKey
|
|
22
|
+
: window.location.pathname;
|
|
17
23
|
/**缓存初始化值 */
|
|
18
|
-
var _c = useDynamic(children, isDynamic,
|
|
24
|
+
var _c = useDynamic(children, isDynamic, dynamicStorageKey), dynamicArr = _c.dynamicArr, initDynamicArr = _c.initDynamicArr, newChildren = _c.newChildren;
|
|
19
25
|
var configChildren = useConfigChildren(children).configChildren;
|
|
20
26
|
var classes = classNames('zt-search__left', className, {
|
|
21
27
|
'zt-search__left--flex': isFlex,
|
|
@@ -34,13 +40,21 @@ var SearchLeft = function (_a) {
|
|
|
34
40
|
/**重置 */
|
|
35
41
|
var onReset = useCallback(function () {
|
|
36
42
|
setVisible(false);
|
|
43
|
+
setDynamicList(initDynamicArr);
|
|
44
|
+
if (dynamicStorageKey) {
|
|
45
|
+
setDynamicKey(dynamicStorageKey, initDynamicArr);
|
|
46
|
+
}
|
|
37
47
|
onChange && onChange(initDynamicArr);
|
|
38
|
-
}, [onChange, initDynamicArr]);
|
|
48
|
+
}, [onChange, initDynamicArr, dynamicStorageKey]);
|
|
39
49
|
/**确定修改 */
|
|
40
50
|
var onSure = useCallback(function (newList) {
|
|
41
51
|
setVisible(false);
|
|
52
|
+
setDynamicList(newList);
|
|
53
|
+
if (dynamicStorageKey) {
|
|
54
|
+
setDynamicKey(dynamicStorageKey, newList);
|
|
55
|
+
}
|
|
42
56
|
onChange && onChange(newList);
|
|
43
|
-
}, [onChange]);
|
|
57
|
+
}, [onChange, dynamicStorageKey]);
|
|
44
58
|
/**取消修改,回到初始位置 */
|
|
45
59
|
var onClose = useCallback(function () {
|
|
46
60
|
setVisible(false);
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
* @description 得到一些初始化数据
|
|
3
3
|
*/
|
|
4
4
|
import React, { useState, useEffect } from 'react';
|
|
5
|
+
var LOCALSTORAGE_KEY = 'ztui_sort_list_key';
|
|
5
6
|
export function setSortKey(sortStorageKey, value) {
|
|
6
7
|
var obj = {};
|
|
7
8
|
try {
|
|
8
|
-
obj = JSON.parse(localStorage.getItem(
|
|
9
|
+
obj = JSON.parse(localStorage.getItem(LOCALSTORAGE_KEY) || '{}') || {};
|
|
9
10
|
}
|
|
10
11
|
catch (err) {
|
|
11
12
|
console.error(err);
|
|
12
13
|
}
|
|
13
14
|
obj[sortStorageKey] = value;
|
|
14
|
-
localStorage.setItem(
|
|
15
|
+
localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(obj));
|
|
15
16
|
}
|
|
16
17
|
function useSort(children, sortStorageKey) {
|
|
17
18
|
/** 初始化顺序,根据传入得组件children元素得到,重置时需要用到它 */
|
|
@@ -24,7 +25,7 @@ function useSort(children, sortStorageKey) {
|
|
|
24
25
|
// 从storage中取到历史数据
|
|
25
26
|
var sortList = [];
|
|
26
27
|
try {
|
|
27
|
-
var obj = JSON.parse(localStorage.getItem(
|
|
28
|
+
var obj = JSON.parse(localStorage.getItem(LOCALSTORAGE_KEY) || '{}') || {};
|
|
28
29
|
sortList = obj[sortStorageKey];
|
|
29
30
|
}
|
|
30
31
|
catch (err) {
|