From 2811e8a7c650da634d5c198424f3085d65af9dc7 Mon Sep 17 00:00:00 2001 From: quu Date: Fri, 25 Apr 2025 10:47:50 +0900 Subject: [PATCH] =?UTF-8?q?crm=20=E6=8A=A5=E4=BB=B7=20=E5=95=86=E6=9C=BA?= =?UTF-8?q?=20=E5=90=88=E5=90=8C=20=E4=B8=89=E5=9D=97=E6=95=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 4 +- src/api/crm/quotation/index.ts | 69 ++++ src/views/crm/business/BusinessForm.vue | 137 +++++++- .../components/BusinessProductForm.vue | 41 ++- src/views/crm/business/index.vue | 3 - src/views/crm/contract/index.vue | 3 - src/views/crm/quotation/QuotationForm.vue | 325 ++++++++++++++++++ .../components/QuotationProductForm.vue | 183 ++++++++++ src/views/crm/quotation/index.vue | 285 +++++++++++++++ 9 files changed, 1012 insertions(+), 38 deletions(-) create mode 100644 src/api/crm/quotation/index.ts create mode 100644 src/views/crm/quotation/QuotationForm.vue create mode 100644 src/views/crm/quotation/components/QuotationProductForm.vue create mode 100644 src/views/crm/quotation/index.vue diff --git a/.vscode/launch.json b/.vscode/launch.json index f43edc03b..f31a5c98d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,9 +5,9 @@ "version": "0.2.0", "configurations": [ { - "type": "msedge", + "type": "chrome", "request": "launch", - "name": "Launch Edge against localhost", + "name": "Launch chrome against localhost", "url": "http://localhost", "webRoot": "${workspaceFolder}/src", "sourceMaps": true diff --git a/src/api/crm/quotation/index.ts b/src/api/crm/quotation/index.ts new file mode 100644 index 000000000..070b7d23d --- /dev/null +++ b/src/api/crm/quotation/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +// CRM 方案报价 VO +export interface QuotationVO { + no: string // 报价单编号 + customerId: number // 客户id + businessId: number // 商机编号 + invoiceTemplateId: number // 票据模板Id + processInstanceId: string // 工作流编号 + auditStatus: number // 审批状态 + ownerUserId: number // 商机负责人 + expanderUserId: number // 拓展人 + pricingUserId: number // 方案报价人 + signUserId: number // 报价签约人 + signPhoneNumber: number // 签约人联系电话 + signEmail: string // 签约人Email + signWechat: string // 签约人微信 + startTime: Date // 开始时间 + totalPrice: number // 合同总金额 + paymentTerm: string // 账期 + creditMethod: number // 授信方式 + creditCalcCycle: number // 授信计算周期 + creditLimit: number // 授信额度 + partnerCompanyId: number // 合作主体 关联部门id + deptId: number // 归属部门Id + creator: string // 创建者 + createTime: Date // 创建时间 + updater: string // 更新者 +} + +// CRM 方案报价 API +export const QuotationApi = { + // 查询CRM 方案报价分页 + getQuotationPage: async (params: any) => { + return await request.get({ url: `/crm/quotation/page`, params }) + }, + + // 查询CRM 方案报价详情 + getQuotation: async (id: number) => { + return await request.get({ url: `/crm/quotation/get?id=` + id }) + }, + + // 新增CRM 方案报价 + createQuotation: async (data: QuotationVO) => { + return await request.post({ url: `/crm/quotation/create`, data }) + }, + + // 修改CRM 方案报价 + updateQuotation: async (data: QuotationVO) => { + return await request.put({ url: `/crm/quotation/update`, data }) + }, + + // 删除CRM 方案报价 + deleteQuotation: async (id: number) => { + return await request.delete({ url: `/crm/quotation/delete?id=` + id }) + }, + + // 导出CRM 方案报价 Excel + exportQuotation: async (params) => { + return await request.download({ url: `/crm/quotation/export-excel`, params }) + }, + +// ==================== 子表(CRM 报价产品关联) ==================== + + // 获得CRM 报价产品关联列表 + getQuotationProductListByQuotationId: async (quotationId) => { + return await request.get({ url: `/crm/quotation/quotation-product/list-by-quotation-id?quotationId=` + quotationId }) + } +} \ No newline at end of file diff --git a/src/views/crm/business/BusinessForm.vue b/src/views/crm/business/BusinessForm.vue index 4af1abe0c..c8d14f0dc 100644 --- a/src/views/crm/business/BusinessForm.vue +++ b/src/views/crm/business/BusinessForm.vue @@ -18,6 +18,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ dict.label }} + + + + + + @@ -97,15 +185,24 @@ - + + + + + + \ No newline at end of file diff --git a/src/views/crm/quotation/components/QuotationProductForm.vue b/src/views/crm/quotation/components/QuotationProductForm.vue new file mode 100644 index 000000000..a292c1e7d --- /dev/null +++ b/src/views/crm/quotation/components/QuotationProductForm.vue @@ -0,0 +1,183 @@ + + \ No newline at end of file diff --git a/src/views/crm/quotation/index.vue b/src/views/crm/quotation/index.vue new file mode 100644 index 000000000..5b75878a5 --- /dev/null +++ b/src/views/crm/quotation/index.vue @@ -0,0 +1,285 @@ + + + \ No newline at end of file