191 lines
3.5 KiB
Markdown
191 lines
3.5 KiB
Markdown
|
|
# AIGC 前端项目
|
|||
|
|
|
|||
|
|
基于 Vue 3 + TypeScript + Vite + Element Plus 的 AIGC 应用前端。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
- 🎓 自动生成论文
|
|||
|
|
- 📊 生成答辩 PPT
|
|||
|
|
- 📝 生成开题报告、任务书、实习报告
|
|||
|
|
- 🔍 AIGC 检测
|
|||
|
|
- ✂️ 论文降重 / AIGC 降权
|
|||
|
|
- 💰 积分充值系统
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **框架**: Vue 3 (Composition API)
|
|||
|
|
- **语言**: TypeScript
|
|||
|
|
- **构建工具**: Vite
|
|||
|
|
- **UI 组件**: Element Plus
|
|||
|
|
- **图标**: Element Plus Icons
|
|||
|
|
|
|||
|
|
## 开发环境
|
|||
|
|
|
|||
|
|
### 环境要求
|
|||
|
|
|
|||
|
|
- Node.js >= 16
|
|||
|
|
- npm >= 8
|
|||
|
|
|
|||
|
|
### 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启动开发服务器
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
访问 http://localhost:5173
|
|||
|
|
|
|||
|
|
### 构建生产版本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 预览生产构建
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run preview
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 环境配置
|
|||
|
|
|
|||
|
|
项目支持开发和生产环境自动切换:
|
|||
|
|
|
|||
|
|
### 开发环境
|
|||
|
|
|
|||
|
|
使用 `.env.development`,API 地址为本地后端:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
VITE_API_BASE_URL=http://localhost:20006
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 生产环境
|
|||
|
|
|
|||
|
|
使用 `.env.production`,需要配置实际服务器地址:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
VITE_API_BASE_URL=http://your-server-ip:20006
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
aigc-ui/
|
|||
|
|
├── public/ # 静态资源
|
|||
|
|
├── src/
|
|||
|
|
│ ├── api/ # API 接口
|
|||
|
|
│ │ ├── check.ts # AIGC 检测
|
|||
|
|
│ │ ├── paper.ts # 论文生成
|
|||
|
|
│ │ ├── payment.ts # 支付相关
|
|||
|
|
│ │ └── user.ts # 用户相关
|
|||
|
|
│ ├── config/ # 配置文件
|
|||
|
|
│ │ └── api.ts # API 统一配置
|
|||
|
|
│ ├── App.vue # 主组件
|
|||
|
|
│ └── main.ts # 入口文件
|
|||
|
|
├── .env.development # 开发环境配置
|
|||
|
|
├── .env.production # 生产环境配置
|
|||
|
|
├── vite.config.ts # Vite 配置
|
|||
|
|
├── tsconfig.json # TypeScript 配置
|
|||
|
|
└── package.json # 项目依赖
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 部署
|
|||
|
|
|
|||
|
|
详细部署文档请查看 [DEPLOYMENT.md](./DEPLOYMENT.md)
|
|||
|
|
|
|||
|
|
### 快速部署
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 修改生产环境配置
|
|||
|
|
vim .env.production
|
|||
|
|
|
|||
|
|
# 2. 构建
|
|||
|
|
npm run build
|
|||
|
|
|
|||
|
|
# 3. 部署 dist 目录到服务器
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 使用部署脚本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 本地构建并打包
|
|||
|
|
./deploy.sh
|
|||
|
|
|
|||
|
|
# 自动部署到服务器
|
|||
|
|
./deploy-to-server.sh user@server-ip /var/www/aigc
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 开发指南
|
|||
|
|
|
|||
|
|
### API 调用
|
|||
|
|
|
|||
|
|
所有 API 请求统一使用 `src/config/api.ts` 中的 `request` 函数:
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
import { request } from '../config/api'
|
|||
|
|
|
|||
|
|
// GET 请求
|
|||
|
|
const data = await request<ResponseType>('/api/path', {
|
|||
|
|
method: 'GET'
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// POST 请求
|
|||
|
|
const data = await request<ResponseType>('/api/path', {
|
|||
|
|
method: 'POST',
|
|||
|
|
body: JSON.stringify(payload)
|
|||
|
|
})
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 添加新功能
|
|||
|
|
|
|||
|
|
1. 在 `src/api/` 下创建对应的 API 文件
|
|||
|
|
2. 在 `App.vue` 中添加功能入口
|
|||
|
|
3. 实现业务逻辑
|
|||
|
|
|
|||
|
|
### 代码规范
|
|||
|
|
|
|||
|
|
- 使用 TypeScript 类型定义
|
|||
|
|
- 遵循 Vue 3 Composition API 风格
|
|||
|
|
- 使用 async/await 处理异步操作
|
|||
|
|
- 统一错误处理
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### 1. API 请求失败
|
|||
|
|
|
|||
|
|
检查:
|
|||
|
|
- 后端服务是否启动
|
|||
|
|
- `.env.development` 或 `.env.production` 中的 API 地址是否正确
|
|||
|
|
- 浏览器控制台的网络请求
|
|||
|
|
|
|||
|
|
### 2. 开发环境跨域问题
|
|||
|
|
|
|||
|
|
开发环境下,前端运行在 5173 端口,后端在 20006 端口,需要后端支持 CORS。
|
|||
|
|
|
|||
|
|
### 3. 生产环境 404
|
|||
|
|
|
|||
|
|
使用 Nginx 部署时,需要配置:
|
|||
|
|
|
|||
|
|
```nginx
|
|||
|
|
location / {
|
|||
|
|
try_files $uri $uri/ /index.html;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 相关链接
|
|||
|
|
|
|||
|
|
- [Vue 3 文档](https://vuejs.org/)
|
|||
|
|
- [Vite 文档](https://vitejs.dev/)
|
|||
|
|
- [Element Plus 文档](https://element-plus.org/)
|
|||
|
|
- [TypeScript 文档](https://www.typescriptlang.org/)
|
|||
|
|
|
|||
|
|
## License
|
|||
|
|
|
|||
|
|
MIT
|