@tntd/bread-crumb 1.0.0
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/.octopus/ar-EG/index.js +5 -0
- package/.octopus/ar-EG/src.js +5 -0
- package/.octopus/en-US/index.js +5 -0
- package/.octopus/en-US/src.js +5 -0
- package/.octopus/es-ES/index.js +5 -0
- package/.octopus/es-ES/src.js +5 -0
- package/.octopus/ko-KR/index.js +5 -0
- package/.octopus/ko-KR/src.js +5 -0
- package/.octopus/th-TH/index.js +5 -0
- package/.octopus/th-TH/src.js +5 -0
- package/.octopus/zh-CN/index.js +5 -0
- package/.octopus/zh-CN/src.js +5 -0
- package/.octopus/zh-TW/index.js +5 -0
- package/.octopus/zh-TW/src.js +5 -0
- package/es/I18N.js +33 -0
- package/es/bread-crumb.md +93 -0
- package/es/index.js +336 -0
- package/es/index.less +28 -0
- package/es/locale/ar_EG.js +11 -0
- package/es/locale/en_US.js +11 -0
- package/es/locale/es_ES.js +11 -0
- package/es/locale/ko_KR.js +11 -0
- package/es/locale/th_TH.js +11 -0
- package/es/locale/zh_CN.js +11 -0
- package/es/locale/zh_TW.js +11 -0
- package/package.json +22 -0
- package/readme.md +84 -0
- package/src/I18N.js +27 -0
- package/src/bread-crumb.md +93 -0
- package/src/index.js +331 -0
- package/src/index.less +28 -0
- package/src/locale/ar_EG.js +5 -0
- package/src/locale/en_US.js +5 -0
- package/src/locale/es_ES.js +5 -0
- package/src/locale/ko_KR.js +5 -0
- package/src/locale/th_TH.js +5 -0
- package/src/locale/zh_CN.js +5 -0
- package/src/locale/zh_TW.js +5 -0
package/es/I18N.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getLang = exports["default"] = void 0;
|
|
8
|
+
var _universalCookie = _interopRequireDefault(require("universal-cookie"));
|
|
9
|
+
var _zhCN = _interopRequireDefault(require("../.octopus/zh-CN"));
|
|
10
|
+
var _zhTW = _interopRequireDefault(require("../.octopus/zh-TW"));
|
|
11
|
+
var _enUS = _interopRequireDefault(require("../.octopus/en-US"));
|
|
12
|
+
var _thTH = _interopRequireDefault(require("../.octopus/th-TH"));
|
|
13
|
+
var _arEG = _interopRequireDefault(require("../.octopus/ar-EG"));
|
|
14
|
+
var _koKR = _interopRequireDefault(require("../.octopus/ko-KR"));
|
|
15
|
+
var _esES = _interopRequireDefault(require("../.octopus/es-ES"));
|
|
16
|
+
var cookies = new _universalCookie["default"]();
|
|
17
|
+
var mapLocale = {
|
|
18
|
+
'zh-cn': _zhCN["default"],
|
|
19
|
+
'zh-tw': _zhTW["default"],
|
|
20
|
+
en: _enUS["default"],
|
|
21
|
+
th: _thTH["default"],
|
|
22
|
+
// 泰语
|
|
23
|
+
ar: _arEG["default"],
|
|
24
|
+
// 阿拉伯语(埃及)
|
|
25
|
+
ko: _koKR["default"],
|
|
26
|
+
// 韩语
|
|
27
|
+
es: _esES["default"] // 西班牙语
|
|
28
|
+
};
|
|
29
|
+
var getLang = exports.getLang = function getLang() {
|
|
30
|
+
var lang = cookies.get('lang');
|
|
31
|
+
return lang !== 'cn' ? lang : 'zh-cn';
|
|
32
|
+
};
|
|
33
|
+
var _default = exports["default"] = mapLocale;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: react-router4.0的面包屑
|
|
3
|
+
group:
|
|
4
|
+
path: /
|
|
5
|
+
nav:
|
|
6
|
+
title: 组件
|
|
7
|
+
path: /components
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
### 安装和初始化
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
npm install @tddc/bread-crumb --save
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### 面包屑
|
|
17
|
+
|
|
18
|
+
```jsx
|
|
19
|
+
import React, { memo } from 'react';
|
|
20
|
+
import { createBrowserHistory } from 'history';
|
|
21
|
+
import { Router, Route, Switch } from 'react-router-dom';
|
|
22
|
+
import BreadCrumb from '@tddc/bread-crumb';
|
|
23
|
+
import Detail from '../Test/Detail';
|
|
24
|
+
import List from '../Test/List';
|
|
25
|
+
|
|
26
|
+
const BreadCrumbDefault = BreadCrumb(
|
|
27
|
+
(props) => {
|
|
28
|
+
return (
|
|
29
|
+
<Switch>
|
|
30
|
+
<Route name="面包屑" path={`/components/bread-crumb`} exact component={Detail} />
|
|
31
|
+
<Route
|
|
32
|
+
name="组件总览"
|
|
33
|
+
component={List}
|
|
34
|
+
path="/components"
|
|
35
|
+
query={[{ token: 'parentToken' }]}
|
|
36
|
+
/>
|
|
37
|
+
</Switch>
|
|
38
|
+
);
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
// BreadCrumbCustom:(breadList)=>{
|
|
42
|
+
// console.log(breadList)
|
|
43
|
+
// return <div>{breadList?.map(v=>v?.name)}</div>
|
|
44
|
+
// },
|
|
45
|
+
// BreadCrumbPrototype:{
|
|
46
|
+
// separator:"->",
|
|
47
|
+
// className:"z-c-breadcrumb"
|
|
48
|
+
// }
|
|
49
|
+
},
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
export default memo(BreadCrumbDefault);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### 🚀 高阶组件
|
|
56
|
+
|
|
57
|
+
```javascript
|
|
58
|
+
BreadCrumb(
|
|
59
|
+
(props) => {
|
|
60
|
+
return (
|
|
61
|
+
<Switch>
|
|
62
|
+
<Route name="面包屑" path={`/components/bread-crumb`} exact component={Detail} />
|
|
63
|
+
<Route name="组件总览" component={List} path="/components" />
|
|
64
|
+
</Switch>
|
|
65
|
+
);
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
breadCrumbCustomName: ({ breadList, path }) => {
|
|
69
|
+
return 'aa';
|
|
70
|
+
},
|
|
71
|
+
// BreadCrumbCustom:(breadList)=>{
|
|
72
|
+
// console.log(breadList)
|
|
73
|
+
// return <div>{breadList?.map(v=>v?.name)}</div>
|
|
74
|
+
// },
|
|
75
|
+
// BreadCrumbPrototype:{
|
|
76
|
+
// separator:"->",
|
|
77
|
+
// className:"z-c-breadcrumb"
|
|
78
|
+
// }
|
|
79
|
+
},
|
|
80
|
+
);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
84
|
+
| ------------------- | ------------------------------------------ | --------------- | ------ |
|
|
85
|
+
| component | 子路由定义,可嵌套 | | |
|
|
86
|
+
| BreadCrumbCustom | 自定义面包屑 | (breadList)=>{} | null |
|
|
87
|
+
| BreadCrumbPrototype | 面包屑属性,同 antd 的 BreadCrumb 组件参数 | Object | {} |
|
|
88
|
+
| useCache | 开启缓存模式,记录页面跳转地址 | false | {} |
|
|
89
|
+
|
|
90
|
+
| Route 参数 | 说明 | 类型 | 默认值 |
|
|
91
|
+
| -------------- | ---------------------- | --------------------------- | ------ |
|
|
92
|
+
| query | 需要往下传递的参数 | | |
|
|
93
|
+
| routerItemHide | 当前页不需要展示面包屑 | (location)=>{} 或者 Boolean | false |
|
package/es/index.js
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _breadcrumb = _interopRequireDefault(require("tntd/es/breadcrumb"));
|
|
11
|
+
var _icon = _interopRequireDefault(require("tntd/es/icon"));
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _I18N = _interopRequireWildcard(require("./I18N"));
|
|
16
|
+
var _react = require("react");
|
|
17
|
+
var _LocaleReceiver = _interopRequireDefault(require("antd/es/locale-provider/LocaleReceiver"));
|
|
18
|
+
var _router = require("dva/router");
|
|
19
|
+
require("./index.less");
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
var searchToObject = function searchToObject(search) {
|
|
24
|
+
var pairs = search.substring(1).split('&');
|
|
25
|
+
var obj = {};
|
|
26
|
+
var pair;
|
|
27
|
+
var i;
|
|
28
|
+
for (i in pairs) {
|
|
29
|
+
if (pairs[i] === '') {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
pair = pairs[i].split('=');
|
|
33
|
+
// obj[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
|
|
34
|
+
obj[decodeURIComponent(pair[0])] = pair[1];
|
|
35
|
+
}
|
|
36
|
+
return obj;
|
|
37
|
+
};
|
|
38
|
+
var getParams = function getParams(params) {
|
|
39
|
+
var paramStr = '';
|
|
40
|
+
Object.keys(params).forEach(function (item) {
|
|
41
|
+
var tempParamStr = encodeURIComponent(params[item]);
|
|
42
|
+
if (paramStr === '') {
|
|
43
|
+
paramStr = "".concat(item, "=").concat(tempParamStr);
|
|
44
|
+
} else {
|
|
45
|
+
paramStr = "".concat(paramStr, "&").concat(item, "=").concat(tempParamStr);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return paramStr;
|
|
49
|
+
};
|
|
50
|
+
var _flatten = function flatten(arr) {
|
|
51
|
+
var _arr$props;
|
|
52
|
+
var res = [];
|
|
53
|
+
var curArr = arr == null ? void 0 : (_arr$props = arr.props) == null ? void 0 : _arr$props.children;
|
|
54
|
+
for (var i = 0, length = curArr == null ? void 0 : curArr.length; i < length; i++) {
|
|
55
|
+
var _curArr$i, _curArr$i$props;
|
|
56
|
+
if (Array.isArray((_curArr$i = curArr[i]) == null ? void 0 : (_curArr$i$props = _curArr$i.props) == null ? void 0 : _curArr$i$props.children)) {
|
|
57
|
+
res = res.concat(_flatten(curArr[i]));
|
|
58
|
+
} else {
|
|
59
|
+
var _curArr$i2;
|
|
60
|
+
res.push((_curArr$i2 = curArr[i]) == null ? void 0 : _curArr$i2.props);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return res;
|
|
64
|
+
};
|
|
65
|
+
var _default = exports["default"] = function _default(WrapperComponent, rest) {
|
|
66
|
+
var _ref = rest || {},
|
|
67
|
+
useMemory = _ref.useMemory,
|
|
68
|
+
memoryHandle = _ref.memoryHandle,
|
|
69
|
+
useCache = _ref.useCache,
|
|
70
|
+
_ref$defaultSearch = _ref.defaultSearch,
|
|
71
|
+
defaultSearch = _ref$defaultSearch === void 0 ? ['currentTab', 'current'] : _ref$defaultSearch,
|
|
72
|
+
BreadCrumbCustom = _ref.BreadCrumbCustom,
|
|
73
|
+
breadCrumbCustomName = _ref.breadCrumbCustomName,
|
|
74
|
+
_ref$BreadCrumbProtot = _ref.BreadCrumbPrototype,
|
|
75
|
+
BreadCrumbPrototype = _ref$BreadCrumbProtot === void 0 ? {} : _ref$BreadCrumbProtot,
|
|
76
|
+
showHeader = _ref.showHeader,
|
|
77
|
+
forceNoHeader = _ref.forceNoHeader,
|
|
78
|
+
lang = _ref.lang,
|
|
79
|
+
version = _ref.version,
|
|
80
|
+
locale = _ref.locale;
|
|
81
|
+
var breadCacheList = [];
|
|
82
|
+
return (0, _router.withRouter)(function (props) {
|
|
83
|
+
var _ref2 = props || {},
|
|
84
|
+
match = _ref2.match,
|
|
85
|
+
location = _ref2.location,
|
|
86
|
+
separator = _ref2.separator;
|
|
87
|
+
var _ref3 = location || {},
|
|
88
|
+
pathname = _ref3.pathname,
|
|
89
|
+
search = _ref3.search;
|
|
90
|
+
var children = WrapperComponent(_objectSpread({}, props));
|
|
91
|
+
var _useState = (0, _react.useState)([]),
|
|
92
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
93
|
+
breadList = _useState2[0],
|
|
94
|
+
setBreadList = _useState2[1];
|
|
95
|
+
// 记录链接上需要保留的query参数
|
|
96
|
+
var searchObj = searchToObject(search);
|
|
97
|
+
var curVersion = version || localStorage.getItem('app_version') || 'v3';
|
|
98
|
+
var breadListRef = (0, _react.useRef)();
|
|
99
|
+
breadListRef.current = (0, _react.useMemo)(function () {
|
|
100
|
+
return breadList;
|
|
101
|
+
}, [breadList]);
|
|
102
|
+
var watchReplaceState = function watchReplaceState(e) {
|
|
103
|
+
var _e$arguments;
|
|
104
|
+
var newBread = (breadListRef.current || []).slice();
|
|
105
|
+
var url = e == null ? void 0 : (_e$arguments = e.arguments) == null ? void 0 : _e$arguments[2];
|
|
106
|
+
if (newBread != null && newBread.length && url) {
|
|
107
|
+
if (url !== newBread[(newBread == null ? void 0 : newBread.length) - 1].url) {
|
|
108
|
+
newBread[(newBread == null ? void 0 : newBread.length) - 1].url = url;
|
|
109
|
+
setBreadList(newBread);
|
|
110
|
+
breadCacheList = newBread;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
(0, _react.useEffect)(function () {
|
|
115
|
+
if (useCache) {
|
|
116
|
+
window.addEventListener('replaceState', watchReplaceState);
|
|
117
|
+
return function () {
|
|
118
|
+
window.removeEventListener('replaceState', watchReplaceState);
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}, [breadList, useCache]);
|
|
122
|
+
(0, _react.useEffect)(function () {
|
|
123
|
+
if (useCache && useMemory && (breadList == null ? void 0 : breadList.length) > 0) {
|
|
124
|
+
var _breadList$;
|
|
125
|
+
var localStorageKey = breadList == null ? void 0 : (_breadList$ = breadList[0]) == null ? void 0 : _breadList$.path;
|
|
126
|
+
if ((breadList == null ? void 0 : breadList.length) > 1) {
|
|
127
|
+
var _breadList$2;
|
|
128
|
+
if (breadList != null && (_breadList$2 = breadList[0]) != null && _breadList$2.path) {
|
|
129
|
+
var _breadList$slice, _breadList$slice$;
|
|
130
|
+
var lastKey = breadList == null ? void 0 : (_breadList$slice = breadList.slice(-1)) == null ? void 0 : (_breadList$slice$ = _breadList$slice[0]) == null ? void 0 : _breadList$slice$.url;
|
|
131
|
+
localStorage.setItem(localStorageKey, JSON.stringify((0, _defineProperty2["default"])({}, lastKey, breadList)));
|
|
132
|
+
}
|
|
133
|
+
} else {
|
|
134
|
+
localStorage.removeItem(localStorageKey);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}, [useCache, useMemory, breadList]);
|
|
138
|
+
(0, _react.useEffect)(function () {
|
|
139
|
+
if (!useCache) {
|
|
140
|
+
var _flatten2;
|
|
141
|
+
var routerArr = [];
|
|
142
|
+
(_flatten2 = _flatten(children)) == null ? void 0 : _flatten2.forEach(function (props) {
|
|
143
|
+
routerArr.push(_objectSpread({
|
|
144
|
+
path: props.path === '/' ? match == null ? void 0 : match.path : props.path,
|
|
145
|
+
name: props.name,
|
|
146
|
+
query: props.query
|
|
147
|
+
}, props.routerItemHide ? {
|
|
148
|
+
routerItemHide: props.routerItemHide
|
|
149
|
+
} : {}));
|
|
150
|
+
});
|
|
151
|
+
var breadCrumbList = [];
|
|
152
|
+
routerArr == null ? void 0 : routerArr.filter(function (routeObj) {
|
|
153
|
+
var _ref4 = routeObj || {},
|
|
154
|
+
path = _ref4.path;
|
|
155
|
+
var pathObj = (0, _router.matchPath)(pathname, {
|
|
156
|
+
path: path
|
|
157
|
+
});
|
|
158
|
+
if (pathObj) {
|
|
159
|
+
breadCrumbList.push(_objectSpread(_objectSpread({}, pathObj), routeObj || {}));
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
breadCrumbList.sort(function (a, b) {
|
|
163
|
+
return a.path.length - b.path.length;
|
|
164
|
+
});
|
|
165
|
+
breadCrumbList == null ? void 0 : breadCrumbList.map(function (item) {
|
|
166
|
+
var _item$query;
|
|
167
|
+
var querySet = new Set();
|
|
168
|
+
var curQuery = [];
|
|
169
|
+
(_item$query = item.query) == null ? void 0 : _item$query.map(function (item1) {
|
|
170
|
+
var curKey = Object.keys(item1)[0];
|
|
171
|
+
var sourceKey = Object.values(item1)[0];
|
|
172
|
+
curQuery.push(curKey + '=' + searchObj[sourceKey]);
|
|
173
|
+
querySet.add(curKey);
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
// const matched = matchPath(pathname, { path: item.path, exact: true });
|
|
177
|
+
if (defaultSearch != null && defaultSearch.length) {
|
|
178
|
+
defaultSearch.forEach(function (defaultKey) {
|
|
179
|
+
if (!querySet.has(defaultKey)) {
|
|
180
|
+
if (searchObj[defaultKey]) {
|
|
181
|
+
curQuery.push("".concat(defaultKey, "=").concat(searchObj[defaultKey]));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (curQuery != null && curQuery.length) {
|
|
187
|
+
item.url += '?' + curQuery.join('&');
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
setBreadList(breadCrumbList);
|
|
191
|
+
}
|
|
192
|
+
}, [pathname]);
|
|
193
|
+
(0, _react.useEffect)(function () {
|
|
194
|
+
var _flatten3;
|
|
195
|
+
var routerArr = [];
|
|
196
|
+
(_flatten3 = _flatten(children)) == null ? void 0 : _flatten3.forEach(function (props) {
|
|
197
|
+
routerArr.push(_objectSpread({
|
|
198
|
+
path: props.path === '/' ? match == null ? void 0 : match.path : props.path,
|
|
199
|
+
name: props.name,
|
|
200
|
+
query: props.query
|
|
201
|
+
}, props.routerItemHide ? {
|
|
202
|
+
routerItemHide: props.routerItemHide
|
|
203
|
+
} : {}));
|
|
204
|
+
});
|
|
205
|
+
if (useCache) {
|
|
206
|
+
if (pathname) {
|
|
207
|
+
var _routeSort$, _breadCacheList;
|
|
208
|
+
var curRoute = routerArr == null ? void 0 : routerArr.find(function (item) {
|
|
209
|
+
var matched = (0, _router.matchPath)(pathname, {
|
|
210
|
+
path: item.path,
|
|
211
|
+
exact: true
|
|
212
|
+
});
|
|
213
|
+
if (matched) {
|
|
214
|
+
return item;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
var routeSort = routerArr.sort(function (a, b) {
|
|
218
|
+
return a.path.length - b.path.length;
|
|
219
|
+
});
|
|
220
|
+
var href = pathname + search;
|
|
221
|
+
// 获取最原始的第一层级数据
|
|
222
|
+
var isIndex = (0, _router.matchPath)(pathname, {
|
|
223
|
+
path: routeSort == null ? void 0 : (_routeSort$ = routeSort[0]) == null ? void 0 : _routeSort$.path,
|
|
224
|
+
exact: true
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
// 如果在缓存中默认取
|
|
228
|
+
if (useMemory && useCache) {
|
|
229
|
+
var _routeSort$2;
|
|
230
|
+
var curStorageInfo = localStorage.getItem(routeSort == null ? void 0 : (_routeSort$2 = routeSort[0]) == null ? void 0 : _routeSort$2.path);
|
|
231
|
+
if (typeof curStorageInfo === 'string') {
|
|
232
|
+
curStorageInfo = JSON.parse(curStorageInfo);
|
|
233
|
+
if (curStorageInfo && curStorageInfo[href]) {
|
|
234
|
+
breadCacheList = curStorageInfo[href];
|
|
235
|
+
}
|
|
236
|
+
if (memoryHandle && typeof memoryHandle === 'function') {
|
|
237
|
+
breadCacheList = memoryHandle({
|
|
238
|
+
routeArr: routeSort,
|
|
239
|
+
href: href
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// 如果是第一层路由例如列表, 查看是否已经在缓存中了
|
|
246
|
+
var indexInfo = isIndex ? (_breadCacheList = breadCacheList) == null ? void 0 : _breadCacheList.find(function (item) {
|
|
247
|
+
return item.path === pathname;
|
|
248
|
+
}) : undefined;
|
|
249
|
+
if (isIndex && !search) {
|
|
250
|
+
breadCacheList = [_objectSpread(_objectSpread({}, curRoute), {}, {
|
|
251
|
+
url: href
|
|
252
|
+
})];
|
|
253
|
+
} else if (indexInfo) {
|
|
254
|
+
// 如果已经在缓存中了 则更新url 说明search发生变化
|
|
255
|
+
indexInfo.url = href;
|
|
256
|
+
} else {
|
|
257
|
+
var _breadCacheList2;
|
|
258
|
+
var hasIn = (_breadCacheList2 = breadCacheList) == null ? void 0 : _breadCacheList2.find(function (item) {
|
|
259
|
+
return item.url === href;
|
|
260
|
+
});
|
|
261
|
+
if (!hasIn) {
|
|
262
|
+
breadCacheList.push(_objectSpread(_objectSpread({}, curRoute), {}, {
|
|
263
|
+
url: href
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
try {
|
|
268
|
+
setBreadList(JSON.parse(JSON.stringify(breadCacheList)));
|
|
269
|
+
} catch (e) {
|
|
270
|
+
console.log('e', e);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}, [pathname, search, useCache]);
|
|
275
|
+
var onlyTwoLevels = (breadList == null ? void 0 : breadList.length) === 2;
|
|
276
|
+
var breadClick = function breadClick(breadIndex) {
|
|
277
|
+
if (useCache) {
|
|
278
|
+
var breadListTemp = (0, _toConsumableArray2["default"])(breadList);
|
|
279
|
+
breadListTemp.splice(breadIndex + 1);
|
|
280
|
+
breadCacheList = breadListTemp;
|
|
281
|
+
setBreadList(breadListTemp);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
// 当前隐藏
|
|
286
|
+
var hideCurrentBreadCrumb = (0, _react.useMemo)(function () {
|
|
287
|
+
if (breadList != null && breadList.length) {
|
|
288
|
+
var _breadList$slice2;
|
|
289
|
+
var curBread = ((_breadList$slice2 = breadList.slice(-1)) == null ? void 0 : _breadList$slice2[0]) || {};
|
|
290
|
+
if (typeof curBread.routerItemHide === 'function') {
|
|
291
|
+
return curBread.routerItemHide(location);
|
|
292
|
+
}
|
|
293
|
+
return curBread.routerItemHide;
|
|
294
|
+
}
|
|
295
|
+
}, [breadList]);
|
|
296
|
+
return /*#__PURE__*/React.createElement(_LocaleReceiver["default"], {
|
|
297
|
+
componentName: "TntdBreadCrumb"
|
|
298
|
+
}, function (locale, localeCode) {
|
|
299
|
+
var I18N = !!Object.keys(locale).length ? locale : _I18N["default"][localeCode] || _I18N["default"][(0, _I18N.getLang)()];
|
|
300
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, ((breadList == null ? void 0 : breadList.length) > 1 || showHeader) && !forceNoHeader && !hideCurrentBreadCrumb && /*#__PURE__*/React.createElement("div", {
|
|
301
|
+
className: "page-global-header bread-crumb-head ".concat(curVersion)
|
|
302
|
+
}, BreadCrumbCustom && !!(breadList != null && breadList.length) && BreadCrumbCustom(breadList, getParams(searchObj)), !(BreadCrumbCustom && BreadCrumbCustom(breadList)) && /*#__PURE__*/React.createElement(_breadcrumb["default"], (0, _extends2["default"])({
|
|
303
|
+
separator: !onlyTwoLevels ? separator || '>' : ' ',
|
|
304
|
+
className: "c-breadcrumb"
|
|
305
|
+
}, BreadCrumbPrototype || {}), breadList == null ? void 0 : breadList.map(function (bread, i) {
|
|
306
|
+
var url = bread.url;
|
|
307
|
+
var dom = bread == null ? void 0 : bread.name;
|
|
308
|
+
if (breadCrumbCustomName && typeof breadCrumbCustomName === 'function') {
|
|
309
|
+
dom = breadCrumbCustomName({
|
|
310
|
+
breadList: breadList,
|
|
311
|
+
level: i + 1,
|
|
312
|
+
path: url,
|
|
313
|
+
name: bread == null ? void 0 : bread.name,
|
|
314
|
+
pathInfo: bread
|
|
315
|
+
}) || dom;
|
|
316
|
+
}
|
|
317
|
+
if (onlyTwoLevels && i === 0) {
|
|
318
|
+
dom = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_icon["default"], {
|
|
319
|
+
type: "left",
|
|
320
|
+
className: "go-back"
|
|
321
|
+
}), I18N.src.index.fanHui);
|
|
322
|
+
}
|
|
323
|
+
return /*#__PURE__*/React.createElement(_breadcrumb["default"].Item, {
|
|
324
|
+
key: url
|
|
325
|
+
}, url && i !== (breadList == null ? void 0 : breadList.length) - 1 ? /*#__PURE__*/React.createElement(_router.Link, {
|
|
326
|
+
onClick: function onClick() {
|
|
327
|
+
breadClick(i);
|
|
328
|
+
},
|
|
329
|
+
to: url
|
|
330
|
+
}, dom) : dom);
|
|
331
|
+
}))), !!useCache && /*#__PURE__*/React.createElement("div", {
|
|
332
|
+
key: (location == null ? void 0 : location.pathname) + ((location == null ? void 0 : location.search) || '')
|
|
333
|
+
}, " ", children || null), !useCache && (children || null));
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
};
|
package/es/index.less
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.bread-crumb-head {
|
|
2
|
+
height: 40px;
|
|
3
|
+
padding: 0 20px;
|
|
4
|
+
line-height: 40px;
|
|
5
|
+
background: #fff;
|
|
6
|
+
border: none;
|
|
7
|
+
.h2 {
|
|
8
|
+
font-size: 14px;
|
|
9
|
+
}
|
|
10
|
+
.c-breadcrumb {
|
|
11
|
+
height: 40px;
|
|
12
|
+
line-height: 40px;
|
|
13
|
+
> span {
|
|
14
|
+
font-size: 14px;
|
|
15
|
+
}
|
|
16
|
+
.go-back {
|
|
17
|
+
margin-right: 2px;
|
|
18
|
+
}
|
|
19
|
+
.ant-breadcrumb-separator {
|
|
20
|
+
margin: 0 6px;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
.bread-crumb-body {
|
|
25
|
+
height: ~'calc(100vh - 90px)';
|
|
26
|
+
padding: 16px 20px;
|
|
27
|
+
overflow: auto;
|
|
28
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _index = _interopRequireDefault(require("../../.octopus/ar-EG/index.js"));
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
TntdBreadCrumb: _index["default"]
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _index = _interopRequireDefault(require("../../.octopus/en-US/index.js"));
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
TntdBreadCrumb: _index["default"]
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _index = _interopRequireDefault(require("../../.octopus/es-ES/index.js"));
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
TntdBreadCrumb: _index["default"]
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _index = _interopRequireDefault(require("../../.octopus/ko-KR/index.js"));
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
TntdBreadCrumb: _index["default"]
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _index = _interopRequireDefault(require("../../.octopus/th-TH/index.js"));
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
TntdBreadCrumb: _index["default"]
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _index = _interopRequireDefault(require("../../.octopus/zh-CN/index.js"));
|
|
9
|
+
var _default = exports["default"] = {
|
|
10
|
+
TntdBreadCrumb: _index["default"]
|
|
11
|
+
};
|