【问题】盘点明细抽屉列出全部在范围内的物料,其中尚未扫码的行也可以 直接在「实盘数」列填数字。填完前端发 POST /stocktake/update-quantity, 后端只会 UPDATE 已存在的草稿行、找不到就返回 404「未找到盘点记录」, 于是工人填的数字根本没保存,只弹一句「更新失败」。 【为什么不改成 UPSERT】那等于允许不扫码就填数 —— 任何人照账面抄一遍 就能"完成"盘点,扫码这道工序形同虚设,盘盈盘亏也无从查起。 所以这里保持"必须先有草稿行"的语义,改为在 UI 上把这条路堵住。 【改动】 - 前端:draft_id 为空的行不再渲染 el-input-number,改显示灰色「未扫」; 已扫行照常可改。失败时提示改为透传后端 msg,并 fetchInventoryList() 回滚本地被 v-model 改动的值。 - 后端:404 文案由「未找到盘点记录」改为 「该物料尚未扫码,请先扫描条码后再修改实盘数」,作为绕过前端时的兜底。 实测: draft_id 已扫行=11379 → 可编辑;未扫行=None → 不可编辑 绕过前端直接改未扫行 → 404 该物料尚未扫码,请先扫描条码后再修改实盘数
Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.
Learn more about the recommended Project Setup and IDE Support in the Vue Docs TypeScript Guide.