# Vue Demo 开发指南
## 快速开始
### 1. 安装依赖
```bash
cd frontend/vue-demo
yarn install
# 或
npm install
```
### 2. 启动开发服务器
```bash
yarn dev
# 或
npm run dev
```
访问: http://localhost:5173
### 3. 构建生产版本
```bash
yarn build
# 或
npm run build
```
## 项目结构
```
vue-demo/
├── src/
│ ├── api/ # API 接口定义
│ │ └── index.js # 所有 API 方法
│ ├── assets/ # 静态资源
│ ├── components/ # 公共组件
│ │ └── TaskCenter/ # 任务中心组件
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia 状态管理
│ ├── views/ # 页面组件
│ │ ├── Login.vue # 登录页
│ │ ├── Register.vue # 注册页
│ │ └── Editor.vue # 编辑器页
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── vite.config.js # Vite 配置
├── package.json # 项目配置
└── API_GUIDE.md # API 使用指南
```
## 技术栈
- **Vue 3** - 渐进式 JavaScript 框架
- **Vite** - 下一代前端构建工具
- **Vue Router** - 官方路由管理器
- **Pinia** - Vue 状态管理库
- **Element Plus** - Vue 3 UI 组件库
- **Axios** - HTTP 客户端
## 开发配置
### 后端 API 地址配置
编辑 `vite.config.js` 中的 `API_SERVER` 变量:
```javascript
// 本地开发
const API_SERVER = 'http://localhost:18520'
// 远程服务器
const API_SERVER = 'http://服务器IP:18520'
```
### 代理配置
Vite 已配置代理,自动转发以下请求:
- `/api/*` → 后端 API
- `/auth/*` → 认证服务
## API 使用
详见 [API_GUIDE.md](./API_GUIDE.md)
### 快速示例
```javascript
import { templateApi, documentApi } from '@/api'
// 获取模板列表
const templates = await templateApi.list()
// 上传文档
const result = await parseApi.upload(file)
```
## 状态管理
### Task Center Store
```javascript
import { useTaskCenterStore } from '@/stores/taskCenter'
const taskStore = useTaskCenterStore()
// 添加任务
taskStore.addTask({
id: 'task-1',
type: 'parse',
status: 'running',
progress: 50
})
// 更新任务
taskStore.updateTask('task-1', { progress: 100, status: 'completed' })
```
### Template Store
```javascript
import { useTemplateStore } from '@/stores/template'
const templateStore = useTemplateStore()
// 加载模板
await templateStore.loadTemplates()
// 选择模板
templateStore.selectTemplate(templateId)
```
## 组件使用
### 任务中心
```vue
```
## 路由配置
```javascript
const routes = [
{ path: '/login', component: Login },
{ path: '/register', component: Register },
{ path: '/editor/:documentId?', component: Editor }
]
```
## 环境变量
创建 `.env.local` 文件:
```bash
# API 服务器地址
VITE_API_SERVER=http://localhost:18520
# 其他配置
VITE_APP_TITLE=灵越智报
```
在代码中使用:
```javascript
const apiServer = import.meta.env.VITE_API_SERVER
```
## 调试技巧
### 1. 查看网络请求
打开浏览器开发者工具 → Network 标签
### 2. Vue DevTools
安装 Vue DevTools 浏览器扩展,查看组件状态和 Pinia store
### 3. API 调试
在 `src/api/index.js` 中已配置响应拦截器,会自动打印错误:
```javascript
api.interceptors.response.use(
response => { /* ... */ },
error => {
console.error('API Error:', error)
return Promise.reject(error)
}
)
```
## 常见问题
### 1. CORS 跨域问题
已通过 Vite 代理解决,确保 `vite.config.js` 中的代理配置正确。
### 2. API 404 错误
检查:
- 后端服务是否启动(端口 18520)
- API 路径是否正确(参考 API_GUIDE.md)
- 控制器路径是否匹配(graph-service 使用 `/api/v1/graph/*`)
### 3. Token 过期
使用 refreshToken 刷新:
```javascript
const newToken = await authApi.refreshToken(refreshToken)
localStorage.setItem('accessToken', newToken)
```
## 后端服务检查
### 检查后端是否运行
```bash
curl http://localhost:18520/actuator/health
```
预期响应:
```json
{"status":"UP"}
```
### 测试 API 接口
```bash
# 获取模板列表
curl http://localhost:18520/api/v1/templates
# 获取图谱模板列表
curl http://localhost:18520/api/v1/graph/templates
```
## 部署
### 构建
```bash
yarn build
```
生成的文件在 `dist/` 目录
### Nginx 配置示例
```nginx
server {
listen 80;
server_name your-domain.com;
root /path/to/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:18520;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /auth {
proxy_pass http://localhost:18520;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## 更新日志
### 2026-02-12
- ✅ 适配后端 graph-service 路径变更
- ✅ 新增图谱相关 API(graphTemplateApi, graphProjectApi, graphReportApi)
- ✅ 更新 vite.config.js 使用本地后端
- ✅ 添加 API 使用指南文档