Files
cunkebao_v3/Moncter/TaskShow/README.md

128 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2026-01-05 10:16:20 +08:00
# Task Show
基于 Vue3 + Element Plus + Pinia + TypeScript + Axios 的前端基础工程
## 技术栈
- **Vue 3** - 渐进式 JavaScript 框架
- **TypeScript** - JavaScript 的超集
- **Vite** - 下一代前端构建工具
- **Element Plus** - 基于 Vue 3 的组件库
- **Pinia** - Vue 的状态管理库
- **Vue Router** - Vue 官方路由管理器
- **Axios** - 基于 Promise 的 HTTP 客户端
## 项目结构
```
TaskShow/
├── src/
│ ├── assets/ # 静态资源
│ ├── components/ # 公共组件
│ ├── router/ # 路由配置
│ │ └── index.ts
│ ├── store/ # Pinia 状态管理
│ │ └── index.ts
│ ├── types/ # TypeScript 类型定义
│ │ └── api.ts
│ ├── utils/ # 工具函数
│ │ └── request.ts # Axios 请求封装
│ ├── views/ # 页面组件
│ │ └── Home.vue
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── index.html # HTML 模板
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── vite.config.ts # Vite 配置
└── README.md # 项目说明
```
## 安装依赖
```bash
npm install
# 或
yarn install
# 或
pnpm install
```
## 开发
```bash
npm run dev
# 或
yarn dev
# 或
pnpm dev
```
## 构建
```bash
npm run build
# 或
yarn build
# 或
pnpm build
```
## 预览构建结果
```bash
npm run preview
# 或
yarn preview
# 或
pnpm preview
```
## 请求封装说明
### 使用方式
```typescript
import { request } from '@/utils/request'
// GET 请求
const response = await request.get('/api/users', { id: 1 })
// POST 请求
const response = await request.post('/api/users', { name: 'John' })
// PUT 请求
const response = await request.put('/api/users/1', { name: 'Jane' })
// DELETE 请求
const response = await request.delete('/api/users/1')
// 自定义配置
const response = await request.get('/api/users', {}, {
showLoading: false, // 不显示 loading
showError: false, // 不显示错误提示
timeout: 5000 // 自定义超时时间
})
```
### 特性
1. **自动添加 Token**:请求时自动从 store 中获取 token 并添加到请求头
2. **统一错误处理**:自动处理 HTTP 错误和业务错误
3. **Loading 提示**:请求时自动显示 loading可配置
4. **错误提示**:请求失败时自动显示错误消息(可配置)
5. **类型支持**:完整的 TypeScript 类型定义
### 环境变量
`.env``.env.development``.env.production` 文件中配置 API 基础地址:
```
VITE_API_BASE_URL=/api
```
## License
MIT