From 16255a805681a7a7bf813bcfbde752fbfb4b8256 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 10 八月 2026 09:16:28 +0800
Subject: [PATCH] chore(config): 更新生产环境API服务器配置
---
src/views/erp/purchase/order/modules/form.vue | 73 +++++++++++++++++++++++-------------
1 files changed, 47 insertions(+), 26 deletions(-)
diff --git a/src/views/erp/purchase/order/modules/form.vue b/src/views/erp/purchase/order/modules/form.vue
index 58a42fe..dec4d8f 100644
--- a/src/views/erp/purchase/order/modules/form.vue
+++ b/src/views/erp/purchase/order/modules/form.vue
@@ -5,13 +5,14 @@
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,
getPurchaseOrder,
updatePurchaseOrder,
@@ -23,7 +24,7 @@
const emit = defineEmits(['success']);
const formData = ref<ErpPurchaseOrderApi.PurchaseOrder>();
-const formType = ref<FormType>('create'); // 琛ㄥ崟绫诲瀷锛�'create' | 'edit' | 'detail'
+const formType = ref<FormType>('create');
const itemFormRef = ref<InstanceType<typeof PurchaseOrderItemForm>>();
const getTitle = computed(() => {
@@ -48,7 +49,6 @@
schema: useFormSchema(formType.value),
showDefaultActions: false,
handleValuesChange: (values, changedFields) => {
- // 鐩殑锛氬悓姝ュ埌 item-form 缁勪欢锛岃Е鍙戞暣浣撶殑浠锋牸璁$畻
if (formData.value && changedFields.includes('discountPercent')) {
formData.value.discountPercent = values.discountPercent;
}
@@ -78,6 +78,35 @@
});
}
+/** 鎻愪氦璁㈠崟 */
+async function submitOrder() {
+ const data = (await formApi.getValues()) as ErpPurchaseOrderApi.PurchaseOrder;
+ data.items = formData.value?.items?.map((item) => ({
+ ...item,
+ id: undefined,
+ }));
+ 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();
+ }
+}
+
/** 鍒涘缓鎴栨洿鏂伴噰璐鍗� */
const [Modal, modalApi] = useVbenModal({
async onConfirm() {
@@ -96,26 +125,8 @@
}
modalApi.lock();
- // 鎻愪氦琛ㄥ崟
- const data =
- (await formApi.getValues()) as ErpPurchaseOrderApi.PurchaseOrder;
- data.items = formData.value?.items?.map((item) => ({
- ...item,
- // 瑙e喅鏂板閲囪喘璁㈠崟鎶ラ敊
- id: undefined,
- }));
- // 灏嗘枃浠舵暟缁勮浆鎹负瀛楃涓�
- if (data.fileUrl && Array.isArray(data.fileUrl)) {
- data.fileUrl = data.fileUrl.length > 0 ? data.fileUrl[0] : '';
- }
try {
- await (formType.value === 'create'
- ? createPurchaseOrder(data)
- : updatePurchaseOrder(data));
- // 鍏抽棴骞舵彁绀�
- await modalApi.close();
- emit('success');
- message.success($t('ui.actionMessage.operationSuccess'));
+ await submitOrder();
} finally {
modalApi.unlock();
}
@@ -125,13 +136,11 @@
formData.value = undefined;
return;
}
- // 鍔犺浇鏁版嵁
const data = modalApi.getData<{ formType: FormType; id?: number }>();
formType.value = data.formType;
formApi.setDisabled(formType.value === 'detail');
formApi.updateSchema(useFormSchema(formType.value));
if (!data || !data.id) {
- // 鏂板鏃讹紝榛樿閫変腑璐︽埛
const accountList = await getAccountSimpleList();
const defaultAccount = accountList.find((item) => item.defaultStatus);
if (defaultAccount) {
@@ -142,8 +151,17 @@
modalApi.lock();
try {
formData.value = await getPurchaseOrder(data.id);
- // 璁剧疆鍒� values
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();
}
@@ -170,5 +188,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