public override EChartsOption GetOption()
        {
            var option = new EChartsOption();

            option.XAxisCollection = new XAxis
            {
                AXisType = AxisType.Category,
                Data     = new List <string> {
                    "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
                }
            };

            option.YAxisCollection = new YAxis {
                AXisType = AxisType.Value
            };

            option.SerieList = new List <Serie>();
            option.SerieList.Add(new Serie());
            option.SerieList[0].Data = new List <int> {
                820, 932, 901, 934, 1290, 1330, 1320
            };
            option.SerieList[0].SerieType = SerieTypeEnum.Line;

            return(option);
        }
        public override EChartsOption GetOption()
        {
            EChartsOption option = new EChartsOption();

            option.XAxisCollection = new XAxis
            {
                AXisType = AxisType.Category,
                Data     = new List <string> {
                    "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
                },
                BoundaryGap = false
            };

            option.YAxisCollection = new YAxis {
                AXisType = AxisType.Value
            };

            option.SerieList = new List <Serie>();
            option.SerieList.Add(new Serie
            {
                SerieType = SerieTypeEnum.Line,
                Data      = new List <int> {
                    820, 932, 901, 934, 1290, 1330, 1320
                },
                AreaStyle = new AreaStyle()
            });

            return(option);
        }
Example #3
0
        public override EChartsOption GetOption()
        {
            EChartsOption option = new EChartsOption();


            return(option);
        }
