ChartPageView.xaml.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. using ivf_tl_Operate.Converts;
  2. using ivf_tl_Operate.CustomUserControls;
  3. using ivf_tl_Operate.ViewModel;
  4. using ivf_tl_Operate.Windows;
  5. using OxyPlot.Series;
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using System.Diagnostics;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows;
  14. using System.Windows.Controls;
  15. using System.Windows.Data;
  16. using System.Windows.Documents;
  17. using System.Windows.Input;
  18. using System.Windows.Media;
  19. using System.Windows.Media.Imaging;
  20. using System.Windows.Navigation;
  21. using System.Windows.Shapes;
  22. namespace ivf_tl_Operate.View
  23. {
  24. /// <summary>
  25. /// ChartPageView.xaml 的交互逻辑
  26. /// </summary>
  27. public partial class ChartPageView : UserControl
  28. {
  29. private ChartPageViewModel vm;
  30. private List<ChartButton> chartButtons = new List<ChartButton>();
  31. private DateTime lastSelectTime;
  32. public ChartPageView(int houseId)
  33. {
  34. InitializeComponent();
  35. chartButtons.Add(_chartButton1);
  36. chartButtons.Add(_chartButton2);
  37. chartButtons.Add(_chartButton3);
  38. chartButtons.Add(_chartButton4);
  39. chartButtons.Add(_chartButton5);
  40. chartButtons.Add(_chartButton6);
  41. chartButtons.Add(_chartButton7);
  42. chartButtons.Add(_chartButton8);
  43. chartButtons.Add(_chartButton9);
  44. chartButtons.Add(_chartButton10);
  45. Loaded += (s, e) =>
  46. {
  47. vm = this.DataContext as ChartPageViewModel;
  48. if (vm == null) return;
  49. vm.RightDate = DateTime.Now;
  50. vm.LeftDate = vm.RightDate.Date;
  51. //chartButtons.ForEach(item =>
  52. //{
  53. // item.IsSelected = false;
  54. // if (item.Tag == (object)houseId) item.IsSelected = true;
  55. //});
  56. var aa = chartButtons.FirstOrDefault(x => x.Tag.ToString() == houseId.ToString());
  57. if (aa == null)
  58. {
  59. vm.CurrentHouseId = 1;
  60. _chartButton1.IsSelected = true;
  61. }
  62. else
  63. {
  64. vm.CurrentHouseId = houseId;
  65. aa.IsSelected = true;
  66. }
  67. SelectHouseHistory();
  68. };
  69. Unloaded += (s, e) =>
  70. {
  71. if (vm != null)
  72. {
  73. vm.isClose = true;
  74. vm = null;
  75. }
  76. this.DataContext = null;
  77. _root.Children.Clear();
  78. };
  79. }
  80. private void restHisPlot(object sender, MouseButtonEventArgs e)
  81. {
  82. }
  83. private void weekHis(object sender, MouseButtonEventArgs e)
  84. {
  85. var now = DateTime.Now;
  86. var span = now - lastSelectTime;
  87. if (span.TotalSeconds <= 1) return;
  88. lastSelectTime = DateTime.Now;
  89. vm.RightDate = DateTime.Now;
  90. vm.LeftDate = vm.RightDate.AddDays(-6);
  91. SelectHouseHistory();
  92. }
  93. private void weekHis1(object sender, MouseButtonEventArgs e)
  94. {
  95. }
  96. private void ScrollViewer_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
  97. {
  98. e.Handled = true;
  99. }
  100. private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
  101. {
  102. }
  103. private void Return_Click(object sender, RoutedEventArgs e)
  104. {
  105. AppData.Instance.BackMainPage();
  106. }
  107. private void Border_MouseUp(object sender, MouseButtonEventArgs e)
  108. {
  109. GetDateWindow getDate = new GetDateWindow(AppData.Instance.MainWindow);
  110. getDate.SetSelectTime(Convert.ToDateTime(vm.LeftDate));
  111. AppData.Instance.MainWindow.Mark(true);
  112. var result = getDate.ShowDialog();
  113. AppData.Instance.MainWindow.Mark(false);
  114. if (result.Value == true)
  115. {
  116. DateTime dateTime = Convert.ToDateTime(getDate.Date);
  117. if (dateTime > DateTime.Now) dateTime = DateTime.Now;
  118. vm.LeftDate = dateTime;
  119. }
  120. }
  121. private void Border_MouseUp_GetRightDate(object sender, MouseButtonEventArgs e)
  122. {
  123. GetDateWindow getDate = new GetDateWindow(AppData.Instance.MainWindow);
  124. getDate.SetSelectTime(Convert.ToDateTime(vm.RightDate));
  125. AppData.Instance.MainWindow.Mark(true);
  126. var result = getDate.ShowDialog();
  127. AppData.Instance.MainWindow.Mark(false);
  128. if (result.Value == true)
  129. {
  130. DateTime dateTime = Convert.ToDateTime(getDate.Date).AddDays(1).AddSeconds(-1);
  131. if (dateTime > DateTime.Now) dateTime = DateTime.Now;
  132. vm.RightDate = dateTime;
  133. }
  134. }
  135. private void Border_MouseUp_1(object sender, MouseButtonEventArgs e)
  136. {
  137. var now = DateTime.Now;
  138. var span = now - lastSelectTime;
  139. if (span.TotalSeconds <= 1) return;
  140. lastSelectTime = now;
  141. SelectHouseHistory();
  142. }
  143. private void _chartButton1_MouseUp(object sender, MouseButtonEventArgs e)
  144. {
  145. if (!(sender is ChartButton button)) return;
  146. chartButtons.ForEach(item => item.IsSelected = false);
  147. button.IsSelected = true;
  148. if (button.Tag == null) return;
  149. if (int.TryParse(button.Tag.ToString(), out int id))
  150. {
  151. var now = DateTime.Now;
  152. var span = now - lastSelectTime;
  153. if (span.TotalSeconds <= 1 || vm.CurrentHouseId == id) return;
  154. lastSelectTime = now;
  155. vm.CurrentHouseId = id;
  156. vm.TemperatureRealDataPoints.Clear();
  157. vm.PressureRealDataPoints.Clear();
  158. //LineSeries realTempratureSeries = vm.RealModel.Series[0] as LineSeries;
  159. //LineSeries realPressureSeries = vm.RealModel.Series[1] as LineSeries;
  160. //realTempratureSeries.Points.Clear();
  161. //realPressureSeries.Points.Clear();
  162. SelectHouseHistory();
  163. }
  164. }
  165. private void SelectHouseHistory()
  166. {
  167. if (vm == null) return;
  168. Task.Run(() =>
  169. {
  170. //vm.HistoryTitle = $"{vm.CurrentHouseId}号舱室温压历史曲线";
  171. //vm.RealTitle = $"{vm.CurrentHouseId}号舱室温压实时曲线";
  172. vm.HistoryTitle = $"{vm.CurrentHouseId}{KeyToStringConvert.GetLanguageStringByKey("C0255")}";
  173. vm.RealTitle = $"{vm.CurrentHouseId}{KeyToStringConvert.GetLanguageStringByKey("C0256")}";
  174. //var list = new HouseHistoryProvider().FindAllNoAir(vm.CurrentHouseId, vm.LeftDate, vm.RightDate);
  175. //if (list == null || list.Count < 5)
  176. //{
  177. // App.Current.Dispatcher.BeginInvoke(new Action(() =>
  178. // {
  179. // new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "暂无数据");
  180. // }));
  181. // return;
  182. //}
  183. App.Current.Dispatcher.BeginInvoke(() =>
  184. {
  185. if (vm.LeftDate > vm.RightDate)
  186. {
  187. //new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "开始日期不能大于结束日期");
  188. new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0257"));
  189. return;
  190. }
  191. vm.RefHistroy();
  192. });
  193. });
  194. }
  195. }
  196. }