diff --git a/docs/景耀项目工作日志.xlsx b/docs/景耀项目工作日志.xlsx new file mode 100644 index 00000000..73bf2847 Binary files /dev/null and b/docs/景耀项目工作日志.xlsx differ diff --git a/docs/物料编码查询功能添加.docx b/docs/物料编码查询功能添加.docx new file mode 100644 index 00000000..79f75616 Binary files /dev/null and b/docs/物料编码查询功能添加.docx differ diff --git a/docs/物料编码查询功能添加.pdf b/docs/物料编码查询功能添加.pdf new file mode 100644 index 00000000..e6925528 Binary files /dev/null and b/docs/物料编码查询功能添加.pdf differ diff --git a/docs/移动端适配/采购合同生成入库单移动端组件设计方案.md b/docs/移动端适配/采购合同生成入库单移动端组件设计方案.md new file mode 100644 index 00000000..1a78f14b --- /dev/null +++ b/docs/移动端适配/采购合同生成入库单移动端组件设计方案.md @@ -0,0 +1,120 @@ +# 采购合同生成入库单移动端组件设计方案 + +## 目标 + +在不改动现有采购合同查询组件 `src/views/PurchasingManagement/OrderInquiry/index.vue` 的前提下,将其中“生成入库单”功能设计为一个独立的新组件,优先适配手机和平板操作,同时在桌面端保持可用。 + +![采购合同生成入库单移动端预览](./采购合同生成入库单移动端预览.svg) + +## 现状梳理 + +现有入口位于采购合同查询页面工具栏,按钮触发 `addArrivalNotice()`,打开 `width="1000px"` 的 `el-dialog`。弹窗内包含供应商选择、合同号选择、查询、入库单号展示、合同明细表、到货数量输入、是否质检开关、推送部门展示、到货汇总、提交和取消。 + +现有逻辑主要包含: + +- `getArrivalContract()`:按供应商加载可生成入库单的采购合同。 +- `searchArrivalDetail()`:按供应商和合同查询合同明细,并读取后端返回的入库单号。 +- `submitArrivalNotice()`:筛选本次到货数量大于 0 的明细,按是否质检拆分提示,并调用新增接口提交。 +- 涉及接口名称包括 `仓储管理_采购入库合同_查询`、`采购管理_采购入库合同明细_查询`、`采购管理_到货内容_新增`。 + +当前问题是弹窗宽度固定、明细依赖横向表格,手机端选择合同、输入到货数量、切换质检开关和确认汇总都不方便。 + +## 新组件建议 + +建议新增独立视图组件: + +`src/views/PurchasingManagement/PurchaseInboundCreateMobile/index.vue` + +也可以在后续实现时拆成业务组件: + +`src/components/PurchaseInboundCreateMobile/index.vue` + +若需要菜单直接访问,使用视图路径;若只作为其他页面内嵌入口,使用组件路径。为了满足“单独做一个新组件方便移动端使用”,本方案优先建议新增视图组件,后端配置菜单后通过动态路由进入,不影响原采购合同查询页面。 + +## 页面布局 + +移动端采用单列流程: + +1. 顶部固定标题区:显示“生成入库单”、当前状态、返回按钮。 +2. 查询条件区:供应商、合同号使用整行选择框,合同号随供应商联动加载。 +3. 单据摘要区:展示入库单号、本次到货物料数、需质检数、直入库数。 +4. 明细卡片区:每个物料一张卡片,展示合同号、物料名称、图号或型号、采购数、已到数、可到数。 +5. 卡片操作区:到货数量使用 `el-input-number`,质检使用 `el-switch`,推送部门用标签显示“质检部/仓库”。 +6. 底部固定操作栏:提交入库单、清空本次数量。 + +桌面端自适应为双栏: + +- 左侧为条件和摘要。 +- 右侧为明细表格或卡片网格。 +- 最大宽度控制在内容区内,不再使用固定 1000px 弹窗。 + +## 交互流程 + +1. 用户进入新组件。 +2. 选择供应商,组件调用合同查询接口刷新合同列表。 +3. 选择合同号后自动查询明细,也保留“查询”按钮用于手动刷新。 +4. 明细默认 `到货数量=0`、`需要质检=false`。 +5. 用户填写某一行到货数量后,该行质检开关可操作。 +6. 汇总区实时计算本次到货条数、需质检条数、直入库条数。 +7. 提交前校验至少一条明细 `到货数量 > 0`,并校验到货数量不超过 `采购数 - 已到数`。 +8. 提交成功后提示成功、清空当前明细或停留展示结果,由实现时按现场使用习惯确定。 + +## 数据设计 + +组件内部建议沿用原页面字段,不新增后端字段: + +- `arrivalSupplierName`:供应商流水号。 +- `arrivalContractNo`:采购合同流水号。 +- `arrivalContractLabel`:采购合同编号。 +- `入库单号`:后端返回的入库单号。 +- `arrivalTableData`:合同明细数组。 +- `到货数量`:前端临时输入字段。 +- `需要质检`:前端临时开关字段。 + +提交参数继续沿用原逻辑: + +- `通知内容` +- `发起人` +- `采购合同流水号` +- `到货数组` +- `物料流水号组` +- `质检标志组` +- `采购合同` +- `供应商流水号` +- `入库单号` + +## 技术实现要点 + +- 使用 Vue 2 Options API,不使用 Composition API。 +- 请求继续使用 `this.CreateData()` 和 `this.ExecDatabase()`,不单独封装新的请求客户端。 +- 生命周期使用普通函数,不使用箭头函数。 +- 移动端样式放在 `