feat: 适配5.x后端,重构前端架构

主要变更:
1. 重构API目录结构,采用模块化设计,适配5.x后端接口规范
2. 优化布局组件,提升用户界面体验
3. 增强国际化支持,完善多语言配置
4. 新增权限控制功能,支持前端路由权限管理
5. 优化认证流程,支持JWT认证机制
6. 新增中间件和插件,提升系统扩展性
7. 优化状态管理,采用更清晰的模块化设计
8. 新增搜索框、广告等组件,丰富页面功能
9. 更改包管理工具从npm到pnpm,提升依赖管理效率
10. 完善配置系统,支持多环境配置

适配5.x后端特性:
- 采用新的API接口规范
- 支持JWT认证机制
- 适配后端权限控制体系
- 支持后端国际化接口
- 优化数据交互方式
This commit is contained in:
Mr.April
2026-04-07 11:01:11 +08:00
parent 1b83f1890b
commit d84d972e73
127 changed files with 103052 additions and 14661 deletions
+47
View File
@@ -0,0 +1,47 @@
import request from '~/utils/request'
import type { LinkItem, AdvertisementItem, NavigationItem, SiteData } from './types'
/**
* 获取友情链接列表
*/
export function getLinks(params?: { type?: string }): Promise<LinkItem[]> {
return request.get('/site/link', params)
}
/**
* 获取所有友情链接
*/
export function getAllLinks(): Promise<LinkItem[]> {
return request.get('/site/link/all')
}
/**
* 获取广告位信息
*/
export function getAdvertisements(params?: { type?: string }): Promise<AdvertisementItem[]> {
return request.get('/site/ads', params)
}
/**
* 获取导航菜单列表
*/
export function getNavigationList(): Promise<NavigationItem[]> {
return request.get('/site/nav')
}
/**
* 获取站点首页数据(广告、导航、友情链接等)
*/
export function getSiteData(): Promise<SiteData> {
return request.get('/site/site-data')
}
/**
* 获取 Web 分组所有配置
* 一次性获取前台站点设置、搜索配置、统计分析配置等
*/
export function getWebGroupConfigs(): Promise<Record<string, any>> {
return request.get('/system/config/group/web')
}
+82
View File
@@ -0,0 +1,82 @@
/**
* 站点首页模块相关类型定义
*/
/**
* 友情链接项
*/
export interface LinkItem {
id: number
name: string
url: string
logo?: string
description?: string
category?: string
sort: number
target?: string
click_count?: number
enabled: number
created_at: number
updated_at: number
deleted_at: number | null
}
/**
* 广告项
*/
export interface AdvertisementItem {
id: number
title: string
link: string
image: string
description?: string
sort: number
enabled: number
start_time: number
end_time: number
created_at: number
updated_at: number
deleted_at: number | null
}
/**
* 导航菜单项
*/
export interface NavigationItem {
id: number
title: string
url: string
icon?: string
code: string | null
sort: number
enabled: number
is_show: number
}
/**
* 站点首页数据
*/
export interface SiteData {
advertisements: AdvertisementItem[]
navigation: NavigationItem[]
links: LinkItem[]
}
/**
* 搜索配置项
*/
export interface SearchConfig {
keyword: string // 搜索引擎关键字
keyword_enabled: number // 是否启用关键字搜索 (0/1)
}
/**
* 统计分析配置项
*/
export interface AnalyticsConfig {
baidu_tongji_code: string // 百度统计代码
baidu_tongji_enabled: number // 是否启用百度统计 (0/1)
}