| | |
| | | <script lang="ts" setup> |
| | | import type { ErpSaleOrderApi } from '#/api/erp/sale/order'; |
| | | import type { MesWmReturnSalesLineApi } from '#/api/mes/wm/returnsales/line'; |
| | | |
| | | import { computed, ref } from 'vue'; |
| | | |
| | | import { useVbenModal } from '../../../../packages/effects/common-ui/src'; |
| | | import { useVbenModal } from '@vben/common-ui'; |
| | | |
| | | import { message } from 'ant-design-vue'; |
| | | |
| | | import { useVbenForm } from '#/adapter/form'; |
| | | import { getBatchPage } from '#/api/mes/wm/batch'; |
| | | import { |
| | | createReturnSalesLine, |
| | | getReturnSalesLine, |
| | |
| | | const emit = defineEmits(['success']); |
| | | const formData = ref<MesWmReturnSalesLineApi.ReturnSalesLine>(); |
| | | const returnId = ref<number>(); // 所属退货单编号 |
| | | const maxQuantity = ref<number>(); // 当前选中物料可退货的最大数量 |
| | | |
| | | const getTitle = computed(() => { |
| | | return formData.value?.id |
| | |
| | | const data = modalApi.getData<{ |
| | | clientId?: number; |
| | | id?: number; |
| | | items?: ErpSaleOrderApi.SaleOrderItem[]; |
| | | returnId: number; |
| | | salesOrderCode?: string; |
| | | }>(); |
| | | returnId.value = data.returnId; |
| | | maxQuantity.value = undefined; |
| | | formApi.setState({ |
| | | schema: useLineFormSchema(data.clientId, data.salesOrderCode), |
| | | schema: useLineFormSchema( |
| | | data.clientId, |
| | | data.salesOrderCode, |
| | | data.items || [], |
| | | async (item) => { |
| | | maxQuantity.value = item?.count; |
| | | // 重置批次 |
| | | await formApi.setFieldValue('batchId', undefined); |
| | | if (item?.batchCode) { |
| | | try { |
| | | const batchPage = await getBatchPage({ |
| | | code: item.batchCode, |
| | | pageNo: 1, |
| | | pageSize: 1, |
| | | }); |
| | | const batchList = batchPage?.list; |
| | | if (batchList?.length) { |
| | | await formApi.setFieldValue('batchId', batchList[0].id); |
| | | } |
| | | } catch { |
| | | // 查询失败时忽略 |
| | | } |
| | | } |
| | | }, |
| | | ), |
| | | }); |
| | | if (!data.id) { |
| | | return; |
| | |
| | | <template> |
| | | <Modal :title="getTitle" class="w-3/5"> |
| | | <Form class="mx-4" /> |
| | | <div |
| | | v-if="maxQuantity !== undefined" |
| | | class="mx-4 mt-2 text-sm text-blue-600" |
| | | > |
| | | 当前物料可退货数量:<span class="font-bold">{{ maxQuantity }}</span> |
| | | </div> |
| | | </Modal> |
| | | </template> |