From 15b0020e6172f697d4d3cb42a7dc504c9fe8ef45 Mon Sep 17 00:00:00 2001 From: ouhaolan Date: Mon, 5 Jan 2026 20:47:14 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=BD=AE=E8=83=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=B1=87=E6=80=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 38 ++ src/api/car/renewalorder/index.ts | 68 ++ src/api/car/renewalproduct/index.ts | 43 ++ src/views/Home/Index2.vue | 604 ++++++++++++++++++ .../car/renewalorder/RenewalOrderForm.vue | 438 +++++++++++++ .../components/SalesTrendChart.vue | 160 +++++ .../SalespersonOrderRateAnalysis.vue | 85 +++ .../components/SalespersonRank.vue | 125 ++++ .../renewalorder/components/StoreAnalysis.vue | 84 +++ .../components/StoreSalesStatistics.vue | 138 ++++ .../renewalorder/components/SummaryCard.vue | 41 ++ src/views/car/renewalorder/dashboard.vue | 167 +++++ src/views/car/renewalorder/index.vue | 313 +++++++++ .../car/renewalproduct/RenewalProductForm.vue | 130 ++++ src/views/car/renewalproduct/index.vue | 211 ++++++ 15 files changed, 2645 insertions(+) create mode 100644 .env.dev create mode 100644 src/api/car/renewalorder/index.ts create mode 100644 src/api/car/renewalproduct/index.ts create mode 100644 src/views/Home/Index2.vue create mode 100644 src/views/car/renewalorder/RenewalOrderForm.vue create mode 100644 src/views/car/renewalorder/components/SalesTrendChart.vue create mode 100644 src/views/car/renewalorder/components/SalespersonOrderRateAnalysis.vue create mode 100644 src/views/car/renewalorder/components/SalespersonRank.vue create mode 100644 src/views/car/renewalorder/components/StoreAnalysis.vue create mode 100644 src/views/car/renewalorder/components/StoreSalesStatistics.vue create mode 100644 src/views/car/renewalorder/components/SummaryCard.vue create mode 100644 src/views/car/renewalorder/dashboard.vue create mode 100644 src/views/car/renewalorder/index.vue create mode 100644 src/views/car/renewalproduct/RenewalProductForm.vue create mode 100644 src/views/car/renewalproduct/index.vue diff --git a/.env.dev b/.env.dev new file mode 100644 index 0000000..1eb217a --- /dev/null +++ b/.env.dev @@ -0,0 +1,38 @@ +# 开发环境:本地只启动前端项目,依赖开发环境(后端、APP) +NODE_ENV=production + +VITE_DEV=true + +# 请求路径 +VITE_BASE_URL='http://localhost:48080' +#VITE_BASE_URL='https://test.zmingzhikeji.cn' + +# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 +VITE_UPLOAD_TYPE=client + +# 上传路径 +VITE_UPLOAD_URL='https://www.zmingzhikeji.cn/admin-api/infra/file/upload' + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=false + +# 是否删除console.log +VITE_DROP_CONSOLE=false + +# 是否sourcemap +VITE_SOURCEMAP=true + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist + +# 商城H5会员端域名 +VITE_MALL_H5_DOMAIN='http://mall.yudao.iocoder.cn' + +# 验证码的开关 +VITE_APP_CAPTCHA_ENABLE=true diff --git a/src/api/car/renewalorder/index.ts b/src/api/car/renewalorder/index.ts new file mode 100644 index 0000000..322d6c8 --- /dev/null +++ b/src/api/car/renewalorder/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +// 车辆续保订单 VO +export interface RenewalOrderVO { + id: number // 主键ID + carBrand: string // 汽车品牌 + carModel: string // 车型 + licensePlate: string // 车牌号 + factoryModel: string // 厂牌型号 + invoiceAmount: number // 发票金额 + purchaseMileage: number // 购买时公里数 + engineNo: string // 发动机号 + vin: string // 车架号 + invoiceDate: Date // 发票日期 + invoiceUrl: string // 发票图片地址 + serviceBuyer: string // 服务购买方 + carBuyer: string // 车辆购买方 + certType: string // 证件类型 + mobile: string // 联系电话 + certNo: string // 证件号码 + contactAddress: string // 联系地址 + memberEmail: string // 会员邮箱 + storeId: number // 门店ID(关联 tire_store.id) + storeName?: string // 门店名称 + productId: number // 续保产品ID(关联 car_renewal_product.id) + serviceProduct: string // 服务产品 + productValidity: string // 产品时效 + originalWarrantyYears: string // 原厂质保时长 + originalWarrantyMileage: string // 原厂质保里程 + productFee: number // 产品费用 + settlementMethod: string // 结算方式 + remark: string // 备注 + inputUser: string // 录单人 + contractRemark: string // 合同备注 +} + +// 车辆续保订单 API +export const RenewalOrderApi = { + // 查询车辆续保订单分页 + getRenewalOrderPage: async (params: any) => { + return await request.get({ url: `/car/renewal-order/page`, params }) + }, + + // 查询车辆续保订单详情 + getRenewalOrder: async (id: number) => { + return await request.get({ url: `/car/renewal-order/get?id=` + id }) + }, + + // 新增车辆续保订单 + createRenewalOrder: async (data: RenewalOrderVO) => { + return await request.post({ url: `/car/renewal-order/create`, data }) + }, + + // 修改车辆续保订单 + updateRenewalOrder: async (data: RenewalOrderVO) => { + return await request.put({ url: `/car/renewal-order/update`, data }) + }, + + // 删除车辆续保订单 + deleteRenewalOrder: async (id: number) => { + return await request.delete({ url: `/car/renewal-order/delete?id=` + id }) + }, + + // 导出车辆续保订单 Excel + exportRenewalOrder: async (params) => { + return await request.download({ url: `/car/renewal-order/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/car/renewalproduct/index.ts b/src/api/car/renewalproduct/index.ts new file mode 100644 index 0000000..1be942a --- /dev/null +++ b/src/api/car/renewalproduct/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// 车辆续保产品信息 VO +export interface RenewalProductVO { + id: number // 主键ID + productName: string // 产品名称 + productContent: string // 产品内容 + productType: string // 产品类别(car_renewal_product_type:00 无忧,01 延保) + remark: string // 备注 +} + +// 车辆续保产品信息 API +export const RenewalProductApi = { + // 查询车辆续保产品信息分页 + getRenewalProductPage: async (params: any) => { + return await request.get({ url: `/car/renewal-product/page`, params }) + }, + + // 查询车辆续保产品信息详情 + getRenewalProduct: async (id: number) => { + return await request.get({ url: `/car/renewal-product/get?id=` + id }) + }, + + // 新增车辆续保产品信息 + createRenewalProduct: async (data: RenewalProductVO) => { + return await request.post({ url: `/car/renewal-product/create`, data }) + }, + + // 修改车辆续保产品信息 + updateRenewalProduct: async (data: RenewalProductVO) => { + return await request.put({ url: `/car/renewal-product/update`, data }) + }, + + // 删除车辆续保产品信息 + deleteRenewalProduct: async (id: number) => { + return await request.delete({ url: `/car/renewal-product/delete?id=` + id }) + }, + + // 导出车辆续保产品信息 Excel + exportRenewalProduct: async (params) => { + return await request.download({ url: `/car/renewal-product/export-excel`, params }) + } +} diff --git a/src/views/Home/Index2.vue b/src/views/Home/Index2.vue new file mode 100644 index 0000000..c34754c --- /dev/null +++ b/src/views/Home/Index2.vue @@ -0,0 +1,604 @@ + + + + diff --git a/src/views/car/renewalorder/RenewalOrderForm.vue b/src/views/car/renewalorder/RenewalOrderForm.vue new file mode 100644 index 0000000..6474e49 --- /dev/null +++ b/src/views/car/renewalorder/RenewalOrderForm.vue @@ -0,0 +1,438 @@ + + \ No newline at end of file diff --git a/src/views/car/renewalorder/components/SalesTrendChart.vue b/src/views/car/renewalorder/components/SalesTrendChart.vue new file mode 100644 index 0000000..54e7638 --- /dev/null +++ b/src/views/car/renewalorder/components/SalesTrendChart.vue @@ -0,0 +1,160 @@ + + + diff --git a/src/views/car/renewalorder/components/SalespersonOrderRateAnalysis.vue b/src/views/car/renewalorder/components/SalespersonOrderRateAnalysis.vue new file mode 100644 index 0000000..50b4d6b --- /dev/null +++ b/src/views/car/renewalorder/components/SalespersonOrderRateAnalysis.vue @@ -0,0 +1,85 @@ + + + diff --git a/src/views/car/renewalorder/components/SalespersonRank.vue b/src/views/car/renewalorder/components/SalespersonRank.vue new file mode 100644 index 0000000..62846da --- /dev/null +++ b/src/views/car/renewalorder/components/SalespersonRank.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/views/car/renewalorder/components/StoreAnalysis.vue b/src/views/car/renewalorder/components/StoreAnalysis.vue new file mode 100644 index 0000000..d9a2732 --- /dev/null +++ b/src/views/car/renewalorder/components/StoreAnalysis.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/views/car/renewalorder/components/StoreSalesStatistics.vue b/src/views/car/renewalorder/components/StoreSalesStatistics.vue new file mode 100644 index 0000000..8048fce --- /dev/null +++ b/src/views/car/renewalorder/components/StoreSalesStatistics.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/car/renewalorder/components/SummaryCard.vue b/src/views/car/renewalorder/components/SummaryCard.vue new file mode 100644 index 0000000..0cbe650 --- /dev/null +++ b/src/views/car/renewalorder/components/SummaryCard.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/views/car/renewalorder/dashboard.vue b/src/views/car/renewalorder/dashboard.vue new file mode 100644 index 0000000..5894b67 --- /dev/null +++ b/src/views/car/renewalorder/dashboard.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/views/car/renewalorder/index.vue b/src/views/car/renewalorder/index.vue new file mode 100644 index 0000000..20ee2ff --- /dev/null +++ b/src/views/car/renewalorder/index.vue @@ -0,0 +1,313 @@ + + + + + diff --git a/src/views/car/renewalproduct/RenewalProductForm.vue b/src/views/car/renewalproduct/RenewalProductForm.vue new file mode 100644 index 0000000..63b1e7e --- /dev/null +++ b/src/views/car/renewalproduct/RenewalProductForm.vue @@ -0,0 +1,130 @@ + + diff --git a/src/views/car/renewalproduct/index.vue b/src/views/car/renewalproduct/index.vue new file mode 100644 index 0000000..afb7c1f --- /dev/null +++ b/src/views/car/renewalproduct/index.vue @@ -0,0 +1,211 @@ + + +