@bit-sun/business-component 2.4.30 → 2.4.31-alpha.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.
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const NoFoundPage: React.FC<{
3
+ closeCurrentTab?: () => void;
4
+ }>;
5
+ export default NoFoundPage;
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import cookie from 'js-cookie';
3
- import { message as message$1, Tooltip, Image, Popover, Card, Avatar, Space, Dropdown, Button, Checkbox, Menu, Input, Modal, Select, Form, Divider, Spin, Table, TreeSelect, Tag, InputNumber, Typography, Alert, Anchor, Breadcrumb, Drawer as Drawer$1, List, Tree, Row, Col, Tabs, Affix, Cascader, DatePicker, TimePicker, Switch } from 'antd';
3
+ import { message as message$1, Tooltip, Image, Popover, Card, Avatar, Space, Dropdown, Button, Checkbox, Menu, Input, Modal, Select, Form, Divider, Spin, Table, TreeSelect, Tag, InputNumber, Typography, Alert, Anchor, Breadcrumb, Drawer as Drawer$1, List, Tree, Row, Col, Result, Tabs, Affix, Cascader, DatePicker, TimePicker, Switch } from 'antd';
4
4
  import _, { omit, debounce, cloneDeep as cloneDeep$1, throttle, isEmpty } from 'lodash';
5
5
  import { formatMessage, history, useLocation, Link, useModel, useIntl } from 'umi';
6
6
  import isEqual from 'lodash/isEqual';
