From 40b5d952ebcde32698cdb4c790b79abab6be4571 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 4 Oct 2025 10:56:40 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd=E3=80=91=E3=80=90erp?= =?UTF-8?q?=20=E7=B3=BB=E7=BB=9F=E3=80=91sale/out=20=E9=83=A8=E5=88=86?= =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=88form=20=E5=9F=BA=E6=9C=AC=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E5=AE=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/erp/sale/out/modules/form.vue | 47 +--- .../views/erp/sale/out/modules/item-form.vue | 243 ++++++++---------- 2 files changed, 104 insertions(+), 186 deletions(-) diff --git a/apps/web-antd/src/views/erp/sale/out/modules/form.vue b/apps/web-antd/src/views/erp/sale/out/modules/form.vue index 0c455408e..d1c049347 100644 --- a/apps/web-antd/src/views/erp/sale/out/modules/form.vue +++ b/apps/web-antd/src/views/erp/sale/out/modules/form.vue @@ -2,7 +2,7 @@ import type { ErpSaleOrderApi } from '#/api/erp/sale/order'; import type { ErpSaleOutApi } from '#/api/erp/sale/out'; -import { computed, nextTick, ref } from 'vue'; +import { computed, ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; import { $t } from '@vben/locales'; @@ -110,7 +110,6 @@ const handleUpdateTotalPrice = (totalPrice: number) => { }; /** 选择销售订单 */ -// TODO @AI:不确定 const handleUpdateOrder = (order: ErpSaleOrderApi.SaleOrder) => { formData.value = { ...formData.value, @@ -132,8 +131,6 @@ const handleUpdateOrder = (order: ErpSaleOrderApi.SaleOrder) => { formData.value.items = order.items!.filter( (item) => item.count && item.count > 0, ) as ErpSaleOutApi.SaleOutItem[]; - - formApi.setValues(formData.value, false); }; /** 创建或更新销售出库 */ @@ -184,64 +181,26 @@ const [Modal, modalApi] = useVbenModal({ otherPrice: 0, items: [], }; - // await formApi.setValues(formData.value, false); return; } // 加载数据 const data = modalApi.getData<{ id?: number; type: string }>(); - if (!data) { - return; - } formType.value = data.type; + formApi.setDisabled(formType.value === 'detail'); formApi.updateSchema(useFormSchema(formType.value)); - - if (!data.id) { - // 初始化空的表单数据 - formData.value = { - id: undefined, - no: undefined, - accountId: undefined, - outTime: undefined, - remark: undefined, - fileUrl: undefined, - discountPercent: 0, - customerId: undefined, - discountPrice: 0, - totalPrice: 0, - otherPrice: 0, - items: [], - } as unknown as ErpSaleOutApi.SaleOut; - await nextTick(); - const itemFormInstance = Array.isArray(itemFormRef.value) - ? itemFormRef.value[0] - : itemFormRef.value; - if (itemFormInstance && typeof itemFormInstance.init === 'function') { - itemFormInstance.init([]); - } + if (!data || !data.id) { return; } - modalApi.lock(); try { formData.value = await getSaleOut(data.id); - // 设置到 values await formApi.setValues(formData.value, false); - // 初始化子表单 - await nextTick(); - const itemFormInstance = Array.isArray(itemFormRef.value) - ? itemFormRef.value[0] - : itemFormRef.value; - if (itemFormInstance && typeof itemFormInstance.init === 'function') { - itemFormInstance.init(formData.value.items || []); - } } finally { modalApi.unlock(); } }, }); - -defineExpose({ modalApi }); @@ -279,7 +234,7 @@ defineExpose({ v-model:value="row.productPrice" :min="0" :precision="2" - @change="handlePriceChange(row)" + @change="handleRowChange(row)" /> @@ -319,10 +274,14 @@ defineExpose({
合计:
- 数量:{{ getSummaries().count }} - 金额:{{ getSummaries().totalProductPrice }} - 税额:{{ getSummaries().taxPrice }} - 税额合计:{{ getSummaries().totalPrice }} + 数量:{{ erpCountInputFormatter(summaries.count) }} + + 金额:{{ erpPriceInputFormatter(summaries.totalProductPrice) }} + + 税额:{{ erpPriceInputFormatter(summaries.taxPrice) }} + + 税额合计:{{ erpPriceInputFormatter(summaries.totalPrice) }} +