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
| // file: about.ejs <div class="statics"> <div class="title"> <i class="iconfont icon-clipcheck" /> 过去一个月更新频率 </div> <div id="summary"></div> <div>
<script type="text/javascript"> let summary = echarts.init(document.getElementById('summary')) <% let startDate = moment().substract(1, 'month') let endDate = moment()
let monthMap = new Map() const dayTime = 86400000
for (let time = startDate; time <= endDate; time += dayTime) { let day = moment(time).format('MM-DD') if (!monthMap.has(day)) monthMap.set(day, 0) }
site.posts.forEach(post => { let day = post.date.format('MM-DD') if (monthMap.has(day)) monthMap.set(day, momthMap.get(day) + 1) })
let monthArr = JSON.stringify([...monthMap.keys()]) let monthValueArr = JSON.stringify[...monthMap.values()] %>
let postsOption = { tooltip: { trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } } }, xAxis: { type: 'category', boundaryGap: false, // 标签与刻度居中 data: <%- monthArr %>, axisLabel: { hideOverlap: true // 重叠标签隐藏 } }, yAxis: { type: 'value' }, series: [ { name: '文章篇数', type: 'line', smooth: true, showSymbol: false, data: <%- monthValueArr %>, areaStyle: { opacity: .8, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ // 设置渐变,让图表更美观 { offset: 0, color: 'rgb(55, 162, 255)' }, { offset: 1, color: 'rgb(116, 21, 219)' } ]) } } ] } summary.setOption(postsOption)
window.addEventListener('resize', () => { wordcloud.resize() summary.resize() }) </script>
|