MarkDetail.xaml.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. using ivf_tl_Entity.Entity.balance;
  2. using ivf_tl_Entity.Enums;
  3. using ivf_tl_Manage.Converts;
  4. using ivf_tl_Manage.UserControls;
  5. using ivf_tl_Manage.ViewModels;
  6. using ivf_tl_Manage.Win;
  7. using Newtonsoft.Json;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Diagnostics;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows;
  15. using System.Windows.Controls;
  16. using System.Windows.Data;
  17. using System.Windows.Documents;
  18. using System.Windows.Input;
  19. using System.Windows.Media;
  20. using System.Windows.Media.Imaging;
  21. using System.Windows.Navigation;
  22. using System.Windows.Shapes;
  23. namespace ivf_tl_Manage.Views
  24. {
  25. /// <summary>
  26. /// MarkDetail.xaml 的交互逻辑
  27. /// </summary>
  28. public partial class MarkDetail : UserControl
  29. {
  30. MarkDetailViewModel viewModel;
  31. public MarkDetail()
  32. {
  33. //测试
  34. InitializeComponent();
  35. this.Loaded += MarkDetail_Loaded;
  36. this.Unloaded += (s, e) =>
  37. {
  38. Canvas_Root.Children.Clear();
  39. viewModel = null;
  40. DataContext = null;
  41. };
  42. }
  43. private void MarkDetail_Loaded(object sender, RoutedEventArgs e)
  44. {
  45. viewModel = (MarkDetailViewModel)this.DataContext;
  46. if (viewModel != null) InitNav();
  47. }
  48. private void InitNav()
  49. {
  50. _nav_StackPanel.Children.Clear();
  51. for (int i = 0; i < viewModel.NavList.Count; i++)
  52. {
  53. var item = viewModel.NavList[i];
  54. if (i == viewModel.NavList.Count - 1)
  55. {
  56. TextBlock textBlock1 = new TextBlock();
  57. textBlock1.Margin = new Thickness(8, 0, 0, 0);
  58. textBlock1.FontWeight = FontWeights.Bold;
  59. textBlock1.Foreground = new SolidColorBrush(Colors.Black);
  60. textBlock1.FontSize = 32d;
  61. textBlock1.VerticalAlignment = VerticalAlignment.Center;
  62. textBlock1.Text = item.NavName;
  63. _nav_StackPanel.Children.Add(textBlock1);
  64. return;
  65. }
  66. Button button = new Button();
  67. button.Content = item.NavName;
  68. button.FontWeight = FontWeights.Bold;
  69. button.FontSize = 28d;
  70. button.BorderThickness = new Thickness(0);
  71. button.Background = new SolidColorBrush(Colors.Transparent);
  72. button.Style = App.Current.FindResource("ButtonStyle1") as Style;
  73. if (i == 0)
  74. {
  75. button.Margin = new Thickness(0, 0, 0, 0);
  76. }
  77. else
  78. {
  79. button.Margin = new Thickness(8, 0, 0, 0);
  80. }
  81. button.Click += (s, e) =>
  82. {
  83. if (viewModel != null) viewModel.NavList.Clear();
  84. if (item is PatientManageViewModel patient)
  85. {
  86. patient.SetTLInfo(AppData.Instance.CurrentTlInfo);
  87. AppData.Instance.MainWindowViewModel.CurrentViewModle = patient;
  88. return;
  89. }
  90. AppData.Instance.MainWindowViewModel.CurrentViewModle = item;
  91. };
  92. TextBlock textBlock = new TextBlock();
  93. textBlock.Margin = new Thickness(8, 0, 0, 0);
  94. textBlock.VerticalAlignment = VerticalAlignment.Center;
  95. textBlock.FontWeight = FontWeights.Bold;
  96. textBlock.FontSize = 28d;
  97. textBlock.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#9B9B9B"));
  98. textBlock.Text = ">";
  99. _nav_StackPanel.Children.Add(button);
  100. _nav_StackPanel.Children.Add(textBlock);
  101. }
  102. }
  103. private void ListViewItem_MouseUp(object sender, MouseButtonEventArgs e)
  104. {
  105. }
  106. private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
  107. {
  108. ScrollViewer viewer = _scrollview;
  109. if (viewer == null)
  110. return;
  111. double num = Math.Abs((int)(e.Delta / 2));
  112. double offset = 0.0;
  113. if (e.Delta > 0)
  114. {
  115. offset = Math.Max((double)0.0, (double)(viewer.VerticalOffset - num));
  116. }
  117. else
  118. {
  119. offset = Math.Min(viewer.ScrollableHeight, viewer.VerticalOffset + num);
  120. }
  121. if (offset != viewer.VerticalOffset)
  122. {
  123. viewer.ScrollToVerticalOffset(offset);
  124. e.Handled = true;
  125. }
  126. }
  127. private void order_one_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  128. {
  129. order_one.isSelect = true;
  130. order_two.isSelect = false;
  131. order_three.isSelect = false;
  132. int state = order_one.State;
  133. viewModel.Order(MarkDetailOrderEnum.OrderNumber, state == 1);
  134. }
  135. private void order_two_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  136. {
  137. order_two.isSelect = true;
  138. order_three.isSelect = false;
  139. order_one.isSelect = false;
  140. int state = order_two.State;
  141. viewModel.Order(MarkDetailOrderEnum.OrderScore, state == 1);
  142. }
  143. private void order_three_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  144. {
  145. order_three.isSelect = true;
  146. order_one.isSelect = false;
  147. order_two.isSelect = false;
  148. int state = order_three.State;
  149. viewModel.Order(MarkDetailOrderEnum.OrderLevel, state == 1);
  150. }
  151. private void Button_Click(object sender, RoutedEventArgs e)
  152. {
  153. AppData.Instance.MainWindowViewModel.CurrentViewModle = new DevManageViewModel();
  154. }
  155. private void Button_MouseLeftButtonDown_3(object sender, MouseButtonEventArgs e)
  156. {
  157. }
  158. private void Button_Click_patient(object sender, RoutedEventArgs e)
  159. {
  160. AppData.Instance.MainWindowViewModel.CurrentViewModle = AppData.Instance.MainWindowViewModel.patientManageViewModel;
  161. }
  162. private void Button_Click_Detail(object sender, RoutedEventArgs e)
  163. {
  164. //AppData.Instance.MainWindowViewModel.CurrentViewModle = viewModel.DetailViewModel;
  165. }
  166. private void RecordButton_Click_patient(object sender, RoutedEventArgs e)
  167. {
  168. //AppData.Instance.MainWindowViewModel.CurrentViewModle = viewModel.RecordViewModel;
  169. }
  170. private void RecordButton_Click_Detail(object sender, RoutedEventArgs e)
  171. {
  172. //AppData.Instance.MainWindowViewModel.CurrentViewModle = viewModel.DetailViewModel;
  173. }
  174. //private void _markDetailItem_MarkDetailEvent(ivf_tl_Entity.Entity.balance.Embryo arg1, int arg2)
  175. //{
  176. // if (viewModel.IsDishRecord)
  177. // {
  178. // AppData.Instance.MainWindowViewModel.CurrentViewModle = new MarkDetailViewModel1(arg1, arg2, viewModel.DetailViewModel, viewModel.RecordViewModel, viewModel, viewModel.Title);
  179. // }
  180. // else
  181. // {
  182. // AppData.Instance.MainWindowViewModel.CurrentViewModle = new MarkDetailViewModel1(viewModel.DetailViewModel, arg1, arg2, viewModel.Title);
  183. // }
  184. //}
  185. private void _markDetailItem_MouseDown(object sender, MouseButtonEventArgs e)
  186. {
  187. //Debug.WriteLine(e.OriginalSource.GetType());
  188. //Debug.WriteLine(e.Source.GetType());
  189. if (!(sender is MarkDetailItem markDetailItem)) return;
  190. AppData.Instance.MainWindowViewModel.CurrentViewModle = new MarkDetailViewModel1(viewModel, markDetailItem.EmbryoData, markDetailItem.DishId);
  191. return;
  192. //if (!(sender is MarkDetailItem markDetailItem)) return;
  193. //if (viewModel.IsDishRecord)
  194. //{
  195. // AppData.Instance.MainWindowViewModel.CurrentViewModle = new MarkDetailViewModel1(markDetailItem.EmbryoData, markDetailItem.DishId, viewModel.DetailViewModel, viewModel.RecordViewModel, viewModel, viewModel.Title);
  196. //}
  197. //else
  198. //{
  199. // AppData.Instance.MainWindowViewModel.CurrentViewModle = new MarkDetailViewModel1(viewModel.DetailViewModel, markDetailItem.EmbryoData, markDetailItem.DishId, viewModel.Title);
  200. //}
  201. e.Handled = true;
  202. }
  203. private void _markDetailItem_MarkDetailEvent(Embryo arg1, long arg2)
  204. {
  205. }
  206. private void ExLog(Exception ex, string name)
  207. {
  208. AppData.Instance.LogService.ExceptionLog(ex, $"MarkDetail.{name}", LogEnum.RunException);
  209. }
  210. private void ErrorLog(string message, LogEnum logType)
  211. {
  212. AppData.Instance.LogService.TLLog($"MarkDetail.{message}", logType);
  213. }
  214. private void ToastMessage(string mess)
  215. {
  216. new ToastMessageWindow(AppData.Instance.MainWindow, mess).Show();
  217. }
  218. private void Export_Click(object sender, RoutedEventArgs e)
  219. {
  220. try
  221. {
  222. if (viewModel == null || viewModel.Dish == null || viewModel.Dish.embryoList == null || !viewModel.Dish.embryoList.Any()) return;
  223. string name = $"{viewModel.Dish.wife}_{DateTime.Now.ToString("yy-MM-dd-HH-mm-ss")}.xls";
  224. string fileName = SaveFileName(name);
  225. if (string.IsNullOrEmpty(fileName)) return;
  226. List<long> ids = viewModel.Dish.embryoList.Select(x => x.id).ToList();
  227. AppData.Instance.MainWindowViewModel.DownLoadStart(new ivf_tl_Entity.Entity.DownLoad.DownLoadEntity
  228. {
  229. DownLoadUrl = $"/api/businessManage/pc/embryoMark/exportMarkResult?id={viewModel.Dish.id}",
  230. NewFileFullName = fileName,
  231. FileName = name,
  232. });
  233. //&ids={string.Join(",", ids)}
  234. //ToastMessage("开始下载");
  235. ToastMessage(KeyToStringConvert.GetLanguageStringByKey("0299"));
  236. }
  237. catch (Exception ex)
  238. {
  239. ExLog(ex, "ExportCurrentWellPic_Click");
  240. }
  241. }
  242. public string SaveFileName(string fileName)
  243. {
  244. var dialog = new Microsoft.Win32.SaveFileDialog();
  245. dialog.FileName = fileName;
  246. dialog.DefaultExt = ".xls";
  247. dialog.Filter = "xls|*.xls";
  248. if (dialog.ShowDialog() != true)
  249. {
  250. return null;
  251. }
  252. return dialog.FileName;
  253. }
  254. }
  255. }