ab56a9bcf7
SVN-Revision: r240
284 lines
9.8 KiB
C#
284 lines
9.8 KiB
C#
using DevExpress.XtraGrid.Views.Grid;
|
|
using Lskj.Business.Impl;
|
|
using Lskj.Control;
|
|
using Lskj.Control.Model;
|
|
using Lskj.Core;
|
|
using Lskj.Model;
|
|
using Lskj.Util;
|
|
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;
|
|
|
|
namespace Lskj.PubUserTomodule
|
|
{
|
|
public partial class FrmRightMenus : BaseForm
|
|
{
|
|
|
|
/// <summary>
|
|
/// 角色表
|
|
/// </summary>
|
|
/// <value>The parent value.</value>
|
|
public DataTable RoleTable
|
|
{
|
|
get { return this.RoleControlEx.gridControl.DataSource as DataTable; }
|
|
set { this.RoleControlEx.gridControl.DataSource = value; }
|
|
}
|
|
/// <summary>
|
|
///人员表
|
|
/// </summary>
|
|
/// <value>The parent value.</value>
|
|
public DataTable PersonnelTable
|
|
{
|
|
get { return this.PeopleControlEx.gridControl.DataSource as DataTable; }
|
|
set { this.PeopleControlEx.gridControl.DataSource = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 主表sql后缀条件(不同地方的右键条件不一样)
|
|
/// </summary>
|
|
public ModuleType Type;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string ModuleCode;
|
|
|
|
|
|
public FrmRightMenus(ModuleType type,string moduleCode)
|
|
{
|
|
InitializeComponent();
|
|
this.Type = type;
|
|
this.ModuleCode = moduleCode;
|
|
//绑定列数据
|
|
InitializeColumns();
|
|
//绑定事件
|
|
InitializeEvent();
|
|
//加载主表数据源
|
|
InitializeDataSource();
|
|
InitSpliterPosition();
|
|
this.splitMain.SplitterPositionChanged += SplitMain_SplitterPositionChanged;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 主表数据源
|
|
/// </summary>
|
|
private void InitializeDataSource()
|
|
{
|
|
|
|
this.RightMenusControlEx.gridControl.DataSource = PowerImpl.GetRightMenus(ModuleCode, Type);
|
|
this.RightMenusControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.RightGridView_Click(RightMenusControlEx.GridView, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:初始化分割条位置</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-12-15</para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitSpliterPosition()
|
|
{
|
|
string spliterPosition = IniHelper.Read(string.Format("FrmPermissionClassification__splitMain{0}", "FrmRightMenus"));
|
|
|
|
if (!string.IsNullOrEmpty(spliterPosition)) this.splitMain.SplitterPosition = Convert.ToInt32(spliterPosition);
|
|
|
|
}
|
|
/// <summary>
|
|
/// 分割条改变时
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void SplitMain_SplitterPositionChanged(object sender, EventArgs e)
|
|
{
|
|
IniHelper.Write(string.Format("FrmPermissionClassification__splitMain{0}", "FrmRightMenus"), this.splitMain.SplitterPosition + "");
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 默认绑定列数据
|
|
/// </summary>
|
|
private void InitializeColumns()
|
|
{
|
|
//添加表格列
|
|
this.RightMenusControlEx.GridView.Columns.AddVisible("menuname","菜单名称");
|
|
this.RightMenusControlEx.GridView.Columns.AddVisible("privilegeOper","权限" );
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("员工ID", "员工ID");
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("员工工号", "员工工号");
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("员工姓名", "员工姓名");
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("所属部门", "所属部门");
|
|
this.RoleControlEx.GridView.Columns.AddVisible("roleName", "角色");
|
|
|
|
this.PeopleControlEx.GridView.OptionsBehavior.Editable = false;
|
|
this.RoleControlEx.GridView.OptionsBehavior.Editable = false;
|
|
this.RightMenusControlEx.GridView.OptionsBehavior.Editable = false;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 默认绑定事件
|
|
/// </summary>
|
|
private void InitializeEvent()
|
|
{
|
|
//角色,人员拖拽到人员文本框
|
|
//角色
|
|
GridDragMemo dragMemo = new GridDragMemo(this.RoleControlEx.GridView, this.textPersonnelList);
|
|
dragMemo.OnDragComplete += DragMemo_OnDragComplete;
|
|
//人员
|
|
GridDragMemo dragMemo2 = new GridDragMemo(this.PeopleControlEx.GridView, this.textPersonnelList);
|
|
dragMemo2.OnDragComplete += DragMemo_OnDragComplete;
|
|
//主表单击加载下方文本框
|
|
this.RightMenusControlEx.GridView.Click += RightGridView_Click;
|
|
//文本框改变时刷新表中数据
|
|
this.textPersonnelList.TextChanged += TextPersonnelList_TextChanged;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 角色或人员拖拽到文本
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void DragMemo_OnDragComplete(object sender, GridDragMemoArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (e.GridViewSelectRows == null || e.GridViewSelectRows.Length == 0) return;
|
|
string userNames = string.Empty;
|
|
List<string> texts = textPersonnelList.Text.Split(',').ToList();
|
|
|
|
int index = this.xtraTabControl2.SelectedTabPageIndex;//0为角色,1为人员
|
|
|
|
if (index == 1)
|
|
{
|
|
//人员
|
|
foreach (DataRow item in e.GridViewSelectRows)
|
|
{
|
|
if (!texts.Contains(item["员工姓名"] + ""))
|
|
{
|
|
userNames += item["员工姓名"] + ",";
|
|
texts.Add(item["员工姓名"] + "");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//角色
|
|
foreach (DataRow item in e.GridViewSelectRows)
|
|
{
|
|
string id = item["id"] + "";
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(id);
|
|
if (Roledetailed != null && Roledetailed.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in Roledetailed.Rows)
|
|
{
|
|
if (!texts.Contains(dr["员工姓名"] + ""))
|
|
{
|
|
userNames += dr["员工姓名"] + ",";
|
|
texts.Add(dr["员工姓名"] + "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
textPersonnelList.Text += userNames;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 选中权限分类中的行,在下方文本框中显示选中行人员
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void RightGridView_Click(object sender, EventArgs e)
|
|
{
|
|
GridView gridView = sender as GridView;
|
|
DataRow rowItem = gridView.GetFocusedDataRow();
|
|
if (rowItem != null)
|
|
{
|
|
textPersonnelList.Text = rowItem["privilegeOper"] + "";
|
|
}
|
|
else
|
|
{
|
|
textPersonnelList.Text = "";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 文本框的值改变时,改变选中行的值
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void TextPersonnelList_TextChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataRow rowItem = this.RightMenusControlEx.GridView.GetFocusedDataRow();
|
|
if (rowItem != null)
|
|
{
|
|
rowItem["privilegeOper"] = textPersonnelList.Text;
|
|
}
|
|
else
|
|
{
|
|
textPersonnelList.Text = "";
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataTable dataTable = (this.RightMenusControlEx.gridControl.DataSource as DataTable).TrimDeleteRows();
|
|
int successCount = 0;
|
|
int faultCount = 0;
|
|
foreach (DataRow item in dataTable.Rows)
|
|
{
|
|
if (item.RowState == DataRowState.Modified)
|
|
{
|
|
string sql = string.Format("update P_systempopupmenu set privilegeOper='{0}' where id='{1}'", item["privilegeOper"]+"", item["id"] + "");
|
|
int result = SqlHelper.ExecuteNonQuery(sql);
|
|
if (result > 0)
|
|
{
|
|
successCount++;
|
|
}
|
|
else {
|
|
faultCount++;
|
|
MessageUtil.Show(item["menuname"] +"设置权限失败");
|
|
}
|
|
}
|
|
}
|
|
MessageUtil.Show("保存完成");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|