278 lines
7.2 KiB
Markdown
278 lines
7.2 KiB
Markdown
# Finyx Frontend
|
||
|
||
Finyx Frontend 是一个基于 Vue 3 + TypeScript + Vite 构建的企业级前端应用,提供智能问答、智能写作、智能审核和知识库管理等核心功能。
|
||
|
||
## ✨ 功能特性
|
||
|
||
- 🤖 **智能中心**
|
||
- 智能问答:创建和管理智能体,进行AI对话
|
||
- 智能写作:文档生成、大纲编辑、内容润色
|
||
- 智能审核:审核方案管理、规则配置、文档审核
|
||
|
||
- 📚 **知识中心**
|
||
- 知识库管理:创建知识库,导入和管理文档
|
||
- 文档管理:文档上传、预览、分类管理
|
||
- 标签管理:维度管理、标签创建、文档关联
|
||
|
||
- 💬 **智能对话**
|
||
- 实时对话:支持流式响应(SSE)
|
||
- 对话历史:保存和管理对话记录
|
||
- 多智能体:支持多个智能体切换
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
- **框架**: Vue 3.3.4 (Composition API)
|
||
- **构建工具**: Vite 6.3.5
|
||
- **语言**: TypeScript 5.1.6
|
||
- **UI框架**: Element Plus 2.9.1
|
||
- **状态管理**: Pinia 2.1.6
|
||
- **路由**: Vue Router 4.2.4
|
||
- **HTTP客户端**: Axios 0.28.0
|
||
- **样式**: SCSS
|
||
- **代码编辑器**: CodeMirror 6.0.1
|
||
- **Markdown编辑器**: md-editor-v3 5.8.4
|
||
|
||
## 📋 环境要求
|
||
|
||
- Node.js >= 18
|
||
- pnpm >= 8
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 安装依赖
|
||
|
||
```sh
|
||
pnpm install
|
||
# 或使用项目提供的安装命令
|
||
pnpm i
|
||
```
|
||
|
||
### 开发
|
||
|
||
```sh
|
||
# 启动开发服务器
|
||
pnpm dev
|
||
```
|
||
|
||
### 构建
|
||
|
||
```sh
|
||
# 构建生产版本(不含类型检查)
|
||
pnpm build
|
||
|
||
# 构建生产版本(含类型检查)
|
||
pnpm build:prd
|
||
```
|
||
|
||
### 预览
|
||
|
||
```sh
|
||
# 预览构建结果
|
||
pnpm preview
|
||
```
|
||
|
||
### 测试
|
||
|
||
```sh
|
||
# 运行单元测试
|
||
pnpm test:unit
|
||
```
|
||
|
||
### 代码检查
|
||
|
||
```sh
|
||
# ESLint 代码检查
|
||
pnpm lint
|
||
|
||
# 代码格式化
|
||
pnpm format
|
||
```
|
||
|
||
### 其他命令
|
||
|
||
```sh
|
||
# 清理 node_modules 和 dist
|
||
pnpm clear
|
||
|
||
# 生成 OpenAPI 文档
|
||
pnpm openapi
|
||
|
||
# 更新 LzUI 组件库
|
||
pnpm lzui
|
||
```
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
finyx_frontend/
|
||
├── docs/ # 文档目录
|
||
│ ├── README.md # 文档索引
|
||
│ ├── .cursorrules # Cursor开发规则
|
||
│ ├── ARCHITECTURE.md # 架构说明
|
||
│ ├── API.md # API接口文档
|
||
│ └── COMPONENTS.md # 组件使用文档
|
||
├── env/ # 环境变量配置
|
||
├── mock/ # Mock数据
|
||
├── public/ # 静态资源
|
||
├── src/
|
||
│ ├── api/ # API接口定义
|
||
│ ├── assets/ # 资源文件
|
||
│ ├── bus/ # 事件总线
|
||
│ ├── components/ # 全局组件
|
||
│ ├── directives/ # 自定义指令
|
||
│ ├── enums/ # 枚举定义
|
||
│ ├── layout/ # 布局组件
|
||
│ ├── request/ # HTTP请求封装
|
||
│ ├── router/ # 路由配置
|
||
│ ├── servers/ # 服务层API
|
||
│ ├── stores/ # Pinia状态管理
|
||
│ ├── styles/ # 全局样式
|
||
│ ├── utils/ # 工具函数
|
||
│ └── views/ # 页面组件
|
||
├── vite.config.ts # Vite配置
|
||
├── tsconfig.json # TypeScript配置
|
||
└── package.json # 项目配置
|
||
```
|
||
|
||
## 📖 文档
|
||
|
||
详细的文档请查看 [docs](./docs/) 目录:
|
||
|
||
- [文档索引](./docs/README.md) - 文档导航和快速开始
|
||
- [架构说明](./docs/ARCHITECTURE.md) - 项目架构和核心模块说明
|
||
- [API文档](./docs/API.md) - API接口使用指南
|
||
- [组件文档](./docs/COMPONENTS.md) - 组件使用说明
|
||
- [Cursor规则](./docs/.cursorrules) - 开发规范和代码规范
|
||
|
||
## 🎨 CSS全局变量说明
|
||
|
||
```css
|
||
:root {
|
||
--app-base-px: 8px;
|
||
--app-layout-bg-color: #f5f6f7;
|
||
--app-text-color: #1f2329; 全局文本颜色
|
||
--app-text-color-light-1: rgba(31, 35, 41, 0.1);
|
||
--app-text-color-secondary: #646a73;
|
||
--app-text-color-disable: #bbbfc4;
|
||
--app-input-color-placeholder: #8f959e;
|
||
--app-view-padding: 24px;
|
||
--app-view-bg-color: #ffffff;
|
||
--app-border-color-dark: #bbbfc4;
|
||
--md-bk-hover-color:var(--el-border-color-hover);
|
||
/** header 组件 */
|
||
--app-header-height: 56px;
|
||
--app-header-padding: 0 20px;
|
||
--app-header-bg-color: linear-gradient(90deg, #ebf1ff 24.34%, #e5fbf8 56.18%, #f2ebfe 90.18%);
|
||
--app-logo-color: linear-gradient(180deg, #3370FF 0%, #7f3bf5 100%);
|
||
--app-avatar-gradient-color: linear-gradient(270deg, #9258f7 0%, #3370FF 100%);
|
||
|
||
/* 计算高度 */
|
||
--app-main-height: calc(100vh - var(--app-header-height) - var(--app-view-padding) * 2 - 40px);
|
||
|
||
/** sidebar 组件 */
|
||
--sidebar-bg-color: #ffffff;
|
||
--sidebar-width: 240px;
|
||
/** tag */
|
||
--tag-default-bg: rgba(51, 112, 255, 0.2);
|
||
--tag-default-color: #2b5fd9;
|
||
--tag-success-bg: rgba(52, 199, 36, 0.2);
|
||
--tag-success-color: #2ca91f;
|
||
--tag-warning-bg: rgba(255, 136, 0, 0.2);
|
||
--tag-warning-color: #d97400;
|
||
--tag-danger-bg: rgba(245, 74, 69, 0.2);
|
||
|
||
/** card */
|
||
--card-width: 330px;
|
||
--card-min-height: 166px;
|
||
--card-min-width: 220px;
|
||
|
||
/** setting */
|
||
--setting-left-width: 280px;
|
||
|
||
/** dataset */
|
||
--create-dataset-height: calc(var(--app-main-height) - 70px);
|
||
|
||
/** ai-chat */
|
||
--dialog-bg-gradient-color: linear-gradient(
|
||
188deg,
|
||
rgba(235, 241, 255, 0.2) 39.6%,
|
||
rgba(231, 249, 255, 0.2) 94.3%
|
||
),
|
||
#eff0f1;
|
||
}
|
||
|
||
/* Element Plus CSS全局变量 */
|
||
|
||
:root {
|
||
--el-color-primary: #3370ff;
|
||
--el-menu-item-height: 45px;
|
||
--el-box-shadow-light: 0px 2px 4px 0px rgba(31, 35, 41, 0.12);
|
||
--el-border-color: #dee0e3;
|
||
--el-text-color-regular: #1f2329;
|
||
--el-color-info: #8f959e !important;
|
||
--el-disabled-bg-color: #eff0f1 !important;
|
||
--el-text-color-primary: #1f2329;
|
||
}
|
||
```
|
||
|
||
## 🔧 开发配置
|
||
|
||
### 环境变量
|
||
|
||
环境变量文件存放在 `env/` 目录,通过 `VITE_` 前缀暴露给前端。
|
||
|
||
常用环境变量:
|
||
- `VITE_APP_PORT`: 开发服务器端口
|
||
- `VITE_BASE_PATH`: 基础路径
|
||
- `VITE_MOCK_DEV_SERVER`: 是否启用Mock服务
|
||
- `VITE_BUILD`: 构建模式
|
||
|
||
### 代理配置
|
||
|
||
开发环境的API代理配置在 `vite.config.ts` 中:
|
||
- `/ai-review/api` - 审核服务
|
||
- `/ai-doc/api` - 写作服务
|
||
- `/finyx-bot/api` - Bot服务
|
||
- `/dada` - 认证服务
|
||
|
||
## 🔐 安全机制
|
||
|
||
1. **Token管理**: Token存储在localStorage,自动检测失效并跳转登录
|
||
2. **权限控制**: 路由级和API级权限验证
|
||
3. **请求安全**: 自动添加认证头,统一错误处理
|
||
|
||
## ⚡ 性能优化
|
||
|
||
1. **代码分割**: 路由懒加载,按模块分割chunk
|
||
2. **资源优化**: SVG图标雪碧图,Gzip压缩
|
||
3. **构建优化**: Terser压缩,Tree-shaking
|
||
|
||
## 🤝 贡献指南
|
||
|
||
1. Fork 本仓库
|
||
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 开启 Pull Request
|
||
|
||
## 📝 开发规范
|
||
|
||
- 使用 TypeScript 进行类型检查
|
||
- 遵循 ESLint 和 Prettier 代码规范
|
||
- 使用 Composition API 和 `<script setup>` 语法
|
||
- 组件命名使用 PascalCase
|
||
- 文件命名使用 kebab-case
|
||
- 详细规范请查看 [Cursor规则文档](./docs/.cursorrules)
|
||
|
||
## 📄 许可证
|
||
|
||
本项目为私有项目。
|
||
|
||
## 👥 团队
|
||
|
||
Finyx 开发团队
|
||
|
||
---
|
||
|
||
**版本**: v1.0.0
|