diff --git a/inventory-web/src/views/outbound/Selection.vue b/inventory-web/src/views/outbound/Selection.vue
index ea83722..9ce2746 100644
--- a/inventory-web/src/views/outbound/Selection.vue
+++ b/inventory-web/src/views/outbound/Selection.vue
@@ -8,6 +8,13 @@
(请添加需要出库的物品)
+
+ 批量移除
+
+
+ 清空货车
+
+
手动添加库存
@@ -38,7 +45,9 @@
border
style="width: 100%"
row-key="uniqueKey"
+ @selection-change="handleSelectionChange"
>
+
@@ -339,6 +348,7 @@ const userStore = useUserStore()
// --- 状态变量 ---
const selectedItems = ref([])
+const selectedRows = ref([])
// 按库位路径自然升序排序(优化拣货路径)
const sortedSelectedItems = computed(() => {
@@ -695,6 +705,44 @@ const confirmBomAdd = async () => {
// --- 通用逻辑 ---
+const handleSelectionChange = (val: any[]) => {
+ selectedRows.value = val
+}
+
+const clearAll = () => {
+ ElMessageBox.confirm(
+ '确定要清空当前拣货车中的所有物品吗?',
+ '清空确认',
+ {
+ confirmButtonText: '确定清空',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }
+ ).then(() => {
+ selectedItems.value = []
+ selectedRows.value = []
+ ElMessage.success('已清空拣货车')
+ }).catch(() => {})
+}
+
+const batchRemove = () => {
+ if (selectedRows.value.length === 0) return
+ ElMessageBox.confirm(
+ `确定要移除选中的 ${selectedRows.value.length} 项物品吗?`,
+ '批量移除确认',
+ {
+ confirmButtonText: '确定移除',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }
+ ).then(() => {
+ const keysToRemove = new Set(selectedRows.value.map(row => row.uniqueKey))
+ selectedItems.value = selectedItems.value.filter(item => !keysToRemove.has(item.uniqueKey))
+ selectedRows.value = []
+ ElMessage.success(`已移除 ${keysToRemove.size} 项物品`)
+ }).catch(() => {})
+}
+
const removeRow = (index: number) => {
selectedItems.value.splice(index, 1)
}