lp_smz_app/app/src/main/assets/personAge.html

138 lines
5.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<style type="text/css">
#main{
width: 320px;
height: 200px;
}
</style>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的DOM -->
<div id="main"></div>
<script type="text/javascript" src="echarts.min.js"></script>
<script type="text/javascript">
// 基于准备好的dom初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
data();
function data() {
let value = JSON.parse(Android.getData('age'));
let sum=0;
value.data.map((item)=>{
sum += item.value;
})
let circularGraph = value;
let option = {
legend: {
type:"scroll",
orient: 'vertical',
right: 0,
top:'middle',
itemHeight: 10,
itemWidth: 10,
formatter:function (name) {
switch (name) {
case "<20":
return name + " " + GetPercent(value.data[0].value, value.sum.number) +
" " + value.data[0].value;
break;
case "20-30":
return name + " " + GetPercent(value.data[1].value, value.sum.number) +
" " + value.data[1].value;
break;
case "30-40":
return name + " " + GetPercent(value.data[2].value, value.sum.number) +
" " + value.data[2].value;
break;
case "40-50":
return name + " " + GetPercent(value.data[3].value, value.sum.number) +
" " + value.data[3].value;
break;
case "50-60":
return name + " " + GetPercent(value.data[4].value, value.sum.number) +
" " + value.data[4].value;
break;
default:
return "";
}
}
},
graphic: {
type: "text",
right: 195,
top: 85,
style: {
text:
circularGraph.sum.name + //圆饼中心显示数据,这里是显示得总数
"\n" +
String(circularGraph.sum.number).replace(
/(\d)(?=(?:\d{6})+$)/g,
"$1."
),
textAlign: "center",
fill: "#000",
width: 30,
height: 30,
fontSize: 18
}
},
series: [
{
type: "pie",
radius: ["55%", "85%"],
center: ['30%', '50%'],
label: {
//去除句柄
normal: {
position: "inner",
show: false,
},
},
itemStyle: {
normal: {
label: {
show: true,
textStyle: { color: "#3c4858", fontSize: "12" },
formatter: function(val) {
//让series 中的文字进行换行
return val.name + "\n(" + val.percent + "%)";
}
},
labelLine: {
show: true,
lineStyle: { color: "#3c4858" }
}
},
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
textColor: "#000"
}
},
data: circularGraph.data //数据
}
],
color: ["#FF8282", "#42E0FC", "#FF8F00", "#5197FF", "#B8E986"] //颜色
};
myChart.setOption(option);
myChart.on('click', function(params, charts, event) {
Android.onClick('age', params.name);
});
}
function GetPercent(num, total) {
num = parseFloat(num);
total = parseFloat(total);
if (isNaN(num) || isNaN(total)) {
return "-";
}
return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00)+"%";
}
</script>
</body>
</html>