187 lines
5.4 KiB
HTML
187 lines
5.4 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
|
||
|
<link rel="shortcut icon" href="#" />
|
||
|
<link rel="stylesheet" type="text/css" href="{{pluResPath}}html/ledgerCount/ledgerCount.css" />
|
||
|
<link rel="preload" href="https://unpkg.com/@antv/g2plot@latest/dist/g2plot.min.js" as="script" />
|
||
|
<link rel="preload" href="{{resPath}}/font/tttgbnumber.ttf" as="font">
|
||
|
<link rel="preload" href="{{pluResPath}}img/other/原神.png" as="image">
|
||
|
{{@headStyle}}
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<div class="container" id="container">
|
||
|
<div class="head_box">
|
||
|
<div class="id_text">ID: {{uid}}</div>
|
||
|
<h2 class="day_text">{{yearText}}原石统计</h2>
|
||
|
<img class="genshin_logo" src="{{pluResPath}}img/other/原神.png" />
|
||
|
</div>
|
||
|
<div class="data_box">
|
||
|
<div class="tab_lable">数据总览</div>
|
||
|
<div class="data_line">
|
||
|
<div class="data_line_item">
|
||
|
<div class="num">{{allPrimogemsShow}}</div>
|
||
|
<div class="lable">总原石</div>
|
||
|
</div>
|
||
|
<div class="data_line_item">
|
||
|
<div class="num">{{allGacha}}抽</div>
|
||
|
<div class="lable">总抽数</div>
|
||
|
</div>
|
||
|
<div class="data_line_item">
|
||
|
<div class="num">{{maxPrimogems.month}}月</div>
|
||
|
<div class="lable">原石最多</div>
|
||
|
</div>
|
||
|
<div class="data_line_item">
|
||
|
<div class="num">{{maxPrimogems.value}}</div>
|
||
|
<div class="lable">{{maxPrimogems.month}}月原石</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="data_line">
|
||
|
<div class="data_line_item">
|
||
|
<div class="num">{{allMora}}</div>
|
||
|
<div class="lable">总摩拉</div>
|
||
|
</div>
|
||
|
<div class="data_line_item">
|
||
|
<div class="num">{{maxMora.month}}月</div>
|
||
|
<div class="lable">摩拉最多</div>
|
||
|
</div>
|
||
|
<div class="data_line_item">
|
||
|
{{if group_by.length>0 }}
|
||
|
<div class="num">{{group_by[0].num}}</div>
|
||
|
<div class="lable">{{group_by[0].action}}</div>
|
||
|
{{/if}}
|
||
|
</div>
|
||
|
<div class="data_line_item">
|
||
|
{{if group_by.length>0 }}
|
||
|
<div class="num">{{group_by[1].num}}</div>
|
||
|
<div class="lable">{{group_by[1].action}}</div>
|
||
|
{{/if}}
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="data_box">
|
||
|
<div class="tab_lable">月份统计</div>
|
||
|
<div id="chartContainer"></div>
|
||
|
</div>
|
||
|
<div class="data_box">
|
||
|
<div class="tab_lable">详细统计</div>
|
||
|
<div id="chartContainer2"></div>
|
||
|
</div>
|
||
|
{{if hasMore }}
|
||
|
<div class="hasMore">*该数据只显示最近12个月</div>
|
||
|
{{/if}}
|
||
|
<div class="logo">Created By Yunzai-Bot</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
|
||
|
<script type="text/javascript" src="https://unpkg.com/@antv/g2plot@latest/dist/g2plot.min.js"></script>
|
||
|
<script>
|
||
|
const { Column, Pie } = G2Plot;
|
||
|
|
||
|
const primogemsMonth = JSON.parse(`{{@ primogemsMonth}}`);
|
||
|
const primogemsMax = {{maxPrimogems.value}};
|
||
|
const stackedColumnPlot = new Column("chartContainer", {
|
||
|
data: primogemsMonth,
|
||
|
isGroup: true,
|
||
|
xField: "month",
|
||
|
yField: "value",
|
||
|
seriesField: "name",
|
||
|
animation: false,
|
||
|
renderer: "svg",
|
||
|
padding: [40, 10, 30, 52],
|
||
|
label: {
|
||
|
position: "top",
|
||
|
style: {
|
||
|
fontFamily: "tttgbnumber",
|
||
|
},
|
||
|
offsetY: 10,
|
||
|
},
|
||
|
xAxis: {
|
||
|
label: {
|
||
|
autoHide: false,
|
||
|
formatter: (v) => {
|
||
|
return v + "月";
|
||
|
},
|
||
|
style: {
|
||
|
fontFamily: "tttgbnumber",
|
||
|
fontSize: 14,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
yAxis: {
|
||
|
label: {
|
||
|
style: {
|
||
|
fontFamily: "tttgbnumber",
|
||
|
fontSize: 14,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
stackedColumnPlot.render();
|
||
|
|
||
|
const countdata = JSON.parse(`{{@ pieData}}`);
|
||
|
const piePlot = new Pie("chartContainer2", {
|
||
|
renderer: "svg",
|
||
|
animation: false,
|
||
|
data: countdata,
|
||
|
appendPadding: 10,
|
||
|
angleField: "num",
|
||
|
colorField: "action",
|
||
|
radius: 1,
|
||
|
innerRadius: 0.7,
|
||
|
// appendPadding: 20,
|
||
|
color: JSON.parse(`{{@ color}}`),
|
||
|
meta: {
|
||
|
// num: {
|
||
|
// formatter: (v) => `${v}`,
|
||
|
// },
|
||
|
},
|
||
|
label: {
|
||
|
type: "inner",
|
||
|
offset: "-50%",
|
||
|
autoRotate: false,
|
||
|
style: {
|
||
|
textAlign: "center",
|
||
|
fontFamily: "tttgbnumber",
|
||
|
},
|
||
|
formatter: ({ percent }) => {
|
||
|
percent = (percent * 100).toFixed(0);
|
||
|
return percent >= 2 ? `${percent}%` : "";
|
||
|
},
|
||
|
},
|
||
|
statistic: {
|
||
|
title: {
|
||
|
offsetY: -8,
|
||
|
content: "总计",
|
||
|
},
|
||
|
content: {
|
||
|
style: {
|
||
|
fontFamily: "tttgbnumber",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
legend: {
|
||
|
offsetX:-16,
|
||
|
itemValue: {
|
||
|
formatter: (text, item) => {
|
||
|
const items = countdata.filter((d) => d.action === item.value)[0];
|
||
|
return items.num;
|
||
|
},
|
||
|
style: {
|
||
|
opacity: 0.65,
|
||
|
fontFamily: "tttgbnumber",
|
||
|
"fontSize": 16,
|
||
|
},
|
||
|
},
|
||
|
itemName:{
|
||
|
style: {
|
||
|
"fontSize": 16,
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
piePlot.render();
|
||
|
</script>
|
||
|
</html>
|