diff --git a/src/components/inventory/StockAdjustmentDialog.vue b/src/components/inventory/StockAdjustmentDialog.vue new file mode 100644 index 00000000..6e78aa77 --- /dev/null +++ b/src/components/inventory/StockAdjustmentDialog.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/components/inventory/StockListTable.vue b/src/components/inventory/StockListTable.vue index de029bb9..5230922d 100644 --- a/src/components/inventory/StockListTable.vue +++ b/src/components/inventory/StockListTable.vue @@ -8,6 +8,11 @@ {{ formatRFC3339(scope.row.last_updated) }} + + + { + emit('adjust-stock', row); // 只传递行数据 + }; + onMounted(() => { fetchStockList(); }); @@ -107,6 +118,7 @@ export default { handleSizeChange, handleCurrentChange, formatRFC3339, + handleAdjust, // 暴露给模板 }; }, }; diff --git a/src/views/inventory/StockManagement.vue b/src/views/inventory/StockManagement.vue index 11155192..28ef232d 100644 --- a/src/views/inventory/StockManagement.vue +++ b/src/views/inventory/StockManagement.vue @@ -28,8 +28,16 @@ ref="stockListTableRef" :stockFilter="stockFilter" :searchRawMaterialName="searchRawMaterialName" + @adjust-stock="handleAdjustStock" > + + + @@ -37,29 +45,49 @@ import { ref } from 'vue'; import { Refresh } from '@element-plus/icons-vue'; import StockListTable from '../../components/inventory/StockListTable.vue'; +import StockAdjustmentDialog from '../../components/inventory/StockAdjustmentDialog.vue'; // 导入库存调整弹窗组件 export default { name: 'StockManagement', components: { StockListTable, Refresh, + StockAdjustmentDialog, // 注册组件 }, setup() { const stockListTableRef = ref(null); const stockFilter = ref('all'); // 默认显示所有原料 const searchRawMaterialName = ref(''); // 搜索原料名称 + // 库存调整弹窗相关 + const showAdjustmentDialog = ref(false); + const currentRawMaterialForAdjustment = ref(null); + // currentOperationType 不再需要在这里管理,由 StockAdjustmentDialog 内部管理 + const refreshList = () => { if (stockListTableRef.value) { stockListTableRef.value.fetchStockList(stockFilter.value, searchRawMaterialName.value); } }; + /** + * 处理库存调整操作 + * @param {object} rawMaterial - 当前操作的原料数据 + */ + const handleAdjustStock = (rawMaterial) => { + currentRawMaterialForAdjustment.value = { ...rawMaterial }; + showAdjustmentDialog.value = true; + }; + return { stockListTableRef, stockFilter, searchRawMaterialName, refreshList, + // 库存调整弹窗相关 + showAdjustmentDialog, + currentRawMaterialForAdjustment, + handleAdjustStock, }; }, };