From 6373c12e97dc5d52ad87271d1adb6743b0052607 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 26 八月 2026 17:18:47 +0800
Subject: [PATCH] feat(erp): 采购来票选单过滤已开完票订单并修正未开票金额口径

---
 src/views/erp/purchase/invoice/modules/form.vue |   39 +++++++++++++++++++++++++++++++++------
 1 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/src/views/erp/purchase/invoice/modules/form.vue b/src/views/erp/purchase/invoice/modules/form.vue
index 12036c8..fd27f98 100644
--- a/src/views/erp/purchase/invoice/modules/form.vue
+++ b/src/views/erp/purchase/invoice/modules/form.vue
@@ -2,12 +2,13 @@
 import type { FormType } from '../data';
 
 import type { ErpPurchaseInvoiceApi } from '#/api/erp/purchase/invoice';
+import type { ErpPurchaseInvoiceAiApi } from '#/api/erp/purchase/invoice/ai';
 
 import { computed, ref } from 'vue';
 
 import { useVbenModal } from '@vben/common-ui';
 
-import { message } from 'ant-design-vue';
+import { Alert, message } from 'ant-design-vue';
 
 import { useVbenForm } from '#/adapter/form';
 import {
@@ -22,7 +23,8 @@
 const emit = defineEmits(['success']);
 const formData = ref<ErpPurchaseInvoiceApi.PurchaseInvoice>();
 const formType = ref<FormType>('create');
-const orderTotalTaxPrice = ref<number>(); // 鎵�閫夐噰璐鍗曞悎璁$◣棰濓紙鏈紑绁ㄩ噾棰濓紝鐢ㄤ簬鎻愮ず涓庢牎楠岋級
+const ocrSupplierName = ref('');
+const orderRemainInvoicePrice = ref<number>(); // 鎵�閫夐噰璐鍗曞墿浣欏彲寮�绁ㄩ噾棰濓紙鏈紑绁ㄩ噾棰濓紝鐢ㄤ簬鎻愮ず涓庢牎楠岋級
 
 const getTitle = computed(() => {
   if (formType.value === 'create') {
@@ -43,7 +45,7 @@
   },
   wrapperClass: 'grid-cols-2',
   layout: 'horizontal',
-  schema: useFormSchema(orderTotalTaxPrice),
+  schema: useFormSchema(orderRemainInvoicePrice),
   showDefaultActions: false,
 });
 
@@ -72,14 +74,31 @@
   async onOpenChange(isOpen: boolean) {
     if (!isOpen) {
       formData.value = undefined;
-      orderTotalTaxPrice.value = undefined;
+      ocrSupplierName.value = '';
+      orderRemainInvoicePrice.value = undefined;
       return;
     }
-    const data = modalApi.getData<{ formType: FormType; id?: number }>();
+    const data = modalApi.getData<{
+      formType: FormType;
+      id?: number;
+      ocrData?: ErpPurchaseInvoiceAiApi.OcrResultVO;
+    }>();
     formType.value = data.formType;
     formApi.setDisabled(formType.value === 'detail');
-    formApi.updateSchema(useFormSchema(orderTotalTaxPrice));
+    formApi.updateSchema(useFormSchema(orderRemainInvoicePrice));
     await formApi.resetForm();
+    // OCR 璇嗗埆鏁版嵁棰勫~锛堟柊寤哄満鏅紝缂栬緫/璇︽儏涓嶅鐞嗭級
+    const ocr = data?.ocrData;
+    ocrSupplierName.value = ocr?.supplierName || '';
+    if (ocr) {
+      await formApi.setValues({
+        invoiceNo: ocr.invoiceNo,
+        invoiceTitle: ocr.invoiceTitle,
+        price: ocr.price,
+        invoiceTime: ocr.invoiceTime,
+        remark: ocr.remark,
+      });
+    }
     if (!data || !data.id) {
       return;
     }
@@ -107,6 +126,14 @@
 
 <template>
   <Modal :title="getTitle" class="w-3/5">
+    <Alert
+      v-if="ocrSupplierName"
+      type="info"
+      show-icon
+      class="mx-4 mb-4"
+      message="璇嗗埆鍒伴攢鍞柟鍚嶇О锛岃閫夋嫨閲囪喘璁㈠崟骞舵牳瀵硅鍗曚緵搴斿晢鏄惁涓�鑷�"
+      :description="`璇嗗埆缁撴灉锛�${ocrSupplierName}`"
+    />
     <Form class="mx-4" />
   </Modal>
 </template>

--
Gitblit v1.9.3