From 06f3df285a24234e60883cd5ae73c6153abf4155 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 26 八月 2026 15:46:38 +0800
Subject: [PATCH] feat(mes): 添加生产任务进度显示和工艺参数模板功能
---
src/views/erp/purchase/invoice/modules/form.vue | 47 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 41 insertions(+), 6 deletions(-)
diff --git a/src/views/erp/purchase/invoice/modules/form.vue b/src/views/erp/purchase/invoice/modules/form.vue
index 3450581..85374fb 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,6 +23,8 @@
const emit = defineEmits(['success']);
const formData = ref<ErpPurchaseInvoiceApi.PurchaseInvoice>();
const formType = ref<FormType>('create');
+const ocrSupplierName = ref('');
+const orderTotalTaxPrice = ref<number>(); // 鎵�閫夐噰璐鍗曞悎璁$◣棰濓紙鏈紑绁ㄩ噾棰濓紝鐢ㄤ簬鎻愮ず涓庢牎楠岋級
const getTitle = computed(() => {
if (formType.value === 'create') {
@@ -42,7 +45,7 @@
},
wrapperClass: 'grid-cols-2',
layout: 'horizontal',
- schema: useFormSchema(),
+ schema: useFormSchema(orderTotalTaxPrice),
showDefaultActions: false,
});
@@ -71,13 +74,31 @@
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
formData.value = undefined;
+ ocrSupplierName.value = '';
+ orderTotalTaxPrice.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());
+ formApi.updateSchema(useFormSchema(orderTotalTaxPrice));
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;
}
@@ -85,9 +106,15 @@
try {
formData.value = await getPurchaseInvoice(data.id);
if (formData.value?.attachmentList?.length) {
- // 鐢� attachmentList 浠f浛 blobIds锛岃涓婁紶缁勪欢鑳藉睍绀烘枃浠跺悕鍜岄瑙堥摼鎺�
+ // 杞负涓婁紶缁勪欢鐨勬枃浠跺璞★紱鎻愪氦鏃� formApi 浼氭寜 valueKey 鎻愬彇闄勪欢 ID
(formData.value as Record<string, unknown>).blobIds =
- formData.value.attachmentList;
+ formData.value.attachmentList.map((item) => ({
+ uid: String(item.id),
+ name: item.name || '',
+ url: item.url || '',
+ status: 'done',
+ id: item.id,
+ }));
}
await formApi.setValues(formData.value as any);
} finally {
@@ -99,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