Example #4
0
        public override EChartsOption GetOption()
        {
            int count = 10;

            EChartsOption option = new EChartsOption();

            option.CreateTitle("柱状图动画延迟");

            option.Legend = new Legend {
                Data = new List <string> {
                    "bar", "bar2"
                }
            };

            option.Tooltip = new Tooltip {
            };

            option.XAxisCollection = new XAxis {
                Data = GetList(count)
            };

            option.YAxisCollection = new YAxis {
            };

            option.SerieList = new List <Serie>();

            option.SerieList.Add(new Serie
            {
                Name      = "bar",
                SerieType = SerieTypeEnum.Bar,
                Data      = GetList(i =>
                {
                    return((Math.Sin(i / 5) * (i / 5 - 10) + i / 6) * 5);
                }, count)
            });

            option.SerieList.Add(new Serie
            {
                Name      = "bar2",
                SerieType = SerieTypeEnum.Bar,
                Data      = GetList(i =>
                {
                    return((Math.Cos(i / 5) * (i / 5 - 10) + i / 6) * 5);
                }, count)
            });

            return(option);
        }
        public JavaScriptJsonResult UserAreaChart()
        {
            string        openId     = this.TempData["openId"] != null ? this.TempData["openId"] as string : "";
            DateTime      sDate      = (DateTime)this.TempData["StartDate"];
            DateTime      eDate      = (DateTime)this.TempData["EndDate"];
            var           yQuery     = db.Log_MemberAccess.AsNoTracking();
            List <object> accessList = new List <object>();
            string        q          = this.TempData["query"] as string;

            if (!String.IsNullOrEmpty(q))
            {
                if (String.IsNullOrEmpty(openId))
                {
                    accessList = yQuery.Where(p => p.RequestUrl.Contains(q) && p.CreateTime >= sDate && p.CreateTime <= eDate).Select(p => p.RequestUrl).Distinct().ToList().Select(p => (object)p).ToList();
                }
                else
                {
                    accessList = yQuery.Where(p => p.RequestUrl.Contains(q) && p.OpenId.Contains(openId) && p.CreateTime >= sDate && p.CreateTime <= eDate).Select(p => p.RequestUrl).Distinct().ToList().Select(p => (object)p).ToList();
                }
            }
            else
            {
                if (String.IsNullOrEmpty(openId))
                {
                    accessList = yQuery.Where(p => p.CreateTime >= sDate && p.CreateTime <= eDate).Select(p => p.RequestUrl).Distinct().ToList().Select(p => (object)p).ToList();
                }
                else
                {
                    accessList = yQuery.Where(p => p.OpenId.Contains(openId) && p.CreateTime >= sDate && p.CreateTime <= eDate).Select(p => p.RequestUrl).Distinct().ToList().Select(p => (object)p).ToList();
                }
            }

            var yPoint = new List <object>();

            foreach (var item in accessList)
            {
                if (String.IsNullOrEmpty(openId))
                {
                    yPoint.Add(db.Log_MemberAccess.Where(p => p.CreateTime >= sDate && p.CreateTime <= eDate && p.RequestUrl == item).Count().ToString());
                }
                else
                {
                    yPoint.Add(db.Log_MemberAccess.Where(p => p.OpenId.Contains(openId) && p.CreateTime >= sDate && p.CreateTime <= eDate && p.RequestUrl == item).Count().ToString());
                }
            }

            var chartOptions = new EChartsOption()
            {
                Title = new Title("URL访问排名分布统计图")
                {
                    Left = new AlignValue(Align.center)
                },
                Series = new Series[]
                {
                    new BarSeries()
                    {
                        Name      = "访问排名分布",
                        Data      = yPoint,
                        MarkPoint = new MarkPoint()
                        {
                            Data = new List <MarkData>()
                            {
                                new MarkData()
                                {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData()
                                {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                },
                            }
                        },
                        MarkLine = new MarkLine()
                        {
                            Data = new List <MarkData>()
                            {
                                new MarkData()
                                {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = accessList
                    }
                },
                YAxis = new YAxis[1] {
                    new YAxis {
                        Type = AxisTypes.value, Data = yPoint
                    }
                },
            };

            return(this.ToEChartResult(chartOptions));
        }
        public JavaScriptJsonResult Echart(string id)
        {
            if (id == "Category")
            {
                var name = new List <object>();
                name.Add("总长");
                name.Add("合流");
                name.Add("雨水");
                name.Add("污水");


                var data_fix = new List <object>()
                {
                    new { value = 1637.029, name = "排水管总长" },
                    new { value = 552.594, name = "合流管道总长" },
                    new { value = 724.804, name = "雨水管道总长" },
                    new { value = 359.631, name = "污水管道总长" }
                };
                var chartOptions_fix = new EChartsOption
                {
                    Title = new Title("排水管长度统计(km)")
                    {
                        Left = new AlignValue(Align.center)
                    },
                    Tooltip = new Tooltip(),
                    Series  = new Series[]
                    {
                        new BarSeries
                        {
                            Name      = "排水管长度统计(km)",
                            Data      = data_fix,
                            MarkPoint = new MarkPoint
                            {
                                Data = new List <MarkData>
                                {
                                    new MarkData {
                                        Type = MarkPointDataTypes.max, Name = "最大值"
                                    },
                                    new MarkData {
                                        Type = MarkPointDataTypes.min, Name = "最小值"
                                    }
                                }
                            },
                            MarkLine = new MarkLine
                            {
                                Data = new List <MarkData>
                                {
                                }
                            }
                        }
                    },
                    XAxis = new XAxis[1] {
                        new XAxis {
                            Type = AxisTypes.category, Data = name
                        }
                    },
                    YAxis = new YAxis[1] {
                        new YAxis {
                            Type = AxisTypes.value
                        }
                    }
                };
                return(this.ToEChartResult(chartOptions_fix));
            }



            string titlename       = "";
            var    countnumber     = new List <object>();
            var    countname       = new List <object>();
            var    codeService     = new sys_codeService();
            var    getChartService = new mms_drainpipeService();

            List <dynamic> data = getChartService.GetCountByGroupName(id);

            foreach (var result in data)
            {
                foreach (var item in (IDictionary <string, object>)result)
                {
                    if (item.Key.Equals(id))
                    {
                        //codeService.GetTextByCode(item.Value.ToString(), "InspectionWellCategory");
                        if (id == "Category")
                        {
                            countname.Add(codeService.GetTextByCode(item.Value.ToString(), "InspectionWellCategory"));
                            titlename = "排水管类型统计图";
                        }
                        if (id == "AdministrativeArea")
                        {
                            countname.Add(codeService.GetTextByCode(item.Value.ToString(), "AdministrativeArea"));
                            titlename = "排水管区域分布统计图";
                        }
                        if (id == "OwnershipUnit")
                        {
                            countname.Add(item.Value.ToString());
                            titlename = "排水管权属单位分布统计图";
                        }
                    }
                    if (item.Key.Equals("countnumber"))
                    {
                        countnumber.Add(item.Value.ToString());
                    }
                }
            }



            var chartOptions = new EChartsOption
            {
                Title = new Title(titlename)
                {
                    Left = new AlignValue(Align.center)
                },
                Tooltip = new Tooltip(),
                Series  = new Series[]
                {
                    new BarSeries
                    {
                        Name      = titlename,
                        Data      = countnumber,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
//new MarkData {Type = MarkPointDataTypes.average, Name = "平均值"}
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = countname
                    }
                },
                YAxis = new YAxis[1] {
                    new YAxis {
                        Type = AxisTypes.value
                    }
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #7
0
 public async Task SetupOptionAsync(EChartsOption <T> opt, bool notMerge = false)
 {
     await JSRuntime.SetupChart(Id, opt, notMerge);
 }
        public JavaScriptJsonResult UserMouthAddReport()
        {
            var seriesData_number     = new List <object>();
            var seriesData_logincount = new List <object>();
            var xAxisData_rq          = new List <object>();
            var Lst_User = db.User_Infos.AsNoTracking().ToList();

            for (var i = 0; i < 30; i++)
            {
                var currentTime = DateTime.Now.AddDays(-i);
                xAxisData_rq.Add(currentTime.ToString("dd号"));
                var Lst = Lst_User.Where(p => p.CreateTime.ToString("yyyy-MM-dd") ==
                                         currentTime.ToString("yyyy-MM-dd")).ToList();

                seriesData_number.Add(Lst.Count().ToString());
                seriesData_logincount.Add(Lst.Sum(p => p.LoginCount).ToString());
            }

            var x_rq = new XAxis();

            x_rq.Type = AxisTypes.category;
            x_rq.Data = xAxisData_rq;

            var y_number = new YAxis();

            y_number.Type      = AxisTypes.value;
            y_number.AxisLabel = new Label {
                Formatter = "{value} 人"
            };
            y_number.Name = "会员人数";

            var y_logincount = new YAxis();

            y_logincount.Type      = AxisTypes.value;
            y_logincount.AxisLabel = new Label {
                Formatter = "{value} 次"
            };
            y_logincount.Name     = "会员登录次数";
            y_logincount.Position = YAxisPosition.right;

            var login_legend = new Legend();

            login_legend.Data = new[] { new LegendData("会员人数"), new LegendData("会员登录次数") };
            var chart_tooltip = new Tooltip();

            chart_tooltip.Trigger = TooltipTriggerTypes.axis;
            var chartOptions = new EChartsOption
            {
                Title = new Title("会员新增图表")
                {
                    Left = new AlignValue(Align.left), Subtext = "最近30天"
                },
                Toolbox = new ToolBox(),
                Tooltip = chart_tooltip,
                Series  = new Series[]
                {
                    new LineSeries
                    {
                        Name       = "会员人数",
                        Data       = seriesData_number,
                        Smooth     = true,
                        YAxisIndex = 0,
                        MarkPoint  = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name       = "会员登录次数",
                        Data       = seriesData_logincount,
                        Smooth     = true,
                        YAxisIndex = 1,
                        MarkPoint  = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                Legend = login_legend,
                XAxis  = new XAxis[1] {
                    x_rq
                },
                YAxis = new YAxis[2] {
                    y_number, y_logincount
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
        public JavaScriptJsonResult Echart(string id)
        {
            string titlename       = "";
            var    countnumber     = new List <object>();
            var    countname       = new List <object>();
            var    codeService     = new sys_codeService();
            var    getChartService = new mms_dischargeportService();

            List <dynamic> data = getChartService.GetCountByGroupName(id);

            foreach (var result in data)
            {
                foreach (var item in (IDictionary <string, object>)result)
                {
                    if (item.Key.Equals(id))
                    {
                        if (id == "Category")
                        {
                            countname.Add(codeService.GetTextByCode(item.Value.ToString(), "InspectionWellCategory"));
                            titlename = "排放口类型统计图";
                        }
                        if (id == "AdministrativeArea")
                        {
                            countname.Add(codeService.GetTextByCode(item.Value.ToString(), "AdministrativeArea"));
                            titlename = "排放口区域分布统计图";
                        }
                        if (id == "Form")
                        {
                            countname.Add(codeService.GetTextByCode(item.Value.ToString(), "DischargeportForm"));
                            titlename = "排放口出流形式统计图";
                        }
                    }
                    if (item.Key.Equals("countnumber"))
                    {
                        countnumber.Add(item.Value.ToString());
                    }
                }
            }



            var chartOptions = new EChartsOption
            {
                Title = new Title(titlename)
                {
                    Left = new AlignValue(Align.center)
                },
                Tooltip = new Tooltip(),
                Series  = new Series[]
                {
                    new BarSeries
                    {
                        Name      = titlename,
                        Data      = countnumber,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
//new MarkData {Type = MarkPointDataTypes.average, Name = "平均值"}
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = countname
                    }
                },
                YAxis = new YAxis[1] {
                    new YAxis {
                        Type = AxisTypes.value
                    }
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #10
0
        public JavaScriptJsonResult UserTimeChart()
        {
            var seriesData = new List <object>();
            var xAxisData  = new List <object>();

            for (var i = 0; i < 6; i++)
            {
                var currentTime = DateTime.Now.AddMonths(-i);
                xAxisData.Add(currentTime.ToString("MM月"));
                seriesData.Add(
                    db.WeiChat_Users.AsNoTracking()
                    .Where(
                        p =>
                        (p.SubscribeTime.Year == currentTime.Year) &&
                        (p.SubscribeTime.Month == currentTime.Month))
                    .Count()
                    .ToString());
            }
            var chartOptions = new EChartsOption
            {
                Title = new Title("半年公众号关注变化")
                {
                    Left = new AlignValue(Align.center)
                },
                Series = new Series[]
                {
                    new LineSeries
                    {
                        Name      = "半年公众号关注变化",
                        Data      = seriesData,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = xAxisData
                    }
                },
                YAxis =
                    new YAxis[1] {
                    new YAxis {
                        Type = AxisTypes.value, AxisLabel = new Label {
                            Formatter = "{value} 人"
                        }
                    }
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #11
0
        public JavaScriptJsonResult UserAreaChart()
        {
            var provinces =
                db.WeiChat_Users.AsNoTracking()
                .Where(p => p.Subscribe)
                .Select(p => p.Province)
                .Distinct()
                .ToList()
                .Select(p => (object)p)
                .ToList();
            var valueList = new List <object>();

            foreach (var item in provinces)
            {
                valueList.Add(db.WeiChat_Users.Where(p => p.Subscribe && (p.Province == item)).Count().ToString());
            }
            var chartOptions = new EChartsOption
            {
                Title = new Title("粉丝分布统计图")
                {
                    Left = new AlignValue(Align.center)
                },
                Series = new Series[]
                {
                    new BarSeries
                    {
                        Name      = "粉丝分布",
                        Data      = valueList,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = provinces
                    }
                },
                YAxis = new YAxis[1] {
                    new YAxis {
                        Type = AxisTypes.value
                    }
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #12
0
        public JavaScriptJsonResult UserMouthTransmissionReport()
        {
            var yQuery            = db.Log_MemberAccess.AsNoTracking().ToList();
            var seriesData_number = new List <object>();
            var xData_rq          = new List <object>();

            for (var i = 0; i < 30; i++)
            {
                var currentTime = DateTime.Now.AddDays(-i);
                xData_rq.Add(currentTime.ToString("dd号"));

                var Lst = yQuery.Where(p => p.CreateTime.ToString("yyyy-MM-dd") ==
                                       currentTime.ToString("yyyy-MM-dd")).ToList();
                seriesData_number.Add(Lst.Count().ToString());
            }
            Legend login_legend = new Legend();

            login_legend.Data = new LegendData[] { new LegendData("访问次数") };
            Tooltip chart_tooltip = new Tooltip();

            chart_tooltip.Trigger = TooltipTriggerTypes.axis;
            var chartOptions = new EChartsOption
            {
                Title = new Title("最近30天会员访问情况")
                {
                    Left = new AlignValue(Align.left)
                },
                Toolbox = new ToolBox(),
                Tooltip = chart_tooltip,
                Legend  = login_legend,
                Series  = new Series[]
                {
                    new BarSeries
                    {
                        Name      = "访问次数",
                        Data      = seriesData_number,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = xData_rq
                    }
                },
                YAxis =
                    new YAxis[1]
                {
                    new YAxis
                    {
                        Name      = "访问次数",
                        Type      = AxisTypes.value,
                        AxisLabel = new Label {
                            Formatter = "{value} 次"
                        }
                    }
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #13
0
        public JavaScriptJsonResult OrderMouthReport()
        {
            var seriesData_number = new List <object>();
            var seriesData_money  = new List <object>();
            var xAxisData_rq      = new List <object>();
            var Lst_Order         = db.Order_Infos.AsNoTracking().ToList();

            for (var i = 0; i < 30; i++)
            {
                var currentTime = DateTime.Now.AddDays(-i);
                xAxisData_rq.Add(currentTime.ToString("dd号"));
                var Lst = Lst_Order.Where(p => (p.CreateTime.ToString("yyyy-MM-dd") ==
                                                currentTime.ToString("yyyy-MM-dd")) &&
                                          ((p.State != EnumOrderStatus.Obligation) ||
                                           (p.State != EnumOrderStatus.ReturnedGoods) ||
                                           (p.State != EnumOrderStatus.UnpaidDelete))).ToList();

                seriesData_number.Add(Lst.Count().ToString());
                seriesData_money.Add(Lst.Sum(p => p.TotalPrice).ToString());
            }

            var x_rq = new XAxis();

            x_rq.Type = AxisTypes.category;
            x_rq.Data = xAxisData_rq;

            var y_number = new YAxis();

            y_number.Type      = AxisTypes.value;
            y_number.AxisLabel = new Label {
                Formatter = "{value} 单"
            };
            y_number.Name = "订单笔数";

            var y_money = new YAxis();

            y_money.Type      = AxisTypes.value;
            y_money.AxisLabel = new Label {
                Formatter = "{value} 元"
            };
            y_money.Name     = "订单金额";
            y_money.Position = YAxisPosition.right;

            var order_legend = new Legend();

            order_legend.Data = new[] { new LegendData("订单笔数"), new LegendData("订单金额") };
            var chart_tooltip = new Tooltip();

            chart_tooltip.Trigger = TooltipTriggerTypes.axis;
            var chartOptions = new EChartsOption
            {
                Title = new Title("订单交易图表")
                {
                    Left = new AlignValue(Align.left), Subtext = "最近30天"
                },
                Calculable = true,
                Toolbox    = new ToolBox(),
                Tooltip    = chart_tooltip,
                Series     = new Series[]
                {
                    new LineSeries
                    {
                        Name       = "订单笔数",
                        Data       = seriesData_number,
                        Smooth     = true,
                        YAxisIndex = 0,
                        MarkPoint  = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name       = "订单金额",
                        Data       = seriesData_money,
                        Smooth     = true,
                        YAxisIndex = 1,
                        MarkPoint  = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                Legend = order_legend,
                XAxis  = new XAxis[1] {
                    x_rq
                },
                YAxis = new YAxis[2] {
                    y_number, y_money
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #14
0
        public JavaScriptJsonResult OrderStateReport()
        {
            var seriesData_number        = new List <object>(); //所有数量
            var seriesData_Closed        = new List <object>(); //已经关闭订单
            var seriesData_Obligation    = new List <object>(); //待付款订单
            var seriesData_Overhang      = new List <object>(); //待发货订单
            var seriesData_PaidDelete    = new List <object>(); //已付款未删除
            var seriesData_ReturnedGoods = new List <object>(); //退货/退款
            var seriesData_Success       = new List <object>(); //交易完成
            var seriesData_UnpaidDelete  = new List <object>(); //未付款删除
            var seriesData_WaitReceiving = new List <object>(); //待发货
            var xAxisData_rq             = new List <object>();
            var Lst_Order = db.Order_Infos.AsNoTracking().ToList();

            for (var i = 0; i < 30; i++)
            {
                var currentTime = DateTime.Now.AddDays(-i);
                xAxisData_rq.Add(currentTime.ToString("dd号"));
                var Lst = Lst_Order.Where(p => p.CreateTime.ToString("yyyy-MM-dd") ==
                                          currentTime.ToString("yyyy-MM-dd")).ToList();
                seriesData_number.Add(Lst.Count().ToString());
                seriesData_Closed.Add(Lst.Where(p => p.State == EnumOrderStatus.Closed).ToList().Count().ToString());
                seriesData_Obligation.Add(
                    Lst.Where(p => p.State == EnumOrderStatus.Obligation).ToList().Count().ToString());
                seriesData_Overhang.Add(Lst.Where(p => p.State == EnumOrderStatus.Overhang).ToList().Count().ToString());
                seriesData_PaidDelete.Add(
                    Lst.Where(p => p.State == EnumOrderStatus.PaidDelete).ToList().Count().ToString());
                seriesData_ReturnedGoods.Add(
                    Lst.Where(p => p.State == EnumOrderStatus.ReturnedGoods).ToList().Count().ToString());
                seriesData_Success.Add(Lst.Where(p => p.State == EnumOrderStatus.Success).ToList().Count().ToString());
                seriesData_UnpaidDelete.Add(
                    Lst.Where(p => p.State == EnumOrderStatus.UnpaidDelete).ToList().Count().ToString());
                seriesData_WaitReceiving.Add(
                    Lst.Where(p => p.State == EnumOrderStatus.WaitReceiving).ToList().Count().ToString());
            }
            //多个(大于3个)series的data元素,一个日期x坐标一个数量y坐标
            var x_rq = new XAxis();

            x_rq.Type = AxisTypes.category;
            x_rq.Data = xAxisData_rq;

            var y_number = new YAxis();

            y_number.Type      = AxisTypes.value;
            y_number.AxisLabel = new Label {
                Formatter = "{value} 单"
            };
            y_number.Name = "订单数";

            var login_legend = new Legend();

            login_legend.Data = new[]
            {
                new LegendData("总订单"),
                new LegendData("已关闭"),
                new LegendData("待付款"),
                new LegendData("待发货"),
                new LegendData("已付款未删除"),
                new LegendData("退货/退款"),
                new LegendData("交易完成"),
                new LegendData("未付款删除"),
                new LegendData("待发货")
            };
            login_legend.Padding = 2;
            var chart_tooltip = new Tooltip();

            chart_tooltip.Trigger = TooltipTriggerTypes.axis;
            var chartOptions = new EChartsOption
            {
                Title = new Title("订单状态图表")
                {
                    Left = new AlignValue(Align.left), Subtext = "最近30天"
                },
                Calculable = true,
                Toolbox    = new ToolBox(),
                Tooltip    = chart_tooltip,
                Series     = new Series[]
                {
                    #region Series
                    new LineSeries
                    {
                        Name      = "总订单",
                        Data      = seriesData_number,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "已关闭订单数",
                        Data      = seriesData_Closed,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "待付款",
                        Data      = seriesData_Obligation,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "待发货",
                        Data      = seriesData_Overhang,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "已付款未删除",
                        Data      = seriesData_PaidDelete,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "退货/退款",
                        Data      = seriesData_ReturnedGoods,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "交易完成",
                        Data      = seriesData_Success,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "未付款删除",
                        Data      = seriesData_UnpaidDelete,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    },
                    new LineSeries
                    {
                        Name      = "待发货",
                        Data      = seriesData_WaitReceiving,
                        Smooth    = true,
                        MarkPoint = new MarkPoint
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                }
                            }
                        },
                        MarkLine = new MarkLine
                        {
                            Data = new List <MarkData>
                            {
                                new MarkData {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                    #endregion
                },
                Legend = login_legend,
                XAxis  = new XAxis[1] {
                    x_rq
                },
                YAxis = new YAxis[1] {
                    y_number
                }
            };

            return(this.ToEChartResult(chartOptions));
        }
Example #15
0
 public async Task SetupOptionAsync(EChartsOption <T> opt, bool notMerge = false)
 {
     await JsInterop.SetupChart(Id, Theme, opt, notMerge);
 }
        public override EChartsOption GetOption()
        {
            EChartsOption option = new EChartsOption();

            option.TitleCollection = new List <Title>();
            option.TitleCollection.Add(new Title {
                Text = "MainTitle", SubText = "link", Left = LeftEnum.Center
            });

            option.Toolbox = new Toolbox
            {
                Show    = true,
                Feature = new Feature
                {
                    Restore = new Restore {
                        Show = true
                    },
                    SaveAsImage = new SaveAsImage {
                        Show = true
                    }
                }
            };
            option.Tooltip = new Tooltip {
                Formatter = "{a} <br/>{b} : {c} ({d}%)", Trigger = "item"
            };
            option.Calculable = true;

            option.Legend = new Legend {
                Orient = "vertical", Left = LeftEnum.Left
            };
            option.Legend.Data = new List <string>
            {
                "成功",
                "[优惠平台]优惠券已使用",
                "[度假]优惠券在当前订单没有匹配的阶梯",
                "[度假]该产品不可以使用该优惠券",
                "[优惠平台]使用次数超过策略允许最大值",
                "[度假]订单原始金额(orderAmount)必须是正数",
                "[优惠平台]优惠券不存在",
                "[优惠平台]风控屏蔽!",
                "[优惠平台]产线ID与策略不匹配",
                "[度假]优惠券在当前平台(platformId)不可用",
                "[优惠平台]优惠券所属适用站点不匹配",
                "[度假]优惠券在当前渠道不可用",
                "[优惠平台]该限时优惠券已被其他用户收藏",
                "[优惠平台]券码不合法",
                "[度假]用户信息(UserInfo)必传",
                "[度假]这张订单想要优惠的金额太多了",
                "[度假]优惠券没有被设置",
                "[优惠平台]优惠券已经失效",
                "[优惠平台]活动已经结束了"
            };

            //option.series = [{
            //    name: '访问来源',
            //    type: 'pie',
            //    radius: ['50%', '70%'],
            //    itemStyle: {
            //        normal: { label: { show: false }, labelLine: { show: false } },
            //        emphasis: { label: { show: true, position: 'center', textStyle: { fontSize: '30', fontWeight: 'bold' } } }
            //    },
            //    data: data.serieData
            //}];

            option.SerieList = new List <Serie>();
            option.SerieList.Add(new Serie
            {
                Name      = "访问来源",
                SerieType = SerieTypeEnum.Pie,
                Radius    = new
                            List <string> {
                    "50%", "70%"
                }
            });
            option.SerieList[0].ItemStyle = new Dictionary <string, ItemStyle>();
            option.SerieList[0].ItemStyle.Add("normal", new ItemStyle
            {
                Label = new Label {
                    Show = false
                },
                LabelLine = new LabelLine
                {
                    Show = false
                }
            });
            option.SerieList[0].ItemStyle.Add("emphasis", new ItemStyle
            {
                Label = new Label
                {
                    Show      = true,
                    Position  = "center",
                    TextStyle = new TextStyle
                    {
                        FontSize   = 30,
                        FontWeight = "bold"
                    }
                }
            });

            option.SerieList[0].Data = new List <SerieData>
            {
                new SerieData {
                    Name = "成功", Value = 10503
                },
                new SerieData {
                    Name = "[优惠平台]优惠券已使用", Value = 212
                },
                new SerieData {
                    Name = "[度假]优惠券在当前订单没有匹配的阶梯", Value = 201
                },
                new SerieData {
                    Name = "[度假]该产品不可以使用该优惠券", Value = 170
                },
                new SerieData {
                    Name = "[优惠平台]使用次数超过策略允许最大值", Value = 107
                },
                new SerieData {
                    Name = "[度假]订单原始金额(orderAmount)必须是正数", Value = 97
                },
                new SerieData {
                    Name = "[优惠平台]优惠券不存在", Value = 58
                },
                new SerieData {
                    Name = "[优惠平台]风控屏蔽!", Value = 38
                },
                new SerieData {
                    Name = "[优惠平台]产线ID与策略不匹配", Value = 24
                },
                new SerieData {
                    Name = "[度假]优惠券在当前平台(platformId)不可用", Value = 22
                },
                new SerieData {
                    Name = "[优惠平台]优惠券所属适用站点不匹配", Value = 19
                },
                new SerieData {
                    Name = "[度假]优惠券在当前渠道不可用", Value = 17
                },
                new SerieData {
                    Name = "[优惠平台]该限时优惠券已被其他用户收藏", Value = 12
                },
                new SerieData {
                    Name = "[优惠平台]券码不合法", Value = 5
                },
                new SerieData {
                    Name = "[度假]用户信息(UserInfo)必传", Value = 3
                },
                new SerieData {
                    Name = "[度假]这张订单想要优惠的金额太多了", Value = 3
                },
                new SerieData {
                    Name = "[度假]优惠券没有被设置", Value = 2
                },
                new SerieData {
                    Name = "[优惠平台]优惠券已经失效", Value = 1
                },
                new SerieData {
                    Name = "[优惠平台]活动已经结束了", Value = 1
                }
            };


            return(option);
        }
        public override EChartsOption GetOption()
        {
            EChartsOption option = new EChartsOption();

            option.CreateTitle("雨量流量关系图").SetSubText("数据来自西安兰特水电测控技术有限公司").SetLeft(LeftEnum.Center);

            option.GridCollection = new Grid {
                Bottom = 80
            };

            option.Toolbox = new Toolbox {
                Feature = new Feature {
                    Restore = { }, SaveAsImage = { }, DataZoom = new DataZoom {
                        YAxisIndex = "none"
                    }
                }
            };

            option.Tooltip = new Tooltip {
                Trigger = "axis", AxisPointer = new AxisPointer {
                    Type = "cross", Animation = false, Label = new Label {
                        BackgroundColor = "#505765"
                    }
                }
            };

            option.Legend = new Legend {
                Left = LeftEnum.Left, Data = new List <string> {
                    "流量", "降雨量"
                }
            };

            option.DataZoom = new List <DataZoom>();
            option.DataZoom.Add(new DataZoom {
                Show = true, RealTime = true, Start = 65, End = 85
            });
            option.DataZoom.Add(new DataZoom {
                Type = "inside", RealTime = true, Start = 65, End = 85
            });

            DateTime start = new DateTime(2009, 6, 12, 2, 0, 0);
            DateTime end   = new DateTime(2009, 6, 14, 0, 0, 0);

            //DateTime end = new DateTime(2009, 6, 13, 0, 0, 0);

            option.XAxisCollection = new XAxis
            {
                AXisType    = AxisTypeEnum.Category,
                BoundaryGap = false,
                AxisLine    = new AxisLine {
                    OnZero = false
                }
            };
            option.XAxisCollection[0].Data = GetTimes(start, end);

            option.YAxisCollection = new YAxisCollection();
            option.YAxisCollection.Add(new YAxis {
                AXisType = AxisType.Value, Name = "流量(m^3/s)", Max = 500
            });
            option.YAxisCollection.Add(new YAxis {
                AXisType = AxisType.Value, Name = "降雨量(mm)", NameLocation = "start", Inverse = true, Max = 5
            });

            option.SerieList = new List <Serie>();
            option.SerieList.Add(new Serie
            {
                Name      = "流量",
                SerieType = SerieTypeEnum.Line,
                Animation = false,
                AreaStyle = new AreaStyle
                {
                    Normal = new object { }
                },
                LineStyle = new LineStyle {
                    Width = 1
                },
                Data = GetValues(start, end, 100, 10000)
            });
            option.SerieList.Add(new Serie
            {
                Name       = "降水量",
                SerieType  = SerieTypeEnum.Line,
                Animation  = false,
                YAxisIndex = 1,
                AreaStyle  = new AreaStyle
                {
                    Normal = new object { }
                },
                LineStyle = new LineStyle {
                    Width = 1
                },
                Data = GetValues(start, end, 0, 100)
            });

            return(option);
        }
Example #18
0
 /// <summary>
 /// 配置Echarts参数
 /// </summary>
 /// <param name="id">ECharts容器ID</param>
 /// <param name="theme">主题</param>
 /// <param name="option">参数</param>
 /// <returns></returns>
 public async Task SetupChart <T>(string id, string theme, EChartsOption <T> option, bool notMerge = false)
 {
     await SetupChart(id, theme, option.ToString(), notMerge);
 }
Example #19
0
 /// <summary>
 ///     返回符合Echart的结果
 /// </summary>
 /// <param name="controller">控制器对象</param>
 /// <param name="option">EChartsOption对象</param>
 /// <param name="behavior">是否允许HttpGet请求</param>
 /// <returns></returns>
 public static JavaScriptJsonResult ToEChartResult(this Controller controller, EChartsOption option,
                                                   JsonRequestBehavior behavior = JsonRequestBehavior.AllowGet)
 {
     return(new JavaScriptJsonResult
     {
         Data = option,
         ContentEncoding = null,
         ContentType = null,
         JsonRequestBehavior = JsonRequestBehavior.AllowGet
     });
 }
        public JavaScriptJsonResult UserTimeChart()
        {
            string openId     = this.TempData["openId"] != null ? this.TempData["openId"] as string : "";
            var    seriesData = new List <object>();
            var    xAxisData  = new List <object>();

            int firstDay = ((DateTime)this.TempData["StartDate"]).Day;
            int lastDay  = ((DateTime)this.TempData["EndDate"]).Day;

            for (int i = firstDay; i <= lastDay; i++)
            {
                xAxisData.Add("第" + i.ToString() + "天");

                int currentDayPointCount;
                if (!String.IsNullOrEmpty(openId))
                {
                    currentDayPointCount = db.Log_Points.AsNoTracking().Where(p => p.OpenId == openId && p.CreateTime.Day == i && p.CreateTime.Month == DateTime.Now.Month).Count();
                }
                else
                {
                    currentDayPointCount = db.Log_Points.AsNoTracking().Where(p => p.CreateTime.Day == i && p.CreateTime.Month == DateTime.Now.Month).Count();
                }

                if (currentDayPointCount > 0)
                {
                    int currentdayMaxPoint;
                    if (!String.IsNullOrEmpty(openId))
                    {
                        currentdayMaxPoint = db.Log_Points.AsNoTracking().Where(p => p.OpenId == openId && p.CreateTime.Day == i && p.CreateTime.Month == DateTime.Now.Month).Max(m => m.Point);
                        seriesData.Add(currentdayMaxPoint.ToString());
                    }
                    else
                    {
                        currentdayMaxPoint = db.Log_Points.AsNoTracking().Where(p => p.CreateTime.Day == i && p.CreateTime.Month == DateTime.Now.Month).Max(m => m.Point);
                        seriesData.Add(currentdayMaxPoint.ToString());
                    }
                }
                else
                {
                    seriesData.Add("0");
                }
            }

            //获取最大积分用于y轴
            List <object> yPoint = new List <object>();

            yPoint.Add("0");
            yPoint.Add(this.TempData["MaxPoint"]);

            var chartOptions = new EChartsOption()
            {
                Title = new Title("当月会员积分变化")
                {
                    Left = new AlignValue(Align.center)
                },
                Series = new Series[]
                {
                    new LineSeries()
                    {
                        Name      = "当月会员积分变化",
                        Data      = seriesData,
                        Smooth    = true,
                        MarkPoint = new MarkPoint()
                        {
                            Data = new List <MarkData>()
                            {
                                new MarkData()
                                {
                                    Type = MarkPointDataTypes.max, Name = "最大值"
                                },
                                new MarkData()
                                {
                                    Type = MarkPointDataTypes.min, Name = "最小值"
                                },
                            }
                        },
                        MarkLine = new MarkLine()
                        {
                            Data = new List <MarkData>()
                            {
                                new MarkData()
                                {
                                    Type = MarkPointDataTypes.average, Name = "平均值"
                                }
                            }
                        }
                    }
                },
                XAxis = new XAxis[1] {
                    new XAxis {
                        Type = AxisTypes.category, Data = xAxisData
                    }
                },
                YAxis = new YAxis[1] {
                    new YAxis {
                        Type = AxisTypes.value, Data = yPoint
                    }
                },
            };

            return(this.ToEChartResult(chartOptions));
        }