You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

901 lines
34 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>欢迎桌面</title>
<meta menu_name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta menu_name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="../../static/css/font.css">
<link rel="stylesheet" href="../../static/css/weadmin.css">
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
<!-- 让IE8/9支持媒体查询从而兼容栅格 -->
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
body {
font-size: 15px;
font-family: "Microsoft YaHei";
color: #666;
background-color: #fff;
}
ul,.echarts {
clear: both;
overflow: hidden;
}
ul li {
float: left;
}
.transfer{
background: #393d49;
height: 60px;
line-height: 60px;
margin-bottom: 12px;
}
.transfer li {
width: 25%;
box-sizing: border-box;
padding-left: 20px;
}
.transfer li a {
color: #c0c0ca;
font-size: 15px;
}
.transfer li a span {
margin-left: 10px;
display: inline-block;
}
.count {
background: #F2F2F2;
padding: 8px;
}
.count li {
width: 24.25%;
box-sizing: border-box;
background: #fff;
margin-right: 1%;
height: 117px;
padding:10px;
}
.count li:last-child {
margin-right: 0;
}
.count li .title {
height: 30px;
}
.count li p {
height:46px;
line-height:36px;
font-size: 28px;
color: #393d49;
}
.fl {
float: left;
}
.echarts ,.visit{
background: #f3f3f3;
padding: 0 8px;
}
.echarts>div div {
background: #fff;
}
.layui-tab > .layui-tab-title {
background: #fff!important;
}
.countDiv {
height: 550px;
}
.echarts>div:nth-child(even) {
width:40%;
}
.echarts>div:nth-child(odd) {
width:59%;
margin-right:1%;
}
.echarts>div p {
height: 36px;
line-height: 36px;
color:#393d49;
position: absolute;
top: 14px;
left: 15px;
z-index: 100;
}
.visit p {
height:24px;
line-height:40px;
color:#393d49;
}
.layui-tab-title li {
float: right!important;
}
</style>
</head>
<script src="../../lib/jquery-1.12.4.min.js"></script>
<script src="../../lib/echarts.js"></script>
<script src="../../lib/layui/layui.js"></script>
<body>
<div id="main" class="weadmin-body">
<ul class="transfer" style="display: none">
<li>
<a href="">教师转出申请<span class="layui-badge">1</span></a>
</li>
<li>
<a href="">教师转入审核<span class="layui-badge">2</span></a>
</li>
<li>
<a href="">学生转出申请<span class="layui-badge">3</span></a>
</li>
<li>
<a href="">学生转入审核<span class="layui-badge">4</span></a>
</li>
</ul>
<ul class="count">
<li>
<div class="title">
<span class="fl">学校总数</span><span class="layui-badge layui-bg-orange fr"></span>
</div>
<p id="school"></p>
<div>
<span class="fl">本学期新增</span>
<div class="fr">
<span id="curr_school"></span>&nbsp;
</div>
</div>
</li>
<li>
<div class="title">
<span class="fl">单位总数</span><span class="layui-badge layui-bg-blue fr"></span>
</div>
<p id="dw"></p>
<div>
<span class="fl">本学期新增</span>
<div class="fr">
<span id="curr_dw"></span>&nbsp;
</div>
</div>
</li>
<li>
<div class="title">
<span class="fl">教师总数</span><span class="layui-badge layui-bg-green fr"></span>
</div>
<p id="tea"></p>
<div>
<span class="fl">本学期新增</span>
<div class="fr">
<span id="curr_tea"></span>&nbsp;
</div>
</div>
</li>
<li>
<div class="title">
<span class="fl">学生总数</span><span class="layui-badge layui-bg-yellow fr"></span>
</div>
<p id="stu"></p>
<div>
<span class="fl">本学期新增</span>
<div class="fr">
<span id="curr_stu"></span>&nbsp;
</div>
</div>
</li>
</ul>
<div class="echarts">
<div class="fl" style="position: relative;">
<p>学校数统计</p>
<div class="layui-tab" lay-filter="tab1">
<ul class="layui-tab-title">
<li>表格</li>
<li class="layui-this">图形</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item">
<div class="countDiv">
<table class="layui-table" lay-filter="demo1" id="idTest1"></table>
</div>
</div>
<div class="layui-tab-item layui-show">
<div class="countDiv" id="schoolCount"></div>
</div>
</div>
</div>
</div>
<div class="fl" style="position: relative;">
<p>单位数统计</p>
<div class="layui-tab" lay-filter="tab2">
<ul class="layui-tab-title">
<li>表格</li>
<li class="layui-this">图形</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item">
<div class="countDiv">
<table class="layui-table" lay-filter="demo2" id="idTest2"></table>
</div>
</div>
<div class="layui-tab-item layui-show">
<div class="countDiv" id="dwCount"></div>
</div>
</div>
</div>
</div>
<div class="fl" style="position: relative;">
<p>学生数统计</p>
<div class="layui-tab" lay-filter="tab3">
<ul class="layui-tab-title">
<li>表格</li>
<li class="layui-this">图形</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item">
<div class="countDiv">
<table class="layui-table" lay-filter="demo3" id="idTest3"></table>
</div>
</div>
<div class="layui-tab-item layui-show">
<div class="countDiv" id="stuCount"></div>
</div>
</div>
</div>
</div>
<div class="fl" style="position: relative;">
<p>教师数统计</p>
<div class="layui-tab" lay-filter="tab4">
<ul class="layui-tab-title">
<li>表格</li>
<li class="layui-this">图形</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item">
<div class="countDiv">
<table class="layui-table" lay-filter="demo4" id="idTest4"></table>
</div>
</div>
<div class="layui-tab-item layui-show">
<div class="countDiv" id="teaCount"></div>
</div>
</div>
</div>
</div>
</div>
<div class="visit">
<div style="background: #fff;padding: 0 15px;">
<p>近3个月管理员访问日志</p>
<table class="layui-table" lay-filter="demo" id="idTest"></table>
</div>
</div>
</div>
<script type="text/javascript">
function numFormat(num) {
num = num + '';//数字转字符串
var str = "";//字符串累加
for (var i = num.length - 1, j = 1; i >= 0; i--, j++) {
if (j % 3 == 0 && i != 0) {//每隔三位加逗号,过滤正好在第一个数字的情况
str += num[i] + ",";//加千分位逗号
continue;
}
str += num[i];//倒着累加数字
}
return str.split('').reverse().join("");//字符串=>数组=>反转=>字符串
}
layui.extend({
admin: '{/}../../static/js/admin'
});
layui.use(['jquery','admin', 'layer','element','table'], function() {
var $=layui.jquery,
admin=layui.admin,
layer=layui.layer,
element=layui.element,
table=layui.table;
var installArea="install_area";
var result=getGlobalByCodes(installArea);
var info=getcookie();// 1超级 2市 3区县 4单位
// 超级管理员area_id=全局变量配置
var areaId="";
if(info.identity_id==1){
areaId=result[0].global_value;
}else {
areaId=info.bureau_id;
}
// 单位管理员显示异动人数
if(info.identity_id==4){
$(".transfer").show();
}
// 1超级 2市
var eSchoolurl="";
var eDwUrl="";
var eStuUrl="";
var eTeaUrl="";
var visitUrl='';
//超级 市
if(info.identity_id==1||info.identity_id==2){
eSchoolurl='/baseService/bigData/getSchoolCountAggsAreaSchoolTypeByCityId?city_id='+areaId;
eDwUrl='/baseService/bigData/getOrgCountAggsAreaByCityId?city_id='+areaId;
eStuUrl='/baseService/bigData/getStudentCountAggsAreaStageByCityId?city_id='+areaId;
eTeaUrl='/baseService/bigData/getTeacherCountAggsAreaByCityId?city_id='+areaId;
visitUrl= '/baseService/bigData/getLogsAggsPersonNameByCityId?city_id='+areaId;
}else if(info.identity_id==3){//区管理员
eSchoolurl='/baseService/bigData/getSchoolCountAggsSchoolTypeByAreaId?area_id='+areaId;
eDwUrl='/baseService/bigData/getOrgCountAggsOrgTypeByAreaId?area_id='+areaId;
eStuUrl='/baseService/bigData/getStudentCountAggsAreaStageByCityId?area_id='+areaId;
visitUrl= '/baseService/bigData/getLogsAggsPersonNameByAreaId?area_id='+areaId;
}else{//单位管理员
}
// 获取市 区下学校 单位 学生 教工总数
$.ajax({
type:'GET',
dataType:'json',
url:'/baseService/bigData/getSchoolOrgTeaStuCountByCityId?city_id='+areaId,
success:function (data) {
if(data.success){
$("#school").text(numFormat(data.school_count));
$("#dw").text(numFormat(data.org_count));
$("#tea").text(numFormat(data.teacher_count));
$("#stu").text(numFormat(data.student_count));
$("#curr_school").text(numFormat(data.curr_term_school_count));
$("#curr_dw").text(numFormat(data.curr_term_org_count));
$("#curr_tea").text(numFormat(data.curr_term_teacher_count));
$("#curr_stu").text(numFormat(data.curr_term_student_count));
}
}
})
// 监听tab切换
element.on('tab(tab1)', function(data){
// 学校数表格
if(data.index==0){//切换到表格 加载表格
$.ajax({
type:"GET",
dataType:'json',
url:eSchoolurl,
success:function (result) {
var list=[];
list.push({"ye":result.ye},{"xx":result.xx},{"cz":result.cz},{"gz":result.gz},{"wqzx":result.wqzx},{"jnygz":result.jnygz},{"senygz":result.senygz},{"xyyt":result.xyyt},{"xycyt":result.xycyt},{"xycgyt":result.xycgyt});
for (var i=0;i<list.length;i++) {
list[i]['LAY_TABLE_INDEX']=0;
}
console.log(list);
table.render({
elem: '#idTest1'
, cols: [[
// , {field: '', title: '序号', align: 'center', type: 'numbers'}
// {field: 'area_name', title: '区域名称', align: 'center'}
{field: 'ye', title: '幼儿', align: 'center'}
, {field: 'xx', title: '小学', align: 'center'}
, {field: 'cz', title: '初中', align: 'center'}
, {field: 'gz', title: '高中', align: 'center'}
, {field: 'wqzx', title: '完全中学', align: 'center'}
, {field: 'jnygz', title: '九年一贯制', align: 'center'}
, {field: 'senygz', title: '十二年一贯制', align: 'center'}
, {field: 'xyyt', title: '小幼一体', align: 'center'}
, {field: 'xycyt', title: '小幼初一体', align: 'center'}
, {field: 'xycgyt', title: '小幼初高一体', align: 'center'}
]]
,data:list
});
}
})
}
$(document).resize();
});
element.on('tab(tab2)', function(data){
// 单位数表格
if(data.index==0){//切换到表格 加载表格
table.render({
elem: '#idTest2'
, url: eDwUrl
, cols: [[
, {field: '', title: '序号', align: 'center', type: 'numbers'}
,{field: 'area_name', title: '区域名称', align: 'center'}
,{field: 'count', title: '单位个数', align: 'center'}
]]
, page: true
, done: function (res, page, count) {
}
});
}
$(document).resize();
});
element.on('tab(tab3)', function(data){
if(data.index==0){//切换到表格 加载表格
// 学生数表格
table.render({
elem: '#idTest3'
, url: eStuUrl
, cols: [[
, {field: '', title: '序号', align: 'center', type: 'numbers'}
,{field: 'area_name', title: '区域名称', align: 'center'}
, {field: 'ye', title: '幼儿', align: 'center'}
, {field: 'xx', title: '小学', align: 'center'}
, {field: 'cz', title: '初中', align: 'center'}
, {field: 'gz', title: '高中', align: 'center'}
]]
, page: true
, done: function (res, page, count) {
}
});
}
$(document).resize();
});
element.on('tab(tab4)', function(data){
if(data.index==0){//切换到表格 加载表格
// 教工数表格
table.render({
elem: '#idTest4'
, url: eTeaUrl
, cols: [[
, {field: '', title: '序号', align: 'center', type: 'numbers'}
, {field: 'area_name', title: '区域名称', align: 'center'}
, {field: 'count', title: '教工人数', align: 'center'}
]]
, page: true
, done: function (res, page, count) {
}
});
}
$(document).resize();
});
// 获取echart 市 区下学校总数
var schoolChart=echarts.init(document.getElementById("schoolCount"),'light');
$.ajax({
type:'GET',
dataType:'json',
url:eSchoolurl,
success:function (data) {
var yAxisLis=[];//y轴区域
var xxLis=[];//小学
var yeLis=[];//幼儿
var czLis=[];
var gzLis=[];
var jnygzLis=[];
var senygzLis=[];
var wqzxLis=[];
var xycgytLis=[];
var xycytLis=[];
var xyytLis=[];
if(info.identity_id==1||info.identity_id==2) {
for (var i = 0; i < data.length; i++) {
yAxisLis.push(data[i].area_name)
yeLis.push(data[i].ye);
xxLis.push(data[i].xx);
czLis.push(data[i].cz);
gzLis.push(data[i].gz);
jnygzLis.push(data[i].jnygz);
senygzLis.push(data[i].senygz);
wqzxLis.push(data[i].wqzx);
xycgytLis.push(data[i].xycgyt);
xycytLis.push(data[i].xycyt);
xyytLis.push(data[i].xyyt);
schoolChart.setOption({
tooltip:{
trigger:'axis',
axisPointer:{
type: 'shadow'
},
extraCssText:'width:160px;height:240px;'
},
legend: {
data: ['幼儿', '小学','初中','高中','完全中学','九年一贯制','十二年一贯制','小幼一体','小幼初一体','小幼初高一体']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value'
},
yAxis:{
type: 'category',
data:yAxisLis
},
series: [
{
name: '幼儿',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: yeLis
},
{
name: '小学',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: xxLis
},
{
name: '初中',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: czLis
},
{
name: '高中',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: gzLis
},
{
name: '完全中学',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: wqzxLis
},
{
name: '九年一贯制',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: jnygzLis
},
{
name: '十二年一贯制',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: senygzLis
},
{
name: '小幼一体',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: xyytLis
},
{
name: '小幼初一体',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: xycytLis
},
{
name: '小幼初高一体',
type: 'bar',
stack: '总量',
label: {
normal: {
show: true,
position: 'insideRight'
}
},
data: xycgytLis
}
]
})
}
}else{//区
var lis=[];
lis.push(data.ye,data.xx,data.cz,data.gz,data.wqzx,data.jnygz,data.senygz,data.xyyt,data.xycyt,data.xycgyt);
schoolChart.setOption(
{
tooltip:{
},
xAxis: {
type: 'category',
axisLabel:{interval:0,margin:15},
data: ['幼儿', '小学','初中','高中','完全中学','九年一贯制','十二年一贯制','小幼一体','小幼初一体','小幼初高一体']
},
yAxis: {
type: 'value'
},
series: [{
data:lis,
type: 'bar'
}]
}
)
}
}
})
// 获取echarts单位个数
var dwChart=echarts.init(document.getElementById("dwCount"),'light');
$.ajax({
type:"GET",
dataType:'json',
url:eDwUrl,
success:function (data) {
var area_name=[];
var list=[];
for (var i=0;i<data.length;i++) {
area_name.push(data[i].area_name);
list.push({
value:data[i].count, name:data[i].area_name
})
}
dwChart.setOption(
{
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)",
extraCssText:'width:160px;height:50px;'
},
legend: {
orient: 'vertical',
left: 'left',
data: area_name
},
series : [
{
name: '单位个数',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:list,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
)
}
})
// 获取echarts学生人数
var stuChart=echarts.init(document.getElementById("stuCount"),'light');
$.ajax({
type:"GET",
dataType:'json',
url:eStuUrl,
success:function (data) {
var area_name=[];
var yeLis=[];
var xxLis=[];
var czLis=[];
var gzLis=[];
for (var i=0;i<data.length;i++) {
area_name.push(data[i].area_name);
yeLis.push(data[i].ye);
xxLis.push(data[i].xx);
czLis.push(data[i].cz);
gzLis.push(data[i].gz);
}
var labelOption = {
normal: {
show: true,
position: 'insideBottom',
distance:'15',
align:'left',
verticalAlign:'middle',
rotate:'90',
fontSize: 12,
formatter: '{c} {name|{a}}',
rich: {
name: {
textBorderColor: '#fff'
}
}
}
};
stuChart.setOption(
{
color: ['#ff9f7f', '#fb7293', '#37a2da', '#96bfff'],
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
extraCssText:'width:160px;height:100px'
},
legend: {
data: ['幼儿', '小学', '初中', '高中']
},
calculable: true,
xAxis: [
{
type: 'category',
axisTick: {show: false},
axisLabel:{interval:0,margin:15},
data:area_name
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '幼儿',
type: 'bar',
barGap: 0,
label: labelOption,
data:yeLis
},
{
name: '小学',
type: 'bar',
label: labelOption,
data:xxLis
},
{
name: '初中',
type: 'bar',
label: labelOption,
data:czLis
},
{
name: '高中',
type: 'bar',
label: labelOption,
data: gzLis
}
]
}
)
}
})
// 获取echarts教工人数
var teaChart=echarts.init(document.getElementById("teaCount"));
$.ajax({
type:"GET",
dataType:'json',
url:eTeaUrl,
success:function (data) {
var area_name=[];
var list=[];
for (var i=0;i<data.length;i++) {
area_name.push(data[i].area_name);
list.push({
value:data[i].count, name:data[i].area_name
})
}
teaChart.setOption(
{
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)",
extraCssText:'width:160px;height:50px;'
},
legend: {
orient: 'vertical',
left: 'left',
data: area_name
},
series : [
{
name: '教工数',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:list,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
}
)
}
})
$.ajax({
type:'GET',
url:visitUrl,
dataType:'json',
success:function (data) {
var list=[];
for (var i=0;i<data.length;i++) {
list.push(data[i]);
}
// 管理员访问日志
table.render({
elem: '#idTest'
, cols: [[
{field: '', title: '序号', align: 'center', type: 'numbers',width:80}
, {field: 'person_name', title: '管理员名称'}
, {field: 'last_time', title: '最后登录日期'}
, {field: 'count', title: '登录次数'}
]]
,data:list
, page: true
});
}
})
})
</script>
</body>
</html>