diff --git a/frontend/index.html b/frontend/index.html
index 8f146ca..ec584b2 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -279,15 +279,6 @@
diff --git a/frontend/js/main.js b/frontend/js/main.js
index eac8810..d45408b 100644
--- a/frontend/js/main.js
+++ b/frontend/js/main.js
@@ -1045,7 +1045,8 @@ document.addEventListener('DOMContentLoaded', function () {
}).map(c => c.customerName).filter(c => c)
).size;
- const products = new Set(customers.map(c => c.version)).size;
+ // 客户总数:统计去重的客户名称数量(与totalCustomers一致)
+ const totalCustomersCount = new Set(customers.map(c => c.customerName).filter(c => c)).size;
const completed = new Set(
customers.filter(c =>
@@ -1055,7 +1056,7 @@ document.addEventListener('DOMContentLoaded', function () {
document.getElementById('totalCustomers').textContent = totalCustomers;
document.getElementById('newCustomers').textContent = newCustomers;
- document.getElementById('totalProducts').textContent = products;
+ document.getElementById('totalProducts').textContent = totalCustomersCount;
document.getElementById('completedTasks').textContent = completed;
}
@@ -1119,7 +1120,24 @@ document.addEventListener('DOMContentLoaded', function () {
responsive: true,
plugins: {
legend: {
- position: 'bottom'
+ position: 'left',
+ labels: {
+ generateLabels: function (chart) {
+ const data = chart.data;
+ if (data.labels.length && data.datasets.length) {
+ return data.labels.map((label, i) => {
+ const value = data.datasets[0].data[i];
+ return {
+ text: `${label}: ${value}`,
+ fillStyle: data.datasets[0].backgroundColor[i],
+ hidden: false,
+ index: i
+ };
+ });
+ }
+ return [];
+ }
+ }
},
title: {
display: true,
@@ -1144,12 +1162,13 @@ document.addEventListener('DOMContentLoaded', function () {
formatter: (value, ctx) => {
const total = ctx.dataset.data.reduce((a, b) => a + b, 0);
const percentage = ((value / total) * 100).toFixed(1);
- return percentage + '%';
+ // 显示具体数值和百分比
+ return `${value}\n(${percentage}%)`;
},
color: '#fff',
font: {
weight: 'bold',
- size: 14
+ size: 12
}
}
}
@@ -1208,7 +1227,24 @@ document.addEventListener('DOMContentLoaded', function () {
responsive: true,
plugins: {
legend: {
- position: 'bottom'
+ position: 'left',
+ labels: {
+ generateLabels: function (chart) {
+ const data = chart.data;
+ if (data.labels.length && data.datasets.length) {
+ return data.labels.map((label, i) => {
+ const value = data.datasets[0].data[i];
+ return {
+ text: `${label}: ${value}`,
+ fillStyle: data.datasets[0].backgroundColor[i],
+ hidden: false,
+ index: i
+ };
+ });
+ }
+ return [];
+ }
+ }
},
title: {
display: true,
@@ -1233,12 +1269,13 @@ document.addEventListener('DOMContentLoaded', function () {
formatter: (value, ctx) => {
const total = ctx.dataset.data.reduce((a, b) => a + b, 0);
const percentage = ((value / total) * 100).toFixed(1);
- return percentage + '%';
+ // 显示具体数值和百分比
+ return `${value}\n(${percentage}%)`;
},
color: '#fff',
font: {
weight: 'bold',
- size: 14
+ size: 12
}
}
}