shaogen1995 2 дней назад
Родитель
Сommit
d330924e82
1 измененных файлов с 23 добавлено и 24 удалено
  1. 23 24
      src/pages/Abench/A1statistics/index.tsx

+ 23 - 24
src/pages/Abench/A1statistics/index.tsx

@@ -5,30 +5,26 @@ import { iconUrl } from '@/utils/http'
 import * as echarts from 'echarts'
 import * as echarts from 'echarts'
 
 
 const chartData1 = [
 const chartData1 = [
-  { name: '啤酒产品类', value: 2500, percentage: '10%' },
-  { name: '饮用器皿类', value: 1800, percentage: '5%' },
-  { name: '品牌文化与节庆类', value: 1200, percentage: '2%' },
-  { name: '企业文化与档案类', value: 800, percentage: '3%' },
-  { name: '艺术与礼品类', value: 1000, percentage: '10%' },
-  { name: '工具与设备类', value: 900, percentage: '5%' },
-  { name: '其他综合类', value: 2500, percentage: '10%' }
+  { name: '啤酒产品类', value: 2500 },
+  { name: '饮用器皿类', value: 1800 },
+  { name: '品牌文化与节庆类', value: 1200 },
+  { name: '企业文化与档案类', value: 800 },
+  { name: '艺术与礼品类', value: 1000 },
+  { name: '工具与设备类', value: 900 },
+  { name: '其他综合类', value: 2500 }
 ]
 ]
 
 
 const chartData2 = [
 const chartData2 = [
-  { name: '酒类实物', value: 2500, percentage: '10%' },
-  { name: '包装与标识', value: 1800, percentage: '8%' },
-  { name: '杯子', value: 1200, percentage: '6%' },
-  { name: '品牌节庆活动', value: 1800, percentage: '8%' },
-  { name: '品牌视觉传播', value: 1800, percentage: '8%' },
-  { name: '文书档案', value: 1800, percentage: '8%' },
-  { name: '影像资料', value: 1800, percentage: '8%' },
-  { name: '荣誉与表彰', value: 1800, percentage: '8%' },
-  { name: '企业藏品', value: 1800, percentage: '8%' },
-  { name: '艺术藏品', value: 1800, percentage: '8%' },
-  { name: '纪念礼品', value: 1800, percentage: '8%' },
-  { name: '酿造与开启工具', value: 1800, percentage: '8%' },
-  { name: '设备模型或实物', value: 1800, percentage: '8%' },
-  { name: '其他', value: 1800, percentage: '6%' }
+  { name: '酒类实物', value: 2500 },
+  { name: '包装与标识', value: 1800 },
+  { name: '杯子', value: 1200 },
+  { name: '品牌节庆活动', value: 1300 },
+  { name: '品牌视觉传播', value: 1600 },
+  { name: '文书档案', value: 1700 },
+  { name: '影像资料', value: 2200 },
+  { name: '荣誉与表彰', value: 1800 },
+  { name: '企业藏品', value: 1800 },
+  { name: '其他', value: 1900 }
 ]
 ]
 
 
 const DEFAULT_COLORS = ['#c11b2d', '#243220', '#24664b', '#8acfb2', '#806e4c', '#988364', '#972d00']
 const DEFAULT_COLORS = ['#c11b2d', '#243220', '#24664b', '#8acfb2', '#806e4c', '#988364', '#972d00']
@@ -92,6 +88,9 @@ function A1statistics() {
   // 生成柱状图
   // 生成柱状图
   const initEchFu = useCallback((data: any[], dom: any) => {
   const initEchFu = useCallback((data: any[], dom: any) => {
     if (!dom) return
     if (!dom) return
+
+    // 计算总数用于百分比
+    const total = data.reduce((sum, item) => sum + item.value, 0)
     const myChart = echarts.getInstanceByDom(dom) || echarts.init(dom)
     const myChart = echarts.getInstanceByDom(dom) || echarts.init(dom)
 
 
     const option: echarts.EChartsOption = {
     const option: echarts.EChartsOption = {
@@ -105,7 +104,7 @@ function A1statistics() {
           return `
           return `
                   <div style="font-weight: bold;">${param.name}</div>
                   <div style="font-weight: bold;">${param.name}</div>
                   <div>数量: ${param.value}</div>
                   <div>数量: ${param.value}</div>
-                  <div>占比: ${param.data.percentage}</div>
+                  <div>占比: ${((param.value / total) * 100).toFixed(1) + '%'}</div>
                 `
                 `
         },
         },
         backgroundColor: 'rgba(255, 255, 255, 0.95)',
         backgroundColor: 'rgba(255, 255, 255, 0.95)',
@@ -181,7 +180,7 @@ function A1statistics() {
           type: 'bar',
           type: 'bar',
           data: data.map((item, index) => ({
           data: data.map((item, index) => ({
             value: item.value,
             value: item.value,
-            percentage: item.percentage,
+            percentage: ((item.value / total) * 100).toFixed(1) + '%',
             // 为每个柱子设置独立的渐变
             // 为每个柱子设置独立的渐变
             itemStyle: {
             itemStyle: {
               // 关键修改:使用线性渐变实现单个柱子的渐变效果
               // 关键修改:使用线性渐变实现单个柱子的渐变效果
@@ -209,7 +208,7 @@ function A1statistics() {
             position: 'top',
             position: 'top',
             formatter: (params: any) => {
             formatter: (params: any) => {
               const itemData = params.data
               const itemData = params.data
-              return `${itemData.value}\n${itemData.percentage}`
+              return `${itemData.value}\n${((itemData.value / total) * 100).toFixed(1) + '%'}`
             },
             },
             fontSize: 10,
             fontSize: 10,
             fontWeight: 'bold',
             fontWeight: 'bold',