var year = new Date().getFullYear(); var x_m_array = new Array(); var x_m_array_temp = new Array(); var months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']; var monthsCH = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']; var array_year_score = new Array(); var array_check_type = new Array(); var user_id = 2524; // 用户假数据 var score_statistics; var check_type; var cur_status; var hide = false; var array_points = new Array(); var array_points2 = new Array(); // 默认初始化日期一个月 $(".div-start input").val(new Date().getFullYear() + "-" + (new Date().getMonth() > 10 ? new Date().getMonth() : "0" + new Date().getMonth()) + "-26"); $(".div-end input").val(new Date().getFullYear() + "-" + (new Date().getMonth() + 1 > 10 ? new Date().getMonth() + 1 : "0" + (new Date().getMonth() + 1)) + "-25"); var start_date = dateChange(moment($(".div-start input").val() + " 00:00:00"), 60 * 60 * 1000); var end_date = $(".div-end input").val() + " 23:00:00"; /** * 预加载方法 */ $(function() { setVisit(); var temp_time = $.zui.store.get('page_data_param_temp_time'); if (temp_time) { var year = temp_time.split('/')[0]; var month = temp_time.split('/')[1]; var starty = year; var startm = parseInt(month) - 1; if (startm <= 0) { startm = 12; starty = parseInt(year) - 1; } $(".div-start input").val(starty + '-' + (startm >= 10 ? startm : ("0" + startm)) + '-26'); $(".div-end input").val(year + '-' + month + '-25'); $.zui.store.set('page_data_param_temp_time', null) } //*************************************数据表格****************************************** function initAppealPage(start_date, end_date, user_id) { initQueryParams(); queryAppeal(start_date, end_date, user_id); } function initQueryParams() { //获取页面参数 var page_params = $.zui.store.get("page_params"); if (page_params && page_params.status) { cur_status = page_params.status; } } function queryAppeal(start_date, end_date, user_id) { $("#station_name").html($("#select-dept").find("option:selected").text()) $("#station_user_name").html("-") //请求数据 var data_t = { "start_date": start_date, "end_date": end_date, "user_id": user_id } var url_t = "/statistics/employee/order/detail" post_common_service(url_t, data_t, function(res) { $("#c_dept_ranking").html("-"); $("#c_com_ranking").html("-"); $("#c_score_ranking").html("-"); $("#l_dept_ranking").html("-"); $("#l_com_ranking").html("-"); $("#l_score_ranking").html("-"); if (typeof(res.user) != undefined && res.user != null) { $("#station_user_name").html(res.user.position_name) } var isshow_c = false; var isshow_l = false; if (typeof(res.currentP) != undefined && res.currentP != null) { var p = res.currentP; $("#c_dept_ranking").html(p.fee_station_ranking == undefined ? "-" : p.fee_station_ranking); $("#c_com_ranking").html(p.company_ranking == undefined ? "-" : p.company_ranking); $("#c_score_ranking").html(p.check_all_score + p.check_all_m_score); $("#c_road_ranking").html(p.center_ranking == undefined ? "-" : p.center_ranking); isshow_c = true; } if (typeof(res.lastP) != undefined && res.lastP != null) { var p = res.lastP; $("#l_dept_ranking").html(p.fee_station_ranking == undefined ? "-" : p.fee_station_ranking); $("#l_com_ranking").html(p.company_ranking == undefined ? "-" : p.company_ranking); $("#l_score_ranking").html(p.check_all_score + p.check_all_m_score); $("#l_road_ranking").html(p.center_ranking == undefined ? "-" : p.center_ranking); isshow_l = true; } if (isshow_c && isshow_l) { var p_c = res.currentP; var p_l = res.lastP; if (p_c.fee_station_ranking != undefined && p_l.fee_station_ranking != undefined) { var dept_r = p_c.fee_station_ranking - p_l.fee_station_ranking; if (dept_r != 0) { $("#c_dept_ranking").html($("#c_dept_ranking").html() + "" + Math.abs(dept_r) + ""); } var com_r = p_c.company_ranking - p_l.company_ranking; if (com_r != 0) { $("#c_com_ranking").html($("#c_com_ranking").html() + "" + Math.abs(com_r) + ""); } var road_r = p_c.center_ranking - p_l.center_ranking; if (road_r != 0) { $("#c_road_ranking").html($("#c_road_ranking").html() + "" + Math.abs(road_r) + ""); } } } }, function(error) {}) $.ajax({ type: "OPTIONS", url: base_ui_url, complete: function(x) { //计算当前周期 var now_date_time = moment(new Date(x.getResponseHeader("Date"))) var current_start_date = null; if (now_date_time.date() >= 26) { current_start_date = moment(now_date_time.format("YYYY-MM") + "-25 23:00:00Z").subtract(0, "month"); } else { current_start_date = moment(now_date_time.format("YYYY-MM") + "-25 23:00:00Z").subtract(1, "month"); } var end_date_time = moment(end_date + "Z"); if (end_date_time.valueOf() > current_start_date.valueOf()) { if (hasRole(ROLE_STATION_ADMIN) || hasRole(ROLE_STATION) || roleContains('STATION')) { $(".score-select").val(1) } } var data = { "start_date": start_date, "end_date": end_date, "user_id": user_id, "queryType": 0, } if ($(".score-select").val() == "0") { data["score_flag"] = 0; } if ($(".score-select").val() == "1") { data["score_flag"] = 1; } if (hasRole(ROLE_STATION_ADMIN) || hasRole(ROLE_STATION) || hasRole(ROLE_JICHA) || roleContains('STATION')) { hide = true; } var cols = [ { width: 50, text: '序号', flex: true, colClass: 'text-center', field: 'num' }, { width: 100, text: '时间段', flex: true, colClass: 'text-center', field: 'check_task_time_name' }, { width: 80, text: '扣分人', flex: true, colClass: 'text-center', field: 'checked_name' }, { width: 40, text: '扣分数', flex: true, colClass: 'text-center', field: 'score', nullvalue: '0' }, { width: 100, text: '考核类型', flex: true, colClass: 'text-center', sort: 'down', field: 'parent_name' }, { width: 100, text: '考核项', flex: true, colClass: 'text-center', sort: 'down', field: 'name' }, { width: 100, text: '扣分凭证', type: 'imagedd', flex: true, hide: hide, field: 'pics' }, ]; if (cur_status == 12 || cur_status == 13) { data.check_status_arr = [12, 13]; } $('#personal_data_table').mytable({ 'cols': cols, 'url': "/statistics/one/checkedItem/detail/info", 'param': data }); } }) } //*************************************画图****************************************** // 加载图配置 echart(); $(".query button").click(function() { var user_id = $("#select-personal").val(); var start_date = dateChange(new Date($(".div-start input").val() + " 00:00:00"), 60 * 60 * 1000); var end_date = $(".div-end input").val() + " 23:00:00"; var startStr = start_date.replace(/-/g, '/'); var endStr = end_date.replace(/-/g, '/'); var start = new Date(startStr); var end = new Date(endStr); if (start > end) { tip("开始时间不能比结束时间大"); return; } if ($("#select-personal").text() == '') { tip("请选择收费站"); return; } // 查询图一 init_personal_score_statistics("statistics/one/person/year/info", user_id); // 查询图二 init_personal_check_type("statistics/one/person/checkedItem/info", user_id, start_date, end_date); // 表格 initAppealPage(start_date, end_date, user_id); // 加载图配置 echart(); }); /** * 初始化图一 * @param {*} url * @param {*} dept_id */ function init_personal_score_statistics(url, user_id) { var end_date = $(".div-end input").val() + " 23:00:00"; var date = moment(end_date); var y = date.get('y'); var m = date.get('M') + 1; x_m_array = new Array(); for (var i = 1; i <= 12; i++) { var month = parseInt(m) + i; var starty = parseInt(y) - 1 if (month > 12) { month = month - 12; starty = y; } x_m_array.push(starty + "/" + (month >= 10 ? month : ("0" + month))); } var param = { "start_date": (y - 1) + "-" + new Date().getMonth() + "-25" + " 23:00:00", "end_date": y + "-" + (new Date().getMonth() + 1) + "-25" + " 23:00:00", "user_id": user_id } initRqueset(url, param, 1); } /** * 初始化图二 * @param {*} url * @param {*} dept_id */ function init_personal_check_type(url, user_id, start_date, end_date) { var param = { "start_date": start_date, "end_date": end_date, "user_id": user_id } initRqueset(url, param, 2); } /** * 请求 * @param {*} url * @param {*} param * @param {*} type */ function initRqueset(url, param, type) { post_common_service(url, param, function(data) { data_array(data, type); if (type == 1) { // 画图 score_statistics.setOption(personal_score_statistics()); } else if (type == 2) { // 画图 check_type.setOption(personal_check_type()); } }, function(error) { return ""; }); } function getsymbol(score) { var sy = 'emptyCircle'; var col = 'green' if (score == 1000) { sy = "emptystar" col = 'red' } else if (score > 990) { sy = "emptystar" col = 'orange' } else { sy = "emptyTriangle" col = 'green' } // itemStyle: { // 数据级个性化折线样式 // normal: { // color: 'yellowgreen' // }, // } return { value: (score), symbol: sy, symbolSize: 5, itemStyle: { normal: { color: col } } }; } /** * 数组数据 * @param {*} data * @param {*} type */ function data_array(data, type) { if (type == 1) { array_year_score.length = 0; if (data != '' && data.length != 0) { x_m_array_temp = new Array(); for (var i = 0; i < x_m_array.length; i++) { var index = -1; for (var j = 0; j < data.length; j++) { if (x_m_array[i] == data[j].mth) { index = j; break; } } if (index < 0) { } else { x_m_array_temp.push(x_m_array[i]); var score = (1000 - (filter(data[index].all_check_score, data[index].checked_num, 1.0, 0))); var data_s = getsymbol(score) // console.log(data_s) array_year_score.push(data_s); } } } else { array_year_score.length = 0; x_m_array = new Array(); x_m_array_temp = new Array(); } // months.length = 0; // if (data.length != 0) { // if (data.length < 14) { // for (var i = 0; i < 14 - data.length; i++) { // array_year_score.push(0) // } // } // var month_arr = month_method_2(); // for (var i = 0; i < data.length; i++) { // if (month_arr.indexOf(parseInt(data[i].mth))) { // // 指定位置插入值 // array_year_score.splice(month_arr.indexOf(data[i].mth), 0, // (1000 - (filter(data[i].all_check_score, data[i].checked_num, 0)))); // } // } // } else { // array_year_score.length = 0; // } } else if (type == 2) { array_points = new Array(); array_points2 = new Array(); var map = new HashMap(); if (data.length != 0) { for (var i = 0; i < data.length; i++) { if (typeof(data[i].all_check_score) == "undefined" || data[i].all_check_score == null) continue; if (map.get(data[i].name) == null) { map.set(data[i].name, data[i].all_check_score); } else { map.set(data[i].name, map.get(data[i].name) + data[i].all_check_score); } array_points2.push({ "value": (data[i].all_check_score), "name": data[i].checked_name + ($("#select-personal").val() == data[i].user_id ? "" : "(组员)") + " " + data[i].name, "itemStyle": { "normal": { "color": getchildColor(data[i].name, i).hexStr() } } }); } } map.forEach(function(value, key) { array_points.push({ "value": value, "name": key, "itemStyle": { "normal": { "color": getColor(key).hexStr() } } }); }); // array_points.push({ "value": (data.total0), "name": '满分', "itemStyle": { "normal": { "color": '#48CCCD' } } }); // array_points.push({ "value": data.total15, "name": '0-15分', "itemStyle": { "normal": { "color": '#38ACEC' } } }); // array_points.push({ "value": data.total50, "name": '15-50分', "itemStyle": { "normal": { "color": '#FFD801' } } }); // array_points.push({ "value": data.totalOver50, "name": '50分以上', "itemStyle": { "normal": { "color": '#7F38EC' } } }); // array_points2.push({ "value": temp[0], "name": '连云港道管', "itemStyle": { "normal": { "color": '#7BCCB5' } } }); // array_check_type.length = 0; // if (data.length != 0) { // for (var i = 0; i < data.length; i++) { // array_check_type.push({ "value": data[i].all_check_score, "name": data[i].name }); // } // } else { // array_check_type.length = 0; // } } } $("#select-personal").click(function() { if ($("#select-personal").text() == '') { tip("请选择收费站"); return; } }); var userid_t = $.zui.store.get("page_params").userid var dept_t = $.zui.store.get("page_params").deptid // 收费站下拉框 var dept; if (roleContains("STATION")) { dept = getCurrentUser().organid; } if (dept_t) { dept = dept_t; } var roadManager; if (roleContains("ROAD_MANAGER")) { roadManager = getCurrentUser().organid; } var feeList = $.zui.store.get("cache_fee_station_list"); if (roadManager) feeList = cache_road_manager_fee_list_map.get(roadManager); setFeeSelectValueNoAll(feeList, "#select-dept", dept); setSecond(); /** * 部门人员下拉框 */ function setSecond() { var select_road = $("#select-dept").val(); var sec = document.getElementById('select-personal'); var tempStr = '' var param = { "organid": select_road } post_common_service("user/getFsUserList", param, function(data) { if (data.length != 0) { var userId; if (hasRole("ROLE_STATION")) { userId = getCurrentUser().id; } if (userid_t) { userId = userid_t; } for (var i = 0; i < data.length; i++) { for (var j = 33; j <= 53; j++) { if (select_road == j) { if (data[i].id == userId) { tempStr += ""; } else { tempStr += ""; } } } sec.innerHTML = tempStr; } } else { sec.innerHTML = ''; } // 请求数据 getInit(); }, function(error) { return ""; }); } function getInit() { var start_date = dateChange(moment($(".div-start input").val() + " 00:00:00"), 60 * 60 * 1000); var end_date = $(".div-end input").val() + " 23:00:00"; var user_id = $("#select-personal").val(); // 页面初始化 echart(); initAppealPage(start_date, end_date, user_id); init_personal_score_statistics("statistics/one/person/year/info", user_id); init_personal_check_type("statistics/one/person/checkedItem/info", user_id, start_date, end_date); } $("#select-dept").change(function() { setSecond(); }); $("#select-personal").change(function() { getInit(); }) /** * 除数为0处理 * @param {*} num * @param {*} num1 * @param {*} num2 * @param {*} num4 */ function filter(num, num1, num2) { if (num1 == 0) { return num2; } else { return (num / num1).toFixed(2); } } function echart() { // 路径配置 require.config({ paths: { echarts: '/js/lib/echarts/build/dist' } }); // 使用 require( [ 'echarts', 'echarts/theme/macarons', 'echarts/chart/line', 'echarts/chart/pie' ], function(ec, theme) { // 基于准备好的dom,初始化echarts图表 score_statistics = ec.init(document.getElementById('personal-score-statistics'), theme); check_type = ec.init(document.getElementById('personal-check-type'), theme); } ); } /** * 图一 */ function personal_score_statistics() { option = { color: ['#00ced1'], tooltip: { trigger: 'axis' }, noDataLoadingOption: { text: '暂无数据', effect: 'bubble', effectOption: { effect: { n: 0 //气泡个数为0 } }, textStyle: { fontSize: 20, fontFamily: 'cursive', fontWeight: 'bold' } }, grid: { width: "75%" }, legend: { data: ['平均分'] }, toolbox: { show: true, }, calculable: true, xAxis: [{ type: 'category', boundaryGap: false, data: x_m_array_temp }], yAxis: [{ type: 'value', min: 700, max: 1000, axisLabel: { formatter: '{value}' } }], series: [{ name: '平均分', type: 'line', data: array_year_score, // markPoint: { // data: [ // { type: 'max', name: '最大值' }, // { type: 'min', name: '最小值' } // ] // }, // markLine: { // data: [ // { type: 'average', name: '平均值' } // ] // } }, ] }; return option; } /** * 图二 */ function personal_check_type() { // option = { // tooltip: { // trigger: 'item', // formatter: "个人服务检查问题占比
{b} : {c}分 ({d}%)" // }, // noDataLoadingOption: { // text: '暂无数据', // effect: 'bubble', // effectOption: { // effect: { // n: 0 //气泡个数为0 // } // }, // textStyle: { // fontSize: 20, // fontFamily: 'cursive', // fontWeight: 'bold' // } // }, // toolbox: { // show: true, // feature: { // magicType: { // type: ['pie', 'funnel'], // option: { // funnel: { // x: '25%', // width: '50%', // funnelAlign: 'left', // max: 1548 // } // } // }, // } // }, // calculable: true, // series: [{ // name: '访问来源', // type: 'pie', // radius: '55%', // center: ['50%', '50%'], // data: array_check_type, // itemStyle: { // normal: { // label: { // show: true, // formatter: '{b} :\n{c}分 ({d}%)' // }, // labelLine: { show: true } // } // } // }] // }; option = { tooltip: { trigger: 'item', formatter: "个人温馨服务检查问题类别占比
{b} : {c}分 ({d}%)" }, noDataLoadingOption: { text: '暂无数据', effect: 'bubble', effectOption: { effect: { n: 0 //气泡个数为0 } }, textStyle: { fontSize: 20, fontFamily: 'cursive', fontWeight: 'bold' } }, toolbox: { show: true, }, calculable: false, series: [{ name: '访问来源', type: 'pie', selectedMode: 'single', radius: [0, 80], // for funnel x: '20%', width: '40%', funnelAlign: 'right', max: 1548, itemStyle: { normal: { label: { show: true, formatter: '{b}:\n{c}分({d}%)', textStyle: { alias: 'center', fontSize: 10, color: '#888' } }, labelLine: { show: true, length: 80, lineStyle: { color: '#888' } } } }, data: array_points }, { name: '访问来源', type: 'pie', radius: [100, 125], // for funnel x: '60%', width: '35%', funnelAlign: 'left', max: 1048, itemStyle: { normal: { label: { show: false, formatter: '{b}:{c}人({d}%)' }, labelLine: { show: false } } }, data: array_points2 } ] }; return option; } }); function setVisit() { if (roleContains("STATION")) { $("#select-dept").attr("disabled", "disabled"); } if (hasRole("ROLE_STATION")) { $("#select-personal").attr("disabled", "disabled"); } } function getColor(name) { var color = new $.zui.Color('#52D017'); switch (name) { case "环境卫生": { color = new $.zui.Color('#52D017'); break; } case "仪容仪表着装": { color = new $.zui.Color('#00FFFF'); break; } case "动作": { color = new $.zui.Color('#7F38EC'); break; } case "表情": { color = new $.zui.Color('#FFA500'); break; } case "文明用语": { color = new $.zui.Color('#0000A0'); break; } case "环境卫生": { color = new $.zui.Color('#52D017'); break; } case "工作纪律及行为举止": { color = new $.zui.Color('#48CCCD'); break; } case "便民服务": { color = new $.zui.Color('#FFFF00'); break; } case "安全管理": { color = new $.zui.Color('#00FF00'); break; } } return color; } function getchildColor(name, p) { var color1 = getColor(name); var color = new $.zui.Color(color1.r - p * 20, color1.g - p * 20, color1.b - p * 20); return color; }