跳到主要内容

github/tai

公开

Tai · Windows 软件与网站使用时长统计。上游 Planshit/Tai 的源码镜像,非灵栈原创;MIT 许可。来源:https://github.com/Planshit/Tai 。本次为手动同步,暂不提供安装包。

提交记录
修改UI/Models/ChartPageModel.cs+27 −0看文件
@@ -134,5 +134,32 @@ namespace UI.Models
134134 /// 是否以堆叠形式展示
135135 /// </summary>
136136 public bool IsChartStack { get { return IsChartStack_; } set { IsChartStack_ = value; OnPropertyChanged(); } }
137新增:
138新增: private Core.Models.AppModel Top1App_;
139新增: /// <summary>
140新增: /// 使用时间最长的应用
141新增: /// </summary>
142新增: public Core.Models.AppModel Top1App { get { return Top1App_; } set { Top1App_ = value; OnPropertyChanged(); } }
143新增:
144新增: private string DiffTotalTimeType_;
145新增: /// <summary>
146新增: /// 时长对比上一周期变化(0无变化,1增加,-1减少)
147新增: /// </summary>
148新增: public string DiffTotalTimeType { get { return DiffTotalTimeType_; } set { DiffTotalTimeType_ = value;OnPropertyChanged(); } }
149新增: private string DiffAppCountType_;
150新增: /// <summary>
151新增: /// 应用量对比上一周期变化(0无变化,1增加,-1减少)
152新增: /// </summary>
153新增: public string DiffAppCountType { get { return DiffAppCountType_; } set { DiffAppCountType_ = value; OnPropertyChanged(); } }
154新增: private string DiffTotalTimeValue_;
155新增: /// <summary>
156新增: /// 时长差异值
157新增: /// </summary>
158新增: public string DiffTotalTimeValue { get { return DiffTotalTimeValue_; } set { DiffTotalTimeValue_ = value;OnPropertyChanged(); } }
159新增: private string DiffAppCountValue_;
160新增: /// <summary>
161新增: /// 应用量差异值
162新增: /// </summary>
163新增: public string DiffAppCountValue { get { return DiffAppCountValue_; } set { DiffAppCountValue_ = value; OnPropertyChanged(); } }
137164 }
138165}
修改UI/ViewModels/ChartPageVM.cs+91 −1看文件
@@ -6,6 +6,7 @@ using System.Collections.Generic;
66using System.Diagnostics;
77using System.Linq;
88using System.Text;
9新增:using System.Text.RegularExpressions;
910using System.Threading.Tasks;
1011using UI.Controls;
1112using UI.Controls.Charts.Model;
@@ -23,6 +24,9 @@ namespace UI.ViewModels
2324 private readonly MainViewModel mainVM;
2425 private readonly IAppContextMenuServicer appContextMenuServicer;
2526 private readonly IInputServicer inputServicer;
27新增:
28新增: private double totalTime_ = 0;
29新增: private int appCount_ = 0;
2630 public Command ToDetailCommand { get; set; }
2731 public Command RefreshCommand { get; set; }
2832 public List<SelectItemModel> ChartDataModeOptions { get; set; }
@@ -268,6 +272,7 @@ namespace UI.ViewModels
268272 RadarData = chartData;
269273
270274 double totalUse = Data.Sum(m => m.Values.Sum());
275新增: totalTime_ = totalUse;
271276 TotalHours = Time.ToHoursString(totalUse);
272277 LoadTopData();
273278 });
@@ -345,6 +350,7 @@ namespace UI.ViewModels
345350
346351 RadarData = chartData;
347352 double totalUse = Data.Sum(m => m.Values.Sum());
353新增: totalTime_ = totalUse;
348354 TotalHours = Time.ToHoursString(totalUse);
349355 });
350356
@@ -418,6 +424,7 @@ namespace UI.ViewModels
418424
419425 RadarData = chartData;
420426 double totalUse = Data.Sum(m => m.Values.Sum());
427新增: totalTime_ = totalUse;
421428 TotalHours = Time.ToHoursString(totalUse);
422429 LoadTopData();
423430 });
@@ -499,6 +506,7 @@ namespace UI.ViewModels
499506 RadarData = chartData;
500507
501508 double totalUse = Data.Sum(m => m.Values.Sum());
509新增: totalTime_ = totalUse;
502510 TotalHours = Time.ToHoursString(totalUse);
503511 LoadTopData();
504512 });
@@ -539,10 +547,92 @@ namespace UI.ViewModels
539547
540548 TopHours = TopData.Count > 0 ? Time.ToHoursString(TopData[0].Value) : "0";
541549
542删除: AppCount = data.GetDateRangeAppCount(dateStart, dateEnd).ToString();
550新增: appCount_ = data.GetDateRangeAppCount(dateStart, dateEnd);
551新增: AppCount = appCount_.ToString();
552新增:
553新增: Top1App = null;
554新增:
555新增: if (TopData.Count > 0)
556新增: {
557新增: var model = TopData[0].Data as DailyLogModel;
558新增: Top1App = model != null ? model.AppModel : null;
559新增: }
560新增:
561新增: LoadDiffData();
543562 });
544563 }
545564
565新增: private void LoadDiffData()
566新增: {
567新增: var dateStart = Date.Date.AddDays(-1);
568新增: var dateEnd = Date.Date.AddDays(-1);
569新增: if (TabbarSelectedIndex == 1)
570新增: {
571新增: // 周
572新增: var weekDateArr = Time.GetLastWeekDate();
573新增: dateStart = weekDateArr[0];
574新增: dateEnd = weekDateArr[1];
575新增:
576新增: }
577新增: else if (TabbarSelectedIndex == 2)
578新增: {
579新增: // 月
580新增: var dateArr = Time.GetMonthDate(MonthDate.AddMonths(-1));
581新增: dateStart = dateArr[0];
582新增: dateEnd = dateArr[1];
583新增: }
584新增: else if (TabbarSelectedIndex == 3)
585新增: {
586新增: // 年
587新增: var dateArr = Time.GetYearDate(YearDate.AddYears(-1));
588新增: dateStart = dateArr[0];
589新增: dateEnd = dateArr[1];
590新增: }
591新增:
592新增: // 应用量
593新增: int lastAppCount = data.GetDateRangeAppCount(dateStart, dateEnd);
594新增: // 使用总时长
595新增: var lastTotalTime = data.GetRangeTotalData(dateStart, dateEnd).Sum();
596新增:
597新增: double diffTotalTime = ((totalTime_ - lastTotalTime) / lastTotalTime) * 100;
598新增: if (totalTime_ > 0 && lastTotalTime == 0)
599新增: {
600新增: diffTotalTime = 100;
601新增: }
602新增: else if (totalTime_ == 0 && lastTotalTime == 0)
603新增: {
604新增: diffTotalTime = 0;
605新增: }
606新增: if (diffTotalTime > 0)
607新增: {
608新增: DiffTotalTimeType = "1";
609新增: }
610新增: else if (diffTotalTime < 0)
611新增: {
612新增: DiffTotalTimeType = "-1";
613新增: }
614新增: else
615新增: {
616新增: DiffTotalTimeType = "0";
617新增: }
618新增: DiffTotalTimeValue = DiffTotalTimeType == "0" ? string.Empty : diffTotalTime == 100 ? "100%" : Math.Abs(diffTotalTime).ToString("f2") + "%";
619新增:
620新增: int diffAppCount = appCount_ - lastAppCount;
621新增: if (diffAppCount > 0)
622新增: {
623新增: DiffAppCountType = "1";
624新增: }
625新增: else if (diffAppCount < 0)
626新增: {
627新增: DiffAppCountType = "-1";
628新增: }
629新增: else
630新增: {
631新增: DiffAppCountType = "0";
632新增: }
633新增: DiffAppCountValue = DiffAppCountType == "0" ? string.Empty : Math.Abs(diffAppCount).ToString();
634新增: }
635新增:
546636 private List<ChartsDataModel> MapToChartsData(IEnumerable<Core.Models.DailyLogModel> list)
547637 {
548638 var resData = new List<ChartsDataModel>();
修改UI/Views/ChartPage.xaml+51 −4看文件
@@ -53,6 +53,8 @@
5353 <Grid.ColumnDefinitions>
5454 <ColumnDefinition Width="auto"/>
5555 <ColumnDefinition Width="*"/>
56新增: <ColumnDefinition Width="auto"/>
57新增:
5658 </Grid.ColumnDefinitions>
5759 <Border Width="40" Height="40" CornerRadius="14">
5860 <Border.Background>
@@ -75,6 +77,20 @@
7577 <TextBlock Grid.Row="1" Margin="0,3,0,0" Text="总计" Foreground="{DynamicResource SubTextBrush}"/>
7678
7779 </Grid>
80新增: <Border Grid.Column="2" VerticalAlignment="Bottom">
81新增: <StackPanel Orientation="Horizontal">
82新增: <base:View Condition="=1" Value="{Binding DiffTotalTimeType}">
83新增: <base:Icon VerticalAlignment="Center" IconType="ArrowUp8" FontSize="10" />
84新增: </base:View>
85新增: <base:View Condition="=0" Value="{Binding DiffTotalTimeType}">
86新增: <base:Icon VerticalAlignment="Center" IconType="SubtractBold" FontSize="10" />
87新增: </base:View>
88新增: <base:View Condition="=-1" Value="{Binding DiffTotalTimeType}">
89新增: <base:Icon VerticalAlignment="Center" IconType="ArrowDown8" FontSize="10" />
90新增: </base:View>
91新增: <TextBlock Text="{Binding DiffTotalTimeValue}" VerticalAlignment="Center"/>
92新增: </StackPanel>
93新增: </Border>
7894 </Grid>
7995 </Border>
8096 <Border Grid.Column="1" Margin="20,5,0,0" Background="{DynamicResource SettingPanelBgBrush}" Padding="10" CornerRadius="10">
@@ -82,6 +98,7 @@
8298 <Grid.ColumnDefinitions>
8399 <ColumnDefinition Width="auto"/>
84100 <ColumnDefinition Width="*"/>
101新增: <ColumnDefinition Width="auto"/>
85102 </Grid.ColumnDefinitions>
86103 <Border Width="40" Height="40" CornerRadius="14">
87104 <Border.Background>
@@ -90,7 +107,7 @@
90107 <!--<GradientStop Color="#2b20d9" Offset="1"/>-->
91108 </LinearGradientBrush>
92109 </Border.Background>
93删除: <base:Icon IconType="FavoriteStarFill" Foreground="White"/>
110新增: <base:Icon IconType="Apps" Foreground="White"/>
94111 </Border>
95112 <Grid Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center">
96113 <Grid.RowDefinitions>
@@ -105,13 +122,29 @@
105122
106123
107124 </Grid>
125新增: <Border Grid.Column="2" VerticalAlignment="Bottom">
126新增: <StackPanel Orientation="Horizontal">
127新增: <base:View Condition="=1" Value="{Binding DiffAppCountType}">
128新增: <base:Icon VerticalAlignment="Center" IconType="ArrowUp8" FontSize="10" />
129新增: </base:View>
130新增: <base:View Condition="=0" Value="{Binding DiffAppCountType}">
131新增: <base:Icon VerticalAlignment="Center" IconType="SubtractBold" FontSize="10" />
132新增: </base:View>
133新增: <base:View Condition="=-1" Value="{Binding DiffAppCountType}">
134新增: <base:Icon VerticalAlignment="Center" IconType="ArrowDown8" FontSize="10" />
135新增: </base:View>
136新增: <TextBlock Text="{Binding DiffAppCountValue}" VerticalAlignment="Center"/>
137新增:
138新增: </StackPanel>
139新增: </Border>
108140 </Grid>
109141 </Border>
110删除: <Border Grid.Column="2" Margin="20,5,0,0" Background="{DynamicResource SettingPanelBgBrush}" Padding="10" CornerRadius="10">
142新增: <Border Grid.Column="2" Margin="20,5,0,0" Background="{DynamicResource SettingPanelBgBrush}" Padding="10" CornerRadius="10" ToolTip="{Binding Top1App.Description}">
111143 <Grid>
112144 <Grid.ColumnDefinitions>
113145 <ColumnDefinition Width="auto"/>
114146 <ColumnDefinition Width="*"/>
147新增: <ColumnDefinition Width="auto"/>
115148 </Grid.ColumnDefinitions>
116149 <Border Width="40" Height="40" CornerRadius="14">
117150 <Border.Background>
@@ -128,12 +161,26 @@
128161 <RowDefinition Height="auto"/>
129162 </Grid.RowDefinitions>
130163
131删除: <TextBlock >
164新增: <TextBlock>
132165 <Run Text="{Binding TopHours}" FontSize="20"/>
133166 <Run Text="小时" FontSize="12" Foreground="{DynamicResource SubTextBrush}"/>
134167 </TextBlock>
135168 <TextBlock Grid.Row="1" Margin="0,3,0,0" Text="最长使用" Foreground="{DynamicResource SubTextBrush}"/>
136169 </Grid>
170新增: <Border Grid.Column="2">
171新增: <!--<Border Width="16" Height="16">
172新增: <Border.Background>
173新增: <ImageBrush Stretch="Fill" x:Name="image" ImageSource="{Binding Top1App.IconFile}"/>
174新增: </Border.Background>
175新增: </Border>-->
176新增: <Border CornerRadius="6" VerticalAlignment="Bottom" >
177新增: <base:View Value="{Binding Top1App}" Condition="not null">
178新增: <base:Img URL="{Binding Top1App.IconFile}" VerticalAlignment="Center" HorizontalAlignment="Center" Width="16" Height="16"/>
179新增: </base:View>
180新增:
181新增: </Border>
182新增:
183新增: </Border>
137184 </Grid>
138185 </Border>
139186 </Grid>
@@ -150,7 +197,7 @@
150197
151198 <Border Grid.Row="1" Margin="0,20,0,0" Width="680" HorizontalAlignment="Left" Background="{DynamicResource SettingPanelBgBrush}" Padding="20" CornerRadius="10">
152199 <StackPanel >
153删除: <select:Select Height="30" IsShowIcon="False" SelectedItem="{Binding ChartDataMode,Mode=TwoWay}" Options="{Binding ChartDataModeOptions}"/>
200新增: <select:Select Padding="0" Height="30" IsShowIcon="False" SelectedItem="{Binding ChartDataMode,Mode=TwoWay}" Options="{Binding ChartDataModeOptions}"/>
154201 <charts:Charts IsStack="{Binding IsChartStack}" Height="310" ColumnSelectedIndex="{Binding ColumnSelectedIndex,Mode=TwoWay}" IsShowTotal="False" DataMaximum="{Binding DataMaximum}" NameIndexStart="{Binding NameIndexStart}" ChartsType="Column" Data="{Binding Data}" IsCanColumnSelect="{Binding IsCanColumnSelect}"/>
155202 <base:View Value="{Binding DayHoursSelectedTime}" Condition="not empty">
156203 <StackPanel>