F_SYS_0201.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:F_SYS_0201.cs
  5. * 2.功能描述:系统主界面
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 张国印 2014/08/27 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Diagnostics;
  12. using System.Reflection;
  13. using System.Windows.Forms;
  14. using Dongke.IBOSS.PRD.Basics.BaseResources;
  15. using Dongke.IBOSS.PRD.Basics.DockPanel;
  16. using Dongke.IBOSS.PRD.Basics.Library;
  17. using Dongke.IBOSS.PRD.Client.CommonModule;
  18. using Dongke.IBOSS.PRD.Client.DataModels;
  19. using Dongke.IBOSS.PRD.WCF.Proxys;
  20. namespace Dongke.IBOSS.PRD.Client
  21. {
  22. /// <summary>
  23. /// 系统主界面
  24. /// </summary>
  25. public partial class F_SYS_0201 : Form
  26. {
  27. #region 成员变量
  28. // 系统导航栏窗体
  29. private F_SYS_0202 _frmSYS0202;
  30. // 是否切换用户
  31. private bool _isChange = false;
  32. #endregion
  33. #region 构造函数
  34. /// <summary>
  35. /// 构造函数
  36. /// </summary>
  37. public F_SYS_0201()
  38. {
  39. InitializeComponent();
  40. this.SetFromTitleInfo();
  41. }
  42. #endregion
  43. #region 事件
  44. /// <summary>
  45. /// 窗体加载事件
  46. /// </summary>
  47. /// <param name="sender"></param>
  48. /// <param name="e"></param>
  49. private void F_SYS_0201_Load(object sender, EventArgs e)
  50. {
  51. try
  52. {
  53. #region 追加心跳程序,以便客户端与服务器端保持联系
  54. System.Timers.Timer timer = new System.Timers.Timer(Constant.M_SYSTEM_HEARTBEAT_INTERVAL);
  55. timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
  56. timer.AutoReset = true;
  57. timer.Enabled = true;
  58. #endregion
  59. #region 系统菜单栏悬浮处理
  60. this._frmSYS0202 = new F_SYS_0202(this.dockpnlMain);
  61. if (!this._frmSYS0202.Visible)
  62. {
  63. this._frmSYS0202.Show(this.dockpnlMain);
  64. }
  65. #endregion
  66. #region 对状态栏中的标签进行赋值
  67. this.tssrlblProcess.Text = Constant.M_NETWORK_CONNECT_TEXT;
  68. this.tssrlblBlank.Text = string.Empty;
  69. this.tssrlblAccount.Text = string.Format(Constant.M_CURRENT_ACCOUNT_TEXT,
  70. LogInUserInfo.CurrentUser.CurrentUserEntity.AccountCode,
  71. LogInUserInfo.CurrentUser.CurrentUserEntity.AccountName);
  72. this.tssrlblUser.Text = string.Format(Constant.M_CURRENT_USER_TEXT,
  73. LogInUserInfo.CurrentUser.CurrentUserEntity.UserCode,
  74. LogInUserInfo.CurrentUser.CurrentUserEntity.UserName);
  75. DateTime isLinkWebServer = CommonModuleProxy.Service.GetAccountDate();
  76. this.tssrlblAccountDate.Text = string.Format(Constant.M_CURRENT_ACCOUNT_DATE_TEXT,
  77. isLinkWebServer.ToString("yyyy-MM-dd"));
  78. tssrlblValidityEnd.Text = null;
  79. #endregion
  80. }
  81. catch (Exception ex)
  82. {
  83. ExceptionManager.HandleEventException(this.ToString(),
  84. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  85. }
  86. }
  87. /// <summary>
  88. /// 菜单栏--关于
  89. /// </summary>
  90. /// <param name="sender"></param>
  91. /// <param name="e"></param>
  92. private void tsmiAbout_Click(object sender, EventArgs e)
  93. {
  94. //try
  95. //{
  96. // F_SYS_0203 frmSYS0203 = new F_SYS_0203();
  97. // frmSYS0203.ShowDialog();
  98. //}
  99. //catch (Exception ex)
  100. //{
  101. // ExceptionManager.HandleEventException(this.ToString(),
  102. // MethodBase.GetCurrentMethod().Name, this.Text, ex);
  103. //}
  104. }
  105. /// <summary>
  106. /// 工具栏 -- 退出
  107. /// </summary>
  108. /// <param name="sender"></param>
  109. /// <param name="e"></param>
  110. private void tsbtnExit_Click(object sender, EventArgs e)
  111. {
  112. this._isChange = false;
  113. this.Close();
  114. }
  115. /// <summary>
  116. /// 菜单栏--切换用户
  117. /// </summary>
  118. /// <param name="sender"></param>
  119. /// <param name="e"></param>
  120. private void tsmiChangeUser_Click(object sender, EventArgs e)
  121. {
  122. try
  123. {
  124. this._isChange = true;
  125. this.Close();
  126. }
  127. catch (Exception ex)
  128. {
  129. // 对异常进行共通处理
  130. ExceptionManager.HandleEventException(this.ToString(),
  131. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  132. }
  133. }
  134. /// <summary>
  135. /// 菜单栏--退出
  136. /// </summary>
  137. /// <param name="sender"></param>
  138. /// <param name="e"></param>
  139. private void tsmiExit_Click(object sender, EventArgs e)
  140. {
  141. this._isChange = false;
  142. this.Close();
  143. }
  144. /// <summary>
  145. /// 工具栏-- 导航菜单
  146. /// </summary>
  147. /// <param name="sender"></param>
  148. /// <param name="e"></param>
  149. private void tsbtnNavigation_Click(object sender, EventArgs e)
  150. {
  151. try
  152. {
  153. if (this._frmSYS0202.IsDisposed)
  154. {
  155. this._frmSYS0202 = new F_SYS_0202(this.dockpnlMain);
  156. }
  157. this._frmSYS0202.Show(this.dockpnlMain);
  158. if (this._frmSYS0202.DockState == DockState.DockLeft)
  159. {
  160. this._frmSYS0202.DockState = DockState.DockLeftAutoHide;
  161. }
  162. else if (this._frmSYS0202.DockState == DockState.DockLeftAutoHide)
  163. {
  164. this._frmSYS0202.DockState = DockState.DockLeft;
  165. }
  166. }
  167. catch (Exception ex)
  168. {
  169. // 对异常进行共通处理
  170. ExceptionManager.HandleEventException(this.ToString(),
  171. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  172. }
  173. }
  174. /// <summary>
  175. /// 修改密码
  176. /// </summary>
  177. /// <param name="sender"></param>
  178. /// <param name="e"></param>
  179. private void tsbtnEditPassword_Click(object sender, EventArgs e)
  180. {
  181. try
  182. {
  183. F_SYS_0210 frmSYS0209 = F_SYS_0210.Instance;
  184. frmSYS0209.ShowDialog();
  185. }
  186. catch (Exception ex)
  187. {
  188. // 对异常进行共通处理
  189. ExceptionManager.HandleEventException(this.ToString(),
  190. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  191. }
  192. }
  193. /// <summary>
  194. /// 修改密码
  195. /// </summary>
  196. /// <param name="sender"></param>
  197. /// <param name="e"></param>
  198. private void tsmiEditPassword_Click(object sender, EventArgs e)
  199. {
  200. this.tsbtnEditPassword_Click(sender, e);
  201. }
  202. /// <summary>
  203. /// 窗体关闭时提醒用户是否退出
  204. /// </summary>
  205. /// <param name="sender"></param>
  206. /// <param name="e"></param>
  207. private void F_SYS_0201_FormClosing(object sender, FormClosingEventArgs e)
  208. {
  209. DialogResult dialogResult = DialogResult.Yes;
  210. if (_isChange)
  211. {
  212. // 提示用户确认退出系统
  213. dialogResult = MessageBox.Show(Messages.MSG_SYS_Q001, Messages.MSG_TITLE_Q01,
  214. MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  215. if (dialogResult == DialogResult.Yes)
  216. {
  217. Process.Start(Constant.S_SYSTEM_CLIENT_NAME, "IsChangedUser");
  218. return;
  219. }
  220. }
  221. else
  222. {
  223. // 提示用户确认退出系统
  224. dialogResult = MessageBox.Show(Messages.MSG_SYS_Q002, Messages.MSG_TITLE_Q01,
  225. MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  226. }
  227. if (dialogResult != DialogResult.Yes)
  228. {
  229. e.Cancel = true;
  230. }
  231. }
  232. /// <summary>
  233. /// 刷新菜单按钮事件
  234. /// </summary>
  235. /// <param name="sender"></param>
  236. /// <param name="e"></param>
  237. private void tsbRefresh_Click(object sender, EventArgs e)
  238. {
  239. try
  240. {
  241. this._frmSYS0202.RefreshViewTree();
  242. this._frmSYS0202.Close();
  243. #region 系统菜单栏悬浮处理
  244. this._frmSYS0202 = new F_SYS_0202(this.dockpnlMain);
  245. if (!this._frmSYS0202.Visible)
  246. {
  247. this._frmSYS0202.Show(this.dockpnlMain);
  248. }
  249. #endregion
  250. }
  251. catch (Exception ex)
  252. {
  253. // 对异常进行共通处理
  254. ExceptionManager.HandleEventException(this.ToString(),
  255. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  256. }
  257. }
  258. /// <summary>
  259. /// 菜单栏-刷新菜单按钮事件
  260. /// </summary>
  261. /// <param name="sender"></param>
  262. /// <param name="e"></param>
  263. private void tsmiRefresh_Click(object sender, EventArgs e)
  264. {
  265. tsbRefresh_Click(null, null);
  266. }
  267. /// <summary>
  268. /// 切换按钮事件
  269. /// </summary>
  270. /// <param name="sender"></param>
  271. /// <param name="e"></param>
  272. private void tsbtnChangeUser_Click(object sender, EventArgs e)
  273. {
  274. tsmiChangeUser_Click(null, null);
  275. }
  276. /// <summary>
  277. /// 画面打开
  278. /// </summary>
  279. /// <param name="sender"></param>
  280. /// <param name="e"></param>
  281. private void F_SYS_0201_Shown(object sender, EventArgs e)
  282. {
  283. try
  284. {
  285. if (!string.IsNullOrEmpty(LogInUserInfo.LoginMessage))
  286. {
  287. MessageBox.Show(LogInUserInfo.LoginMessage, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
  288. }
  289. if (LogInUserInfo.CurrentUser.CurrentLicenseInfo != null)
  290. {
  291. DateTime vEnd = Convert.ToDateTime(LogInUserInfo.CurrentUser.CurrentLicenseInfo.Tables["Info"].Rows[0]["ValidityEnd"]);
  292. DateTime n = DateTime.Now.Date.AddMonths(1);
  293. if (n >= vEnd)
  294. {
  295. MessageBox.Show(string.Format("授权将在{0}天后过期【{1}】,请尽快更换新授权。",
  296. (vEnd-DateTime.Now.Date).TotalDays + 1,
  297. vEnd.ToString("yyyy-MM-dd")),
  298. this.Text,
  299. MessageBoxButtons.OK,
  300. MessageBoxIcon.Warning);
  301. tssrlblValidityEnd.ForeColor = System.Drawing.Color.Red;
  302. tssrlblValidityEnd.Text = string.Format("授权截止【{0}】 ", vEnd.ToString("yyyy-MM-dd"));
  303. }
  304. }
  305. }
  306. catch (Exception ex)
  307. {
  308. // 对异常进行共通处理
  309. ExceptionManager.HandleEventException(this.ToString(),
  310. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  311. }
  312. }
  313. /// <summary>
  314. /// 打开缓存路径
  315. /// </summary>
  316. /// <param name="sender"></param>
  317. /// <param name="e"></param>
  318. private void tsmiCachePath_Click(object sender, EventArgs e)
  319. {
  320. System.Diagnostics.Process.Start(LocalPath.RootPath);
  321. }
  322. /// <summary>
  323. /// 打开日志路径
  324. /// </summary>
  325. /// <param name="sender"></param>
  326. /// <param name="e"></param>
  327. private void tsmiLogPath_Click(object sender, EventArgs e)
  328. {
  329. System.Diagnostics.Process.Start(LocalPath.LogRootPath);
  330. }
  331. /// <summary>
  332. /// 更新履历
  333. /// </summary>
  334. /// <param name="sender"></param>
  335. /// <param name="e"></param>
  336. private void tsmiCheckUpgradeInfo_Click(object sender, EventArgs e)
  337. {
  338. try
  339. {
  340. DockPanelBase fSYS0211 = F_SYS_0211.Instance;
  341. if (fSYS0211 == null)
  342. {
  343. return;
  344. }
  345. fSYS0211.Show(this.dockpnlMain, DockState.Document);
  346. fSYS0211.Activate();
  347. }
  348. catch (Exception ex)
  349. {
  350. // 对异常进行共通处理
  351. ExceptionManager.HandleEventException(this.ToString(),
  352. MethodBase.GetCurrentMethod().Name, this.Text, ex);
  353. }
  354. }
  355. #endregion
  356. #region 私有方法
  357. /// <summary>
  358. /// 设置窗体按钮的文本信息
  359. /// </summary>
  360. private void SetFromTitleInfo()
  361. {
  362. this.WindowState = FormWindowState.Maximized;
  363. this.Text = FormTitles.F_SYS_0201;
  364. //设置按钮文本
  365. this.tsmiEditPassword.Text = ButtonText.TSMI_EDITPASSWORD;
  366. this.tsmiChangeUser.Text = ButtonText.TSMI_CHANGEUSER;
  367. this.tsmiNavigation.Text = ButtonText.TSMI_NAVIGATION;
  368. this.tsmiRefresh.Text = ButtonText.TSMI_REFRESH;
  369. this.tsmiExit.Text = ButtonText.TSMI_EXIT;
  370. this.tsbtnEditPassword.Text = ButtonText.TSBTN_EDITPASSWORD;
  371. this.tsbtnChangeUser.Text = ButtonText.TSBTN_CHANGEUSER;
  372. this.tsbtnNavigation.Text = ButtonText.TSBTN_NAVIGATION;
  373. this.tsbtnRefresh.Text = ButtonText.TSBTN_REFRESH;
  374. this.tsbtnExit.Text = ButtonText.TSBTN_EXIT;
  375. this.tssrlblIPpost.Text = string.Format("{0}:{1}【{2}】", ProxySettings.IP, ProxySettings.Port, ProxySettings.IPPostName);
  376. }
  377. /// <summary>
  378. /// 心跳程序
  379. /// </summary>
  380. /// <param name="sender"></param>
  381. /// <param name="e"></param>
  382. private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
  383. {
  384. try
  385. {
  386. bool isLinkWebServer = Dongke.IBOSS.PRD.WCF.Proxys.DKIBOSSPRDProxy.Service.GetServiceState();
  387. if (isLinkWebServer)
  388. {
  389. this.tssrlblProcess.Image = global::Dongke.IBOSS.PRD.Client.Properties.Resources.online;
  390. this.tssrlblProcess.Text = Constant.M_NETWORK_CONNECT_TEXT;
  391. }
  392. else
  393. {
  394. this.tssrlblProcess.Image = global::Dongke.IBOSS.PRD.Client.Properties.Resources.outline;
  395. this.tssrlblProcess.Text = Constant.M_NETWORK_DISCONNECT_TEXT;
  396. }
  397. }
  398. catch (Exception ex)
  399. {
  400. // 写错误日志
  401. OutputLog.Trace(LogPriority.Warning, this.ToString(),
  402. MethodBase.GetCurrentMethod().Name, ex.ToString());
  403. this.tssrlblProcess.Text = Constant.M_NETWORK_DISCONNECT_TEXT;
  404. }
  405. }
  406. #endregion
  407. }
  408. }