visualization/js/index.js
jiutianzhiyu 49befa3980 提交
2021-04-26 18:14:04 +08:00

382 lines
8.5 KiB
JavaScript
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.

$(function () {
//1. 复制一份list标签里面的li, 为css滚动动画提供
$('.monitor .content').each(function () {
$(this).find('ul').append($(this).find('ul').children('li').clone())
});
//2. 故障监控按键点击切换
$('.monitor .tabs').on('click', 'a', function () {
//2.0 添加移除active类名
$(this).addClass('active').siblings().remove('active')
//2.1 找到下标
let index = $(this).index()
//2.2 设置对应content显示
$('.monitor .content').eq(index).show().siblings('.content').hide()
});
// 3. 添加饼状图
(function () {
let mychart = echarts.init($('.site .pie')[0])
let option = {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
series: [{
name: '面积模式',
type: 'pie',
radius: ['5%', '60 %'],
labelLine: {
// 连接扇形图线长
length: 3,
// 连接文字线长
length2: 3,
},
center: ['50%', '50%'],
roseType: 'area',
data: [{
value: 10,
name: 'rose1'
},
{
value: 5,
name: 'rose2'
},
{
value: 15,
name: 'rose3'
},
{
value: 25,
name: 'rose4'
},
{
value: 20,
name: 'rose5'
},
{
value: 35,
name: 'rose6'
},
{
value: 30,
name: 'rose7'
},
{
value: 40,
name: 'rose8'
}
]
}]
}
// 基于准备好的dom初始化echarts实例
mychart.setOption(option)
})();
//4.添加柱状图
(function () {
let mychart = echarts.init($('.user .bar')[0])
let item = {
value: 1200,
itemStyle: {
color: '#254065'
},
// 设置提示弹出框的样式
tooltip: {
// 这个可以设置整个框的样式
// extraCssText: 'opacity:0'
trigger: 'none'
},
// 设置鼠标移上时柱状条的背景色
emphasis: {
itemStyle: {
color: '#254065'
}
}
}
let option = {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: 'red' // 0% 处的颜色
}, {
offset: 1,
color: 'blue' // 100% 处的颜色
}],
global: false // 缺省为 false
},
tooltip: {
trigger: 'item',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: {
left: '5%',
right: '5%',
top: '5%',
bottom: '5%',
containLabel: true,
},
xAxis: [{
type: 'category',
data: ['上海', '广州', '北京', '深圳', '合肥', '', '......', '', '杭州', '厦门', '济南', '成都', '重庆'],
axisTick: {
alignWithLabel: true
},
axisLabel: {
color: '#4c9bfd'
},
axisLine: {
lineStyle: {
color: '#68d8fe'
}
}
}],
yAxis: [{
type: 'value',
axisLabel: {
color: '#4c9bfd'
},
splitLine: {
lineStyle: {
color: ['#68d8fe']
}
},
axisLine: {
lineStyle: {
color: '#68d8fe'
}
}
}],
series: [{
name: '设备数量',
type: 'bar',
barWidth: '50%',
data: [2100, 1900, 1700, 1560, 1400, item, item, item, 900, 750, 600, 480, 240]
}]
}
mychart.setOption(option)
})();
//5.订单量统计
//5.1 造一个假的订单数据
let orderData = [{
num: 3650000,
money: 36500000
},
{
num: 90000,
money: 900000
},
{
num: 30000,
money: 300000
},
{
num: 2400,
money: 24000
}
];
(function () {
//设置初始下标
let index = 0
//5.2 绑定鼠标点击事件
$('.order .tabs').on('click', 'a', function () {
//修改类名
$(this).addClass('active').siblings().removeClass('active')
//找到下标
let temp = $(this).index()
index = temp
//修改元素内容为对应下标的数组数据
$('.order .data .item .order_orders').text(orderData[temp]['num'])
$('.order .data .item .order_count').text(orderData[temp]['money'])
})
//开始自动执行一次
$('.order .tabs a').eq(index).click()
//自动轮播
let timeId = setInterval(function () {
index++
if (index == $('.order .tabs a').length) {
index = 0
}
$('.order .tabs a').eq(index).click()
}, 5000)
})();
//6.销售统计
(function () {
//造一个假的数据
let data = {
year: [
[24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
[40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79],
['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
],
quarter: [
[230, 750, 120, 970],
[430, 310, 60, 230],
['春', '夏', '秋', '冬']
],
month: [
[34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36, 34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36, 34, 87, 32, 76, 98, 12, 32],
[56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98, 56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98, 56, 43, 98, 21, 56, 87, 43],
['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']
],
week: [
[43, 73, 62, 54, 91, 54, 66],
[32, 54, 34, 87, 32, 45, 76],
['星期1', '星期2', '星期3', '星期4', '星期5', '星期6', '星期日']
]
}
//画图
let mychart = echarts.init($('.sales .line')[0])
let option = {
legend: {
data: ['预期销售额', '实际销售额度'],
textStyle: {
color: '#4c9bfd'
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
top: '20%',
containLabel: true
},
xAxis: {
type: 'category',
axisLabel: {
color: "#4c9bfd",
interval: 0
},
axisLine: {
lineStyle: {
color: '#68d8fe'
}
},
data: data.year[2],
boundaryGap: false,
},
yAxis: {
type: 'value',
axisLabel: {
color: "#4c9bfd"
},
axisLine: {
lineStyle: {
color: '#68d8fe'
}
},
splitLine: {
lineStyle: {
color: ['#68d8fe']
}
},
},
color: ['yellow', 'red'],
series: [{
name: '预期销售额',
data: data.year[0],
type: 'line',
smooth: true,
},
{
name: '实际销售额度',
data: data.year[1],
type: 'line',
smooth: true,
},
]
}
mychart.setOption(option)
//起始下标
let index = 0
//点击事件
$('.sales .caption').on('click', 'a', function () {
//修改class
$(this).addClass('active').siblings('a').removeClass('active')
//更改index
index = $(this).index() - 1 //兄弟里还有一个h2
//获取当前的自定义属性
let current = $(this).data('type')
//更改option里面的数据
option.series[0].data = data[current][0]
option.series[1].data = data[current][1]
option.xAxis.data = data[current][2]
//重新渲染图形
mychart.setOption(option)
})
//定时器轮播
let timeId
function slideshow() {
timeId = setInterval(function () {
index++
if (index == $('.sales .caption a').length) {
index = 0
}
$('.sales .caption a').eq(index).click()
}, 5000);
}
slideshow()
//鼠标悬停停止轮播
$('.sales').on('mouseenter', function () {
clearInterval(timeId)
})
//鼠标移开继续轮播
$('.sales').on('mouseleave', function () {
slideshow()
})
})();
})