AddPlanViewModel.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657
  1. using AutoMapper;
  2. using BizService;
  3. using BlankApp1.Events;
  4. using Model.Dto;
  5. using Model.Entities;
  6. using NetTaste;
  7. using Newtonsoft.Json;
  8. using PLCTool.Common;
  9. using Prism.Commands;
  10. using Prism.Events;
  11. using Prism.Mvvm;
  12. using Prism.Services.Dialogs;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Collections.ObjectModel;
  16. using System.IdentityModel.Tokens.Jwt;
  17. using System.Linq;
  18. using System.Text;
  19. using System.Threading.Tasks;
  20. using System.Windows;
  21. namespace PLCTool.ViewModels.BasicConfigViewModel
  22. {
  23. public class AddPlanViewModel : BindableBase, IDialogAware
  24. {
  25. private readonly IDialogService _dialog;
  26. private readonly IEventAggregator _aggregator;
  27. private readonly IOptionConfigService _optionConfigService;
  28. private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
  29. private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
  30. private readonly IMapper _mapper;
  31. private List<OptionConfigDto> _optionConfigs;
  32. public AddPlanViewModel(IDialogService dialog, IEventAggregator aggregator, IOptionConfigService optionConfigService,IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService,IMapper mapper)
  33. {
  34. _dialog = dialog;
  35. _aggregator = aggregator;
  36. _optionConfigService= optionConfigService;
  37. _basicPlcTestSchemeService= basicPlcTestSchemeService;
  38. _basicPlcTestSchemeDtlService= basicPlcTestSchemeDtlService;
  39. _mapper = mapper;
  40. CloseCommand = new DelegateCommand(Close);
  41. SureCommand = new DelegateCommand<string>(Sure);
  42. ResetCommand = new DelegateCommand<string>(ResetMethod);
  43. AddDetailCommand = new DelegateCommand<string>(AddPLCDetail);
  44. EditInCommand = new DelegateCommand<object>(EditIn);
  45. EditOutCommand = new DelegateCommand<object>(EditOut);
  46. EditBeforeCommand = new DelegateCommand<Object>(EditBefore);
  47. DeleteBeforeCommand = new DelegateCommand<Object>(DeleteBefore);
  48. DeleteInCommand = new DelegateCommand<object>(DeleteIn);
  49. DeleteOutCommand = new DelegateCommand<object>(DeleteOut);
  50. BeforeConList = new ObservableCollection<BasPlcItemConfigDto>();
  51. InConList = new ObservableCollection<BasPlcItemConfigDto>();
  52. OutConList = new ObservableCollection<BasPlcItemConfigDto>();
  53. GetConfigOption();
  54. }
  55. #region idialog接口实现
  56. public string Title { set; get; } = "新增方案";
  57. public event Action<IDialogResult> RequestClose;
  58. public bool CanCloseDialog()
  59. {
  60. return true;
  61. }
  62. public void OnDialogClosed()
  63. {
  64. }
  65. public void OnDialogOpened(IDialogParameters parameters)
  66. {
  67. //编辑
  68. var getMsg = parameters.GetValues<long>("Key");
  69. ///值不为空,表示修改
  70. if (getMsg != null)
  71. {
  72. foreach (var item in getMsg)
  73. {
  74. Title = "修改方案";
  75. int id = Convert.ToInt32(item);
  76. //根据 测试方案明细主键ID 查找测试方案id 及方案名和设备名
  77. var findresult=_basicPlcTestSchemeDtlService.Find(id);
  78. if(findresult != null)
  79. {
  80. //根据方案id 在方案表中查找方案名 设备名
  81. int schID =Convert.ToInt32( findresult.scheme_id);
  82. var findSch=_basicPlcTestSchemeService.Find(schID);
  83. if(findSch != null )
  84. {
  85. ScheduleName = findSch.scheme_name;
  86. DeviceName = findSch.device_name;
  87. }
  88. TestName = findresult.item_name;
  89. //SelectTest = findresult.item_type;
  90. //前置项解析
  91. string preconStr = findresult.precondition.ToString();
  92. JsonModel preconditionModel = JsonConvert.DeserializeObject<JsonModel>(preconStr);
  93. BeforeSelectJudge = preconditionModel.ItemType;
  94. SelectLogic = preconditionModel.ItemLogical;
  95. BeforeDetail = preconditionModel.Description;
  96. BeforeConList.Clear();
  97. foreach(var detail in preconditionModel.DetailInfo)
  98. {
  99. BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
  100. basPlcItemConfigDto.PlcItem=detail.PlcItem;
  101. basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
  102. basPlcItemConfigDto.PlcValue = detail.PlcValue;
  103. basPlcItemConfigDto.Remark = detail.Remark;
  104. beforeConList.Add(basPlcItemConfigDto);
  105. }
  106. //输入项解析
  107. string inStr = findresult.action.ToString();
  108. JsonModel inModel = JsonConvert.DeserializeObject<JsonModel>(inStr);
  109. SelectInJudge = inModel.ItemType;
  110. InSelectLogic = inModel.ItemLogical;
  111. InDetail = inModel.Description;
  112. InConList.Clear();
  113. foreach (var detail in inModel.DetailInfo)
  114. {
  115. BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
  116. basPlcItemConfigDto.PlcItem = detail.PlcItem;
  117. basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
  118. basPlcItemConfigDto.PlcValue = detail.PlcValue;
  119. basPlcItemConfigDto.Remark = detail.Remark;
  120. InConList.Add(basPlcItemConfigDto);
  121. }
  122. //输出项解析
  123. string outStr = findresult.judgement_result.ToString();
  124. JsonModel outModel = JsonConvert.DeserializeObject<JsonModel>(outStr);
  125. SelectOutJudge = outModel.ItemType;
  126. OutSelectLogic = outModel.ItemLogical;
  127. OutDetail = outModel.Description;
  128. OutConList.Clear();
  129. foreach (var detail in outModel.DetailInfo)
  130. {
  131. BasPlcItemConfigDto basPlcItemConfigDto = new BasPlcItemConfigDto();
  132. basPlcItemConfigDto.PlcItem = detail.PlcItem;
  133. basPlcItemConfigDto.PlcAddress = detail.PlcAddress;
  134. basPlcItemConfigDto.PlcValue = detail.PlcValue;
  135. basPlcItemConfigDto.Remark = detail.Remark;
  136. OutConList.Add(basPlcItemConfigDto);
  137. }
  138. }
  139. }
  140. }
  141. }
  142. #endregion
  143. #region 私有方法
  144. private void OpenEditDialog(Object obj, ObservableCollection<BasPlcItemConfigDto> conList)
  145. {
  146. int id = Convert.ToInt32(obj);
  147. var edit = conList.FirstOrDefault(x => x.Id == id);
  148. if (edit != null)
  149. {
  150. DialogParameters parm = new DialogParameters();
  151. parm.Add("Key", edit);
  152. //弹出详情对话框
  153. _dialog.ShowDialog("AddDetailView", parm, async callback =>
  154. {
  155. if (callback.Result == ButtonResult.OK)
  156. {
  157. BasPlcItemConfigDto returnValue = callback.Parameters.GetValue<BasPlcItemConfigDto>("ReturnValue");
  158. //更新
  159. var after = conList.FirstOrDefault(x => x.Id == id);
  160. if (after != null)
  161. {
  162. after.PlcItem = returnValue.PlcItem;
  163. after.PlcAddress = returnValue.PlcAddress;
  164. after.PlcValue = returnValue.PlcValue;
  165. after.Remark = returnValue.Remark;
  166. }
  167. }
  168. });
  169. }
  170. }
  171. /// <summary>
  172. /// 前置条件编辑
  173. /// </summary>
  174. /// <param name="obj"></param>
  175. /// <exception cref="NotImplementedException"></exception>
  176. private void EditBefore(Object obj)
  177. {
  178. OpenEditDialog(obj, BeforeConList);
  179. }
  180. private void EditOut(object obj)
  181. {
  182. OpenEditDialog(obj, OutConList);
  183. }
  184. private void EditIn(object obj)
  185. {
  186. OpenEditDialog(obj, InConList);
  187. }
  188. /// <summary>
  189. /// 前置条件删除
  190. /// </summary>
  191. /// <param name="obj"></param>
  192. /// <exception cref="NotImplementedException"></exception>
  193. private void DeleteBefore(Object obj)
  194. {
  195. int id = Convert.ToInt32(obj);
  196. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  197. if (boxResult == MessageBoxResult.OK)
  198. {
  199. var del = BeforeConList.FirstOrDefault(x => x.Id == id);
  200. if (del != null)
  201. {
  202. BeforeConList.Remove(del);
  203. }
  204. }
  205. }
  206. private void DeleteOut(object obj)
  207. {
  208. int id = Convert.ToInt32(obj);
  209. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  210. if (boxResult == MessageBoxResult.OK)
  211. {
  212. var del = OutConList.FirstOrDefault(x => x.Id == id);
  213. if (del != null)
  214. {
  215. OutConList.Remove(del);
  216. }
  217. }
  218. }
  219. private void DeleteIn(object obj)
  220. {
  221. int id = Convert.ToInt32(obj);
  222. MessageBoxResult boxResult = MessageBox.Show("确认删除此条数据?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
  223. if (boxResult == MessageBoxResult.OK)
  224. {
  225. var del = InConList.FirstOrDefault(x => x.Id == id);
  226. if (del != null)
  227. {
  228. InConList.Remove(del);
  229. }
  230. }
  231. }
  232. /// <summary>
  233. /// 获取配置
  234. /// </summary>
  235. private void GetConfigOption()
  236. {
  237. var configList = _optionConfigService.QueryList();
  238. _optionConfigs = _mapper.Map<List<OptionConfig>, List<OptionConfigDto>>(configList);
  239. var tests = _optionConfigs.FindAll(x => x.TypeID == 1);
  240. TestKinds = new List<string>();
  241. foreach (var test in tests)
  242. {
  243. TestKinds.Add(test.ContentOption);
  244. }
  245. //测试项类型
  246. var judges = _optionConfigs.FindAll(x => x.TypeID == 2);
  247. foreach (var judge in judges)
  248. {
  249. BeforeJudgeKinds.Add(judge.ContentOption);
  250. InJudgeKinds.Add(judge.ContentOption);
  251. OutJudgeKinds.Add(judge.ContentOption);
  252. }
  253. //判定逻辑
  254. var logics = _optionConfigs.FindAll(x => x.TypeID == 3);
  255. foreach (var logic in logics)
  256. {
  257. JudgeLogicKinds.Add(logic.ContentOption);
  258. InJudgeLogicKinds.Add(logic.ContentOption);
  259. OutJudgeLogicKinds.Add(logic.ContentOption);
  260. }
  261. }
  262. /// <summary>
  263. /// 新增
  264. /// </summary>
  265. /// <param name="str"></param>
  266. private void AddPLCDetail(string str)
  267. {
  268. DialogParameters parm = new DialogParameters();
  269. parm.Add("Key", "");
  270. //弹出详情对话框
  271. _dialog.ShowDialog("AddDetailView", parm, async callback =>
  272. {
  273. if (callback.Result == ButtonResult.OK)
  274. {
  275. BasPlcItemConfigDto returnValue = callback.Parameters.GetValue<BasPlcItemConfigDto>("ReturnValue");
  276. switch (str)
  277. {
  278. case "Before":
  279. BeforeConList.Add(returnValue); break;
  280. case "In":
  281. InConList.Add(returnValue); break;
  282. case "Out":
  283. OutConList.Add(returnValue); break;
  284. }
  285. }
  286. });
  287. }
  288. /// <summary>
  289. /// 初始化
  290. /// </summary>
  291. /// <summary>
  292. /// 关闭按钮
  293. /// </summary>
  294. private void Close()
  295. {
  296. RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
  297. }
  298. /// <summary>
  299. /// 确认
  300. /// </summary>
  301. /// <param name="obj"></param>
  302. private void Sure(string obj)
  303. {
  304. var finsSche = _basicPlcTestSchemeService.FindByName(ScheduleName);
  305. if( finsSche != null )
  306. {
  307. MessageBoxResult boxResult = MessageBox.Show("测试方案名称已存在,请填写其他名称", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
  308. return;
  309. }
  310. //增加测试方案到数据库
  311. BasicPlcTestSchemeDto schDto=new BasicPlcTestSchemeDto();
  312. schDto.SchemeName = ScheduleName;
  313. schDto.DeviceName = DeviceName;
  314. schDto.CreateBy = Appsession.UserName;
  315. schDto.CreateTime= DateTime.Now;
  316. schDto.UpdateTime = DateTime.Now;
  317. schDto.UpdateBy = Appsession.UserName;
  318. bas_plc_test_scheme schEntity = _mapper.Map<BasicPlcTestSchemeDto, bas_plc_test_scheme>(schDto);
  319. _basicPlcTestSchemeService.Add(schEntity);
  320. //查找测试方案id
  321. var finsScheHave = _basicPlcTestSchemeService.FindByName(ScheduleName);
  322. long id = finsScheHave.scheme_id;
  323. AddDetailsToDb(id);
  324. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  325. }
  326. /// <summary>
  327. /// 方案明细添加到数据库
  328. /// </summary>
  329. private void AddDetailsToDb(long scheduleId)
  330. {
  331. //前置项json转化
  332. string prefixJsonStr=ModelToJsonToStr(BeforeSelectJudge, SelectLogic, BeforeDetail, BeforeConList);
  333. //输入项json转化
  334. string inJsonStr = ModelToJsonToStr(SelectInJudge, InSelectLogic, InDetail, InConList);
  335. //输出项json转化
  336. string outJsonStr = ModelToJsonToStr(SelectOutJudge, OutSelectLogic, OutDetail, OutConList);
  337. //添加达到测试主表
  338. //增加测试方案
  339. BasicPlcTestSchemeDtlDto schDtlDto = new BasicPlcTestSchemeDtlDto();
  340. schDtlDto.SchemeId = scheduleId;
  341. schDtlDto.ItemName = TestName;
  342. switch (SelectTest)
  343. {
  344. case "前置项":
  345. schDtlDto.ItemType = 0;
  346. break;
  347. case "PLC点位测试项":
  348. schDtlDto.ItemType = 1;
  349. break;
  350. case "Robot动作测试":
  351. schDtlDto.ItemType = 2;
  352. break;
  353. }
  354. schDtlDto.Precondition = prefixJsonStr;
  355. schDtlDto.PreconditionDescribe = BeforeDetail;
  356. schDtlDto.Action = inJsonStr;
  357. schDtlDto.ActionDescribe = InDetail;
  358. schDtlDto.JudgementResult = outJsonStr;
  359. schDtlDto.JudgementResultDescribe = OutDetail;
  360. schDtlDto.CreateBy = Appsession.UserName;
  361. schDtlDto.CreateTime = DateTime.Now;
  362. schDtlDto.UpdateTime = DateTime.Now;
  363. schDtlDto.UpdateBy = Appsession.UserName;
  364. bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
  365. _basicPlcTestSchemeDtlService.Add(schDtlEntity);
  366. }
  367. /// <summary>
  368. /// mode转json
  369. /// </summary>
  370. /// <param name="itemType"></param>
  371. /// <param name="itemLogical"></param>
  372. /// <param name="description"></param>
  373. /// <param name="conList"></param>
  374. /// <returns></returns>
  375. private string ModelToJsonToStr(string itemType,string itemLogical,string description, ObservableCollection<BasPlcItemConfigDto> conList)
  376. {
  377. JsonModel prefixJsonModel = new JsonModel();
  378. prefixJsonModel.ItemType = itemType;
  379. prefixJsonModel.ItemLogical = itemLogical;
  380. prefixJsonModel.Description = description;
  381. prefixJsonModel.DetailInfo = new List<DetailPLC>();
  382. foreach (var item in conList)
  383. {
  384. DetailPLC plcItem = new DetailPLC();
  385. plcItem.PlcItem = item.PlcItem;
  386. plcItem.PlcAddress = item.PlcAddress;
  387. plcItem.PlcValue = item.PlcValue;
  388. plcItem.Remark = item.Remark;
  389. prefixJsonModel.DetailInfo.Add(plcItem);
  390. }
  391. string prefixJsonStr = JsonConvert.SerializeObject(prefixJsonModel);
  392. return prefixJsonStr;
  393. }
  394. /// <summary>
  395. /// 重置
  396. /// </summary>
  397. /// <param name="obj"></param>
  398. private void ResetMethod(string obj)
  399. {
  400. }
  401. #endregion
  402. #region 命令绑定
  403. public DelegateCommand CloseCommand { set; get; }
  404. public DelegateCommand<string> SureCommand { set; get; }
  405. public DelegateCommand<string> ResetCommand { set; get; }
  406. /// <summary>
  407. /// 新增对话框按钮
  408. /// </summary>
  409. public DelegateCommand<string> AddDetailCommand { set; get; }
  410. /// <summary>
  411. /// 表格删除
  412. /// </summary>
  413. public DelegateCommand<Object> DeleteBeforeCommand { set; get; }
  414. /// <summary>
  415. /// 表格编辑按钮
  416. /// </summary>
  417. public DelegateCommand<Object> EditBeforeCommand { set; get; }
  418. /// <summary>
  419. /// 输入项
  420. /// </summary>
  421. public DelegateCommand<Object> DeleteInCommand { set; get; }
  422. public DelegateCommand<Object> EditInCommand { set; get; }
  423. /// <summary>
  424. /// 输出项
  425. /// </summary>
  426. public DelegateCommand<Object> DeleteOutCommand { set; get; }
  427. public DelegateCommand<Object> EditOutCommand { set; get; }
  428. #endregion
  429. #region 变量绑定
  430. /// <summary>
  431. /// 测试方案编码
  432. /// </summary>
  433. private string scheduleName;
  434. public string ScheduleName
  435. {
  436. get { return scheduleName; }
  437. set { scheduleName = value; RaisePropertyChanged(); }
  438. }
  439. /// <summary>
  440. /// 设备名称
  441. /// </summary>
  442. private string deviceName;
  443. public string DeviceName
  444. {
  445. get { return deviceName; }
  446. set { deviceName = value; RaisePropertyChanged(); }
  447. }
  448. /// <summary>
  449. /// 测试项名称
  450. /// </summary>
  451. private string testName;
  452. public string TestName
  453. {
  454. get { return testName; }
  455. set { testName = value; RaisePropertyChanged(); }
  456. }
  457. /// <summary>
  458. /// 测试项
  459. /// </summary>
  460. private List<string> testKinds=new List<string>();
  461. public List<string> TestKinds
  462. {
  463. get { return testKinds; }
  464. set { testKinds = value; RaisePropertyChanged(); }
  465. }
  466. /// <summary>
  467. ///
  468. /// </summary>
  469. private string selectTest;
  470. public string SelectTest
  471. {
  472. get { return selectTest; }
  473. set { selectTest = value; RaisePropertyChanged(); }
  474. }
  475. /// <summary>
  476. /// 判定类型(前置项)
  477. /// </summary>
  478. private List<string> beforeJudgeKinds=new List<string>();
  479. public List<string> BeforeJudgeKinds
  480. {
  481. get { return beforeJudgeKinds; }
  482. set { beforeJudgeKinds = value; RaisePropertyChanged(); }
  483. }
  484. private string beforeSelectJudge;
  485. public string BeforeSelectJudge
  486. {
  487. get { return beforeSelectJudge; }
  488. set { beforeSelectJudge = value; RaisePropertyChanged(); }
  489. }
  490. /// <summary>
  491. /// 逻辑判断
  492. /// </summary>
  493. private List<string> judgeLogicKinds = new List<string>();
  494. public List<string> JudgeLogicKinds
  495. {
  496. get { return judgeLogicKinds; }
  497. set { judgeLogicKinds = value; RaisePropertyChanged(); }
  498. }
  499. private string selectLogic;
  500. public string SelectLogic
  501. {
  502. get { return selectLogic; }
  503. set { selectLogic = value; RaisePropertyChanged(); }
  504. }
  505. private string beforeDetail;
  506. public string BeforeDetail
  507. {
  508. get { return beforeDetail; }
  509. set { beforeDetail = value; RaisePropertyChanged(); }
  510. }
  511. private ObservableCollection<BasPlcItemConfigDto> beforeConList;
  512. public ObservableCollection<BasPlcItemConfigDto> BeforeConList
  513. {
  514. get { return beforeConList; }
  515. set { beforeConList = value; RaisePropertyChanged(); }
  516. }
  517. /// <summary>
  518. /// 判定类型(输入项)
  519. /// </summary>
  520. private List<string> inJudgeKinds = new List<string>();
  521. public List<string> InJudgeKinds
  522. {
  523. get { return inJudgeKinds; }
  524. set { inJudgeKinds = value; RaisePropertyChanged(); }
  525. }
  526. private string selectInJudge;
  527. public string SelectInJudge
  528. {
  529. get { return selectInJudge; }
  530. set { selectInJudge = value; RaisePropertyChanged(); }
  531. }
  532. /// <summary>
  533. /// 逻辑判断
  534. /// </summary>
  535. private List<string> inJudgeLogicKinds = new List<string>();
  536. public List<string> InJudgeLogicKinds
  537. {
  538. get { return inJudgeLogicKinds; }
  539. set { inJudgeLogicKinds = value; RaisePropertyChanged(); }
  540. }
  541. private string inSelectLogic;
  542. public string InSelectLogic
  543. {
  544. get { return inSelectLogic; }
  545. set { inSelectLogic = value; RaisePropertyChanged(); }
  546. }
  547. private string inDetail;
  548. public string InDetail
  549. {
  550. get { return inDetail; }
  551. set { inDetail = value; RaisePropertyChanged(); }
  552. }
  553. private ObservableCollection<BasPlcItemConfigDto> inConList;
  554. public ObservableCollection<BasPlcItemConfigDto> InConList
  555. {
  556. get { return inConList; }
  557. set { inConList = value; RaisePropertyChanged(); }
  558. }
  559. /// <summary>
  560. /// 判定类型(结果项)
  561. /// </summary>
  562. private List<string> outJudgeKinds = new List<string>();
  563. public List<string> OutJudgeKinds
  564. {
  565. get { return outJudgeKinds; }
  566. set { outJudgeKinds = value; RaisePropertyChanged(); }
  567. }
  568. private string selectOutJudge;
  569. public string SelectOutJudge
  570. {
  571. get { return selectOutJudge; }
  572. set { selectOutJudge = value; RaisePropertyChanged(); }
  573. }
  574. /// <summary>
  575. /// 逻辑判断
  576. /// </summary>
  577. private List<string> outJudgeLogicKinds = new List<string>();
  578. public List<string> OutJudgeLogicKinds
  579. {
  580. get { return outJudgeLogicKinds; }
  581. set { outJudgeLogicKinds = value; RaisePropertyChanged(); }
  582. }
  583. private string outSelectLogic;
  584. public string OutSelectLogic
  585. {
  586. get { return outSelectLogic; }
  587. set { outSelectLogic = value; RaisePropertyChanged(); }
  588. }
  589. private string outDetail;
  590. public string OutDetail
  591. {
  592. get { return outDetail; }
  593. set { outDetail = value; RaisePropertyChanged(); }
  594. }
  595. private ObservableCollection<BasPlcItemConfigDto> outConList;
  596. public ObservableCollection<BasPlcItemConfigDto> OutConList
  597. {
  598. get { return outConList; }
  599. set { outConList = value; RaisePropertyChanged(); }
  600. }
  601. #endregion
  602. }
  603. }