431 lines
13 KiB
HTML
431 lines
13 KiB
HTML
{extend name="../../base/view/common/base" /}
|
||
|
||
{block name="style"}
|
||
<style type="text/css">
|
||
/* 这段样式只是用于演示 */
|
||
.layui-card-header span {
|
||
position: absolute;
|
||
right: 10px;
|
||
top: 10px;
|
||
}
|
||
.layui-sales {
|
||
margin-bottom: 0;
|
||
overflow: hidden;
|
||
color: rgba(0,0,0,.85);
|
||
font-size: 30px;
|
||
}
|
||
|
||
.layui-sales-info {
|
||
padding-top: 16px;
|
||
color: rgba(0,0,0,.65);
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
fieldset.layui-field-title {
|
||
margin-bottom: 10px;
|
||
}
|
||
</style>
|
||
{/block}
|
||
<!-- 主体 -->
|
||
{block name="body"}
|
||
<div class="p-3">
|
||
<div class="layui-row layui-col-space15">
|
||
<div class="layui-col-xs6 layui-col-md3">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">报销售额</div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-sales">¥ 126,560</div>
|
||
<div class="layui-sales-info" style="height: 125px;">
|
||
周同比 <span>12%</span>
|
||
<i class="layui-edge layui-edge-top" style="border-bottom-color: green"></i>
|
||
日同比 <span>3%</span>
|
||
<i class="layui-edge layui-edge-bottom" style="border-top-color: red"></i>
|
||
<fieldset class="layui-elem-field layui-field-title"></fieldset>
|
||
<div>日销报销 ¥12,423</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-col-xs6 layui-col-md3">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">发票总数 <span class="layui-badge layui-badge-blue pull-right">月</span></div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-sales">6,560</div>
|
||
<div class="layui-sales-info" >
|
||
<div id="zfbs" style="height: 80px;"></div>
|
||
<fieldset class="layui-elem-field layui-field-title"></fieldset>
|
||
<div>总发票数 1,234</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-col-xs6 layui-col-md3">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">访问量 <span class="layui-badge layui-badge-green pull-right">日</span></div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-sales">6,560</div>
|
||
<div class="layui-sales-info" >
|
||
<div id="fwl" style="height: 80px;"></div>
|
||
<fieldset class="layui-elem-field layui-field-title" ></fieldset>
|
||
<div>日访问量 1,234</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-col-xs6 layui-col-md3">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">业绩效果 <span class="layui-badge layui-badge-red pull-right">周</span></div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-sales">83%</div>
|
||
<div class="layui-sales-info" >
|
||
<div style="height: 80px;">
|
||
<div class="layui-progress layui-progress-big">
|
||
<div class="layui-progress-bar layui-bg-blue" lay-percent="83%" style="width: 83%;"></div>
|
||
</div>
|
||
</div>
|
||
<fieldset class="layui-elem-field layui-field-title" style="position: relative;"></fieldset>
|
||
<div>回款金额 ¥ 12,234</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="layui-col-xs6 layui-col-md9">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">地域分布</div>
|
||
<div class="layui-card-body">
|
||
<div id="map" style="height: 578px;"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="layui-col-xs6 layui-col-md3">
|
||
<div class="layui-card" >
|
||
<div class="layui-card-header">在线人数</div>
|
||
<div class="layui-card-body">
|
||
<div id="zxrs" style="height: 250px" ></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-col-xs6 layui-col-md3">
|
||
<div class="layui-card" >
|
||
<div class="layui-card-header">浏览器分布</div>
|
||
<div class="layui-card-body">
|
||
<div id="llq" style="height: 250px" ></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{/block}
|
||
<!-- /主体 -->
|
||
|
||
<!-- 脚本 -->
|
||
{block name="script"}
|
||
<script src="{__GOUGU__}/third_party/echart/echarts.min.js"></script>
|
||
<script src="{__GOUGU__}/third_party/echart/china.js"></script>
|
||
<script>
|
||
const moduleInit = ['tool'];
|
||
function gouguInit() {
|
||
var form = layui.form,tool=layui.tool;
|
||
}
|
||
|
||
// 访问量
|
||
var fwlCharts = echarts.init(document.getElementById('fwl'));
|
||
var fwlOptions = {
|
||
tooltip: {
|
||
trigger: 'axis',
|
||
axisPointer: {
|
||
type: 'cross',
|
||
label: {
|
||
backgroundColor: '#6a7985'
|
||
}
|
||
}
|
||
},
|
||
grid: {
|
||
left: '-1%',
|
||
right: '0',
|
||
bottom: '0',
|
||
top: '5px',
|
||
containLabel: false
|
||
},
|
||
xAxis: [
|
||
{
|
||
type: 'category',
|
||
boundaryGap: false,
|
||
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
|
||
show: false
|
||
}
|
||
],
|
||
yAxis: [
|
||
{
|
||
type: 'value',
|
||
show: false
|
||
}
|
||
],
|
||
series: [
|
||
{
|
||
name: '总量',
|
||
type: 'line',
|
||
stack: '总量',
|
||
smooth: true,
|
||
lineStyle: {
|
||
width: 0
|
||
},
|
||
showSymbol: false,
|
||
areaStyle: {
|
||
opacity: 0.8,
|
||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
||
offset: 0,
|
||
color: '#1890ff'
|
||
}, {
|
||
offset: 1,
|
||
color: '#1890ff'
|
||
}])
|
||
},
|
||
emphasis: {
|
||
focus: 'series'
|
||
},
|
||
data: [120, 132, 156, 200, 90, 100, 165]
|
||
},
|
||
]
|
||
};
|
||
|
||
fwlCharts.setOption(fwlOptions);
|
||
|
||
// 渲染表信息
|
||
var zfbsCharts = echarts.init(document.getElementById('zfbs'));
|
||
|
||
var zfbsOptions = {
|
||
color: ['#1890ff','#666'],
|
||
tooltip: {},
|
||
grid: {
|
||
left: '0',
|
||
right: '20',
|
||
bottom: '30',
|
||
containLabel: true
|
||
},
|
||
xAxis: {
|
||
data: ['1月', '2月', '3月', '4月', '6月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
|
||
show:false,
|
||
},
|
||
yAxis: {
|
||
show:false
|
||
},
|
||
series: [{
|
||
type: 'bar',
|
||
data: [726, 1013, 690, 892, 982, 570, 536, 546, 988, 1002, 500, 506],
|
||
barMaxWidth: 45
|
||
}]
|
||
}
|
||
|
||
zfbsCharts.setOption(zfbsOptions);
|
||
|
||
|
||
// 地图数据信息
|
||
function randomValue() {
|
||
return Math.round(Math.random()*1000);
|
||
}
|
||
var mapCharts = echarts.init(document.getElementById('map'));
|
||
|
||
var dataList=[
|
||
{name:"南海诸岛",value:0},
|
||
{name: '北京', value: randomValue()},
|
||
{name: '天津', value: randomValue()},
|
||
{name: '上海', value: randomValue()},
|
||
{name: '重庆', value: randomValue()},
|
||
{name: '河北', value: randomValue()},
|
||
{name: '河南', value: randomValue()},
|
||
{name: '云南', value: randomValue()},
|
||
{name: '辽宁', value: randomValue()},
|
||
{name: '黑龙江', value: randomValue()},
|
||
{name: '湖南', value: randomValue()},
|
||
{name: '安徽', value: randomValue()},
|
||
{name: '山东', value: randomValue()},
|
||
{name: '新疆', value: randomValue()},
|
||
{name: '江苏', value: randomValue()},
|
||
{name: '浙江', value: randomValue()},
|
||
{name: '江西', value: randomValue()},
|
||
{name: '湖北', value: randomValue()},
|
||
{name: '广西', value: randomValue()},
|
||
{name: '甘肃', value: randomValue()},
|
||
{name: '山西', value: randomValue()},
|
||
{name: '内蒙古', value: randomValue()},
|
||
{name: '陕西', value: randomValue()},
|
||
{name: '吉林', value: randomValue()},
|
||
{name: '福建', value: randomValue()},
|
||
{name: '贵州', value: randomValue()},
|
||
{name: '广东', value: randomValue()},
|
||
{name: '青海', value: randomValue()},
|
||
{name: '西藏', value: randomValue()},
|
||
{name: '四川', value: randomValue()},
|
||
{name: '宁夏', value: randomValue()},
|
||
{name: '海南', value: randomValue()},
|
||
{name: '台湾', value: randomValue()},
|
||
{name: '香港', value: randomValue()},
|
||
{name: '澳门', value: randomValue()}
|
||
]
|
||
|
||
// 世界地图
|
||
var mapOption = {
|
||
tooltip: {
|
||
formatter:function(params,ticket, callback){
|
||
return params.seriesName+'<br />'+params.name+':'+params.value
|
||
}
|
||
},
|
||
visualMap: {
|
||
min: 0,
|
||
max: 1500,
|
||
left: 'left',
|
||
top: 'bottom',
|
||
text: ['高','低'],//取值范围的文字
|
||
inRange: {
|
||
color: ['#e0ffff', '#006edd']//取值范围的颜色
|
||
},
|
||
show: true//图注
|
||
},
|
||
geo: {
|
||
map: 'china',
|
||
roam: false, //不开启缩放和平移
|
||
zoom:1.23, //视角缩放比例
|
||
label: {
|
||
normal: {
|
||
show: true,
|
||
fontSize:'10',
|
||
color: 'rgba(0,0,0,0.7)'
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal:{
|
||
borderColor: 'rgba(0, 0, 0, 0.2)'
|
||
},
|
||
emphasis:{
|
||
areaColor: '#F3B329',//鼠标选择区域颜色
|
||
shadowOffsetX: 0,
|
||
shadowOffsetY: 0,
|
||
shadowBlur: 20,
|
||
borderWidth: 0,
|
||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||
}
|
||
}
|
||
},
|
||
series : [
|
||
{
|
||
name: '信息量',
|
||
type: 'map',
|
||
geoIndex: 0,
|
||
data:dataList
|
||
}
|
||
]
|
||
};
|
||
mapCharts.setOption(mapOption);
|
||
|
||
|
||
var myCharts = echarts.init(document.getElementById('zxrs'));
|
||
var mData = [50, 100, 150, 80, 120, 150, 200, 250, 220, 250, 300, 350, 400, 380, 440, 450, 500, 550, 500];
|
||
var option = {
|
||
|
||
|
||
tooltip: {
|
||
trigger: "axis"
|
||
},
|
||
xAxis: [{
|
||
type: "category",
|
||
boundaryGap: !1,
|
||
data: ["06:00", "06:30", "07:00", "07:30", "08:00", "08:30", "09:00", "09:30", "10:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00"]
|
||
}],
|
||
yAxis: [{
|
||
type: "value"
|
||
}],
|
||
series: [{
|
||
name: "总量",
|
||
type: "line",
|
||
smooth: !0,
|
||
itemStyle: {
|
||
normal: {
|
||
areaStyle: {
|
||
type: "default"
|
||
}
|
||
}
|
||
},
|
||
data: mData
|
||
}]
|
||
};
|
||
myCharts.setOption(option);
|
||
|
||
// 动态改变图表1数据
|
||
setInterval(function () {
|
||
for (var i = 0; i < mData.length; i++) {
|
||
mData[i] += (Math.random() * 50 - 25);
|
||
if (mData[i] < 0) {
|
||
mData[i] = 0;
|
||
}
|
||
}
|
||
myCharts.setOption({
|
||
series: [{
|
||
data: mData
|
||
}]
|
||
});
|
||
}, 1000);
|
||
|
||
// 渲染浏览器分布
|
||
var llqCharts = echarts.init(document.getElementById('llq'));
|
||
var llqOptions = {
|
||
tooltip: {
|
||
trigger: 'item'
|
||
},
|
||
legend: {
|
||
bottom: '1%',
|
||
left: 'center',
|
||
icon: 'circle', // 设置小圆点
|
||
itemWidth: 10, // 设置宽度
|
||
itemHeight: 10, // 设置高度
|
||
},
|
||
|
||
series: [
|
||
{
|
||
name: '浏览器分布',
|
||
type: 'pie',
|
||
radius: ['40%', '70%'],
|
||
avoidLabelOverlap: false,
|
||
label: {
|
||
show: false,
|
||
position: 'center'
|
||
},
|
||
emphasis: {
|
||
label: {
|
||
show: true,
|
||
fontSize: '14px',
|
||
}
|
||
},
|
||
labelLine: {
|
||
show: false
|
||
},
|
||
data: [
|
||
{value: 1048, name: 'Chrome'},
|
||
{value: 735, name: 'Safair'},
|
||
{value: 580, name: 'Firefox'},
|
||
{value: 484, name: 'Edge'},
|
||
{value: 300, name: 'IE'},
|
||
{value: 200, name: 'Other'},
|
||
]
|
||
}
|
||
]
|
||
};
|
||
llqCharts.setOption(llqOptions);
|
||
|
||
// 窗口大小改变事件
|
||
window.onresize = function () {
|
||
myCharts.resize();
|
||
|
||
mapCharts.resize();
|
||
fwlCharts.resize();
|
||
zfbsCharts.resize();
|
||
llqCharts.resize();
|
||
};
|
||
|
||
</script>
|
||
{/block}
|
||
<!-- /脚本 --> |