5
5
<el-form-item label =" 公众号" prop =" accountId" >
6
6
<el-select v-model =" accountId" @change =" getSummary" >
7
7
<el-option
8
- v-for =" item in accounts "
8
+ v-for =" item in accountList "
9
9
:key =" parseInt(item.id)"
10
10
:label =" item.name"
11
11
:value =" parseInt(item.id)"
83
83
</template >
84
84
85
85
<script setup lang="ts" name="MpStatistics">
86
- // 引入基本模板
87
86
import * as echarts from ' echarts'
88
87
import {
89
88
getInterfaceSummary ,
90
89
getUpstreamMessage ,
91
90
getUserCumulate ,
92
91
getUserSummary
93
- } from ' @/api/mp/statistics'
94
- import { addTime , beginOfDay , betweenDay , endOfDay , formatDate } from ' @/utils/dateUtils'
95
- import { getSimpleAccountList } from ' @/api/mp/account '
96
-
92
+ } from ' @/api/mp/statistics' // TODO 改成 StatisticsApi 整体引入
93
+ import { addTime , beginOfDay , betweenDay , endOfDay } from ' @/utils/dateUtils' // TODO 可以改到 formatTime 里
94
+ import { formatDate } from ' @/utils/formatTime '
95
+ import * as MpAccountApi from ' @/api/mp/account '
97
96
const message = useMessage () // 消息弹窗
98
97
99
98
const defaultTime = ref <[Date , Date ]>([
@@ -105,18 +104,13 @@ const dateRange = ref([
105
104
endOfDay (new Date (new Date ().getTime () - 3600 * 1000 * 24 ))
106
105
]) // -1 天
107
106
const accountId = ref ()
108
- const accounts = ref ([
109
- {
110
- id: ' 0' ,
111
- name: ' '
112
- }
113
- ])
107
+ const accountList = ref <MpAccountApi .AccountVO []>([]) // 公众号账号列表
114
108
115
109
const userSummaryChartRef = ref ()
116
110
const userCumulateChartRef = ref ()
117
111
const upstreamMessageChartRef = ref ()
118
112
const interfaceSummaryChartRef = ref ()
119
-
113
+ // TODO 看看能不能用 https://kailong110120130.gitee.io/vue-element-plus-admin-doc/components/echart.html 组件
120
114
const xAxisDate = ref ([] as any []) // X 轴的日期范围
121
115
const userSummaryOption = reactive ({
122
116
// 用户增减数据
@@ -257,20 +251,16 @@ const interfaceSummaryOption = reactive({
257
251
]
258
252
})
259
253
260
- onMounted (async () => {
261
- // 获取公众号下拉列表
262
- await getAccountList ()
263
- // 加载数据
264
- getSummary ()
265
- })
254
+ /** 加载公众号账号的列表 */
266
255
const getAccountList = async () => {
267
- const data = await getSimpleAccountList ()
268
- accounts .value = data
256
+ accountList .value = await MpAccountApi .getSimpleAccountList ()
269
257
// 默认选中第一个
270
- if (accounts .value .length > 0 ) {
271
- accountId .value = accounts .value [0 ].id
258
+ if (accountList .value .length > 0 ) {
259
+ accountId .value = accountList .value [0 ].id
272
260
}
273
261
}
262
+
263
+ // TODO 一些方法的注释补全下
274
264
const getSummary = () => {
275
265
// 如果没有选中公众号账号,则进行提示。
276
266
if (! accountId ) {
@@ -286,7 +276,7 @@ const getSummary = () => {
286
276
const days = betweenDay (dateRange .value [0 ], dateRange .value [1 ]) // 相差天数
287
277
for (let i = 0 ; i <= days ; i ++ ) {
288
278
xAxisDate .value .push (
289
- formatDate (addTime (dateRange .value [0 ], 3600 * 1000 * 24 * i ), ' yyyy -MM-dd ' )
279
+ formatDate (addTime (dateRange .value [0 ], 3600 * 1000 * 24 * i ), ' YYYY -MM-DD ' )
290
280
)
291
281
}
292
282
@@ -296,25 +286,22 @@ const getSummary = () => {
296
286
initUpstreamMessageChart ()
297
287
interfaceSummaryChart ()
298
288
}
289
+
299
290
const initUserSummaryChart = async () => {
300
291
userSummaryOption .xAxis .data = []
301
292
userSummaryOption .series [0 ].data = []
302
293
userSummaryOption .series [1 ].data = []
303
294
try {
304
295
const data = await getUserSummary ({
305
296
accountId: accountId .value ,
306
- date: [
307
- formatDate (dateRange .value [0 ], ' yyyy-MM-dd HH:mm:ss' ),
308
- formatDate (dateRange .value [1 ], ' yyyy-MM-dd HH:mm:ss' )
309
- ]
297
+ date: [formatDate (dateRange .value [0 ]), formatDate (dateRange .value [1 ])]
310
298
})
311
-
312
299
userSummaryOption .xAxis .data = xAxisDate .value
313
300
// 处理数据
314
301
xAxisDate .value .forEach ((date , index ) => {
315
302
data .forEach ((item ) => {
316
303
// 匹配日期
317
- const refDate = formatDate (new Date (item .refDate ), ' yyyy -MM-dd ' )
304
+ const refDate = formatDate (new Date (item .refDate ), ' YYYY -MM-DD ' )
318
305
if (refDate .indexOf (date ) === - 1 ) {
319
306
return
320
307
}
@@ -328,17 +315,15 @@ const initUserSummaryChart = async () => {
328
315
userSummaryChart .setOption (userSummaryOption )
329
316
} catch {}
330
317
}
318
+
331
319
const initUserCumulateChart = async () => {
332
320
userCumulateOption .xAxis .data = []
333
321
userCumulateOption .series [0 ].data = []
334
322
// 发起请求
335
323
try {
336
324
const data = await getUserCumulate ({
337
325
accountId: accountId .value ,
338
- date: [
339
- formatDate (dateRange .value [0 ], ' yyyy-MM-dd HH:mm:ss' ),
340
- formatDate (dateRange .value [1 ], ' yyyy-MM-dd HH:mm:ss' )
341
- ]
326
+ date: [formatDate (dateRange .value [0 ]), formatDate (dateRange .value [1 ])]
342
327
})
343
328
userCumulateOption .xAxis .data = xAxisDate .value
344
329
// 处理数据
@@ -358,10 +343,7 @@ const initUpstreamMessageChart = async () => {
358
343
try {
359
344
const data = await getUpstreamMessage ({
360
345
accountId: accountId .value ,
361
- date: [
362
- formatDate (dateRange .value [0 ], ' yyyy-MM-dd HH:mm:ss' ),
363
- formatDate (dateRange .value [1 ], ' yyyy-MM-dd HH:mm:ss' )
364
- ]
346
+ date: [formatDate (dateRange .value [0 ]), formatDate (dateRange .value [1 ])]
365
347
})
366
348
upstreamMessageOption .xAxis .data = xAxisDate .value
367
349
// 处理数据
@@ -384,10 +366,7 @@ const interfaceSummaryChart = async () => {
384
366
try {
385
367
const data = await getInterfaceSummary ({
386
368
accountId: accountId .value ,
387
- date: [
388
- formatDate (dateRange .value [0 ], ' yyyy-MM-dd HH:mm:ss' ),
389
- formatDate (dateRange .value [1 ], ' yyyy-MM-dd HH:mm:ss' )
390
- ]
369
+ date: [formatDate (dateRange .value [0 ]), formatDate (dateRange .value [1 ])]
391
370
})
392
371
interfaceSummaryOption .xAxis .data = xAxisDate .value
393
372
// 处理数据
@@ -402,4 +381,12 @@ const interfaceSummaryChart = async () => {
402
381
interfaceSummaryChart .setOption (interfaceSummaryOption )
403
382
} catch {}
404
383
}
384
+
385
+ /** 初始化 */
386
+ onMounted (async () => {
387
+ // 获取公众号下拉列表
388
+ await getAccountList ()
389
+ // 加载数据
390
+ getSummary ()
391
+ })
405
392
</script >
0 commit comments