AddItemDetailViewModel.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892
  1. using AutoMapper;
  2. using BizService;
  3. using BlankApp1.Events;
  4. using DryIoc;
  5. using Microsoft.Extensions.Logging;
  6. using Model.Dto;
  7. using Model.Entities;
  8. using Newtonsoft.Json;
  9. using PLCTool.Common;
  10. using PLCTool.Models;
  11. using Prism.Commands;
  12. using Prism.Events;
  13. using Prism.Mvvm;
  14. using Prism.Regions;
  15. using Prism.Services.Dialogs;
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Collections.ObjectModel;
  19. using System.Configuration;
  20. using System.Linq;
  21. using System.Text;
  22. using System.Threading.Tasks;
  23. using System.Windows;
  24. namespace PLCTool.ViewModels.BasicConfigViewModel
  25. {
  26. public class AddItemDetailViewModel : BindableBase , IDialogAware
  27. {
  28. private readonly IDialogService _dialog;
  29. private readonly IEventAggregator _aggregator;
  30. private readonly IRegionManager _regionManager;
  31. private readonly IOptionConfigService _optionConfigService;
  32. private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
  33. private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
  34. private readonly IBasicDeviceKindService _iBasicDeviceKindService;
  35. private readonly IMapper _mapper;
  36. private readonly ILogger _logger;
  37. private List<OptionConfigDto> _optionConfigs;
  38. private bas_plc_test_scheme bas_Plc_Test_Scheme;//测试方案
  39. private int schDtlMainId = 0;//测试方案明细主键id
  40. private int delayTime = Convert.ToInt32(ConfigurationManager.AppSettings["DelayTime"]);
  41. private int longDelayTime = Convert.ToInt32(ConfigurationManager.AppSettings["LongDelayTime"]);
  42. public AddItemDetailViewModel(IDialogService dialog, IEventAggregator aggregator, IRegionManager regionManager, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBasicDeviceKindService iBasicDeviceKindService, IMapper mapper, ILogger logger)
  43. {
  44. _dialog = dialog;
  45. _aggregator = aggregator;
  46. _regionManager = regionManager;
  47. _optionConfigService = optionConfigService;
  48. _basicPlcTestSchemeService = basicPlcTestSchemeService;
  49. _basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
  50. _iBasicDeviceKindService = iBasicDeviceKindService;
  51. _mapper = mapper;
  52. _logger = logger;
  53. CloseCommand = new DelegateCommand(Close);
  54. SureCommand = new DelegateCommand<string>(Sure);
  55. ResetCommand = new DelegateCommand<string>(ResetMethod);
  56. AddDetailCommand = new DelegateCommand<string>(AddPLCDetail);
  57. EditInCommand = new DelegateCommand<object>(EditIn);
  58. EditOutCommand = new DelegateCommand<object>(EditOut);
  59. EditBeforeCommand = new DelegateCommand<Object>(EditBefore);
  60. DeleteBeforeCommand = new DelegateCommand<Object>(DeleteBefore);
  61. DeleteInCommand = new DelegateCommand<object>(DeleteIn);
  62. DeleteOutCommand = new DelegateCommand<object>(DeleteOut);
  63. OnLoadCommand = new DelegateCommand<object>(OnLoad);
  64. BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
  65. InConList = new ObservableCollection<BasPlcItemConfigDto>();
  66. OutConList = new ObservableCollection<BasPlcItemConfigDto>();
  67. GetConfigOption();
  68. }
  69. #region IDIALOG实现
  70. public string Title { set; get; } = "新增测试项";
  71. public event Action<IDialogResult> RequestClose;
  72. public bool CanCloseDialog()
  73. {
  74. return true;
  75. }
  76. public void OnDialogClosed()
  77. {
  78. }
  79. public void OnDialogOpened(IDialogParameters parameters)
  80. {
  81. var getMsg = parameters.GetValues<string>("Key");
  82. ///值不为空,表示修改,为空表示新增
  83. if (getMsg != null)
  84. {
  85. foreach (var item in getMsg)
  86. {
  87. DeviceKindName = item;
  88. }
  89. }
  90. var getMsg2 = parameters.GetValues<string>("Key2");
  91. if (getMsg != null)
  92. {
  93. foreach (var item in getMsg2)
  94. {
  95. ScheduleName = item;
  96. }
  97. }
  98. }
  99. #endregion
  100. #region 私有方法
  101. private void OnLoad(object obj)
  102. {
  103. DeviceKindName = "---";
  104. ScheduleName = string.Empty;
  105. //清空测试项的内容
  106. CleanContent();
  107. }
  108. private void OpenEditDialog(Object obj, ObservableCollection<BasPlcItemConfigDto> conList)
  109. {
  110. int id = Convert.ToInt32(obj);
  111. var edit = conList.FirstOrDefault(x => x.Id == id);
  112. if (edit != null)
  113. {
  114. DialogParameters parm = new DialogParameters();
  115. parm.Add("Key", edit);
  116. //弹出详情对话框
  117. _dialog.ShowDialog("AddDetailView", parm, async callback =>
  118. {
  119. if (callback.Result == ButtonResult.OK)
  120. {
  121. BasPlcItemConfigDto returnValue = callback.Parameters.GetValue<BasPlcItemConfigDto>("ReturnValue");
  122. //更新
  123. var after = conList.FirstOrDefault(x => x.Id == id);
  124. if (after != null)
  125. {
  126. after.PlcItem = returnValue.PlcItem;
  127. after.PlcAddress = returnValue.PlcAddress;
  128. after.PlcAddType = returnValue.PlcAddType;
  129. after.PlcValue = returnValue.PlcValue;
  130. after.Remark = returnValue.Remark;
  131. }
  132. }
  133. });
  134. }
  135. }
  136. /// <summary>
  137. /// 前置条件编辑
  138. /// </summary>
  139. /// <param name="obj"></param>
  140. /// <exception cref="NotImplementedException"></exception>
  141. private void EditBefore(Object obj)
  142. {
  143. OpenEditDialog(obj, BeforeConList);
  144. }
  145. private void EditOut(object obj)
  146. {
  147. OpenEditDialog(obj, OutConList);
  148. }
  149. private void EditIn(object obj)
  150. {
  151. OpenEditDialog(obj, InConList);
  152. }
  153. /// <summary>
  154. /// 前置条件删除
  155. /// </summary>
  156. /// <param name="obj"></param>
  157. /// <exception cref="NotImplementedException"></exception>
  158. private void DeleteBefore(Object obj)
  159. {
  160. int id = Convert.ToInt32(obj);
  161. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  162. if (boxResult == MessageBoxResult.OK)
  163. {
  164. var del = BeforeConList.FirstOrDefault(x => x.Id == id);
  165. if (del != null)
  166. {
  167. BeforeConList.Remove(del);
  168. }
  169. }
  170. }
  171. private void DeleteOut(object obj)
  172. {
  173. int id = Convert.ToInt32(obj);
  174. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  175. if (boxResult == MessageBoxResult.OK)
  176. {
  177. var del = OutConList.FirstOrDefault(x => x.Id == id);
  178. if (del != null)
  179. {
  180. OutConList.Remove(del);
  181. }
  182. }
  183. }
  184. private void DeleteIn(object obj)
  185. {
  186. int id = Convert.ToInt32(obj);
  187. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  188. if (boxResult == MessageBoxResult.OK)
  189. {
  190. var del = InConList.FirstOrDefault(x => x.Id == id);
  191. if (del != null)
  192. {
  193. InConList.Remove(del);
  194. }
  195. }
  196. }
  197. /// <summary>
  198. /// 获取配置
  199. /// </summary>
  200. private void GetConfigOption()
  201. {
  202. //获取设备类型
  203. var kinds = _iBasicDeviceKindService.FindAllDeviceKind();
  204. DeviceKindNameList.Add("---");
  205. foreach (var kind in kinds)
  206. {
  207. DeviceKindNameList.Add(kind);
  208. }
  209. //
  210. var configList = _optionConfigService.QueryList();
  211. _optionConfigs = _mapper.Map<List<OptionConfig>, List<OptionConfigDto>>(configList);
  212. var tests = _optionConfigs.FindAll(x => x.TypeID == 1);
  213. TestKinds.Add("---");
  214. foreach (var test in tests)
  215. {
  216. TestKinds.Add(test.ContentOption);
  217. }
  218. //测试项类型
  219. BeforeJudgeKinds.Add("---");
  220. InJudgeKinds.Add("---");
  221. OutJudgeKinds.Add("---");
  222. var judges = _optionConfigs.FindAll(x => x.TypeID == 2);
  223. foreach (var judge in judges)
  224. {
  225. BeforeJudgeKinds.Add(judge.ContentOption);
  226. InJudgeKinds.Add(judge.ContentOption);
  227. OutJudgeKinds.Add(judge.ContentOption);
  228. }
  229. //判定逻辑
  230. JudgeLogicKinds.Add("---");
  231. InJudgeLogicKinds.Add("---");
  232. OutJudgeLogicKinds.Add("---");
  233. var logics = _optionConfigs.FindAll(x => x.TypeID == 3);
  234. foreach (var logic in logics)
  235. {
  236. JudgeLogicKinds.Add(logic.ContentOption);
  237. InJudgeLogicKinds.Add(logic.ContentOption);
  238. OutJudgeLogicKinds.Add(logic.ContentOption);
  239. }
  240. //测试时间
  241. TestTimeList.Clear();
  242. TestTimeList.Add(delayTime.ToString());
  243. TestTimeList.Add(longDelayTime.ToString());
  244. SelectTime = delayTime.ToString();
  245. }
  246. /// <summary>
  247. /// 新增
  248. /// </summary>
  249. /// <param name="str"></param>
  250. private void AddPLCDetail(string str)
  251. {
  252. DialogParameters parm = new DialogParameters();
  253. parm.Add("Key", "");
  254. //弹出详情对话框
  255. _dialog.ShowDialog("AddDetailView", parm, async callback =>
  256. {
  257. if (callback.Result == ButtonResult.OK)
  258. {
  259. BasPlcItemConfigDto returnValue = callback.Parameters.GetValue<BasPlcItemConfigDto>("ReturnValue");
  260. switch (str)
  261. {
  262. case "Before":
  263. returnValue.Id = BeforeConList.Count + 1;
  264. BeforeConList.Add(returnValue); break;
  265. case "In":
  266. returnValue.Id = InConList.Count + 1;
  267. InConList.Add(returnValue); break;
  268. case "Out":
  269. returnValue.Id = OutConList.Count + 1;
  270. OutConList.Add(returnValue); break;
  271. }
  272. }
  273. });
  274. }
  275. /// <summary>
  276. /// 初始化
  277. /// </summary>
  278. /// <summary>
  279. /// 关闭按钮
  280. /// </summary>
  281. private void Close()
  282. {
  283. //RequestClose?.Invoke(new NavigationResult(new NavigationContext(),true);
  284. }
  285. /// <summary>
  286. /// 确认
  287. /// </summary>
  288. /// <param name="obj"></param>
  289. private void Sure(string obj)
  290. {
  291. if (string.IsNullOrEmpty(ScheduleName))
  292. {
  293. MessageBox.Show("请填写测试方案名称!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  294. return;
  295. }
  296. if (string.IsNullOrEmpty(DeviceKindName))
  297. {
  298. MessageBox.Show("请填写设备类型名称!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  299. return;
  300. }
  301. if (string.IsNullOrEmpty(SelectTest))
  302. {
  303. MessageBox.Show("请选择测试项类型!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  304. return;
  305. }
  306. if (string.IsNullOrEmpty(TestName))
  307. {
  308. MessageBox.Show("请填写测试项名称!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  309. return;
  310. }
  311. if (string.IsNullOrEmpty(BeforeSelectJudge))
  312. {
  313. MessageBox.Show("请填写前置项测试项测试类型!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  314. return;
  315. }
  316. //前置项
  317. if (string.IsNullOrEmpty(BeforeSelectJudge))
  318. {
  319. MessageBox.Show("请填写前置项测试项测试类型!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  320. return;
  321. }
  322. if (string.IsNullOrEmpty(SelectLogic))
  323. {
  324. MessageBox.Show("请填写前置项判定逻辑!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  325. return;
  326. }
  327. //输入项
  328. if (string.IsNullOrEmpty(SelectInJudge))
  329. {
  330. MessageBox.Show("请填写输入项测试项测试类型!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  331. return;
  332. }
  333. if (string.IsNullOrEmpty(InSelectLogic))
  334. {
  335. MessageBox.Show("请填写输入项判定逻辑!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  336. return;
  337. }
  338. //输出项
  339. if (string.IsNullOrEmpty(SelectOutJudge))
  340. {
  341. MessageBox.Show("请填写结果项测试项测试类型!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  342. return;
  343. }
  344. if (string.IsNullOrEmpty(OutSelectLogic))
  345. {
  346. MessageBox.Show("请填写结果项判定逻辑!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  347. return;
  348. }
  349. try
  350. {
  351. var finsSche = _basicPlcTestSchemeService.FindByName(ScheduleName);
  352. //测试方案中已有这个名称
  353. if (finsSche != null)
  354. {
  355. long schID = finsSche.scheme_id;
  356. //在测试方案明细表中查找是否有这个测试方案和测试项
  357. var schDtl = _basicPlcTestSchemeDtlService.FindSchDtlIdBySchIdAndItem(schID, TestName);
  358. //在不为空,说明有这个测试方案和测试项了
  359. if (schDtl != null)
  360. {
  361. MessageBoxResult boxResult = MessageBox.Show("此测试方案名称已存在此测试项,请填写其他测试项!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  362. return;
  363. }
  364. }
  365. else
  366. {
  367. //增加测试方案到数据库
  368. BasicPlcTestSchemeDto schDto = new BasicPlcTestSchemeDto();
  369. schDto.SchemeName = ScheduleName;
  370. schDto.DeviceKindName = DeviceKindName;
  371. schDto.CreateBy = Appsession.UserName;
  372. schDto.CreateTime = DateTime.Now;
  373. schDto.UpdateTime = DateTime.Now;
  374. schDto.UpdateBy = Appsession.UserName;
  375. bas_plc_test_scheme schEntity = _mapper.Map<BasicPlcTestSchemeDto, bas_plc_test_scheme>(schDto);
  376. _basicPlcTestSchemeService.Add(schEntity);
  377. }
  378. //查找测试方案id
  379. var finsScheHave = _basicPlcTestSchemeService.FindByName(ScheduleName);
  380. if (finsScheHave != null)
  381. {
  382. long id = finsScheHave.scheme_id;
  383. //增加或修改方案明细表
  384. AddOrEditDetailsToDb(id);
  385. }
  386. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  387. }
  388. catch (Exception ex)
  389. {
  390. _logger.LogError(ex.ToString());
  391. }
  392. }
  393. /// <summary>
  394. /// 清空测试项内容内容
  395. /// </summary>
  396. private void CleanContent()
  397. {
  398. //清空已填写的内容
  399. TestName = string.Empty;
  400. SelectTest = "---";
  401. BeforeSelectJudge = "---";
  402. SelectLogic = "---";
  403. BeforeDetail = string.Empty;
  404. //输入项
  405. SelectInJudge = "---";
  406. InSelectLogic = "---";
  407. InDetail = string.Empty;
  408. //输出项
  409. SelectOutJudge = "---";
  410. OutSelectLogic = "---";
  411. OutDetail = string.Empty;
  412. BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
  413. InConList = new ObservableCollection<BasPlcItemConfigDto>();
  414. OutConList = new ObservableCollection<BasPlcItemConfigDto>();
  415. }
  416. /// <summary>
  417. /// 方案明细添加到数据库
  418. /// </summary>
  419. private void AddOrEditDetailsToDb(long scheduleId)
  420. {
  421. //前置项json转化
  422. string prefixJsonStr = ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
  423. //输入项json转化
  424. string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
  425. //输出项json转化
  426. string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
  427. //添加达到测试主表
  428. //增加测试方案
  429. BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
  430. schDtlDto.SchemeId = scheduleId;
  431. schDtlDto.ItemName = TestName;
  432. schDtlDto.ItemType = SelectTest;
  433. schDtlDto.ItemTime = Convert.ToInt32(SelectTime);
  434. schDtlDto.Precondition = prefixJsonStr;
  435. schDtlDto.PreconditionDescribe = BeforeDetail;
  436. schDtlDto.Action = inJsonStr;
  437. schDtlDto.ActionDescribe = InDetail;
  438. schDtlDto.JudgementResult = outJsonStr;
  439. schDtlDto.JudgementResultDescribe = OutDetail;
  440. schDtlDto.CreateBy = Appsession.UserName;
  441. schDtlDto.CreateTime = DateTime.Now;
  442. schDtlDto.UpdateTime = DateTime.Now;
  443. schDtlDto.UpdateBy = Appsession.UserName;
  444. bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
  445. schDtlEntity.item_type = StrToItemType(schDtlDto.ItemType);
  446. //计算排序
  447. int sort = 0;
  448. var findSorts = _basicPlcTestSchemeDtlService.FindAllBySchId((int)scheduleId);
  449. if (findSorts.Count != 0)
  450. {
  451. int maxSort = findSorts.Select(x => x.sort).Max();
  452. maxSort++;
  453. sort = maxSort;
  454. }
  455. else
  456. {
  457. sort = 1;
  458. }
  459. schDtlEntity.sort = sort;
  460. try
  461. {
  462. bool isAddSucc = _basicPlcTestSchemeDtlService.Add(schDtlEntity);
  463. if (isAddSucc)
  464. {
  465. _logger.LogInformation($"新增方案成功。方案名{ScheduleName},测试项{TestName}");
  466. MessageBoxResult boxResult = MessageBox.Show("新增测试项成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  467. }
  468. else
  469. {
  470. MessageBoxResult boxResult = MessageBox.Show("更新失败", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
  471. return;
  472. }
  473. }
  474. catch (Exception ex)
  475. {
  476. _logger.LogError(ex.ToString());
  477. }
  478. }
  479. /// <summary>
  480. /// 转化
  481. /// </summary>
  482. /// <param name="typeStr"></param>
  483. /// <returns></returns>
  484. private int StrToItemType(string typeStr)
  485. {
  486. int itemInt = 0;
  487. switch (typeStr)
  488. {
  489. case "前置项":
  490. itemInt = 0;
  491. break;
  492. case "PLC点位测试项":
  493. itemInt = 1;
  494. break;
  495. case "Robot动作测试":
  496. itemInt = 2;
  497. break;
  498. }
  499. return itemInt;
  500. }
  501. /// <summary>
  502. /// mode转json
  503. /// </summary>
  504. /// <param name="itemType"></param>
  505. /// <param name="itemLogical"></param>
  506. /// <param name="description"></param>
  507. /// <param name="conList"></param>
  508. /// <returns></returns>
  509. private string ModelToJsonToStr(string itemType, string itemLogical, string description, ObservableCollection<BasPlcItemConfigDto> conList)
  510. {
  511. JsonModel prefixJsonModel = new JsonModel();
  512. prefixJsonModel.ItemType = itemType;
  513. prefixJsonModel.ItemLogical = itemLogical;
  514. prefixJsonModel.Description = description;
  515. prefixJsonModel.DetailInfo = new List<DetailPLC>();
  516. foreach (var item in conList)
  517. {
  518. DetailPLC plcItem = new DetailPLC();
  519. plcItem.Id = item.Id;
  520. plcItem.PlcItem = item.PlcItem;
  521. plcItem.PlcAddress = item.PlcAddress;
  522. plcItem.PlcAddType = item.PlcAddType;
  523. plcItem.PlcValue = item.PlcValue;
  524. plcItem.Remark = item.Remark;
  525. prefixJsonModel.DetailInfo.Add(plcItem);
  526. }
  527. string prefixJsonStr = JsonConvert.SerializeObject(prefixJsonModel);
  528. return prefixJsonStr;
  529. }
  530. /// <summary>
  531. /// 重置
  532. /// </summary>
  533. /// <param name="obj"></param>
  534. private void ResetMethod(string obj)
  535. {
  536. ScheduleName = string.Empty;
  537. DeviceKindName = string.Empty;
  538. TestName = string.Empty;
  539. }
  540. public void OnNavigatedTo(NavigationContext navigationContext)
  541. {
  542. ScheduleName = string.Empty;
  543. }
  544. public bool IsNavigationTarget(NavigationContext navigationContext)
  545. {
  546. return true;
  547. }
  548. public void OnNavigatedFrom(NavigationContext navigationContext)
  549. {
  550. }
  551. #endregion
  552. #region 命令绑定
  553. public DelegateCommand CloseCommand { set; get; }
  554. public DelegateCommand<string> SureCommand { set; get; }
  555. public DelegateCommand<string> ResetCommand { set; get; }
  556. public DelegateCommand<string> OpenExistCommand { set; get; }
  557. /// <summary>
  558. /// 新增对话框按钮
  559. /// </summary>
  560. public DelegateCommand<string> AddDetailCommand { set; get; }
  561. /// <summary>
  562. /// 表格删除
  563. /// </summary>
  564. public DelegateCommand<Object> DeleteBeforeCommand { set; get; }
  565. /// <summary>
  566. /// 表格编辑按钮
  567. /// </summary>
  568. public DelegateCommand<Object> EditBeforeCommand { set; get; }
  569. /// <summary>
  570. /// 输入项
  571. /// </summary>
  572. public DelegateCommand<Object> DeleteInCommand { set; get; }
  573. public DelegateCommand<Object> EditInCommand { set; get; }
  574. /// <summary>
  575. /// 输出项
  576. /// </summary>
  577. public DelegateCommand<Object> DeleteOutCommand { set; get; }
  578. public DelegateCommand<Object> EditOutCommand { set; get; }
  579. public DelegateCommand<Object> OnLoadCommand { set; get; }
  580. public DelegateCommand<object> EditDetailCommand { set; get; }
  581. #endregion
  582. #region 变量绑定
  583. /// <summary>
  584. /// 测试时间
  585. /// </summary>
  586. private string selectTime;
  587. public string SelectTime
  588. {
  589. get { return selectTime; }
  590. set { selectTime = value; RaisePropertyChanged(); }
  591. }
  592. private ObservableCollection<string> testTimeList = new ObservableCollection<string>();
  593. public ObservableCollection<string> TestTimeList
  594. {
  595. get { return testTimeList; }
  596. set { testTimeList = value; RaisePropertyChanged(); }
  597. }
  598. /// <summary>
  599. /// 测试方案编码
  600. /// </summary>
  601. private string scheduleName;
  602. public string ScheduleName
  603. {
  604. get { return scheduleName; }
  605. set { scheduleName = value; RaisePropertyChanged(); }
  606. }
  607. /// <summary>
  608. /// 设备类型
  609. /// </summary>
  610. private string deviceKindName;
  611. public string DeviceKindName
  612. {
  613. get { return deviceKindName; }
  614. set { deviceKindName = value; RaisePropertyChanged(); }
  615. }
  616. /// <summary>
  617. /// 测试项名称
  618. /// </summary>
  619. private string testName;
  620. public string TestName
  621. {
  622. get { return testName; }
  623. set { testName = value; RaisePropertyChanged(); }
  624. }
  625. /// <summary>
  626. /// 测试项类型
  627. /// </summary>
  628. private ObservableCollection<string> testKinds = new ObservableCollection<string>();
  629. public ObservableCollection<string> TestKinds
  630. {
  631. get { return testKinds; }
  632. set { testKinds = value; RaisePropertyChanged(); }
  633. }
  634. /// <summary>
  635. ///
  636. /// </summary>
  637. private string selectTest;
  638. public string SelectTest
  639. {
  640. get { return selectTest; }
  641. set { selectTest = value; RaisePropertyChanged(); }
  642. }
  643. /// <summary>
  644. /// 判定类型(前置项)
  645. /// </summary>
  646. private ObservableCollection<string> beforeJudgeKinds = new ObservableCollection<string>();
  647. public ObservableCollection<string> BeforeJudgeKinds
  648. {
  649. get { return beforeJudgeKinds; }
  650. set { beforeJudgeKinds = value; RaisePropertyChanged(); }
  651. }
  652. private string beforeSelectJudge;
  653. public string BeforeSelectJudge
  654. {
  655. get { return beforeSelectJudge; }
  656. set { beforeSelectJudge = value; RaisePropertyChanged(); }
  657. }
  658. /// <summary>
  659. /// 逻辑判断
  660. /// </summary>
  661. private ObservableCollection<string> judgeLogicKinds = new ObservableCollection<string>();
  662. public ObservableCollection<string> JudgeLogicKinds
  663. {
  664. get { return judgeLogicKinds; }
  665. set { judgeLogicKinds = value; RaisePropertyChanged(); }
  666. }
  667. private string selectLogic;
  668. public string SelectLogic
  669. {
  670. get { return selectLogic; }
  671. set { selectLogic = value; RaisePropertyChanged(); }
  672. }
  673. private string beforeDetail;
  674. public string BeforeDetail
  675. {
  676. get { return beforeDetail; }
  677. set { beforeDetail = value; RaisePropertyChanged(); }
  678. }
  679. private ObservableCollection<BasPlcItemConfigDto> beforeConList;
  680. public ObservableCollection<BasPlcItemConfigDto> BeforeConList
  681. {
  682. get { return beforeConList; }
  683. set { beforeConList = value; RaisePropertyChanged(); }
  684. }
  685. /// <summary>
  686. /// 判定类型(输入项)
  687. /// </summary>
  688. private ObservableCollection<string> inJudgeKinds = new ObservableCollection<string>();
  689. public ObservableCollection<string> InJudgeKinds
  690. {
  691. get { return inJudgeKinds; }
  692. set { inJudgeKinds = value; RaisePropertyChanged(); }
  693. }
  694. private string selectInJudge;
  695. public string SelectInJudge
  696. {
  697. get { return selectInJudge; }
  698. set { selectInJudge = value; RaisePropertyChanged(); }
  699. }
  700. /// <summary>
  701. /// 逻辑判断
  702. /// </summary>
  703. private ObservableCollection<string> inJudgeLogicKinds = new ObservableCollection<string>();
  704. public ObservableCollection<string> InJudgeLogicKinds
  705. {
  706. get { return inJudgeLogicKinds; }
  707. set { inJudgeLogicKinds = value; RaisePropertyChanged(); }
  708. }
  709. private string inSelectLogic;
  710. public string InSelectLogic
  711. {
  712. get { return inSelectLogic; }
  713. set { inSelectLogic = value; RaisePropertyChanged(); }
  714. }
  715. private string inDetail;
  716. public string InDetail
  717. {
  718. get { return inDetail; }
  719. set { inDetail = value; RaisePropertyChanged(); }
  720. }
  721. private ObservableCollection<BasPlcItemConfigDto> inConList;
  722. public ObservableCollection<BasPlcItemConfigDto> InConList
  723. {
  724. get { return inConList; }
  725. set { inConList = value; RaisePropertyChanged(); }
  726. }
  727. /// <summary>
  728. /// 判定类型(结果项)
  729. /// </summary>
  730. private ObservableCollection<string> outJudgeKinds = new ObservableCollection<string>();
  731. public ObservableCollection<string> OutJudgeKinds
  732. {
  733. get { return outJudgeKinds; }
  734. set { outJudgeKinds = value; RaisePropertyChanged(); }
  735. }
  736. private string selectOutJudge;
  737. public string SelectOutJudge
  738. {
  739. get { return selectOutJudge; }
  740. set { selectOutJudge = value; RaisePropertyChanged(); }
  741. }
  742. /// <summary>
  743. /// 逻辑判断
  744. /// </summary>
  745. private ObservableCollection<string> outJudgeLogicKinds = new ObservableCollection<string>();
  746. public ObservableCollection<string> OutJudgeLogicKinds
  747. {
  748. get { return outJudgeLogicKinds; }
  749. set { outJudgeLogicKinds = value; RaisePropertyChanged(); }
  750. }
  751. private string outSelectLogic;
  752. public string OutSelectLogic
  753. {
  754. get { return outSelectLogic; }
  755. set { outSelectLogic = value; RaisePropertyChanged(); }
  756. }
  757. private string outDetail;
  758. public string OutDetail
  759. {
  760. get { return outDetail; }
  761. set { outDetail = value; RaisePropertyChanged(); }
  762. }
  763. private ObservableCollection<BasPlcItemConfigDto> outConList;
  764. public ObservableCollection<BasPlcItemConfigDto> OutConList
  765. {
  766. get { return outConList; }
  767. set { outConList = value; RaisePropertyChanged(); }
  768. }
  769. /// <summary>
  770. /// 设备类型
  771. /// </summary>
  772. private ObservableCollection<string> deviceKindNameList = new ObservableCollection<string>();
  773. public ObservableCollection<string> DeviceKindNameList
  774. {
  775. get { return deviceKindNameList; }
  776. set { deviceKindNameList = value; RaisePropertyChanged(); }
  777. }
  778. #endregion
  779. }
  780. }