docs: update project docs and clean up redundant files
- PROGRESS.md: update to 2026-05-29 with security hardening (T-005), 4-frontend architecture, AI provider refactoring, discovery features, landing page/referral/quota, desktop layout, admin AI management - AGENTS.md: add AI provider list (Alibaba/NVIDIA, removed Claude/DeepL/Local), DB-driven config, CSRF/rate-limit/CORS notes, admin_ai reload quirk - .env.example: sync with actual config, replace deprecated providers with current Sensenova/OpencodeGo/NVIDIA/Spark/Alibaba - docs/PROJECT_STATUS.md: archive (fully superseded by PROGRESS.md) - Remove generated JS files (_bing_search.js, _batch_search.js) - Remove empty directories (data/corpus, data/models) - Remove backend/.coverage (test artifact) - Fix services/.gitignore to cover _bing_search.js - Include pending AI provider DB admin feature (admin_ai, AIProvider model, AIProviders.vue, migration) and T-008 test report
This commit is contained in:
+216
-153
@@ -1,7 +1,7 @@
|
||||
# TradeMate (外贸小助手) - 项目进度文档
|
||||
|
||||
**更新时间**: 2026-05-18 20:00
|
||||
**状态**: ✅ 管理后台完整可用 + 微信登录配置就绪 + 提取信息结构化展示
|
||||
**更新时间**: 2026-05-29 12:00
|
||||
**状态**: ✅ 生产分支活跃开发 — 安全加固完成 + 4 前端项目并行 + 客户挖掘+AI 模型管理
|
||||
|
||||
---
|
||||
|
||||
@@ -10,8 +10,10 @@
|
||||
| 服务 | 地址 | 状态 |
|
||||
|------|------|------|
|
||||
| 后端 API | http://localhost:8000 | ✅ 运行中 |
|
||||
| 前端 H5 | http://localhost:5173 | ✅ 运行中 |
|
||||
| API 文档 | http://localhost:8000/docs | ✅ 可用 |
|
||||
| 前端 H5 (uni-app) | http://localhost:5173 | ✅ 运行中 |
|
||||
| 管理后台 (admin-frontend) | http://localhost:5173 | ✅ 运行中 |
|
||||
| 用户工作台 (user-frontend) | http://localhost:5174 | ✅ 运行中 |
|
||||
| Redis | localhost:6379 | ✅ 运行中 |
|
||||
| PostgreSQL | localhost:5432 | ✅ 运行中 |
|
||||
|
||||
@@ -23,7 +25,64 @@
|
||||
|
||||
## 二、已完成的工作
|
||||
|
||||
### 1. Bug 修复 (共 13 个)
|
||||
### 1. 项目架构演进 (4 前端项目并行)
|
||||
|
||||
| 项目 | 技术栈 | 端口 | 用途 |
|
||||
|------|--------|------|------|
|
||||
| `backend/` | FastAPI + SQLAlchemy async + asyncpg | 8000 | API 后端 |
|
||||
| `uni-app/` | Vue 3 + uni-app | 5173 | 移动端 H5 / 微信小程序 |
|
||||
| `admin-frontend/` | Vue 3 + Element Plus + Vite | 5173 | PC 管理后台 (base: /admin/) |
|
||||
| `user-frontend/` | Vue 3 + Element Plus + Vite | 5174 | 用户工作台 (base: /workspace/) |
|
||||
|
||||
### 2. 安全加固 (T-005) ✅
|
||||
|
||||
| 功能 | 实现 | 详情 |
|
||||
|------|------|------|
|
||||
| **CORS 白名单** | `app/core/middleware.py` | 限制特定前端域名、方法和请求头 |
|
||||
| **速率限制** | `app/core/middleware.py` | 登录 5次/分、注册 3次/时、改密 3次/5分、支付 20次/分、Admin 30次/分 |
|
||||
| **CSRF 防护** | `app/core/csrf.py` | 双提交 Cookie 模式中间件;auth/payment/profile 等敏感端点必检;webhook 跳过 |
|
||||
| **敏感日志清理** | 全代码审计 | 移除 Token/Key 等敏感信息打印 (T-002) |
|
||||
|
||||
### 3. AI 提供商重构 ✅
|
||||
|
||||
| 变更 | 说明 |
|
||||
|------|------|
|
||||
| **移除** | Claude (`claude.py`)、DeepL (`deepl.py`)、本地模型 (`local.py`) |
|
||||
| **新增** | 阿里机器翻译 (`alibaba.py`)、NVIDIA (`nvidia.py`) |
|
||||
| **主提供商** | Sensenova (商汤, `sensenova.py`) |
|
||||
| **Fallback** | OpencodeGo → NVIDIA → 讯飞 Spark |
|
||||
| **DB 驱动配置** | 新增 `AIProvider` 模型 + `admin_ai.py` API → 管理后台在线增删改 AI 模型 |
|
||||
| **路由规则** | `router.py` 支持 `reload_from_db()` 从数据库实时加载配置 |
|
||||
| **Env 自动种子** | 启动时从 `.env` 读取 API Key 自动写入 DB |
|
||||
|
||||
### 4. 客户挖掘 (Discovery) ✅
|
||||
|
||||
| 功能 | 文件 | 说明 |
|
||||
|------|------|------|
|
||||
| 搜索结果历史 | `discovery_record.py` | 自动保存每次搜索 + 带超时修复 |
|
||||
| 联系人提取 | `discovery.py` | 点击从公司官网抓取 Email/Phone/WhatsApp/WeChat |
|
||||
| 真实搜索结果 | `mcp_search_server.py` | 对接 Google Custom Search 返回真实数据 |
|
||||
|
||||
### 5. 落地页 + 推荐系统 + 付费体系 ✅
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| 落地页 | 静态 marketing 页面 |
|
||||
| 推荐系统 | `referral.py` — 推荐码 + 推荐关系追踪 |
|
||||
| 用量配额 | `usage.py` — 每日功能调用计数 + 上限判断 |
|
||||
| 年费定价 | `payment.py` — 新增 yearly 套餐选项 |
|
||||
| 搜索 API 管理 | `admin_search.py` — 管理后台配置搜索提供商 |
|
||||
|
||||
### 6. PC 桌面端布局 ✅
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| 响应式侧边栏 | `App.vue` 全局侧边栏导航 (admin + user 共用) |
|
||||
| 修复侧边栏显示 | 导航 CSS 移至 App.vue 全局样式 |
|
||||
| 消除重复 tabbar | 桌面端侧边栏替代移动端底部导航 |
|
||||
| 消除组件边界 | 侧边栏完全在 App.vue 内部 |
|
||||
|
||||
### 7. Bug 修复 (共 13 个)
|
||||
|
||||
| 序号 | 文件 | 问题描述 | 状态 |
|
||||
|------|------|----------|------|
|
||||
@@ -34,65 +93,44 @@
|
||||
| 5 | `app/models/quotation.py` | Quotation.user_id 缺少 ForeignKey | ✅ 已修复 |
|
||||
| 6 | `app/api/v1/deps.py` | get_current_user_id 读取参数而非 HTTP Header | ✅ 已修复 |
|
||||
| 7 | `app/core/security.py` | passlib 与 bcrypt 版本不兼容 | ✅ 已替换为直接 bcrypt |
|
||||
| 8 | `app/ai/providers/openai.py` | max_tokens=1000 不足,导致 Sensenova content 为 None | ✅ 已增加到 3000 |
|
||||
| 9 | `app/ai/providers/openai.py` | Sensenova 特殊 reasoning 字段未处理 | ✅ 已增强 fallback 逻辑 |
|
||||
| 10 | `src/App.vue` + 全局样式 | H5 底部导航覆盖内容 — uni-page 高度未扣除 tabbar | ✅ 设置 `height: calc(100% - 50px)` + `overflow-y: auto` |
|
||||
| 11 | `app/api/v1/auth.py` + `deps.py` | **API 500 根因** — 旧 token `sub` 为 `guest_xxx`(非 UUID),DB UUID 列查询抛 500,CORS 头无法返回 → 浏览器误报 CORS 错误 | ✅ 游客 ID 改为合法 UUID;`get_current_user_id` 校验 UUID 格式,旧 token 返回 401 |
|
||||
| 12 | `backend/.env` + `app/main.py` | CORS 配置不当 — `allow_origins` 包含 `*` + FRONTEND_URL 被忽略 | ✅ 去掉通配符,FRONTEND_URL 指向 `http://localhost:5173` |
|
||||
| 13 | `uni-app/src/utils/api.js` | 前端直连后端端口 → 跨域请求 | ✅ BASE_URL 改为 `/api/v1` 走 Vite proxy,同源请求消除 CORS |
|
||||
| 8 | `app/ai/providers/openai.py` | max_tokens=1000 不足 | ✅ 已增加到 3000 |
|
||||
| 9 | `app/ai/providers/openai.py` | Sensenova reasoning 字段未处理 | ✅ 已增强 fallback 逻辑 |
|
||||
| 10 | `src/App.vue` + 全局样式 | H5 底部导航覆盖内容 | ✅ 已修复 |
|
||||
| 11 | `app/api/v1/auth.py` + `deps.py` | API 500 根因 — 游客 UUID 格式问题 | ✅ 已修复 |
|
||||
| 12 | `backend/.env` + `app/main.py` | CORS 配置不当 | ✅ 已修复 |
|
||||
| 13 | `uni-app/src/utils/api.js` | 前端直连后端端口 → 跨域 | ✅ 已修复 |
|
||||
|
||||
### 2. 游客模式 (Guest Mode) 实现 ✅
|
||||
|
||||
#### 后端实现
|
||||
### 8. 游客模式 (Guest Mode) ✅
|
||||
|
||||
| 功能 | 接口 | 说明 |
|
||||
|------|------|------|
|
||||
| 游客登录 | `POST /api/v1/auth/login/guest` | 生成 JWT,包含 `is_guest: true`,无需数据库用户 |
|
||||
| 公开翻译 | `POST /api/v1/translate/public/translate` | 无需认证,支持中英互译 |
|
||||
| 公开信息提取 | `POST /api/v1/translate/public/extract` | 无需认证,提取客户询盘信息 |
|
||||
| 游客登录 | `POST /api/v1/auth/login/guest` | 生成 JWT,包含 `is_guest: true` |
|
||||
| 公开翻译 | `POST /api/v1/translate/public/translate` | 无需认证 |
|
||||
| 公开信息提取 | `POST /api/v1/translate/public/extract` | 无需认证 |
|
||||
|
||||
**游客登录返回示例**:
|
||||
```json
|
||||
{
|
||||
"access_token": "eyJhbGciOiJIUzI1NiIs...",
|
||||
"refresh_token": "eyJhbGciOiJIUzI1NiIs...",
|
||||
"token_type": "bearer",
|
||||
"user": {
|
||||
"id": "guest_185039a65035",
|
||||
"phone": null,
|
||||
"username": "游客用户",
|
||||
"tier": "guest",
|
||||
"is_guest": true
|
||||
}
|
||||
}
|
||||
```
|
||||
### 9. 管理后台完整可用
|
||||
|
||||
#### 前端实现
|
||||
|
||||
| 文件 | 变更 |
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| `src/utils/api.js` | 新增 `authApi.guestLogin()`、`translateApi.publicTranslate()`、`translateApi.publicExtract()` 方法 |
|
||||
| `src/pages/login/login.vue` | "快速体验"按钮调用游客登录并存储 token |
|
||||
| `src/pages/index/index.vue` | 游客模式下使用公开 API 端点 |
|
||||
| 用户管理 | 列表/搜索/改套餐/改角色/启用禁用 |
|
||||
| 使用统计 | 今日各功能调用 + 7 日趋势 |
|
||||
| 操作日志 | 带筛选器(动作/用户ID/日期范围)+ 分页 |
|
||||
| 系统配置 | 卡片表单(input/switch/textarea),逐字段编辑 |
|
||||
| AI 模型配置 | 在线增删改 AI 提供商、重载配置、启停控制 |
|
||||
| 搜索配置 | 搜索提供商管理 |
|
||||
|
||||
#### 游客模式测试结果
|
||||
### 10. 其他增强
|
||||
|
||||
| 测试项 | 结果 |
|
||||
|--------|------|
|
||||
| 游客登录 | ✅ 返回 JWT,包含 `is_guest: true` |
|
||||
| 公开翻译 (EN→ZH) | ✅ 正常工作 |
|
||||
| 公开翻译 (ZH→EN) | ✅ 正常工作 |
|
||||
| 公开信息提取 | ✅ 正确提取 intent、product、quantity、contact_info |
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| 加载反馈 | 所有 AI/长操作增加用户友好 loading 状态 |
|
||||
| 提取信息结构化展示 | 翻译页/首页显示卡片式字段列表(中文标签) |
|
||||
| 微信静默登录 | `.env` 配置 + 前端 H5 公众号 OAuth |
|
||||
| 注册/登录记日志 | `user.register`/`login`/`login_guest` 写入 `usage_logs` |
|
||||
| Docker Compose 增强 | 添加 nginx/admin/user/uni-app 服务 + 独立网络 + Redis AOF |
|
||||
| CSRF 保护 | 双提交 Cookie 模式,auth/payment/profile 必检 |
|
||||
|
||||
### 3. 问题根因分析
|
||||
|
||||
**Sensenova API 返回 None 的问题**:
|
||||
- 原因: Sensenova 模型有 `reasoning` 字段(思考过程),当 `max_tokens` 不足时,模型先用 tokens 思考,还没输出 content 就被截断了
|
||||
- 解决方案:
|
||||
1. 增加 `max_tokens` 从 1000 到 3000
|
||||
2. 增强 fallback 逻辑:当 `content` 为 None 时,尝试从 `reasoning` 中提取最终答案,支持多种模式匹配
|
||||
|
||||
### 4. 基础 API 测试通过
|
||||
### 11. 核心 API 测试通过
|
||||
|
||||
| 功能 | 接口 | 状态 |
|
||||
|------|------|------|
|
||||
@@ -100,132 +138,126 @@
|
||||
| 用户注册 | `POST /api/v1/auth/register` | ✅ 200 |
|
||||
| 用户登录 | `POST /api/v1/auth/login` | ✅ 200 |
|
||||
| 游客登录 | `POST /api/v1/auth/login/guest` | ✅ 200 |
|
||||
| 获取用户信息 | `GET /api/v1/auth/me` | ✅ 200 |
|
||||
| 翻译 | `POST /api/v1/translate/` | ✅ 正常 |
|
||||
| 智能回复 | `POST /api/v1/translate/reply` | ✅ 正常 |
|
||||
| 信息提取 | `POST /api/v1/translate/extract` | ✅ 正常 |
|
||||
| 营销文案 | `POST /api/v1/marketing/generate` | ✅ 正常 |
|
||||
| 报价单生成 | `POST /api/v1/quotations/generate-from-inquiry` | ✅ 正常 |
|
||||
| 数据分析 | `GET /api/v1/analytics/overview` | ✅ 正常 |
|
||||
| 产品 CRUD | `/api/v1/products/*` | ✅ 正常 |
|
||||
| 客户 CRUD | `/api/v1/customers/*` | ✅ 正常 |
|
||||
| 数据分析 | `/api/v1/analytics/*` | ✅ 正常 |
|
||||
| 套餐计划 | `GET /api/v1/payment/plans` | ✅ 正常 |
|
||||
|
||||
### 5. AI 功能测试 (全部通过 ✅)
|
||||
|
||||
| 功能 | 接口 | 状态 | 测试结果 |
|
||||
|------|------|------|----------|
|
||||
| 翻译 | `POST /api/v1/translate/` | ✅ 正常 | 中译英、英译中都正常 |
|
||||
| 智能回复 | `POST /api/v1/translate/reply` | ✅ 正常 | 生成 2 种风格回复建议 |
|
||||
| 信息提取 | `POST /api/v1/translate/extract` | ✅ 正常 | 正确提取客户意图、产品、数量 |
|
||||
| 公开翻译 | `POST /api/v1/translate/public/translate` | ✅ 正常 | 无需认证,中英互译 |
|
||||
| 公开提取 | `POST /api/v1/translate/public/extract` | ✅ 正常 | 无需认证,提取信息 |
|
||||
| 营销文案 | `POST /api/v1/marketing/generate` | ✅ 正常 | 生成 3 种风格文案 |
|
||||
| 报价单生成 | `POST /api/v1/quotations/generate-from-inquiry` | ✅ 正常 | 从询盘自动生成报价单 |
|
||||
| 数据分析 | `GET /api/v1/analytics/overview` | ✅ 正常 | 客户/翻译/报价单统计 |
|
||||
|
||||
### 6. 前端 H5 服务
|
||||
|
||||
前端 uni-app + Vue 3 项目已启动:
|
||||
- 地址: http://localhost:5173
|
||||
- 后端 API 代理配置: Vite proxy (`/api` → `http://localhost:8000`)
|
||||
|
||||
**前端功能**:
|
||||
- 登录页: 支持 "快速体验" 进入游客模式,微信登录按钮 H5 隐藏(条件编译)
|
||||
- 首页: 游客模式显示快速体验区域,支持翻译和信息提取;登录用户显示统计卡片、待跟进客户、快捷操作
|
||||
- 游客模式: 使用公开 API 端点,无需登录
|
||||
|
||||
### 7. 底部导航修复 & 自定义 tabbar 升级
|
||||
|
||||
| 阶段 | 改动 | 说明 |
|
||||
|------|------|------|
|
||||
| 切回原生 tabbar | `pages.json` custom: true → false | 解决自定义 tabbar 因 `position: fixed` + 父级 `transform` 定位异常问题 |
|
||||
| 清理 CSS 遗留 | `App.vue` 删除 tabbar 相关 CSS | 删除 `height: calc(100% - 50px)`、`z-index` 等,让框架自动管理原生 tabbar 布局 |
|
||||
| 恢复快捷按钮 | `index.vue` quick-actions 恢复 | 首页快捷操作按钮重新显示 |
|
||||
| 升级自定义 tabbar | `pages.json` custom: false → true | 切回自定义 tabbar 支持 emoji 图标 |
|
||||
| 修复 emoji 渲染 | `custom-tab-bar/index.vue` | `line-height: 1` → `1.5`,追加 emoji 字体族 `Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji` |
|
||||
|
||||
### 9. 管理后台完整可用 + 注册登录日志
|
||||
|
||||
| 功能 | 文件 | 说明 |
|
||||
|------|------|------|
|
||||
| 用户管理(列表/搜索/改套餐/改角色/启用禁用) | `admin.py` + `admin.vue` | 全部对接真实 API |
|
||||
| 使用统计 | `admin.py` | 查询 `usage_logs` 表,含今日各功能调用 + 7日趋势 |
|
||||
| 操作日志 | `admin.py` | 带筛选器(动作/用户ID/日期范围)+ 分页 |
|
||||
| 系统配置 | `admin.vue` | 卡片表单(input/switch/textarea),按配置项逐字段编辑 |
|
||||
| 注册/登录记日志 | `auth.py` | `user.register`/`user.login`/`user.login_guest`/`user.wechat_login` 写入 `usage_logs` |
|
||||
| 管理后台搜索按钮反馈 | `admin.vue` | 按钮加载态 "搜索中..." + 结果数 toast |
|
||||
|
||||
### 10. 提取信息结果结构化展示
|
||||
|
||||
| 文件 | 改前 | 改后 |
|
||||
|------|------|------|
|
||||
| `translate.vue` | 显示原始 JSON | 卡片式字段列表(字段名中文,如"产品名称""数量") |
|
||||
| `index.vue` | 显示原始 JSON | 同上 |
|
||||
|
||||
### 11. 微信静默登录配置
|
||||
|
||||
`.env` 已写入 `WECHAT_APP_ID`/`WECHAT_APP_SECRET`,前端 `login.vue` 已内置:
|
||||
- **微信小程序**:`uni.login()` → code → `/auth/wechat-login`
|
||||
- **H5 微信浏览器**:公众号 OAuth `snsapi_base` 静默授权
|
||||
|
||||
### 8. 首页快捷入口重新设计
|
||||
|
||||
底部导航已有"翻译、客户、营销、报价",首页快捷入口原先完全重复。重新设计为从"更多功能"区提取最高频功能:
|
||||
|
||||
| 原快捷入口 | 新快捷入口 | 说明 |
|
||||
|-----------|-----------|------|
|
||||
| 智能翻译 → 底部导航已有 | **产品库** | 外贸人每天查产品 |
|
||||
| 客户管理 → 底部导航已有 | **跟进** | 写跟进是日常高频动作,带待办角标 |
|
||||
| 营销文案 → 底部导航已有 | **数据** | 一键看业务概览 |
|
||||
| 报价单 → 底部导航已有 | **通知** | 及时看消息提醒,带未读角标 |
|
||||
|
||||
同时 `goToPage` 函数重构为按 tabbar 页面列表自动判断 `switchTab`/`navigateTo`,不再硬编码。
|
||||
|
||||
---
|
||||
|
||||
## 三、待办事项
|
||||
|
||||
### 中优先级
|
||||
1. 管理后台统计/日志页有数据验证(目前 `usage_logs` 为空,显示暂无数据)
|
||||
|
||||
### 低优先级
|
||||
1. 测试 WhatsApp 集成
|
||||
2. 性能优化测试
|
||||
3. 自定义 tabbar emoji 渲染效果验证(若仍有问题,改用 `iconPath`/`selectedIconPath` 图片图标)
|
||||
1. 管理后台统计/日志页有数据验证(目前 `usage_logs` 为空,显示暂无数据)
|
||||
2. 测试 WhatsApp 真实集成(需 Meta Business 认证)
|
||||
3. 性能优化测试
|
||||
4. 微信小程序端验证
|
||||
|
||||
---
|
||||
|
||||
## 四、技术栈
|
||||
|
||||
| 层级 | 技术 |
|
||||
### 4.1 后端
|
||||
|
||||
| 技术 | 版本 | 用途 |
|
||||
|------|------|------|
|
||||
| Python | 3.11+ | 运行环境 |
|
||||
| FastAPI | latest | Web 框架 |
|
||||
| SQLAlchemy | 1.4 async | ORM |
|
||||
| PostgreSQL | 15 | 主数据库 |
|
||||
| Redis | 7 | 缓存 / 队列 / 速率限制 |
|
||||
| Celery | 5.0+ | 定时任务 / 异步任务 |
|
||||
| pgvector | latest | 向量存储 (语料库语义搜索) |
|
||||
|
||||
### 4.2 AI 提供商
|
||||
|
||||
| 提供商 | 类型 | 用途 |
|
||||
|--------|------|------|
|
||||
| Sensenova (商汤) | 主提供商 | 翻译/回复/营销/提取 |
|
||||
| OpencodeGo | Fallback | 翻译/回复/营销/提取 |
|
||||
| NVIDIA | Fallback | 通用对话 |
|
||||
| 讯飞 Spark | Fallback | 通用对话 |
|
||||
| 阿里机器翻译 | 专用 | 翻译 (translate) |
|
||||
|
||||
### 4.3 前端
|
||||
|
||||
| 项目 | 技术 | 用途 |
|
||||
|------|------|------|
|
||||
| uni-app | Vue 3 + uni-app | 移动端 H5 / 微信小程序 |
|
||||
| admin-frontend | Vue 3 + Element Plus + Vite | PC 管理后台 |
|
||||
| user-frontend | Vue 3 + Element Plus + Vite | 用户工作台 |
|
||||
|
||||
### 4.4 部署
|
||||
|
||||
| 技术 | 用途 |
|
||||
|------|------|
|
||||
| 后端 | FastAPI + SQLAlchemy + asyncpg |
|
||||
| 数据库 | PostgreSQL + Redis |
|
||||
| AI 提供商 | Sensenova (星火大模型), Spark (科大讯飞) |
|
||||
| 前端 | uni-app + Vue 3 + Vite |
|
||||
| Docker | 容器化 |
|
||||
| Docker Compose | 编排 (含 nginx/admin/user/uni-app) |
|
||||
| Nginx | 反向代理 / SPA fallback |
|
||||
| Systemd | 进程管理 |
|
||||
|
||||
---
|
||||
|
||||
## 五、历史变更记录
|
||||
## 五、目录结构
|
||||
|
||||
| 日期 | 变更内容 |
|
||||
|------|----------|
|
||||
| 2026-05-12 | 修复 9 个 Bug,启动后端+前端服务,完成所有 API 测试,AI 功能全部正常 |
|
||||
| 2026-05-12 | 实现游客模式:新增 `/api/v1/auth/login/guest`、`/api/v1/translate/public/*` 端点,前端支持游客体验 |
|
||||
| 2026-05-12 | 修复 H5 底部导航覆盖问题:精简 App.vue,uni-page 设置 `calc(100% - 50px)` + 独立滚动 |
|
||||
| 2026-05-13 | 修复 CORS + API 500 根因:游客 UUID 格式、Vite proxy 替代直连、CORS 配置修正 |
|
||||
| 2026-05-13 | 自定义 tabbar 升级:切回 `custom: true`,修复 emoji `line-height` 和字体族 |
|
||||
| 2026-05-13 | 首页快捷入口重新设计:产品库/跟进/数据/通知,替换原有重复项 |
|
||||
| 2026-05-18 | 管理后台完整可用(用户/统计/日志/配置)+ 注册登录记日志 + 提取信息结构化展示 + 微信登录配置就绪 |
|
||||
```
|
||||
trade-assistant/
|
||||
├── backend/ # FastAPI 后端
|
||||
│ ├── app/
|
||||
│ │ ├── api/v1/ # REST API (30+ 路由模块)
|
||||
│ │ ├── ai/ # AI 抽象层 (router + 5 providers)
|
||||
│ │ ├── core/ # 安全/中间件/异常 (含 CSRF + 限流)
|
||||
│ │ ├── models/ # 数据模型 (25+ 模型)
|
||||
│ │ ├── services/ # 业务逻辑 (30+ 服务)
|
||||
│ │ ├── workers/ # Celery 任务
|
||||
│ │ └── main.py # FastAPI 入口
|
||||
│ ├── alembic/ # 数据库迁移
|
||||
│ ├── tests/ # 测试
|
||||
│ └── Dockerfile
|
||||
├── uni-app/ # 移动端 H5 + 小程序
|
||||
├── admin-frontend/ # PC 管理后台 (Vue 3 + Element Plus)
|
||||
├── user-frontend/ # 用户工作台 (Vue 3 + Element Plus)
|
||||
├── nginx/ # Nginx 配置
|
||||
├── docker-compose.yml # Docker 编排 (6 服务)
|
||||
├── scripts/ # 运维脚本
|
||||
├── systemd/ # Systemd 服务配置
|
||||
├── docs/ # 设计文档
|
||||
└── data/ # 数据目录
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**启动脚本**: `/tmp/start_trademate.sh`
|
||||
**日志文件**:
|
||||
- 后端: `/tmp/trademate_backend.log`
|
||||
- 前端: `/tmp/trademate_frontend.log`
|
||||
## 六、开发命令速查
|
||||
|
||||
```bash
|
||||
# 后端
|
||||
cd backend && source venv/bin/activate && uvicorn app.main:app --reload --port 8000
|
||||
|
||||
# 移动端 H5
|
||||
cd uni-app && npm run dev:h5
|
||||
|
||||
# 管理后台
|
||||
cd admin-frontend && npm run dev # :5173, base: /admin/
|
||||
|
||||
# 用户工作台
|
||||
cd user-frontend && npm run dev # :5174, base: /workspace/
|
||||
|
||||
# 测试
|
||||
cd backend && venv/bin/pytest
|
||||
|
||||
# 迁移
|
||||
cd backend && alembic upgrade head
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、快速验证
|
||||
## 七、快速验证
|
||||
|
||||
用户可以在浏览器中访问:
|
||||
- **前端 H5**: http://localhost:5173
|
||||
- **API 文档**: http://localhost:8000/docs
|
||||
|
||||
@@ -239,4 +271,35 @@
|
||||
|
||||
---
|
||||
|
||||
## 八、部署架构
|
||||
|
||||
```
|
||||
trade.yuzhiran.com/
|
||||
├── / → 静态营销落地页
|
||||
├── /app/ → uni-app 构建 (移动端 H5)
|
||||
├── /admin/ → admin-frontend 构建 (管理后台)
|
||||
├── /workspace/ → user-frontend 构建 (用户工作台)
|
||||
└── /api/ → Nginx proxy → 127.0.0.1:8002
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 九、历史变更记录
|
||||
|
||||
| 日期 | 变更内容 |
|
||||
|------|----------|
|
||||
| 2026-05-29 | 安全加固 (T-005): 限流/CSRF/CORS + AI 提供商 DB 管理 + 客户挖掘联系人提取 |
|
||||
| 2026-05-28 | 加载反馈 + 搜索历史自动保存 + 超时修复 |
|
||||
| 2026-05-26 | 落地页 + 推荐系统 + 用量配额 + 搜索 API 管理 + 年费定价 |
|
||||
| 2026-05-24 | admin-frontend/user-frontend 独立项目 + 认证/发票/客户挖掘 |
|
||||
| 2026-05-22 | 桌面端响应式布局 + 侧边栏导航 |
|
||||
| 2026-05-21 | 微信支付 + 翻译配额管理 |
|
||||
| 2026-05-19 | AI 助手二期 + 可配置 prompt + FAQ 匹配 + NVIDIA 提供商 |
|
||||
| 2026-05-18 | 管理后台完整可用 + 注册登录记日志 + 提取信息结构化展示 + 微信静默登录 |
|
||||
| 2026-05-15 | OpencodeGo 主提供商 + 路由系统 + AI 模型配置管理 |
|
||||
| 2026-05-13 | 自定义 tabbar + 首页快捷入口重新设计 |
|
||||
| 2026-05-12 | MVP: 核心 API + 前端 H5 + 游客模式 |
|
||||
|
||||
---
|
||||
|
||||
*本文档由任务进度跟踪系统维护*
|
||||
|
||||
Reference in New Issue
Block a user