From 0b476486503e9ee5369696ca5d358c43bedf6da3 Mon Sep 17 00:00:00 2001 From: nehc <934298133@qq.com> Date: Tue, 22 Jul 2025 19:11:10 +0800 Subject: [PATCH 01/11] =?UTF-8?q?feat(@vben/web-antd):=20erp-=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增采购订单列表页面 - 添加采购订单表单和子表单组件 - 实现采购订单的查询、创建、编辑和删除功能 - 优化采购订单的审批和反审批操作- 增加采购订单的导出功能 --- .../src/api/erp/purchase/order/index.ts | 76 +++- .../web-antd/src/api/erp/stock/stock/index.ts | 9 + .../order/components/PurchaseOrderForm.vue | 338 +++++++++++++++ .../components/PurchaseOrderItemForm.vue | 386 ++++++++++++++++++ .../src/views/erp/purchase/order/data.ts | 209 ++++++++++ .../src/views/erp/purchase/order/index.vue | 253 +++++++++++- 6 files changed, 1233 insertions(+), 38 deletions(-) create mode 100644 apps/web-antd/src/views/erp/purchase/order/components/PurchaseOrderForm.vue create mode 100644 apps/web-antd/src/views/erp/purchase/order/components/PurchaseOrderItemForm.vue create mode 100644 apps/web-antd/src/views/erp/purchase/order/data.ts diff --git a/apps/web-antd/src/api/erp/purchase/order/index.ts b/apps/web-antd/src/api/erp/purchase/order/index.ts index 69c9a551..58193131 100644 --- a/apps/web-antd/src/api/erp/purchase/order/index.ts +++ b/apps/web-antd/src/api/erp/purchase/order/index.ts @@ -2,34 +2,71 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; -export namespace ErpPurchaseOrderApi { +export namespace PurchaseOrderApi { + /** 采购订单产品信息 */ + export interface PurchaseOrderItem { + id?: number; + productId?: number; + productName?: string; + productBarCode?: string; + productUnitId?: number; + productUnitName?: string; + productPrice?: number; + count?: number; + totalPrice?: number; + taxPercent?: number; + taxPrice?: number; + totalTaxPrice?: number; + remark?: string; + stockCount?: number; + } + /** ERP 采购订单信息 */ export interface PurchaseOrder { - id?: number; // 订单工单编号 - no: string; // 采购订单号 - supplierId: number; // 供应商编号 - orderTime: Date; // 订单时间 - totalCount: number; // 合计数量 - totalPrice: number; // 合计金额,单位:元 - status: number; // 状态 - remark: string; // 备注 - inCount: number; // 采购入库数量 - returnCount: number; // 采购退货数量 + id?: number; + no?: string; + supplierId?: number; + supplierName?: string; + orderTime?: Date | string; + totalCount?: number; + totalPrice?: number; + totalProductPrice?: number; + discountPercent?: number; + discountPrice?: number; + depositPrice?: number; + accountId?: number; + status?: number; + remark?: string; + fileUrl?: string; + inCount?: number; + returnCount?: number; + inStatus?: number; + returnStatus?: number; + productNames?: string; + creatorName?: string; + createTime?: Date; + items?: PurchaseOrderItem[]; } /** 采购订单分页查询参数 */ export interface PurchaseOrderPageParam extends PageParam { no?: string; supplierId?: number; + productId?: number; + orderTime?: string[]; status?: number; + remark?: string; + creator?: string; + inStatus?: number; + returnStatus?: number; } } /** 查询采购订单分页 */ export function getPurchaseOrderPage( - params: ErpPurchaseOrderApi.PurchaseOrderPageParam, + params: PurchaseOrderApi.PurchaseOrderPageParam, ) { - return requestClient.get>( + return requestClient.get>( '/erp/purchase-order/page', { params }, ); @@ -37,18 +74,18 @@ export function getPurchaseOrderPage( /** 查询采购订单详情 */ export function getPurchaseOrder(id: number) { - return requestClient.get( + return requestClient.get( `/erp/purchase-order/get?id=${id}`, ); } /** 新增采购订单 */ -export function createPurchaseOrder(data: ErpPurchaseOrderApi.PurchaseOrder) { +export function createPurchaseOrder(data: PurchaseOrderApi.PurchaseOrder) { return requestClient.post('/erp/purchase-order/create', data); } /** 修改采购订单 */ -export function updatePurchaseOrder(data: ErpPurchaseOrderApi.PurchaseOrder) { +export function updatePurchaseOrder(data: PurchaseOrderApi.PurchaseOrder) { return requestClient.put('/erp/purchase-order/update', data); } @@ -60,7 +97,12 @@ export function updatePurchaseOrderStatus(id: number, status: number) { } /** 删除采购订单 */ -export function deletePurchaseOrder(ids: number[]) { +export function deletePurchaseOrder(id: number) { + return requestClient.delete(`/erp/purchase-order/delete?id=${id}`); +} + +/** 批量删除采购订单 */ +export function deletePurchaseOrderList(ids: number[]) { return requestClient.delete('/erp/purchase-order/delete', { params: { ids: ids.join(',') }, }); diff --git a/apps/web-antd/src/api/erp/stock/stock/index.ts b/apps/web-antd/src/api/erp/stock/stock/index.ts index 57d4ec22..2d33726a 100644 --- a/apps/web-antd/src/api/erp/stock/stock/index.ts +++ b/apps/web-antd/src/api/erp/stock/stock/index.ts @@ -60,6 +60,15 @@ export function getStockCount(productId: number) { }); } +/** + * 根据产品ID获得库存数量 + */ +export function getStockCountByProductId(productId: number) { + return requestClient.get('/erp/stock/get-count', { + params: { productId }, + }); +} + /** * 导出产品库存 Excel */ diff --git a/apps/web-antd/src/views/erp/purchase/order/components/PurchaseOrderForm.vue b/apps/web-antd/src/views/erp/purchase/order/components/PurchaseOrderForm.vue new file mode 100644 index 00000000..381af577 --- /dev/null +++ b/apps/web-antd/src/views/erp/purchase/order/components/PurchaseOrderForm.vue @@ -0,0 +1,338 @@ + + +