123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 |
- /**头部路由一级菜单点击逻辑 */
- function headrRouter(initialState: any, history: any) {
- let ok = true
- let u = navigator?.userAgent
- let isPhone = !!u.match(/AppleWebKit.*Mobile.*/) || u?.indexOf('iPad') > -1
- //登录时指向/辅助处理看当前用户的一级菜单有哪些,找到第一个符合的跳转
- initialState?.menu?.data.forEach((item: { roles: string[], path: string, routes: { path: string, routes: any[] }[] }) => {
- if (ok) {
- ok = false
- let path = item?.routes?.length > 0 ? item?.routes[0]?.routes?.length > 0 ? item?.routes[0]?.routes[0]?.path ? item?.routes[0]?.routes[0]?.path : item?.routes[0].path : item?.routes[0].path : item?.routes[0].path
- if (history?.location?.pathname === '/') {
- history.push(path)
- }
- }
- })
- if (history?.location?.pathname === '/gameDataStatistics') { //当切换一级菜单的辅助跳转
- history?.goBack()
- initialState?.menu?.data.forEach((item: { roles: string[], path: string, routes: { path: string, routes: any[] }[] }) => {
- if (item?.routes?.some((i: { path: string }) => i.path?.includes('/gameDataStatistics'))) {
- let path = item?.routes?.length > 0 ? (item?.routes[0]?.routes?.length > 0 && item?.routes[0]?.routes[0]?.path) ? item?.routes[0]?.routes[0]?.path : item?.routes[0].path : item?.routes[0].path
- isPhone ? history.push(path) : window.open(location.origin + '/#' + path)
- }
- })
- }
- if (history?.location?.pathname === '/gsData') { //当切换一级菜单的辅助跳转
- history?.goBack()
- initialState?.menu?.data.forEach((item: { roles: string[], path: string, routes: { path: string, routes: any[] }[] }) => {
- if (item?.routes?.some((i: { path: string }) => i.path?.includes('/gsData'))) {
- let path = item?.routes?.length > 0 ? (item?.routes[0]?.routes?.length > 0 && item?.routes[0]?.routes[0]?.path) ? item?.routes[0]?.routes[0]?.path : item?.routes[0].path : item?.routes[0].path
- isPhone ? history.push(path) : window.open(location.origin + '/#' + path)
- }
- })
- }
- }
- //返回按钮路由
- function btnFun(items: any) {
- return items?.childrenBtn?.map((btn: any,) => {
- return { name: btn.meta.title, key: btn?.menuId }
- })
- }
- //返回子路由
- function routeFun(items: any) {
- return items.children.map((route: any) => {//循环重组
- if (route?.children?.length > 0) {
- let arr = routeFun(route)
- return { path: route.path, name: route.meta.title, component: route.component, routes: arr, icon: route.meta.icon, key: route?.menuId }
- }
- if (route?.childrenBtn?.length > 0) {
- let arr = btnFun(route)
- return { path: route.path, name: route.meta.title, component: route.component, routes: arr, icon: route.meta.icon, key: route?.menuId }
- }
- return { path: route.path, name: route.meta.title, component: route.component, icon: route.meta.icon, key: route?.menuId }
- })
- }
- /**获取线上菜单并重组路由格式和权限*/
- function getMyMenu(code: any, data: any,) {
- let newData: any = []
- // let roles = userInfo?.roles.map((role: any) => role.roleKey)//权限从个人信息中取,以防路由列表中有错误
- if (code === 200) {
- let new_data: any[] = []
- // 循环判断不为空的主菜单加入
- Object.keys(data).reverse().map((key) => {
- if (Array.isArray(data[key]) && data[key]?.length > 0) {
- new_data.push(data[key][0])
- }
- })
- // 处理顺序
- new_data = new_data.sort((a, b) => {
- let v1 = a.orderNum
- let v2 = b.orderNum
- return v1 - v2
- })
- new_data.forEach((items: any) => {
- if (items?.children?.length === 0) {//假如路由的子路由只有一个代表当前组件没有子路由,将children中的component组件路径给外层component
- newData.push({ path: items.children[0].path, name: items.meta.title, icon: items.meta.icon, component: items.children[0].component, key: items.menuId }) // roles: roles
- }
- if (items?.children?.length >= 0) {//假如路由的子路由个数大于1代表有子路由
- let arr: any[] = routeFun(items)
- newData.push({ path: items.path, name: items.meta.title, icon: items.meta.icon, routes: arr, key: items.menuId })//最后添加进routes , roles: roles
- }
- })
- }
- return newData
- }
- const gameDataStatistics = {
- path: '/gameDataStatistics',
- routes: [
- {
- path: '/gameDataStatistics/allSurvey',
- name: '整体概况',
- access: 'allSurvey',
- component: './gameDataStatistics/allSurvey',
- },
- {
- path: '/gameDataStatistics/rankingList',
- name: '排行榜',
- access: 'rankingList',
- routes: [
- {
- path: '/gameDataStatistics/rankingList/gamer',
- name: '玩家充值排行榜',
- access: 'gamer',
- component: './gameDataStatistics/rankingList/gamer',
- },
- {
- path: '/gameDataStatistics/rankingList/game',
- name: '游戏充值排行榜',
- access: 'game',
- component: './gameDataStatistics/rankingList/game',
- },
- {
- path: '/gameDataStatistics/rankingList/channel',
- name: '推广渠道充值排行榜',
- access: 'channel',
- component: './gameDataStatistics/rankingList/channel',
- },
- {
- path: '/gameDataStatistics/rankingList/account',
- name: '推广账号消耗排行榜',
- access: 'account',
- component: './gameDataStatistics/rankingList/account',
- }
- ]
- },
- {
- path: '/gameDataStatistics/roleOperate',
- name: '角色运营管理',
- access: 'roleOperate',
- routes: [
- {
- path: '/gameDataStatistics/roleOperate/roleRechargeRanking',
- name: '角色充值排行榜',
- access: 'roleRechargeRanking',
- component: './gameDataStatistics/roleOperate/roleRechargeRanking',
- },
- {
- path: '/gameDataStatistics/roleOperate/roleFightingRanking',
- name: '角色战力排行榜',
- access: 'roleFightingRanking',
- component: './gameDataStatistics/roleOperate/roleFightingRanking',
- },
- {
- path: '/gameDataStatistics/roleOperate/gameServer',
- name: '游戏区服',
- access: 'gameServer',
- component: './gameDataStatistics/roleOperate/gameServer',
- },
- {
- path: '/gameDataStatistics/roleOperate/pack',
- name: '礼包',
- access: 'pack',
- component: './gameDataStatistics/roleOperate/pack',
- },
- {
- path: '/gameDataStatistics/roleOperate/createRoleConfig',
- name: '有效创角配置',
- access: 'createRoleConfig',
- component: './gameDataStatistics/roleOperate/createRoleConfig',
- },
- {
- path: '/gameDataStatistics/roleOperate/vip',
- name: '游戏VIP档位',
- access: 'vip',
- component: './gameDataStatistics/roleOperate/vip',
- },
- {
- path: '/gameDataStatistics/roleOperate/strategy',
- name: '游戏策略配置',
- access: 'strategy',
- component: './gameDataStatistics/roleOperate/strategy',
- },
- {
- path: '/gameDataStatistics/roleOperate/codeSender',
- name: '游戏发码器',
- access: 'codeSender',
- component: './gameDataStatistics/roleOperate/codeSender',
- }
- ]
- },
- {
- path: '/gameDataStatistics/extensionData',
- name: '推广数据',
- access: 'extensionData',
- routes: [
- {
- path: '/gameDataStatistics/extensionData/total',
- name: '推广总数据',
- access: 'total',
- component: './gameDataStatistics/extensionData/total',
- },
- {
- path: '/gameDataStatistics/extensionData/everyday',
- name: '推广每日数据',
- access: 'everyday',
- component: './gameDataStatistics/extensionData/everyday',
- },
- ]
- },
- {
- path: '/gameDataStatistics/adlist',
- name: '广告列表',
- access: 'adlist',
- routes: [
- {
- path: '/gameDataStatistics/adlist/monitor',
- name: '头条广告监控',
- access: 'monitor',
- component: './gameDataStatistics/adlist/monitor',
- },
- {
- path: '/gameDataStatistics/adlist/tencentMonitor',
- name: '腾讯广告监控',
- access: 'tencentMonitor',
- component: './gameDataStatistics/adlist/tencentMonitor',
- },
- {
- path: '/gameDataStatistics/adlist/strategy',
- name: '游戏广告策略',
- access: 'strategy',
- component: './gameDataStatistics/adlist/strategy',
- }
- ]
- },
- {
- path: '/gameDataStatistics/gameData',
- name: '游戏数据',
- access: 'gameData',
- routes: [
- {
- path: '/gameDataStatistics/gameData/total',
- name: '游戏总数据',
- access: 'total',
- component: './gameDataStatistics/gameData/total',
- },
- {
- path: '/gameDataStatistics/gameData/everyday',
- name: '游戏每日数据',
- access: 'everyday',
- component: './gameDataStatistics/gameData/everyday',
- },
- {
- path: '/gameDataStatistics/gameData/h5Recharge',
- name: 'H5游戏充值表',
- access: 'h5Recharge',
- component: './gameDataStatistics/gameData/h5Recharge',
- },
- {
- path: '/gameDataStatistics/gameData/flowingWater',
- name: '每日流水贡献',
- access: 'flowingWater',
- component: './gameDataStatistics/gameData/flowingWater',
- },
- {
- path: '/gameDataStatistics/gameData/ltv',
- name: 'LTV',
- access: 'ltv',
- component: './gameDataStatistics/gameData/ltv',
- },
- {
- path: '/gameDataStatistics/gameData/again',
- name: '游戏首日复充',
- access: 'again',
- component: './gameDataStatistics/gameData/again',
- },
- {
- path: '/gameDataStatistics/gameData/active',
- name: '游戏留存数据',
- access: 'active',
- component: './gameDataStatistics/gameData/active',
- },
- ]
- },
- {
- path: '/gameDataStatistics/pitcher',
- name: '投手数据',
- access: 'pitcher',
- routes: [
- {
- path: '/gameDataStatistics/pitcher/total',
- name: '投手总数据',
- access: 'total',
- component: './gameDataStatistics/pitcher/total',
- },
- {
- path: '/gameDataStatistics/pitcher/everyDay',
- name: '投手每日数据',
- access: 'everyDay',
- component: './gameDataStatistics/pitcher/everyDay',
- },
- {
- path: '/gameDataStatistics/pitcher/totalGame',
- name: '投手游戏总数据',
- access: 'totalGame',
- component: './gameDataStatistics/pitcher/totalGame',
- },
- {
- path: '/gameDataStatistics/pitcher/everyDayGame',
- name: '投手游戏每日数据',
- access: 'everyDayGame',
- component: './gameDataStatistics/pitcher/everyDayGame',
- },
- ]
- },
- {
- path: '/gameDataStatistics/medium',
- name: '媒体数据',
- access: 'medium',
- routes: [
- {
- path: '/gameDataStatistics/medium/promotionEvery',
- name: '推广媒体每日数据',
- access: 'promotionEvery',
- component: './gameDataStatistics/medium/promotionEvery',
- },
- {
- path: '/gameDataStatistics/medium/promotionTotal',
- name: '推广媒体总数据',
- access: 'promotionTotal',
- component: './gameDataStatistics/medium/promotionTotal',
- },
- {
- path: '/gameDataStatistics/medium/pitcherEvery',
- name: '投手媒体每日数据',
- access: 'pitcherEvery',
- component: './gameDataStatistics/medium/pitcherEvery',
- },
- {
- path: '/gameDataStatistics/medium/pitcherTotal',
- name: '投手媒体总数据',
- access: 'pitcherTotal',
- component: './gameDataStatistics/medium/pitcherTotal',
- },
- {
- path: '/gameDataStatistics/medium/gameEvery',
- name: '游戏媒体每日数据',
- access: 'gameEvery',
- component: './gameDataStatistics/medium/gameEvery',
- },
- {
- path: '/gameDataStatistics/medium/gameTotal',
- name: '游戏媒体总数据',
- access: 'gameTotal',
- component: './gameDataStatistics/medium/gameTotal',
- },
- {
- path: '/gameDataStatistics/medium/mediumActive',
- name: '游戏媒体留存数据',
- access: 'mediumActive',
- component: './gameDataStatistics/medium/mediumActive',
- },
- ]
- },
- {
- path: '/gameDataStatistics/player',
- name: '玩家数据',
- access: 'player',
- routes: [
- {
- path: '/gameDataStatistics/player/list',
- name: '玩家列表',
- access: 'list',
- component: './gameDataStatistics/player/list',
- },
- {
- path: '/gameDataStatistics/player/role',
- name: '玩家角色',
- access: 'role',
- component: './gameDataStatistics/player/role',
- },
- {
- path: '/gameDataStatistics/player/loginLog',
- name: '玩家登录日志',
- access: 'loginLog',
- component: './gameDataStatistics/player/loginLog',
- },
- {
- path: '/gameDataStatistics/player/banGamePlayerManage',
- name: '封禁玩家管理',
- access: 'banGamePlayerManage',
- component: './gameDataStatistics/player/banGamePlayerManage',
- },
- {
- path: '/gameDataStatistics/player/banIpManage',
- name: '封禁IP管理',
- access: 'banIpManage',
- component: './gameDataStatistics/player/banIpManage',
- }
- ]
- },
- {
- path: '/gameDataStatistics/gameServer',
- name: '游戏区服',
- access: 'gameServer',
- routes: [
- {
- path: '/gameDataStatistics/gameServer/serverData',
- name: '区服数据',
- access: 'serverData',
- component: './gameDataStatistics/gameServer/serverData',
- },
- {
- path: '/gameDataStatistics/gameServer/serverEveryData',
- name: '区服每日数据',
- access: 'serverEveryData',
- component: './gameDataStatistics/gameServer/serverEveryData',
- },
- {
- path: '/gameDataStatistics/gameServer/serverGsData',
- name: 'GS区服',
- access: 'serverGsData',
- component: './gameDataStatistics/gameServer/serverGsData',
- }
- ]
- },
- {
- path: '/gameDataStatistics/stream',
- name: '流水监控',
- access: 'stream',
- routes: [
- {
- path: '/gameDataStatistics/stream/recharge',
- name: '充值历史',
- access: 'recharge',
- component: './gameDataStatistics/stream/recharge',
- }
- ]
- },
- {
- path: '/gameDataStatistics/order',
- name: '订单',
- access: 'order',
- component: './gameDataStatistics/order',
- },
- ]
- }
- const gsData = {
- path: '/gsData',
- routes: [
- {
- path: '/gsData/bidREveryday',
- name: '大R每日充值比',
- access: 'bidREveryday',
- component: './gsData/bidREveryday',
- },
- {
- path: '/gsData/rolePayRetained',
- name: 'GS角色付费留存',
- access: 'rolePayRetained',
- component: './gsData/rolePayRetained',
- },
- {
- path: '/gsData/serverPayRetained',
- name: 'GS区服付费留存',
- access: 'serverPayRetained',
- component: './gsData/serverPayRetained',
- },
- {
- path: '/gsData/roleRemoveMonitor',
- name: '角色流失监控',
- access: 'roleRemoveMonitor',
- component: './gsData/roleRemoveMonitor',
- },
- {
- path: '/gsData/roleManage',
- name: '游戏角色管理',
- access: 'roleManage',
- component: './gsData/roleManage',
- },
- {
- path: '/gsData/serverManage',
- name: '游戏区服管理',
- access: 'serverManage',
- component: './gsData/serverManage',
- }
- ]
- }
- export {
- headrRouter,
- getMyMenu,
- gameDataStatistics,
- gsData
- }
|