From 543433f64d491fe133b7a23363ff0ccacc3da07e Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 24 七月 2026 14:33:42 +0800
Subject: [PATCH] fix(upload): 修复文件上传时的请求头配置问题

---
 src/views/erp/purchase/order/modules/form.vue |   70 ++++++++++++----------------------
 1 files changed, 25 insertions(+), 45 deletions(-)

diff --git a/src/views/erp/purchase/order/modules/form.vue b/src/views/erp/purchase/order/modules/form.vue
index 37981be..40d3490 100644
--- a/src/views/erp/purchase/order/modules/form.vue
+++ b/src/views/erp/purchase/order/modules/form.vue
@@ -1,19 +1,19 @@
 <script lang="ts" setup>
 import type { FormType } from '../data';
 
-import type { ErpPurchaseOrderApi, ProcessDefinition } from '#/api/erp/purchase/order';
+import type { ErpPurchaseOrderApi } from '#/api/erp/purchase/order';
 
 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 { message, Button } from 'ant-design-vue';
 
 import { useVbenForm } from '#/adapter/form';
 import { getAccountSimpleList } from '#/api/erp/finance/account';
 import {
+  confirmReceipt,
   createPurchaseOrder,
-  getPurchaseApproveProcessList,
   getPurchaseOrder,
   updatePurchaseOrder,
 } from '#/api/erp/purchase/order';
@@ -21,13 +21,11 @@
 
 import { useFormSchema } from '../data';
 import PurchaseOrderItemForm from './item-form.vue';
-import ProcessSelectModal from './process-select-modal.vue';
 
 const emit = defineEmits(['success']);
 const formData = ref<ErpPurchaseOrderApi.PurchaseOrder>();
 const formType = ref<FormType>('create');
 const itemFormRef = ref<InstanceType<typeof PurchaseOrderItemForm>>();
-const selectedProcessId = ref<string>('');
 
 const getTitle = computed(() => {
   if (formType.value === 'create') {
@@ -57,11 +55,6 @@
   },
 });
 
-const [ProcessModal, processModalApi] = useVbenModal({
-  connectedComponent: ProcessSelectModal,
-  destroyOnClose: true,
-});
-
 /** 鏇存柊閲囪喘璁㈠崟椤� */
 function handleUpdateItems(items: ErpPurchaseOrderApi.PurchaseOrderItem[]) {
   formData.value = modalApi.getData<ErpPurchaseOrderApi.PurchaseOrder>();
@@ -85,12 +78,6 @@
   });
 }
 
-/** 娴佺▼閫夋嫨鎴愬姛 */
-function handleProcessSelectSuccess(processId: string) {
-  selectedProcessId.value = processId;
-  submitOrder();
-}
-
 /** 鎻愪氦璁㈠崟 */
 async function submitOrder() {
   const data = (await formApi.getValues()) as ErpPurchaseOrderApi.PurchaseOrder;
@@ -101,15 +88,26 @@
   if (data.fileUrl && Array.isArray(data.fileUrl)) {
     data.fileUrl = data.fileUrl.length > 0 ? data.fileUrl[0] : '';
   }
-  if (selectedProcessId.value) {
-    data.processDefinitionId = selectedProcessId.value;
-  }
   await (formType.value === 'create'
     ? createPurchaseOrder(data)
     : updatePurchaseOrder(data));
   await modalApi.close();
   emit('success');
   message.success($t('ui.actionMessage.operationSuccess'));
+}
+
+/** 纭鏀惰揣 */
+async function handleConfirmReceipt() {
+  if (!formData.value?.id) return;
+  const hideLoading = message.loading({ content: '纭鏀惰揣涓�...', duration: 0 });
+  try {
+    await confirmReceipt(formData.value.id);
+    message.success('纭鏀惰揣鎴愬姛锛屽凡鐢熸垚鍒拌揣閫氱煡鍗�');
+    await modalApi.close();
+    emit('success');
+  } finally {
+    hideLoading();
+  }
 }
 
 /** 鍒涘缓鎴栨洿鏂伴噰璐鍗� */
@@ -130,35 +128,15 @@
     }
 
     modalApi.lock();
-
-    if (formType.value === 'create') {
-      try {
-        const processes = await getPurchaseApproveProcessList();
-        if (processes.length === 1) {
-          selectedProcessId.value = processes[0].id;
-          await submitOrder();
-        } else if (processes.length > 1) {
-          processModalApi.setData(processes).open();
-        } else {
-          message.error('閲囪喘瀹℃牳鍒嗙被涓嬫病鏈夊彲鐢ㄧ殑娴佺▼妯″瀷锛岃鍏堝垱寤哄苟鍙戝竷娴佺▼');
-        }
-      } catch (error: any) {
-        message.error(error.message || '鑾峰彇娴佺▼鍒楄〃澶辫触');
-      } finally {
-        modalApi.unlock();
-      }
-    } else {
-      try {
-        await submitOrder();
-      } finally {
-        modalApi.unlock();
-      }
+    try {
+      await submitOrder();
+    } finally {
+      modalApi.unlock();
     }
   },
   async onOpenChange(isOpen: boolean) {
     if (!isOpen) {
       formData.value = undefined;
-      selectedProcessId.value = '';
       return;
     }
     const data = modalApi.getData<{ formType: FormType; id?: number }>();
@@ -190,7 +168,6 @@
     class="w-3/4"
     :show-confirm-button="formType !== 'detail'"
   >
-    <ProcessModal @success="handleProcessSelectSuccess" />
     <Form class="mx-3">
       <template #items>
         <PurchaseOrderItemForm
@@ -204,5 +181,8 @@
         />
       </template>
     </Form>
+    <template v-if="formType === 'detail' && formData?.status === 20 && formData?.inStatus !== 2" #prepend-footer>
+      <Button type="primary" @click="handleConfirmReceipt">纭鏀惰揣</Button>
+    </template>
   </Modal>
 </template>

--
Gitblit v1.9.3