diff --git a/src/views/erp/purchase/in/components/PurchaseInItemForm.vue b/src/views/erp/purchase/in/components/PurchaseInItemForm.vue index 69d0acd54..aa98fc24d 100644 --- a/src/views/erp/purchase/in/components/PurchaseInItemForm.vue +++ b/src/views/erp/purchase/in/components/PurchaseInItemForm.vue @@ -1,231 +1,240 @@ diff --git a/src/views/erp/purchase/return/PurchaseReturnForm.vue b/src/views/erp/purchase/return/PurchaseReturnForm.vue index da43e1fc9..833538d93 100644 --- a/src/views/erp/purchase/return/PurchaseReturnForm.vue +++ b/src/views/erp/purchase/return/PurchaseReturnForm.vue @@ -174,6 +174,7 @@ import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils' import PurchaseOrderReturnEnableList from '@/views/erp/purchase/order/components/PurchaseOrderReturnEnableList.vue' import { PurchaseOrderVO } from '@/api/erp/purchase/order' import * as UserApi from '@/api/system/user' +import { PurchaseInApi } from '@/api/erp/purchase/in' /** ERP 采购退货表单 */ defineOptions({ name: 'PurchaseReturnForm' }) @@ -214,6 +215,12 @@ const userList = ref([]) // 用户列表 const subTabsName = ref('item') const itemFormRef = ref() +const queryParams = reactive({ + pageNo: 1, + pageSize: 10, + orderNo: undefined +}) //获取采购入库单号 + /** 计算 discountPrice、totalPrice 价格 */ watch( () => formData.value, @@ -243,8 +250,8 @@ const open = async (type: string, id?: number) => { try { formData.value = await PurchaseReturnApi.getPurchaseReturn(id) formData.value.items.forEach((item) => { - if(item.ifQr===0){ - item.qrCodeLineCount = item.count + if (item.ifQr === 0) { + item.qrCodeLineCount = item.count } }) } finally { @@ -270,7 +277,7 @@ const openPurchaseOrderReturnEnableList = () => { purchaseOrderReturnEnableListRef.value.open() } -const handlePurchaseOrderChange = (order: PurchaseOrderVO) => { +const handlePurchaseOrderChange = async (order: PurchaseOrderVO) => { // 将订单设置到退货单 formData.value.orderId = order.id formData.value.orderNo = order.no @@ -279,13 +286,25 @@ const handlePurchaseOrderChange = (order: PurchaseOrderVO) => { formData.value.discountPercent = order.discountPercent formData.value.remark = order.remark formData.value.fileUrl = order.fileUrl - // 将订单项设置到退货单项 - order.items.forEach((item) => { - item.count = item.inCount - item.returnCount - item.orderItemId = item.id - item.id = undefined + + // 获取与采购订单号相关的采购入库单号列表 + const data = await PurchaseInApi.getPurchaseInPage(queryParams) + const purchaseInList = data.list + const items: { productId: any; count: any; orderItemId: any; id: undefined }[] = [] + purchaseInList.forEach((purchaseIn) => { + purchaseIn.items.forEach((item) => { + if (item.count > 0) { + items.push({ + ...item, + count: item.count, + orderItemId: item.id, + id: undefined + }) + } + }) }) - formData.value.items = order.items.filter((item) => item.count > 0) + // 按入库单顺序展示 items + formData.value.items = items } /** 提交表单 */ @@ -300,7 +319,7 @@ const submitForm = async () => { const item = items[i] //先判断本行是否需要一物一码 if (item.ifQr) { - continue; + continue } if (item.qrcodes.split('\n').length !== item.count) { message.error(`第 ${i + 1} 行的退货数量和码的数量不同`)