8 天以前 fdd158306bf6dc3584f5110a385323f4a8dfb463
src/views/wls/returnsales/modules/line-form.vue
@@ -1,5 +1,4 @@
<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';
@@ -9,7 +8,6 @@
import { message } from 'ant-design-vue';
import { useVbenForm } from '#/adapter/form';
import { getBatchPage } from '#/api/mes/wm/batch';
import {
  createReturnSalesLine,
  getReturnSalesLine,
@@ -22,7 +20,6 @@
const emit = defineEmits(['success']);
const formData = ref<MesWmReturnSalesLineApi.ReturnSalesLine>();
const returnId = ref<number>(); // 所属退货单编号
const maxQuantity = ref<number>(); // 当前选中物料可退货的最大数量
const getTitle = computed(() => {
  return formData.value?.id
@@ -76,39 +73,10 @@
    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,
        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 {
              // 查询失败时忽略
            }
          }
        },
      ),
    });
    formApi.setState({ schema: useLineFormSchema(data.clientId) });
    if (!data.id) {
      return;
    }
@@ -127,11 +95,5 @@
<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>