Files
assist/frontend/README.md

212 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TSP智能助手前端
基于 Vue 3 + TypeScript + Element Plus 的现代化前端应用。
## 技术栈
- **Vue 3** - 渐进式 JavaScript 框架
- **TypeScript** - JavaScript 的超集,提供类型安全
- **Element Plus** - Vue 3 组件库
- **Vite** - 快速构建工具
- **Vue Router** - 官方路由管理器
- **Pinia** - 状态管理库
- **Vue I18n** - 国际化解决方案
- **Socket.IO** - 实时通信
- **ECharts** - 数据可视化
## 项目结构
```
frontend/
├── src/
│ ├── components/ # 公共组件
│ │ └── ChatWidget.vue # 聊天组件
│ ├── views/ # 页面组件
│ │ ├── Dashboard.vue # 仪表板
│ │ ├── Chat.vue # 聊天页面
│ │ ├── Alerts.vue # 预警管理
│ │ ├── AlertRules.vue # 预警规则
│ │ ├── Knowledge.vue # 知识库
│ │ ├── FieldMapping.vue # 字段映射
│ │ └── System.vue # 系统设置
│ ├── stores/ # 状态管理
│ │ ├── useAppStore.ts # 应用状态
│ │ ├── useChatStore.ts # 聊天状态
│ │ └── useAlertStore.ts # 预警状态
│ ├── router/ # 路由配置
│ ├── i18n/ # 国际化
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── package.json
├── vite.config.ts
├── tsconfig.json
└── README.md
```
## 功能特性
### 🎯 核心功能
- **统一聊天系统** - 支持首页和独立页面的聊天功能
- **预警管理** - 实时预警监控和规则管理
- **知识库管理** - 智能知识库的增删改查
- **字段映射** - 灵活的字段映射配置
- **系统监控** - 系统状态和性能监控
### 🌍 国际化支持
- 支持中文/英文切换
- 完整的国际化文本覆盖
- Element Plus 组件国际化
### 🎨 现代化UI
- 响应式设计,支持移动端
- 暗色/亮色主题切换
- 优雅的动画效果
- 统一的视觉风格
### 🔧 开发体验
- TypeScript 类型安全
- 组件自动导入
- 热重载开发
- ESLint 代码规范
## 快速开始
### 安装依赖
```bash
cd frontend
npm install
```
### 开发模式
```bash
npm run dev
```
访问 http://localhost:3000
### 构建生产版本
```bash
npm run build
```
构建文件将输出到 `../src/web/static/dist`
### 类型检查
```bash
npm run type-check
```
## 开发指南
### 添加新页面
1.`src/views/` 创建新的 Vue 组件
2.`src/router/index.ts` 添加路由配置
3.`src/i18n/locales/` 添加国际化文本
4.`src/layout/index.vue` 添加导航菜单
### 添加新组件
1.`src/components/` 创建组件
2. 使用 TypeScript 定义 props 和 emits
3. 添加必要的样式
### 状态管理
使用 Pinia 进行状态管理:
```typescript
// stores/useExampleStore.ts
import { defineStore } from 'pinia'
export const useExampleStore = defineStore('example', () => {
const state = ref('')
const action = () => {
// 状态更新逻辑
}
return { state, action }
})
```
### 国际化
在组件中使用:
```vue
<template>
<div>{{ $t('common.save') }}</div>
</template>
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
console.log(t('common.save'))
</script>
```
## API 集成
### HTTP 请求
使用 axios 进行 API 调用:
```typescript
import axios from 'axios'
const response = await axios.get('/api/alerts')
```
### WebSocket 连接
使用 Socket.IO 进行实时通信:
```typescript
import { io } from 'socket.io-client'
const socket = io('ws://localhost:8765')
socket.on('message', (data) => {
// 处理消息
})
```
## 部署说明
### 开发环境
前端开发服务器运行在端口 3000通过代理访问后端 API
- API 请求代理到 `http://localhost:5000`
- WebSocket 代理到 `ws://localhost:8765`
### 生产环境
1. 运行 `npm run build` 构建生产版本
2. 构建文件输出到 `../src/web/static/dist`
3. 后端 Flask 应用会直接提供静态文件服务
## 浏览器支持
- Chrome >= 87
- Firefox >= 78
- Safari >= 14
- Edge >= 88
## 贡献指南
1. Fork 项目
2. 创建功能分支
3. 提交更改
4. 推送到分支
5. 创建 Pull Request
## 许可证
MIT License