From 4ec6164b5cb537a5a43690363c9ec40586594bf3 Mon Sep 17 00:00:00 2001 From: jhd <1684074631@qq.com> Date: Tue, 2 Jun 2026 18:23:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=83=AD=E5=8A=9B=E5=9C=B0=E5=9B=BE=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/sales.js | 48 +++++++++++------------ src/views/screens/sales-heatmap/index.vue | 10 ++--- src/views/screens/sales/index.vue | 24 ++++++------ 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/api/sales.js b/src/api/sales.js index a7ef0ff..df66de8 100644 --- a/src/api/sales.js +++ b/src/api/sales.js @@ -3,11 +3,11 @@ import request from '@/utils/request' // ===== Mock 数据(后端无认证时兜底) ===== const mockSummary = { totalOrderCount: 450, - totalSalesAmount: 9860, + totalSalesAmount: 98600000, completedOrderCount: 320, - completedSalesAmount: 7230, - totalUnpaidAmount: 2630, - avgOrderAmount: 21.9 + completedSalesAmount: 72300000, + totalUnpaidAmount: 26300000, + avgOrderAmount: 219000 } const mockSalesmanStats = [ @@ -118,26 +118,26 @@ export function getFullSalesReport(params) { // ===== 省份热力地图数据 ===== const mockProvinceStats = [ - { name: '山东省', customerCount: 124, orderCount: 2800, salesAmount: 3100 }, - { name: '河南省', customerCount: 103, orderCount: 2300, salesAmount: 2550 }, - { name: '江苏省', customerCount: 35, orderCount: 850, salesAmount: 950 }, - { name: '天津市', customerCount: 17, orderCount: 420, salesAmount: 480 }, - { name: '河北省', customerCount: 12, orderCount: 310, salesAmount: 360 }, - { name: '上海市', customerCount: 10, orderCount: 260, salesAmount: 320 }, - { name: '湖北省', customerCount: 7, orderCount: 180, salesAmount: 210 }, - { name: '辽宁省', customerCount: 6, orderCount: 150, salesAmount: 170 }, - { name: '浙江省', customerCount: 5, orderCount: 130, salesAmount: 150 }, - { name: '安徽省', customerCount: 4, orderCount: 100, salesAmount: 115 }, - { name: '四川省', customerCount: 4, orderCount: 90, salesAmount: 100 }, - { name: '湖南省', customerCount: 3, orderCount: 75, salesAmount: 85 }, - { name: '福建省', customerCount: 3, orderCount: 70, salesAmount: 80 }, - { name: '山西省', customerCount: 2, orderCount: 50, salesAmount: 55 }, - { name: '陕西省', customerCount: 2, orderCount: 45, salesAmount: 50 }, - { name: '江西省', customerCount: 2, orderCount: 40, salesAmount: 45 }, - { name: '北京市', customerCount: 1, orderCount: 25, salesAmount: 30 }, - { name: '广东省', customerCount: 1, orderCount: 20, salesAmount: 25 }, - { name: '海南省', customerCount: 1, orderCount: 15, salesAmount: 18 }, - { name: '广西壮族自治区', customerCount: 1, orderCount: 10, salesAmount: 12 } + { name: '山东省', customerCount: 124, orderCount: 2800, salesAmount: 31000000 }, + { name: '河南省', customerCount: 103, orderCount: 2300, salesAmount: 25500000 }, + { name: '江苏省', customerCount: 35, orderCount: 850, salesAmount: 9500000 }, + { name: '天津市', customerCount: 17, orderCount: 420, salesAmount: 4800000 }, + { name: '河北省', customerCount: 12, orderCount: 310, salesAmount: 3600000 }, + { name: '上海市', customerCount: 10, orderCount: 260, salesAmount: 3200000 }, + { name: '湖北省', customerCount: 7, orderCount: 180, salesAmount: 2100000 }, + { name: '辽宁省', customerCount: 6, orderCount: 150, salesAmount: 1700000 }, + { name: '浙江省', customerCount: 5, orderCount: 130, salesAmount: 1500000 }, + { name: '安徽省', customerCount: 4, orderCount: 100, salesAmount: 1150000 }, + { name: '四川省', customerCount: 4, orderCount: 90, salesAmount: 1000000 }, + { name: '湖南省', customerCount: 3, orderCount: 75, salesAmount: 850000 }, + { name: '福建省', customerCount: 3, orderCount: 70, salesAmount: 800000 }, + { name: '山西省', customerCount: 2, orderCount: 50, salesAmount: 550000 }, + { name: '陕西省', customerCount: 2, orderCount: 45, salesAmount: 500000 }, + { name: '江西省', customerCount: 2, orderCount: 40, salesAmount: 450000 }, + { name: '北京市', customerCount: 1, orderCount: 25, salesAmount: 300000 }, + { name: '广东省', customerCount: 1, orderCount: 20, salesAmount: 250000 }, + { name: '海南省', customerCount: 1, orderCount: 15, salesAmount: 180000 }, + { name: '广西壮族自治区', customerCount: 1, orderCount: 10, salesAmount: 120000 } ] /** diff --git a/src/views/screens/sales-heatmap/index.vue b/src/views/screens/sales-heatmap/index.vue index 87f0585..c788170 100644 --- a/src/views/screens/sales-heatmap/index.vue +++ b/src/views/screens/sales-heatmap/index.vue @@ -95,7 +95,7 @@ const kpiList = computed(() => [ { label: '覆盖省份', value: provinceData.value.length, unit: '省', color: '#00d4ff' }, { label: '总客户数', value: provinceData.value.reduce((s, d) => s + d.customerCount, 0), unit: '个', color: '#7c63ff' }, { label: '总订单数', value: provinceData.value.reduce((s, d) => s + d.orderCount, 0), unit: '单', color: '#00ff88' }, - { label: '总销售额', value: provinceData.value.reduce((s, d) => s + d.salesAmount, 0).toLocaleString(), unit: '万元', color: '#f0ad4e' } + { label: '总销售额', value: provinceData.value.reduce((s, d) => s + Number(d.salesAmount), 0).toLocaleString(), unit: '元', color: '#f0ad4e' } ]) // ===== 缩放 ===== @@ -137,11 +137,11 @@ const updateMapChart = (data) => { if (!mapChart) return const raw = Array.isArray(data) ? data : [] const list = raw.map(d => ({ - name: d.name, - value: d.salesAmount || 0, + name: d.province, + value: Number(d.salesAmount) || 0, customerCount: d.customerCount || 0, orderCount: d.orderCount || 0, - salesAmount: d.salesAmount || 0 + salesAmount: Number(d.salesAmount) || 0 })) const maxVal = Math.max(...list.map(d => d.value), 10) mapChart.setOption({ @@ -153,7 +153,7 @@ const updateMapChart = (data) => { return p.name + '
客户数:' + d.customerCount + ' 个' + '
订单数:' + d.orderCount + ' 单' + - '
销售额:' + d.salesAmount.toLocaleString() + ' 万元' + '
销售额:' + d.salesAmount.toLocaleString() + ' 元' }, backgroundColor: 'rgba(10,20,40,0.9)', borderColor: '#1e3a5f', diff --git a/src/views/screens/sales/index.vue b/src/views/screens/sales/index.vue index f966ec2..067132b 100644 --- a/src/views/screens/sales/index.vue +++ b/src/views/screens/sales/index.vue @@ -367,11 +367,11 @@ const normalizeOrders = (data) => { // KPI const kpiList = ref([ { label: '总订单数', value: mockSummary.totalOrderCount, unit: '单', color: '#00d4ff' }, - { label: '总销售额', value: mockSummary.totalSalesAmount, unit: '万元', color: '#7c63ff' }, + { label: '总销售额', value: mockSummary.totalSalesAmount, unit: '元', color: '#7c63ff' }, { label: '已完成订单', value: mockSummary.completedOrderCount, unit: '单', color: '#00ff88' }, - { label: '已完成金额', value: mockSummary.completedSalesAmount, unit: '万元', color: '#f0ad4e' }, - { label: '未结款金额', value: mockSummary.totalUnpaidAmount, unit: '万元', color: '#ff6b81' }, - { label: '平均订单额', value: mockSummary.avgOrderAmount, unit: '万元', color: '#ff85c0' } + { label: '已完成金额', value: mockSummary.completedSalesAmount, unit: '元', color: '#f0ad4e' }, + { label: '未结款金额', value: mockSummary.totalUnpaidAmount, unit: '元', color: '#ff6b81' }, + { label: '平均订单额', value: mockSummary.avgOrderAmount, unit: '元', color: '#ff85c0' } ]) const orderList = ref(mockOrders) @@ -572,11 +572,11 @@ const loadData = async () => { const s = summaryRes && summaryRes.data ? summaryRes.data : summaryRes || {} kpiList.value = [ { label: '总订单数', value: s.totalOrderCount ?? 0, unit: '单', color: '#00d4ff' }, - { label: '总销售额', value: s.totalSalesAmount ?? 0, unit: '万元', color: '#7c63ff' }, + { label: '总销售额', value: s.totalSalesAmount ?? 0, unit: '元', color: '#7c63ff' }, { label: '已完成订单', value: s.completedOrderCount ?? 0, unit: '单', color: '#00ff88' }, - { label: '已完成金额', value: s.completedSalesAmount ?? 0, unit: '万元', color: '#f0ad4e' }, - { label: '未结款金额', value: s.totalUnpaidAmount ?? 0, unit: '万元', color: '#ff6b81' }, - { label: '平均订单额', value: s.avgOrderAmount ?? 0, unit: '万元', color: '#ff85c0' } + { label: '已完成金额', value: s.completedSalesAmount ?? 0, unit: '元', color: '#f0ad4e' }, + { label: '未结款金额', value: s.totalUnpaidAmount ?? 0, unit: '元', color: '#ff6b81' }, + { label: '平均订单额', value: s.avgOrderAmount ?? 0, unit: '元', color: '#ff85c0' } ] // 销售员排行(归一化后端字段 → 前端字段) @@ -603,11 +603,11 @@ const loadData = async () => { const s = mockSummary kpiList.value = [ { label: '总订单数', value: s.totalOrderCount, unit: '单', color: '#00d4ff' }, - { label: '总销售额', value: s.totalSalesAmount, unit: '万元', color: '#7c63ff' }, + { label: '总销售额', value: s.totalSalesAmount, unit: '元', color: '#7c63ff' }, { label: '已完成订单', value: s.completedOrderCount, unit: '单', color: '#00ff88' }, - { label: '已完成金额', value: s.completedSalesAmount, unit: '万元', color: '#f0ad4e' }, - { label: '未结款金额', value: s.totalUnpaidAmount, unit: '万元', color: '#ff6b81' }, - { label: '平均订单额', value: s.avgOrderAmount, unit: '万元', color: '#ff85c0' } + { label: '已完成金额', value: s.completedSalesAmount, unit: '元', color: '#f0ad4e' }, + { label: '未结款金额', value: s.totalUnpaidAmount, unit: '元', color: '#ff6b81' }, + { label: '平均订单额', value: s.avgOrderAmount, unit: '元', color: '#ff85c0' } ] rawOrderList.value = mockOrders orderList.value = mockOrders