123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- $(function() {
- $("#wzkp-type li").on("click", function(elm) {
- var type = elm.target.getAttribute("data-type");
- var yeartype = $("#wzkp-yeartype").find("li.layui-this")[0].getAttribute("data-type");
- getWebsiteRating(parseInt(yeartype), parseInt(type));
- console.log($(this).attr('data-type'))
- });
- $("#wzkp-yeartype li").on("click", function(elm) {
- $('#monInput').val('');
- if ($(this).attr('data-type') == 0) {
- $('#monInput').removeClass('layui-hide');
- } else {
- $('#monInput').addClass('layui-hide');
- }
- var yeartype = elm.target.getAttribute("data-type");
- var type = $("#wzkp-type").find("li.layui-this")[0].getAttribute("data-type");
- getWebsiteRating(parseInt(yeartype), parseInt(type));
- });
-
- });
- /**
- * 网站评分统计
- * @param {Object} type 0、月度;1、季度;2、半年;3、年度;
- * @param {Object} hasDept 1、部门;0、街镇;
- * @param {Object} childrenType 月度:1-12月份;季度:0、第一季度;1、1-2季度;2、1-3季度;3、1-4季度; 半年:0、上半年;1、下半年;年度:年份,例:2021
- * @param {Object} deptId 部门id
- */
- function getWebsiteRating(type, hasDept, childrenType, deptId, dBasic) {
- switch (type) {
- case 0:
- // childrenType = new Date().getMonth() + 1;
- break;
- case 1:
- var month = new Date().getMonth() + 1;
- if (month <= 3) {
- childrenType = 0;
- } else if (month <= 6) {
- childrenType = 1;
- } else if (month <= 9) {
- childrenType = 2;
- } else {
- childrenType = 3;
- }
- break;
- case 2:
- var month = new Date().getMonth() + 1;
- if (month > 6) {
- childrenType = 1;
- } else {
- childrenType = 0;
- }
- break;
- case 3:
- childrenType = new Date().getFullYear();
- break;
- default:
- break;
- }
- post('/tj/websiteRating', true, {
- "type": (type != null) ? type : 0,
- "hasDept": (hasDept != null) ? hasDept : 1,
- "childrenType": childrenType,
- "deptId": deptId,
- "newMon": $('#monInput').val()
- }, function(res) {
- // console.log(res)
- var data = res.data;
- if (data) {
- initBarChartData(data, deptId, hasDept, type, dBasic);
- } else {
- emptyChart();
- }
- }, function(err) {
- emptyChart();
- });
- }
- /**
- * 空数据
- */
- function emptyChart() {
- initBarChartData({
- "yData": [],
- "basic": [],
- "add": []
- });
- }
- /**
- * 初始化图表
- * @param {Object} data
- * @param {Object} deptId
- */
- function initBarChartData(data, deptId, hasDept, type, dBasic) {
- if (deptId) {
- iniatWzkpDetailTable(data.event, dBasic);
- drawWzkpEchart(data["detail-x"], data["detail-data"]);
- return;
- }
- $("#web_Assessment").removeAttr("_echarts_instance_").empty();
- var basic = data.basic;
- var add = data.add;
- let rankSituation=[] //用来存储部门排名情况
- var total = [];
- for (var i = 0; i < basic.length; i++) {
- total.push((basic[i] * 100 + add[i] * 100)/100);
- }
- var totalRanking = {};
- var deptNames = [];
- let nowY = data.yData;
- for (var i = nowY.length - 1; i >= 0; i--) {
- deptNames.push(nowY[i]);
- }
- if (data.lastMonth) {
- let lastBasic = data.lastMonth.basic;
- let lastAdd = data.lastMonth.add;
- let lastTotal = [];
- for (var i = 0; i < lastBasic.length; i++) {
- lastTotal.push(lastBasic[i] + lastAdd[i]);
- }
- let lastY = data.lastMonth.yData;
- lastY.reverse();
- // var deptNames = [];
- // let nowY = data.yData;
- // for (var i = nowY.length - 1; i >= 0; i--) {
- // deptNames.push(nowY[i]);
- // }
- for (var i = 0; i < deptNames.length; i++) {
- let index = getArrayIndex(lastY, deptNames[i]);
- console.log(deptNames[i]+",i:"+i+",index:"+index)
- totalRanking[deptNames[i]] = index - i;
- rankSituation.push(index-i)
- }
- }
- var copyTotal=total.slice();
- var totalScore=copyTotal.reverse()
- /**
- * 渲染表格
- */
- let mergeRank = '';
- let cssStr = 'padding-bottom: 1px;padding-top: 0px;';
- $('.tableContent').prev().find('th').eq(0).text('部门');
- if (hasDept == 0 || $('#wzkp-type').find('.layui-this').eq(0).attr('data-type') == 0) {
- cssStr = 'padding-bottom: 18px;padding-top: 9px;';
- $('.tableContent').prev().find('th').eq(0).text('街镇');
- }
- for (let i = 0, j = data.basic.length - 1; i <deptNames.length, j >= 0; i++, j--) {
- let mergeDept='<tr><td style="'+ cssStr +'">'+deptNames[i]+'</td><td style="'+ cssStr +'">'+totalScore[i]
- + '(' + (data.basic)[j] + '/' + (data.add)[j] +')</td><td style="'+ cssStr +'">'+(i+1)+'</td>'
- if (!rankSituation || rankSituation.length == 0) {
- mergeRank +=mergeDept+'<td style="'+ cssStr +'"></td></tr>'
- } else {
- if(rankSituation[i] >= 0){
- mergeRank +=mergeDept+'<td style="'+ cssStr +'"><img src="../page/img/rise.png" style="position: revert;margin-right:5px;"><span>'+rankSituation[i]+'</span></td></tr>'
- }else{
- mergeRank +=mergeDept+'<td style="'+ cssStr +'"><img src="../page/img/fall.png" style="position: revert;margin-right:5px;"><span>'+rankSituation[i]+'</span></td></tr>'
- }
- }
-
- }
- let ssType = $('#wzkp-yeartype').find('.layui-this').eq(0).attr('data-type');
- if (type == 1 || ssType == 1) {
- $('.tableContent').prev().find('th').eq(3).text('环比上季度排名');
- } else if (type == 2 || ssType == 2) {
- $('.tableContent').prev().find('th').eq(3).text('环比上半年排名');
- } else if (type == 3 || ssType == 3) {
- $('.tableContent').prev().find('th').eq(3).text('环比上年排名');
- } else {
- $('.tableContent').prev().find('th').eq(3).text('环比上月排名');
- }
- $(".tableContent").empty().append(mergeRank);
- // deptNames.reverse();
- var ppChartDom = document.getElementById('web_Assessment');
- var ppMyChart = echarts.init(ppChartDom);
- var ppOption = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- },
- formatter: function (params, ticket, callback) {
- var html = params[0].name + '</br>';
- var socre = 0;
- for (var i = 0; i < params.length; i++) {
- socre += params[i].value;
- html += params[i].marker + ' ' + params[i].seriesName + ':' + params[i].value + '分</br>';
- }
- // html += '<span style=\"display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:#FFFFFF;\"></span> 总分:' + socre + '分';
- return html;
- }
- },
- legend: {},
- grid: {
- left: '1%',
- right: '4%',
- bottom: '3%',
- containLabel: true
- },
- xAxis: {
- type: 'value'
- },
- yAxis: {
- type: 'category',
- data: data.yData,
- axisLabel: {
- formatter: function(value, index) {
- return '';
- }
- }
- },
- series: [{
- name: '基础分',
- type: 'bar',
- stack: 'total',
- label: {
- // show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: data.basic
- },
- {
- name: '加分',
- type: 'bar',
- stack: 'total',
- label: {
- // show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: data.add,
- }, {
- name: '总分',
- type: 'bar',
- stack: '',
- label: {
- normal: {
- show: true,
- position: 'right',
- color: '#000',
- // formatter: function (params, ticket, callback) {
- // let index = totalRanking[params.name];
- // let yeartype = $("#wzkp-yeartype").find("li.layui-this")[0].getAttribute("data-type");
- // if (yeartype != 0) {
- // return params.data;
- // }
- // if (!index) {
- // return params.data + ' -';
- // }
- // if (index < 0) {
- // return params.data + ' {b|}' + Math.abs(index)
- // } else {
- // return params.data + ' {a|}' + Math.abs(index)
- // }
- // },
- rich: {
- a: {
- fontFamily: 'layui-icon',
- fontSize: 16,
- fontStyle: 'normal',
- backgroundColor: {
- image: '../page/img/icon-up.png'
- }
- },
- b: {
- fontFamily: 'layui-icon',
- fontSize: 16,
- fontStyle: 'normal',
- backgroundColor: {
- image: '../page/img/icon-down.png'
- }
- }
- }
- }
- },
- z: -1,
- barGap: '-100%',
- data: total
- }
- ]
- };
- ppOption && ppMyChart.setOption(ppOption);
- ppMyChart.on('click', function(res) {
- document.querySelector('#mdetail').scrollIntoView(true);
- $("#wzkp-title").text(data.yData[res.dataIndex]);
- var sortName = "第" + (data.yData.length - res.dataIndex) + "名";
- $("#wzkp-sort").text(sortName);
- var gradeName = (parseFloat(data.add[res.dataIndex]) + parseFloat(data.basic[res.dataIndex])).toFixed(
- 2);
- $("#wzkp-grade").text(gradeName + "分");
- //重新查询数据
- var yeartype = $("#wzkp-yeartype").find("li.layui-this")[0].getAttribute("data-type");
- var type = $("#wzkp-type").find("li.layui-this")[0].getAttribute("data-type");
- getWebsiteRating(parseInt(yeartype), parseInt(type), null, data.deptids[res.dataIndex], data.basic[res.dataIndex]);
- });
- // 默认数据
- $("#wzkp-title").text(data.yData[data.yData.length - 1]);
- var sortName = "第1名";
- $("#wzkp-sort").text(sortName);
- var gradeName = (parseFloat(data.add[data.yData.length - 1]) + parseFloat(data.basic[data.yData.length - 1]))
- .toFixed(2);
- $("#wzkp-grade").text(gradeName + "分");
- // 图表
- drawWzkpEchart(data["detail-x"], data["detail-data"]);
- // 表格数据
- iniatWzkpDetailTable(data.event, data.basic[data.yData.length - 1]);
- }
- /**
- * 初始化表格数据
- * @param {Object} data
- */
- function iniatWzkpDetailTable(data, dBasic) {
- $("#wzkp-detail-table").empty();
- var _html = '';
- if (data) {
- for (var i = 0; i < data.length; i++) {
- var temp = data[i];
- if (dBasic && dBasic < 80 && !temp.type) {
- continue;
- }
- _html += '<tr>';
- _html += '<td>' + (temp.target ? temp.target : temp.zdyEvent) + '</td>';
- _html += '<td>' + (temp.targetScore ? temp.targetScore : '-') + '</td>';
- _html += '<td>' + (temp.targetRequirement ? temp.targetRequirement : '-') + '</td>';
- _html += '<td>' + (temp.event ? temp.event : '-') + '</td>';
- _html += '<td>' + (temp.targetDeduct ? temp.targetDeduct : temp.zdyEvent) + '</td>';
- if (temp.type) {
- _html += '<td>-' + (temp.score ? temp.score : temp.addscore) + '</td>';
- // _html += '<td>' + temp.finalscore + '</td>';
- } else {
- // _html += '<td>-</td>';
- _html += '<td>' + temp.addscore + '</td>';
- }
- _html += '</tr>';
- }
- }
- $("#wzkp-detail-table").html(_html);
-
- var h = $('#wzkp-detail-table').height();
- var h_total = h + 150;
- $("#test").css("height",h_total+"px");
- }
- /*
- * 动态改变表格高度
- * */
- /**
- * 绘制图表折线图
- * @param {Object} data
- */
- function drawWzkpEchart(x, data) {
- var abChartDom = document.getElementById('webStates');
- var abMyChart = echarts.init(abChartDom);
- var abOption = {
- tooltip: {
- trigger: 'axis',
- formatter: function (params, ticket, callback) {
- var html = params[0].name + '</br>';
- var socre = 0;
- for (var i = 0; i < params.length; i++) {
- socre += params[i].value;
- html += params[i].marker + ' ' + params[i].value + '分</br>';
- }
- return html;
- }
- },
- title: {
- text: '单位:(分)'
- },
- xAxis: {
- type: 'category',
- data: x
- },
- yAxis: {
- type: 'value'
- },
- series: [{
- data: data,
- type: 'line',
- }]
- };
- abOption && abMyChart.setOption(abOption);
- }
- function getArrayIndex(arr, obj) {
- var i = arr.length;
- while (i--) {
- if (arr[i] === obj) {
- return i;
- }
- }
- return -1;
- }
|