更新开发者平台:代理商管理、版本管理、UI优化

This commit is contained in:
Admin
2026-04-29 15:19:17 +08:00
parent afe67d704e
commit 5c63882e71
139 changed files with 26533 additions and 365 deletions
+8 -20
View File
@@ -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'
}
})
}
+37 -37
View File
@@ -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密钥 - 开发者后台' },
},
{