diff --git a/src/views/wms/outstockDetail/selectOutstockDetail.vue b/src/views/wms/outstockDetail/selectOutstockDetail.vue new file mode 100644 index 0000000..055a1c2 --- /dev/null +++ b/src/views/wms/outstockDetail/selectOutstockDetail.vue @@ -0,0 +1,177 @@ + + + diff --git a/src/views/wms/returnOrder/index.vue b/src/views/wms/returnOrder/index.vue index 9f2f235..edc9d64 100644 --- a/src/views/wms/returnOrder/index.vue +++ b/src/views/wms/returnOrder/index.vue @@ -166,17 +166,29 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + @@ -286,6 +307,19 @@ + + + + + + @@ -302,8 +336,11 @@ import { getBaseWarehouseList } from '@/api/wms/baseWarehouse'; import { getBaseMaterialCategoryListInWMS } from '@/api/wms/baseMaterialCategory'; import MaterialSelectInWMS from '@/views/mes/baseMaterialInfo/addMaterialInWMS.vue'; +import SelectOutstockDetail from '@/views/wms/outstockDetail/selectOutstockDetail.vue'; import { getBaseDeviceTypeList } from '@/api/mes/baseDeviceType'; import { getWmsBaseLocationVoList } from '@/api/wms/baseLocation'; +import { getOutstockDetailList } from '@/api/wms/outstockDetail'; +import { OutstockDetailQuery } from '@/api/wms/outstockDetail/types'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { @@ -330,14 +367,23 @@ const dialog = reactive({ const materialOpen = ref(false);//物料选择对话框显示 +const outstockDetailOpen = ref(false); + const selectedMaterial = ref(null); // 存储选中的物料完整信息 +const selectedOutstockDetail = ref(null); // 存储选中的物料完整信息 /** 处理从MaterialSelect组件接收到的选择 */ const handleSelection = (row) => { selectedMaterial.value = row; }; +/** 处理从MaterialSelect组件接收到的选择 */ +const handleOutstockDetailSelection = (row) => { + selectedOutstockDetail.value = row; +}; + const materialSelectRef = ref();//物料选择对话框绑定 +const outstockDetailSelectRef = ref(); // 获取仓库 const getSelectBaseWarehouseList = async () => { @@ -527,6 +573,10 @@ const handleUpdate = async (row?: ReturnOrderVO) => { /** 提交按钮 */ const submitForm = () => { + if (form.value.returnAmount < form.value.planAmount){ + proxy?.$modal.msgWarning('计划数量不可大于可退数量!'); + return; + } returnOrderFormRef.value?.validate(async (valid: boolean) => { if (valid) { buttonLoading.value = true; @@ -570,6 +620,11 @@ const handleMaterialAdd = (type, index) => { materialOpen.value = true; } +/** 新增按钮操作 */ +const handleOutstockDetailAdd = (type, index) => { + outstockDetailOpen.value = true; +} + /** 提交物料BOM信息按钮 */ const submitMaterialForm = () => { selectedMaterial.value = materialSelectRef.value.tableRef.store.states.currentRow.value; @@ -580,6 +635,34 @@ const submitMaterialForm = () => { materialOpen.value = false; }; +const submitOutstockDetailForm = async () => { + selectedMaterial.value = outstockDetailSelectRef.value.tableRef.store.states.currentRow.value; + form.value.batchCode = selectedMaterial.value.outstockCode; + form.value.materialId = selectedMaterial.value.materialId; + form.value.materialCode = selectedMaterial.value.materialCode; + form.value.materialName = selectedMaterial.value.materialName; + form.value.materialCtegories = selectedMaterial.value.materialCategories; + form.value.outstockQty = selectedMaterial.value.outstockQty; + + const selectData: ReturnOrderQuery = { + batchCode: form.value.batchCode, + materialId: form.value.materialId, + pageNum: 1, // 必需属性 + pageSize: 10 // 必需属性 + }; + const res = await listReturnOrder(selectData); + let returnAmount = 0; + res.rows.forEach(item => { + returnAmount += Number(item.planAmount); + }) + console.log(returnAmount); + form.value.returnAmount = Number(form.value.outstockQty) - returnAmount; + + // 重置选中的物料信息和关闭对话框 + selectedOutstockDetail.value = null; + outstockDetailOpen.value = false; +}; + onMounted(() => { getSelectBaseWarehouseList(); getMaterialCategorySelect();