2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-06 14:47:18 +08:00
Files
panel/public/res/modules/console.js
2023-06-22 00:09:56 +08:00

330 lines
9.8 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.
/**
* console
*/
layui.define(function (exports) {
/*
下面通过 layui.use 分段加载不同的模块,实现不同区域的同时渲染,从而保证视图的快速呈现
*/
//区块轮播切换
layui.use(['admin', 'carousel'], function () {
var $ = layui.$
, admin = layui.admin
, carousel = layui.carousel
, element = layui.element
, device = layui.device()
//轮播切换
$('.layadmin-carousel').each(function () {
var othis = $(this)
carousel.render({
elem: this
, width: '100%'
, arrow: 'none'
, interval: othis.data('interval')
, autoplay: othis.data('autoplay') === true
, trigger: (device.ios || device.android) ? 'click' : 'hover'
, anim: othis.data('anim')
})
})
element.render('progress')
})
//数据概览
layui.use(['admin', 'carousel', 'echarts'], function () {
var $ = layui.$
, admin = layui.admin
, carousel = layui.carousel
, echarts = layui.echarts
var echartsApp = [], options = [
//今日流量趋势
{
title: {
text: '今日流量趋势',
x: 'center',
textStyle: {
fontSize: 14
}
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['', '']
},
xAxis: [{
type: 'category',
boundaryGap: false,
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', '16:30', '17:00', '17:30', '18:00', '18:30', '19:00', '19:30', '20:00', '20:30', '21:00', '21:30', '22:00', '22:30', '23:00', '23:30']
}],
yAxis: [{
type: 'value'
}],
series: [{
name: 'PV',
type: 'line',
smooth: true,
itemStyle: { normal: { areaStyle: { type: 'default' } } },
data: [111, 222, 333, 444, 555, 777, 3333, 33333, 55555, 88888, 33333, 3333, 7777, 11888, 28888, 38888, 58888, 42222, 39999, 28888, 17777, 9777, 6555, 5555, 3333, 2222, 3111, 6999, 5888, 2777, 1777, 999, 888, 777]
}, {
name: 'UV',
type: 'line',
smooth: true,
itemStyle: { normal: { areaStyle: { type: 'default' } } },
data: [11, 22, 33, 44, 55, 66, 333, 3333, 5555, 12312, 3333, 333, 777, 1188, 2777, 3888, 7777, 4222, 3999, 2888, 1777, 966, 655, 555, 333, 222, 311, 699, 588, 277, 166, 99, 88, 77]
}]
},
/*
//访客浏览器分布
{
title : {
text: '访客浏览器分布',
x: 'center',
textStyle: {
fontSize: 14
}
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient : 'vertical',
x : 'left',
data:['Chrome','Firefox','IE 8.0','Safari','其它浏览器']
},
series : [{
name:'访问来源',
type:'pie',
radius : '55%',
center: ['50%', '50%'],
data:[
{value:9052, name:'Chrome'},
{value:1610, name:'Firefox'},
{value:3200, name:'IE 8.0'},
{value:535, name:'Safari'},
{value:1700, name:'其它浏览器'}
]
}]
},
*/
//新增的用户量
{
title: {
text: '最近一周新增的用户量',
x: 'center',
textStyle: {
fontSize: 14
}
},
tooltip: { //提示框
trigger: 'axis',
formatter: '{b}<br>新增用户:{c}'
},
xAxis: [{ //X轴
type: 'category',
data: ['11-07', '11-08', '11-09', '11-10', '11-11', '11-12', '11-13']
}],
yAxis: [{ //Y轴
type: 'value'
}],
series: [{ //内容
type: 'line',
data: [200, 300, 400, 610, 150, 270, 380],
}]
}
]
, elemDataView = $('#LAY-index-dataview').children('div')
, renderDataView = function (index) {
echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme)
echartsApp[index].setOption(options[index])
//window.onresize = echartsApp[index].resize;
admin.resize(function () {
echartsApp[index].resize()
})
}
//没找到DOM终止执行
if (!elemDataView[0]) return
renderDataView(0)
//触发数据概览轮播
var carouselIndex = 0
carousel.on('change(LAY-index-dataview)', function (obj) {
renderDataView(carouselIndex = obj.index)
})
//触发侧边伸缩
layui.admin.on('side', function () {
setTimeout(function () {
renderDataView(carouselIndex)
}, 300)
})
//触发路由
layui.admin.on('hash(tab)', function () {
layui.router().path.join('') || renderDataView(carouselIndex)
})
})
//地图
layui.use(['carousel', 'echarts'], function () {
var $ = layui.$
, carousel = layui.carousel
, echarts = layui.echarts
var echartsApp = [], options = [
{
title: {
text: '访客地区分布',
subtext: '不完全统计'
},
tooltip: {
trigger: 'item'
},
dataRange: {
orient: 'horizontal',
min: 0,
max: 60000,
text: ['高', '低'],
splitNumber: 0
},
series: [
{
name: '访客地区分布',
type: 'map',
mapType: 'china',
selectedMode: 'multiple',
itemStyle: {
normal: { label: { show: true } },
emphasis: { label: { show: true } }
},
data: [
{ name: '西藏', value: 60 },
{ name: '青海', value: 167 },
{ name: '宁夏', value: 210 },
{ name: '海南', value: 252 },
{ name: '甘肃', value: 502 },
{ name: '贵州', value: 570 },
{ name: '新疆', value: 661 },
{ name: '云南', value: 8890 },
{ name: '重庆', value: 10010 },
{ name: '吉林', value: 5056 },
{ name: '山西', value: 2123 },
{ name: '天津', value: 9130 },
{ name: '江西', value: 10170 },
{ name: '广西', value: 6172 },
{ name: '陕西', value: 9251 },
{ name: '黑龙江', value: 5125 },
{ name: '内蒙古', value: 1435 },
{ name: '安徽', value: 9530 },
{ name: '北京', value: 51919 },
{ name: '福建', value: 3756 },
{ name: '上海', value: 59190 },
{ name: '湖北', value: 37109 },
{ name: '湖南', value: 8966 },
{ name: '四川', value: 31020 },
{ name: '辽宁', value: 7222 },
{ name: '河北', value: 3451 },
{ name: '河南', value: 9693 },
{ name: '浙江', value: 62310 },
{ name: '山东', value: 39231 },
{ name: '江苏', value: 35911 },
{ name: '广东', value: 55891 }
]
}
]
}
]
, elemDataView = $('#LAY-index-pagethree-home').children('div')
, renderDataView = function (index) {
echartsApp[index] = echarts.init(elemDataView[index], layui.echartsTheme)
echartsApp[index].setOption(options[index])
window.onresize = echartsApp[index].resize
}
//没找到DOM终止执行
if (!elemDataView[0]) return
renderDataView(0)
})
//table
layui.use('table', function () {
var $ = layui.$
, table = layui.table
//今日热搜
table.render({
elem: '#LAY-index-topSearch'
, url: './res/json/console/top-search.js' //模拟接口
, page: true
, cols: [[
{ type: 'numbers', fixed: 'left' }
, {
field: 'keywords',
title: '关键词',
minWidth: 300,
templet: '<div><a href="https://www.baidu.com/s?wd={{ d.keywords }}" target="_blank" class="layui-table-link">{{ d.keywords }}</div>'
}
, { field: 'frequency', title: '搜索次数', minWidth: 120, sort: true }
, { field: 'userNums', title: '用户数', sort: true }
]]
, skin: 'line'
})
//今日热贴
table.render({
elem: '#LAY-index-topCard'
, url: './res/json/console/top-card.js' //模拟接口
, page: true
, cellMinWidth: 120
, cols: [[
{ type: 'numbers', fixed: 'left' }
, {
field: 'title',
title: '标题',
minWidth: 300,
templet: '<div><a href="{{ d.href }}" target="_blank" class="layui-table-link">{{ d.title }}</div>'
}
, { field: 'username', title: '发帖者' }
, { field: 'channel', title: '类别' }
, { field: 'crt', title: '点击率', sort: true }
]]
, skin: 'line'
})
//项目进展
table.render({
elem: '#LAY-home-homepage-console'
, url: './res/json/console/prograss.js' //模拟接口
, cols: [[
{ type: 'checkbox', fixed: 'left' }
, { field: 'prograss', title: '任务' }
, { field: 'time', title: '所需时间' }
, {
field: 'complete', title: '完成情况'
, templet: function (d) {
if (d.complete == '已完成') {
return '<del style="color: #16b777;">' + d.complete + '</del>'
} else if (d.complete == '进行中') {
return '<span style="color: #FFB800;">' + d.complete + '</span>'
} else {
return '<span style="color: #FF5722;">' + d.complete + '</span>'
}
}
}
]]
, skin: 'line'
})
})
exports('console', {})
})