personal_data_statistics.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879
  1. var year = new Date().getFullYear();
  2. var x_m_array = new Array();
  3. var x_m_array_temp = new Array();
  4. var months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];
  5. var monthsCH = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
  6. var array_year_score = new Array();
  7. var array_check_type = new Array();
  8. var user_id = 2524; // 用户假数据
  9. var score_statistics;
  10. var check_type;
  11. var cur_status;
  12. var hide = false;
  13. var array_points = new Array();
  14. var array_points2 = new Array();
  15. var tdaytime = moment();
  16. var start_time = "";
  17. var end_time = "";
  18. if (tdaytime.get('D') >= 26) {
  19. start_time = tdaytime.set('date', 26).format("YYYY-MM-DD");
  20. tdaytime = moment();
  21. end_time = tdaytime.set('date', 25).add(1, 'M').format("YYYY-MM-DD");
  22. } else {
  23. start_time = tdaytime.set('date', 26).subtract(1, 'M').format("YYYY-MM-DD");
  24. tdaytime = moment();
  25. end_time = tdaytime.set('date', 25).format("YYYY-MM-DD");
  26. }
  27. // 默认初始化日期一个月
  28. $(".div-start input").val(start_time);
  29. $(".div-end input").val(end_time);
  30. var start_date = dateChange(moment($(".div-start input").val() + " 00:00:00"), 60 * 60 * 1000);
  31. var end_date = $(".div-end input").val() + " 23:00:00";
  32. /**
  33. * 预加载方法
  34. */
  35. $(function() {
  36. setVisit();
  37. var temp_time = $.zui.store.get('page_data_param_temp_time');
  38. if (temp_time) {
  39. var year = temp_time.split('/')[0];
  40. var month = temp_time.split('/')[1];
  41. var starty = year;
  42. var startm = parseInt(month) - 1;
  43. if (startm <= 0) {
  44. startm = 12;
  45. starty = parseInt(year) - 1;
  46. }
  47. $(".div-start input").val(starty + '-' + (startm >= 10 ? startm : ("0" + startm)) + '-26');
  48. $(".div-end input").val(year + '-' + month + '-25');
  49. $.zui.store.set('page_data_param_temp_time', null)
  50. }
  51. //*************************************数据表格******************************************
  52. function initAppealPage(start_date, end_date, user_id) {
  53. initQueryParams();
  54. queryAppeal(start_date, end_date, user_id);
  55. }
  56. function initQueryParams() {
  57. //获取页面参数
  58. var page_params = $.zui.store.get("page_params");
  59. if (page_params && page_params.status) {
  60. cur_status = page_params.status;
  61. }
  62. }
  63. function queryAppeal(start_date, end_date, user_id) {
  64. $("#station_name").html($("#select-dept").find("option:selected").text())
  65. $("#station_user_name").html("-")
  66. //请求数据
  67. var data_t = {
  68. "start_date": start_date,
  69. "end_date": end_date,
  70. "user_id": user_id
  71. }
  72. var url_t = "/statistics/employee/order/detail"
  73. post_common_service(url_t, data_t, function(res) {
  74. $("#c_dept_ranking").html("-");
  75. $("#c_com_ranking").html("-");
  76. $("#c_score_ranking").html("-");
  77. $("#l_dept_ranking").html("-");
  78. $("#l_com_ranking").html("-");
  79. $("#l_score_ranking").html("-");
  80. if (typeof(res.user) != undefined && res.user != null) {
  81. $("#station_user_name").html(res.user.position_name)
  82. }
  83. var isshow_c = false;
  84. var isshow_l = false;
  85. if (typeof(res.currentP) != undefined && res.currentP != null) {
  86. var p = res.currentP;
  87. $("#c_dept_ranking").html(p.fee_station_ranking == undefined ? "-" : p.fee_station_ranking);
  88. $("#c_com_ranking").html(p.company_ranking == undefined ? "-" : p.company_ranking);
  89. $("#c_score_ranking").html(p.check_all_score + p.check_all_m_score);
  90. $("#c_road_ranking").html(p.center_ranking == undefined ? "-" : p.center_ranking);
  91. isshow_c = true;
  92. }
  93. if (typeof(res.lastP) != undefined && res.lastP != null) {
  94. var p = res.lastP;
  95. $("#l_dept_ranking").html(p.fee_station_ranking == undefined ? "-" : p.fee_station_ranking);
  96. $("#l_com_ranking").html(p.company_ranking == undefined ? "-" : p.company_ranking);
  97. $("#l_score_ranking").html(p.check_all_score + p.check_all_m_score);
  98. $("#l_road_ranking").html(p.center_ranking == undefined ? "-" : p.center_ranking);
  99. isshow_l = true;
  100. }
  101. if (isshow_c && isshow_l) {
  102. var p_c = res.currentP;
  103. var p_l = res.lastP;
  104. if (p_c.fee_station_ranking != undefined && p_l.fee_station_ranking != undefined) {
  105. var dept_r = p_c.fee_station_ranking - p_l.fee_station_ranking;
  106. if (dept_r != 0) {
  107. $("#c_dept_ranking").html($("#c_dept_ranking").html() + "<i style='margin-left:10px;color:" + (dept_r > 0 ? "red" : "#0aef3d") + "' class='icon icon-long-arrow-" + (dept_r > 0 ? "down" : "up") + "'>" + Math.abs(dept_r) + "</i>");
  108. }
  109. var com_r = p_c.company_ranking - p_l.company_ranking;
  110. if (com_r != 0) {
  111. $("#c_com_ranking").html($("#c_com_ranking").html() + "<i style='margin-left:10px;color:" + (com_r > 0 ? "red" : "#0aef3d") + "' class='icon icon-long-arrow-" + (com_r > 0 ? "down" : "up") + "'>" + Math.abs(com_r) + "</i>");
  112. }
  113. var road_r = p_c.center_ranking - p_l.center_ranking;
  114. if (road_r != 0) {
  115. $("#c_road_ranking").html($("#c_road_ranking").html() + "<i style='margin-left:10px;color:" + (road_r > 0 ? "red" : "#0aef3d") + "' class='icon icon-long-arrow-" + (road_r > 0 ? "down" : "up") + "'>" + Math.abs(road_r) + "</i>");
  116. }
  117. }
  118. }
  119. }, function(error) {})
  120. $.ajax({
  121. type: "OPTIONS",
  122. url: base_ui_url,
  123. complete: function(x) {
  124. //计算当前周期
  125. var now_date_time = moment(new Date(x.getResponseHeader("Date")))
  126. var current_start_date = null;
  127. if (now_date_time.date() >= 26) {
  128. current_start_date = moment(now_date_time.format("YYYY-MM") + "-25 23:00:00Z").subtract(0, "month");
  129. } else {
  130. current_start_date = moment(now_date_time.format("YYYY-MM") + "-25 23:00:00Z").subtract(1, "month");
  131. }
  132. var end_date_time = moment(end_date + "Z");
  133. if (end_date_time.valueOf() > current_start_date.valueOf()) {
  134. if (hasRole(ROLE_STATION_ADMIN) || hasRole(ROLE_STATION) || roleContains('STATION')) {
  135. $(".score-select").val(1)
  136. }
  137. }
  138. var data = {
  139. "start_date": start_date,
  140. "end_date": end_date,
  141. "user_id": user_id,
  142. "queryType": 0,
  143. }
  144. if ($(".score-select").val() == "0") {
  145. data["score_flag"] = 0;
  146. }
  147. if ($(".score-select").val() == "1") {
  148. data["score_flag"] = 1;
  149. }
  150. if (hasRole(ROLE_STATION_ADMIN) || hasRole(ROLE_STATION) || hasRole(ROLE_JICHA) || roleContains('STATION')) {
  151. hide = true;
  152. }
  153. var cols = [
  154. { width: 50, text: '序号', flex: true, colClass: 'text-center', field: 'num' },
  155. { width: 100, text: '时间段', flex: true, colClass: 'text-center', field: 'check_task_time_name' },
  156. { width: 80, text: '扣分人', flex: true, colClass: 'text-center', field: 'checked_name' },
  157. {
  158. width: 80,
  159. text: '部门',
  160. flex: true,
  161. colClass: 'text-center',
  162. field: 'dept_id',
  163. func: function(value) {
  164. return getfeeName(value);
  165. }
  166. },
  167. { width: 40, text: '扣分数', flex: true, colClass: 'text-center', field: 'score', nullvalue: '0' },
  168. { width: 100, text: '考核类型', flex: true, colClass: 'text-center', sort: 'down', field: 'parent_name' },
  169. { width: 100, text: '考核项', flex: true, colClass: 'text-center', sort: 'down', field: 'name' },
  170. { width: 100, text: '扣分凭证', type: 'imagedd', flex: true, hide: hide, field: 'pics' },
  171. ];
  172. if (cur_status == 12 || cur_status == 13) {
  173. data.check_status_arr = [12, 13];
  174. }
  175. $('#personal_data_table').mytable({
  176. 'cols': cols,
  177. 'url': "/statistics/one/checkedItem/detail/info",
  178. 'param': data
  179. });
  180. }
  181. })
  182. }
  183. function getfeeName(id) {
  184. for (var i in feeList) {
  185. var fee = feeList[i];
  186. if (fee.deptid == id) {
  187. return fee.name;
  188. }
  189. }
  190. }
  191. //*************************************画图******************************************
  192. // 加载图配置
  193. echart();
  194. $(".query button").click(function() {
  195. var user_id = $("#select-personal").val();
  196. var start_date = dateChange(new Date($(".div-start input").val() + " 00:00:00"), 60 * 60 * 1000);
  197. var end_date = $(".div-end input").val() + " 23:00:00";
  198. var startStr = start_date.replace(/-/g, '/');
  199. var endStr = end_date.replace(/-/g, '/');
  200. var start = new Date(startStr);
  201. var end = new Date(endStr);
  202. if (start > end) {
  203. tip("开始时间不能比结束时间大");
  204. return;
  205. }
  206. if ($("#select-personal").text() == '') {
  207. tip("请选择收费站");
  208. return;
  209. }
  210. // 查询图一
  211. init_personal_score_statistics("statistics/one/person/year/info", user_id);
  212. // 查询图二
  213. init_personal_check_type("statistics/one/person/checkedItem/info", user_id, start_date, end_date);
  214. // 表格
  215. initAppealPage(start_date, end_date, user_id);
  216. // 加载图配置
  217. echart();
  218. });
  219. /**
  220. * 初始化图一
  221. * @param {*} url
  222. * @param {*} dept_id
  223. */
  224. function init_personal_score_statistics(url, user_id) {
  225. var end_date = $(".div-end input").val() + " 23:00:00";
  226. var date = moment(end_date);
  227. var y = date.get('y');
  228. var m = date.get('M') + 1;
  229. x_m_array = new Array();
  230. for (var i = 1; i <= 12; i++) {
  231. var month = parseInt(m) + i;
  232. var starty = parseInt(y) - 1
  233. if (month > 12) {
  234. month = month - 12;
  235. starty = y;
  236. }
  237. x_m_array.push(starty + "/" + (month >= 10 ? month : ("0" + month)));
  238. }
  239. var param = {
  240. "start_date": (y - 1) + "-" + new Date().getMonth() + "-25" + " 23:00:00",
  241. "end_date": y + "-" + (new Date().getMonth() + 1) + "-25" + " 23:00:00",
  242. "user_id": user_id
  243. }
  244. initRqueset(url, param, 1);
  245. }
  246. /**
  247. * 初始化图二
  248. * @param {*} url
  249. * @param {*} dept_id
  250. */
  251. function init_personal_check_type(url, user_id, start_date, end_date) {
  252. var param = {
  253. "start_date": start_date,
  254. "end_date": end_date,
  255. "user_id": user_id
  256. }
  257. initRqueset(url, param, 2);
  258. }
  259. /**
  260. * 请求
  261. * @param {*} url
  262. * @param {*} param
  263. * @param {*} type
  264. */
  265. function initRqueset(url, param, type) {
  266. post_common_service(url, param, function(data) {
  267. data_array(data, type);
  268. if (type == 1) {
  269. // 画图
  270. score_statistics.setOption(personal_score_statistics());
  271. } else if (type == 2) {
  272. // 画图
  273. check_type.setOption(personal_check_type());
  274. }
  275. }, function(error) {
  276. return "";
  277. });
  278. }
  279. function getsymbol(score) {
  280. var sy = 'Circle';
  281. var col = 'green'
  282. if (score == 1000) {
  283. sy = "star"
  284. col = 'red'
  285. } else
  286. if (score > 990) {
  287. sy = "star"
  288. col = 'orange'
  289. } else {
  290. sy = "Triangle"
  291. col = 'green'
  292. }
  293. // itemStyle: { // 数据级个性化折线样式
  294. // normal: {
  295. // color: 'yellowgreen'
  296. // },
  297. // }
  298. return { value: (score), symbol: sy, symbolSize: 5, itemStyle: { normal: { color: col } } };
  299. }
  300. /**
  301. * 数组数据
  302. * @param {*} data
  303. * @param {*} type
  304. */
  305. function data_array(data, type) {
  306. if (type == 1) {
  307. array_year_score.length = 0;
  308. if (data != '' && data.length != 0) {
  309. x_m_array_temp = new Array();
  310. for (var i = 0; i < x_m_array.length; i++) {
  311. var index = -1;
  312. for (var j = 0; j < data.length; j++) {
  313. if (x_m_array[i] == data[j].mth) {
  314. index = j;
  315. break;
  316. }
  317. }
  318. if (index < 0) {
  319. } else {
  320. x_m_array_temp.push(x_m_array[i]);
  321. var score = (1000 - (filter(data[index].all_check_score, data[index].checked_num, 1.0, 0)));
  322. var data_s = getsymbol(score)
  323. // console.log(data_s)
  324. array_year_score.push(data_s);
  325. }
  326. }
  327. } else {
  328. array_year_score.length = 0;
  329. x_m_array = new Array();
  330. x_m_array_temp = new Array();
  331. }
  332. // months.length = 0;
  333. // if (data.length != 0) {
  334. // if (data.length < 14) {
  335. // for (var i = 0; i < 14 - data.length; i++) {
  336. // array_year_score.push(0)
  337. // }
  338. // }
  339. // var month_arr = month_method_2();
  340. // for (var i = 0; i < data.length; i++) {
  341. // if (month_arr.indexOf(parseInt(data[i].mth))) {
  342. // // 指定位置插入值
  343. // array_year_score.splice(month_arr.indexOf(data[i].mth), 0,
  344. // (1000 - (filter(data[i].all_check_score, data[i].checked_num, 0))));
  345. // }
  346. // }
  347. // } else {
  348. // array_year_score.length = 0;
  349. // }
  350. } else if (type == 2) {
  351. array_points = new Array();
  352. array_points2 = new Array();
  353. var map = new HashMap();
  354. if (data.length != 0) {
  355. for (var i = 0; i < data.length; i++) {
  356. if (typeof(data[i].all_check_score) == "undefined" || data[i].all_check_score == null) continue;
  357. if (map.get(data[i].name) == null) {
  358. map.set(data[i].name, data[i].all_check_score);
  359. } else {
  360. map.set(data[i].name, map.get(data[i].name) + data[i].all_check_score);
  361. }
  362. 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() } } });
  363. }
  364. }
  365. map.forEach(function(value, key) {
  366. array_points.push({ "value": value, "name": key, "itemStyle": { "normal": { "color": getColor(key).hexStr() } } });
  367. });
  368. // array_points.push({ "value": (data.total0), "name": '满分', "itemStyle": { "normal": { "color": '#48CCCD' } } });
  369. // array_points.push({ "value": data.total15, "name": '0-15分', "itemStyle": { "normal": { "color": '#38ACEC' } } });
  370. // array_points.push({ "value": data.total50, "name": '15-50分', "itemStyle": { "normal": { "color": '#FFD801' } } });
  371. // array_points.push({ "value": data.totalOver50, "name": '50分以上', "itemStyle": { "normal": { "color": '#7F38EC' } } });
  372. // array_points2.push({ "value": temp[0], "name": '连云港道管', "itemStyle": { "normal": { "color": '#7BCCB5' } } });
  373. // array_check_type.length = 0;
  374. // if (data.length != 0) {
  375. // for (var i = 0; i < data.length; i++) {
  376. // array_check_type.push({ "value": data[i].all_check_score, "name": data[i].name });
  377. // }
  378. // } else {
  379. // array_check_type.length = 0;
  380. // }
  381. }
  382. }
  383. $("#select-personal").click(function() {
  384. if ($("#select-personal").text() == '') {
  385. tip("请选择收费站");
  386. return;
  387. }
  388. });
  389. var userid_t = $.zui.store.get("page_params").userid
  390. var dept_t = $.zui.store.get("page_params").deptid
  391. // 收费站下拉框
  392. var dept;
  393. if (roleContains("STATION")) {
  394. dept = getCurrentUser().organid;
  395. }
  396. if (dept_t) {
  397. dept = dept_t;
  398. }
  399. var roadManager;
  400. if (roleContains("ROAD_MANAGER")) {
  401. roadManager = getCurrentUser().organid;
  402. }
  403. var feeList = $.zui.store.get("cache_fee_station_list");
  404. if (roadManager) feeList = cache_road_manager_fee_list_map.get(roadManager);
  405. setFeeSelectValueNoAll(feeList, "#select-dept", dept);
  406. setSecond();
  407. /**
  408. * 部门人员下拉框
  409. */
  410. function setSecond() {
  411. var select_road = $("#select-dept").val();
  412. var sec = document.getElementById('select-personal');
  413. var tempStr = ''
  414. var param = {
  415. "organid": select_road
  416. }
  417. post_common_service("user/getFsUserList", param, function(data) {
  418. if (data.length != 0) {
  419. var userId;
  420. if (hasRole("ROLE_STATION")) {
  421. userId = getCurrentUser().id;
  422. }
  423. if (userid_t) {
  424. userId = userid_t;
  425. }
  426. for (var i = 0; i < data.length; i++) {
  427. for (var j = 33; j <= 100; j++) {
  428. if (select_road == j) {
  429. if (data[i].id == userId) {
  430. tempStr += "<option value=" + data[i].id + " selected='selected'>" + data[i].truename + "</option>";
  431. } else {
  432. tempStr += "<option value=" + data[i].id + ">" + data[i].truename + "</option>";
  433. }
  434. }
  435. }
  436. sec.innerHTML = tempStr;
  437. }
  438. } else {
  439. sec.innerHTML = '';
  440. }
  441. // 请求数据
  442. getInit();
  443. }, function(error) {
  444. return "";
  445. });
  446. }
  447. function getInit() {
  448. var start_date = dateChange(moment($(".div-start input").val() + " 00:00:00"), 60 * 60 * 1000);
  449. var end_date = $(".div-end input").val() + " 23:00:00";
  450. var user_id = $("#select-personal").val();
  451. // 页面初始化
  452. echart();
  453. initAppealPage(start_date, end_date, user_id);
  454. init_personal_score_statistics("statistics/one/person/year/info", user_id);
  455. init_personal_check_type("statistics/one/person/checkedItem/info", user_id, start_date, end_date);
  456. }
  457. $("#select-dept").change(function() {
  458. setSecond();
  459. });
  460. $("#select-personal").change(function() {
  461. getInit();
  462. })
  463. /**
  464. * 除数为0处理
  465. * @param {*} num
  466. * @param {*} num1
  467. * @param {*} num2
  468. * @param {*} num4
  469. */
  470. function filter(num, num1, num2) {
  471. if (num1 == 0) {
  472. return num2;
  473. } else {
  474. return (num / num1).toFixed(2);
  475. }
  476. }
  477. function echart() {
  478. // 路径配置
  479. require.config({
  480. paths: {
  481. echarts: '/js/lib/echarts/build/dist'
  482. }
  483. });
  484. // 使用
  485. require(
  486. [
  487. 'echarts',
  488. 'echarts/theme/macarons',
  489. 'echarts/chart/line',
  490. 'echarts/chart/pie'
  491. ],
  492. function(ec, theme) {
  493. // 基于准备好的dom,初始化echarts图表
  494. score_statistics = ec.init(document.getElementById('personal-score-statistics'), theme);
  495. check_type = ec.init(document.getElementById('personal-check-type'), theme);
  496. }
  497. );
  498. }
  499. /**
  500. * 图一
  501. */
  502. function personal_score_statistics() {
  503. option = {
  504. color: ['#00ced1'],
  505. tooltip: {
  506. trigger: 'axis'
  507. },
  508. noDataLoadingOption: {
  509. text: '暂无数据',
  510. effect: 'bubble',
  511. effectOption: {
  512. effect: {
  513. n: 0 //气泡个数为0
  514. }
  515. },
  516. textStyle: {
  517. fontSize: 20,
  518. fontFamily: 'cursive',
  519. fontWeight: 'bold'
  520. }
  521. },
  522. grid: {
  523. width: "75%"
  524. },
  525. toolbox: {
  526. show: true,
  527. },
  528. calculable: true,
  529. xAxis: [{
  530. type: 'category',
  531. boundaryGap: false,
  532. data: x_m_array_temp
  533. }],
  534. yAxis: [{
  535. type: 'value',
  536. min: 700,
  537. max: 1000,
  538. axisLabel: {
  539. formatter: '{value}'
  540. }
  541. }],
  542. series: [{
  543. name: '平均分',
  544. type: 'line',
  545. data: array_year_score,
  546. // markPoint: {
  547. // data: [
  548. // { type: 'max', name: '最大值' },
  549. // { type: 'min', name: '最小值' }
  550. // ]
  551. // },
  552. // markLine: {
  553. // data: [
  554. // { type: 'average', name: '平均值' }
  555. // ]
  556. // }
  557. },
  558. ]
  559. };
  560. return option;
  561. }
  562. /**
  563. * 图二
  564. */
  565. function personal_check_type() {
  566. // option = {
  567. // tooltip: {
  568. // trigger: 'item',
  569. // formatter: "个人服务检查问题占比 <br/>{b} : {c}分 ({d}%)"
  570. // },
  571. // noDataLoadingOption: {
  572. // text: '暂无数据',
  573. // effect: 'bubble',
  574. // effectOption: {
  575. // effect: {
  576. // n: 0 //气泡个数为0
  577. // }
  578. // },
  579. // textStyle: {
  580. // fontSize: 20,
  581. // fontFamily: 'cursive',
  582. // fontWeight: 'bold'
  583. // }
  584. // },
  585. // toolbox: {
  586. // show: true,
  587. // feature: {
  588. // magicType: {
  589. // type: ['pie', 'funnel'],
  590. // option: {
  591. // funnel: {
  592. // x: '25%',
  593. // width: '50%',
  594. // funnelAlign: 'left',
  595. // max: 1548
  596. // }
  597. // }
  598. // },
  599. // }
  600. // },
  601. // calculable: true,
  602. // series: [{
  603. // name: '访问来源',
  604. // type: 'pie',
  605. // radius: '55%',
  606. // center: ['50%', '50%'],
  607. // data: array_check_type,
  608. // itemStyle: {
  609. // normal: {
  610. // label: {
  611. // show: true,
  612. // formatter: '{b} :\n{c}分 ({d}%)'
  613. // },
  614. // labelLine: { show: true }
  615. // }
  616. // }
  617. // }]
  618. // };
  619. option = {
  620. tooltip: {
  621. trigger: 'item',
  622. formatter: "个人温馨服务检查问题类别占比 <br/>{b} : {c}分 ({d}%)"
  623. },
  624. noDataLoadingOption: {
  625. text: '暂无数据',
  626. effect: 'bubble',
  627. effectOption: {
  628. effect: {
  629. n: 0 //气泡个数为0
  630. }
  631. },
  632. textStyle: {
  633. fontSize: 20,
  634. fontFamily: 'cursive',
  635. fontWeight: 'bold'
  636. }
  637. },
  638. toolbox: {
  639. show: true,
  640. },
  641. calculable: false,
  642. series: [{
  643. name: '访问来源',
  644. type: 'pie',
  645. selectedMode: 'single',
  646. radius: [0, 80],
  647. // for funnel
  648. x: '20%',
  649. width: '40%',
  650. funnelAlign: 'right',
  651. max: 1548,
  652. itemStyle: {
  653. normal: {
  654. label: {
  655. show: true,
  656. formatter: '{b}:\n{c}分({d}%)',
  657. textStyle: {
  658. alias: 'center',
  659. fontSize: 10,
  660. color: '#888'
  661. }
  662. },
  663. labelLine: {
  664. show: true,
  665. length: 80,
  666. lineStyle: {
  667. color: '#888'
  668. }
  669. }
  670. }
  671. },
  672. data: array_points
  673. },
  674. {
  675. name: '访问来源',
  676. type: 'pie',
  677. radius: [100, 125],
  678. // for funnel
  679. x: '60%',
  680. width: '35%',
  681. funnelAlign: 'left',
  682. max: 1048,
  683. itemStyle: {
  684. normal: {
  685. label: {
  686. show: false,
  687. formatter: '{b}:{c}人({d}%)'
  688. },
  689. labelLine: {
  690. show: false
  691. }
  692. }
  693. },
  694. data: array_points2
  695. }
  696. ]
  697. };
  698. return option;
  699. }
  700. });
  701. function setVisit() {
  702. if (roleContains("STATION")) {
  703. $("#select-dept").attr("disabled", "disabled");
  704. }
  705. if (hasRole("ROLE_STATION")) {
  706. $("#select-personal").attr("disabled", "disabled");
  707. }
  708. }
  709. function getColor(name) {
  710. var color = new $.zui.Color('#52D017');
  711. switch (name) {
  712. case "环境卫生":
  713. { color = new $.zui.Color('#52D017'); break; }
  714. case "仪容仪表着装":
  715. { color = new $.zui.Color('#00FFFF'); break; }
  716. case "动作":
  717. { color = new $.zui.Color('#7F38EC'); break; }
  718. case "表情":
  719. { color = new $.zui.Color('#FFA500'); break; }
  720. case "文明用语":
  721. { color = new $.zui.Color('#0000A0'); break; }
  722. case "环境卫生":
  723. { color = new $.zui.Color('#52D017'); break; }
  724. case "工作纪律及行为举止":
  725. { color = new $.zui.Color('#48CCCD'); break; }
  726. case "便民服务":
  727. { color = new $.zui.Color('#FFFF00'); break; }
  728. case "安全管理":
  729. { color = new $.zui.Color('#00FF00'); break; }
  730. }
  731. return color;
  732. }
  733. function getchildColor(name, p) {
  734. var color1 = getColor(name);
  735. var color = new $.zui.Color(color1.r - p * 20, color1.g - p * 20, color1.b - p * 20);
  736. return color;
  737. }