xuqiantongji.js 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207
  1. var self;
  2. var type, level, area, title,sort=1,banerIndex;
  3. var roleLevel, userRole;
  4. var startDate = null;//近3月的开始时间
  5. var endDate = null;//近3月的结束时间
  6. var customHeight = 63;//自定义折线图、柱状图混合表中各项的高度
  7. var scroller1 = null;
  8. var old_back = mui.back;
  9. var curLeveArr = null;//当前级别需要请求的url参数集合
  10. var lowCode; //记录选中其他维度的参数
  11. var taskNum = 0;//任务量
  12. var dateData = {};//趋势图数据
  13. var isInit = true;
  14. var TD_PAGE_SIZE = 20;//所有团队数据分页条数
  15. var current_team_index = 0;//所有团队显示的索引值
  16. var team_data_list = null;//所有团队数据(签约量)
  17. var team_name_list = null;//所有团队数据(名称)
  18. var team_top_list = null;//所有团队数据(排名数据)
  19. var team_scroller = null;
  20. var lineIndexArr = {1: 42, 2: 43, 3: 44, 4: 29}; //折线图中对应的index参数值
  21. //定义年份
  22. var chooseYear;
  23. var now = new Date();
  24. if(now.getMonth() >= 6){
  25. chooseYear = now.getFullYear();
  26. }else{
  27. chooseYear = now.getFullYear() - 1;
  28. }
  29. mui.plusReady(function() {
  30. self = plus.webview.currentWebview();
  31. type = self.type;
  32. startDate = getStartDate();
  33. endDate = getEndDate();
  34. initData();//数据初始化
  35. initScroller();//scroll初始化
  36. shaixuanInit(self);
  37. bindEvents();//事件绑定
  38. });
  39. /*****************************************************************************/
  40. /***** 页面初始化处理 **********/
  41. /*****************************************************************************/
  42. var initData = function(){
  43. // userRole = plus!=null ?JSON.parse(plus.storage.getItem("userRole"))[0]:{} ;
  44. userRole = plus!=null ? JSON.parse(plus.storage.getItem("selectedRole")): {};
  45. roleLevel = userRole.code == CITY_CODE ? 4 : userRole.code.length==6 ? 3 : 2;
  46. level = roleLevel;
  47. area = userRole.code;
  48. title = userRole.name;
  49. plus.storage.setItem("userLevel",level+"");
  50. plus.storage.setItem("userArea",area);
  51. //初始默认选中的时间和类型
  52. $(".choose-label").text("(所有居民)");
  53. //搜集页面请求的参数
  54. var paramsArr = [],requestArr = [];
  55. var index = 29; //签入: 34, 签出: 35
  56. if(level==4){//市管
  57. paramsArr.push({tags:["各区","社区","团队"],curTitle:title,level:level},
  58. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{ year: 2017,code:area,level:level, index: 29}},
  59. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:29}},
  60. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:44,area:area}},
  61. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:43,area:area,lowLevel:2}},
  62. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:42,area:area,lowLevel:1}});
  63. }else if(level==3){//区管
  64. paramsArr.push({tags:["社区","团队"],curTitle:title,level:level},
  65. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 44}},
  66. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:44}},
  67. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:43,area:area}},
  68. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:42,area:area,lowLevel:1}});
  69. }else if(level==2){//社区管
  70. paramsArr.push({tags:["团队"],curTitle:title,level:level},
  71. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 43}},
  72. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:43}},
  73. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:42,area:area}});
  74. }
  75. requestArr.push(paramsArr);
  76. plus.storage.setItem("levelParamsArr",JSON.stringify(requestArr));
  77. curLeveArr = paramsArr;
  78. loadAllData(paramsArr);
  79. },
  80. loadAllData = function(arr){
  81. plus.nativeUI.showWaiting();
  82. //1-1:加载数据截止时间
  83. sendPost("/statistics/time",null,function(res){
  84. },function(res){
  85. if(res.status=="200"){
  86. var date = (res.data && res.data.substring(11,16)) || "";
  87. $(".jiezhi-time").html(date)
  88. }
  89. });
  90. //1-2: 显示title
  91. title = arr[0].curTitle;
  92. if(arr[0].level==4){
  93. title = title.substring(0,3);
  94. }
  95. $("#title").html(title);
  96. //1-3 :加载tab
  97. var tagsArr = arr[0].tags;
  98. var tagStr = "";
  99. for(var i=0;i<tagsArr.length;i++){
  100. var classz = i==0?"hit":"";
  101. var dataClick = i==0?"true":"false";//是否已点击过
  102. tagStr += '<li class="'+classz+'" data-click="'+dataClick+'"><a href="#" class="c-f16">'+tagsArr[i]+'</a></li>';
  103. }
  104. $(".c-lab-mor").html(tagStr);
  105. $(".div-data-list").hide();
  106. $(".div-data-list.div-list0").show();
  107. if($(".c-lab-mor li.hit a").html()=="团队" || tagsArr.length==1){
  108. $(".div-right-danwei").html("人");
  109. }else{
  110. $(".div-right-danwei").html("千人");
  111. }
  112. var index = lineIndexArr[level];
  113. //1-4 :加载签约率、完成率
  114. // arr[1].params.index = index;
  115. sendGet(arr[1].reqUrl, arr[1].params, null, countHandle, true);
  116. //1-5:趋势图表
  117. var interval = parseInt(arr[2].params.interval)-1 || 0;
  118. $('.div-btn-group .div-btn').removeClass("active");
  119. $('.div-btn-group .div-btn').eq(interval).addClass("active");
  120. // arr[2].params.index = index;
  121. sendPost(arr[2].reqUrl, arr[2].params, null, dateLineHandle);
  122. //1-6:加载【第一个】tab标签数据
  123. // arr[3].params.index = index - 1;
  124. sendPost(arr[3].reqUrl, arr[3].params, null, listHandle);
  125. },
  126. initScroller = function(){
  127. window.scroller1 = $("#wrapper1").initScroll(
  128. {
  129. pullDownAction: function(){
  130. current_team_index = 0;
  131. $(".pullDown").show();
  132. plus.nativeUI.showWaiting();
  133. loadAllData(curLeveArr);
  134. },pullUpAction: function() {
  135. $(".pullUp").hide();
  136. if($(".c-lab-mor li.hit a").html()=="团队"){//团队tab页才做分页
  137. if(current_team_index==(Object.keys(team_data_list).length-1)){
  138. mui.toast("没有更多数据了...");
  139. $(".pullUp").hide();
  140. plus.nativeUI.closeWaiting();
  141. return false;
  142. }
  143. $(".pullUp").show();
  144. plus.nativeUI.showWaiting();
  145. current_team_index++;
  146. loadTeamData(team_data_list[current_team_index],team_top_list[current_team_index],true);
  147. }
  148. return false;
  149. }
  150. }
  151. );
  152. },
  153. /**
  154. * 初始化筛选事件
  155. */
  156. shaixuanInit = function(main){
  157. var shaixuan = plus.webview.getWebviewById('xq-shaixuan.html');
  158. if(!shaixuan){
  159. shaixuan = mui.createWindow({
  160. id: 'xq-shaixuan.html',
  161. url: 'xq-shaixuan.html',
  162. styles: {
  163. top: 0,
  164. bottom: 0,
  165. left: '20%',
  166. width: '80%',
  167. scorllIndicator: "none"
  168. },
  169. show:{
  170. aniShow: "slide-in-right",
  171. duration: "400"
  172. },
  173. extras:{
  174. }
  175. });
  176. }
  177. window.addEventListener("hideShaiXuan",function(){
  178. console.log("hideShaiXuan");
  179. main.setStyle({mask:"none"});
  180. shaixuan.hide();
  181. }, false);
  182. window.addEventListener("showShaiXuan", function() {
  183. shaixuan.show();
  184. main.setStyle({mask:"rgba(0,0,0,0.5)"});
  185. main.addEventListener("maskClick",function(){
  186. main.setStyle({mask:"none"});
  187. shaixuan.hide();
  188. }, false);
  189. });
  190. },
  191. bindEvents = function(){
  192. //标签切换
  193. $(".c-lab-mor").on("tap","li",function(){
  194. var liIndex = $(this).index();
  195. var tabid = $(this).attr("id");
  196. var top = $(this).offset().top;
  197. $(".c-lab-mor li").removeClass("hit");
  198. $(this).addClass("hit");
  199. var tabName = $(".c-lab-mor li.hit a").html();
  200. //1-6:加载tab标签数据
  201. if($(this).attr("data-click")=="false"){//tab数据未加载
  202. plus.nativeUI.showWaiting();
  203. var index ;
  204. if(tabName == "各区"){
  205. // index = 29;
  206. // curLeveArr[3].params.index = index;
  207. sendPost(curLeveArr[3].reqUrl, curLeveArr[3].params, null, listHandle);
  208. }else if(tabName == "社区"){//社区数据
  209. // index = 43;
  210. // curLeveArr[4].params.index = index;
  211. if(curLeveArr.length == 5){
  212. sendPost(curLeveArr[3].reqUrl, curLeveArr[3].params, null, listHandle);
  213. }else{
  214. sendPost(curLeveArr[4].reqUrl, curLeveArr[4].params, null, listHandle);
  215. }
  216. }else if(tabName == "团队"){//团队数据
  217. // index = 42;
  218. // curLeveArr[5].params.index = index;
  219. if(curLeveArr.length == 6){
  220. sendPost(curLeveArr[5].reqUrl, curLeveArr[5].params, null, listHandle);
  221. }else if(curLeveArr.length == 5){
  222. sendPost(curLeveArr[4].reqUrl, curLeveArr[4].params, null, listHandle);
  223. }else{
  224. sendPost(curLeveArr[3].reqUrl, curLeveArr[3].params, null, listHandle);
  225. }
  226. }
  227. $(this).attr("data-click","true");
  228. }
  229. $(".div-data-list").hide();
  230. $(".div-list"+liIndex).show();
  231. $(".div-list1 li .div-name,.div-list1 li .div-amount,.div-list2 li .div-name,.div-list2 li .div-amount").each(function(){
  232. if($(this).height()==21){
  233. $(this).addClass("mt20")
  234. }else if($(this).height()==42){
  235. $(this).addClass("mt10")
  236. }
  237. })
  238. if($(".c-lab-mor li.hit a").html()=="团队"){
  239. $(".div-right-danwei").html("人");
  240. }else{
  241. $(".div-right-danwei").html("千人");
  242. }
  243. scroller1.refresh();
  244. window.onscroll = function () {
  245. var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
  246. if(top!=-1 && top>0){
  247. window.scrollTo(0,top);
  248. top = -1;
  249. }
  250. }
  251. });
  252. //日、周、月按钮切换
  253. $(".div-btn-group").on("click",".div-btn",function(){
  254. var dataId = $(this).attr("data-id");
  255. $(".div-btn-group .div-btn").removeClass("active");
  256. $(this).addClass("active");
  257. //1-5:趋势图表
  258. curLeveArr[2].params.interval = dataId;
  259. // curLeveArr[2].params.index = lineIndexArr[level];
  260. sendPost(curLeveArr[2].reqUrl, curLeveArr[2].params, null, dateLineHandle);
  261. });
  262. $(".scroll-wrapper").on("tap",".div-data-list .list-ul .div-name",function(event){
  263. if($(".c-lab-mor li.hit a").html()=="团队") {
  264. sendGet("/doctor/admin-teams/teams/info",{teamId:$(this).closest("li").attr("data-code")},function(res){
  265. },function(res){
  266. if(res.status==200){
  267. var team = res.data.team;
  268. var members = res.data.members;
  269. $(".span-name").html(team.name || "");
  270. $(".span-hospitalName").html(team.hospitalName || "");
  271. $(".span-leaderName").html(team.leaderName || "");
  272. $(".span-team-count").html(members.length.toString());
  273. var membersName = "";
  274. for(var i=0;i<members.length;i++){
  275. if(i==20) break;
  276. membersName+=members[i].name+"、";
  277. }
  278. if(members.length>20){
  279. membersName = membersName!=""?membersName.substring(0,membersName.length-1)+"等":membersName;
  280. }else{
  281. membersName = membersName!=""?membersName.substring(0,membersName.length-1):membersName;
  282. }
  283. $(".span-members").html(membersName);
  284. $(".modal-overlay").addClass("modal-overlay-visible");
  285. setTimeout(function(){
  286. $(".modal-content").show();
  287. },50)
  288. }else{
  289. mui.toast("暂无相关团队详情!");
  290. }
  291. });
  292. return false;
  293. }
  294. level = curLeveArr[0].level;
  295. level--;
  296. area = $(this).closest("li").attr("data-code");
  297. var name = $(this).closest("li").attr("data-name");
  298. title = name;
  299. $("#title").html(title);
  300. var paramsArr = [];
  301. var index = 29;
  302. if(!lowCode || lowCode=='0'){
  303. if(level==3 && $(".c-lab-mor li.hit a").html()=="各区"){//区管
  304. paramsArr.push({tags:["社区","团队"],curTitle:title,level:level},
  305. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 44}},
  306. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:$('.div-btn-group .div-btn.active').attr('data-id'),index: 44}},
  307. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:43,area:area}},
  308. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:42,area:area,lowLevel:1}});
  309. }else{//社区管
  310. paramsArr.push({tags:["团队"],curTitle:title,level:2},
  311. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:2, index: 43}},
  312. {reqUrl:"/statistics/interval_total",params:{level: 2, area: area, startDate: startDate, endDate: endDate, interval:$('.div-btn-group .div-btn.active').attr('data-id'),index:43}},
  313. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:2,index:42,area:area}});
  314. }
  315. }else{
  316. if(level==3 && $(".c-lab-mor li.hit a").html()=="各区"){//区管
  317. paramsArr.push({tags:["社区","团队"],curTitle:title,level:level},
  318. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 54, lowCode: lowCode}},
  319. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:$('.div-btn-group .div-btn.active').attr('data-id'),index: 54, lowCode: lowCode}},
  320. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:53,area:area, lowCode: lowCode}},
  321. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:level,index:52,area:area,lowLevel:1, lowCode: lowCode}});
  322. }else{//社区管
  323. paramsArr.push({tags:["团队"],curTitle:title,level:2},
  324. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:2, index: 53, lowCode: lowCode}},
  325. {reqUrl:"/statistics/interval_total",params:{level: 2, area: area, startDate: startDate, endDate: endDate, interval:$('.div-btn-group .div-btn.active').attr('data-id'),index:53, lowCode: lowCode}},
  326. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,date:endDate,level:2,index:52,area:area, lowCode: lowCode}});
  327. }
  328. }
  329. var existArr = JSON.parse(plus.storage.getItem("levelParamsArr"));
  330. existArr.push(paramsArr);
  331. plus.storage.setItem("levelParamsArr",JSON.stringify(existArr));
  332. curLeveArr = paramsArr;
  333. current_team_index = 0;
  334. loadAllData(paramsArr);
  335. event.preventDefault();
  336. return false;
  337. });
  338. //转签率点击了进入续签分析页面
  339. $("#zhuanqianWrap").on("tap", function(){
  340. if(!lowCode || lowCode=='0'){
  341. mui.openWindow({
  342. url: "renew-analysis.html",
  343. id: "renew-analysis.html",
  344. extras:{
  345. level:curLeveArr[0].level,
  346. code:area,
  347. title: title
  348. }
  349. });
  350. }
  351. })
  352. //说明信息相关事件
  353. $("#closeBtn").on("tap", function(){
  354. $(".information").hide();
  355. scroller1.refresh();
  356. });
  357. $(".info-icon").on("tap", function(){
  358. $(".information").show();
  359. scroller1.refresh();
  360. });
  361. //弹出遮罩
  362. $(".icon-remark").on("click", function(e) {
  363. $(".modal-overlay").addClass("modal-overlay-visible");
  364. setTimeout(function(){
  365. $(".modal-content").show();
  366. },50)
  367. });
  368. $(".div-close,.modal-overlay").on("click",function(){
  369. $(".modal-overlay").removeClass("modal-overlay-visible");
  370. $(".modal-content").hide();
  371. });
  372. //左滑筛选区域的数据
  373. $('.header-link').on("tap", function(){
  374. var self = plus.webview.currentWebview();
  375. mui.fire(self, "showShaiXuan");
  376. });
  377. //添加页面监听
  378. window.addEventListener("refresh", function(e){
  379. lowCode = e.detail.lowCode;
  380. var name = e.detail.name;
  381. $(".choose-label").text("("+name+")");
  382. level = roleLevel;
  383. area = userRole.code;
  384. title = userRole.name;
  385. var paramsArr = [];
  386. var index = 29;
  387. if(lowCode == '0'){
  388. if(level==4){//市管
  389. paramsArr.push({tags:["各区","社区","团队"],curTitle:title,level:level},
  390. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{ year: 2017,code:area,level:level, index: 29}},
  391. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:29}},
  392. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:44,area:area}},
  393. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:43,area:area,lowLevel:2}},
  394. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:42,area:area,lowLevel:1}});
  395. }else if(level==3){//区管
  396. paramsArr.push({tags:["社区","团队"],curTitle:title,level:level},
  397. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 44}},
  398. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:44}},
  399. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:43,area:area}},
  400. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:42,area:area,lowLevel:1}});
  401. }else if(level==2){//社区管
  402. paramsArr.push({tags:["团队"],curTitle:title,level:level},
  403. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 43}},
  404. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:43}},
  405. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:42,area:area}});
  406. }
  407. }else{
  408. var index = 51; //签入: 34, 签出: 35
  409. if(level==4){//市管
  410. paramsArr.push({tags:["各区","社区","团队"],curTitle:title,level:level},
  411. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{ year: 2017,code:area,level:level, index: 51, lowCode: lowCode}},
  412. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:51, lowCode: lowCode}},
  413. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:54,area:area, lowCode: lowCode}},
  414. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:53,area:area,lowLevel:2, lowCode: lowCode}},
  415. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:52,area:area,lowLevel:1, lowCode: lowCode}});
  416. }else if(level==3){//区管
  417. paramsArr.push({tags:["社区","团队"],curTitle:title,level:level},
  418. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 54, lowCode: lowCode}},
  419. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:54, lowCode: lowCode}},
  420. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:53,area:area, lowCode: lowCode}},
  421. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:52,area:area,lowLevel:1, lowCode: lowCode}});
  422. }else if(level==2){//社区管
  423. paramsArr.push({tags:["团队"],curTitle:title,level:level},
  424. {reqUrl:"/statistics/getRenewPercentAndChangePercent",params:{year: 2017,code:area,level:level, index: 53, lowCode: lowCode}},
  425. {reqUrl:"/statistics/interval_total",params:{level: level, area: area, startDate: startDate, endDate: endDate, interval:"1",index:53, lowCode: lowCode}},
  426. {reqUrl:"/statistics/lowlevel_all_sign_renew",params:{sort:1,year:2017,level:level,index:52,area:area, lowCode: lowCode}});
  427. }
  428. }
  429. var existArr = JSON.parse(plus.storage.getItem("levelParamsArr"));
  430. //清空数据,然后再存储新的路径
  431. existArr.splice(0, existArr.length);
  432. existArr.push(paramsArr);
  433. plus.storage.setItem("levelParamsArr",JSON.stringify(existArr));
  434. curLeveArr = paramsArr;
  435. current_team_index = 0;
  436. loadAllData(paramsArr);
  437. });
  438. };
  439. /*****************************************************************************/
  440. /***** 数据返回处理函数 **********/
  441. /*****************************************************************************/
  442. var countHandle = function(res){
  443. if(res.status == 200) {
  444. res = res.data;
  445. //折线图目标量是去年的签约量
  446. taskNum = parseInt(res.yesterYearSign);
  447. $('#xuqianlv').waterbubble({
  448. txt: res.renewRange,
  449. data: parseFloat(res.renewRange)/100,
  450. waterColor: '#12B7F5',
  451. lineWidth:0,
  452. radius: 75,
  453. textColor: 'rgba(0, 0, 0, 0.8)',
  454. font: 'bold 25px arial'
  455. });
  456. $(".p-xuqianlv").html("<span class='c-17b3ec'>"+res.thisYearRenew+"</span>/"+res.yesterYearSign);
  457. $('#zhuanqianlv').waterbubble({
  458. txt: res.switchRange,
  459. data: parseFloat(res.switchRange)/100,
  460. waterColor: '#4ECD70',
  461. lineWidth:0,
  462. radius: 75,
  463. textColor: 'rgba(0, 0, 0, 0.8)',
  464. font: 'bold 25px arial'
  465. });
  466. $(".p-zhuanqianlv").html("<span class='c-4ECD70'>"+res.thisYearSwithch+"</span>/"+res.thisYearRenew);
  467. } else {
  468. mui.toast(res.msg);
  469. }
  470. },
  471. dateLineHandle = function(res){
  472. if(res.status==200){
  473. for(var p in res.data){
  474. taskNum = taskNum;
  475. dateData[p] = formatDateData(res.data[p].data);
  476. if(dateData[p].amountArr && dateData[p].amountArr.length>0){
  477. $('#l-jmfx').show();
  478. $(".l-zxt-con").hide();
  479. mui.later(function(){
  480. $(".l-zxt-con").show();
  481. }, 100);
  482. $("#echarts_wushuju").hide();
  483. } else{
  484. $(".l-zxt-con").hide();
  485. $("#echarts_wushuju").show();
  486. }
  487. drawChart(dateData[p]);//初始化折线图
  488. }
  489. } else {
  490. mui.toast(res.msg);
  491. }
  492. plus.nativeUI.closeWaiting();
  493. },
  494. listHandle = function(res){
  495. if(res.status == 200) {
  496. res = res.data;
  497. var isTD = false;
  498. for(var k in res){
  499. var list = res[k];
  500. var topArr = soreRank(renewArr(list));
  501. var liIndex = $(".c-lab-mor li.hit").index();
  502. if($(".c-lab-mor li.hit a").html()=="团队"){//社区看团队数据
  503. isTD = true;
  504. teamFenYeFun(list,topArr);
  505. }else{
  506. var resultStr = "";
  507. var topClass = "";
  508. var qylResultStr = "";
  509. var qylClass = "c-a0dc28";
  510. // if($(".c-lab-mor li.hit a").html()=="团队"){
  511. // qylClass = "c-17b8ec";
  512. // }
  513. for(var j in list){
  514. switch (topArr[j]){
  515. case 1:
  516. topClass="cb-EA5B3A";
  517. break;
  518. case 2:
  519. topClass="cb-FF8746";
  520. break;
  521. case 3:
  522. topClass="cb-69CA2E";
  523. break;
  524. default:
  525. topClass="cb-3DA9CE";
  526. break;
  527. }
  528. resultStr+='<li data-name="'+list[j].name+'" data-code="'+list[j].code+'">'+
  529. '<div class="div-top '+topClass+' c-f10">'+topArr[j]+'</div>'+
  530. '<div class="div-name f-fs14">'+list[j].name+'</div>'+
  531. '</li>';
  532. qylResultStr+='<li>'+'<div class="div-amount c-f10 mr10 mt20 '+qylClass+'">'+(parseFloat(list[j].signNum)/1000).toFixed(2)+'</div>'+'</li>';
  533. }
  534. $(".div-list"+liIndex).show();
  535. $(".div-list"+liIndex+" .list-ul").html(resultStr);
  536. $(".div-list"+liIndex+" .div-right-data-content .list-ul").html(qylResultStr);
  537. $(".div-list"+liIndex+" li .div-name,"+".div-list"+liIndex+" li .div-amount").each(function(){
  538. if($(this).height()==21){
  539. $(this).addClass("mt20")
  540. }else if($(this).height()==42){
  541. $(this).addClass("mt10")
  542. }
  543. })
  544. if(list.length==0){
  545. scroller1.refresh();
  546. plus.nativeUI.closeWaiting();
  547. return false;
  548. }
  549. //加载图表数据
  550. var amountArrS = amountArr(list).reverse();//签约量
  551. var nameArrs = nameArr(list).reverse();//名称
  552. $("#chart-main"+liIndex).height(list.length*customHeight+100);
  553. $(".div-list"+liIndex+" .div-right-content").show();
  554. var rateArrS = rateArr(list).reverse();//签约率
  555. var renewArrS = renewArr(list).reverse();//续签量
  556. var qylAmountArr = arr_dive_qyl(amountArrS,renewArrS);//签约量
  557. echartsCCFun("chart-main"+liIndex,qylAmountArr,renewArrS,rateArrS,nameArrs);//区进展、社区进展的图表
  558. }
  559. scroller1.refresh();
  560. plus.nativeUI.closeWaiting();
  561. }
  562. } else {
  563. mui.toast(res.msg);
  564. }
  565. },
  566. teamFenYeFun = function(recordList,topArr){
  567. if(recordList){
  568. team_top_list = _.groupBy(topArr,function(item,i){return Math.floor(i/TD_PAGE_SIZE)});
  569. team_data_list = _.groupBy(recordList,function(item,i){return Math.floor(i/TD_PAGE_SIZE)});
  570. if(team_data_list){
  571. loadTeamData(team_data_list[current_team_index],team_top_list[current_team_index],false);
  572. }
  573. }
  574. },
  575. loadTeamData = function(list,topArr,isPullUp){
  576. var resultStr = "";
  577. var topClass = "";
  578. var qylResultStr = "";
  579. var qylClass = "c-a0dc28";
  580. var liIndex = $(".c-lab-mor li.hit").index();
  581. if(isPullUp){
  582. var newLiIndex = $(".div-data-list").length;
  583. var chartMainId = "chart-main"+newLiIndex;
  584. var divListClassz = "div-list"+newLiIndex;
  585. var addDivList = '<div class="div-data-list '+divListClassz+' f-dn" style="position: relative;">'+
  586. '<div class="div-left-content" style="top: 0px;">'+
  587. '<ul class="list-ul"></ul>'+
  588. '</div>'+
  589. '<div class="div-right-data-content" style="top: 0px;">'+
  590. '<ul class="list-ul f-fr"></ul>'+
  591. '</div>'+
  592. '<div id="'+chartMainId+'" style="width: 100%; margin: 0px 0px 0px 35px;"></div>'+
  593. '</div>';
  594. $(".div-data-list:last").after(addDivList);
  595. liIndex = newLiIndex;
  596. }
  597. setTimeout(function(){
  598. var amountArrS = amountArr(list, true).reverse();//签约量
  599. var nameArrs = nameArr(list);//名称
  600. for(var j in list){
  601. switch (topArr[j]){
  602. case 1:
  603. topClass="cb-EA5B3A";
  604. break;
  605. case 2:
  606. topClass="cb-FF8746";
  607. break;
  608. case 3:
  609. topClass="cb-69CA2E";
  610. break;
  611. default:
  612. topClass="cb-3DA9CE";
  613. break;
  614. }
  615. var redClass = list[j].signNum>1500?"c-EA5B3A":"";
  616. resultStr+='<li data-name="'+list[j].name+'" data-code="'+list[j].code+'">'+
  617. '<div class="div-top '+topClass+' c-f10">'+topArr[j]+'</div>'+
  618. '<div class="div-name f-fs14 '+redClass+'">'+(list[j].name || "未知")+'</div>'+
  619. '</li>';
  620. qylResultStr+='<li>'+'<div class="div-amount mr10 mt20 '+qylClass+'">'+list[j].signNum+'</div>'+'</li>';
  621. }
  622. $(".div-list"+liIndex).show();
  623. $(".div-list"+liIndex+" .list-ul").html(resultStr);
  624. $(".div-list"+liIndex+" .div-right-data-content .list-ul").html(qylResultStr);
  625. $(".div-list"+liIndex+" li .div-name,"+".div-list"+liIndex+" li .div-amount").each(function(){
  626. if($(this).height()==21){
  627. $(this).addClass("mt20")
  628. }else if($(this).height()==42){
  629. $(this).addClass("mt10")
  630. }
  631. })
  632. if(!list){
  633. scroller1.refresh();
  634. plus.nativeUI.closeWaiting();
  635. return false;
  636. }
  637. $(".div-list"+liIndex+" .div-right-content").show();
  638. if(!list){
  639. $(".div-right-danwei").hide();
  640. $("#chart-main"+liIndex).hide();
  641. }else{
  642. $(".div-right-danwei").show();
  643. $("#chart-main"+liIndex).show();
  644. var heightM = current_team_index==0?list.length*customHeight+30:list.length*customHeight;
  645. $("#chart-main"+liIndex).height(heightM);
  646. var rateArrS = rateArr(list).reverse();//签约率
  647. var renewArrS = renewArr(list, true).reverse();//续签量
  648. var qylAmountArr = arr_dive_qyl(amountArrS,renewArrS);//签约量
  649. echartsTDFun("chart-main"+liIndex,qylAmountArr,renewArrS,rateArrS,nameArrs);//区进展、社区进展的图表
  650. }
  651. scroller1.refresh();
  652. plus.nativeUI.closeWaiting();
  653. },200)
  654. },
  655. drawChart = function(dateData){//初始化折线图
  656. $(".div-switch").show();
  657. var recordCount = 10;//一页显示几条数据
  658. var allRecordData = dateData.amountArr.reverse();
  659. var dateArr = dateData.dateArr.reverse();
  660. var resultData = _.groupBy(allRecordData,function(item,i){return Math.floor(i/recordCount)});
  661. var dateArrData = _.groupBy(dateArr,function(item,i){return Math.floor(i/recordCount)});
  662. //以下为折线图处理
  663. var gnum = Math.ceil(allRecordData.length / recordCount);
  664. var HandStartX,HandStartY,HandEndX,HandEndY,CountX,CountY,startPos,isScrolling,number=allRecordData.length,times=allRecordData.length%recordCount;
  665. var canvasStr = '<div class="div-layer"></div>';
  666. for(var x in resultData){
  667. canvasStr ='<canvas id="wcMotion'+x+'" class="canvas-wc animated" style="display:block"></canvas>'+canvasStr;
  668. }
  669. $(".l-zxt-inner").html(canvasStr);
  670. var dateType = $(".div-btn-group .div-btn.active").attr("data-id");
  671. window.setTimeout(function() {
  672. for(var x in resultData){
  673. var startDay = new Date(getDateBefore(times-1));
  674. var resultDateArr = dateArrData[x].reverse();
  675. var yAxis = taskNum;//maxData(resultData[x]);//求数据的最大值
  676. $('#wcMotion'+x).wcChart({
  677. height: 200, // width and height must be set if change
  678. yAxis:yAxis,
  679. day: startDay,
  680. points: [],
  681. dateArr:resultDateArr,
  682. dateType:dateType,
  683. data: resultData[x].reverse(),
  684. fill: {gradient: [["#17B3EC",.1], ["#17B3EC",.5]], gradientAngle: Math.PI * -45/180},
  685. animation: null // 修复bug#3298 【医生端】总体分析排版优化。(vivo手机)
  686. });
  687. if(x==0){
  688. $('#wcMotion'+x).show();
  689. }
  690. times+=recordCount;
  691. //折线图画布添加左滑和右滑效果
  692. var wcMotion = document.getElementById('wcMotion'+x);
  693. wcMotion.addEventListener('touchstart', function(event) {
  694. HandStartX=event.touches[0].clientX;
  695. HandStartY=event.touches[0].clientY;
  696. //touches数组对象获得屏幕上所有的touch,取第一个touch
  697. var touch = event.targetTouches[0];
  698. //取第一个touch的坐标值
  699. startPos = {x:touch.pageX,y:touch.pageY,time:+new Date};
  700. //这个参数判断是垂直滚动还是水平滚动
  701. isScrolling = 0;
  702. }, false);
  703. wcMotion.addEventListener('touchend', function(event) {
  704. HandEndX=event.changedTouches[0].clientX;
  705. HandEndY=event.changedTouches[0].clientY;
  706. CountX=HandEndX-HandStartX;
  707. CountY=HandEndY-HandStartY;
  708. if((Math.abs(CountX)>Math.abs(CountY))&& Math.abs(CountX)>50){
  709. var targetMotion = $(event.target);
  710. if(CountX<0){
  711. if(targetMotion.next().length>0 && !targetMotion.next().hasClass("div-layer")){
  712. targetMotion.addClass("fadeOutLeft");
  713. targetMotion.next().removeClass("fadeOutRight").removeClass("fadeOutLeft").removeClass("fadeInLeft").addClass("fadeInRight").show();
  714. }
  715. console.log("左滑");
  716. }else{
  717. if(targetMotion.prev().length>0 && !targetMotion.prev().hasClass("div-layer")){
  718. targetMotion.addClass("fadeOutRight");
  719. targetMotion.prev().removeClass("fadeOutRight").removeClass("fadeOutLeft").removeClass("fadeInRight").addClass("fadeInLeft").show();
  720. }
  721. console.log("右滑");
  722. }
  723. }
  724. }, false);
  725. wcMotion.addEventListener('touchmove', function(event) {
  726. //当屏幕有多个touch或者页面被缩放过,就不执行move操作
  727. if(event.targetTouches.length > 1 || event.scale && event.scale !== 1) return;
  728. var touch = event.targetTouches[0];
  729. endPos = {x:touch.pageX - startPos.x,y:touch.pageY - startPos.y};
  730. //isScrolling为1时,表示纵向滑动,0为横向滑动
  731. isScrolling = Math.abs(endPos.x) < Math.abs(endPos.y) ? 1:0;
  732. if(isScrolling === 0){
  733. //阻止触摸事件的默认行为,即阻止滚屏
  734. event.preventDefault();
  735. }
  736. }, false);
  737. }
  738. }, 500);
  739. },
  740. formatDateData = function(data){//折线图数据格式转化
  741. var dateArr = [];
  742. var amountArr = [];
  743. for(var k in data){
  744. dateArr.push(data[k].range.substring(5));
  745. amountArr.push(data[k].amount);
  746. }
  747. return {dateArr: dateArr, amountArr: amountArr};
  748. },
  749. soreRank = function(arr){//排名方法
  750. var temp = [];
  751. var lis = [];
  752. for(var i=0;i<arr.length;i++)
  753. lis.push(arr[i])
  754. lis = _.uniq(lis);
  755. // lis.sort();
  756. // lis.reverse();
  757. for(var i=0;i<arr.length;i++)
  758. temp[i] = lis.indexOf(arr[i])+1;
  759. return temp;
  760. },
  761. nameArr = function(list){//名称数据集合
  762. var nameArr = [];
  763. for(var k in list){
  764. nameArr.push(list[k].name || "");
  765. }
  766. return nameArr;
  767. },
  768. amountArr = function(list,isTD){//去年签约量数据集合
  769. var amountArr = [];
  770. if(isTD){//如果是团队的话,单位为人
  771. for(var k in list){
  772. amountArr.push(list[k].signNum);
  773. }
  774. }else{//其他单位为千人
  775. for(var k in list){
  776. amountArr.push(list[k].signNum/1000);
  777. }
  778. }
  779. return amountArr;
  780. },
  781. rateArr = function(list){//签约率数据
  782. var rateArr = [];
  783. for(var k in list){
  784. var rate = parseFloat(list[k].rate)?parseFloat(list[k].rate):"0.00";
  785. rateArr.push(rate);
  786. }
  787. return rateArr;
  788. },
  789. renewArr = function(list,isTD){//续签量数据
  790. var renewArr = [];
  791. for(var k in list){
  792. if(isTD){//如果是团队的话,单位为人
  793. renewArr.push(list[k].renewNum);
  794. }else{//其他单位为千人
  795. renewArr.push(list[k].renewNum/1000);
  796. }
  797. }
  798. return renewArr;
  799. },
  800. arr_dive = function(personArr,amountArr){//柱状图叠层 (人口数-签约量=人口数)
  801. var resultArr = [];
  802. for(var k in personArr){
  803. resultArr.push(personArr[k]-amountArr[k]);
  804. }
  805. return resultArr;
  806. },
  807. arr_dive_qyl = function(amountArr,renewArr){//柱状图叠层 (签约量)
  808. var resultArr = [];
  809. for(var k in renewArr){
  810. if(amountArr[k]-renewArr[k]>0){//去年签约量-续签量 (签约量>=续签量)
  811. resultArr.push(amountArr[k]-renewArr[k]);
  812. }else{
  813. resultArr.push(0);
  814. }
  815. }
  816. return resultArr;
  817. },
  818. maxData = function(data){
  819. var maxData = Math.max.apply(Math,data);
  820. var yAxis = maxData<10?10:maxData;
  821. return yAxis;
  822. },
  823. getStartDate = function(){ //年度开始的时间为7月1号
  824. return chooseYear+'-07-01';
  825. },
  826. //获取结束时间
  827. getEndDate = function(){ //如果是前一个年度的时间,那么结束的时间为6月30号,如果是当前年度的,则结束时间为现在
  828. var endDate = new Date((chooseYear+1) + '-06-30'),
  829. now = new Date();
  830. if(now < endDate){
  831. return now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate();
  832. }else{
  833. return (chooseYear+1) + '-06-30';
  834. }
  835. },
  836. getDateBefore = function(days){//获取多少天前的日期
  837. var now = new Date();
  838. var date = new Date(now.getTime() - days * 24 * 3600 * 1000);
  839. var year = date.getFullYear();
  840. var month = date.getMonth() + 1;
  841. var day = date.getDate();
  842. var hour = date.getHours();
  843. var minute = date.getMinutes();
  844. var second = date.getSeconds();
  845. return year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day);
  846. };
  847. /*****************************************************************************/
  848. /***** echarts图标处理 **********/
  849. /*****************************************************************************/
  850. var echartsFun = function(elementId,amountArrS,amountArrResult,taskArrS,rateArrS,nameArr){//区进展、社区进展的图表
  851. var myChart = echarts.init(document.getElementById(elementId));
  852. var height = amountArrS.length*customHeight;
  853. var option = {
  854. grid: {x:60,y: 30,height:height,borderWidth:0},
  855. yAxis : [
  856. {
  857. type : 'category',
  858. data : nameArr,
  859. axisLine: {show:false},
  860. axisTick: {show:false},
  861. splitArea: {show:false},
  862. splitLine: {show:false},
  863. axisLabel: {show:false}
  864. }
  865. ],
  866. xAxis : [
  867. {
  868. type : 'value',
  869. axisLine: {show:true,lineStyle:{color:'#cccccc'}},
  870. axisTick: {show:true,lineStyle:{color:'#cccccc'}},
  871. axisLabel:{formatter:'{value}%',textStyle:{color:'#cccccc'}},
  872. splitArea: {show:false},
  873. splitLine: {show:false}
  874. },
  875. {
  876. type : 'value',
  877. axisLine: {show:true,lineStyle:{color:'#cccccc'}},
  878. axisTick: {show:true,lineStyle:{color:'#cccccc'}},
  879. axisLabel:{formatter:'{value}',textStyle:{color:'#cccccc'}},
  880. splitArea: {show:false},
  881. splitLine: {show:false}
  882. }
  883. ],
  884. series : [
  885. {
  886. name:'去年签约量',
  887. type:'bar',
  888. barWidth : 20,//柱图宽度
  889. stack: '目标量',
  890. xAxisIndex:1,
  891. itemStyle: {normal: {barBorderRadius:0,color:'#a0dc28', label:{show:false, position: 'insideRight'}}},
  892. data:taskArrS,
  893. },
  894. {
  895. name:'续签量',
  896. type:'bar',
  897. barWidth : 20,//柱图宽度
  898. stack: '人数',
  899. xAxisIndex:1,
  900. itemStyle: {normal: {barBorderRadius:0,color:'#ffc149', label:{show:false, position: 'insideRight',textStyle:{color:'#fff'}}}},
  901. data:amountArrS
  902. },
  903. {
  904. name:'续签率',
  905. type:'line',
  906. itemStyle: {normal: {color:'red', label:{show:true,formatter:function(p){return p.value +"%";},textStyle:{color:'red'},position:'bottom'}}},
  907. data:rateArrS,
  908. markLine:{
  909. itemStyle:{
  910. normal:{lineStyle:{type:'solid',color:'#925cfe'},label:{show:true,formatter:function(p){return p.value +"%";},textStyle:{color:'#925cfe'},position:'bottom'}}
  911. },
  912. large:true,
  913. effect:{
  914. show: false,
  915. loop: true,
  916. period: 0,
  917. scaleSize : 2,
  918. color : null,
  919. shadowColor : null,
  920. shadowBlur : null
  921. },
  922. data:[
  923. [
  924. {name: '标线1起点', value: '15',xAxis:-1, xAxis: '15'}, // 当xAxis为类目轴时,数值1会被理解为类目轴的index,通过xAxis:-1|MAXNUMBER可以让线到达grid边缘
  925. {name: '标线1终点', yAxis: nameArr[nameArr.length-1], xAxis: '15'}, // 当xAxis为类目轴时,字符串'周三'会被理解为与类目轴的文本进行匹配
  926. ],
  927. ]
  928. }
  929. }
  930. ]
  931. };
  932. myChart.setOption(option);
  933. },
  934. echartsCCFun = function(elementId,qylAmountArr,renewArrS,rateArrS,nameArr){//区进展、社区进展的图表
  935. var myChart = echarts.init(document.getElementById(elementId));
  936. var height = nameArr.length*customHeight;
  937. var option = {
  938. grid: {x:60,y: 30,height:height,borderWidth:0},
  939. yAxis : [
  940. {
  941. type : 'category',
  942. data : nameArr,
  943. axisLine: {show:false},
  944. axisTick: {show:false},
  945. splitArea: {show:false},
  946. splitLine: {show:false},
  947. axisLabel: {show:false}
  948. }
  949. ],
  950. xAxis : [
  951. {
  952. type : 'value',
  953. axisLine: {show:true,lineStyle:{color:'#cccccc'}},
  954. axisTick: {show:true,lineStyle:{color:'#cccccc'}},
  955. axisLabel:{formatter:'{value}%',textStyle:{color:'#cccccc'}},
  956. splitArea: {show:false},
  957. splitLine: {show:false}
  958. },
  959. {
  960. type : 'value',
  961. axisLine: {show:true,lineStyle:{color:'#cccccc'}},
  962. axisTick: {show:true,lineStyle:{color:'#cccccc'}},
  963. axisLabel:{formatter:'{value}',textStyle:{color:'#cccccc'}},
  964. splitArea: {show:false},
  965. splitLine: {show:false}
  966. }
  967. ],
  968. series : [
  969. {
  970. name:'续签量',
  971. type:'bar',
  972. barWidth : 20,//柱图宽度
  973. stack: '人数',
  974. xAxisIndex:1,
  975. itemStyle: {normal: {barBorderRadius:0,color:'#ffc149', label:{show:false, position: 'insideRight',textStyle:{color:'#fff'}}}},
  976. data:renewArrS
  977. },
  978. {
  979. name:'去年签约量',
  980. type:'bar',
  981. barWidth : 20,//柱图宽度
  982. stack: '人数',
  983. xAxisIndex:1,
  984. itemStyle: {normal: {barBorderRadius:0,color:'#A0DC28', label:{show:false, position: 'insideRight'}}},
  985. data:qylAmountArr,
  986. },
  987. {
  988. name:'续签率',
  989. type:'line',
  990. itemStyle: {normal: {color:'red', label:{show:true,formatter:function(p){return p.value +"%";},textStyle:{color:'red'},position:'bottom'}}},
  991. data:rateArrS,
  992. markLine:{
  993. itemStyle:{
  994. normal:{lineStyle:{type:'solid',color:'#925cfe'},label:{show:true,formatter:function(p){return p.value +"%";},textStyle:{color:'#925cfe'},position:'bottom'}}
  995. },
  996. large:true,
  997. effect:{
  998. show: false,
  999. loop: true,
  1000. period: 0,
  1001. scaleSize : 2,
  1002. color : null,
  1003. shadowColor : null,
  1004. shadowBlur : null
  1005. },
  1006. data:[
  1007. [
  1008. {name: '标线1起点', value: qylAmountArr,xAxis:-1, xAxis: qylAmountArr}, // 当xAxis为类目轴时,数值1会被理解为类目轴的index,通过xAxis:-1|MAXNUMBER可以让线到达grid边缘
  1009. {name: '标线1终点', yAxis: nameArr[nameArr.length-1], xAxis: qylAmountArr}, // 当xAxis为类目轴时,字符串'周三'会被理解为与类目轴的文本进行匹配
  1010. ],
  1011. ]
  1012. }
  1013. }
  1014. ]
  1015. };
  1016. myChart.setOption(option);
  1017. },
  1018. echartsTDFun = function(elementId,qylAmountArr,renewArrS,rateArrS,nameArr){//团队进展图表
  1019. var myChart = echarts.init(document.getElementById(elementId));
  1020. var height = nameArr.length*customHeight;
  1021. var gridY = current_team_index==0?30:0;
  1022. var option = {
  1023. grid: {x:60,y: gridY,height:height,borderWidth:0},
  1024. yAxis : [
  1025. {
  1026. type : 'category',
  1027. data : nameArr,
  1028. axisLine: {show:false},
  1029. axisTick: {show:false},
  1030. splitArea: {show:false},
  1031. splitLine: {show:false},
  1032. axisLabel: {show:false}
  1033. }
  1034. ],
  1035. xAxis : [
  1036. {
  1037. type : 'value',
  1038. axisLine: {show:true,lineStyle:{color:'#cccccc'}},
  1039. axisTick: {show:true,lineStyle:{color:'#cccccc'}},
  1040. axisLabel:{formatter:'{value}%',textStyle:{color:'#cccccc'}},
  1041. splitArea: {show:false},
  1042. splitLine: {show:false}
  1043. },
  1044. {
  1045. type : 'value',
  1046. axisLine: {show:true,lineStyle:{color:'#cccccc'}},
  1047. axisTick: {show:true,lineStyle:{color:'#cccccc'}},
  1048. axisLabel:{formatter:'{value}',textStyle:{color:'#cccccc'}},
  1049. splitArea: {show:false},
  1050. splitLine: {show:false}
  1051. }
  1052. ],
  1053. series : [
  1054. {
  1055. name:'续签量',
  1056. type:'bar',
  1057. barWidth : 20,//柱图宽度
  1058. stack: '人数',
  1059. xAxisIndex:1,
  1060. itemStyle: {normal: {barBorderRadius:0,color:'#ffc149', label:{show:false, position: 'insideRight',textStyle:{color:'#fff'}}}},
  1061. data:renewArrS
  1062. },
  1063. {
  1064. name:'去年签约量',
  1065. type:'bar',
  1066. barWidth : 20,//柱图宽度
  1067. stack: '人数',
  1068. xAxisIndex:1,
  1069. itemStyle: {normal: {barBorderRadius:0,color:'#A0DC28', label:{show:false, position: 'insideRight'}}},
  1070. data:qylAmountArr,
  1071. },
  1072. {
  1073. name:'续签率',
  1074. type:'line',
  1075. itemStyle: {normal: {color:'red', label:{show:true,formatter:function(p){return p.value +"%";},textStyle:{color:'red'},position:'bottom'}}},
  1076. data:rateArrS,
  1077. markLine:{
  1078. itemStyle:{
  1079. normal:{lineStyle:{type:'solid',color:'#925cfe'},label:{show:true,formatter:function(p){return p.value +"%";},textStyle:{color:'#925cfe'},position:'bottom'}}
  1080. },
  1081. large:true,
  1082. effect:{
  1083. show: false,
  1084. loop: true,
  1085. period: 0,
  1086. scaleSize : 2,
  1087. color : null,
  1088. shadowColor : null,
  1089. shadowBlur : null
  1090. },
  1091. data:[
  1092. [
  1093. {name: '标线1起点', value: qylAmountArr,xAxis:-1, xAxis: qylAmountArr}, // 当xAxis为类目轴时,数值1会被理解为类目轴的index,通过xAxis:-1|MAXNUMBER可以让线到达grid边缘
  1094. {name: '标线1终点', yAxis: nameArr[nameArr.length-1], xAxis: qylAmountArr}, // 当xAxis为类目轴时,字符串'周三'会被理解为与类目轴的文本进行匹配
  1095. ],
  1096. ]
  1097. }
  1098. }
  1099. ]
  1100. };
  1101. myChart.setOption(option);
  1102. };
  1103. /*****************************************************************************/
  1104. /***** 返回事件处理 **********/
  1105. /*****************************************************************************/
  1106. mui.back = function(){
  1107. var arr = JSON.parse(plus.storage.getItem("levelParamsArr"));
  1108. if(arr==null || arr.length==1){//返回到管理员首页,并刷新数据
  1109. plus.storage.removeItem("userLevel");
  1110. plus.storage.removeItem("userArea");
  1111. var mainPage =plus.webview.getWebviewById("admin.html");
  1112. mui.fire(mainPage, "refreshData");
  1113. plus.storage.removeItem("levelParamsArr");
  1114. //关闭筛选页面
  1115. var shaixuan = plus.webview.getWebviewById("xq-shaixuan.html");
  1116. if(shaixuan){
  1117. shaixuan.close();
  1118. }
  1119. setTimeout(function(){
  1120. self.close();
  1121. },500)
  1122. }else{ //加载当前级别数据
  1123. current_team_index = 0;
  1124. arr.pop();
  1125. curLeveArr = arr[arr.length-1];
  1126. area = curLeveArr[1].params.code;
  1127. level = curLeveArr[1].params.level;
  1128. plus.storage.setItem("levelParamsArr",arr.length==0?plus.storage.removeItem("levelParamsArr"):JSON.stringify(arr));
  1129. loadAllData(curLeveArr);
  1130. }
  1131. }
  1132. document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);