From 32cb5469c4e7fcb7bb1a00602a61b5f8de2ebc24 Mon Sep 17 00:00:00 2001 From: yueli Date: Fri, 11 Sep 2026 11:33:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(stocktake):=20=E6=AC=A2=E8=BF=8E=E9=A1=B5?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=85=AC=E5=8F=B8=E7=BB=B4=E5=BA=A6=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=A9=B1=E5=8A=A8=EF=BC=8C=E5=A4=9A=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E7=9B=98=E7=82=B9=E4=BC=9A=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原入口只有一个「开始新盘点」,多台 PDA 各开各的会话,无法协同。 - 新增公司选择器:普通用户锁定并默认本公司(后端本就强制隔离), 超管必须显式选择,未选时入口按钮禁用;本公司若不在下拉列表中 则补进去,避免 el-select 显示为空。 - 选定公司后调用 /draft/active-session 探测该公司是否已有进行中的 盘点。服务端为唯一事实来源,localStorage 仅作缓存。 - 状态驱动渲染入口按钮: 场景 A(已有活跃会话)→ 绿色「加入正在进行的盘点」,并提示当前 进度项数;同时保留次要入口「开启新一轮盘点」,否则公司一旦有过 草稿就永远开不了新一轮,点击走 10 秒确认弹窗。 场景 B(无活跃会话)→ 蓝色「开始新盘点」。 - 切换公司时清空本地会话并重新探测,避免跨公司串会话。 - 移除此前「刷新后请求 /draft/list 取第一条草稿猜 session_id」的逻辑: 该列表无会话/用户过滤,取到的是全库 SKU 字典序最小的那条草稿, 与当前用户和公司都无关。 - 所有盘点请求携带当前公司;导出、生成漏盘、改实盘数等 POST 请求 亦经 query string 传递公司。 --- .../src/views/stock/stocktake/index.vue | 379 +++++++++++++----- 1 file changed, 276 insertions(+), 103 deletions(-) diff --git a/inventory-web/src/views/stock/stocktake/index.vue b/inventory-web/src/views/stock/stocktake/index.vue index c0ba2cb..51d3df8 100644 --- a/inventory-web/src/views/stock/stocktake/index.vue +++ b/inventory-web/src/views/stock/stocktake/index.vue @@ -9,27 +9,70 @@

库存盲盘系统

单件自动确认,多件弹窗录入

+ +
+ + + +
{{ companyHint }}
+
+
- - 开始新盘点 + + + 请先选择公司 + + + + - 继续上次盘点 ({{ serverDraftCount }}项) + 开始新盘点
- 数据实时同步,支持断点续传 + 数据实时同步,同公司多设备共享盘点会话
@@ -119,7 +162,7 @@
-

存在未完成记录,开始新盘点将清除它们,确定吗?

+

存在未完成的盘点记录。开启新一轮盘点会生成新的会话,原有数据将保留,之后仍可通过「继续上次盘点」回到之前的会话。确定开始吗?

@@ -414,7 +457,7 @@