diff --git a/inventory-web/src/views/outbound/Selection.vue b/inventory-web/src/views/outbound/Selection.vue
index 9ce2746..7c5f09e 100644
--- a/inventory-web/src/views/outbound/Selection.vue
+++ b/inventory-web/src/views/outbound/Selection.vue
@@ -8,19 +8,31 @@
(请添加需要出库的物品)
-
- 批量移除
-
-
- 清空货车
-
-
-
- 手动添加库存
-
-
- 按 BOM 套餐添加
-
+
+
+
+ 取消
+
+
+ 移除选中 ({{ selectedRows.length }})
+
+
+
+
+
+ 批量操作
+
+
+ 清空货车
+
+
+
+ 手动添加库存
+
+
+ 按 BOM 套餐添加
+
+
生成预览 & 打印
@@ -47,7 +59,7 @@
row-key="uniqueKey"
@selection-change="handleSelectionChange"
>
-
+
@@ -88,7 +100,7 @@
- 移除
+ 移除
@@ -349,6 +361,7 @@ const userStore = useUserStore()
// --- 状态变量 ---
const selectedItems = ref([])
const selectedRows = ref([])
+const isBulkMode = ref(false)
// 按库位路径自然升序排序(优化拣货路径)
const sortedSelectedItems = computed(() => {
@@ -707,6 +720,14 @@ const confirmBomAdd = async () => {
const handleSelectionChange = (val: any[]) => {
selectedRows.value = val
+ if (val.length === 0 && isBulkMode.value) {
+ isBulkMode.value = false
+ }
+}
+
+const cancelBulkMode = () => {
+ isBulkMode.value = false
+ selectedRows.value = []
}
const clearAll = () => {
@@ -721,6 +742,7 @@ const clearAll = () => {
).then(() => {
selectedItems.value = []
selectedRows.value = []
+ isBulkMode.value = false
ElMessage.success('已清空拣货车')
}).catch(() => {})
}
@@ -739,6 +761,7 @@ const batchRemove = () => {
const keysToRemove = new Set(selectedRows.value.map(row => row.uniqueKey))
selectedItems.value = selectedItems.value.filter(item => !keysToRemove.has(item.uniqueKey))
selectedRows.value = []
+ isBulkMode.value = false
ElMessage.success(`已移除 ${keysToRemove.size} 项物品`)
}).catch(() => {})
}