提交记录修改UI/Models/DetailPageModel.cs+12 −0看文件
修改UI/ViewModels/DetailPageVM.cs+70 −2看文件
修改UI/Views/DetailPage.xaml+31 −1看文件
| @@ -67,5 +67,17 @@ namespace UI.Models | ||
| 67 | 67 | |
| 68 | 68 | private Visibility CancelBlockBtnVisibility_ = Visibility.Collapsed; |
| 69 | 69 | public Visibility CancelBlockBtnVisibility { get { return CancelBlockBtnVisibility_; } set { CancelBlockBtnVisibility_ = value; OnPropertyChanged(); } } |
| 70 | 新增: | |
| 71 | 新增: private string TodayTime_; | |
| 72 | 新增: /// <summary> | |
| 73 | 新增: /// 今日使用时长 | |
| 74 | 新增: /// </summary> | |
| 75 | 新增: public string TodayTime { get { return TodayTime_; } set { TodayTime_ = value; OnPropertyChanged(); } } | |
| 76 | 新增: | |
| 77 | 新增: private string Yesterday_; | |
| 78 | 新增: /// <summary> | |
| 79 | 新增: /// 相比昨日 | |
| 80 | 新增: /// </summary> | |
| 81 | 新增: public string Yesterday { get { return Yesterday_; } set { Yesterday_ = value; OnPropertyChanged(); } } | |
| 70 | 82 | } |
| 71 | 83 | } |
| @@ -3,9 +3,11 @@ using Core.Models.Config; | ||
| 3 | 3 | using Core.Servicers.Interfaces; |
| 4 | 4 | using System; |
| 5 | 5 | using System.Collections.Generic; |
| 6 | 新增:using System.IO; | |
| 6 | 7 | using System.Linq; |
| 7 | 8 | using System.Text; |
| 8 | 9 | using System.Threading.Tasks; |
| 10 | 新增:using System.Windows; | |
| 9 | 11 | using UI.Controls; |
| 10 | 12 | using UI.Controls.Charts.Model; |
| 11 | 13 | using UI.Librays; |
| @@ -22,7 +24,7 @@ namespace UI.ViewModels | ||
| 22 | 24 | private ConfigModel config; |
| 23 | 25 | public Command BlockActionCommand { get; set; } |
| 24 | 26 | public Command ClearSelectMonthDataCommand { get; set; } |
| 25 | 删除: | |
| 27 | 新增: public Command InfoMenuActionCommand { get; set; } | |
| 26 | 28 | public DetailPageVM( |
| 27 | 29 | IData data, MainViewModel main, IAppConfig appConfig) |
| 28 | 30 | { |
| @@ -32,7 +34,7 @@ namespace UI.ViewModels | ||
| 32 | 34 | |
| 33 | 35 | BlockActionCommand = new Command(new Action<object>(OnBlockActionCommand)); |
| 34 | 36 | ClearSelectMonthDataCommand = new Command(new Action<object>(OnClearSelectMonthDataCommand)); |
| 35 | 删除: | |
| 37 | 新增: InfoMenuActionCommand = new Command(new Action<object>(OnInfoMenuActionCommand)); | |
| 36 | 38 | Init(); |
| 37 | 39 | } |
| 38 | 40 | |
| @@ -53,6 +55,29 @@ namespace UI.ViewModels | ||
| 53 | 55 | await LoadInfo(); |
| 54 | 56 | |
| 55 | 57 | } |
| 58 | 新增: private void OnInfoMenuActionCommand(object obj) | |
| 59 | 新增: { | |
| 60 | 新增: switch (obj.ToString()) | |
| 61 | 新增: { | |
| 62 | 新增: case "copy processname": | |
| 63 | 新增: Clipboard.SetText(ProcessName); | |
| 64 | 新增: | |
| 65 | 新增: break; | |
| 66 | 新增: case "copy process file": | |
| 67 | 新增: Clipboard.SetText(Process.PopupText); | |
| 68 | 新增: break; | |
| 69 | 新增: case "open dir": | |
| 70 | 新增: if (File.Exists(Process.PopupText)) | |
| 71 | 新增: { | |
| 72 | 新增: System.Diagnostics.Process.Start("explorer.exe", "/select, " + Process.PopupText); | |
| 73 | 新增: } | |
| 74 | 新增: else | |
| 75 | 新增: { | |
| 76 | 新增: main.Toast("进程文件似乎不存在", Controls.Base.IconTypes.Blocked); | |
| 77 | 新增: } | |
| 78 | 新增: break; | |
| 79 | 新增: } | |
| 80 | 新增: } | |
| 56 | 81 | |
| 57 | 82 | private async void OnClearSelectMonthDataCommand(object obj) |
| 58 | 83 | { |
| @@ -98,6 +123,48 @@ namespace UI.ViewModels | ||
| 98 | 123 | // 判断是否是忽略的进程 |
| 99 | 124 | IsIgnore = config.Behavior.IgnoreProcessList.Contains(ProcessName); |
| 100 | 125 | } |
| 126 | 新增: | |
| 127 | 新增: var today = data.GetProcess(ProcessName, DateTime.Now); | |
| 128 | 新增: var yesterday = data.GetProcess(ProcessName, DateTime.Now.AddDays(-1)); | |
| 129 | 新增: | |
| 130 | 新增: if (today != null) | |
| 131 | 新增: { | |
| 132 | 新增: TodayTime = Timer.Fromat(today.Time); | |
| 133 | 新增: } | |
| 134 | 新增: else | |
| 135 | 新增: { | |
| 136 | 新增: TodayTime = "暂无数据"; | |
| 137 | 新增: } | |
| 138 | 新增: | |
| 139 | 新增: if (yesterday != null) | |
| 140 | 新增: { | |
| 141 | 新增: int diffseconds = today != null ? today.Time - yesterday.Time : yesterday.Time; | |
| 142 | 新增: | |
| 143 | 新增: string diffText = string.Empty; | |
| 144 | 新增: if (diffseconds != yesterday.Time) | |
| 145 | 新增: { | |
| 146 | 新增: if (diffseconds == 0) | |
| 147 | 新增: { | |
| 148 | 新增: // 无变化 | |
| 149 | 新增: diffText = "持平"; | |
| 150 | 新增: } | |
| 151 | 新增: else if (diffseconds > 0) | |
| 152 | 新增: { | |
| 153 | 新增: // 增加 | |
| 154 | 新增: diffText = "增加了" + Timer.Fromat(diffseconds); | |
| 155 | 新增: } | |
| 156 | 新增: else | |
| 157 | 新增: { | |
| 158 | 新增: // 减少 | |
| 159 | 新增: diffText = "减少了" + Timer.Fromat(Math.Abs(diffseconds)); | |
| 160 | 新增: } | |
| 161 | 新增: } | |
| 162 | 新增: Yesterday = diffseconds == yesterday.Time ? "减少100%" : diffText; | |
| 163 | 新增: } | |
| 164 | 新增: else | |
| 165 | 新增: { | |
| 166 | 新增: Yesterday = "昨日未使用"; | |
| 167 | 新增: } | |
| 101 | 168 | } |
| 102 | 169 | } |
| 103 | 170 | ); |
| @@ -158,6 +225,7 @@ namespace UI.ViewModels | ||
| 158 | 225 | data.Clear(ProcessName, Process.PopupText, Date); |
| 159 | 226 | |
| 160 | 227 | await LoadData(); |
| 228 | 新增: await LoadInfo(); | |
| 161 | 229 | main.Toast("已清空"); |
| 162 | 230 | } |
| 163 | 231 | } |
| @@ -19,6 +19,13 @@ | ||
| 19 | 19 | Background="White" |
| 20 | 20 | CornerRadius="12" |
| 21 | 21 | Padding="0,20"> |
| 22 | 新增: <Border.ContextMenu> | |
| 23 | 新增: <ContextMenu> | |
| 24 | 新增: <MenuItem Command="{Binding InfoMenuActionCommand}" CommandParameter="copy processname" Header="复制进程名称"/> | |
| 25 | 新增: <MenuItem Command="{Binding InfoMenuActionCommand}" CommandParameter="copy process file" Header="复制进程路径"/> | |
| 26 | 新增: <MenuItem Command="{Binding InfoMenuActionCommand}" CommandParameter="open dir" Header="打开进程所在目录"/> | |
| 27 | 新增: </ContextMenu> | |
| 28 | 新增: </Border.ContextMenu> | |
| 22 | 29 | <Grid> |
| 23 | 30 | <Grid.ColumnDefinitions> |
| 24 | 31 | <ColumnDefinition Width="100"/> |
| @@ -51,12 +58,35 @@ | ||
| 51 | 58 | </StackPanel> |
| 52 | 59 | </Grid> |
| 53 | 60 | </Border> |
| 61 | 新增: <TextBlock Text="今日数据" FontSize="14" Margin="0,20,0,0"/> | |
| 54 | 62 | |
| 55 | 63 | <Border |
| 56 | 64 | Background="White" |
| 57 | 65 | CornerRadius="12" |
| 58 | 66 | Padding="20,20" |
| 59 | 删除: Margin="0,20,0,0"> | |
| 67 | 新增: Margin="0,10,0,0"> | |
| 68 | 新增: <StackPanel> | |
| 69 | 新增: <StackPanel Orientation="Horizontal" ToolTip="今日使用总时长"> | |
| 70 | 新增: <base:Icon IconType="Timer" VerticalAlignment="Center" Foreground="Gray"/> | |
| 71 | 新增: <TextBlock Text="{Binding TodayTime}" VerticalAlignment="Center" Margin="10,0,0,0"/> | |
| 72 | 新增: </StackPanel> | |
| 73 | 新增: <StackPanel Orientation="Horizontal" Margin="0,10,0,0"> | |
| 74 | 新增: <base:Icon IconType="Chart" VerticalAlignment="Center" Foreground="Gray"/> | |
| 75 | 新增: <TextBlock Text="相比昨日" VerticalAlignment="Center" Margin="10,0,0,0"/> | |
| 76 | 新增: <TextBlock Text="{Binding Yesterday}" VerticalAlignment="Center" Margin="5,0,0,0"/> | |
| 77 | 新增: | |
| 78 | 新增: </StackPanel> | |
| 79 | 新增: | |
| 80 | 新增: </StackPanel> | |
| 81 | 新增: </Border> | |
| 82 | 新增: | |
| 83 | 新增: <TextBlock Text="月份数据" FontSize="14" Margin="0,20,0,0"/> | |
| 84 | 新增: | |
| 85 | 新增: <Border | |
| 86 | 新增: Background="White" | |
| 87 | 新增: CornerRadius="12" | |
| 88 | 新增: Padding="20,20" | |
| 89 | 新增: Margin="0,10,0,0"> | |
| 60 | 90 | <StackPanel> |
| 61 | 91 | <Grid> |
| 62 | 92 | <DatePickerBar:DatePickerBar ShowType="Month" HorizontalAlignment="Left" SelectedDate="{Binding Date,Mode=TwoWay}"/> |

