using CasunCommon.BaseUI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Serialization;
namespace PMSUI
{
public partial class SettingForm : Form
{
//private string m_Permission = "";
private string m_UserID = "";
private string m_UserName = "";
private CWarehouseTypeForm m_CWarehouseTypeForm;
private CWMSSettingForm m_CWMSSettingForm;
private CMenuSettingForm m_MenuSettingForm;
private HistoryDataForm m_HistoryDataForm;
private DisplayLanguageForm m_DisplayLanguageForm;
private DisplaySettingForm m_DisplaySettingForm;
private CStationIDRelatedForm m_CStationIDRelatedForm;
private CSystemResetForm m_CSystemResetForm;
private UserSettingForm m_UserSettingForm;
private CBookTemplateForm m_CTaskTemplateForm;
private CStepTemplateForm m_CStepTemplateForm;
private CTaskExceptionHandling m_CTaskExceptionHandling;
private static SettingForm m_Instance; // 该类实例对象
private int m_nNoSignalTime = 0;
private ToolStripStatusLabel Time = new ToolStripStatusLabel();
private ToolStripStatusLabel InfoLable = new ToolStripStatusLabel();
private ToolStripStatusLabel OptTimeCheck = new ToolStripStatusLabel();
public string UserID
{
get
{
return m_UserID;
}
set
{
m_UserID = value;
}
}
public string UserName
{
get
{
return m_UserName;
}
set
{
m_UserName = value;
}
}
public static SettingForm Instance
{
get
{
//if(m_Instance == null)
//{
// m_Instance = new SettingForm();
//}
return m_Instance;
}
}
public SettingForm()
{
InitializeComponent();
LoadMenuSetting();
CLanguageManager.SetLang(this);
m_Instance = this;
}
private void Init()
{
InitColor();
ToolStripStatusLabel Tss;
Tss = new ToolStripStatusLabel();
Tss.BackColor = CasunUILib.g_FormBackColor;
Tss.Text = "用户ID:" + m_UserID;
statusStrip1.Items.Add(Tss);
Tss = new ToolStripStatusLabel();
Tss.BorderSides = ToolStripStatusLabelBorderSides.Left;
Tss.BackColor = CasunUILib.g_FormBackColor;
Tss.Text = "用户名:" + m_UserName;
statusStrip1.Items.Add(Tss);
//Tss = new ToolStripStatusLabel();
//Tss.BorderSides = ToolStripStatusLabelBorderSides.Left;
//Tss.BackColor = CasunUILib.g_FormBackColor;
//Tss.Text = "权限:" + m_Permission;
//statusStrip1.Items.Add(Tss);
//if (!InitPermission())
//{
// Tss.ForeColor = Color.Red;
// Tss.Text = "初始化权限失败";
//}
InfoLable.BackColor = CasunUILib.g_FormBackColor;
InfoLable.Spring = true;
statusStrip1.Items.Add(InfoLable);
Time.BackColor = CasunUILib.g_FormBackColor;
Time.Text = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
Time.BorderSides = ToolStripStatusLabelBorderSides.Left;
Time.Click += new EventHandler(Time_Click);
statusStrip1.Items.Add(Time);
OptTimeCheck.BackColor = CasunUILib.g_FormBackColor;
OptTimeCheck.Text = "";
OptTimeCheck.BorderSides = ToolStripStatusLabelBorderSides.Left;
statusStrip1.Items.Add(OptTimeCheck);
timer1.Enabled = true;
timer1.Interval = 500;
timer_CheckForm.Enabled = true;
timer_CheckForm.Interval = 1000;
}
private void InitColor()
{
int a = CasunUILib.g_FormBackColor.A;
int r = CasunUILib.g_FormBackColor.R + 122 > 255 ? CasunUILib.g_FormBackColor.R - 122 : CasunUILib.g_FormBackColor.R + 122;
int g = CasunUILib.g_FormBackColor.G + 122 > 255 ? CasunUILib.g_FormBackColor.G - 122 : CasunUILib.g_FormBackColor.G + 122;
int b = CasunUILib.g_FormBackColor.B + 122 > 255 ? CasunUILib.g_FormBackColor.B - 122 : CasunUILib.g_FormBackColor.B + 122;
//int a = CasunUILib.g_FormBackColor.A;
//int r = 255 - CasunUILib.g_FormBackColor.R;
//int g = 255 - CasunUILib.g_FormBackColor.G;
//int b = 255 - CasunUILib.g_FormBackColor.B;
treeViewEx1.SelectColor = Color.LightBlue;
treeViewEx1.SelectColor2 = Color.LightBlue;
treeViewEx1.ColorEx = Color.LightBlue;
//treeViewEx1.SelectColor = Color.FromArgb(a, r, g, b);
//treeViewEx1.SelectColor2 = Color.FromArgb(a, r - 30 > 0 ? r - 30 : r, g - 30 > 0 ? g - 30 : g, b - 30 > 0 ? b - 30 : b);
//treeViewEx1.ColorEx = Color.FromArgb(a, r - 60 > 0 ? r - 60 : r, g - 60 > 0 ? g - 60 : g, b - 60 > 0 ? b - 60 : b);
treeViewEx1.BackColor = Color.FromArgb(CasunUILib.g_FormBackColor.R, CasunUILib.g_FormBackColor.G, CasunUILib.g_FormBackColor.B);
statusStrip1.BackColor = Color.FromArgb(100, CasunUILib.g_FormBackColor.R, CasunUILib.g_FormBackColor.G, CasunUILib.g_FormBackColor.B);
foreach (ToolStripStatusLabel con in statusStrip1.Items)
{
con.BackColor = CasunUILib.g_FormBackColor;
}
}
///
/// 更新背景色
///
public void BackColorChangeHandle()
{
InitColor();
}
private void SettingForm_Load(object sender, EventArgs e)
{
Init();
PromptForm.OpenAction += OpenSettingForm;
}
private void LoadMenuSetting()
{
//清空
treeViewEx1.Nodes.Clear();
menuStrip1.Items.Clear();
#region 获取数据
List smodelList = PmsCoreDB.DBHost.Instance.MenuSetting.GetModelList("1=1 order by ParentMenuSort,ChildMenuSort");
Dictionary> MenuDic = new Dictionary>();
foreach (PmsCoreDB.Model.PMS_sys_MenuSetting model in smodelList)
{
if (!model.IsShow)
{
continue;
}
if (!MenuDic.ContainsKey(model.ModuleName))
{
List newModuleList = new List();
newModuleList.Add(model);
MenuDic.Add(model.ModuleName, newModuleList);
}
else
{
if (!MenuDic[model.ModuleName].Contains(model))
{
MenuDic[model.ModuleName].Add(model);
}
}
}
#endregion
#region 左边树菜单
foreach (KeyValuePair> pair in MenuDic)
{
//加根节点
if (!treeViewEx1.Nodes.ContainsKey(pair.Key))
{
TreeNode blankNode = new TreeNode();
TreeNode parentNode = new TreeNode(pair.Key);
parentNode.Text = pair.Key;
parentNode.Name = pair.Key;
treeViewEx1.Nodes.Add(blankNode);
treeViewEx1.Nodes.Add(parentNode);
}
//子节点
foreach (PmsCoreDB.Model.PMS_sys_MenuSetting item in pair.Value)
{
TreeNode node = new TreeNode(item.MenuName);
node.Text = item.DisplayMenuName;
node.Name = item.MenuName;
foreach (TreeNode parentNode in treeViewEx1.Nodes)
{
if (parentNode.Text == item.ModuleName)
{
parentNode.Nodes.Add(node);
}
}
}
}
#endregion
#region 上面菜单
foreach (KeyValuePair> pair in MenuDic)
{
//加根节点
if (!menuStrip1.Items.ContainsKey(pair.Key))
{
ToolStripMenuItem parentItem = new ToolStripMenuItem();
parentItem.Text = pair.Key;
menuStrip1.Items.Add(parentItem);
}
//子节点
foreach (PmsCoreDB.Model.PMS_sys_MenuSetting item in pair.Value)
{
ToolStripMenuItem childItem = new ToolStripMenuItem();
childItem.Text = item.DisplayMenuName;
childItem.Name = item.MenuName;
childItem.Click += new EventHandler(toolStripMenuItem_Click);
foreach (ToolStripMenuItem parentItem in menuStrip1.Items)
{
if (parentItem.Text == item.ModuleName)
{
parentItem.DropDownItems.Add(childItem);
}
}
}
}
#endregion
}
private void Time_Click(object sender, EventArgs e)
{
ToolStripStatusLabel item = sender as ToolStripStatusLabel;
if (item != null)
{
PromptForm form = new PromptForm();
//form.Show();
form.ShowDialog();
}
}
private void SettingForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (m_CWarehouseTypeForm != null)
{
m_CWarehouseTypeForm.Close();
}
if (m_CWMSSettingForm != null)
{
m_CWMSSettingForm.Close();
}
m_Instance = null;
PromptForm.OpenAction -= OpenSettingForm;
//Dispose();
}
public void Dispose()
{
//try
//{
// CConfigManager.SaveGlobalData();
//}
//catch
//{ }
//Process[] process = Process.GetProcesses();
Process currentProcess = Process.GetCurrentProcess();
currentProcess.Kill();
//for (int i = 0; i < process.Count(); i++)
//{
// if (process[i].ProcessName == currentProcess.ProcessName)
// {
// process[i].Kill();
// }
//}
}
private void timer1_Tick(object sender, EventArgs e)
{
Time.Text = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
OptTimeCheck.Text = "离线时间:" + m_nNoSignalTime.ToString() + "S";
}
#region 界面共性设置
private void Form_FormClosed(object sender, FormClosedEventArgs e)
{
Form sform = sender as Form;
foreach (TabPage tp in tabControl1.TabPages)
{
if (tp.Name == sform.Name)
{
tabControl1.TabPages.Remove(tp);
}
}
}
///
/// 新建一个 TabPage
///
///
private void NewTabpage(CasunForm frm, int PermissionLevel)
{
if(frm == null)
{
return;
}
frm.TopLevel = false;
frm.WindowState = FormWindowState.Normal;
frm.Dock = DockStyle.Fill;
frm.FormBorderStyle = FormBorderStyle.None;
frm.BackColor = CasunUILib.g_FormBackColor;
frm.PermissionLevel = PermissionLevel;
frm.UserID = m_UserID;
TabPage Ta = new TabPage();
Ta.Name = frm.Name;
Ta.Text = frm.Text;
Ta.Controls.Add(frm);
Ta.AutoScroll = true;
Ta.ToolTipText = "Double click Close";
tabControl1.TabPages.Add(Ta);
frm.FormClosed += Form_FormClosed;
frm.Show();
tabControl1.SelectedTab = Ta;
}
///
/// 显示一个 TabPage
///
///
private void ShowTabpage(Form frm)
{
frm.BackColor = CasunUILib.g_FormBackColor;
tabControl1.SelectedTab = (TabPage)frm.Parent;
}
private void tabControl1_MouseClick(object sender, MouseEventArgs e)
{
TabControl tab = sender as TabControl;
Form sForm = tab.SelectedTab.Controls[0] as Form;
sForm.BackColor = CasunUILib.g_FormBackColor;
}
private void tabControl1_MouseDoubleClick(object sender, MouseEventArgs e)
{
TabControl tab = sender as TabControl;
Form sForm = tab.SelectedTab.Controls[0] as Form;
sForm.Close();
}
#endregion
private void OnCTaskTemplateFormCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWMSSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_CTaskTemplateForm == null)
{
m_CTaskTemplateForm = new CBookTemplateForm();
NewTabpage(m_CTaskTemplateForm, PermissionLevel);
}
else if (m_CTaskTemplateForm.IsDisposed)
{
m_CTaskTemplateForm = new CBookTemplateForm();
NewTabpage(m_CTaskTemplateForm, PermissionLevel);
}
else
{
ShowTabpage(m_CTaskTemplateForm);
}
}
private void OnWMSSettingCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWMSSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_CWMSSettingForm == null)
{
m_CWMSSettingForm = new CWMSSettingForm();
NewTabpage(m_CWMSSettingForm, PermissionLevel);
}
else if (m_CWMSSettingForm.IsDisposed)
{
m_CWMSSettingForm = new CWMSSettingForm();
NewTabpage(m_CWMSSettingForm, PermissionLevel);
}
else
{
ShowTabpage(m_CWMSSettingForm);
}
}
private void OnCStepTemplateFormCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWMSSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_CStepTemplateForm == null)
{
m_CStepTemplateForm = new CStepTemplateForm();
NewTabpage(m_CStepTemplateForm, PermissionLevel);
}
else if (m_CStepTemplateForm.IsDisposed)
{
m_CStepTemplateForm = new CStepTemplateForm();
NewTabpage(m_CStepTemplateForm, PermissionLevel);
}
else
{
ShowTabpage(m_CStepTemplateForm);
}
}
private void OnCTaskExceptionHandlingCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWMSSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_CTaskExceptionHandling == null)
{
m_CTaskExceptionHandling = new CTaskExceptionHandling();
NewTabpage(m_CTaskExceptionHandling, PermissionLevel);
}
else if (m_CTaskExceptionHandling.IsDisposed)
{
m_CTaskExceptionHandling = new CTaskExceptionHandling();
NewTabpage(m_CTaskExceptionHandling, PermissionLevel);
}
else
{
ShowTabpage(m_CTaskExceptionHandling);
}
}
private void OnWarehouseTypeCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWarehouseTypeForm", out PermissionLevel))
//{
// return;
//}
if (m_CWarehouseTypeForm == null)
{
m_CWarehouseTypeForm = new CWarehouseTypeForm();
NewTabpage(m_CWarehouseTypeForm, PermissionLevel);
}
else if (m_CWarehouseTypeForm.IsDisposed)
{
m_CWarehouseTypeForm = new CWarehouseTypeForm();
NewTabpage(m_CWarehouseTypeForm, PermissionLevel);
}
else
{
ShowTabpage(m_CWarehouseTypeForm);
}
}
private void OnHistoryDataCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWarehouseTypeForm", out PermissionLevel))
//{
// return;
//}
if (m_HistoryDataForm == null)
{
m_HistoryDataForm = new HistoryDataForm();
NewTabpage(m_HistoryDataForm, PermissionLevel);
}
else if (m_HistoryDataForm.IsDisposed)
{
m_HistoryDataForm = new HistoryDataForm();
NewTabpage(m_HistoryDataForm, PermissionLevel);
}
else
{
ShowTabpage(m_HistoryDataForm);
}
}
private void OnDisPlayLanguageCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CChargeSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_DisplayLanguageForm == null)
{
m_DisplayLanguageForm = new DisplayLanguageForm();
NewTabpage(m_DisplayLanguageForm, PermissionLevel);
}
else if (m_DisplayLanguageForm.IsDisposed)
{
m_DisplayLanguageForm = new DisplayLanguageForm();
NewTabpage(m_DisplayLanguageForm, PermissionLevel);
}
else
{
ShowTabpage(m_DisplayLanguageForm);
}
}
private void OnUserSettingFormCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CChargeSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_UserSettingForm == null)
{
m_UserSettingForm = new UserSettingForm();
NewTabpage(m_UserSettingForm, PermissionLevel);
}
else if (m_UserSettingForm.IsDisposed)
{
m_UserSettingForm = new UserSettingForm();
NewTabpage(m_UserSettingForm, PermissionLevel);
}
else
{
ShowTabpage(m_UserSettingForm);
}
}
private void OnDisplaySettingFormCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CChargeSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_DisplaySettingForm == null)
{
m_DisplaySettingForm = new DisplaySettingForm();
NewTabpage(m_DisplaySettingForm, PermissionLevel);
}
else if (m_DisplaySettingForm.IsDisposed)
{
m_DisplaySettingForm = new DisplaySettingForm();
NewTabpage(m_DisplaySettingForm, PermissionLevel);
}
else
{
ShowTabpage(m_DisplaySettingForm);
}
}
private void OnCSystemResetFormCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CChargeSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_CSystemResetForm == null)
{
m_CSystemResetForm = new CSystemResetForm();
NewTabpage(m_CSystemResetForm, PermissionLevel);
}
else if (m_CSystemResetForm.IsDisposed)
{
m_CSystemResetForm = new CSystemResetForm();
NewTabpage(m_CSystemResetForm, PermissionLevel);
}
else
{
ShowTabpage(m_CSystemResetForm);
}
}
private void OnCStationIDRelatedFormCheck()
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CChargeSettingForm", out PermissionLevel))
//{
// return;
//}
if (m_CStationIDRelatedForm == null)
{
m_CStationIDRelatedForm = new CStationIDRelatedForm();
NewTabpage(m_CStationIDRelatedForm, PermissionLevel);
}
else if (m_CStationIDRelatedForm.IsDisposed)
{
m_CStationIDRelatedForm = new CStationIDRelatedForm();
NewTabpage(m_CStationIDRelatedForm, PermissionLevel);
}
else
{
ShowTabpage(m_CStationIDRelatedForm);
}
}
void OpenSettingForm(int eve)
{
int PermissionLevel = 0;
//if (!CheckFormPerimission("CWarehouseTypeForm", out PermissionLevel))
//{
// return;
//}
if (m_MenuSettingForm == null)
{
m_MenuSettingForm = new CMenuSettingForm();
NewTabpage(m_MenuSettingForm, PermissionLevel);
}
else if (m_MenuSettingForm.IsDisposed)
{
m_MenuSettingForm = new CMenuSettingForm();
NewTabpage(m_MenuSettingForm, PermissionLevel);
}
else
{
ShowTabpage(m_MenuSettingForm);
}
}
private void timer_CheckForm_Tick(object sender, EventArgs e)
{
//m_nNoSignalTime += 1;
//// 大于10分钟 无操作 界面退出
//// 优化 根据用户权限不同设置不同的超时时间 权限越高 超时越短
//if (m_nNoSignalTime > 300)
//{
// this.Close();
//}
}
private void treeViewEx1_AfterExpand(object sender, TreeViewEventArgs e)
{
TreeNode tn = e.Node;
if (tn.Parent != null)
{
foreach (TreeNode node in tn.Parent.Nodes)
{
if (tn != node)
{
node.Collapse();
}
}
}
while (tn.Parent != null)
tn = tn.Parent;
foreach (TreeNode node in treeViewEx1.Nodes)
{
if (tn != node)
{
node.Collapse();
}
}
}
private void toolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem item = sender as ToolStripMenuItem;
if (item != null)
{
OpenForm(item.Name);
}
}
private void treeViewEx1_AfterSelect(object sender, TreeViewEventArgs e)
{
OpenForm(e.Node.Name);
}
private void OpenForm(string ItemName)
{
switch (ItemName)
{
case "WarehouseSetting":
OnWMSSettingCheck();
break;
case "WarehouseTypeSetting":
OnWarehouseTypeCheck();
break;
case "HistoryOrderDataQuery":
OnHistoryDataCheck();
break;
case "LanguageSetting":
OnDisPlayLanguageCheck();
break;
case "DisplaySetting":
OnDisplaySettingFormCheck();
break;
case "StationIDRelateSetting":
OnCStationIDRelatedFormCheck();
break;
case "SystemReset":
OnCSystemResetFormCheck();
break;
case "UserSetting":
OnUserSettingFormCheck();
break;
case "TaskBookTemplateSetting":
OnCTaskTemplateFormCheck();
break;
case "OrderExceptionHandling":
OnCTaskExceptionHandlingCheck();
break;
case "StepBookTemplateSetting":
OnCStepTemplateFormCheck();
break;
default:
break;
}
}
}
}