2211 lines
48 KiB
JavaScript
2211 lines
48 KiB
JavaScript
var intervalTime = 5 * 1000;
|
||
$(function(){
|
||
|
||
|
||
|
||
window.onload = function() {
|
||
var show = document.getElementById("hours");
|
||
var year = document.getElementById("year");
|
||
setInterval(function() {
|
||
var time = new Date();
|
||
// 程序计时的月从0开始取值后+1
|
||
var m = time.getMonth() + 1;
|
||
var hours = time.getHours();
|
||
var minutes = time.getMinutes();
|
||
var seconds = time.getSeconds();
|
||
hours = checkTime(hours);
|
||
minutes = checkTime(minutes);
|
||
seconds = checkTime(seconds);
|
||
var t = hours + ":"
|
||
+ minutes + ":" + seconds;
|
||
show.innerHTML = t;
|
||
}, 1000);
|
||
setInterval(function() {
|
||
var timeYear = new Date();
|
||
var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
|
||
var mynum=timeYear.getDay(); //星期
|
||
// 程序计时的月从0开始取值后+1
|
||
var ms = timeYear.getMonth() + 1;
|
||
var ts = timeYear.getFullYear() + "年" + ms + "月"
|
||
+ timeYear.getDate()+"日"+weekday[mynum];
|
||
year.innerHTML = ts;
|
||
}, 1000);
|
||
|
||
function checkTime(i) { // 将0-9的数字前面加上0,例1变为01
|
||
if(i < 10) {
|
||
i = "0" + i;
|
||
}
|
||
return i;
|
||
}
|
||
};
|
||
// var projectCountDom = document.getElementById('projectCount');
|
||
// projectCountDom.onclick = function(){
|
||
// var index = top.layer.open({
|
||
// title: false,
|
||
// type: 2,
|
||
// content: '../../page/tarin/projectInfo.html',
|
||
// area: ['90%', '90%'],
|
||
// maxmin: false
|
||
// });
|
||
// }
|
||
//
|
||
//获取当前城市
|
||
var myCity = new BMap.LocalCity();
|
||
myCity.get(function(data){
|
||
var cityData = document.getElementById("city");
|
||
cityData.innerHTML=data.name;
|
||
});
|
||
getAgeStructureList();//年龄结构
|
||
// getProList();//项目概况
|
||
getWorkerList();//考勤管理
|
||
getWorkerPostList();//数据统计
|
||
getContractList();//合同管理
|
||
//getSalaryList();//工资统计
|
||
// getWorkerRecordList();//人员出入场统计
|
||
getWorkerRedBlackWhiteList();//红黑白名单
|
||
getWorkerPostCardList();//施工人脸甄别
|
||
// getProjectCount();
|
||
|
||
})
|
||
//Echarts数据加载
|
||
|
||
//年龄结构
|
||
function getAgeStructureList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getAgeStructureList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
// 手动添加请求头
|
||
beforeSend: function(xhr) {
|
||
// 从本地存储获取token(确保登录后已保存)
|
||
const token = localStorage.getItem('smzweb-token') || sessionStorage.getItem('smzweb-token');
|
||
if (token) {
|
||
xhr.setRequestHeader('x-auth-token', token); // 与后端配置的头名一致
|
||
}
|
||
},
|
||
success: function(data) {
|
||
var list = data.obj.list;
|
||
age1Echarts(list);
|
||
}
|
||
});
|
||
}
|
||
|
||
//在建工程数量
|
||
/*function getProjectCount(){
|
||
$.ajax({
|
||
type: 'GET',
|
||
url: dataUrl + 'workerPost/getProjectStatusCount',
|
||
data: {
|
||
|
||
},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data;
|
||
document.getElementById('projectCount').innerText = '在建工程数量:'+obj;
|
||
}
|
||
});
|
||
}*/
|
||
|
||
//项目概况
|
||
function getProList(data){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getProList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
var list=obj.list;
|
||
var counts=list.counts;//总数
|
||
var countsA=list.countsA;//在建数
|
||
var countsB=list.countsB;//已完工数
|
||
var agvA=list.agvA;//在建百分比
|
||
var agvB=list.agvB;//已完工百分比
|
||
unfinishedProEcharts(countsA,agvA);//在建
|
||
overProEcharts(countsB,agvB);//已完工
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
//数据统计
|
||
function getWorkerPostList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getWorkerPostList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
console.log("工种",obj.list)
|
||
var list=obj.list;//集合
|
||
workTypeEcharts(list);
|
||
}
|
||
});
|
||
}
|
||
//工种证统计统计
|
||
function getWorkerPostCardList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getWorkerPostCardList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
console.log("工种证书",obj.list)
|
||
var list=obj.list;//集合
|
||
$.ajax({
|
||
type: 'GET',
|
||
url: dataUrl + 'workerPost/gerWorkerPersonAlls',
|
||
async: false,
|
||
data: {},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var allcard = data;
|
||
getWorkerPostCardListEcharts(list,allcard);
|
||
}
|
||
});
|
||
|
||
}
|
||
});
|
||
}
|
||
//人员出入场统计
|
||
function getWorkerRecordList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getWorkerRecordList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
var name=obj.name;//工程名称
|
||
var inCount=obj.inCount;//入场
|
||
var outCount=obj.outCount;//出场
|
||
inOutEcharts(name,inCount,outCount);
|
||
}
|
||
});
|
||
}
|
||
//红黑白名单
|
||
function getWorkerRedBlackWhiteList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getWorkerRedBlackWhiteList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
var redCount=obj.redCount;//红名单
|
||
var blackCount=obj.blackCount;//黑名单
|
||
var whiteCount=obj.whiteCount;//黑名单
|
||
redBlackWhiteEcharts(redCount,blackCount,whiteCount);//红黑白名单
|
||
}
|
||
});
|
||
}
|
||
//人员管理
|
||
var allcountrc=0;
|
||
function getWorkerList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getWorkerList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
var counts=obj.counts;//人员管理-总人数(入场+出场)
|
||
var zcCount=obj.zcCount;//在场人数
|
||
var kqCount=obj.kqCount;//当日考勤人数
|
||
var kqReviewedCount=obj.kqReviewedCount;//当日考勤已审核人数
|
||
|
||
var proId=obj.proId;//工程集合
|
||
var name=obj.name;//工程集合
|
||
var abbreviation=obj.abbreviation;//工程简称集合
|
||
var zcList=obj.zcList;//在场人数集合((入场+出场)-出场)
|
||
var kqList=obj.kqList;//当日考勤集合
|
||
var kqReviewedList=obj.kqReviewedList//当日考勤已审核集合
|
||
peopleEcharts(name,zcList,kqList,kqReviewedList,abbreviation,proId);
|
||
document.getElementById("zcData").innerHTML="在场人数:"+zcCount+"人";
|
||
document.getElementById("kqData").innerHTML="今日打卡人数:"+kqCount+"人";
|
||
document.getElementById("kqReviewedData").innerHTML="休息人数:"+kqReviewedCount+"人";
|
||
allcountrc=zcCount;
|
||
leftDivData();
|
||
rightDivData();
|
||
leftDiv();
|
||
rightDiv();
|
||
|
||
}
|
||
});
|
||
}
|
||
//工资统计
|
||
function getSalaryList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getSalaryList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
var name=obj.name;//工程集合
|
||
var inList=obj.inList;//已生效集合d
|
||
var noList=obj.noList;//待发放集合
|
||
wagesEcharts(name,inList,noList);//工资统计
|
||
}
|
||
});
|
||
}
|
||
//合同管理
|
||
function getContractList(){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'home/getContractList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
var obj=data.obj;
|
||
var proid=obj.proid;
|
||
var name=obj.name;//工程集合
|
||
var yqd=obj.yqd;//已签订
|
||
var dsh=obj.dsh;//待审核
|
||
var wqd=obj.wqd;//未签订
|
||
contractEcharts(proid,name,yqd,dsh,wqd);//合同统计
|
||
}
|
||
});
|
||
}
|
||
//项目概况-已完工
|
||
function overProEcharts(countsB,agvB){
|
||
var myChart = echarts.init(document.getElementById('overPro'));
|
||
var num1=countsB;
|
||
var num2=agvB;
|
||
var dataArr={data:num1,percent:agvB};
|
||
var option = {
|
||
title:[
|
||
{
|
||
text: `{a|${dataArr.data}}{b|}`,
|
||
top: '50%',
|
||
left: 'center',
|
||
textStyle: {
|
||
fontWeight: 'normal',
|
||
rich: {
|
||
a: {
|
||
fontWeight: 'normal',
|
||
fontSize: 30,
|
||
color: '#FFF',
|
||
textShadowColor: '#7f00fcff',
|
||
textShadowBlur: 10,
|
||
fontFamily: 'Microsoft YaHei',
|
||
}
|
||
}
|
||
}
|
||
}
|
||
],
|
||
series: [{
|
||
name: "内层进度条",
|
||
z:3,
|
||
type: "gauge", // 仪表盘
|
||
center:['center','55%'],
|
||
radius:'67%',
|
||
detail: {
|
||
show:false,
|
||
},
|
||
title: {
|
||
show: false
|
||
},
|
||
data: [{
|
||
value: dataArr.data,
|
||
name: "Percent"
|
||
}],
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
min:0,
|
||
max:100,
|
||
splitNumber:20,
|
||
axisLine:{
|
||
show:true,
|
||
lineStyle:{
|
||
roundCap:true,
|
||
width:30,
|
||
color:[[dataArr.percent, new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
||
offset: 0,
|
||
color: '#6FE9FE'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: '#FFC4DD' // 100% 处的颜色
|
||
}
|
||
])],
|
||
[1, '#15337C']],
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
}
|
||
},
|
||
{
|
||
name: "外层进度条",
|
||
type: "gauge", // 仪表盘
|
||
z:2,
|
||
center:['center','55%'],
|
||
radius:'85%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
title: {
|
||
show: false
|
||
},
|
||
data: [{
|
||
value: dataArr.data,
|
||
name: "Percent"
|
||
}],
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
min:0,
|
||
max:100,
|
||
axisLine:{
|
||
show:true,
|
||
lineStyle:{
|
||
roundCap:true,
|
||
width:35,
|
||
color:[[dataArr.percent, new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
||
offset: 0,
|
||
color: 'RGB(111,233,254,0.1)'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: '#FFC4DD' // 100% 处的颜色
|
||
}
|
||
])],
|
||
[1, '#15337C']],
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
}
|
||
},
|
||
{
|
||
name:'外层刻度',
|
||
type:'gauge',
|
||
center:['center','55%'],
|
||
radius:'44%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
min:0,
|
||
max:100,
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
},
|
||
axisLine:{
|
||
show: false
|
||
},
|
||
axisTick:{
|
||
show: true,
|
||
splitNumber: 4,
|
||
lineStyle: {
|
||
color: '#7987AE', //用颜色渐变函数不起作用
|
||
width: 3
|
||
},
|
||
length: 6
|
||
}
|
||
},
|
||
{
|
||
name:'内部刻度',
|
||
type:'gauge',
|
||
center:['center','55%'],
|
||
radius:'30%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
startAngle:'0', // 仪表盘起始角度
|
||
endAngle :'360', // 仪表盘结束角度
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
},
|
||
axisLine:{
|
||
show: false
|
||
},
|
||
axisTick:{
|
||
show: true,
|
||
splitNumber: 8,
|
||
lineStyle: {
|
||
color: '#7987AE', //用颜色渐变函数不起作用
|
||
width: 2
|
||
},
|
||
length: 3
|
||
},
|
||
detail: {
|
||
formatter: '已完工',
|
||
offsetCenter: ['0', '200%'],
|
||
textStyle: {
|
||
fontSize:25,
|
||
color: '#FFFFFF',
|
||
},
|
||
},
|
||
},
|
||
{
|
||
name:'内部实心圆',
|
||
type:'pie',
|
||
silent:true,
|
||
animation: false,
|
||
center:['center','55%'],
|
||
radius:'28%',
|
||
label:{
|
||
show:false,
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#041a63'
|
||
}
|
||
},
|
||
data: [{ value: 100 }]
|
||
},
|
||
{
|
||
name:'外层背景',
|
||
z:1,
|
||
type:'gauge',
|
||
center:['center','55%'],
|
||
radius:'45%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
splitLine: {
|
||
show: false
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLabel: {
|
||
show: false
|
||
},
|
||
pointer: {
|
||
show: false
|
||
},
|
||
axisLine: {
|
||
lineStyle: {
|
||
color: [[1, '#15337C']],
|
||
width: '100%'
|
||
}
|
||
},
|
||
}
|
||
]
|
||
}
|
||
// 为echarts对象加载数据
|
||
myChart.setOption(option);
|
||
}
|
||
//项目概况-未完工
|
||
function unfinishedProEcharts(countsA,agvA){
|
||
var myChart = echarts.init(document.getElementById('unfinishedPro'));
|
||
var num1=countsA;
|
||
var num2=agvA;
|
||
var dataArr={data:num1,percent:agvA};
|
||
var option = {
|
||
title:[
|
||
{
|
||
text: `{a|${dataArr.data}}{b|}`,
|
||
top: '50%',
|
||
left: 'center',
|
||
textStyle: {
|
||
fontWeight: 'normal',
|
||
rich: {
|
||
a: {
|
||
fontWeight: 'normal',
|
||
fontSize: 30,
|
||
color: '#FFF',
|
||
textShadowColor: '#7f00fcff',
|
||
textShadowBlur: 10,
|
||
fontFamily: 'Microsoft YaHei',
|
||
}
|
||
}
|
||
}
|
||
}
|
||
],
|
||
series: [{
|
||
name: "内层进度条",
|
||
z:3,
|
||
type: "gauge", // 仪表盘
|
||
center:['center','55%'],
|
||
radius:'67%',
|
||
detail: {
|
||
show:false,
|
||
},
|
||
title: {
|
||
show: false
|
||
},
|
||
data: [{
|
||
value: dataArr.data,
|
||
name: "Percent"
|
||
}],
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
min:0,
|
||
max:100,
|
||
splitNumber:20,
|
||
axisLine:{
|
||
show:true,
|
||
lineStyle:{
|
||
roundCap:true,
|
||
width:30,
|
||
color:[[dataArr.percent, new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
||
offset: 1,
|
||
color: '#6FE9FE'
|
||
},
|
||
{
|
||
offset: 0,
|
||
color: '#FFC4DD' // 100% 处的颜色
|
||
}
|
||
])],
|
||
[1, '#15337C']],
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
}
|
||
},
|
||
{
|
||
name: "外层进度条",
|
||
type: "gauge", // 仪表盘
|
||
z:2,
|
||
center:['center','55%'],
|
||
radius:'85%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
title: {
|
||
show: false
|
||
},
|
||
data: [{
|
||
value: dataArr.data,
|
||
name: "Percent"
|
||
}],
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
min:0,
|
||
max:100,
|
||
axisLine:{
|
||
show:true,
|
||
lineStyle:{
|
||
roundCap:true,
|
||
width:35,
|
||
color:[[dataArr.percent, new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
||
offset: 1,
|
||
color: 'RGB(111,233,254,0.1)'
|
||
},
|
||
{
|
||
offset: 0,
|
||
color: '#FFC4DD' // 100% 处的颜色
|
||
}
|
||
])],
|
||
[1, '#15337C']],
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
}
|
||
},
|
||
{
|
||
name:'外层刻度',
|
||
type:'gauge',
|
||
center:['center','55%'],
|
||
radius:'44%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
min:0,
|
||
max:100,
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
},
|
||
axisLine:{
|
||
show: false
|
||
},
|
||
axisTick:{
|
||
show: true,
|
||
splitNumber: 4,
|
||
lineStyle: {
|
||
color: '#7987AE', //用颜色渐变函数不起作用
|
||
width: 3
|
||
},
|
||
length: 6
|
||
}
|
||
},
|
||
{
|
||
name:'内部刻度',
|
||
type:'gauge',
|
||
center:['center','55%'],
|
||
radius:'30%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
startAngle:'0', // 仪表盘起始角度
|
||
endAngle :'360', // 仪表盘结束角度
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
pointer: {
|
||
show: false // 不展示指针
|
||
},
|
||
axisLine:{
|
||
show: false
|
||
},
|
||
axisTick:{
|
||
show: true,
|
||
splitNumber: 8,
|
||
lineStyle: {
|
||
color: '#7987AE', //用颜色渐变函数不起作用
|
||
width: 2
|
||
},
|
||
length: 3
|
||
},
|
||
detail: {
|
||
formatter: '未完工',
|
||
offsetCenter: ['0', '200%'],
|
||
textStyle: {
|
||
fontSize:25,
|
||
color: '#FFFFFF',
|
||
},
|
||
},
|
||
},
|
||
{
|
||
name:'内部实心圆',
|
||
type:'pie',
|
||
silent:true,
|
||
animation: false,
|
||
center:['center','55%'],
|
||
radius:'28%',
|
||
label:{
|
||
show:false,
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#041a63'
|
||
}
|
||
},
|
||
data: [{ value: 100 }]
|
||
},
|
||
{
|
||
name:'外层背景',
|
||
z:1,
|
||
type:'gauge',
|
||
center:['center','55%'],
|
||
radius:'45%',
|
||
detail: {
|
||
show: false,
|
||
},
|
||
startAngle:'225', // 仪表盘起始角度
|
||
endAngle :'-45', // 仪表盘结束角度
|
||
splitLine: {
|
||
show: false
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: false
|
||
},
|
||
splitLabel: {
|
||
show: false
|
||
},
|
||
pointer: {
|
||
show: false
|
||
},
|
||
axisLine: {
|
||
lineStyle: {
|
||
color: [[1, '#15337C']],
|
||
width: '100%'
|
||
}
|
||
},
|
||
}
|
||
]
|
||
}
|
||
// 为echarts对象加载数据
|
||
myChart.setOption(option);
|
||
}
|
||
//人员管理
|
||
function peopleEcharts(name,zcList,kqList,kqReviewedList,abbreviation,proId){
|
||
var myChart = echarts.init(document.getElementById('peopleEcharts'));
|
||
var option = {
|
||
barWidth: 10,
|
||
grid: {
|
||
top: '5%',
|
||
left: '2%',
|
||
right: '10%',
|
||
bottom: '5%',
|
||
containLabel: true,
|
||
},
|
||
tooltip: {
|
||
trigger: "axis",
|
||
axisPointer: {
|
||
type: 'none'
|
||
},
|
||
formatter: function(params) {
|
||
return params[0].name+'<br/>'+params[0].seriesName + ' : ' + params[0].value+'<br/>'+params[2].seriesName + ' : ' + params[2].value
|
||
}
|
||
|
||
},
|
||
xAxis: {
|
||
type: 'value',
|
||
splitLine: {
|
||
show: false,
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLine: { // 改变x轴颜色
|
||
show: false,
|
||
},
|
||
axisLabel: { // 改变x轴字体颜色和大小
|
||
show: false,
|
||
}
|
||
},
|
||
yAxis: {
|
||
type: 'category',
|
||
data:name,
|
||
splitLine: {
|
||
show: false
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLine: { // 改变y轴颜色
|
||
show: false,
|
||
},
|
||
axisLabel: { // 改变y轴字体颜色和大小
|
||
textStyle: {
|
||
color: "#fff",
|
||
fontSize: 16
|
||
},
|
||
formatter: function(value) {
|
||
var len = value.length;
|
||
if(len>5){
|
||
return value.substring(0, 5) + "..." ;
|
||
}else{
|
||
return value;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
//滚动条
|
||
dataZoom: [{
|
||
show: false,
|
||
height: 12,
|
||
yAxisIndex: [0],
|
||
bottom: '0%',
|
||
start: 0,
|
||
end: 2,
|
||
zoomLock: true, //禁用缩放
|
||
handleSize: '110%',
|
||
handleStyle: {
|
||
color: "#d3dee5",
|
||
},
|
||
textStyle: {
|
||
color: "#fff"
|
||
},
|
||
borderColor: "#90979c"
|
||
}],
|
||
series: [{
|
||
type: 'bar',
|
||
name:'在场人数:',
|
||
itemStyle: {
|
||
normal: {
|
||
label: {
|
||
show: true, //开启显示
|
||
position: 'right', //在上方显示
|
||
textStyle: { //数值样式
|
||
color: "#fff",
|
||
fontSize: 13,
|
||
fontWeight: 600
|
||
}
|
||
},
|
||
color: '#2ED8FB'
|
||
},
|
||
},
|
||
data: zcList
|
||
},
|
||
{
|
||
// 分隔
|
||
type: 'pictorialBar',
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#000',
|
||
},
|
||
},
|
||
symbolRepeat: 'fixed',
|
||
symbolMargin: 12,
|
||
symbol: 'rect',
|
||
symbolClip: true,
|
||
symbolSize: [1, 10],
|
||
symbolPosition: 'start',
|
||
symbolOffset: [-10, -13],
|
||
data: zcList,
|
||
z: 66,
|
||
animationEasing: 'elasticOut',
|
||
},
|
||
{
|
||
type: 'bar',
|
||
name:'今日打卡人数:',
|
||
itemStyle: {
|
||
normal: {
|
||
label: {
|
||
show: true, //开启显示
|
||
position: 'right', //在上方显示
|
||
textStyle: { //数值样式
|
||
color: "#fff",
|
||
fontSize: 13,
|
||
fontWeight: 600
|
||
}
|
||
},
|
||
color: '#DDFCAC'
|
||
}
|
||
},
|
||
data: kqList
|
||
},{
|
||
// 分隔
|
||
type: 'pictorialBar',
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#000',
|
||
},
|
||
},
|
||
symbolRepeat: 'fixed',
|
||
symbolMargin: 12,
|
||
symbol: 'rect',
|
||
symbolClip: true,
|
||
symbolSize: [1, 10],
|
||
symbolPosition: 'start',
|
||
symbolOffset: [-10, 0],
|
||
data: kqList,
|
||
z: 66,
|
||
animationEasing: 'elasticOut',
|
||
},
|
||
{
|
||
type: 'bar',
|
||
name:'已审核人数:',
|
||
itemStyle: {
|
||
normal: {
|
||
label: {
|
||
show: true, //开启显示
|
||
position: 'right', //在上方显示
|
||
textStyle: { //数值样式
|
||
color: "#fff",
|
||
fontSize: 13,
|
||
fontWeight: 600
|
||
}
|
||
},
|
||
color: '#18B794'
|
||
}
|
||
},
|
||
data: kqReviewedList,
|
||
},{
|
||
// 分隔
|
||
type: 'pictorialBar',
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#000',
|
||
},
|
||
},
|
||
symbolRepeat: 'fixed',
|
||
symbolMargin: 12,
|
||
symbol: 'rect',
|
||
symbolClip: true,
|
||
symbolSize: [1, 10],
|
||
symbolPosition: 'start',
|
||
symbolOffset: [-10, 13],
|
||
data: kqReviewedList,
|
||
z: 66,
|
||
animationEasing: 'elasticOut',
|
||
},
|
||
]
|
||
};
|
||
var startNum = 0;
|
||
var endNum = 2;
|
||
function zoomInterval() {
|
||
if (endNum > 100) {
|
||
option.dataZoom[0].start = 0;
|
||
option.dataZoom[0].end = 2;
|
||
startNum = 0;
|
||
endNum = 2;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerInfo(name);
|
||
});
|
||
} else {
|
||
option.dataZoom[0].start = startNum;
|
||
option.dataZoom[0].end = endNum;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerInfo(name);
|
||
});
|
||
}
|
||
startNum += 2;
|
||
endNum += 2;
|
||
};
|
||
var myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerInfo(name);
|
||
});
|
||
myChart.on('mouseover', function(params) {
|
||
clearInterval(myInterval);
|
||
});
|
||
myChart.on('mouseout', function(params) {
|
||
myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
});
|
||
}
|
||
//数据统计
|
||
function workTypeEcharts(list){
|
||
var myChart = echarts.init(document.getElementById('workType'));
|
||
var option = {
|
||
color: ['#7eacea', '#e15777', '#95ea71', '#ea9b4f', '#7577df', '#be72d8', '#fff'],
|
||
tooltip: {
|
||
trigger: 'item',
|
||
formatter: '{b} : {c} ({d}%)'
|
||
},
|
||
series: [{
|
||
name: '',
|
||
type: 'pie',
|
||
radius: [30, 110],
|
||
center: ['50%', '60%'],
|
||
roseType: 'radius',
|
||
label: {
|
||
show: true,
|
||
formatter: '{b}:{d}%;{c}',
|
||
},
|
||
emphasis: {
|
||
label: {
|
||
show: true
|
||
}
|
||
},
|
||
data: list
|
||
}, {
|
||
name: '占位',
|
||
type: 'pie',
|
||
silent: true,
|
||
center: ['50%', '60%'],
|
||
radius: 30,
|
||
hoverAnimation: false,
|
||
label: {
|
||
show: false,
|
||
position: 'center'
|
||
},
|
||
data: [{
|
||
value: 1,
|
||
name: '占位2'
|
||
},
|
||
],
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#fff',
|
||
shadowColor: 'rgba(0, 0, 0, 0.5)',
|
||
shadowBlur: 10,
|
||
},
|
||
}
|
||
}]
|
||
};
|
||
// 为echarts对象加载数据
|
||
myChart.setOption(option);
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerPostInfo(name);
|
||
});
|
||
}
|
||
//合同统计
|
||
function contractEcharts(proid,name,yqd,dsh,wqd){
|
||
var myChart = echarts.init(document.getElementById('contract'));
|
||
var option = {
|
||
legend: {
|
||
top: 25,
|
||
textStyle: {
|
||
fontSize: 14,
|
||
color: '#fff',
|
||
},
|
||
data: ['已签订', '待审核', '未签订']
|
||
},
|
||
tooltip: {
|
||
trigger: "axis",
|
||
axisPointer: {
|
||
type: "shadow",
|
||
textStyle: {
|
||
color: "#fff"
|
||
}
|
||
},
|
||
},
|
||
grid: {
|
||
left: "5%",
|
||
top: "20%",
|
||
bottom: "5%",
|
||
right: "5%",
|
||
containLabel: true
|
||
},
|
||
xAxis: {
|
||
axisLabel: {
|
||
interval:0,
|
||
textStyle: {
|
||
color: '#fff',
|
||
fontSize: 15
|
||
},
|
||
formatter: function(value) {
|
||
var len = value.length;
|
||
if(len>5){
|
||
return value.substring(0, 5) + "..." ;
|
||
}else{
|
||
return value;
|
||
}
|
||
}
|
||
},
|
||
axisLine: {
|
||
show:true,
|
||
lineStyle: {
|
||
color: '#1373C0'
|
||
}
|
||
},
|
||
data: name
|
||
},
|
||
yAxis:[
|
||
{
|
||
nameTextStyle:{
|
||
color: '#5C91C4',
|
||
fontSize: 14,
|
||
},
|
||
type: 'value',
|
||
position: 'left',
|
||
axisLabel: {
|
||
formatter: '{value}',
|
||
textStyle: {
|
||
color: '#fff',
|
||
fontSize: 15
|
||
},
|
||
},
|
||
axisLine: {
|
||
show:true,
|
||
lineStyle: {
|
||
color: '#1373C0'
|
||
}
|
||
},
|
||
axisTick: { show: false },
|
||
splitLine: {show: false}
|
||
}],
|
||
//滚动条
|
||
dataZoom: [{
|
||
show: false,
|
||
height: 12,
|
||
xAxisIndex: [0],
|
||
bottom: '0%',
|
||
start: 0,
|
||
end: 3,
|
||
zoomLock: true, //禁用缩放
|
||
handleSize: '110%',
|
||
handleStyle: {
|
||
color: "#d3dee5",
|
||
},
|
||
textStyle: {
|
||
color: "#fff"
|
||
},
|
||
borderColor: "#90979c"
|
||
}],
|
||
series: [{
|
||
type: "bar",
|
||
name:'已签订',
|
||
rawdate: proid,
|
||
barWidth: 4,
|
||
barGap: '400%',
|
||
label: {
|
||
show: true,
|
||
formatter: "{a|}",
|
||
color: "#fff",
|
||
position: "top",
|
||
distance: -10,
|
||
backgroundColor: "#65E4A4",
|
||
shadowColor: "#65E4A4",
|
||
shadowBlur: 10,
|
||
padding: 4,
|
||
borderRadius: 8,
|
||
rich: {
|
||
a: {
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: 6,
|
||
lineHeight: 6,
|
||
backgroundColor: "#65E4A4"
|
||
}
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#65E4A4'
|
||
}
|
||
},
|
||
data: yqd
|
||
},{
|
||
type: "bar",
|
||
name:'待审核',
|
||
rawdate: proid,
|
||
barWidth: 4,
|
||
barGap: '400%',
|
||
label: {
|
||
show: true,
|
||
formatter: "{a|}",
|
||
color: "#fff",
|
||
position: "top",
|
||
distance: -10,
|
||
backgroundColor: "#FAEF72",
|
||
shadowColor: "#FAEF72",
|
||
shadowBlur: 10,
|
||
padding: 4,
|
||
borderRadius: 8,
|
||
rich: {
|
||
a: {
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: 6,
|
||
lineHeight: 6,
|
||
backgroundColor: "#FAEF72"
|
||
}
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#FAEF72'
|
||
}
|
||
},
|
||
data: dsh
|
||
},{
|
||
type: "bar",
|
||
name:'未签订',
|
||
barWidth: 4,
|
||
rawdate: proid,
|
||
barGap: '400%',
|
||
label: {
|
||
show: true,
|
||
formatter: "{a|}",
|
||
color: "#000",
|
||
position: "top",
|
||
distance: -10,
|
||
backgroundColor: "#F06A87",
|
||
shadowColor: "#F06A87",
|
||
shadowBlur: 10,
|
||
padding: 4,
|
||
borderRadius: 6,
|
||
|
||
rich: {
|
||
a: {
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: 6,
|
||
lineHeight: 6,
|
||
backgroundColor: "#F06A87"
|
||
}
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: '#F06A87'
|
||
}
|
||
},
|
||
data: wqd
|
||
}]
|
||
};
|
||
|
||
var startNum = 0;
|
||
var endNum = 3;
|
||
function zoomInterval() {
|
||
if (endNum > 100) {
|
||
option.dataZoom[0].start = 0;
|
||
option.dataZoom[0].end = 3;
|
||
startNum = 0;
|
||
endNum = 3;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(param) {
|
||
var name = param.name;
|
||
var seriesName = param.seriesName;
|
||
var proid;
|
||
var mes = '['+ param.type + ']';
|
||
if (typeof param.seriesIndex != 'undefined') {
|
||
mes +='seriesIndex:'+ param.seriesIndex;
|
||
mes +='dataIndex:'+ param.dataIndex;
|
||
//alert(option.series[param.dataIndex].rawdate);
|
||
proid = option.series[param.seriesIndex].rawdate[param.dataIndex];
|
||
}
|
||
showContract(proid,seriesName);
|
||
});
|
||
} else {
|
||
option.dataZoom[0].start = startNum;
|
||
option.dataZoom[0].end = endNum;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(param) {
|
||
var name = param.name;
|
||
var seriesName = param.seriesName;
|
||
var proid;
|
||
var mes = '['+ param.type + ']';
|
||
if (typeof param.seriesIndex != 'undefined') {
|
||
mes +='seriesIndex:'+ param.seriesIndex;
|
||
mes +='dataIndex:'+ param.dataIndex;
|
||
//alert(option.series[param.dataIndex].rawdate);
|
||
proid = option.series[param.seriesIndex].rawdate[param.dataIndex];
|
||
}
|
||
showContract(proid,seriesName);
|
||
});
|
||
}
|
||
startNum += 3;
|
||
endNum += 3;
|
||
};
|
||
var myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(param) {
|
||
var name = param.name;
|
||
var seriesName = param.seriesName;
|
||
var proid;
|
||
var mes = '['+ param.type + ']';
|
||
if (typeof param.seriesIndex != 'undefined') {
|
||
mes +='seriesIndex:'+ param.seriesIndex;
|
||
mes +='dataIndex:'+ param.dataIndex;
|
||
//alert(option.series[param.dataIndex].rawdate);
|
||
proid = option.series[param.seriesIndex].rawdate[param.dataIndex];
|
||
}
|
||
showContract(proid,seriesName);
|
||
});
|
||
myChart.on('mouseover', function(params) {
|
||
clearInterval(myInterval);
|
||
});
|
||
myChart.on('mouseout', function(params) {
|
||
myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
});
|
||
}
|
||
//工资统计
|
||
function wagesEcharts(name,inList,noList){
|
||
var myChart = echarts.init(document.getElementById('wages'));
|
||
var option = {
|
||
legend: {
|
||
top:'15%',
|
||
data: ['已生效','待发放'],
|
||
textStyle: {
|
||
fontSize: 14,
|
||
color: 'F1F1F3'
|
||
},
|
||
},
|
||
grid: {
|
||
top: '30%',
|
||
left: '2%',
|
||
right: '2%',
|
||
bottom: '5%',
|
||
containLabel: true,
|
||
},
|
||
tooltip: {
|
||
trigger: "axis",
|
||
axisPointer: {
|
||
type: 'line'
|
||
},
|
||
},
|
||
xAxis: [{
|
||
type: 'category',
|
||
boundaryGap: true,
|
||
axisLine: {
|
||
show: false,
|
||
},
|
||
axisLabel: {
|
||
interval:0,
|
||
textStyle: {
|
||
color: '#fff',
|
||
fontSize: 14
|
||
},
|
||
formatter: function(value) {
|
||
var len = value.length;
|
||
if(len>5){
|
||
return value.substring(0, 5) + "..." ;
|
||
}else{
|
||
return value;
|
||
}
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false,
|
||
},
|
||
data: name,
|
||
}],
|
||
yAxis: [{
|
||
type: 'value',
|
||
axisTick: {
|
||
show: false,
|
||
},
|
||
splitLine: {
|
||
show: true,
|
||
lineStyle: {
|
||
color: '#1373C0',
|
||
width: 1
|
||
}
|
||
},
|
||
axisLine: {
|
||
show: false,
|
||
},
|
||
axisLabel: {
|
||
textStyle: {
|
||
color: '#fff',
|
||
fontSize: 14
|
||
},
|
||
},
|
||
}],
|
||
//滚动条
|
||
dataZoom: [{
|
||
show: false,
|
||
height: 12,
|
||
xAxisIndex: [0],
|
||
bottom: '0%',
|
||
start: 0,
|
||
end: 20,
|
||
zoomLock: true, //禁用缩放
|
||
handleSize: '110%',
|
||
handleStyle: {
|
||
color: "#d3dee5",
|
||
},
|
||
textStyle: {
|
||
color: "#fff"
|
||
},
|
||
borderColor: "#90979c"
|
||
}],
|
||
series: [{
|
||
name: '已生效',
|
||
type: 'line',
|
||
smooth: true,
|
||
showAllSymbol: true,
|
||
symbolSize: 12,
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: "rgba(1,201,204, 1)",
|
||
}
|
||
},
|
||
areaStyle: { //区域填充样式
|
||
normal: {
|
||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
||
offset: 0,
|
||
color: 'rgba(1,201,204, 0.28)'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: 'rgba(1,201,204, 0.01)'
|
||
}
|
||
], false),
|
||
}
|
||
},
|
||
data: inList
|
||
},{
|
||
name: '待发放',
|
||
type: 'line',
|
||
smooth: true,
|
||
showAllSymbol: true,
|
||
symbolSize: 12,
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: "rgba(248,216,226, 1)",
|
||
}
|
||
},
|
||
areaStyle: { //区域填充样式
|
||
normal: {
|
||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
||
offset: 0,
|
||
color: 'rgba(248,216,226, 0.28)'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: 'rgba(248,216,226, 0.01)'
|
||
}
|
||
], false),
|
||
}
|
||
},
|
||
data: noList
|
||
}
|
||
]
|
||
};
|
||
|
||
var startNum = 0;
|
||
var endNum = 20;
|
||
function zoomInterval() {
|
||
if (endNum > 100) {
|
||
option.dataZoom[0].start = 0;
|
||
option.dataZoom[0].end = 20;
|
||
startNum = 0;
|
||
endNum = 20;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openSalaryInfo(name);
|
||
});
|
||
} else {
|
||
option.dataZoom[0].start = startNum;
|
||
option.dataZoom[0].end = endNum;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openSalaryInfo(name);
|
||
});
|
||
}
|
||
startNum += 20;
|
||
endNum += 20;
|
||
};
|
||
var myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openSalaryInfo(name);
|
||
});
|
||
myChart.on('mouseover', function(params) {
|
||
clearInterval(myInterval);
|
||
});
|
||
myChart.on('mouseout', function(params) {
|
||
myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
});
|
||
}
|
||
//施工人脸甄别
|
||
function getWorkerPostCardListEcharts(list,allcard) {
|
||
var myChart = echarts.init(document.getElementById('WorkPhoto'));
|
||
var colorList=['#afa3f5', '#00d488', '#3feed4', '#3bafff', '#f1bb4c','#aff', "rgba(250,250,250,0.5)"];
|
||
var option = {
|
||
title: {
|
||
subtext: '总证件\n'+allcard,
|
||
x: 'center',
|
||
y: '40%',
|
||
textStyle: {
|
||
fontSize:18,
|
||
fontWeight:'normal',
|
||
color: ['#333']
|
||
},
|
||
subtextStyle: {
|
||
color: '#f1bb4c',
|
||
fontSize: 16
|
||
},
|
||
},
|
||
grid: {
|
||
bottom: 150,
|
||
left: 0,
|
||
right: '10%'
|
||
},
|
||
legend: {
|
||
show:false,
|
||
orient: 'vertical',
|
||
top: "middle",
|
||
right: "5%",
|
||
textStyle: {
|
||
color: '#f2f2f2',
|
||
fontSize: 25,
|
||
|
||
},
|
||
icon: 'roundRect'
|
||
},
|
||
series: [
|
||
// 主要展示层的
|
||
{
|
||
radius: ['29%', '59%'],
|
||
center: ['50%', '50%'],
|
||
type: 'pie',
|
||
itemStyle: {
|
||
normal: {
|
||
color: function(params) {
|
||
return colorList[params.dataIndex]
|
||
}
|
||
}
|
||
},
|
||
labelLine: {
|
||
normal: {
|
||
show: true,
|
||
length: 15,
|
||
length2: 100,
|
||
lineStyle: {
|
||
color: '#d3d3d3'
|
||
},
|
||
align: 'right'
|
||
},
|
||
color: "#000",
|
||
emphasis: {
|
||
show: true
|
||
}
|
||
},
|
||
label:{
|
||
normal:{
|
||
formatter: function(params){
|
||
console.log(params)
|
||
var str = '';
|
||
switch(params.name){
|
||
case params.name:str = params.name+params.value+'个';break;
|
||
case params.name:str = params.name+params.value+'个';break;
|
||
case params.name:str = params.name+params.value+'个';break;
|
||
case params.name:str = params.name+params.value+'个';break;
|
||
case params.name:str = params.name+params.value+'个';break;
|
||
case params.name:str = params.name+params.value+'个';break;
|
||
}
|
||
return str
|
||
},
|
||
padding: [0, -90],
|
||
height: 35,
|
||
rich: {
|
||
a: {
|
||
width:38,
|
||
height:38,
|
||
lineHeight: 50,
|
||
align: 'left'
|
||
},
|
||
b: {
|
||
width:29,
|
||
height:45,
|
||
lineHeight: 50,
|
||
align: 'left'
|
||
},
|
||
c: {
|
||
width:34,
|
||
height:33,
|
||
lineHeight: 50,
|
||
|
||
align: 'left'
|
||
},
|
||
d: {
|
||
width:34,
|
||
height:44,
|
||
lineHeight: 50,
|
||
align: 'left'
|
||
},
|
||
e: {
|
||
width:38,
|
||
height:30,
|
||
lineHeight: 50,
|
||
align: 'left'
|
||
},
|
||
nameStyle: {
|
||
fontSize: 16,
|
||
color: "#555",
|
||
align: 'left'
|
||
},
|
||
rate: {
|
||
fontSize: 20,
|
||
color: "#1ab4b8",
|
||
align: 'left'
|
||
}
|
||
}
|
||
}
|
||
},
|
||
data: list,
|
||
},
|
||
// 边框的设置
|
||
{
|
||
radius: ['54%', '52%'],
|
||
center: ['50%', '50%'],
|
||
type: 'pie',
|
||
label: {
|
||
normal: {
|
||
show: false
|
||
},
|
||
emphasis: {
|
||
show: false
|
||
}
|
||
},
|
||
labelLine: {
|
||
normal: {
|
||
show: false
|
||
},
|
||
emphasis: {
|
||
show: false
|
||
}
|
||
},
|
||
animation: false,
|
||
tooltip: {
|
||
show: false
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color:'rgba(250,250,250,0.5)'
|
||
}
|
||
},
|
||
data: [{
|
||
value: 1,
|
||
}],
|
||
}
|
||
]
|
||
};
|
||
myChart.setOption(option);
|
||
/*
|
||
$.ajax({
|
||
type: "post",
|
||
url: dataUrl + 'home/getWorkerAttendanceList',
|
||
data: {companyId:companyId},
|
||
dataType: "json",
|
||
success: function(data) {
|
||
|
||
},
|
||
error: function(XMLHttpRequest, textStatus, errorThrown) {}
|
||
});*/
|
||
}
|
||
//人员出入场统计
|
||
function inOutEcharts(name,inCount,outCount){
|
||
var myChart = echarts.init(document.getElementById('inOut'));
|
||
var option = {
|
||
legend: {
|
||
top:'12%',
|
||
data: ['入场','出场'],
|
||
textStyle: {
|
||
fontSize: 14,
|
||
color: 'F1F1F3'
|
||
},
|
||
},
|
||
grid: {
|
||
top: '30%',
|
||
left: '2%',
|
||
right: '2%',
|
||
bottom: '5%',
|
||
containLabel: true,
|
||
},
|
||
tooltip: {
|
||
trigger: "axis",
|
||
axisPointer: {
|
||
type: 'none'
|
||
},
|
||
},
|
||
xAxis: [{
|
||
type: 'category',
|
||
boundaryGap: true,
|
||
axisLine: {
|
||
show: true,
|
||
lineStyle: {
|
||
color: '#0471C2'
|
||
}
|
||
},
|
||
axisLabel: {
|
||
textStyle: {
|
||
color: '#fff',
|
||
fontSize: 14
|
||
},
|
||
formatter: function(value) {
|
||
var len = value.length;
|
||
if(len>5){
|
||
return value.substring(0, 5) + "..." ;
|
||
}else{
|
||
return value;
|
||
}
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false,
|
||
},
|
||
data: name,
|
||
}],
|
||
yAxis: [{
|
||
type: 'value',
|
||
axisTick: {
|
||
show: false,
|
||
},
|
||
splitLine: {
|
||
show: false,
|
||
lineStyle: {
|
||
color: 'rgba(226, 226, 226, 0.3)',
|
||
width: 1
|
||
}
|
||
},
|
||
axisLine: {
|
||
show: true,
|
||
lineStyle: {
|
||
color: '#0471C2'
|
||
}
|
||
},
|
||
axisLabel: {
|
||
textStyle: {
|
||
color: '#fff',
|
||
fontSize: 14
|
||
},
|
||
},
|
||
}],
|
||
//滚动条
|
||
dataZoom: [{
|
||
show: false,
|
||
height: 12,
|
||
xAxisIndex: [0],
|
||
bottom: '0%',
|
||
start: 0,
|
||
end: 50,
|
||
zoomLock: true, //禁用缩放
|
||
handleSize: '110%',
|
||
handleStyle: {
|
||
color: "#d3dee5",
|
||
},
|
||
textStyle: {
|
||
color: "#fff"
|
||
},
|
||
borderColor: "#90979c"
|
||
}],
|
||
series: [{
|
||
name: '入场',
|
||
type: 'line',
|
||
showAllSymbol: true,
|
||
symbolSize: 12,
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: "rgba(24,220,255, 1)",
|
||
}
|
||
},
|
||
data: inCount
|
||
},{
|
||
name: '出场',
|
||
type: 'line',
|
||
showAllSymbol: true,
|
||
symbolSize: 12,
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: "rgba(251,184,161, 1)",
|
||
}
|
||
},
|
||
data: outCount
|
||
}
|
||
]
|
||
};
|
||
|
||
var startNum = 0;
|
||
var endNum = 50;
|
||
function zoomInterval() {
|
||
if (endNum > 100) {
|
||
option.dataZoom[0].start = 0;
|
||
option.dataZoom[0].end = 50;
|
||
startNum = 0;
|
||
endNum = 50;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerRecordInfo(name);
|
||
});
|
||
} else {
|
||
option.dataZoom[0].start = startNum;
|
||
option.dataZoom[0].end = endNum;
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerRecordInfo(name);
|
||
});
|
||
}
|
||
startNum += 50;
|
||
endNum += 50;
|
||
};
|
||
var myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerRecordInfo(name);
|
||
});
|
||
myChart.on('mouseover', function(params) {
|
||
clearInterval(myInterval);
|
||
});
|
||
myChart.on('mouseout', function(params) {
|
||
myInterval=window.setInterval(function(){zoomInterval()}, intervalTime);
|
||
});
|
||
}
|
||
//年龄构造 25-35
|
||
function age1Echarts(list){
|
||
var myChart = echarts.init(document.getElementById('age1'));
|
||
var option = {
|
||
color: ['#cd4692', '#9658c3', '#6c6be2', '#01aebf', '#18b794'],
|
||
tooltip: {
|
||
trigger: 'item',
|
||
formatter: "{b} : {c}({d}%)",
|
||
textStyle: {
|
||
fontSize: 16,
|
||
},
|
||
},
|
||
series: [{
|
||
type: 'pie',
|
||
clockwise: false,
|
||
startAngle: 90,
|
||
radius: '75%',
|
||
center: ['50%', '55%'],
|
||
hoverAnimation: false,
|
||
roseType: 'radius', //area
|
||
data: list,
|
||
itemStyle: {
|
||
normal:{
|
||
borderColor:'#122647',
|
||
borderWidth:'5',
|
||
},
|
||
},
|
||
label: {
|
||
show: true,
|
||
position: 'outside',
|
||
formatter: '{a|{b}:{c}}',
|
||
rich: {
|
||
hr: {
|
||
backgroundColor: 't',
|
||
borderRadius: 100,
|
||
width: 0,
|
||
height: 10,
|
||
padding: [3, 3, 0, -16],
|
||
shadowColor: '#1c1b3a',
|
||
shadowBlur: 1,
|
||
shadowOffsetX: '0',
|
||
shadowOffsetY: '2',
|
||
},
|
||
a: {
|
||
padding: [-35, 15, -20, 5],
|
||
}
|
||
}
|
||
},
|
||
labelLine: {
|
||
normal: {
|
||
length: 10,
|
||
length2: 20,
|
||
lineStyle: {
|
||
width: 1,
|
||
}
|
||
}
|
||
},
|
||
}],
|
||
}
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openWorkerAgeInfo(name);
|
||
});
|
||
}
|
||
|
||
|
||
//红黑白名单
|
||
function redBlackWhiteEcharts(redCount,blackCount,whiteCount){
|
||
var myChart = echarts.init(document.getElementById('redBlackWhite'));
|
||
var myBgColor = ["red","black","white"];
|
||
var dataList = [redCount,blackCount,whiteCount];
|
||
var option = {
|
||
grid: {
|
||
left: '3%',
|
||
right: '4%',
|
||
bottom: '3%',
|
||
containLabel: true
|
||
},
|
||
xAxis: [{
|
||
type: 'category',
|
||
data: ['红名单',
|
||
'黑名单',
|
||
'白名单',
|
||
|
||
],
|
||
axisLine: {
|
||
show: true,
|
||
lineStyle: {
|
||
color: "#063374",
|
||
width: 1,
|
||
type: "solid"
|
||
}
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
axisLabel: {
|
||
show: true,
|
||
textStyle: {
|
||
color: "#00c7ff",
|
||
}
|
||
},
|
||
}],
|
||
yAxis: [{
|
||
type: 'value',
|
||
axisLabel: {
|
||
formatter: '{value}'
|
||
},
|
||
axisLine: {
|
||
show: false,
|
||
lineStyle: {
|
||
color: "#00c7ff",
|
||
width: 1,
|
||
type: "solid"
|
||
},
|
||
},
|
||
axisTick: {
|
||
show: false
|
||
},
|
||
splitLine: {
|
||
lineStyle: {
|
||
color: "#063374",
|
||
}
|
||
}
|
||
}],
|
||
series: [{
|
||
type: 'bar',
|
||
data: dataList,
|
||
barWidth: 50, //柱子宽度
|
||
//barGap: 1, //柱子之间间距
|
||
itemStyle: {
|
||
normal: {
|
||
color: function(params) {
|
||
var num=myBgColor.length;
|
||
return myBgColor[params.dataIndex%num]
|
||
},
|
||
opacity: 1,
|
||
}
|
||
}
|
||
}]
|
||
};
|
||
myChart.setOption(option);// 为echarts对象加载数据
|
||
if (myChart._$handlers.click) {//防止重复触发点击事件
|
||
myChart._$handlers.click.length = 0;
|
||
}
|
||
myChart.on('click', function(params) {
|
||
var name = params.name;
|
||
openRedBlackWhitePage(name);
|
||
});
|
||
}
|
||
//二级页面跳转
|
||
//红黑白名单
|
||
function openRedBlackWhitePage(name){
|
||
|
||
if(name === "红名单"){
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/redBlack/workerRed.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}else if(name === "黑名单"){
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/redBlack/workerBlack.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}else if(name === "白名单"){
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/redBlack/workerWhite.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
|
||
}
|
||
|
||
//
|
||
//二级页面跳转
|
||
//项目概况
|
||
function showProInfo(type){
|
||
localStorage.setItem("type", type);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/proInfo/proInfo.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//人员管理
|
||
function openWorkerInfo(proName){
|
||
localStorage.setItem("proName", proName);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/worker/person.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//工种统计
|
||
function openWorkerPostInfo(postName){
|
||
// localStorage.setItem("postName", postName);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/workerPost/workerPostIfr.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//施工人脸甄别
|
||
function showAttendance(){
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/attendanceInfo/attendanceInfo.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//人员出入场
|
||
function openWorkerRecordInfo(proName){
|
||
localStorage.setItem("proName", proName);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/workerRecord/workerRecord.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//年龄结构
|
||
function openWorkerAgeInfo(name){
|
||
localStorage.setItem("type","年龄结构");
|
||
localStorage.setItem("postName",name);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/workerPost/workerPostPeople.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//红名单
|
||
function showRed(){
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/redBlack/workerRed.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//黑名单
|
||
function showBlack(){
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/redBlack/workerBlack.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//工资册
|
||
function openSalaryInfo(proName){
|
||
localStorage.setItem("proName", proName);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/salary/salaryInfo.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|
||
//合同管理
|
||
function showContract(proid,type){
|
||
console.log(proid)
|
||
console.log(type)
|
||
localStorage.setItem("ContractProid", proid);
|
||
localStorage.setItem("ContractType", type);
|
||
var index = top.layer.open({
|
||
title: false,
|
||
type: 2,
|
||
content: '../../page/contract/contractInfo.html',
|
||
area: ['90%', '90%'],
|
||
maxmin: false
|
||
});
|
||
}
|