zoukankan      html  css  js  c++  java
  • Echarts 使用asp.net +ashx+ajax 实现 饼图、柱形图后台交互

    向上效果图 

    前端code  

    /*
     * ------------------------------------------------------------------
     * module-information:
     * ------------------------------------------------------------------
     * create
     * @date     2017-02-09
     * @author   vicm<lcfhn168@163.com>
     * ------------------------------------------------------------------
     * modify 
     * @info:
     * @vision
     * @date     2017-02-09
     * @author   vicm<lcfhn168@163.com>
     * ------------------------------------------------------------------
     */
    
    $(document).ready(function () {
        getData();
        setInterval(function () {
            getData();
        }, 100000);//10秒定时刷新
    });
    var ajaxurl = "../aowei/handler/HandlerPortalEchartsPieBarData.ashx?";
    function getData() {
        func_echarts_pie_area();
        func_echarts_bar_itemAmount();
        func_echarts_pie_schedule();
        func_echarts_bar_latestUpdate();
    }
    
    function func_echarts_pie_area() {
    
        var echarts_pie_area = echarts.init(document.getElementById('id_echarts_pie_area'));
        echarts_pie_area.option_pie_area = {
            title: {
                //text: '地区',
                subtext: '地区',
                x: 'center',
                subtextStyle: {
                    "fontSize": 14,
                    "fontFamily": "Microsoft YaHei",
                    "fontWeight": "bold",
                    "color": "black"
                }
    
            },
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            series: [
                {
                    name: '地区',
                    type: 'pie',
                    radius: '65%',
                    center: ['55%', '67%'],
                    data: [],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(255, 0, 0, 0.5)',
                            label: {
                                show: true
                            },
                            labelLine: {
                                show: true
                            }
                        }
                    }
                }
            ]
        };
    
        echarts_pie_area.setOption(echarts_pie_area.option_pie_area);
        //====================get 提交
        //var ajaxurl_para ="operate=echarts_pie_area"
        //ajaxurl += ajaxurl_para;
        //====================get 提交
        $.ajax({
            type: "post",
            url: ajaxurl,
            data:
            {
                async: false,
                operate: "echarts_pie_area"
            },
            dataType: "json",        //返回数据形式为json
            success: function (result) {
                for (var i = 0; i < result.length; i++) {
                    result[i].name;
                }
                echarts_pie_area.setOption({
                    legend: { data: name },
                    series: [{
                        data: result
                    }]
                });
    
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
    
        });
    }
    function func_echarts_bar_itemAmount()
    {
        var echarts_bar_itemAmount = echarts.init(document.getElementById('id_echarts_bar_itemAmount'));
        echarts_bar_itemAmount.option_bar_itemAmount = {
            title: {
                //text: '金额',
                subtext: '项目金额',
                x: 'center',
                subtextStyle: {
                    "fontSize": 14,
                    "fontFamily": "Microsoft YaHei",
                    "fontWeight": "bold",
                    "color": "black"
                }
            },
            //color: ['#7084CD'],
            color: ['#2D9759'],
            tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                }
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    data: ['1-3月', '4-6月', '7-9月', '10-12月'],
                    axisTick: {
                        alignWithLabel: true
                    }
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    axisLabel: {
                        formatter: '{value}W'
                    },
    
                }
            ],
            series: [
                {
                    name: '项目金额',
                    type: 'bar',
                    barWidth: '60%',
                    //data: [500, 100, 500, 1000]
                    data: []
                }
            ]
        };
        echarts_bar_itemAmount.setOption(echarts_bar_itemAmount.option_bar_itemAmount);
        //====================get 提交
        //var ajaxurl_para ="operate=echarts_pie_area"
        //ajaxurl += ajaxurl_para;
        //====================get 提交
        $.ajax({
            type: "post",
            url: ajaxurl,
            data:
            {
                async: false,
                operate: "echarts_bar_itemmoney"
            },
            dataType: "json",        //返回数据形式为json
            success: function (result) {
                for (var i = 0; i < result.length; i++) {
                    result[i].name;
                }
                echarts_bar_itemAmount.setOption({
                    legend: { data: name },
                    series: [{
                        data: result
                    }]
                });
    
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
    
        });
    }
    function func_echarts_pie_schedule() {
        var echarts_pie_schedule = echarts.init(document.getElementById('id_echarts_pie_schedule'));
        echarts_pie_schedule.option_pie_schedule = {
            title: {
                //text: '工作安排',
                subtext: '工作安排',
                x: 'center',
                subtextStyle: {
                    "fontSize": 14,
                    "fontFamily": "Microsoft YaHei",
                    "fontWeight": "bold",
                    "color": "black"
                }
            },
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            //legend: {
            //    orient: 'vertical',
            //    left: 'left',
            //    data: ['数据审批', '数据查看', '项目分配', '项目修改', '其他任务']
            //},
            series: [
                {
                    name: '工作安排',
                    type: 'pie',
                    radius: '65%',
                    center: ['50%', '65%'],
                    data: [],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(255, 0, 0, 0.5)',
                            label: {
                                show: true
                            },
                            labelLine: {
                                show: true
                            }
                        }
                    }
                }
            ]
        };
        echarts_pie_schedule.setOption(echarts_pie_schedule.option_pie_schedule);
        //====================get 提交
        //var ajaxurl_para ="operate=echarts_pie_area"
        //ajaxurl += ajaxurl_para;
        //====================get 提交
        $.ajax({
            type: "post",
            url: ajaxurl,
            data:
            {
                async: false,
                operate: "echarts_pie_schedule"
            },
            dataType: "json",        //返回数据形式为json
            success: function (result) {
                for (var i = 0; i < result.length; i++) {
                    result[i].name;
                }
                echarts_pie_schedule.setOption({
                    legend: { data: name },
                    series: [{
                        data: result
                    }]
                });
    
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
    
        });
    }
    function func_echarts_bar_latestUpdate() {
        var echarts_bar_latestUpdate = echarts.init(document.getElementById('id_echarts_bar_latestUpdate'));
        echarts_bar_latestUpdate.option_bar_latestUpdate = {
            title: {
                //text: '最近更新',
                subtext: '最近更新',
                x: 'center',
                subtextStyle: {
                    "fontSize": 14,
                    "fontFamily": "Microsoft YaHei",
                    "fontWeight": "bold",
                    "color": "black"
                }
            },
            color: ['green'],
            tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                    type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                }
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    data: ['1-3月', '4-6月', '7-9月', '10-12月'],
                    axisTick: {
                        alignWithLabel: true
                    }
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    axisLabel: {
                        formatter: '{value} 个'
                    },
                }
            ],
            series: [
                {
                    name: '项目更新',
                    type: 'bar',
                    barWidth: '60%',
                    data: []
                }
            ]
        };
    
        echarts_bar_latestUpdate.setOption(echarts_bar_latestUpdate.option_bar_latestUpdate);
        $.ajax({
            type: "post",
            url: ajaxurl,
            data:
            {
                async: false,
                operate: "echarts_bar_latestupdate"
            },
            dataType: "json",        //返回数据形式为json
            success: function (result) {
                for (var i = 0; i < result.length; i++) {
                    result[i].name;
                }
                echarts_bar_latestUpdate.setOption({
                    legend: { data: name },
                    series: [{
                        data: result
                    }]
                });
    
            },
            error: function (errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
            }
    
        });
    }

    后端code :

    <%@ WebHandler Language="C#" Class="HandlerPortalEchartsPieBarData" %>
    
    using System;
    using System.Web;
    using EntityMan;
    using Microsoft.SharePoint;
    using CodeArt.SharePoint.CamlQuery;
    using System.Collections.Generic;
    using System.Data;
    using System.Web.Script.Serialization;
    
    
    public class HandlerPortalEchartsPieBarData : IHttpHandler {
        
        public void ProcessRequest (HttpContext context) 
        {
            context.Response.ContentType = "text/plain";
            string operate = HttpUtility.UrlDecode(context.Request["operate"], System.Text.Encoding.UTF8);  //标志
            
                  object returnobj = null;
                  switch (operate.ToLower())
                {
                    case "echarts_pie_area":
                        returnobj = Get_echarts_pie_area_data();//pie charts pie_area
                        break;
                    case "echarts_bar_itemmoney":
                        returnobj = Get_echarts_bar_itemmoney_data();//bar charts itemmoney
                        break;
                    case "echarts_pie_schedule":
                        returnobj = Get_echarts_pie_schedule_data();//pie charts schedule
                        break;
                    case "echarts_bar_latestupdate":
                        returnobj = Get_echarts_bar_latestUpdate_data();//bar charts latestUpdate
                        break;   
                    default:
                        break;
                }
                  string returnvalue = GetSerializeString(returnobj);
    
                  context.Response.Write(returnvalue);
                  context.Response.End();
        }
        public object Get_echarts_bar_itemmoney_data()
        {
            double[] a = new double[] { 5, 3, 8, 9 };
            return a;
        }
        
        public object Get_echarts_pie_area_data()
        { 
         Deart sh = new Deart();
            sh.name = "上海";
            sh.value = Convert.ToInt32(100);
            Deart sh1 = new Deart();
            sh1.name = "上海1";
            sh1.value = Convert.ToInt32(200);
            
            Deart zj = new Deart();
            zj.name = "浙江";
            zj.value = Convert.ToInt32(300);
    
            Deart zj1 = new Deart();
            zj1.name = "浙江1";
            zj1.value = Convert.ToInt32(400);
            Deart jz = new Deart();
            jz.name = "江苏";
            jz.value = Convert.ToInt32(400);
    
                List<object> list = new List<object>();
                list.Add(sh);
                list.Add(sh1);
                list.Add(zj);
                list.Add(zj1);
                list.Add(jz);
               
                return list;
        }
    
        public object Get_echarts_pie_schedule_data()
        {
            Deart sh = new Deart();
            sh.name = "数据审批";
            sh.value = Convert.ToInt32(201);
            Deart sh1 = new Deart();
            sh1.name = "数据查看";
            sh1.value = Convert.ToInt32(180);
    
            Deart zj = new Deart();
            zj.name = "项目分配";
            zj.value = Convert.ToInt32(250);
    
            Deart zj1 = new Deart();
            zj1.name = "项目修改";
            zj1.value = Convert.ToInt32(401);
            Deart jz = new Deart();
            jz.name = "其他任务";
            jz.value = Convert.ToInt32(101);
    
            List<object> list = new List<object>();
            list.Add(sh);
            list.Add(sh1);
            list.Add(zj);
            list.Add(zj1);
            list.Add(jz);
    
            return list;
        }
    
        public object Get_echarts_bar_latestUpdate_data()
        {
            double[] a = new double[] { 7, 3, 8, 6 };
            return a;
        }
        public static string GetObjectJson(object value)
        {
            return Newtonsoft.Json.JsonConvert.SerializeObject(value);
        }
    
        public static string GetSerializeString(object value)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            string json = jss.Serialize(value);
            return json;
        }
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }
    
    public class Deart  //test
    {
        public string name { get; set; }
        public int value { get; set; }
      
    }

  • 相关阅读:
    windows(win10)下的mysql解压版安装
    微信和QQ网页授权登录
    图片前端重绘前端压缩和自动调整旋转
    时间的显示
    magento中文语言包的使用
    div垂直居中(js)
    centOS IP能ping通但是域名ping不通
    python3 使用pyinstaller打包exe 指定虚拟路径模块
    Flask 多app案例
    将excel的资产数据生成二维码图片
  • 原文地址:https://www.cnblogs.com/laopo/p/6387707.html
Copyright © 2011-2022 走看看