diff --git a/CLAUDE.md b/CLAUDE.md index 41c859f..fd210b1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -116,6 +116,8 @@ qiji/ - [x] **AI 周报摘要** — 接入 DeepSeek V4 (OpenAI 兼容 `/v1/chat/completions`),一键生成拜访概况/客户需求/覆盖分析/下周建议四段式周报摘要,注入亮灯表覆盖数据增强分析,支局长/分管领导专用,Markdown 渲染展示,一键复制(HTTP 环境自动降级 textarea),支持配置任意 OpenAI 兼容模型 - [x] **亮灯表→周报联动** — 点击亮灯表客户卡片自动跳转周报并按客户筛选,周报筛选栏新增客户下拉 - [x] **复制功能修复** — HTTP 内网环境下 Clipboard API 不可用,降级为 textarea + execCommand +- [x] **工作页客户经理列+汇总栏** — 工作计划/商机跟单/要客拜访三个页面新增"客户经理"列(哈希色标签)+ 页面顶部汇总栏(按经理分组统计条数) +- [x] **云端部署** — FRP 隧道 `qiji-backend` (本机 8002→远程 18061),前端 Docker 容器 `qiji-frontend` (远程 18063),OpenResty 反代 `qj.dhdx.fun`,生产模式运行(去掉 --reload),SECRET_KEY 已加固,CORS 已更新 ### 待完善 @@ -131,14 +133,42 @@ qiji/ |--------|------| | `import app.main` | ✅ 成功 | | `vite build` | ✅ 构建成功,输出到 `dist/` | -| 后端运行 | ✅ `http://10.10.10.14:8002` | -| 前端运行 | ✅ `http://10.10.10.14:5173` | +| 后端运行 | ✅ `http://10.10.10.14:8002`,生产模式 `http://localhost:8002/health` | +| 前端运行 | ✅ `http://10.10.10.14:5173` (dev),`https://qj.dhdx.fun` (生产) | | PostgreSQL | ✅ `10.10.10.14:5432/qiji` | | MinIO | ✅ `10.10.10.13:17051`,bucket `qiji-photos` | | Casdoor | ✅ `10.10.10.14:18000`,登录/回调正常 | +| FRP 隧道 | ✅ `qiji-backend` 运行中 (8002→18061) | +| 前端容器 | ✅ `qiji-frontend` 运行中 (18063→80) | | 企微推送 | ⚠️ 待填写有效 Token/AESKey 后测试 | | `docker-compose up` | ⚠️ 需要本地 PostgreSQL + MinIO 实例 | +## 部署架构 + +``` +用户 → https://qj.dhdx.fun → 远程服务器(175.178.19.237) + │ + OpenResty (80/443) + │ + ┌──────────────┴──────────────┐ + ▼ ▼ + 前端容器 FRP 隧道 + qiji-frontend:18063 18061 + │ │ + │ frps→frpc + │ │ + │ 本机后端 :8002 +``` + +| 资源 | 位置 | 端口 | +|------|------|------| +| 后端 (uvicorn) | 本机 | 8002 | +| FRP 隧道 `qiji-backend` | 本机→远程 | 8002→18061 | +| 前端 Docker 容器 | 远程 | 18063→80 | +| OpenResty 反代 | 远程 | `/`→18063, `/api/`→18061 | +| frpc 配置 | `/opt/1panel/apps/frpc/frpc/data/frpc.toml` | Docker 容器管理 | +| 前端构建部署 | `docker build -t qiji-frontend:latest .` → `docker save` → `ssh docker load` | 本机构建,推送远程 | + ## 启动命令 ### 第一步:配置环境变量 @@ -231,3 +261,4 @@ docker-compose up -d 19. **仪表盘跳转**: 四张统计卡片可点击跳转到对应的周报/工作计划/商机/要客页面 20. **客户亮灯表**: 几何圆形图标(●实心圆已拜访/◐半圆临期/○空心圆未拜访/◌虚线未分配),按客户经理折叠卡片流(220px),覆盖率进度条,红灯卡片呼吸动画,未分配客户专区(虚线边框),默认折叠→点击展开明细,支持历史月份翻看。权限:`get_light_board(user_id, role)` — director/leader 看全员+未分配客户,manager 只看自己 21. **AI 周报摘要**: 接入 DeepSeek V4 (模型 `deepseek-v4-flash`,端点 `/v1/chat/completions`,OpenAI 兼容协议)。`build_summary_prompt()` 注入拜访总览+各经理明细+客户需求汇总+纪要分类+亮灯表覆盖数据,生成四段式 Markdown。WeeklyReport.vue 集成:按钮(闪电图标)→loading 脉冲→渲染→一键复制(安全上下文检测降级)。权限:director/leader 可见按钮 +22. **云端部署**: FRP 隧道 (8002→18061) + Docker 前端容器 (18063) + OpenResty 反代。frpc 由 1Panel Docker 容器管理,配置在 `/opt/1panel/apps/frpc/frpc/data/frpc.toml`。前端生产构建用 `.env.production` 指向 Casdoor 公网地址。nginx.conf 只保留 SPA fallback,API 路由由 OpenResty 边缘处理