@@ -16489,6 +16489,27 @@ var CustomerMenuHeader = function CustomerMenuHeader(_ref) {
16489
16489
  var css_248z$m = ".customer_menu_content {\n color: #b1bad4;\n background: #141620;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n height: 40px;\n border-bottom: 1px solid #3d4047;\n}\n.customer_menu_content .ant-btn-link {\n color: #b1bad4 !important;\n font-size: 16px;\n height: 36px;\n}\n.menu_item {\n line-height: 30px;\n height: 30px;\n color: rgba(44, 47, 46);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.link_style:hover {\n background-color: #e4e7ed;\n cursor: pointer;\n color: #1890ff;\n}\n.sub_menu_content {\n box-shadow: 2px 0px 4px 0px rgba(185, 185, 185, 0.5);\n position: fixed;\n top: 50px;\n left: 140px;\n width: 200px;\n height: 100%;\n background-color: #fff;\n padding-top: 10px;\n z-index: 9999;\n}\n.tab_left_operate {\n display: flex;\n height: 28px;\n align-items: center;\n}\n.tab_left_operate > div {\n width: 28px;\n font-size: 12px;\n color: #2C2F2ECC;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #E4E4E4;\n background-color: #fff;\n cursor: pointer;\n}\n.tab_left_operate > div:last-child {\n box-shadow: 2px -2px 4px 0px rgba(185, 185, 185, 0.9);\n z-index: 99;\n}\n.tab_right_operate {\n height: 28px;\n width: 28px;\n font-size: 12px;\n color: #2C2F2ECC;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #E4E4E4;\n background-color: #fff;\n box-shadow: -2px -2px 4px 0px rgba(185, 185, 185, 0.9);\n z-index: 99;\n cursor: pointer;\n position: relative;\n}\n";
16490
16490
  styleInject(css_248z$m);
16491
16491
 
16492
+ /*
16493
+ * @Date: 2022-04-01 15:42:51
16494
+ * @LastEditors: 追随
16495
+ * @LastEditTime: 2022-09-16 20:53:23
16496
+ */
16497
+ var NoFoundPage = function NoFoundPage(props) {
16498
+ return /*#__PURE__*/React$1.createElement("div", {
16499
+ style: {
16500
+ height: 'calc(100vh - 88px)',
16501
+ background: '#fff',
16502
+ display: 'flex',
16503
+ justifyContent: 'center',
16504
+ alignItems: 'center'
16505
+ }
16506
+ }, /*#__PURE__*/React$1.createElement(Result, {
16507
+ status: "404",
16508
+ title: "404",
16509
+ subTitle: /*#__PURE__*/React$1.createElement("div", null, /*#__PURE__*/React$1.createElement("div", null, "\u62B1\u6B49\uFF0C\u65E0\u6CD5\u8BBF\u95EE\u8BE5\u9875\u9762\uFF01"), /*#__PURE__*/React$1.createElement("div", null, "\u8BF7\u5173\u95ED\u5F53\u524D\u9875\u7B7E"))
16510
+ }));
16511
+ };
16512
+
16492
16513
  var _excluded$g = ["route"];
16493
16514
  var TabPane = Tabs.TabPane;
16494
16515
  var UN_LISTTEN_DRP;
@@ -16703,22 +16724,38 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
16703
16724
  _this.updateTree = function (Tree) {
16704
16725
  var treeData = Tree;
16705
16726
  var treeList = [];
16727
+ var limitedMenuData = localStorage.getItem(getLimitMenuDataKey()) ? JSON.parse(localStorage.getItem(getLimitMenuDataKey())) : [];
16728
+ var menuKeys = [];
16729
+ var getLimitedMenuKeys = function getLimitedMenuKeys(data) {
16730
+ data.forEach(function (item) {
16731
+ if (item.children && item.children.length > 0) {
16732
+ getLimitedMenuKeys(item.children);
16733
+ } else {
16734
+ menuKeys.push(item.path.replace(/^\/\w+\//, '/'));
16735
+ }
16736
+ });
16737
+ };
16738
+ getLimitedMenuKeys(limitedMenuData);
16706
16739
  // 递归获取树列表
16707
16740
  var getTreeList = function getTreeList(data) {
16708
16741
  data.forEach(function (node) {
16709
16742
  if (node.routes && node.routes.length > 0) {
16710
16743
  getTreeList(node.routes);
16711
16744
  } else {
16712
- treeList.push({
16713
- tab: node.locale,
16714
- key: node.path,
16715
- locale: node.locale,
16716
- closable: true,
16717
- content: node.component,
16718
- name: node.name,
16719
- hideInMenu: node.hideInMenu,
16720
- isOnlyOnePage: node.isOnlyOnePage
16721
- });
16745
+ if (node.path === '/' || menuKeys.some(function (item) {
16746
+ return (node.path || '').includes(item);
16747
+ })) {
16748
+ treeList.push({
16749
+ tab: node.locale,
16750
+ key: node.path,
16751
+ locale: node.locale,
16752
+ closable: true,
16753
+ content: node.component,
16754
+ name: node.name,
16755
+ hideInMenu: node.hideInMenu,
16756
+ isOnlyOnePage: node.isOnlyOnePage
16757
+ });
16758
+ }
16722
16759
  }
16723
16760
  });
16724
16761
  };
@@ -16775,7 +16812,6 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
16775
16812
  return moment$1(timeStr).add(8, 'hours').format(format) || '- -';
16776
16813
  };
16777
16814
  _this.onChange = function (key) {
16778
- // console.log('onChange');
16779
16815
  if (key !== _this.state.activeKey) {
16780
16816
  _this.setState({
16781
16817
  activeKey: key
@@ -17185,20 +17221,15 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
17185
17221
  }
17186
17222
  if (!listenRouterKey.includes(currentKey)) {
17187
17223
  if (!replaceRouter) {
17188
- var _routerArray$filter;
17189
- replaceRouter = (_routerArray$filter = routerArray.filter(function (itemroute) {
17190
- return itemroute.key === '/404';
17191
- })) === null || _routerArray$filter === void 0 ? void 0 : _routerArray$filter[0];
17192
- _this2.setState({
17193
- listenRouterState: [].concat(_toConsumableArray(listenRouterState), [_objectSpread2(_objectSpread2({}, replaceRouter), {}, {
17194
- key: currentKey,
17195
- tab: '404'
17196
- })]),
17197
- activeKey: currentKey,
17198
- listenRouterKey: [].concat(_toConsumableArray(listenRouterKey), [currentKey])
17199
- }, function () {
17200
- _this2.checkisNavSlide();
17201
- });
17224
+ replaceRouter = {
17225
+ content: currentKey,
17226
+ key: currentKey,
17227
+ name: '404',
17228
+ tab: '404',
17229
+ isNotFound: true
17230
+ };
17231
+ newListenRouterState = [].concat(_toConsumableArray(newListenRouterState), [_objectSpread2({}, replaceRouter)]);
17232
+ newListenRouterKey = [].concat(_toConsumableArray(listenRouterKey), [currentKey]);
17202
17233
  } else {
17203
17234
  var match = matchPath(route.pathname, {
17204
17235
  path: replaceRouter.key
@@ -17716,8 +17747,7 @@ var WrapperComponent = /*#__PURE__*/function (_React$Component) {
17716
17747
  getDictionaryTextByValue = _this$props4.getDictionaryTextByValue,
17717
17748
  timeFormat = _this$props4.timeFormat,
17718
17749
  transparentProps = _this$props4.transparentProps;
17719
- console.log('child wrapper conpent', this.props);
17720
- return /*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement(item.content, _objectSpread2(_objectSpread2(_objectSpread2({
17750
+ return /*#__PURE__*/React$1.createElement(React$1.Fragment, null, item.isNotFound ? ( /*#__PURE__*/React$1.createElement(NoFoundPage, null)) : /*#__PURE__*/React$1.createElement(item.content, _objectSpread2(_objectSpread2(_objectSpread2({
17721
17751
  getDictionarySource: getDictionarySource,
17722
17752
  getDictionaryTextByValue: getDictionaryTextByValue,
17723
17753
  timeFormat: timeFormat
package/dist/index.js CHANGED
@@ -16509,6 +16509,27 @@ var CustomerMenuHeader = function CustomerMenuHeader(_ref) {
16509
16509
  var css_248z$m = ".customer_menu_content {\n color: #b1bad4;\n background: #141620;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n height: 40px;\n border-bottom: 1px solid #3d4047;\n}\n.customer_menu_content .ant-btn-link {\n color: #b1bad4 !important;\n font-size: 16px;\n height: 36px;\n}\n.menu_item {\n line-height: 30px;\n height: 30px;\n color: rgba(44, 47, 46);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.link_style:hover {\n background-color: #e4e7ed;\n cursor: pointer;\n color: #1890ff;\n}\n.sub_menu_content {\n box-shadow: 2px 0px 4px 0px rgba(185, 185, 185, 0.5);\n position: fixed;\n top: 50px;\n left: 140px;\n width: 200px;\n height: 100%;\n background-color: #fff;\n padding-top: 10px;\n z-index: 9999;\n}\n.tab_left_operate {\n display: flex;\n height: 28px;\n align-items: center;\n}\n.tab_left_operate > div {\n width: 28px;\n font-size: 12px;\n color: #2C2F2ECC;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #E4E4E4;\n background-color: #fff;\n cursor: pointer;\n}\n.tab_left_operate > div:last-child {\n box-shadow: 2px -2px 4px 0px rgba(185, 185, 185, 0.9);\n z-index: 99;\n}\n.tab_right_operate {\n height: 28px;\n width: 28px;\n font-size: 12px;\n color: #2C2F2ECC;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #E4E4E4;\n background-color: #fff;\n box-shadow: -2px -2px 4px 0px rgba(185, 185, 185, 0.9);\n z-index: 99;\n cursor: pointer;\n position: relative;\n}\n";
16510
16510
  styleInject(css_248z$m);
16511
16511
 
16512
+ /*
16513
+ * @Date: 2022-04-01 15:42:51
16514
+ * @LastEditors: 追随
16515
+ * @LastEditTime: 2022-09-16 20:53:23
16516
+ */
16517
+ var NoFoundPage = function NoFoundPage(props) {
16518
+ return /*#__PURE__*/React__default['default'].createElement("div", {
16519
+ style: {
16520
+ height: 'calc(100vh - 88px)',
16521
+ background: '#fff',
16522
+ display: 'flex',
16523
+ justifyContent: 'center',
16524
+ alignItems: 'center'
16525
+ }
16526
+ }, /*#__PURE__*/React__default['default'].createElement(antd.Result, {
16527
+ status: "404",
16528
+ title: "404",
16529
+ subTitle: /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("div", null, "\u62B1\u6B49\uFF0C\u65E0\u6CD5\u8BBF\u95EE\u8BE5\u9875\u9762\uFF01"), /*#__PURE__*/React__default['default'].createElement("div", null, "\u8BF7\u5173\u95ED\u5F53\u524D\u9875\u7B7E"))
16530
+ }));
16531
+ };
16532
+
16512
16533
  var _excluded$g = ["route"];
16513
16534
  var TabPane = antd.Tabs.TabPane;
16514
16535
  var UN_LISTTEN_DRP;
@@ -16723,22 +16744,38 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
16723
16744
  _this.updateTree = function (Tree) {
16724
16745
  var treeData = Tree;
16725
16746
  var treeList = [];
16747
+ var limitedMenuData = localStorage.getItem(getLimitMenuDataKey()) ? JSON.parse(localStorage.getItem(getLimitMenuDataKey())) : [];
16748
+ var menuKeys = [];
16749
+ var getLimitedMenuKeys = function getLimitedMenuKeys(data) {
16750
+ data.forEach(function (item) {
16751
+ if (item.children && item.children.length > 0) {
16752
+ getLimitedMenuKeys(item.children);
16753
+ } else {
16754
+ menuKeys.push(item.path.replace(/^\/\w+\//, '/'));
16755
+ }
16756
+ });
16757
+ };
16758
+ getLimitedMenuKeys(limitedMenuData);
16726
16759
  // 递归获取树列表
16727
16760
  var getTreeList = function getTreeList(data) {
16728
16761
  data.forEach(function (node) {
16729
16762
  if (node.routes && node.routes.length > 0) {
16730
16763
  getTreeList(node.routes);
16731
16764
  } else {
16732
- treeList.push({
16733
- tab: node.locale,
16734
- key: node.path,
16735
- locale: node.locale,
16736
- closable: true,
16737
- content: node.component,
16738
- name: node.name,
16739
- hideInMenu: node.hideInMenu,
16740
- isOnlyOnePage: node.isOnlyOnePage
16741
- });
16765
+ if (node.path === '/' || menuKeys.some(function (item) {
16766
+ return (node.path || '').includes(item);
16767
+ })) {
16768
+ treeList.push({
16769
+ tab: node.locale,
16770
+ key: node.path,
16771
+ locale: node.locale,
16772
+ closable: true,
16773
+ content: node.component,
16774
+ name: node.name,
16775
+ hideInMenu: node.hideInMenu,
16776
+ isOnlyOnePage: node.isOnlyOnePage
16777
+ });
16778
+ }
16742
16779
  }
16743
16780
  });
16744
16781
  };
@@ -16795,7 +16832,6 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
16795
16832
  return moment__default['default'](timeStr).add(8, 'hours').format(format) || '- -';
16796
16833
  };
16797
16834
  _this.onChange = function (key) {
16798
- // console.log('onChange');
16799
16835
  if (key !== _this.state.activeKey) {
16800
16836
  _this.setState({
16801
16837
  activeKey: key
@@ -17205,20 +17241,15 @@ var BasicLayout = /*#__PURE__*/function (_React$PureComponent) {
17205
17241
  }
17206
17242
  if (!listenRouterKey.includes(currentKey)) {
17207
17243
  if (!replaceRouter) {
17208
- var _routerArray$filter;
17209
- replaceRouter = (_routerArray$filter = routerArray.filter(function (itemroute) {
17210
- return itemroute.key === '/404';
17211
- })) === null || _routerArray$filter === void 0 ? void 0 : _routerArray$filter[0];
17212
- _this2.setState({
17213
- listenRouterState: [].concat(_toConsumableArray(listenRouterState), [_objectSpread2(_objectSpread2({}, replaceRouter), {}, {
17214
- key: currentKey,
17215
- tab: '404'
17216
- })]),
17217
- activeKey: currentKey,
17218
- listenRouterKey: [].concat(_toConsumableArray(listenRouterKey), [currentKey])
17219
- }, function () {
17220
- _this2.checkisNavSlide();
17221
- });
17244
+ replaceRouter = {
17245
+ content: currentKey,
17246
+ key: currentKey,
17247
+ name: '404',
17248
+ tab: '404',
17249
+ isNotFound: true
17250
+ };
17251
+ newListenRouterState = [].concat(_toConsumableArray(newListenRouterState), [_objectSpread2({}, replaceRouter)]);
17252
+ newListenRouterKey = [].concat(_toConsumableArray(listenRouterKey), [currentKey]);
17222
17253
  } else {
17223
17254
  var match = matchPath(route.pathname, {
17224
17255
  path: replaceRouter.key
@@ -17736,8 +17767,7 @@ var WrapperComponent = /*#__PURE__*/function (_React$Component) {
17736
17767
  getDictionaryTextByValue = _this$props4.getDictionaryTextByValue,
17737
17768
  timeFormat = _this$props4.timeFormat,
17738
17769
  transparentProps = _this$props4.transparentProps;
17739
- console.log('child wrapper conpent', this.props);
17740
- return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(item.content, _objectSpread2(_objectSpread2(_objectSpread2({
17770
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, item.isNotFound ? ( /*#__PURE__*/React__default['default'].createElement(NoFoundPage, null)) : /*#__PURE__*/React__default['default'].createElement(item.content, _objectSpread2(_objectSpread2(_objectSpread2({
17741
17771
  getDictionarySource: getDictionarySource,
17742
17772
  getDictionaryTextByValue: getDictionaryTextByValue,
17743
17773
  timeFormat: timeFormat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-sun/business-component",
3
- "version": "2.4.30",
3
+ "version": "2.4.31-alpha.0",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -45,6 +45,8 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
45
45
  import ENUM from '@/utils/enumConfig';
46
46
  import { memoizeOneFormatter } from '@/utils/utils';
47
47
  import Item from 'antd/lib/list/Item';
48
+ import { getLimitMenuDataKey } from '@/utils';
49
+ import NoFoundPage from '@/components/Functional/AccessWrapper';
48
50
 
49
51
  const { TabPane } = Tabs;
50
52
 
@@ -420,24 +422,23 @@ class BasicLayout extends React.PureComponent {
420
422
  }
421
423
 
422
424
  if (!listenRouterKey.includes(currentKey)) {
425
+
423
426
  if (!replaceRouter) {
424
- replaceRouter = routerArray.filter(
425
- (itemroute) => itemroute.key === '/404',
426
- )?.[0];
427
+ replaceRouter = {
428
+ content: currentKey,
429
+ key: currentKey,
430
+ name:'404',
431
+ tab: '404',
432
+ isNotFound: true,
433
+ }
427
434
 
428
- this.setState(
435
+ newListenRouterState = [
436
+ ...newListenRouterState,
429
437
  {
430
- listenRouterState: [
431
- ...listenRouterState,
432
- { ...replaceRouter, key: currentKey, tab: '404' },
433
- ],
434
- activeKey: currentKey,
435
- listenRouterKey: [...listenRouterKey, currentKey],
436
- },
437
- () => {
438
- this.checkisNavSlide();
438
+ ...replaceRouter,
439
439
  },
440
- );
440
+ ];
441
+ newListenRouterKey = [...listenRouterKey, currentKey];
441
442
  } else {
442
443
  const match = matchPath(route.pathname, { path: replaceRouter.key }, pathToRegexp);
443
444
  newListenRouterState = [
@@ -543,22 +544,39 @@ class BasicLayout extends React.PureComponent {
543
544
  updateTree = (Tree) => {
544
545
  const treeData = Tree;
545
546
  const treeList = [];
547
+
548
+ const limitedMenuData = localStorage.getItem(getLimitMenuDataKey()) ? JSON.parse(localStorage.getItem(getLimitMenuDataKey())) : [];
549
+
550
+ const menuKeys = [];
551
+ const getLimitedMenuKeys = (data) => {
552
+ data.forEach((item) => {
553
+ if (item.children && item.children.length > 0) {
554
+ getLimitedMenuKeys(item.children);
555
+ } else {
556
+ menuKeys.push(item.path.replace(/^\/\w+\//, '/'));
557
+ }
558
+ });
559
+ };
560
+ getLimitedMenuKeys(limitedMenuData);
561
+
546
562
  // 递归获取树列表
547
563
  const getTreeList = (data) => {
548
564
  data.forEach((node) => {
549
565
  if (node.routes && node.routes.length > 0) {
550
566
  getTreeList(node.routes);
551
567
  } else {
552
- treeList.push({
553
- tab: node.locale,
554
- key: node.path,
555
- locale: node.locale,
556
- closable: true,
557
- content: node.component,
558
- name: node.name,
559
- hideInMenu: node.hideInMenu,
560
- isOnlyOnePage: node.isOnlyOnePage,
561
- });
568
+ if (node.path === '/' || menuKeys.some(item => (node.path || '').includes(item))) {
569
+ treeList.push({
570
+ tab: node.locale,
571
+ key: node.path,
572
+ locale: node.locale,
573
+ closable: true,
574
+ content: node.component,
575
+ name: node.name,
576
+ hideInMenu: node.hideInMenu,
577
+ isOnlyOnePage: node.isOnlyOnePage,
578
+ });
579
+ }
562
580
  }
563
581
  });
564
582
  };
@@ -636,7 +654,6 @@ class BasicLayout extends React.PureComponent {
636
654
  };
637
655
 
638
656
  onChange = (key) => {
639
- // console.log('onChange');
640
657
  if (key !== this.state.activeKey) {
641
658
  this.setState({
642
659
  activeKey: key,
@@ -1452,10 +1469,10 @@ class WrapperComponent extends React.Component {
1452
1469
  timeFormat,
1453
1470
  transparentProps,
1454
1471
  } = this.props;
1455
- console.log('child wrapper conpent', this.props)
1456
1472
  return (
1457
1473
  <>
1458
- {React.createElement(item.content, {
1474
+ {item.isNotFound ? ( <NoFoundPage />) :
1475
+ React.createElement(item.content, {
1459
1476
  getDictionarySource: getDictionarySource,
1460
1477
  getDictionaryTextByValue: getDictionaryTextByValue,
1461
1478
  timeFormat: timeFormat,
@@ -0,0 +1,34 @@
1
+ /*
2
+ * @Date: 2022-04-01 15:42:51
3
+ * @LastEditors: 追随
4
+ * @LastEditTime: 2022-09-16 20:53:23
5
+ */
6
+ import { Button, Result } from 'antd';
7
+ import React from 'react';
8
+
9
+ const NoFoundPage: React.FC<{
10
+ closeCurrentTab?: () => void;
11
+ }> = (props) => (
12
+ <div
13
+ style={{
14
+ height: 'calc(100vh - 88px)',
15
+ background: '#fff',
16
+ display: 'flex',
17
+ justifyContent: 'center',
18
+ alignItems: 'center',
19
+ }}
20
+ >
21
+ <Result
22
+ status="404"
23
+ title="404"
24
+ subTitle={
25
+ <div>
26
+ <div>抱歉,无法访问该页面!</div>
27
+ <div>请关闭当前页签</div>
28
+ </div>
29
+ }
30
+ />
31
+ </div>
32
+ );
33
+
34
+ export default NoFoundPage;