1moment.locale('jp',{ 2 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split('_'), 3 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 4 weekdays: 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'), 5 weekdaysShort: 'æ¥æ_ææ_ç«æ_æ°´æ_æ¨æ_éæ_åæ'.split('_'), 6 weekdaysMin: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 7 longDateFormat: { 8 LT: 'HH:mm', 9 LTS: 'HH:mm:ss', 10 L: 'YYYY-MM-DD', 11 LL: 'YYYYå¹´MMæDDæ¥', 12 LLL: 'YYYYå¹´MMæDDæ¥Ahç¹mmå', 13 LLLL: 'YYYYå¹´MMæDDæ¥ddddAhç¹mmå', 14 l: 'YYYY-M-D', 15 ll: 'YYYYå¹´MæDæ¥', 16 lll: 'YYYYå¹´MæDæ¥ HH:mm', 17 llll: 'YYYYå¹´MæDæ¥dddd HH:mm' 18 }, 19 meridiemParse: /忍æ|åå|æ£å|åå¾|å¤/, 20 meridiemHour: function (hour, meridiem) { 21 if (hour === 12) { 22 hour = 0; 23 } 24 if (meridiem === '忍' || meridiem === 'æ' || 25 meridiem === 'åå') { 26 return hour; 27 }
27 else if (meridiem === 'åå¾' || meridiem === 'å¤') { 28 return hour + 12; 29 } else { 30 // 'æ£å' 31 return hour >= 11 ? hour : hour + 12; 32 } 33 }, 34 meridiem: function (hour, minute, isLower) { 35 var hm = hour * 100 + minute; 36 if (hm < 600) { 37 return '忍'; 38 } else if (hm < 900) { 39 return 'æ'; 40 } else if (hm < 1130) { 41 return 'åå'; 42 } else if (hm < 1230) { 43 return 'æ£å'; 44 } else if (hm < 1800) { 45 return 'åå¾'; 46 } else { 47 return 'å¤'; 48 } 49 }, 50 calendar: { 51 sameDay: '[æ¬æ¥]LT', 52 nextDay: '[ææ¥]LT', 53 nextWeek: '[ä¸]ddddLT', 54 lastDay: '[æ¨æ¥]LT', 55 lastWeek: '[ä¸]ddddLT', 56 sameElse: 'L' 57 }, 58 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 59 ordinal: function (number, period) { 60 switch (period) { 61 case 'd': 62 case 'D': 63 case 'DDD': 64 return number + 'æ¥'; 65 case 'M': 66 return number + 'æ'; 67 case 'w': 68 case 'W': 69 return number + 'é±'; 70 default: 71 return number; 72 } 73 }, 74 relativeTime:{ 75 future: '%så ', 76 past: '%så', 77 s: 'ä½ç§', 78 ss: '%dç§', 79 m: '1å', 80 mm: '%då', 81 h: '1æé', 82 hh: '%dæé', 83 d: '1æ¥é', 84 dd: '%dæ¥é', 85 M: '1ã¶æé', 86 MM: '%dã¶æé', 87 y: '1å¹´é', 88 yy: '%då¹´é' 89 }, 90 week: { 91 dow: 1, 92 doy: 4 93 } 94}); 95 96moment.locale('zh-cn',{ 97 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split('_'), 98 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 99 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 100 weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å '.split('_'), 101 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 102 longDateFormat: { 103 LT: 'HH:mm', 104 LTS: 'HH:mm:ss', 105 L: 'YYYY-MM-DD', 106 LL: 'YYYYå¹´MMæDDæ¥', 107 LLL: 'YYYYå¹´MMæDDæ¥Ahç¹mmå', 108 LLLL: 'YYYYå¹´MMæDDæ¥ddddAhç¹mmå', 109 l: 'YYYY-M-D', 110 ll: 'YYYYå¹´MæDæ¥', 111 lll: 'YYYYå¹´MæDæ¥ HH:mm', 112 llll: 'YYYYå¹´MæDæ¥dddd HH:mm' 113 }, 114 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 115 meridiemHour: function (hour, meridiem) { 116 if (hour === 12) { 117 hour = 0; 118 } 119 if (meridiem === '忍' || meridiem === 'æ©ä¸' || 120 meridiem === 'ä¸å') { 121 return hour; 122 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 123 return hour + 12; 124 } else { 125 // 'ä¸å' 126 return hour >= 11 ? hour : hour + 12; 127 } 128 }, 129 meridiem: function (hour, minute, isLower) { 130 var hm = hour * 100 + minute; 131 if (hm < 600) { 132 return '忍'; 133 } else if (hm < 900) { 134 return 'æ©ä¸'; 135 } else if (hm < 1130) { 136 return 'ä¸å'; 137 } else if (hm < 1230) { 138 return 'ä¸å'; 139 } else if (hm < 1800) { 140 return 'ä¸å'; 141 } else { 142 return 'æä¸'; 143 } 144 }, 145 calendar: { 146 sameDay: '[ä»å¤©]LT', 147 nextDay: '[æå¤©]LT', 148 nextWeek: '[ä¸]ddddLT', 149 lastDay: '[æ¨å¤©]LT', 150 lastWeek: '[ä¸]ddddLT', 151 sameElse: 'L' 152 }, 153 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|å¨)/, 154 ordinal: function (number, period) { 155 switch (period) { 156 case 'd': 157 case 'D': 158 case 'DDD': 159 return number + 'æ¥'; 160 case 'M': 161 return number + 'æ'; 162 case 'w': 163 case 'W': 164 return number + 'å¨'; 165 default: 166 return number; 167 } 168 }, 169 relativeTime: { 170 future: '%så ', 171 past: '%så', 172 s: 'å ç§', 173 ss: '%dç§', 174 m: '1åé',
175 mm: '%dåé', 176 h: '1å°æ¶', 177 hh: '%då°æ¶', 178 d: '1天', 179 dd: '%d天', 180 M: '1个æ', 181 MM: '%d个æ', 182 y: '1å¹´', 183 yy: '%då¹´' 184 }, 185 week: { 186 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 187 dow: 1, // Monday is the first day of the week. 188 doy: 4 // The week that contains Jan 4th is the first week of the year. 189 } 190}); 191 192var Customer = (function(){ 193 194 var __colors = ['#FFAE2D','#5FB0FF','#6EC952','#909CF7','#FF8C45','#44CAF6','#A9E025','#B593EB','#FB7A7A','#61A1FA','#6CE5C2','#FC81B4','#59EBEA','#7CE599']; 195 196 var __currencies = { 197 1: "$", 198 3: "£", 199 4: "â¬", 200 5: "â¬", 201 6: "ï¿¥", 202 7: "CDN$", 203 35691: "â¬", 204 44551: "â¬", 205 771770: "$", 206 44571: "â¹", 207 111172: "$" 208 }; 209 210 var closeSelfModal = function($modal){ 211 // $modal.animate({'max-height':'5%'}, 'fast', function(){ 212 // $modal.removeClass('open'); 213 // $('.modal-backdrop').fadeOut('fast'); 214 // // $('html').css({'overflow-y':'auto'}); 215 // $modal.css({'max-height':'5%'}); 216 // $modal.removeClass('fast'); 217 // }); 218 $modal.removeClass('open'); 219 Custombox.modal.closeAll(); 220 }; 221 var showSelfModal = function(id, maxHeight,opend_cb,closed_cb){ 222 var $modal = $('#'+id); 223 if($modal.length > 0){ 224 var eleHeight = '70%'; 225 //妿éè¦å»æé®ç½©è¯·æ¾å¼ 226 // $('.modal-backdrop').hide(); 227 228 $modal.addClass('open'); 229 $modal.find('.close').unbind('click'); 230 $modal.find('.close').bind('click', function(){ 231 closeSelfModal($modal); 232 }); 233 $modal.find('button[data-dismiss="modal"]').unbind('click'); 234 $modal.find('button[data-dismiss="modal"]').bind('click', function(){ 235 closeSelfModal($modal); 236 }); 237 if(maxHeight) eleHeight = maxHeight; 238 $modal.css({'max-height': eleHeight}); 239 // $modal.modal('show'); 240 //éèå¤é¨çæ»å¨æ¡ 241 // $('html').css({'overflow-y':'hidden'}); 242 // $('.modal-backdrop').show(); 243 // $modal.animate({'max-height':eleHeight}, 'fast', function(){}); 244 245 var overlay = {active: true, close: true, speedIn: 500, speedOut: 100}; 246 if(opend_cb){ 247 overlay['onComplete'] = opend_cb; 248 } 249 overlay['onClose'] = function () { 250 $('.self-modal').removeClass('open'); 251 if(closed_cb) closed_cb(); 252 }; 253 254 var custom_box = new Custombox.modal({loader:{active: false}, overlay:overlay,content: {close: true,onClose:function(){$('.self-modal').removeClass('open');},positionY: 'bottom',target: '#'+id}, effect:'rotate', delay: 150, animateFrom:'bottom', animateTo:'top', speedIn: 500, speedOut: 100}); 255 custom_box.open(); 256 return custom_box; 257 } 258 }; 259 260 var rigisterChartResize = function(chart, $parent){ 261 $parent.unbind('resize'); 262 $parent.bind('resize', function(){ 263 setTimeout(function(){ 264 chart.resize(); 265 },100); 266 }); 267 }; 268 269 var commafyback = function commafyback(num) { 270 var x = num.split(','); 271 return parseFloat(x.join("")); 272 }; 273 274 var commafy = function commafy(num, fixedNum) { 275 num = parseFloat(num); 276 if(fixedNum != 0 && !fixedNum) fixedNum = 2; 277 if(num || 0 == num){ 278 num = num.toFixed(fixedNum) + ''; 279 var re = /\d{1,3}(?=(\d{3})+(\.\d*)?$)/g; 280 num = num.replace(re, '$&,'); 281 282 return num; 283 } 284 285 return '' 286 }; 287 var commafyTail = function commafyTail(num, fixedNum) { 288 return commafy(num,fixedNum).replace('.00',''); 289 }; 290 var getToolTipValue = function(value){ 291 var v1 = 'N/A'; 292 if(value&& -1 !== value){ 293 //1ä½å°æ°çæ åµ 294 if((value + '').indexOf('.') >=0 && value.toString().split(".")[1].length == 1){ 295 v1 = commafy(value, 1); 296 }else if((value + '').indexOf('.') >=0){ 297 v1 = commafy(value, value.toString().split(".")[1].length); 298 } else{ 299 v1 = commafy(value, 0); 300 } 301 } 302 303 return v1; 304 }; 305 var formatEchartToolTip = function(params){ 306 var value = params[0].name; 307 var t = "" + value; 308 var dateExp = /[0-9]{4}-[0-9]{2}-[0-9]{2}/g; 309 if(t && dateExp.test(t.trim())){ 310 var mw; 311 if(GLOBAL_MOMENT_LANGUAGE){ 312 mw = moment(t.trim(), 'YYYY-MM-DD').locale(GLOBAL_MOMENT_LANGUAGE).format('dddd'); 313 }else{ 314 mw = moment(t.trim(), 'YYYY-MM-DD').locale('zh-cn').format('ddd'); 315 } 316 t = t + "(" + mw + ")"; 317 } 318 var len = params.length; 319 if (len === 0) { 320 return null; 321 } else if (len === 1) { 322 var c = params[0].color; 323 var v1 = getToolTipValue(params[0].value); 324 return '<div class="my-tooltip">' + 325 '<div>' + t + '</div>' + 326 '<div>' + '<div class="my-tooltip-mark1" style="background-color: ' + c + '"></div>' + '<span>' + params[0].seriesName + '</span>' + '<span class="my-tooltip-value">' + v1 + '</span>' + '</div>' 327 + '</div>'; 328 } else { 329 var c1 = params[0].color;
330 var c2 = params[1].color; 331 var v1 = params[0].value < 5 && params[0].value ? '< 5' : getToolTipValue(params[0].value); 332 var v2; 333 if (params[1].seriesName === "è¯åå¼") { 334 v2 = getToolTipValue(params[1].value); 335 v2 = isNaN(v2)?v2:Number(v2).toFixed(1); 336 } else { 337 v2 = getToolTipValue(params[1].value); 338 } 339 let tipsHtml = '<div class="my-tooltip">' + 340 '<div>' + t + '</div>' + 341 '<div>' + '<div class="my-tooltip-mark1" style="background-color:' + c1 + ' "></div>' + '<span>' + params[0].seriesName + '</span>' + '<span class="my-tooltip-value">' + v1 + '</span>' + '</div>' + 342 '<div>' + '<div class="my-tooltip-mark2" style="background-color:' + c2 + ' "></div>' + '<span>' + params[1].seriesName + '</span>' + '<span class="my-tooltip-value">' + v2 + '</span>' + '</div>'; 343 if(len == 3){ 344 tipsHtml += '<div>' + '<div class="my-tooltip-mark2" style="background-color:' + params[2].color + ' "></div>' + '<span>' + params[2].seriesName + '</span>' + '<span class="my-tooltip-value">' + getToolTipValue(Number(params[2].value).toFixed(0)); + '</span>' + '</div>' 345 } 346 tipsHtml += '</div>'; 347 348 return tipsHtml 349 } 350 }; 351 352 var mapToArray = function(mapData){ 353 var array = []; 354 for(var key in mapData){ 355 array.push($.extend(true, {key:key}, mapData[key])); 356 } 357 return array; 358 }; 359 360 var formatEchartToolTipV2 = function (params) { 361 var currency = __currencies[GLOBAL_MARKET_ID]; 362 var t = "" + params[0].name; 363 var dateExp = /[0-9]{4}-[0-9]{2}-[0-9]{2}/g; 364 if(t && dateExp.test(t.trim())){ 365 var mw; 366 if(GLOBAL_MOMENT_LANGUAGE){ 367 mw = moment(t.trim(), 'YYYY-MM-DD').locale(GLOBAL_MOMENT_LANGUAGE).format('dddd'); 368 }else{ 369 mw = moment(t.trim(), 'YYYY-MM-DD').locale('zh-cn').format('ddd'); 370 } 371 t = t + "(" + mw + ")"; 372 } 373 var result = t + "</br>"; 374 params.forEach(function (item) { 375 result += item.marker + item.seriesName + " : <span style='display: inline-block;width: 100px;text-align: right'>" + currency + item.value +"</span></br>"; 376 }); 377 return result; 378 }; 379 380 var formatEchartToolTipV3 = function(params){ 381 var currency = __currencies[GLOBAL_MARKET_ID]; 382 var value = params[0].name; 383 var t = "" + value; 384 var dateExp = /[0-9]{4}-[0-9]{2}-[0-9]{2}/g; 385 if(t && dateExp.test(t.trim())){ 386 var mw; 387 if(GLOBAL_MOMENT_LANGUAGE){ 388 mw = moment(t.trim(), 'YYYY-MM-DD').locale(GLOBAL_MOMENT_LANGUAGE).format('dddd'); 389 }else{ 390 mw = moment(t.trim(), 'YYYY-MM-DD').locale('zh-cn').format('ddd'); 391 } 392 t = t + "(" + mw + ")"; 393 } 394 var len = params.length; 395 if (len === 0) { 396 return null; 397 } else if (len === 1) { 398 var c = params[0].color; 399 var v1 = getToolTipValue(params[0].value); 400 return '<div class="my-tooltip">' + 401 '<div>' + t + '</div>' + 402 '<div>' + '<div class="my-tooltip-mark1" style="background-color: ' + c + '"></div>' + '<span>' + params[0].seriesName + '</span>' + '<span class="my-tooltip-value">' + v1 + '</span>' + '</div>' 403 + '</div>'; 404 } else { 405 var c1 = params[0].color; 406 var c2 = params[1].color; 407 var v1 = (params[0].value < 5 && params[0].value && c1 == "#FFAE2D" && (params[0].seriesName == "Sales/M" || params[0].seriesName == "è©²å½æå£²ä¸" || params[0].seriesName == "彿éé")) ? '< 5' : getToolTipValue(params[0].value); 408 var v2 = getToolTipValue(params[1].value); 409 if (v2 == 'N/A') currency = ''; 410 return '<div class="my-tooltip">' + 411 '<div>' + t + '</div>' + 412 '<div>' + '<div class="my-tooltip-mark1" style="background-color:' + c1 + ' "></div>' + '<span>' + params[0].seriesName + '</span>' + '<span class="my-tooltip-value">' + v1 + '</span>' + '</div>' + 413 '<div>' + '<div class="my-tooltip-mark2" style="background-color:' + c2 + ' "></div>' + '<span>' + params[1].seriesName + '</span>' + '<span class="my-tooltip-value">' + currency + v2 + '</span>' + '</div>' 414 + '</div>'; 415 } 416 }; 417 418 var formatCurrency = function(num, fixedNum){ 419 // var n = commafy(num,fixedNum) ? __currencies[GLOBAL_MARKET_ID] + '' + commafy(num,fixedNum) : 'N/A'; 420 421 if (Number(GLOBAL_MARKET_ID) == 6) { 422 return commafy(num,fixedNum) ? commafy(num,fixedNum) + 'å' : 'N/A'; 423 } 424 var n = commafy(num,fixedNum) ? __currencies[GLOBAL_MARKET_ID] + '' + commafy(num,fixedNum) : 'N/A'; 425 return n; 426 }; 427
428 var showChartLoading = function(chart,chartId,mannualClose){ 429 if(chart) chart.dispose(); 430 var chartEle = document.getElementById(chartId); 431 //å¾è¡¨å ç´ è¿æªå±ç¤º 432 if(!chartEle){ 433 setTimeout(function(){ 434 showChartLoading(chart,chartId); 435 },500); 436 return; 437 } 438 var chartInstance = echarts.init(chartEle, 'light'); 439 let loadingText = "å è½½ä¸..."; 440 switch (GLOBAL_MOMENT_LANGUAGE) { 441 case "en": 442 loadingText = "Loading..."; 443 break; 444 case "jp": 445 loadingText = "èªã¿è¾¼ã¿ä¸..."; 446 break; 447 default: 448 loadingText = "å è½½ä¸..."; 449 break; 450 } 451 chartInstance.showLoading({ 452 text: '', 453 color: '#FFA750', 454 textColor: '#9FA3A8', 455 maskColor: 'rgba(255, 255, 255, 0.8)', 456 zlevel: 0 457 }); 458 if(!mannualClose && chartInstance){ 459 //宿¶å ³é 460 setTimeout(function(){ 461 chartInstance.hideLoading(); 462 },3000); 463 } 464 }; 465 var showChartLoadingFinished = function(chart,chartId,mannualClose){ 466 if(chart) chart.dispose(); 467 var chartEle = document.getElementById(chartId); 468 //å¾è¡¨å ç´ è¿æªå±ç¤º 469 if(!chartEle){ 470 setTimeout(function(){ 471 showChartLoadingFinished(chart,chartId); 472 },500); 473 return; 474 } 475 var chartInstance = echarts.init(chartEle, 'light'); 476 let loadingText = "å è½½ä¸..."; 477 switch (GLOBAL_MOMENT_LANGUAGE) { 478 case "en": 479 loadingText = "Loading..."; 480 break; 481 case "jp": 482 loadingText = "èªã¿è¾¼ã¿ä¸..."; 483 break; 484 default: 485 loadingText = "å è½½ä¸..."; 486 break; 487 } 488 chartInstance.showLoading({ 489 text: '',
490 color: '#FFA750', 491 textColor: '#9FA3A8', 492 maskColor: 'rgba(255, 255, 255, 0.8)', 493 zlevel: 0 494 }); 495 }; 496 var closeChartLoading = function(chart){ 497 if(chart) chart.hideLoading(); 498 }; 499 500 var sizeOfInt = function(x){ 501 var sizeTable = [9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Math.floor(Number.MAX_VALUE)]; 502 if(x || x >=0){ 503 var intNumber = parseInt(x,10); 504 for(var i=0; ; i++){ 505 if(intNumber <= sizeTable[i]) 506 return i + 1; 507 } 508 } 509 }; 510 var getHighEvenNumber = function(numberValue){ 511 var base = parseInt('' + (Math.pow(10,sizeOfInt(numberValue) -1)),10); 512 var delta = parseInt('' + (numberValue / base),10); 513 if ((delta & 1) == 1) { 514 ++delta; 515 } 516 return base * delta; 517 }; 518 var getValueByKey = function(mapObjArray,key){ 519 for(var i=0;i<mapObjArray.length;i++){ 520 var map = mapObjArray[i]; 521 if(map['key'] == key) return map['value']; 522 } 523 524 return 0; 525 }; 526 var containsKey = function(mapObjArray,key){ 527 for(var i=0;i<mapObjArray.length;i++){ 528 var map = mapObjArray[i]; 529 if(map['key'] && map['key'] == key) return true; 530 } 531 532 return false; 533 }; 534 var putToMap = function(mapObjArray,obj){ 535 for(var i=0;i<mapObjArray.length;i++){ 536 var map = mapObjArray[i]; 537 if(map['key'] == obj['key']) { 538 map['value'] = obj['value']; 539 return; 540 } 541 } 542 if(obj && obj.key >= 0) mapObjArray.push(obj) 543 }; 544 //计ç®å¾è¡¨çæ¥é¿ 545 var calcChartStepSize = function(numberArray, stepNumber){ 546 //æå°æ¥é¿ 547 var MIN_CLUSTER_STEP = 10; 548 if(!stepNumber || stepNumber<= 0) stepNumber = 8; 549 var sumValue = 0; 550 var maxValue = 0; 551 var avgValue = 0; 552 for(var i=0;i < numberArray.length;i++){ 553 var num = numberArray[i]; 554 sumValue = sumValue + num; 555 if(num > maxValue) maxValue = num; 556 } 557 if(numberArray.length > 0) avgValue = sumValue / numberArray.length; 558 //åèæ¥é¿ 559 var step = getHighEvenNumber(avgValue) / (stepNumber /2);
560 if (step < MIN_CLUSTER_STEP) step = MIN_CLUSTER_STEP; 561 var map = []; 562 563 //åå§åæ¥é¿åºé´ï¼æ°éç»è®¡é»è®¤è®¾ç½®ä¸º0 564 for (var i = 0; i <= maxValue / step; i++) { 565 var obj = {key:step * i,value:0}; 566 putToMap(map,obj); 567 } 568 //ç»è®¡åºé´åå¸è®¡æ° 569 for(var i=0;i<numberArray.length;i++){ 570 var d = numberArray[i]; 571 if (d == 0) { 572 var obj = {key:0,value:getValueByKey(map,0) + 1}; 573 putToMap(map,obj); 574 continue; 575 } 576 var key; 577 if (parseInt(d) == d && containsKey(map,parseInt(d))) { 578 key = parseInt(d) - step; 579 } else { 580 var c = parseInt(d.toFixed(parseInt('' + Math.floor(Math.log10(step))))); 581 key = c - parseInt('' + (c % step)); 582 } 583 var obj = {key:key,value:getValueByKey(map,key) + 1}; 584 putToMap(map,obj); 585 } 586 //è¿æ»¤æåºé´å æ æ°æ®çæ¥é¿å¼ 587 var mapNew = []; 588 for(var i=0;i<map.length;i++){ 589 var obj = map[i]; 590 var objNew = {key:obj.key,value:obj.value}; 591 if(objNew.value) putToMap(mapNew,objNew); 592 } 593 var mapLast,mapNeedSum; 594 //妿æ¥é¿ç个æ°è¶ åºåéè¦ç´¯å æå°çæ¥é¿ 595 //è¿é使ç¨ä¸¤ä¸ªååºæ¥æåï¼å æç §å¼ï¼ä¸ªæ°ï¼æååæç §åºé´å¼æå 596 mapNew.sort(function(o1,o2){ 597 var v1 = parseInt(o1.value); 598 var v2 = parseInt(o2.value); 599 if(v1 == v2) return o1.key - o1.key; 600 return v1 - v2; 601 }); 602 //åç 603 var sliceNum = mapNew.length - stepNumber; 604 if(sliceNum > 0){ 605 mapLast = mapNew.slice(sliceNum); 606 mapNeedSum = mapNew.slice(0, sliceNum); 607 }else{ 608 mapLast = mapNew; 609 mapNeedSum = []; 610 } 611 mapLast.sort(function(o1,o2){ 612 return o1.key - o2.key; 613 }); 614 for(var i=0;i<mapNeedSum.length;i++){ 615 var sumObj = mapNeedSum[i]; 616 for(var j=0;j<mapLast.length;j++){ 617 var newObj = mapLast[j]; 618 if (sumObj.key <= newObj.key || j + 1 == mapLast.length) { 619 newObj.value = parseInt(sumObj.value) + parseInt(newObj.value); 620 break; 621 } 622 } 623 } 624 625 //æåºé´å¼ä»å°å°å¤§çæåº 626 mapLast.sort(function(o1,o2){ 627 o1.key - o2.key; 628 }); 629 630 return mapLast; 631 }; 632 633 //计ç®ä»·æ ¼å¾è¡¨æ¥é¿ 634 var calcPriceChartStepSize = function(numberArray){ 635 //copy é¿å å½±å 636 var map = calcChartStepSize(numberArray,null); 637 var collect = []; 638 for(var i=0;i<map.length;i++){ 639 var obj = map[i]; 640 var objNew = {key:obj.key,value:obj.value}; 641 collect.push(objNew); 642 } 643 644 //slice 645 // var lastIndex = collect.length - 1; 646 // if (lastIndex > 4 && collect[lastIndex].value == 1 && collect[lastIndex - 1].value == 1) { 647 // collect[lastIndex - 1].value = 1 << 1; 648 // collect.splice(lastIndex -1, 1); 649 // } 650 collect.sort(function(o1,o2){ 651 o1.key - o2.key; 652 }); 653 654 return collect; 655 }; 656 var dataArrsReplaceNone = function(arrs) { 657 if (!arrs) return arrs; 658 let datas = []; 659 for (let i of arrs) { 660 datas.push(i !== -1 ? i : null) 661 } 662 return datas; 663 }; 664 var dataNAReplace = function (data,decimal) { 665 return data && data !== -1 ? Customer.commafyTail(data,decimal) : 'N/A'; 666 }; 667 668 var getUrlParam = function(name){ 669 var query = window.location.search.substring(1); 670 var vars = query.split('&'); 671 for (var i=0;i<vars.length;i++) { 672 var pair = vars[i].split('='); 673 if(pair[0] == name){return pair[1];} 674 } 675 return ''; 676 }; 677 678 return { 679 //åºé¨å¼¹çªå®ç°ï¼è®°å¾å»ædialogå±çdiv 680 showSelfModal:showSelfModal, 681 closeSelfModal:closeSelfModal, 682 //chart resize äºä»¶ åºå¼ 683 rigisterChartResize:rigisterChartResize, 684 //å°æ°å转å为ååä½ 685 commafy:commafy, 686 //廿ååä½ 687 commafyback:commafyback, 688 commafyTail:commafyTail, 689 //èªå®ä¹echarts tooltip 690 formatEchartToolTip:formatEchartToolTip, 691 //åªæä¸æ¡ä»·æ ¼æ²çº¿å è´§å¸ç¬¦å· 692 formatEchartToolTipV2:formatEchartToolTipV2, 693 // ä¸¤æ¡æ²çº¿ï¼å ¶ä¸ä»·æ ¼éè¦å ä¸è´§å¸ç¬¦å· 694 formatEchartToolTipV3:formatEchartToolTipV3, 695 //mapæ°æ®è½¬array 696 mapToArray:mapToArray, 697 //ToolTipæ°å¼ 698 getToolTipValue:getToolTipValue, 699 formatCurrency:formatCurrency, 700 //å±ç¤ºå¾è¡¨å è½½ä¸ 701 showChartLoading:showChartLoading, 702 showChartLoadingFinished:showChartLoadingFinished, 703 //å ³éå¾è¡¨å è½½ä¸ 704 closeChartLoading:closeChartLoading, 705 //计ç®å¾è¡¨æ°å¼çæ¥é¿ 706 calcChartStepSize:calcChartStepSize, 707 //计ç®ä»·æ ¼å¾è¡¨çæ¥é¿ 708 calcPriceChartStepSize:calcPriceChartStepSize, 709 //å¾è¡¨æ¿æ¢ä¸å¯ç¨çå¼ä½¿ç¨Nullå ä½ 710 dataArrsReplaceNone:dataArrsReplaceNone, 711 //æ ¼å¼åå¾è¡¨ä¸ºNullçç¹ä¸ºN/A 712 dataNAReplace:dataNAReplace, 713 // è·åurlä¸çåæ° 714 getUrlParam:getUrlParam, 715 //è²å¼ 716 color:__colors 717 }; 718 719})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.