#20 通用模块: - MinioService: MinIO 文件上传/下载/桶管理 - @DataScope 注解: 数据权限切片 - ExcelUtils: EasyExcel 导出 - IdUtils: Snowflake ID 生成器 - BaseEntity: MyBatis-Plus 基础实体 #23 前端框架: - Vue3 + TypeScript + Vite + Element Plus + ECharts + Pinia - 路由系统: 登录守卫 + 动态路由 - 登录页: 渐变背景 + Axios+Sa-Token 认证 - 仪表盘: 统计卡片 + 供水趋势折线图 + 片区饼图 - MainLayout: 侧边栏菜单 + 顶栏用户下拉(退出) - API 层: Axios 请求/响应拦截器 + Token 自动注入 - 系统管理骨架: 用户/角色/菜单/部门 列表页
22 lines
575 B
TypeScript
22 lines
575 B
TypeScript
import axios from 'axios'
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
const request = axios.create({ baseURL: '/api', timeout: 15000 })
|
|
|
|
request.interceptors.request.use(config => {
|
|
const token = localStorage.getItem('token')
|
|
if (token) config.headers.Authorization = token
|
|
return config
|
|
})
|
|
|
|
request.interceptors.response.use(
|
|
res => {
|
|
const data = res.data
|
|
if (data.code !== 200) { ElMessage.error(data.message); return Promise.reject(data) }
|
|
return data
|
|
},
|
|
err => { ElMessage.error(err.message); return Promise.reject(err) }
|
|
)
|
|
|
|
export default request
|