246 lines
8.0 KiB
C#
246 lines
8.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using EAS.Services;
|
|
using EAS;
|
|
using SOH.Data;
|
|
using SOH.Entities;
|
|
|
|
namespace SOH.BasicSettings
|
|
{
|
|
public partial class frmMenuAdd : Form
|
|
{
|
|
public int mid = 0;
|
|
public frmMenuAdd()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmMenuAdd_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
myinit();
|
|
if (mid != 0)
|
|
{
|
|
initedit();
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化修改数据
|
|
/// </summary>
|
|
private void initedit()
|
|
{
|
|
var vser = ServiceContainer.GetService<SOH.BLL.IQuanXian>();
|
|
var lm = vser.getMenu(mid);
|
|
if (lm != null)
|
|
{
|
|
txtcdmc.Text = lm.menuname;
|
|
txtpx.Text = lm.px.ToString();
|
|
mcbsjcd.SelectedValue = lm.pid;
|
|
cbcdlx.SelectedItem = lm.mtype == 0 ? "菜单" : "功能";
|
|
if (lm.mtype == 1)
|
|
{
|
|
cbbrsfs.SelectedItem = lm.opentype == 0 ? "窗口" : "对话框";
|
|
cbbass.SelectedValue = lm.module.assid;
|
|
dgvgn.ClearSelection();
|
|
foreach (DataGridViewRow dr in dgvgn.Rows)
|
|
{
|
|
if (((DataRowView)dr.DataBoundItem).Row["mid"].ToString() == lm.modulesid.ToString())
|
|
dr.Selected = true;
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
mid = 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化基本数据
|
|
/// </summary>
|
|
private void myinit()
|
|
{
|
|
dgvgn.AutoGenerateColumns = false;
|
|
initass();
|
|
initmk();
|
|
//throw new NotImplementedException();
|
|
var vser = ServiceContainer.GetService<SOH.BLL.IQuanXian>();
|
|
string sm = vser.getMunelist(0);
|
|
DataTable dt = (DataTable)Newtonsoft.Json.JsonConvert.DeserializeObject(sm, typeof(DataTable));
|
|
|
|
dt.Columns.Add("px1", typeof(int));
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
dt.Columns.Add("id", typeof(int));
|
|
dt.Columns.Add("pid", typeof(int));
|
|
dt.Columns.Add("px", typeof(int));
|
|
dt.Columns.Add("cdname", typeof(string));
|
|
|
|
}
|
|
DataRow dr = dt.NewRow();
|
|
dr["id"] = 0;
|
|
dr["cdname"] = "顶级菜单";
|
|
dr["pid"] = -1;
|
|
dr["px"] = 0;
|
|
dr["px1"] = -1;
|
|
dt.Rows.Add(dr);
|
|
addkg(dt, 0, 1);
|
|
try
|
|
{
|
|
dt.DefaultView.Sort = "px1,px";
|
|
}
|
|
catch (System.Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
return;
|
|
}
|
|
DataTable fdt = dt.DefaultView.ToTable();
|
|
mcbsjcd.ValueMember = "id";
|
|
mcbsjcd.DisplayMember = "cdname";
|
|
mcbsjcd.ViewColList.Add(new MFCComboBox.MComboColumn("cdname", "菜单名称", 200, MFCComboBox.HorizontalAlign.Left));
|
|
mcbsjcd.DataSource = fdt;
|
|
}
|
|
|
|
private void initmk()
|
|
{
|
|
// throw new NotImplementedException();
|
|
var vser = ServiceContainer.GetService<BLL.IQuanXian>();
|
|
string ls = vser.getAssModuleList();
|
|
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject(ls, typeof(DataTable)) as DataTable;
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
if (cbbass.SelectedValue != null && cbbass.SelectedValue.ToString() != "")
|
|
{
|
|
dt.DefaultView.RowFilter = "id=" + cbbass.SelectedValue.ToString();
|
|
}
|
|
dgvgn.DataSource = dt;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化过滤程序集
|
|
/// </summary>
|
|
private void initass()
|
|
{
|
|
//throw new NotImplementedException();
|
|
var vser = ServiceContainer.GetService<BLL.IQuanXian>();
|
|
List<SOH.Entities.SYS_ASS> ass = vser.getAssList();
|
|
cbbass.DataSource = ass;
|
|
}
|
|
|
|
private void addkg(System.Data.DataTable dt, int p, int deep)
|
|
{
|
|
//throw new NotImplementedException();
|
|
DataRow[] drs = dt.Select("pid=" + p);
|
|
foreach (DataRow dr in drs)
|
|
{
|
|
dr["cdname"] = dr["cdname"].ToString().PadLeft((deep+1) *3 );
|
|
dr["px1"] = deep;
|
|
|
|
addkg(dt, int.Parse(dr["id"].ToString()), deep + 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void btnok_Click(object sender, EventArgs e)
|
|
{
|
|
//MessageBox.Show(mcbsjcd.SelectedValue.ToString());
|
|
//MessageBox.Show(cbcdlx.SelectedValue.ToString());
|
|
if (txtcdmc.Text.Trim() == "")
|
|
{
|
|
MessageBox.Show("菜单名称不能为空");
|
|
return;
|
|
}
|
|
if (txtpx.Text.Trim() == "")
|
|
{
|
|
MessageBox.Show("排序不能为空");
|
|
return;
|
|
}
|
|
int ls = 0;
|
|
if (!int.TryParse(txtpx.Text.Trim(), out ls))
|
|
{
|
|
MessageBox.Show("请输入正确的排序数字!");
|
|
return;
|
|
}
|
|
if (mcbsjcd.SelectedValue == null || mcbsjcd.SelectedValue.ToString() == "")
|
|
{
|
|
MessageBox.Show("请选择上级菜单");
|
|
return;
|
|
}
|
|
if (cbcdlx.SelectedItem == null || cbcdlx.SelectedItem.ToString() == "")
|
|
{
|
|
MessageBox.Show("请选择菜单类型");
|
|
return;
|
|
}
|
|
if (cbcdlx.SelectedItem.ToString()=="功能"&&dgvgn.SelectedRows.Count == 0)
|
|
{
|
|
MessageBox.Show("请选择菜单类型");
|
|
return;
|
|
}
|
|
if (cbcdlx.SelectedItem.ToString() == "功能")
|
|
{
|
|
if (cbbrsfs.SelectedItem == null || cbbrsfs.SelectedItem.ToString() == "")
|
|
{
|
|
MessageBox.Show("请选择菜单打开方式");
|
|
return;
|
|
}
|
|
}
|
|
//MessageBox.Show(mcbsjcd.SelectedValue.ToString());
|
|
//MessageBox.Show(cbcdlx.SelectedItem.ToString());
|
|
var vser = ServiceContainer.GetService<BLL.IQuanXian>();
|
|
SYS_MENU sm=new SYS_MENU();
|
|
sm.px=ls;
|
|
sm.menuname=txtcdmc.Text.Trim();
|
|
sm.id=mid;
|
|
sm.pid=int.Parse(mcbsjcd.SelectedValue.ToString());
|
|
sm.mtype = (byte)(cbcdlx.SelectedItem.ToString() == "功能" ? 1 : 0);
|
|
if (cbcdlx.SelectedItem.ToString() == "功能")
|
|
{
|
|
sm.modulesid = int.Parse((dgvgn.SelectedRows[0].DataBoundItem as DataRowView).Row["mid"].ToString());
|
|
sm.opentype = (byte)((cbbrsfs.SelectedItem.ToString()=="对话框"?1:0));
|
|
}
|
|
OperationResult or = vser.setMenu(sm);
|
|
MessageBox.Show(or.Message);
|
|
if (or.State == 1)
|
|
{
|
|
DialogResult = DialogResult.OK;
|
|
}
|
|
}
|
|
|
|
private void cbcdlx_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (cbcdlx.SelectedItem.ToString() == "功能")
|
|
{
|
|
panelcdgn.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
panelcdgn.Enabled = false;
|
|
}
|
|
}
|
|
|
|
private void cbbass_SelectedValueChanged(object sender, EventArgs e)
|
|
{
|
|
if (dgvgn.DataSource != null)
|
|
{
|
|
|
|
DataTable dt = dgvgn.DataSource as DataTable;
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
dt.DefaultView.RowFilter = "id=" + cbbass.SelectedValue.ToString();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|