Commit 72ee8940 by 郑永杰
2 parents c72a9c80 a229f795
......@@ -8361,6 +8361,11 @@
}
}
},
"loading-bar": {
"version": "0.2.7",
"resolved": "http://47.107.176.206:8089/repository/xbdnpm/loading-bar/-/loading-bar-0.2.7.tgz",
"integrity": "sha512-LFCwLHDPZAHneBg/0bQL9lkqS+eiB1DYkRkpIFHxsodkc5auZJW30/Q1bW+KVhSsJneY/pghr9EO5SggI66u6Q=="
},
"locate-path": {
"version": "3.0.0",
"resolved": "http://47.107.176.206:8089/repository/xbdnpm/locate-path/-/locate-path-3.0.0.tgz",
......
......@@ -10,6 +10,7 @@
"@testing-library/user-event": "^7.2.1",
"antd": "^4.4.2",
"axios": "^0.19.2",
"loading-bar": "^0.2.7",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-redux": "^7.2.0",
......
import http from '@/libs/fetch'
export const getMenu = () => {
return http.request({
url: '/user/sysLogin/getMenu',
params: { applyPlatform: 0, applyCarrier: 0, productId: 100005 }
})
}
\ No newline at end of file
import React, { useState, useEffect } from 'react'
import { NavLink } from 'react-router-dom'
import { NavLink, useLocation } from 'react-router-dom'
import { Layout, Menu } from 'antd'
import { getAllRouter } from '@/libs/utilts'
import { APP } from '../../config'
......@@ -16,9 +16,10 @@ const Item = ({url, children, ...props}) => {
)
}
const Page = ({ children, userRoute = [], location }) => {
const Page = ({ children, userRoute = [] }) => {
const [collapsed, setCollapsed] = useState(false)
const [index, setIdex] = useState([])
const location = useLocation()
const onCollapse = () => setCollapsed(!collapsed)
......
......@@ -8,7 +8,7 @@ const USER_CONFIG = {
const APP = {
/** @description token存储的名称 */
tokenName: 'token',
tokenName: 'sessionid',
/** @description token在存储的时长,默认无操作后的30分钟。0 表示关闭浏览器即删除。单位 秒 */
tokenExpires: 0,
/** @description token使用的存储类型,可选值: coookie, session, 默认值是session*/
......
......@@ -4,7 +4,10 @@ import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import 'antd/dist/antd.css';
import { init } from 'loading-bar'
import 'loading-bar/src/index.css'
init()
ReactDOM.render(
<App />,
document.getElementById('root')
......
......@@ -135,7 +135,7 @@ class HttpRequest {
saveLoginInfo(jwt, sessionid, vid, data) {
data = JSON.parse(data)
const { applyCarrier, applyPlatform } = data
store.commit('SYSTEM_LOGIN', { jwt , sessionid, vid, applyCarrier, applyPlatform})
store.commit('SYSTEM_LOGIN', { jwt, sessionid, vid, applyCarrier, applyPlatform })
}
}
......
import React from 'react'
import { show, hide } from 'loading-bar'
// 路由守卫
export const Guards = (Page) => {
return class extends React.Component {
/** 进入页面 */
componentDidMount() {
hide()
}
/** 离开页面 */
componentWillUnmount() {
show()
}
render() {
return <Page {...this.props} />
}
}
}
\ No newline at end of file
......@@ -5,6 +5,6 @@ export default [
{
url: '/404',
exact,
component: loadable(() => import('@/view/error/404'))
component: loadable(() => import('@/view/error/404')) // 懒加载
}
]
\ No newline at end of file
import React, { useState, useEffect } from 'react'
import Layout from '@/components/Layout'
import { Switch, Route } from 'react-router-dom'
import { Switch, Route, useHistory } from 'react-router-dom'
import { Guards } from './guards'
import { APP } from '@/config'
import connect from '../store/modules/route/connect'
import { getAllRouter } from '../libs/utilts'
import { getToken } from 'xbd-cookie'
import Layout from '@/components/Layout'
import { show, hide } from 'loading-bar'
import http from '@/libs/fetch'
import { getMenu } from '@/api/user'
import { Modal } from 'antd'
import error401 from "@/view/error/401"
import error404 from "@/view/error/404"
import fullScreenRoute from './modules/fullScreenRoute'
/** 获取全部路由的路径 */
const getAllRouterName = route => route.map(e => e.url)
const RouterView = ({basisRoute = [], serviceRoute = [], userRoute = [], userSatatus }) => {
/** 路由视图 */
const RouterView = ({basisRoute = [], serviceRoute = [], userRoute = [], userSatatus, SYSTEM_LOGIN}) => {
const [openRoute, setOpenRoute] = useState([])
const history = useHistory()
useEffect(() => {
// 二级路由转一级路由
......@@ -38,27 +49,44 @@ const RouterView = ({basisRoute = [], serviceRoute = [], userRoute = [], userSat
})
setOpenRoute(newRoutes)
}, [userRoute, serviceRoute])
useEffect(() => {
const token = getToken()
if (userSatatus)
return
else if (token) {
show()
http.setHeader('sessionid', token)
getMenu()
.then(res => {
hide()
SYSTEM_LOGIN(res)
})
.catch(err => {
hide()
Modal.error({ title: '错误', content: err, onOk: () => history.replace('/login') })
})
} else
history.replace('/login')
}, [])
return (
<>
{
!userSatatus?(
{userSatatus ?
<Layout>
<Switch>
{
fullScreenRoute.map(val => <Route key={val.url} path={val.url} exact={val.exact} component={val.component} />)
}
{basisRoute.map(e => <Route path={e.url} exact={e.exact} component={Guards(e.component)} key={e.url} />)}
{openRoute.map(e => <Route path={e.url} exact={e.exact} component={Guards(e.component)} key={e.url} />)}
<Route component={error401} />
</Switch>
):(
<Switch>
{/* <Route path="/login" component={Login}></Route> */}
<Layout>
{basisRoute.map(e => <Route path={e.url} exact={e.exact} component={e.component} key={e.url} />)}
{openRoute.map(e => <Route path={e.url} exact={e.exact} component={e.component} key={e.url} />)}
</Layout>
:
<Switch>
{fullScreenRoute.map(e => <Route path={e.url} exact={e.exact} component={Guards(e.component)} key={e.url} />)}
<Route component={error404} />
</Switch>
)
}
</>
)
......
......@@ -7,7 +7,11 @@ const mapState = state => ({
const mapDispatch = dispatch => ({
add: route => dispatch.route.add(route),
change: route => dispatch.route.change(route)
change: route => dispatch.route.change(route),
SYSTEM_LOGIN: res =>{
dispatch.user.SYSTEM_LOGIN(res)
dispatch.route.change(res.menu)
}
})
......
[
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_64550acb-11b8-441d-a459-94bb65718fb1.png",
"id": 247,
"name": "店铺设置",
"opsResources": [],
"parentId": 244,
"position": 1,
"resourceId": "105",
"url": "/goodsOrderedManage/storeManagement"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_ed0326df-4f19-4a6a-b3e5-95450dab4ec2.png",
"id": 245,
"name": "商品管理",
"opsResources": [],
"parentId": 244,
"position": 2,
"resourceId": "103",
"url": "/operationadmin/goodsManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "10",
"icon": "0_4b7b8aa1-2ed0-4b81-853e-0c20db3d1489.png",
"id": 256,
"name": "合作供应商管理",
"opsResources": [],
"parentId": 244,
"position": 3,
"resourceId": "122",
"url": "/operationadmin/supplierManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_2863bf1a-037a-40ae-81e9-5dd3ff0dbdaa.png",
"id": 265,
"name": "发货地址管理",
"opsResources": [],
"parentId": 244,
"position": 4,
"resourceId": "127",
"url": "/management/senderAddress"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_dc83f4e3-4dda-4481-b174-1a8e650b6c02.png",
"id": 246,
"name": "商品订单管理",
"opsResources": [],
"parentId": 244,
"position": 5,
"resourceId": "104",
"url": "/operationadmin/orderBackgroundManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "17",
"icon": "0_a5bd6cb6-3bc5-4863-99bc-e2af72299fad.jpg",
"id": 258,
"name": "客户发货管理",
"opsResources": [],
"parentId": 244,
"position": 6,
"resourceId": "124",
"url": "/operationadmin/customerDelivery"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "10",
"icon": "0_978390fd-8337-455a-929a-396effb33db2.png",
"id": 255,
"name": "发货订单管理",
"opsResources": [],
"parentId": 244,
"position": 7,
"resourceId": "121",
"url": "/operationadmin/shipmentsOrderManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "10",
"icon": "0_ece5f441-8a20-49e3-9b31-f923d368c801.png",
"id": 254,
"name": "发货订单查询",
"opsResources": [],
"parentId": 244,
"position": 8,
"resourceId": "120",
"url": "/operationadmin/shipmentsOrderSearch"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_5738428e-07bb-427e-82cc-e49cf03097ae.png",
"id": 283,
"name": "客户管理",
"opsResources": [],
"parentId": 244,
"position": 9,
"resourceId": "144",
"url": "/goodsOrderedManage/customerManage"
}
],
"code": "",
"icon": "0_5a279c04-9ff0-4c9c-a38c-c18981b07786.png",
"id": 244,
"name": "店铺管理",
"opsResources": [],
"parentId": 0,
"position": 2,
"resourceId": "",
"url": "/sellerService"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_97afd0eb-b86f-4b94-82a9-e5e81b0c1b11.png",
"id": 249,
"name": "渠道商管理",
"opsResources": [],
"parentId": 248,
"position": 1,
"resourceId": "115",
"url": "/channelManagement/customerManagement"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "11",
"icon": "0_0dfa6cd4-ff43-4fb7-9534-61e3664b210e.png",
"id": 250,
"name": "客户订单",
"opsResources": [],
"parentId": 248,
"position": 2,
"resourceId": "116",
"url": "/channelManagement/customerOrder"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_9290931a-308e-42a5-ad20-ac8e04474f78.png",
"id": 251,
"name": "我代理的商品",
"opsResources": [],
"parentId": 248,
"position": 3,
"resourceId": "117",
"url": "/channelManagement/myAgencyGoods"
}
],
"code": "",
"icon": "0_c5824f49-404a-465a-9322-82b9430efec0.png",
"id": 248,
"name": "渠道商管理",
"opsResources": [],
"parentId": 0,
"position": 3,
"resourceId": "",
"url": "channelManagement"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_e6a80e00-7dbf-4dd1-ad2f-2a0a957e5433.png",
"id": 269,
"name": "渠道商管理",
"opsResources": [],
"parentId": 268,
"position": 1,
"resourceId": "130",
"url": "/operationadmin/channelManagerManagement"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_cbe34bb5-e4eb-463a-b605-cc209d9a9606.png",
"id": 270,
"name": "佣金规则设置",
"opsResources": [],
"parentId": 268,
"position": 2,
"resourceId": "132",
"url": "/operationadmin/CommissionSetting"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "10",
"icon": "0_7e9f8516-9bbd-437a-a61d-4ab00633f5be.png",
"id": 271,
"name": "预售商品统计",
"opsResources": [],
"parentId": 268,
"position": 3,
"resourceId": "131",
"url": "/operationadmin/preSaleGoodsStatistics"
}
],
"code": "",
"icon": "0_2d1bb6db-a885-49c1-826f-ca0f462106c6.png",
"id": 268,
"name": "运营管理",
"opsResources": [],
"parentId": 0,
"position": 4,
"resourceId": "",
"url": "/operationadmin"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "",
"childMenus": [],
"code": "",
"icon": "",
"id": 115,
"name": "财务统计",
"opsResources": [],
"parentId": 114,
"position": 1,
"resourceId": "47",
"url": "/financialManagement/financialStatistics"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "",
"childMenus": [],
"code": "",
"icon": "",
"id": 116,
"name": "账务管理",
"opsResources": [],
"parentId": 114,
"position": 2,
"resourceId": "48",
"url": "/financialManagement/index"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "",
"childMenus": [],
"code": "",
"icon": "",
"id": 117,
"name": "账务审核",
"opsResources": [],
"parentId": 114,
"position": 3,
"resourceId": "49",
"url": "/financialManagement/financialAudit"
},
{
"appCode": "com.b2bwings.moneymanage.MoneyManageActivity",
"appIcon": "0_8cd36164-6a7c-429a-862a-3b1d79a585c1.png",
"applySubject": "1,0",
"childMenus": [],
"code": "",
"icon": "0_b6640e99-830c-4b80-8758-b7f6e6e90448.png",
"id": 118,
"name": "资金管理",
"opsResources": [],
"parentId": 114,
"position": 4,
"resourceId": "50",
"url": "/accountManage/fundsManage"
}
],
"code": "",
"icon": "0_f2f5ddb6-7614-4f20-be28-c26bab96407c.png",
"id": 114,
"name": "财务管理",
"opsResources": [],
"parentId": 0,
"position": 14,
"resourceId": "",
"url": "/financialManagement"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_a59fe89e-b503-4cd4-be11-d982f453e77b.png",
"id": 132,
"name": "员工管理",
"opsResources": [],
"parentId": 123,
"position": 7,
"resourceId": "66",
"url": "/baseManage/staffManagement"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_d5cc4305-bef4-4a54-b66f-af3837a893cb.png",
"id": 193,
"name": "权限管理",
"opsResources": [],
"parentId": 123,
"position": 8,
"resourceId": "82",
"url": "/baseManage/rightsManagement"
}
],
"code": "",
"icon": "0_3b982abb-0619-422f-9d70-f21b49f4cff9.png",
"id": 123,
"name": "基础信息管理",
"opsResources": [],
"parentId": 0,
"position": 16,
"resourceId": "",
"url": "/baseManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_1e34c4d6-2635-47ec-ac99-54ad8f5d19cc.png",
"id": 140,
"name": "模板管理",
"opsResources": [],
"parentId": 138,
"position": 1,
"resourceId": "51",
"url": "/messageCenter/templateManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_3f629efd-73f4-42fe-8c79-d5450d6d7f4d.png",
"id": 141,
"name": "消息模型管理",
"opsResources": [],
"parentId": 138,
"position": 2,
"resourceId": "52",
"url": "/messageCenter/messageModelManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_f7761d50-9727-462d-abdf-25eb774a371e.png",
"id": 142,
"name": "发送任务管理",
"opsResources": [],
"parentId": 138,
"position": 3,
"resourceId": "53",
"url": "/messageCenter/sendTaskManage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1",
"childMenus": [],
"code": "",
"icon": "0_6e3e2283-7816-491f-9b11-9ebd22a78f94.png",
"id": 194,
"name": "消息账户",
"opsResources": [],
"parentId": 138,
"position": 5,
"resourceId": "83",
"url": "/messageCenter/messageAccount"
}
],
"code": "",
"icon": "0_fdfc5a99-16c5-4d61-a76a-6b4e191aec16.png",
"id": 138,
"name": "消息中心",
"opsResources": [],
"parentId": 0,
"position": 17,
"resourceId": "",
"url": "/messageCenter"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [
{
"appCode": "",
"appIcon": "",
"applySubject": "1,0",
"childMenus": [],
"code": "5,4",
"icon": "0_8b66c06b-d494-45a6-aafb-0586fed0ccfc.png",
"id": 136,
"name": "账户管理",
"opsResources": [],
"parentId": 135,
"position": 1,
"resourceId": "107,106,72",
"url": "/accountMessageManage/accountMessage"
},
{
"appCode": "",
"appIcon": "",
"applySubject": "",
"childMenus": [],
"code": "",
"icon": "",
"id": 137,
"name": "产品与服务",
"opsResources": [],
"parentId": 135,
"position": 2,
"resourceId": "73",
"url": "/user/productAndServe"
}
],
"code": "",
"icon": "0_e0fe29a1-11e8-471d-8f0a-209623c89ba1.png",
"id": 135,
"name": "用户中心",
"opsResources": [],
"parentId": 0,
"position": 18,
"resourceId": "",
"url": "/user"
}
]
\ No newline at end of file
import data from './data.json'
export default {
state: {
route: data
route: []
},
reducers: {
add(state, route) {
return { route: [...state, route] }
return { route: [...state.route, ...route] }
},
change(_, route) {
return { route: [...route] }
......
export default {
state: {
userSatatus: false
userSatatus: false,
codes: [],
business: {},
company: {},
platformAccount: {},
user: {}
},
reducers: {
loginSucess() {
// 登录成功
SYSTEM_LOGIN(_, res) {
console.log(res)
const { loginUserVo, codes } = res
return {codes, userSatatus: true, ...loginUserVo}
},
// 退出登录
SYSTEM_OUT() {
}
}
......
import React from 'react'
const Page = ({ history }) => {
return (
<div>
<h1 onClick={() => history.push('/')} >404错误,点击回到首页</h1>
</div>
)
}
export default Page
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!