123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- var indexName = {'index_128': '预约总量', 'index_129': '居民预约量', 'index_130': '代预约量'};
- function getStartDate(chooseYear){
- // 按年度来计算的时候,开始时间是该年度7月1号还是到下一个年的6月30号结束
- if(chooseYear == 2016){
- return chooseYear + "-08-01";
- }else{
- return chooseYear+'-07-01';
- }
- }
- //获取结束时间
- function getEndDate(chooseYear){
- chooseYear = parseInt(chooseYear);
- var endDate = new Date((chooseYear+1) + '-06-30'),
- now = new Date();
- if(now <= endDate){
- return now.format("yyyy-MM-dd");
- }else{
- return (chooseYear+1) + '-06-30';
- }
- }
- //获取结束时间29
- function getEndDate29(chooseYear){
- chooseYear = parseInt(chooseYear);
- var endDate = new Date((chooseYear+1) + '-06-29'),
- now = new Date();
- if(now <= endDate){
- return now.format("yyyy-MM-dd");
- }else{
- return (chooseYear+1) + '-06-29';
- }
- }
- /**
- * 获取多少天前的日期
- */
- function getDateBefore(days) {
- var now = new Date();
- var date = new Date(now.getTime() - days * 24 * 3600 * 1000);
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- var day = date.getDate();
- var hour = date.getHours();
- var minute = date.getMinutes();
- var second = date.getSeconds();
- return year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day);
- }
- /*
- * 获取用来排序的字段值,返回数组
- * 参数: list - 列表, key - 字段的名称
- */
- function getKeyValueArr(list, key){
- var arr = [];
- for(var k in list){
- arr.push(list[k][key]);
- }
-
- return arr;
- }
- /*
- * 排名
- */
- function soreRank(arr){
- var temp = [];
- var lis = [];
- for(var i=0;i<arr.length;i++){
- lis.push(arr[i]);
- }
- lis = _.uniq(lis);
- for(var i=0;i<arr.length;i++){
- temp[i] = lis.indexOf(arr[i])+1;
- }
-
- return temp;
- }
- /*
- * 绘制饼图数据处理 // elId, arry, title, hasNum,colors,radius,noLedend,param
- */
- function handlePieData(arg){
- var legend = {
- orient: 'vertical',
- right: '15%',
- y:'center',
- };
- var colorList=[]
- legendNames = [];
- var arr1 = _.map(arg.arry, function(o,i){
- var obj = {
- name: o.name,
- count: parseInt(o.amount||o[arg.param])
- };
- legendNames.push(obj);
- if(o.code){
- colorList.push(arg.colors[o.code])
- }else{
- colorList.push(arg.colors[i])
- }
- return {
- value: parseInt(o.amount||o[arg.param]),
- name: o.name
- }
- });
- legend.formatter = function(name){
- if(arg.hasNum){
- var target;
- for (var i = 0, l = legendNames.length; i < l; i++) {
- if (legendNames[i].name == name) {
- target = parseInt(legendNames[i].count);
- }
- }
- return name+": "+target
- }else{
- return name
- }
- }
- if(arg.noLedend){ //true时无注释
- drawPie(arg.elId, arr1, colorList, null, arg.position||['50%', '51%'], arg.radius||['70%', '90%'], arg.title)
- }else{
- drawPie(arg.elId, arr1, colorList, legend, arg.position||['30%', '51%'], arg.radius||['70%', '90%'], arg.title)
- }
- }
- /*
- * 绘制饼图
- */
- function drawPie(elId, arry, color, legend, center, radius, title){
- var pieChart = echarts.init(document.getElementById(elId));
- var options = {
- tooltip: {
- trigger: 'item',
- formatter: "{b} : {c} ({d}%)",
- // position: ['50%', '50%']
- },
- color: color,
- series: [
- {
- type:'pie',
- radius: ['80%', '99%'],
- startAngle: 270,
- legendHoverLink: false,
- hoverAnimation: false,
- avoidLabelOverlap: false,
- label: {
- normal: {
- show: false,
- textStyle: {
- color: "#000",
- }
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- data:arry,
- }]
- };
- if(legend){
- options.legend = legend;
- }
- if(center){
- options.series[0].center = center;
- }
- if(radius){
- options.series[0].radius = radius;
- }
- if(title){
- options.title = title
- }
- pieChart.clear();
- pieChart.setOption(options);
- }
- /*
- * 绘制饼图
- * arry [{name: '', value: ''}]
- * color ['#ffc800', '#17b3ec']
- * silent 图形是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件
- */
- function drawPieChart(elId, arry, color, silent){
- var myChart = echarts.init(document.getElementById(elId));
- var option = {
- tooltip: {
- trigger: 'item',
- formatter: "{b} : {c} ({d}%)",
- position: ['50%', '50%']
- },
- color: color,
- series: [
- {
- type:'pie',
- radius: ['80%', '99%'],
- startAngle: 270,
- legendHoverLink: false,
- hoverAnimation: false,
- avoidLabelOverlap: false,
- silent: silent,
- label: {
- normal: {
- show: false,
- textStyle: {
- color: "#000"
- }
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- data:arry
- }]
- };
- $("#"+elId).removeAttr("_echarts_instance_");
- myChart.setOption(option);
- return myChart;
- }
- /**
- * 绘制柱状图
- */
- function drawBarChart(el, xData, yData, color, name){
- var myChart = echarts.init(document.getElementById(el));
-
- // 指定图表的配置项和数据
- var option = {
- tooltip: {
- trigger: 'item'
- },
- toolbox: {
- dataZoom: true,
- show: true,
- orient: 'vertical',
- x: 'right',
- y: 'center'
- },
- grid: {
- left: '20px',
- right: '20px',
- bottom: '20px',
- top: '20px',
- containLabel: true
- },
- xAxis: [{
- type: 'category',
- data: xData,
- axisLabel: {
- interval:0,//横轴信息全部显示
- },
- splitLine: {
- show: false
- }
- }],
- yAxis: [{
- type: 'value',
- splitLine: {show:false}
- }],
- series: [{
- clickable: true,
- name: name,
- itemStyle : {
- normal: {
- label : {
- show: true, position: 'top'
- },
- color: color
- }
- },
- barWidth: 20,
- type: 'bar',
- data: yData
- }]
- };
-
- // 使用刚指定的配置项和数据显示图表。
- myChart.setOption(option);
- return myChart;
- }
- /**
- * 绘制折线图数据处理
- * @param {Object} elId div的id值
- * @param {Object} data 数据值
- * @param {Object} selectedDateType true的时候x轴值年-月-日 1-日,2-周, 3-月
- */
- function getChartData(elId, data, selectedDateType,hasLegend,title,unit){
- var dataZoom_end,
- xDatas = [],
- yDatas = [],
- names = [],
- colors = ['#12b7f5', '#cd67fd','#FF9526'];
- for(var p in data){
- if(hasLegend){
- names.push(indexName[p]);
- }
- var xData = _.map(data[p], function(o){
- return o.range;
- });
- var yData = _.map(data[p], function(o){
- return o.amount;
- });
- xDatas.push(xData);
- yDatas.push(yData);
- var lastIndex = yData.length % 10;
- if(yData.length >10 ){
- dataZoom_end = 100-(9/yData.length)*100;
- }else{
- dataZoom_end = 0;
- }
- }
- setTimeout(function(){
- EventBus.$emit("draw-line-chart", {
- panelName : title,
- quotaNames : names,
- xData : xDatas[0],
- yDatas : yDatas,
- colors : colors,
- selectedDateType: selectedDateType,
- nowlineid : elId,
- unit:unit
- });
- },10)
-
- }
|