From d0ce2f2b556fca74d26f7a915eea98566829dad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A6=82=E5=88=9D?= <3236758982@qq.com> Date: Thu, 18 Jun 2026 17:51:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=8E=E7=BA=A2=E6=94=80=EF=BC=9AV2.6.969?= =?UTF-8?q?=EF=BC=8C=E5=AE=A2=E6=88=B7=E7=AE=A1=E7=90=86=E3=80=81=E9=94=80?= =?UTF-8?q?=E5=94=AE=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/erp/account/index.ts | 13 + src/api/erp/customer/index.ts | 96 +++++ src/api/erp/sale-order/index.ts | 92 +++++ src/pages-erp/customer/form/index.vue | 372 +++++++++++++++++++ src/pages-erp/customer/index.vue | 260 +++++++++++++ src/pages-erp/sale-order/detail/index.vue | 311 ++++++++++++++++ src/pages-erp/sale-order/form/index.vue | 423 ++++++++++++++++++++++ src/pages-erp/sale-order/index.vue | 403 +++++++++++++++++++++ src/pages/index/index.ts | 22 ++ 9 files changed, 1992 insertions(+) create mode 100644 src/api/erp/account/index.ts create mode 100644 src/api/erp/customer/index.ts create mode 100644 src/api/erp/sale-order/index.ts create mode 100644 src/pages-erp/customer/form/index.vue create mode 100644 src/pages-erp/customer/index.vue create mode 100644 src/pages-erp/sale-order/detail/index.vue create mode 100644 src/pages-erp/sale-order/form/index.vue create mode 100644 src/pages-erp/sale-order/index.vue diff --git a/src/api/erp/account/index.ts b/src/api/erp/account/index.ts new file mode 100644 index 0000000..a0a8453 --- /dev/null +++ b/src/api/erp/account/index.ts @@ -0,0 +1,13 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 账户信息 */ +export interface Account { + id?: number + name?: string +} + +/** 获取账户精简列表 */ +export function getAccountSimpleList() { + return http.get('/erp/account/simple-list') +} diff --git a/src/api/erp/customer/index.ts b/src/api/erp/customer/index.ts new file mode 100644 index 0000000..e3ec3f6 --- /dev/null +++ b/src/api/erp/customer/index.ts @@ -0,0 +1,96 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 客户信息 */ +export interface Customer { + id?: number + name?: string + contact?: string + mobile?: string + telephone?: string + email?: string + fax?: string + remark?: string + status?: number + sort?: number + taxNo?: string + taxPercent?: number + bankName?: string + bankAccount?: string + bankAddress?: string + tags?: string + companyType?: number + businessScale?: string + annualPurchaseVolume?: number + annualPurchaseAmount?: number + annualOrderNums?: number + annualOrderAmounts?: number + annualReceivedAmounts?: number + totalUnreceivedAmounts?: number + preferredProducts?: string + preferredPackaging?: string + qualityCertRequirements?: string + deliveryCyclePrefer?: string + paymentTerms?: string + lastDeliveryTime?: number + deliveryAddress?: string + businessLicenseNo?: string + licenseValidity?: number + riskLevel?: number + logisticsPartner?: string + requiresColdChain?: boolean + serviceRegion?: string + relationshipLevel?: number + leadSourceType?: number + leadSourceDetail?: string + leadScore?: number + potentialLevel?: number + expectedAnnualVolume?: number + expectedAnnualAmount?: number + purchaseCycle?: string +} + +/** 客户精简信息 */ +export interface CustomerSimple { + id: number + name: string +} + +/** 获取客户分页列表 */ +export function getCustomerPage(params: PageParam & { + name?: string + mobile?: string + telephone?: string +}) { + return http.get>('/erp/customer/page', params) +} + +/** 获取客户详情 */ +export function getCustomer(id: number) { + return http.get(`/erp/customer/get?id=${id}`) +} + +/** 创建客户 */ +export function createCustomer(data: Customer) { + return http.post('/erp/customer/create', data) +} + +/** 更新客户 */ +export function updateCustomer(data: Customer) { + return http.put('/erp/customer/update', data) +} + +/** 删除客户 */ +export function deleteCustomer(id: number) { + return http.delete(`/erp/customer/delete?id=${id}`) +} + +/** 获取客户精简列表 */ +export function getCustomerSimpleList() { + return http.get('/erp/customer/simple-list') +} + +/** 导出客户 */ +export function exportCustomer(params: PageParam) { + return http.get('/erp/customer/export', params) +} diff --git a/src/api/erp/sale-order/index.ts b/src/api/erp/sale-order/index.ts new file mode 100644 index 0000000..e8084d9 --- /dev/null +++ b/src/api/erp/sale-order/index.ts @@ -0,0 +1,92 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 销售订单项 */ +export interface SaleOrderItem { + id?: number + productId?: number + productName?: string + productNo?: string + count?: number + totalCount?: number + unitPrice?: number + productPrice?: number + taxPrice?: number + totalPrice?: number + taxPercent?: number + taxAmount?: number + remark?: string +} + +/** 销售订单信息 */ +export interface SaleOrder { + id?: number + no?: string + customerId?: number + customerName?: string + orderTime?: number | string + totalCount?: number + totalProductPrice?: number + discountPercent?: number + discountPrice?: number + totalPrice?: number + depositPrice?: number + accountId?: number + status?: number + remark?: string + fileUrl?: string + items?: SaleOrderItem[] + saleUserId?: number + saleUserName?: string + paymentCondition?: number + paymentMethod?: number + outCount?: number + returnCount?: number + productNames?: string + creatorName?: string + hasApprovalRecords?: boolean +} + +/** 获取销售订单分页列表 */ +export function getSaleOrderPage(params: PageParam & { + no?: string + customerId?: number + productId?: number + orderTime?: string[] + status?: number + creator?: number + outStatus?: string + returnStatus?: string +}) { + return http.get>('/erp/sale-order/page', params) +} + +/** 获取销售订单详情 */ +export function getSaleOrder(id: number) { + return http.get(`/erp/sale-order/get?id=${id}`) +} + +/** 创建销售订单 */ +export function createSaleOrder(data: SaleOrder) { + return http.post('/erp/sale-order/create', data) +} + +/** 更新销售订单 */ +export function updateSaleOrder(data: SaleOrder) { + return http.put('/erp/sale-order/update', data) +} + +/** 更新销售订单状态 */ +export function updateSaleOrderStatus(id: number, status: number) { + return http.put('/erp/sale-order/update-status', undefined, { id, status }) +} + +/** 删除销售订单 */ +export function deleteSaleOrder(ids: number[]) { + return http.delete(`/erp/sale-order/delete?ids=${ids.join(',')}`) +} + +/** 导出销售订单 */ +export function exportSaleOrder(params: PageParam) { + return http.get('/erp/sale-order/export-excel', params) +} diff --git a/src/pages-erp/customer/form/index.vue b/src/pages-erp/customer/form/index.vue new file mode 100644 index 0000000..8fd8f01 --- /dev/null +++ b/src/pages-erp/customer/form/index.vue @@ -0,0 +1,372 @@ + + + + + diff --git a/src/pages-erp/customer/index.vue b/src/pages-erp/customer/index.vue new file mode 100644 index 0000000..4ac2504 --- /dev/null +++ b/src/pages-erp/customer/index.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/src/pages-erp/sale-order/detail/index.vue b/src/pages-erp/sale-order/detail/index.vue new file mode 100644 index 0000000..ade75d6 --- /dev/null +++ b/src/pages-erp/sale-order/detail/index.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/src/pages-erp/sale-order/form/index.vue b/src/pages-erp/sale-order/form/index.vue new file mode 100644 index 0000000..079317b --- /dev/null +++ b/src/pages-erp/sale-order/form/index.vue @@ -0,0 +1,423 @@ + + + + + diff --git a/src/pages-erp/sale-order/index.vue b/src/pages-erp/sale-order/index.vue new file mode 100644 index 0000000..9085ac1 --- /dev/null +++ b/src/pages-erp/sale-order/index.vue @@ -0,0 +1,403 @@ + + + + + diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index b2a6bbf..7d676b8 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -88,6 +88,28 @@ const menuGroupsData: MenuGroup[] = [ }, ], }, + { + key: 'sale', + name: '销售管理', + menus: [ + { + key: 'customer', + name: '客户管理', + icon: 'user', + url: '/pages-erp/customer/index', + iconColor: '#1890ff', + permission: 'erp:customer:query', + }, + { + key: 'saleOrder', + name: '销售订单', + icon: 'order', + url: '/pages-erp/sale-order/index', + iconColor: '#1890ff', + permission: 'erp:sale-order:query', + } + ], + }, { key: 'agri', name: '农业溯源',