提交记录修改Core/Servicers/Instances/Data.cs+132 −9看文件
修改Core/Servicers/Interfaces/IData.cs+9 −3看文件
修改UI/Models/DetailPageModel.cs+62 −0看文件
修改UI/ViewModels/DetailPageVM.cs+198 −0看文件
修改UI/Views/DetailPage.xaml+38 −4看文件
| @@ -301,7 +301,7 @@ namespace Core.Servicers.Instances | ||
| 301 | 301 | |
| 302 | 302 | } |
| 303 | 303 | |
| 304 | 删除: public List<CategoryChartDataModel> GetCategoryHoursData(DateTime date) | |
| 304 | 新增: public List<ColumnDataModel> GetCategoryHoursData(DateTime date) | |
| 305 | 305 | { |
| 306 | 306 | using (var db = new TaiDbContext()) |
| 307 | 307 | { |
| @@ -313,11 +313,11 @@ namespace Core.Servicers.Instances | ||
| 313 | 313 | var data = db.Database.SqlQuery<CategoryHoursDataModel>("select sum(Time) as Total,AppModels.CategoryID,HoursLogModels.DataTime as Time from HoursLogModels join AppModels on AppModels.ID=HoursLogModels.AppModelID where AppModels.CategoryID<>0 and HoursLogModels.DataTime>='" + date.Date.ToString("yyyy-MM-dd HH:mm:ss") + "' and HoursLogModels.DataTime<= '" + date.Date.ToString("yyyy-MM-dd 23:59:59") + "' GROUP BY AppModels.CategoryID,HoursLogModels.DataTime ").ToArray(); |
| 314 | 314 | |
| 315 | 315 | |
| 316 | 删除: List<CategoryChartDataModel> list = new List<CategoryChartDataModel>(); | |
| 316 | 新增: List<ColumnDataModel> list = new List<ColumnDataModel>(); | |
| 317 | 317 | |
| 318 | 318 | foreach (var category in categorys) |
| 319 | 319 | { |
| 320 | 删除: list.Add(new CategoryChartDataModel() | |
| 320 | 新增: list.Add(new ColumnDataModel() | |
| 321 | 321 | { |
| 322 | 322 | CategoryID = category.CategoryID, |
| 323 | 323 | Values = new double[24] |
| @@ -341,7 +341,7 @@ namespace Core.Servicers.Instances | ||
| 341 | 341 | } |
| 342 | 342 | } |
| 343 | 343 | |
| 344 | 删除: public List<CategoryChartDataModel> GetCategoryRangeData(DateTime start, DateTime end) | |
| 344 | 新增: public List<ColumnDataModel> GetCategoryRangeData(DateTime start, DateTime end) | |
| 345 | 345 | { |
| 346 | 346 | using (var db = new TaiDbContext()) |
| 347 | 347 | { |
| @@ -357,12 +357,12 @@ namespace Core.Servicers.Instances | ||
| 357 | 357 | var days = ts.TotalDays + 1; |
| 358 | 358 | |
| 359 | 359 | |
| 360 | 删除: List<CategoryChartDataModel> list = new List<CategoryChartDataModel>(); | |
| 360 | 新增: List<ColumnDataModel> list = new List<ColumnDataModel>(); | |
| 361 | 361 | |
| 362 | 362 | |
| 363 | 363 | foreach (var category in categorys) |
| 364 | 364 | { |
| 365 | 删除: list.Add(new CategoryChartDataModel() | |
| 365 | 新增: list.Add(new ColumnDataModel() | |
| 366 | 366 | { |
| 367 | 367 | CategoryID = category.CategoryID, |
| 368 | 368 | Values = new double[(int)days] |
| @@ -389,7 +389,7 @@ namespace Core.Servicers.Instances | ||
| 389 | 389 | } |
| 390 | 390 | } |
| 391 | 391 | |
| 392 | 删除: public List<CategoryChartDataModel> GetCategoryYearData(DateTime date) | |
| 392 | 新增: public List<ColumnDataModel> GetCategoryYearData(DateTime date) | |
| 393 | 393 | { |
| 394 | 394 | using (var db = new TaiDbContext()) |
| 395 | 395 | { |
| @@ -407,12 +407,12 @@ namespace Core.Servicers.Instances | ||
| 407 | 407 | //var days = ts.TotalDays + 1; |
| 408 | 408 | |
| 409 | 409 | |
| 410 | 删除: List<CategoryChartDataModel> list = new List<CategoryChartDataModel>(); | |
| 410 | 新增: List<ColumnDataModel> list = new List<ColumnDataModel>(); | |
| 411 | 411 | |
| 412 | 412 | |
| 413 | 413 | foreach (var category in categorys) |
| 414 | 414 | { |
| 415 | 删除: list.Add(new CategoryChartDataModel() | |
| 415 | 新增: list.Add(new ColumnDataModel() | |
| 416 | 416 | { |
| 417 | 417 | CategoryID = category.CategoryID, |
| 418 | 418 | Values = new double[12] |
| @@ -439,5 +439,128 @@ namespace Core.Servicers.Instances | ||
| 439 | 439 | return list; |
| 440 | 440 | } |
| 441 | 441 | } |
| 442 | 新增: | |
| 443 | 新增: public struct ColumnItemDataModel | |
| 444 | 新增: { | |
| 445 | 新增: public int Total { get; set; } | |
| 446 | 新增: public int AppID { get; set; } | |
| 447 | 新增: public DateTime Time { get; set; } | |
| 448 | 新增: | |
| 449 | 新增: } | |
| 450 | 新增: | |
| 451 | 新增: public List<ColumnDataModel> GetAppDayData(int appID, DateTime date) | |
| 452 | 新增: { | |
| 453 | 新增: using (var db = new TaiDbContext()) | |
| 454 | 新增: { | |
| 455 | 新增: | |
| 456 | 新增: var data = db.Database.SqlQuery<ColumnItemDataModel>("select sum(Time) as Total,AppModelID as AppID,DataTime as Time from HoursLogModels where AppModelID=" + appID + " and DataTime>='" + date.Date.ToString("yyyy-MM-dd HH:mm:ss") + "' and DataTime<= '" + date.Date.ToString("yyyy-MM-dd 23:59:59") + "' GROUP BY AppModelID ").ToArray(); | |
| 457 | 新增: | |
| 458 | 新增: | |
| 459 | 新增: List<ColumnDataModel> list = new List<ColumnDataModel>(); | |
| 460 | 新增: | |
| 461 | 新增: | |
| 462 | 新增: list.Add(new ColumnDataModel() | |
| 463 | 新增: { | |
| 464 | 新增: AppId = appID, | |
| 465 | 新增: Values = new double[24] | |
| 466 | 新增: }); | |
| 467 | 新增: | |
| 468 | 新增: var item = list[0]; | |
| 469 | 新增: | |
| 470 | 新增: for (int i = 0; i < 24; i++) | |
| 471 | 新增: { | |
| 472 | 新增: string hours = i < 10 ? "0" + i : i.ToString(); | |
| 473 | 新增: var time = date.ToString($"yyyy-MM-dd {hours}:00:00"); | |
| 474 | 新增: | |
| 475 | 新增: var log = data.Where(m => m.Time.ToString("yyyy-MM-dd HH:00:00") == time).FirstOrDefault(); | |
| 476 | 新增: | |
| 477 | 新增: | |
| 478 | 新增: | |
| 479 | 新增: item.Values[i] = log.Total; | |
| 480 | 新增: } | |
| 481 | 新增: return list; | |
| 482 | 新增: } | |
| 483 | 新增: } | |
| 484 | 新增: | |
| 485 | 新增: public List<ColumnDataModel> GetAppRangeData(int appID, DateTime start, DateTime end) | |
| 486 | 新增: { | |
| 487 | 新增: using (var db = new TaiDbContext()) | |
| 488 | 新增: { | |
| 489 | 新增: // 查出有数据的分类 | |
| 490 | 新增: | |
| 491 | 新增: var data = db.Database.SqlQuery<ColumnItemDataModel>("select sum(Time) as Total,AppModelID as AppID,Date as Time from DailyLogModels where AppModelID=" + appID + " and Date>='" + start.Date.ToString("yyyy-MM-dd HH:mm:ss") + "' and Date<= '" + end.Date.ToString("yyyy-MM-dd HH:mm:ss") + "' GROUP BY Date ").ToArray(); | |
| 492 | 新增: | |
| 493 | 新增: | |
| 494 | 新增: var ts = end - start; | |
| 495 | 新增: var days = ts.TotalDays + 1; | |
| 496 | 新增: | |
| 497 | 新增: | |
| 498 | 新增: List<ColumnDataModel> list = new List<ColumnDataModel>(); | |
| 499 | 新增: | |
| 500 | 新增: | |
| 501 | 新增: | |
| 502 | 新增: list.Add(new ColumnDataModel() | |
| 503 | 新增: { | |
| 504 | 新增: AppId = appID, | |
| 505 | 新增: Values = new double[(int)days] | |
| 506 | 新增: }); | |
| 507 | 新增: | |
| 508 | 新增: | |
| 509 | 新增: var item = list[0]; | |
| 510 | 新增: | |
| 511 | 新增: for (int i = 0; i < days; i++) | |
| 512 | 新增: { | |
| 513 | 新增: string day = i < 10 ? "0" + i : i.ToString(); | |
| 514 | 新增: var time = start.AddDays(i).ToString($"yyyy-MM-dd 00:00:00"); | |
| 515 | 新增: | |
| 516 | 新增: var log = data.Where(m => m.Time.ToString("yyyy-MM-dd 00:00:00") == time).FirstOrDefault(); | |
| 517 | 新增: | |
| 518 | 新增: item.Values[i] = log.Total; | |
| 519 | 新增: } | |
| 520 | 新增: return list; | |
| 521 | 新增: } | |
| 522 | 新增: } | |
| 523 | 新增: | |
| 524 | 新增: public List<ColumnDataModel> GetAppYearData(int appID, DateTime date) | |
| 525 | 新增: { | |
| 526 | 新增: using (var db = new TaiDbContext()) | |
| 527 | 新增: { | |
| 528 | 新增: // 查出有数据的分类 | |
| 529 | 新增: | |
| 530 | 新增: var dateArr = Time.GetYearDate(date); | |
| 531 | 新增: | |
| 532 | 新增: | |
| 533 | 新增: var data = db.Database.SqlQuery<ColumnItemDataModel>("select sum(Time) as Total,AppModelID as AppID,Date as Time from DailyLogModels where AppModelID=" + appID + " and Date>='" + dateArr[0].Date.ToString("yyyy-MM-dd HH:mm:ss") + "' and Date<= '" + dateArr[1].Date.ToString("yyyy-MM-dd HH:mm:ss") + "' GROUP BY Date").ToArray(); | |
| 534 | 新增: | |
| 535 | 新增: | |
| 536 | 新增: | |
| 537 | 新增: | |
| 538 | 新增: List<ColumnDataModel> list = new List<ColumnDataModel>(); | |
| 539 | 新增: | |
| 540 | 新增: | |
| 541 | 新增: list.Add(new ColumnDataModel() | |
| 542 | 新增: { | |
| 543 | 新增: AppId = appID, | |
| 544 | 新增: Values = new double[12] | |
| 545 | 新增: }); | |
| 546 | 新增: | |
| 547 | 新增: | |
| 548 | 新增: var item = list[0]; | |
| 549 | 新增: | |
| 550 | 新增: for (int i = 1; i < 13; i++) | |
| 551 | 新增: { | |
| 552 | 新增: string month = i < 10 ? "0" + i : i.ToString(); | |
| 553 | 新增: var dayArr = Time.GetMonthDate(new DateTime(date.Year, i, 1)); | |
| 554 | 新增: | |
| 555 | 新增: Debug.WriteLine(dayArr); | |
| 556 | 新增: | |
| 557 | 新增: var total = data.Where(m => m.Time >= dayArr[0] && m.Time <= dayArr[1]).Sum(m => m.Total); | |
| 558 | 新增: | |
| 559 | 新增: | |
| 560 | 新增: item.Values[i - 1] = total; | |
| 561 | 新增: } | |
| 562 | 新增: return list; | |
| 563 | 新增: } | |
| 564 | 新增: } | |
| 442 | 565 | } |
| 443 | 566 | } |
| @@ -77,20 +77,26 @@ namespace Core.Servicers.Interfaces | ||
| 77 | 77 | /// 获取指定日期所有分类时段统计数据 |
| 78 | 78 | /// </summary> |
| 79 | 79 | /// <returns></returns> |
| 80 | 删除: List<CategoryChartDataModel> GetCategoryHoursData(DateTime date); | |
| 80 | 新增: List<ColumnDataModel> GetCategoryHoursData(DateTime date); | |
| 81 | 81 | /// <summary> |
| 82 | 82 | /// 获取指定日期范围所有分类按天统计数据 |
| 83 | 83 | /// </summary> |
| 84 | 84 | /// <param name="start"></param> |
| 85 | 85 | /// <param name="end"></param> |
| 86 | 86 | /// <returns></returns> |
| 87 | 删除: List<CategoryChartDataModel> GetCategoryRangeData(DateTime start, DateTime end); | |
| 87 | 新增: List<ColumnDataModel> GetCategoryRangeData(DateTime start, DateTime end); | |
| 88 | 88 | /// <summary> |
| 89 | 89 | /// 获取指定年份所有分类按月份统计数据 |
| 90 | 90 | /// </summary> |
| 91 | 91 | /// <param name="date"></param> |
| 92 | 92 | /// <returns></returns> |
| 93 | 删除: List<CategoryChartDataModel> GetCategoryYearData(DateTime date); | |
| 93 | 新增: List<ColumnDataModel> GetCategoryYearData(DateTime date); | |
| 94 | 新增: | |
| 95 | 新增: List<ColumnDataModel> GetAppDayData(int appID, DateTime date); | |
| 96 | 新增: List<ColumnDataModel> GetAppRangeData(int appID, DateTime start, DateTime end); | |
| 97 | 新增: List<ColumnDataModel> GetAppYearData(int appID, DateTime date); | |
| 98 | 新增: | |
| 99 | 新增: | |
| 94 | 100 | |
| 95 | 101 | } |
| 96 | 102 | } |
| @@ -91,5 +91,67 @@ namespace UI.Models | ||
| 91 | 91 | /// 当前分类 |
| 92 | 92 | /// </summary> |
| 93 | 93 | public SelectItemModel Category { get { return Category_; } set { Category_ = value; OnPropertyChanged(); } } |
| 94 | 新增: | |
| 95 | 新增: | |
| 96 | 新增: // 图表数据 | |
| 97 | 新增: private List<ChartsDataModel> ChartData_; | |
| 98 | 新增: | |
| 99 | 新增: public List<ChartsDataModel> ChartData | |
| 100 | 新增: { | |
| 101 | 新增: get | |
| 102 | 新增: { | |
| 103 | 新增: return ChartData_; | |
| 104 | 新增: } | |
| 105 | 新增: set | |
| 106 | 新增: { | |
| 107 | 新增: ChartData_ = value; | |
| 108 | 新增: OnPropertyChanged(); | |
| 109 | 新增: } | |
| 110 | 新增: } | |
| 111 | 新增: | |
| 112 | 新增: private ObservableCollection<string> TabbarData_; | |
| 113 | 新增: /// <summary> | |
| 114 | 新增: /// tabbar data | |
| 115 | 新增: /// </summary> | |
| 116 | 新增: public ObservableCollection<string> TabbarData | |
| 117 | 新增: { | |
| 118 | 新增: get { return TabbarData_; } | |
| 119 | 新增: set { TabbarData_ = value; OnPropertyChanged(); } | |
| 120 | 新增: } | |
| 121 | 新增: | |
| 122 | 新增: private int TabbarSelectedIndex_; | |
| 123 | 新增: /// <summary> | |
| 124 | 新增: /// tabbar selected item index | |
| 125 | 新增: /// </summary> | |
| 126 | 新增: public int TabbarSelectedIndex | |
| 127 | 新增: { | |
| 128 | 新增: get { return TabbarSelectedIndex_; } | |
| 129 | 新增: set | |
| 130 | 新增: { | |
| 131 | 新增: TabbarSelectedIndex_ = value; | |
| 132 | 新增: OnPropertyChanged(); | |
| 133 | 新增: } | |
| 134 | 新增: } | |
| 135 | 新增: private string WeekDateStr_; | |
| 136 | 新增: public string WeekDateStr { get { return WeekDateStr_; } set { WeekDateStr_ = value; OnPropertyChanged(); } } | |
| 137 | 新增: private DateTime ChartDate_; | |
| 138 | 新增: public DateTime ChartDate { get { return ChartDate_; } set { ChartDate_ = value; OnPropertyChanged(); } } | |
| 139 | 新增: | |
| 140 | 新增: private List<SelectItemModel> WeekOptions_; | |
| 141 | 新增: | |
| 142 | 新增: public List<SelectItemModel> WeekOptions { get { return WeekOptions_; } set { WeekOptions_ = value; OnPropertyChanged(); } } | |
| 143 | 新增: | |
| 144 | 新增: private SelectItemModel SelectedWeek_; | |
| 145 | 新增: | |
| 146 | 新增: public SelectItemModel SelectedWeek { get { return SelectedWeek_; } set { SelectedWeek_ = value; OnPropertyChanged(); } } | |
| 147 | 新增: | |
| 148 | 新增: private DateTime MonthDate_; | |
| 149 | 新增: public DateTime MonthDate { get { return MonthDate_; } set { MonthDate_ = value; OnPropertyChanged(); } } | |
| 150 | 新增: | |
| 151 | 新增: private DateTime YearDate_; | |
| 152 | 新增: public DateTime YearDate { get { return YearDate_; } set { YearDate_ = value; OnPropertyChanged(); } } | |
| 153 | 新增: | |
| 154 | 新增: private int NameIndexStart_ = 0; | |
| 155 | 新增: public int NameIndexStart { get { return NameIndexStart_; } set { NameIndexStart_ = value; OnPropertyChanged(); } } | |
| 94 | 156 | } |
| 95 | 157 | } |
| @@ -52,6 +52,35 @@ namespace UI.ViewModels | ||
| 52 | 52 | |
| 53 | 53 | Date = DateTime.Now; |
| 54 | 54 | |
| 55 | 新增: TabbarData = new System.Collections.ObjectModel.ObservableCollection<string>() | |
| 56 | 新增: { | |
| 57 | 新增: "按天","按周","按月","按年" | |
| 58 | 新增: }; | |
| 59 | 新增: | |
| 60 | 新增: var weekOptions = new List<SelectItemModel>(); | |
| 61 | 新增: weekOptions.Add(new SelectItemModel() | |
| 62 | 新增: { | |
| 63 | 新增: Name = "本周" | |
| 64 | 新增: }); | |
| 65 | 新增: weekOptions.Add(new SelectItemModel() | |
| 66 | 新增: { | |
| 67 | 新增: Name = "上周" | |
| 68 | 新增: }); | |
| 69 | 新增: | |
| 70 | 新增: WeekOptions = weekOptions; | |
| 71 | 新增: | |
| 72 | 新增: SelectedWeek = weekOptions[0]; | |
| 73 | 新增: | |
| 74 | 新增: MonthDate = DateTime.Now; | |
| 75 | 新增: | |
| 76 | 新增: TabbarSelectedIndex = 0; | |
| 77 | 新增: | |
| 78 | 新增: Date = DateTime.Now; | |
| 79 | 新增: | |
| 80 | 新增: YearDate = DateTime.Now; | |
| 81 | 新增: | |
| 82 | 新增: ChartDate = DateTime.Now; | |
| 83 | 新增: | |
| 55 | 84 | PropertyChanged += DetailPageVM_PropertyChanged; |
| 56 | 85 | |
| 57 | 86 | config = appConfig.GetConfig(); |
| @@ -60,6 +89,7 @@ namespace UI.ViewModels | ||
| 60 | 89 | |
| 61 | 90 | await LoadInfo(); |
| 62 | 91 | |
| 92 | 新增: LoadDayData(); | |
| 63 | 93 | } |
| 64 | 94 | private void OnInfoMenuActionCommand(object obj) |
| 65 | 95 | { |
| @@ -140,6 +170,48 @@ namespace UI.ViewModels | ||
| 140 | 170 | } |
| 141 | 171 | |
| 142 | 172 | } |
| 173 | 新增: | |
| 174 | 新增: // 处理图表数据加载 | |
| 175 | 新增: if (e.PropertyName == nameof(ChartDate)) | |
| 176 | 新增: { | |
| 177 | 新增: LoadDayData(); | |
| 178 | 新增: } | |
| 179 | 新增: if (e.PropertyName == nameof(TabbarSelectedIndex)) | |
| 180 | 新增: { | |
| 181 | 新增: if (TabbarSelectedIndex == 0) | |
| 182 | 新增: { | |
| 183 | 新增: NameIndexStart = 0; | |
| 184 | 新增: | |
| 185 | 新增: LoadDayData(); | |
| 186 | 新增: } | |
| 187 | 新增: else if (TabbarSelectedIndex == 1) | |
| 188 | 新增: { | |
| 189 | 新增: LoadWeekData(); | |
| 190 | 新增: } | |
| 191 | 新增: else if (TabbarSelectedIndex == 2) | |
| 192 | 新增: { | |
| 193 | 新增: NameIndexStart = 1; | |
| 194 | 新增: | |
| 195 | 新增: LoadMonthlyData(); | |
| 196 | 新增: } | |
| 197 | 新增: else if (TabbarSelectedIndex == 3) | |
| 198 | 新增: { | |
| 199 | 新增: LoadYearData(); | |
| 200 | 新增: } | |
| 201 | 新增: | |
| 202 | 新增: } | |
| 203 | 新增: if (e.PropertyName == nameof(SelectedWeek)) | |
| 204 | 新增: { | |
| 205 | 新增: LoadWeekData(); | |
| 206 | 新增: } | |
| 207 | 新增: if (e.PropertyName == nameof(MonthDate)) | |
| 208 | 新增: { | |
| 209 | 新增: LoadMonthlyData(); | |
| 210 | 新增: } | |
| 211 | 新增: if (e.PropertyName == nameof(YearDate)) | |
| 212 | 新增: { | |
| 213 | 新增: LoadYearData(); | |
| 214 | 新增: } | |
| 143 | 215 | } |
| 144 | 216 | |
| 145 | 217 | private void LoadCategorys(string categoryName) |
| @@ -304,5 +376,131 @@ namespace UI.ViewModels | ||
| 304 | 376 | |
| 305 | 377 | return resData; |
| 306 | 378 | } |
| 379 | 新增: | |
| 380 | 新增: #region 柱状图图表数据加载 | |
| 381 | 新增: /// <summary> | |
| 382 | 新增: /// 加载天数据 | |
| 383 | 新增: /// </summary> | |
| 384 | 新增: private void LoadDayData() | |
| 385 | 新增: { | |
| 386 | 新增: Task.Run(() => | |
| 387 | 新增: { | |
| 388 | 新增: var list = data.GetAppDayData(App.ID, ChartDate); | |
| 389 | 新增: | |
| 390 | 新增: var chartData = new List<ChartsDataModel>(); | |
| 391 | 新增: | |
| 392 | 新增: foreach (var item in list) | |
| 393 | 新增: { | |
| 394 | 新增: | |
| 395 | 新增: chartData.Add(new ChartsDataModel() | |
| 396 | 新增: { | |
| 397 | 新增: Name = App.Description, | |
| 398 | 新增: Icon = App.IconFile, | |
| 399 | 新增: Values = item.Values, | |
| 400 | 新增: }); | |
| 401 | 新增: } | |
| 402 | 新增: | |
| 403 | 新增: ChartData = chartData; | |
| 404 | 新增: }); | |
| 405 | 新增: } | |
| 406 | 新增: | |
| 407 | 新增: /// <summary> | |
| 408 | 新增: /// 加载周数据 | |
| 409 | 新增: /// </summary> | |
| 410 | 新增: private void LoadWeekData() | |
| 411 | 新增: { | |
| 412 | 新增: Task.Run(() => | |
| 413 | 新增: { | |
| 414 | 新增: var weekDateArr = SelectedWeek.Name == "本周" ? Time.GetThisWeekDate() : Time.GetLastWeekDate(); | |
| 415 | 新增: | |
| 416 | 新增: WeekDateStr = weekDateArr[0].ToString("yyyy年MM月dd日") + " 到 " + weekDateArr[1].ToString("yyyy年MM月dd日"); | |
| 417 | 新增: | |
| 418 | 新增: var list = data.GetAppRangeData(App.ID, weekDateArr[0], weekDateArr[1]); | |
| 419 | 新增: | |
| 420 | 新增: var chartData = new List<ChartsDataModel>(); | |
| 421 | 新增: | |
| 422 | 新增: string[] weekNames = { "周一", "周二", "周三", "周四", "周五", "周六", "周日", }; | |
| 423 | 新增: foreach (var item in list) | |
| 424 | 新增: { | |
| 425 | 新增: | |
| 426 | 新增: chartData.Add(new ChartsDataModel() | |
| 427 | 新增: { | |
| 428 | 新增: | |
| 429 | 新增: Name = App.Description, | |
| 430 | 新增: Icon = App.IconFile, | |
| 431 | 新增: Values = item.Values, | |
| 432 | 新增: ColumnNames = weekNames | |
| 433 | 新增: }); | |
| 434 | 新增: } | |
| 435 | 新增: | |
| 436 | 新增: ChartData = chartData; | |
| 437 | 新增: }); | |
| 438 | 新增: } | |
| 439 | 新增: | |
| 440 | 新增: /// <summary> | |
| 441 | 新增: /// 加载月数据 | |
| 442 | 新增: /// </summary> | |
| 443 | 新增: private void LoadMonthlyData() | |
| 444 | 新增: { | |
| 445 | 新增: Task.Run(() => | |
| 446 | 新增: { | |
| 447 | 新增: var dateArr = Time.GetMonthDate(MonthDate); | |
| 448 | 新增: | |
| 449 | 新增: var list = data.GetAppRangeData(App.ID, dateArr[0], dateArr[1]); | |
| 450 | 新增: | |
| 451 | 新增: var chartData = new List<ChartsDataModel>(); | |
| 452 | 新增: | |
| 453 | 新增: foreach (var item in list) | |
| 454 | 新增: { | |
| 455 | 新增: | |
| 456 | 新增: chartData.Add(new ChartsDataModel() | |
| 457 | 新增: { | |
| 458 | 新增: | |
| 459 | 新增: Name = App.Description, | |
| 460 | 新增: Icon = App.IconFile, | |
| 461 | 新增: Values = item.Values, | |
| 462 | 新增: }); | |
| 463 | 新增: } | |
| 464 | 新增: | |
| 465 | 新增: ChartData = chartData; | |
| 466 | 新增: | |
| 467 | 新增: }); | |
| 468 | 新增: | |
| 469 | 新增: } | |
| 470 | 新增: | |
| 471 | 新增: /// <summary> | |
| 472 | 新增: /// 加载年份数据 | |
| 473 | 新增: /// </summary> | |
| 474 | 新增: private void LoadYearData() | |
| 475 | 新增: { | |
| 476 | 新增: Task.Run(() => | |
| 477 | 新增: { | |
| 478 | 新增: var list = data.GetAppYearData(App.ID, YearDate); | |
| 479 | 新增: | |
| 480 | 新增: var chartData = new List<ChartsDataModel>(); | |
| 481 | 新增: | |
| 482 | 新增: string[] names = new string[12]; | |
| 483 | 新增: for (int i = 0; i < 12; i++) | |
| 484 | 新增: { | |
| 485 | 新增: names[i] = (i + 1) + "月"; | |
| 486 | 新增: } | |
| 487 | 新增: | |
| 488 | 新增: foreach (var item in list) | |
| 489 | 新增: { | |
| 490 | 新增: | |
| 491 | 新增: chartData.Add(new ChartsDataModel() | |
| 492 | 新增: { | |
| 493 | 新增: Name = App.Description, | |
| 494 | 新增: Icon = App.IconFile, | |
| 495 | 新增: Values = item.Values, | |
| 496 | 新增: ColumnNames = names | |
| 497 | 新增: }); | |
| 498 | 新增: } | |
| 499 | 新增: | |
| 500 | 新增: ChartData = chartData; | |
| 501 | 新增: | |
| 502 | 新增: }); | |
| 503 | 新增: } | |
| 504 | 新增: #endregion | |
| 307 | 505 | } |
| 308 | 506 | } |
| @@ -9,7 +9,7 @@ | ||
| 9 | 9 | d:DesignHeight="450" d:DesignWidth="800" |
| 10 | 10 | Title="DetailPage" |
| 11 | 11 | xmlns:btn="clr-namespace:UI.Controls.Button" |
| 12 | 删除: xmlns:base="clr-namespace:UI.Controls.Base"> | |
| 12 | 新增: xmlns:base="clr-namespace:UI.Controls.Base" xmlns:Tabbar="clr-namespace:UI.Controls.Tabbar"> | |
| 13 | 13 | |
| 14 | 14 | <Grid> |
| 15 | 15 | <StackPanel Margin="20"> |
| @@ -84,7 +84,7 @@ | ||
| 84 | 84 | </StackPanel> |
| 85 | 85 | </Grid> |
| 86 | 86 | </Border> |
| 87 | 删除: <TextBlock Text="今日数据" FontSize="14" Margin="0,20,0,0"/> | |
| 87 | 新增: <!--<TextBlock Text="今日数据" FontSize="14" Margin="0,20,0,0"/> | |
| 88 | 88 | |
| 89 | 89 | <Border |
| 90 | 90 | Background="White" |
| @@ -104,9 +104,43 @@ | ||
| 104 | 104 | </StackPanel> |
| 105 | 105 | |
| 106 | 106 | </StackPanel> |
| 107 | 删除: </Border> | |
| 107 | 新增: </Border>--> | |
| 108 | 新增: <TextBlock Text="统计" Foreground="#5c5c5c" FontSize="14" Margin="0,20,0,0"/> | |
| 109 | 新增: <Tabbar:Tabbar Data="{Binding TabbarData}" SelectedIndex="{Binding TabbarSelectedIndex,Mode=TwoWay}" Width="180" HorizontalAlignment="Left"/> | |
| 110 | 新增: <Border Margin="0,15,0,0" Width="680" HorizontalAlignment="Left" Background="White" Padding="20,10" CornerRadius="10"> | |
| 111 | 新增: <StackPanel> | |
| 112 | 新增: | |
| 113 | 新增: | |
| 114 | 新增: <Grid Margin="0,15,0,0"> | |
| 115 | 新增: <!--按天--> | |
| 116 | 新增: <base:View Condition="0" Value="{Binding TabbarSelectedIndex}"> | |
| 117 | 新增: <Select:DateSelect Date="{Binding ChartDate,Mode=TwoWay}"/> | |
| 118 | 新增: </base:View> | |
| 108 | 119 | |
| 109 | 删除: <TextBlock Text="月份数据" FontSize="14" Margin="0,20,0,0"/> | |
| 120 | 新增: <!--按周--> | |
| 121 | 新增: <base:View Condition="1" Value="{Binding TabbarSelectedIndex}"> | |
| 122 | 新增: <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> | |
| 123 | 新增: <Select:Select IsShowIcon="False" SelectedItem="{Binding SelectedWeek,Mode=TwoWay}" Options="{Binding WeekOptions}"/> | |
| 124 | 新增: <TextBlock Foreground="#626262" Margin="20,0,0,0" FontSize="14" Text="{Binding WeekDateStr}" VerticalAlignment="Center"/> | |
| 125 | 新增: </StackPanel> | |
| 126 | 新增: </base:View> | |
| 127 | 新增: <!--按月--> | |
| 128 | 新增: <base:View Condition="2" Value="{Binding TabbarSelectedIndex}"> | |
| 129 | 新增: <Select:DateSelect Date="{Binding MonthDate,Mode=TwoWay}" SelectType="Month"/> | |
| 130 | 新增: | |
| 131 | 新增: </base:View> | |
| 132 | 新增: <!--按年--> | |
| 133 | 新增: <base:View Condition="3" Value="{Binding TabbarSelectedIndex}"> | |
| 134 | 新增: <Select:DateSelect Date="{Binding YearDate,Mode=TwoWay}" SelectType="Year"/> | |
| 135 | 新增: | |
| 136 | 新增: </base:View> | |
| 137 | 新增: </Grid> | |
| 138 | 新增: <Charts:Charts Height="300" NameIndexStart="{Binding NameIndexStart}" ChartsType="Column" Data="{Binding ChartData}" Margin="0,20,0,0"/> | |
| 139 | 新增: | |
| 140 | 新增: </StackPanel> | |
| 141 | 新增: | |
| 142 | 新增: </Border> | |
| 143 | 新增: <TextBlock Text="热力图" Foreground="#5c5c5c" FontSize="14" Margin="0,20,0,0"/> | |
| 110 | 144 | |
| 111 | 145 | <Border |
| 112 | 146 | Background="White" |

