更新开发者平台:代理商管理、版本管理、UI优化
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import type { Router } from 'vue-router'
|
||||
|
||||
export function createRouterGuard(router: Router) {
|
||||
router.beforeEach((to, _from, next) => {
|
||||
router.beforeEach((to) => {
|
||||
const token = localStorage.getItem('token')
|
||||
const userStr = localStorage.getItem('user')
|
||||
|
||||
@@ -15,30 +15,18 @@ export function createRouterGuard(router: Router) {
|
||||
}
|
||||
}
|
||||
|
||||
const requiresAuth = to.path.startsWith('/admin') || to.path.startsWith('/developer')
|
||||
const requiresAuth = to.path.startsWith('/developer') || to.path.startsWith('/agent')
|
||||
const isAuthPage = to.path === '/login' || to.path === '/register'
|
||||
|
||||
if (requiresAuth && !token) {
|
||||
if (to.path !== '/login') {
|
||||
next('/login')
|
||||
}
|
||||
else {
|
||||
next()
|
||||
}
|
||||
return '/login'
|
||||
}
|
||||
else if (isAuthPage && token && user) {
|
||||
if (user.role === 'admin') {
|
||||
next('/admin')
|
||||
|
||||
if (isAuthPage && token && user) {
|
||||
if (user.role === 'agent' || user.parent_agent_id) {
|
||||
return '/agent'
|
||||
}
|
||||
else if (user.role === 'developer') {
|
||||
next('/developer')
|
||||
}
|
||||
else {
|
||||
next('/')
|
||||
}
|
||||
}
|
||||
else {
|
||||
next()
|
||||
return '/developer'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: 'applications/create',
|
||||
name: 'DeveloperApplicationCreate',
|
||||
component: () => import('@/pages/developer/applications/create.vue'),
|
||||
component: () => import('@/pages/admin/applications/create.vue'),
|
||||
meta: { title: '创建应用 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
@@ -53,13 +53,13 @@ const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: 'applications/:id/settings',
|
||||
name: 'DeveloperApplicationSettings',
|
||||
component: () => import('@/pages/developer/applications/[id]/settings.vue'),
|
||||
component: () => import('@/pages/admin/applications/[id]/settings.vue'),
|
||||
meta: { title: '基本设置 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'applications/:id/security',
|
||||
name: 'DeveloperApplicationSecurity',
|
||||
component: () => import('@/pages/developer/applications/[id]/security.vue'),
|
||||
component: () => import('@/pages/admin/applications/[id]/security.vue'),
|
||||
meta: { title: '安全设置 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
@@ -71,13 +71,13 @@ const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: 'cards',
|
||||
name: 'DeveloperCards',
|
||||
component: () => import('@/pages/developer/cards/index.vue'),
|
||||
component: () => import('@/pages/admin/cards/index.vue'),
|
||||
meta: { title: '卡密管理 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'cards/create',
|
||||
name: 'DeveloperCardCreate',
|
||||
component: () => import('@/pages/developer/cards/create.vue'),
|
||||
component: () => import('@/pages/admin/cards/create.vue'),
|
||||
meta: { title: '生成卡密 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
@@ -113,61 +113,61 @@ const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: 'versions/:id',
|
||||
name: 'DeveloperVersionEdit',
|
||||
component: () => import('@/pages/developer/versions/[id].vue'),
|
||||
component: () => import('@/pages/admin/versions/[id].vue'),
|
||||
meta: { title: '编辑版本 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'card-types',
|
||||
name: 'DeveloperCardTypes',
|
||||
component: () => import('@/pages/developer/card-types/index.vue'),
|
||||
component: () => import('@/pages/admin/card-types/index.vue'),
|
||||
meta: { title: '卡类管理 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'card-types/create',
|
||||
name: 'DeveloperCardTypeCreate',
|
||||
component: () => import('@/pages/developer/card-types/create.vue'),
|
||||
component: () => import('@/pages/admin/card-types/create.vue'),
|
||||
meta: { title: '创建卡类 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'card-types/:id',
|
||||
name: 'DeveloperCardTypeEdit',
|
||||
component: () => import('@/pages/developer/card-types/[id].vue'),
|
||||
component: () => import('@/pages/admin/card-types/[id].vue'),
|
||||
meta: { title: '编辑卡类 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'users',
|
||||
name: 'DeveloperUsers',
|
||||
component: () => import('@/pages/developer/users/index.vue'),
|
||||
component: () => import('@/pages/admin/users/index.vue'),
|
||||
meta: { title: '用户管理 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'users/create',
|
||||
name: 'DeveloperUserCreate',
|
||||
component: () => import('@/pages/developer/users/create.vue'),
|
||||
component: () => import('@/pages/admin/users/create.vue'),
|
||||
meta: { title: '添加用户 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'users/:id',
|
||||
name: 'DeveloperUserEdit',
|
||||
component: () => import('@/pages/developer/users/[id].vue'),
|
||||
component: () => import('@/pages/admin/users/[id].vue'),
|
||||
meta: { title: '编辑用户 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'devices',
|
||||
name: 'DeveloperDevices',
|
||||
component: () => import('@/pages/developer/devices/index.vue'),
|
||||
component: () => import('@/pages/admin/devices/index.vue'),
|
||||
meta: { title: '设备管理 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'sessions',
|
||||
name: 'DeveloperSessions',
|
||||
component: () => import('@/pages/developer/sessions/index.vue'),
|
||||
component: () => import('@/pages/admin/sessions/index.vue'),
|
||||
meta: { title: '在线实例 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'agent-apps',
|
||||
name: 'DeveloperAgentApps',
|
||||
component: () => import('@/pages/developer/agent-apps/index.vue'),
|
||||
component: () => import('@/pages/admin/agent-apps/index.vue'),
|
||||
meta: { title: '代理授权 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
@@ -191,79 +191,79 @@ const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: 'agent-apps/request',
|
||||
name: 'DeveloperAgentAppRequest',
|
||||
component: () => import('@/pages/developer/agent-apps/request.vue'),
|
||||
component: () => import('@/pages/admin/agent-apps/request.vue'),
|
||||
meta: { title: '申请授权 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'agent-apps/invite',
|
||||
name: 'DeveloperAgentAppInvite',
|
||||
component: () => import('@/pages/developer/agent-apps/invite.vue'),
|
||||
component: () => import('@/pages/admin/agent-apps/invite.vue'),
|
||||
meta: { title: '邀请授权 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'agent-apps/:id/edit',
|
||||
name: 'DeveloperAgentAppEdit',
|
||||
component: () => import('@/pages/developer/agent-apps/[id]/edit.vue'),
|
||||
component: () => import('@/pages/admin/agent-apps/[id]/edit.vue'),
|
||||
meta: { title: '编辑授权 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'agent-apps/:id/card-types',
|
||||
name: 'DeveloperAgentAppCardTypes',
|
||||
component: () => import('@/pages/developer/agent-apps/[id]/card-types.vue'),
|
||||
component: () => import('@/pages/admin/agent-apps/[id]/card-types.vue'),
|
||||
meta: { title: '卡密权限配置 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'agent-apps/:id/recharge',
|
||||
name: 'DeveloperAgentAppRecharge',
|
||||
component: () => import('@/pages/developer/agent-apps/[id]/recharge.vue'),
|
||||
component: () => import('@/pages/admin/agent-apps/[id]/recharge.vue'),
|
||||
meta: { title: '充值余额 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'finance',
|
||||
name: 'DeveloperFinance',
|
||||
component: () => import('@/pages/developer/finance/index.vue'),
|
||||
component: () => import('@/pages/admin/finance/index.vue'),
|
||||
meta: { title: '财务管理 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'logs',
|
||||
name: 'DeveloperLogs',
|
||||
component: () => import('@/pages/developer/logs/index.vue'),
|
||||
component: () => import('@/pages/admin/logs/index.vue'),
|
||||
meta: { title: '日志记录 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'tickets',
|
||||
name: 'DeveloperTickets',
|
||||
component: () => import('@/pages/developer/tickets.vue'),
|
||||
component: () => import('@/pages/admin/tickets.vue'),
|
||||
meta: { title: '工单系统 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'tickets/create',
|
||||
name: 'DeveloperTicketCreate',
|
||||
component: () => import('@/pages/developer/tickets/create.vue'),
|
||||
component: () => import('@/pages/admin/tickets/create.vue'),
|
||||
meta: { title: '创建工单 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'tickets/:id',
|
||||
name: 'DeveloperTicketDetail',
|
||||
component: () => import('@/pages/developer/tickets/[id].vue'),
|
||||
component: () => import('@/pages/admin/tickets/[id].vue'),
|
||||
meta: { title: '工单详情 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'cloud-constants',
|
||||
name: 'DeveloperCloudConstants',
|
||||
component: () => import('@/pages/developer/cloud-constants/index.vue'),
|
||||
component: () => import('@/pages/admin/cloud-constants/index.vue'),
|
||||
meta: { title: '云端常量 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'cloud-constants/create',
|
||||
name: 'DeveloperCloudConstantCreate',
|
||||
component: () => import('@/pages/developer/cloud-constants/create.vue'),
|
||||
component: () => import('@/pages/admin/cloud-constants/create.vue'),
|
||||
meta: { title: '添加云端常量 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'cloud-constants/:id',
|
||||
name: 'DeveloperCloudConstantEdit',
|
||||
component: () => import('@/pages/developer/cloud-constants/[id].vue'),
|
||||
component: () => import('@/pages/admin/cloud-constants/[id].vue'),
|
||||
meta: { title: '编辑云端常量 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
@@ -287,55 +287,55 @@ const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: 'cloud-function',
|
||||
name: 'DeveloperCloudFunction',
|
||||
component: () => import('@/pages/developer/dynamic-code/index.vue'),
|
||||
component: () => import('@/pages/admin/dynamic-code/index.vue'),
|
||||
meta: { title: '云端函数 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'cloud-function/create',
|
||||
name: 'DeveloperCloudFunctionCreate',
|
||||
component: () => import('@/pages/developer/dynamic-code/create.vue'),
|
||||
component: () => import('@/pages/admin/dynamic-code/create.vue'),
|
||||
meta: { title: '创建云端函数 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'cloud-function/:id',
|
||||
name: 'DeveloperCloudFunctionEdit',
|
||||
component: () => import('@/pages/developer/dynamic-code/[id].vue'),
|
||||
component: () => import('@/pages/admin/dynamic-code/[id].vue'),
|
||||
meta: { title: '编辑云端函数 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'risk-control',
|
||||
name: 'DeveloperRiskControl',
|
||||
component: () => import('@/pages/developer/risk-control/index.vue'),
|
||||
component: () => import('@/pages/admin/risk-control/index.vue'),
|
||||
meta: { title: '风控管理 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'risk-control/create',
|
||||
name: 'DeveloperRiskControlCreate',
|
||||
component: () => import('@/pages/developer/risk-control/create.vue'),
|
||||
component: () => import('@/pages/admin/risk-control/create.vue'),
|
||||
meta: { title: '添加风控规则 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'risk-control/:id',
|
||||
name: 'DeveloperRiskControlEdit',
|
||||
component: () => import('@/pages/developer/risk-control/[id].vue'),
|
||||
component: () => import('@/pages/admin/risk-control/[id].vue'),
|
||||
meta: { title: '编辑风控规则 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'extension',
|
||||
name: 'DeveloperExtension',
|
||||
component: () => import('@/pages/developer/extension/index.vue'),
|
||||
component: () => import('@/pages/admin/extension/index.vue'),
|
||||
meta: { title: '扩展配置 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'extension/webhooks/create',
|
||||
name: 'DeveloperExtensionWebhookCreate',
|
||||
component: () => import('@/pages/developer/extension/webhooks/create.vue'),
|
||||
component: () => import('@/pages/admin/extension/webhooks/create.vue'),
|
||||
meta: { title: '创建Webhook - 开发者后台' },
|
||||
},
|
||||
{
|
||||
path: 'extension/api-keys/create',
|
||||
name: 'DeveloperExtensionAPIKeyCreate',
|
||||
component: () => import('@/pages/developer/extension/api-keys/create.vue'),
|
||||
component: () => import('@/pages/admin/extension/api-keys/create.vue'),
|
||||
meta: { title: '创建API密钥 - 开发者后台' },
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user