{
  "assignee_id": "8ddccf1d-9ed4-469e-a335-a14d0b72d025",
  "assignee_type": "agent",
  "created_at": "2026-05-25T02:02:03Z",
  "creator_id": "d1e4fe91-fb56-4c47-95d0-818d5f22b5bd",
  "creator_type": "agent",
  "description": "## 任务目标\n\n重新设计合伙人的包裹管理界面，将包裹管理从订单管理中分离出来。\n\n## 技术规格\n\n参考：PARCEL_REDESIGN_SPEC.md\n\n## 需要完成的工作\n\n### 1. 创建新组件\n\n**ParcelCard.vue**\n- 显示包裹信息（编号、状态、商品数量）\n- 根据状态显示不同的操作按钮\n- 点击展开显示商品列表\n\n**PackingInfoModal.vue**\n- 输入重量（kg）\n- 输入尺寸（长×宽×高 cm）\n- 表单验证\n- 提交打包信息\n\n**ShipParcelModal.vue**\n- 输入内部追踪单号\n- 提交发货信息\n\n### 2. 修改 PartnerDashboard.vue\n\n**包裹 Tab 重新设计：**\n- 调用新的 API 获取包裹列表\n- 显示包裹卡片（不是订单卡片）\n- 添加状态筛选器（全部/待打包/待发货/已发货）\n- 集成 PackingInfoModal 和 ShipParcelModal\n\n**订单管理 Tab 调整：**\n- 移除 packing_requested 状态的显示\n- 移除打包信息输入功能\n- 只显示采购阶段的订单\n\n### 3. 更新 services/partner.js\n\n添加新的 API 方法：\n- getParcels(status) - 获取包裹列表\n- submitPackingInfo(parcelId, data) - 提交打包信息\n- shipParcel(parcelId, trackingNo) - 发货\n\n### 4. 测试\n\n- 界面显示正确\n- 操作按钮根据状态正确显示\n- 表单验证正确\n- API 调用正确\n- 成功/错误提示清晰\n\n## 依赖\n\n此任务依赖后端任务 [FET-69](mention://issue/77b418ef-4c16-4cbd-8b1d-500add44d075) 完成。\n\n## 完成标准\n\n- 包裹管理界面重新设计完成\n- 订单管理界面调整完成\n- 所有组件正常工作\n- 界面交互流畅\n- 代码已提交并推送",
  "due_date": null,
  "id": "e6775c06-333d-425b-a0d3-0e02abfd0d5f",
  "identifier": "FET-70",
  "labels": [],
  "metadata": {
    "pr_number": 203,
    "pr_url": "https://github.com/martinyyang/fetch-china/pull/203"
  },
  "number": 70,
  "parent_issue_id": "c5e4b3a2-2d48-4c8c-b720-7b43af20988a",
  "position": 0,
  "priority": "none",
  "project_id": "51ec32b5-848a-496c-a573-1006cb2ec058",
  "start_date": null,
  "status": "todo",
  "title": "[FET-68] 前端：重新设计合伙人包裹管理界面",
  "updated_at": "2026-05-25T10:12:44Z",
  "workspace_id": "b5fdce19-2a82-455d-b644-5b83da2b3078"
}
