云
6 天以前 a241b66efcc41e973290a6722fb7a4d79b833ea1
src/views/erp/purchase/request/modules/form.vue
@@ -5,19 +5,21 @@
import { computed, ref } from 'vue';
import { useVbenModal } from '../../../../../packages/effects/common-ui/src';
import { useVbenModal } from '@vben/common-ui';
import { message, Tag } from 'ant-design-vue';
import { message } from 'ant-design-vue';
import { useVbenForm } from '#/adapter/form';
import {
  createPurchaseRequest,
  getPurchaseRequest,
  resetPurchaseRequestStatus,
  syncPurchaseRequestStatus,
  updatePurchaseRequest,
} from '#/api/erp/purchase/request';
import { $t } from '#/locales';
import { useFormSchema, PURCHASE_REQUEST_STATUS } from '../data';
import { useFormSchema } from '../data';
import PurchaseRequestItemForm from './item-form.vue';
const emit = defineEmits(['success']);
@@ -78,10 +80,23 @@
    const data =
      (await formApi.getValues()) as ErpPurchaseRequestApi.PurchaseRequest;
    data.items = formData.value?.items?.map((item) => ({
      ...item,
      id: undefined,
      productId: item.productId,
      productUnitId: item.productUnitId,
      productPrice: item.productPrice,
      count: item.count,
      taxPercent: item.taxPercent,
      demandTime: item.demandTime,
      qcCheckFlag: item.qcCheckFlag,
      remark: item.remark,
    }));
    try {
      console.log('[DEBUG] formType:', formType.value, 'status:', formData.value?.status, 'type:', typeof formData.value?.status);
      if (formType.value === 'edit' && Number(formData.value?.status) !== 0) {
        if (Number(formData.value?.status) !== 30) {
          await syncPurchaseRequestStatus([formData.value!]);
        }
        await resetPurchaseRequestStatus(formData.value!.id!);
      }
      await (formType.value === 'create'
        ? createPurchaseRequest(data)
        : updatePurchaseRequest(data));
@@ -108,6 +123,16 @@
    try {
      formData.value = await getPurchaseRequest(data.id);
      await formApi.setValues(formData.value);
      if (formData.value?.attachmentList?.length) {
        const blobIds = formData.value.attachmentList.map((item) => ({
          uid: String(item.id),
          name: item.name || '',
          url: item.url || '',
          status: 'done',
          id: item.id,
        }));
        await formApi.setFieldValue('blobIds', blobIds);
      }
    } finally {
      modalApi.unlock();
    }