gaoluyang
2026-06-24 bfdc0e0e6d5e47aa501f9b6fadd143d9c97cf00a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
import type { MpStatisticsApi } from '#/api/mp/statistics';
 
/** 用户增减数据图表配置项 */
export function userSummaryOption(
  data: MpStatisticsApi.StatisticsUserSummaryRespVO[],
  dates: string[],
): any {
  return {
    color: ['#67C23A', '#E5323E'],
    legend: {
      data: ['新增用户', '取消关注的用户'],
    },
    tooltip: {},
    xAxis: {
      data: dates,
    },
    yAxis: {
      minInterval: 1,
    },
    series: [
      {
        name: '新增用户',
        type: 'bar',
        label: {
          show: true,
        },
        barGap: 0,
        data: data.map((item) => item.newUser), // 新增用户的数据
      },
      {
        name: '取消关注的用户',
        type: 'bar',
        label: {
          show: true,
        },
        data: data.map((item) => item.cancelUser), // 取消关注的用户的数据
      },
    ],
  };
}
 
/** 累计用户数据图表配置项 */
export function userCumulateOption(
  data: MpStatisticsApi.StatisticsUserCumulateRespVO[],
  dates: string[],
): any {
  return {
    legend: {
      data: ['累计用户量'],
    },
    xAxis: {
      type: 'category',
      data: dates,
    },
    yAxis: {
      minInterval: 1,
    },
    series: [
      {
        name: '累计用户量',
        data: data.map((item) => item.cumulateUser), // 累计用户量的数据
        type: 'line',
        smooth: true,
        label: {
          show: true,
        },
      },
    ],
  };
}
 
/** 消息发送概况数据图表配置项 */
export function upstreamMessageOption(
  data: MpStatisticsApi.StatisticsUpstreamMessageRespVO[],
  dates: string[],
): any {
  return {
    color: ['#67C23A', '#E5323E'],
    legend: {
      data: ['用户发送人数', '用户发送条数'],
    },
    tooltip: {},
    xAxis: {
      data: dates, // X 轴的日期范围
    },
    yAxis: {
      minInterval: 1,
    },
    series: [
      {
        name: '用户发送人数',
        type: 'line',
        smooth: true,
        label: {
          show: true,
        },
        data: data.map((item) => item.msgUser), // 用户发送人数的数据
      },
      {
        name: '用户发送条数',
        type: 'line',
        smooth: true,
        label: {
          show: true,
        },
        data: data.map((item) => item.msgCount), // 用户发送条数的数据
      },
    ],
  };
}
 
/** 接口分析况数据图表配置项 */
export function interfaceSummaryOption(
  data: MpStatisticsApi.StatisticsInterfaceSummaryRespVO[],
  dates: string[],
): any {
  return {
    color: ['#67C23A', '#E5323E', '#E6A23C', '#409EFF'],
    legend: {
      data: ['被动回复用户消息的次数', '失败次数', '最大耗时', '总耗时'],
    },
    tooltip: {},
    xAxis: {
      data: dates, // X 轴的日期范围
    },
    yAxis: {},
    series: [
      {
        name: '被动回复用户消息的次数',
        type: 'bar',
        label: {
          show: true,
        },
        barGap: 0,
        data: data.map((item) => item.callbackCount), // 被动回复用户消息的次数的数据
      },
      {
        name: '失败次数',
        type: 'bar',
        label: {
          show: true,
        },
        data: data.map((item) => item.failCount), // 失败次数的数据
      },
      {
        name: '最大耗时',
        type: 'bar',
        label: {
          show: true,
        },
        data: data.map((item) => item.maxTimeCost), // 最大耗时的数据
      },
      {
        name: '总耗时',
        type: 'bar',
        label: {
          show: true,
        },
        data: data.map((item) => item.totalTimeCost), // 总耗时的数据
      },
    ],
  };
}