tijian_jichuang/Code/BasicSettings/frmMenuAdd.cs

246 lines
8.0 KiB
C#
Raw Permalink Normal View History

2025-02-20 11:54:48 +08:00
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();
}
}
}
}
}