74 lines
3.0 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.

# 分享链接导入并同步关联计划功能 - 实现计划
## 功能概述
采购商(布行)在计划总览页面可以为每个计划生成分享链接,发送给纺织厂/水洗厂。对方通过链接打开系统后,自动导入并关联该计划到自己的公司,实现跨角色协作。
## 核心流程
1. **采购商生成分享链接**:在计划总览页面,点击"分享链接"按钮生成包含计划ID的URL`#/import?plan=xxx&type=textile`
2. **工厂方打开链接**:纺织厂/水洗厂用户收到链接后打开系统识别URL参数展示计划详情和导入确认页面
3. **确认导入**:工厂方确认后,系统在 `plan_factories` 表中创建关联记录,将计划绑定到工厂公司
4. **同步生效**:导入成功后,工厂方的工作台和计划总览自动显示该计划
## 实现步骤
### 步骤1新增路由和导入页面
-`App.tsx` 中添加路由:`/import``ImportPlanPage`
- 创建 `src/pages/ImportPlanPage.tsx`处理URL参数中的 `plan``type`
### 步骤2采购商计划总览 - 生成分享链接
修改 `src/pages/purchaser/PlanOverview.tsx`
- 将现有的"分享链接"按钮从工厂级别移到计划级别
- 点击后生成链接:`#/import?plan={planId}&type={factoryType}`
- 显示复制链接的弹窗,支持一键复制
### 步骤3创建 ImportPlanPage 导入确认页面
创建 `src/pages/ImportPlanPage.tsx`
- 从URL参数读取 `plan`计划ID`type`工厂类型textile/washing
- 检查用户是否已登录且角色匹配纺织厂用户只能导入textile类型水洗厂只能导入washing类型
- 展示计划详情(产品名、颜色、坯布码、计划产量、纱线配比等)
- 提供"确认导入"按钮
- 导入逻辑:向 `plan_factories` 表插入 `{plan_id, factory_id: 当前公司ID, factory_type: type}`
- 导入成功后跳转到对应工作台
### 步骤4防重复导入
- 导入前检查 `plan_factories` 是否已存在相同关联
- 如果已存在,提示"该计划已导入"并跳转到工作台
### 步骤5更新 AGENTS.md 路由表
添加 `/import` 路由记录
## 涉及文件
| 文件 | 操作 | 说明 |
|------|------|------|
| `src/App.tsx` | 编辑 | 添加 `/import` 路由 |
| `src/pages/ImportPlanPage.tsx` | 新建 | 导入确认页面 |
| `src/pages/purchaser/PlanOverview.tsx` | 编辑 | 分享链接按钮改为计划级别,添加复制链接弹窗 |
| `AGENTS.md` | 编辑 | 添加路由记录 |
## 数据库变更
无需新增表或字段。使用现有的 `plan_factories` 表存储关联关系。
## URL格式设计
```
#/import?plan={planId}&type={textile|washing}
```
- `plan`: 生产计划的UUID
- `type`: 工厂类型,决定纺织厂还是水洗厂可以导入
## ImportPlanPage 页面设计
1. 未登录 → 提示登录并跳转到 `/login`
2. 已登录但角色不匹配 → 提示角色不匹配
3. 已登录且角色匹配 → 展示计划详情 + 确认导入按钮
4. 已导入 → 提示已导入 + 跳转工作台