Beispiel #1
0
        /// <summary>
        /// 客户拜访分析
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> VisitingRatePage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _reportingService.GetCustomerVistAnalysisAsync(Settings.UserId, this.ForceRefresh, new System.Threading.CancellationToken());

                if (result != null)
                {
                    chartData = new ChartViewConfig()
                    {
                        BackgroundColor = Color.White,
                        ChartConfig     = new ChartConfig
                        {
                            type = Wesley.ChartJS.ChartTypes.Pie,
                            data = ChartDataProvider.GetVisitingRate(result)
                        }
                    };
                }
                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }
Beispiel #2
0
        public VisitingRatePageViewModel(INavigationService navigationService,
                                         IReportingService reportingService,
                                         IDialogService dialogService
                                         ) : base(navigationService, dialogService)
        {
            Title             = "客户拜访分析";
            _reportingService = reportingService;


            this.WhenAnyValue(x => x.Filter.BusinessUserId)
            .Where(x => x > 0)
            .Subscribe(x =>
            {
                ((ICommand)Load)?.Execute(null);
            }).DisposeWith(DeactivateWith);


            this.Load = ReactiveCommand.CreateFromTask(() => Task.Run(async() =>
            {
                var analysis = await _reportingService.GetCustomerVistAnalysisAsync(Filter.BusinessUserId, this.ForceRefresh, new System.Threading.CancellationToken());
                if (analysis != null)
                {
                    Data = analysis;

                    var data = new ChartViewConfig()
                    {
                        BackgroundColor = Color.White,
                        ChartConfig     = new ChartConfig
                        {
                            type = Wesley.ChartJS.ChartTypes.Bar,
                            data = GetChartData(analysis)
                        }
                    };
                    BarConfig = data;
                }
                return(this.Data);
            }));

            //历史记录选择
            this.HistoryCommand = ReactiveCommand.Create <object>(async e =>
            {
                int tag = 0;
                int.TryParse(e.ToString(), out int type);
                switch (type)
                {
                //今日拜访
                case 1:
                    //Filter.StartTime = DateTime.Now;
                    //Filter.EndTime = DateTime.Now;
                    tag = 1;
                    break;

                //昨天拜访
                case 3:
                    //Filter.StartTime = DateTime.Now.AddDays(-1);
                    //Filter.EndTime = DateTime.Now;
                    tag = 3;
                    break;

                //前天拜访
                case 4:
                    //Filter.StartTime = DateTime.Now.AddDays(-2);
                    //Filter.EndTime = DateTime.Now;
                    tag = 4;
                    break;

                //上周拜访
                case 5:
                    //Filter.StartTime = DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) - 6);
                    //Filter.EndTime = DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) - 6);
                    tag = 5;
                    break;

                //本周拜访
                case 6:
                    //Filter.StartTime = DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) + 1);
                    //Filter.EndTime = DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) + 1);
                    tag = 6;
                    break;

                //上月拜访
                case 7:
                    //Filter.StartTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1);
                    //Filter.EndTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1);
                    tag = 7;
                    break;

                //本月拜访
                case 8:
                    //Filter.StartTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01"));
                    //Filter.EndTime = DateTime.Now;
                    tag = 8;
                    break;

                //本年拜访
                case 9:
                    //Filter.StartTime = new DateTime(DateTime.Now.Year, 1, 1);
                    //Filter.EndTime = DateTime.Now;
                    tag = 9;
                    break;
                }
                //VisitReportPage
                //await this.NavigateAsync($"{nameof(VisitRecordsPage)}", ("Filter", Filter));
                await this.NavigateAsync("VisitReportPage", ("Tag", tag));
            });

            this.BindBusyCommand(Load);
        }