2497 lines
105 KiB
C#
2497 lines
105 KiB
C#
using DevExpress.XtraTreeList;
|
|
using DevExpress.XtraTreeList.Nodes;
|
|
using Lskj.Business;
|
|
using Lskj.Business.Impl;
|
|
|
|
using Lskj.Core;
|
|
using Lskj.Model;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraTreeList.Data;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using DevExpress.XtraEditors.Repository;
|
|
using System.Data.SqlClient;
|
|
|
|
using Lskj.Data;
|
|
using Lskj.Util;
|
|
|
|
using Lskj.Control;
|
|
using Lskj.Control.Model;
|
|
using DevExpress.XtraTreeList.Columns;
|
|
using DevExpress.XtraGrid.Views.Grid;
|
|
using DevExpress.XtraEditors;
|
|
using DevExpress.XtraEditors.Controls;
|
|
|
|
namespace Lskj.PubUserTomodule
|
|
{
|
|
public partial class FrmMain : BaseForm
|
|
{
|
|
public DynamicPowerModel PubPowerModel;
|
|
/// <summary>
|
|
/// 选中行的集合
|
|
/// </summary>
|
|
private List<DataRow> rows = new List<DataRow>();
|
|
private List<string> readPurview = new List<string>();
|
|
private List<string> editPurview = new List<string>();
|
|
private List<string> idlist = new List<string>();
|
|
/// <summary>
|
|
/// 记录选中角色选中行的行号之后
|
|
/// </summary>
|
|
private string rolePositionAfter = string.Empty;
|
|
/// <summary>
|
|
/// 记录选中人员选中行的行号之后
|
|
/// </summary>
|
|
private string operPositionAfter = string.Empty;
|
|
/// <summary>
|
|
/// 记录选中角色选中行的行号之前
|
|
/// </summary>
|
|
private string rolePositionBefore = string.Empty;
|
|
/// <summary>
|
|
/// 记录选中人员选中行的行号之前
|
|
/// </summary>
|
|
private string operPositionBefore = string.Empty;
|
|
/// <summary>
|
|
/// 获取左侧选中的名称
|
|
/// </summary>
|
|
private string id = string.Empty;
|
|
/// <summary>
|
|
/// 获取临时选中的名称
|
|
/// </summary>
|
|
private string empid = string.Empty;
|
|
/// <summary>
|
|
/// 当前是人员还是角色(true是人员)
|
|
/// </summary>
|
|
private bool Operatorflag = false;
|
|
/// <summary>
|
|
/// treeList绑定的表
|
|
/// </summary>
|
|
DataTable dt = new DataTable();
|
|
/// <summary>
|
|
/// 角色表
|
|
/// </summary>
|
|
DataTable Roletable = new DataTable();
|
|
/// <summary>
|
|
/// 员工表
|
|
/// </summary>
|
|
DataTable employeetable = new DataTable();
|
|
|
|
////修改前模块列的属性
|
|
//public DataTable BasicFormDt = new DataTable();//基础模块
|
|
//public DataTable BillAboveDt = new DataTable();//单据主表
|
|
//public DataTable BillDetailDt = new DataTable();//单据明细
|
|
|
|
/// <summary>
|
|
/// 系统模块实体对象
|
|
/// </summary>
|
|
/// <value>The system model.</value>
|
|
public ModuleModel SysModel;
|
|
|
|
|
|
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
InitSpliterPosition();
|
|
//InitializeDeps();
|
|
InitializeColumns();
|
|
InitializeUsers();
|
|
creatTreeListControl();
|
|
BindGridTreeView();
|
|
operationLogColumns();
|
|
FastPassageInitialize();
|
|
|
|
#region 步骤panel位置更改
|
|
this.searchModuleLab.TextEdit.Properties.AutoHeight = false;
|
|
this.searchModuleLab.TextEdit.Properties.BorderStyle = BorderStyles.NoBorder;
|
|
PanelControl panelControl = new PanelControl();
|
|
panelControl = this.frmWork1.panelControl1;
|
|
panelControl.Parent = this.panelControl12;
|
|
panelControl.Dock = DockStyle.Fill;
|
|
#endregion
|
|
this.moduleControl.GridView.BestFitColumns();
|
|
this.searchModuleLab.TextEdit.EditValueChanged += new EventHandler(OnSearchMoudleEditValueChanged);//模糊查询
|
|
|
|
GridDragGrid dragGrid = new GridDragGrid(this.gridControlEx1.GridView, this.RoleOwnerControl.GridView);
|
|
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
|
|
//GridDragGrid.GridAddCheckBox(this.gridControlEx1.GridView);
|
|
|
|
this.RoleControlEx.GridView.Click += new EventHandler(OnGridViewClick);//角色表点击
|
|
this.RoleControlEx.GridView.DoubleClick += new EventHandler(DoubleGridViewClick);
|
|
this.PeopleControlEx.GridView.Click += new EventHandler(OnGridView2Click);//人员表点击
|
|
|
|
|
|
this.splitContainerControl1.SplitterPositionChanged += new EventHandler(OnSplitContainerControl1_SplitterPositionChanged);
|
|
this.splitMain_LowerRight.SplitterPositionChanged += SplitMain_LowerRight_SplitterPositionChanged;
|
|
|
|
this.RoleControlEx.GridView.SelectRowHandler(0);//设置默认选中行
|
|
|
|
this.RoleControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.RoleOwnerControl.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.PeopleControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
//this.ModulePermissionsControl.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.QuickOperationControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.QuickReportFormControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
this.AllQuickControlEx.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
|
|
|
|
if (Roletable.Rows.Count > 0)
|
|
{
|
|
First(Roletable.Rows[0]["id"] + "");
|
|
}
|
|
|
|
this.ModulePermissionsControl.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
|
|
this.AllQuickControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
|
|
this.QuickOperationControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
|
|
this.QuickReportFormControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
|
|
|
|
|
|
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
|
|
xtraTabControl2.SelectedTabPage = xtraTabPage3;
|
|
this.PrimaryDirectory.SelectedIndex = 0;
|
|
|
|
|
|
this.btn_deleteRole.Click += new EventHandler(btn_deleteRole_Click);
|
|
this.btn_Add.Click += new EventHandler(btn_Add_Click);
|
|
this.btn_copyRole.Click += new EventHandler(OnBtn_copyRole_Click);
|
|
this.btn_unfold.Click += new EventHandler(OnBtn_unfoldClick);
|
|
this.btn_save.Click += new EventHandler(btn_save_Click);
|
|
this.btn_export.Click += new EventHandler(btn_export_Click);
|
|
this.btn_query.Click += new EventHandler(btn_query_Click);
|
|
this.btn_CopyPermissions.Click += new EventHandler(btn_CopyPermissions_Click);//角色权限复制
|
|
|
|
//xtraTabControl1_SelectedPageChanged
|
|
this.xtraTabControl1.SelectedPageChanged += new DevExpress.XtraTab.TabPageChangedEventHandler(xtraTabControl1_SelectedPageChanged);
|
|
this.xtraTabControl2.SelectedPageChanged += new DevExpress.XtraTab.TabPageChangedEventHandler(xtraTabControl2_SelectedPageChanged);
|
|
|
|
generateModuleColumns();//审核权限界面
|
|
|
|
this.moduleAssociationRole.onClickDeleteButton += ModuleAssociationRole_onClickDeleteButton;//菜单功能明细模块操作后刷新主页面
|
|
//判断如果没有查询数据的存储过程就隐藏 人员权限信息 页签
|
|
int num = int.Parse(SqlHelper.ExecuteScalar("SELECT COUNT(*) FROM sys.procedures WHERE name = 'p_SystemSetUserPurview_print'") + "");
|
|
if (num == 0)
|
|
{
|
|
xtraTabPage12.PageVisible = false;
|
|
}
|
|
else
|
|
{
|
|
personnelInformation.InitializeSplitterPosition();
|
|
this.personnelInformation.onClickDeleteButton += ModuleAssociationRole_onClickDeleteButton;//菜单功能明细模块操作后刷新主页面
|
|
//左侧角色推拽到页签角色表
|
|
GridDragGrid dragGrid2 = new GridDragGrid(this.RoleControlEx.GridView, this.personnelInformation.roleControlEx.GridView);
|
|
dragGrid2.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragRole);
|
|
}
|
|
|
|
|
|
this.scc_container.PanelVisibility = SplitPanelVisibility.Panel1;
|
|
|
|
this.RoleOwnerControl.GridControl.ContextMenuStrip = this.MenuStrip;
|
|
|
|
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 私有方法
|
|
|
|
/// <summary>
|
|
/// <para>说明:表格拖拽完成</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-11-14 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
/// <param name="e">The e.</param>
|
|
protected void OnDragGridCompleted(object sender, GridDragGridArgs e)
|
|
{
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
if (MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
GridColumnCollection gridColumns = this.RoleOwnerControl.GridView.Columns;
|
|
DataTable table = this.RoleOwnerControl.gridControl.DataSource as DataTable;
|
|
foreach (DataRow rowItem in e.GridViewSelectRows)
|
|
{
|
|
DataRow newRow = table.NewRow();
|
|
foreach (GridColumn col in gridColumns)
|
|
{
|
|
if ("id".Equals(col.FieldName)) continue;
|
|
|
|
if (rowItem.Table.Columns.Contains(col.FieldName))
|
|
{
|
|
// 列中是否包含对应字段,包含则使用值
|
|
newRow[col.FieldName] = rowItem[col.FieldName];
|
|
}
|
|
}
|
|
PowerImpl.DropDate(int.Parse(newRow["员工ID"] + ""), newRow["员工工号"] + "", newRow["员工姓名"] + "", newRow["所属部门"] + "", id);
|
|
table.Rows.Add(newRow);
|
|
}
|
|
DataTable NEWTABLE = GetNewDt(this.RoleOwnerControl.GridControl.DataSource as DataTable);
|
|
this.gridControlEx1.GridControl.DataSource = NEWTABLE;
|
|
this.RoleOwnerControl.GridView.ClearSelection();
|
|
this.RoleOwnerControl.GridView.SelectRowHandler(table.Rows.Count - 1);
|
|
this.RoleOwnerControl.GridView.UpdateCurrentRow();
|
|
this.RoleOwnerControl.GridView.ShowEditor();
|
|
PowerImpl.RefreshElementPermissions(id);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogUtil.WriteError("表格拖拽错误", ex);
|
|
LogHelper.Instance.WriteError(ex);
|
|
//MessageUtil.Show(ResourceKeys.OperFault);
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 筛选赋权限表
|
|
/// </summary>
|
|
/// <param name="dt"></param>
|
|
/// <returns></returns>
|
|
private DataTable GetNewDt(DataTable newdt)
|
|
{
|
|
idlist.Clear();
|
|
string sqlwhere = string.Empty;
|
|
foreach (DataRow item in newdt.Rows)
|
|
{
|
|
idlist.Add(item["员工ID"] + " and ");
|
|
}
|
|
foreach (string id in idlist)
|
|
{
|
|
sqlwhere = sqlwhere + string.Format("员工ID !={0}", id);
|
|
}
|
|
|
|
sqlwhere = !string.IsNullOrEmpty(sqlwhere) ? sqlwhere.Trim().Substring(0, sqlwhere.Length - 4) : "1=1";
|
|
newdt = SqlHelper.ExecuteDataTable("select * from P_employeeBaseView where " + sqlwhere);
|
|
return newdt;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 默认绑定列数据
|
|
/// </summary>
|
|
private void InitializeColumns()
|
|
{
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("员工ID", "员工ID");
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("员工工号", "员工工号");
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("员工姓名", "员工姓名");
|
|
this.PeopleControlEx.GridView.Columns.AddVisible("所属部门", "所属部门");
|
|
|
|
//查询是否有指定模块,有就把角色表加载为purview001模块
|
|
DataRow dataRow = MainImpl.GetSystemdllTab("purview001");//获取单个模块信息
|
|
if (dataRow != null)
|
|
{
|
|
this.SysModel = new ModuleModel(dataRow);// 系统模块实体对象
|
|
DataTable RoleControlExColumns = BaseModuleImpl.GetBaseGridColumns("purview001");
|
|
this.RoleControlEx.SetReadOnlyColumns(RoleControlExColumns);
|
|
}
|
|
else
|
|
{
|
|
this.RoleControlEx.GridView.Columns.AddVisible("roleName", "角色");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:默认加载表格数据</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2019-09-19 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void InitializeUsers()
|
|
{
|
|
// 人员和角色绑定的表
|
|
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
|
|
employeetable = PowerImpl.GetWorkEmployee();
|
|
this.gridControlEx1.GridControl.DataSource = employeetable;
|
|
this.RoleControlEx.GridControl.DataSource = Roletable;
|
|
this.PeopleControlEx.GridControl.DataSource = employeetable;
|
|
this.gridControlEx1.GridView.OptionsBehavior.Editable = this.RoleControlEx.GridView.OptionsBehavior.Editable = this.RoleOwnerControl.GridView.OptionsBehavior.Editable = this.PeopleControlEx.GridView.OptionsBehavior.Editable = false;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 动态创建gridControlEx5的Column,一列为图层名,一列为是否统计列Check控件
|
|
/// </summary>
|
|
private void creatTreeListControl()
|
|
{
|
|
GridColumn treeListColumnFirst = new GridColumn();
|
|
treeListColumnFirst.Caption = "一级目录";
|
|
treeListColumnFirst.FieldName = "FirstDirectory";
|
|
treeListColumnFirst.MinWidth = 38;
|
|
treeListColumnFirst.Visible = true;
|
|
treeListColumnFirst.VisibleIndex = 0;
|
|
treeListColumnFirst.Width = 100;
|
|
treeListColumnFirst.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn treeListColumnDirectory = new GridColumn();
|
|
treeListColumnDirectory.Caption = "二级目录";
|
|
treeListColumnDirectory.FieldName = "SecondaryDirectory";
|
|
treeListColumnDirectory.MinWidth = 38;
|
|
treeListColumnDirectory.Visible = true;
|
|
treeListColumnDirectory.VisibleIndex =1;
|
|
treeListColumnDirectory.Width = 150;
|
|
treeListColumnDirectory.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn treeListColumnName = new GridColumn();
|
|
treeListColumnName.Caption = "系统名称";
|
|
treeListColumnName.FieldName = "MenuCaption";
|
|
treeListColumnName.MinWidth = 38;
|
|
treeListColumnName.Visible = true;
|
|
treeListColumnName.VisibleIndex = 2;
|
|
treeListColumnName.Width = 400;
|
|
treeListColumnName.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn treeListColumnMenuId = new GridColumn();
|
|
treeListColumnMenuId.Caption = "菜单id";
|
|
treeListColumnMenuId.FieldName = "MenuId";
|
|
treeListColumnMenuId.Visible = true;
|
|
treeListColumnMenuId.VisibleIndex = 3;
|
|
treeListColumnMenuId.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn treeListColumnReadflag = new GridColumn();
|
|
RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit();
|
|
checkEdit.ValueChecked = "1";
|
|
checkEdit.ValueUnchecked = "0";
|
|
checkEdit.ValueGrayed = 3;
|
|
checkEdit.CheckedChanged += CheckEdit_CheckedChanged;
|
|
|
|
treeListColumnReadflag.ColumnEdit = checkEdit;
|
|
treeListColumnReadflag.Caption = "只读权限";
|
|
treeListColumnReadflag.FieldName = "Readflag";
|
|
treeListColumnReadflag.Name = "treeListColumnReadflagValue";
|
|
treeListColumnReadflag.Visible = true;
|
|
treeListColumnReadflag.VisibleIndex = 5;
|
|
|
|
GridColumn treeListColumnEditflag = new GridColumn();
|
|
treeListColumnEditflag.ColumnEdit = checkEdit;
|
|
treeListColumnEditflag.Caption = "操作权限";
|
|
treeListColumnEditflag.FieldName = "Editflag";
|
|
treeListColumnEditflag.Name = "treeListColumnEditflagValue";
|
|
treeListColumnEditflag.Visible = true;
|
|
treeListColumnEditflag.VisibleIndex = 4;
|
|
|
|
this.ModulePermissionsControl.GridView.Columns.AddRange(new GridColumn[] {
|
|
treeListColumnFirst,
|
|
treeListColumnDirectory,
|
|
treeListColumnName,
|
|
treeListColumnMenuId,
|
|
treeListColumnReadflag,
|
|
treeListColumnEditflag
|
|
});
|
|
//this.treeList1.Nodes.Clear();
|
|
//this.treeList1.Refresh();
|
|
}
|
|
|
|
private void CheckEdit_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
DataRow mSelectRow = this.ModulePermissionsControl.GridView.GetFocusedDataRow();
|
|
|
|
if (mSelectRow["Readflag"] + "" == "1") mSelectRow["Readflag"] = "0";
|
|
if (mSelectRow["Editflag"] + "" == "1") mSelectRow["Editflag"] = "0";
|
|
ModulePermissionsControl.gridControl.RefreshDataSource();
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:模块权限表机构</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2017-09-04 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="treeTable">The tree table.</param>
|
|
public void BindGridTreeView()
|
|
{
|
|
DataTable treeTable = PowerImpl.GetAllModulesData();
|
|
dt = treeTable;
|
|
}
|
|
/// <summary>
|
|
/// 执行保存角色权限时候的存储过程
|
|
/// </summary>
|
|
/// <param name="modid"></param>
|
|
/// <param name="tagid"></param>
|
|
/// <param name="mid"></param>
|
|
/// <returns></returns>
|
|
public int saveRoledata(int roleid)
|
|
{
|
|
SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, 2000);
|
|
pMsg.Direction = ParameterDirection.Output;
|
|
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
|
|
returnValue.Direction = ParameterDirection.ReturnValue;
|
|
SqlParameter[] param =
|
|
{
|
|
new SqlParameter("@roleid ",SqlDbType.VarChar,20),
|
|
pMsg,
|
|
returnValue
|
|
};
|
|
param[0].Value = roleid;
|
|
BaseImpl.ExecProcedure("p_SystemSetRoleUserPurview", param);
|
|
return Convert.ToInt32(returnValue.Value.ToString());
|
|
}
|
|
/// <summary>
|
|
/// 执行保存时候的存储过程
|
|
/// </summary>
|
|
/// <param name="modid"></param>
|
|
/// <param name="tagid"></param>
|
|
/// <param name="mid"></param>
|
|
/// <returns></returns>
|
|
public int savedata(int operatorid)
|
|
{
|
|
SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, 2000);
|
|
pMsg.Direction = ParameterDirection.Output;
|
|
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
|
|
returnValue.Direction = ParameterDirection.ReturnValue;
|
|
SqlParameter[] param =
|
|
{
|
|
new SqlParameter("@operatorid",SqlDbType.VarChar,20),
|
|
pMsg,
|
|
returnValue
|
|
};
|
|
param[0].Value = operatorid;
|
|
BaseImpl.ExecProcedure("[p_SystemSetUserPurview]", param);
|
|
return Convert.ToInt32(returnValue.Value.ToString());
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取所有选中的集合
|
|
/// </summary>
|
|
/// <param name="parentNode"></param>
|
|
private void GetListKeyID()
|
|
{
|
|
editPurview.Clear();
|
|
readPurview.Clear();
|
|
DataTable masterdt = ModulePermissionsControl.gridControl.DataSource as DataTable;
|
|
for (int i = 0; i < masterdt.Rows.Count; i++)
|
|
{
|
|
if (masterdt.Rows[i]["ID"].ToString().Length > 4 && masterdt.Rows[i]["Editflag"] + "" == "1")
|
|
{
|
|
editPurview.Add(masterdt.Rows[i]["MenuId"] + "");
|
|
}
|
|
else
|
|
if (masterdt.Rows[i]["ID"].ToString().Length > 4 && masterdt.Rows[i]["Readflag"] + "" == "1")
|
|
{
|
|
readPurview.Add(masterdt.Rows[i]["MenuId"] + "");
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取选择状态有权限的节点集合
|
|
/// </summary>
|
|
/// <param name="parentNode">父级节点</param>
|
|
private void GetNodeCheckedID(string[] ReadPurview, string[] EditPurview)
|
|
{
|
|
rows.Clear();
|
|
foreach (DataRow item in dt.Rows)
|
|
{
|
|
if (EditPurview.Contains(item["MenuId"] + "") || ReadPurview.Contains(item["MenuId"] + ""))
|
|
{
|
|
if (ReadPurview.Contains(item["MenuId"] + ""))
|
|
{
|
|
item["Readflag"] = "1";
|
|
}
|
|
if (EditPurview.Contains(item["MenuId"] + ""))
|
|
{
|
|
item["editflag"] = "1";
|
|
}
|
|
if (!EditPurview.Contains(item["MenuId"] + ""))
|
|
{
|
|
item["editflag"] = "0";
|
|
}
|
|
if (!ReadPurview.Contains(item["MenuId"] + ""))
|
|
{
|
|
item["Readflag"] = "0";
|
|
}
|
|
rows.Add(item);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
if (rows.Count > 0)
|
|
{
|
|
this.ModulePermissionsControl.gridControl.DataSource = rows.CopyToDataTable();
|
|
this.ModulePermissionsControl.GridView.SelectRowHandler(0);
|
|
}
|
|
else
|
|
{
|
|
this.ModulePermissionsControl.gridControl.DataSource = dt.Clone();
|
|
}
|
|
|
|
//this.treeList1.CollapseAll();
|
|
}
|
|
|
|
#endregion
|
|
#region 点击事件
|
|
/// <summary>
|
|
/// <para>说明:设置权限</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2022-06-07 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void OnBtn_unfoldClick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
int index = this.xtraTabControl1.SelectedTabPageIndex;//0为角色,1为人员
|
|
string ReadPurview = string.Empty;
|
|
string EditPurview = string.Empty;
|
|
|
|
if (index == 0)
|
|
{
|
|
DataRow DR = PowerImpl.GetRoleRow(id);
|
|
ReadPurview = DR["ReadPurview"].ToString();
|
|
EditPurview = DR["EditPurview"].ToString();
|
|
}
|
|
else
|
|
{
|
|
string tipMsg = string.Empty;
|
|
DataSet ds = BaseImpl.getAuthorityByEmpid(1, id, "", "", out tipMsg);
|
|
EditPurview = ds.Tables.Count > 0 ? ds.Tables[0].Rows[0]["pid"] + "" : string.Empty;
|
|
DataSet ds2 = BaseImpl.getAuthorityByEmpid(2, id, "", "", out tipMsg);
|
|
ReadPurview = ds2.Tables.Count > 0 ? ds2.Tables[0].Rows[0]["pid"] + "" : string.Empty;
|
|
}
|
|
|
|
|
|
|
|
FrmPermissionSetting form = new FrmPermissionSetting(EditPurview, ReadPurview);
|
|
form.onClickTheOKButton += new FrmPermissionSetting.ClickTheOKButton(UpdatePermissionModule);
|
|
DialogResult result = form.ShowDialog();
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 模块权限设置框点击确定时,返回更新后的权限。
|
|
/// </summary>
|
|
/// <param name="EditPurview"></param>
|
|
/// <param name="ReadPurview"></param>
|
|
private void UpdatePermissionModule(List<string> EditPurview, List<string> ReadPurview)
|
|
{
|
|
GetNodeCheckedID(ReadPurview.ToArray(), EditPurview.ToArray());
|
|
btn_save_Click(null, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 双击角色表里的数据
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
void DoubleGridViewClick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
FrmAddRole frmAddRole = new FrmAddRole();
|
|
frmAddRole.Text = "修改角色名称";
|
|
frmAddRole.LabelObj.Text = "请输入修改角色名称:";
|
|
if (frmAddRole.ShowDialog() == DialogResult.OK)
|
|
{
|
|
string RoleName = frmAddRole.RoleName;
|
|
rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter;
|
|
rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? "1" : rolePositionBefore;
|
|
if (PowerImpl.UpdOper(RoleName, id))
|
|
{
|
|
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
|
|
this.RoleControlEx.GridControl.DataSource = Roletable;
|
|
this.RoleControlEx.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行
|
|
if (Roletable.Rows.Count > 0)
|
|
{
|
|
First(rolePositionBefore);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
//MessageUtil.Show(ex.Message);
|
|
LogUtil.WriteError("角色修改模块", ex);
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 单击查询角色表里的数据
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnGridViewClick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataRow mSelectRow = this.RoleControlEx.GridView.GetFocusedDataRow();
|
|
rolePositionAfter = this.RoleControlEx.GridView.FocusedRowHandle.ToString();
|
|
if (mSelectRow != null)
|
|
{
|
|
id = mSelectRow["id"] + "";
|
|
rolePositionBefore = id;
|
|
First(id);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
#region 初始化分割条位置
|
|
/// <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("Step_spliterPositionMain_{0}", "PubUserTomodule"));
|
|
if (!string.IsNullOrEmpty(spliterPosition)) this.splitContainerControl1.SplitterPosition = Convert.ToInt32(spliterPosition);
|
|
string spliterPosition2 = IniHelper.Read(string.Format("Step_spliterPositionMain_{0}", "splitMain_LowerRight"));
|
|
if (!string.IsNullOrEmpty(spliterPosition2)) this.splitMain_LowerRight.SplitterPosition = Convert.ToInt32(spliterPosition2);
|
|
}
|
|
#endregion
|
|
/// <summary>
|
|
/// 点击角色权限信息的方法
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
private void First(string Firstid)
|
|
{
|
|
id = Firstid;
|
|
Operatorflag = false;
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage9)//进行tabpage位置判断
|
|
{
|
|
GetExistingSettings(id);
|
|
}
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage8)//进行tabpage位置判断
|
|
{
|
|
SettingOperationLogs(null, null);
|
|
}
|
|
|
|
DataRow DR = PowerImpl.GetRoleRow(id);
|
|
if (DR == null) return;
|
|
string[] ReadPurview = DR["ReadPurview"].ToString().Trim().TrimEnd(',').Split(',');
|
|
string[] EditPurview = DR["EditPurview"].ToString().Trim().TrimEnd(',').Split(',');
|
|
GetNodeCheckedID(ReadPurview, EditPurview);
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(DR["id"] + "");
|
|
this.RoleOwnerControl.GridControl.DataSource = Roledetailed;
|
|
DataTable NEWTABLE = GetNewDt(Roledetailed);
|
|
this.gridControlEx1.GridControl.DataSource = NEWTABLE;
|
|
|
|
|
|
//this.treeList1.CollapseAll();
|
|
}
|
|
/// <summary>
|
|
/// 单击查询人员表里的数据
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnGridView2Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataRow mSelectRow = this.PeopleControlEx.GridView.GetFocusedDataRow();
|
|
operPositionAfter = this.PeopleControlEx.GridView.FocusedRowHandle.ToString();
|
|
if (mSelectRow != null)
|
|
{
|
|
id = mSelectRow["员工ID"] + "";
|
|
operPositionBefore = id;
|
|
Second(id);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击人员详细信息的方法
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
private void Second(string Secondid)
|
|
{
|
|
id = Secondid;
|
|
// 验证删除存储过程
|
|
string tipMsg = string.Empty;
|
|
try
|
|
{
|
|
|
|
DataSet ds = BaseImpl.getAuthorityByEmpid(1, id, "", "", out tipMsg);
|
|
string editPurview = ds.Tables.Count > 0 ? ds.Tables[0].Rows[0]["pid"] + "" : string.Empty;
|
|
string[] EditPurview = editPurview.Trim().TrimEnd(',').Split(',');
|
|
|
|
DataSet ds2 = BaseImpl.getAuthorityByEmpid(2, id, "", "", out tipMsg);
|
|
string readPurview = ds2.Tables.Count > 0 ? ds2.Tables[0].Rows[0]["pid"] + "" : string.Empty;
|
|
string[] ReadPurview = readPurview.Trim().TrimEnd(',').Split(',');
|
|
|
|
GetNodeCheckedID(ReadPurview, EditPurview);
|
|
Operatorflag = true;
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage9)//进行tabpage位置判断
|
|
{
|
|
GetExistingSettings(id);
|
|
}
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage8)//进行tabpage位置判断
|
|
{
|
|
SettingOperationLogs(null, null);
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//MessageUtil.Show("权限表无此人!");
|
|
this.PeopleControlEx.GridView.SelectRowHandler(0);
|
|
Second("1");
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 根据模块列的权限内容,判断是否打勾
|
|
/// </summary>
|
|
/// <param name="dataTable"></param>
|
|
/// <returns></returns>
|
|
public DataTable ReplaceDetailDataSource(DataTable dataTable)
|
|
{
|
|
DataTable newdt = dataTable.Clone();
|
|
int index = this.xtraTabControl1.SelectedTabPageIndex;//0为角色,1为人员
|
|
|
|
if (index == 0)
|
|
{
|
|
//角色对应的全部人员
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(id);
|
|
foreach (DataRow dr in dataTable.Rows)
|
|
{
|
|
string privilegeOper = dr["privilegeOper"] + "";
|
|
string privilegeView = dr["privilegeView"] + "";
|
|
newdt.Rows.Add(dr.ItemArray);
|
|
|
|
string Oper = "1";
|
|
string View = "1";
|
|
foreach (DataRow personnelDr in Roledetailed.Rows)
|
|
{
|
|
string personnelName = personnelDr["员工姓名"] + "";
|
|
if (Oper == "1") Oper = privilegeOper.Split(',').Contains(personnelName) ? "1" : "0";//主要有一个人对不上,后面就不会在接着判断;
|
|
if (View == "1") View = privilegeView.Split(',').Contains(personnelName) ? "1" : "0";
|
|
if (Oper == "0" && View == "0") break;
|
|
}
|
|
newdt.Rows[newdt.Rows.Count - 1]["OperValue"] = Oper;
|
|
newdt.Rows[newdt.Rows.Count - 1]["ViewValue"] = View;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
// BasicDt
|
|
//获得当前选中员工名字
|
|
string name = (employeetable.Select("员工ID='" + id + "'"))[0]["员工姓名"] + "";
|
|
foreach (DataRow dr in dataTable.Rows)
|
|
{
|
|
string privilegeOper = dr["privilegeOper"] + "";
|
|
privilegeOper = privilegeOper.Split(',').Contains(name) ? "1" : "0";
|
|
string privilegeView = dr["privilegeView"] + "";
|
|
privilegeView = privilegeView.Split(',').Contains(name) ? "1" : "0";
|
|
newdt.Rows.Add(dr.ItemArray);
|
|
newdt.Rows[newdt.Rows.Count - 1]["OperValue"] = privilegeOper;
|
|
newdt.Rows[newdt.Rows.Count - 1]["ViewValue"] = privilegeView;
|
|
}
|
|
}
|
|
|
|
return newdt;
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
/// <summary>
|
|
/// 点击保存权限
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btn_save_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(id))
|
|
{
|
|
MessageUtil.Show("请选中左侧人员或角色");
|
|
return;
|
|
}
|
|
WaitForm.ShowForm("权限保存中,请稍后...");
|
|
//保存人员和角色的权限信息
|
|
string readdate = string.Empty;
|
|
string Editdate = string.Empty;
|
|
GetListKeyID();
|
|
|
|
foreach (string item in readPurview)
|
|
{
|
|
readdate = readdate + item + ",";
|
|
}
|
|
foreach (string item in editPurview)
|
|
{
|
|
Editdate = Editdate + item + ",";
|
|
}
|
|
if (Operatorflag)
|
|
{
|
|
//人员 保存时会把当前人员对应的角色权限去掉
|
|
DataRow DR = PowerImpl.GeRoleOperRow(id);
|
|
|
|
DataTable dataTable = SqlHelper.ExecuteDataTable(string.Format(" select * from p_systemRoleOperSetTab where operatorid = '{0}'", id));
|
|
string roleRead = string.Empty;
|
|
string roleEdit = string.Empty;
|
|
|
|
foreach (DataRow item in dataTable.Rows)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(item["roleId"] + "") && !"0".Equals(item["roleId"] + ""))
|
|
{
|
|
string sql = string.Format(" select * from p_systemRoleSetTab where id='{0}'", item["roleId"]);
|
|
DataTable roleTable = SqlHelper.ExecuteDataTable(sql);
|
|
if (roleTable != null && roleTable.Rows.Count > 0)
|
|
{
|
|
roleRead += string.Format("{0},", roleTable.Rows[0]["ReadPurview"] + "");
|
|
roleEdit += string.Format("{0},", roleTable.Rows[0]["EditPurview"] + "");
|
|
}
|
|
}
|
|
}
|
|
string nreaddate = string.Empty;
|
|
string neditdate = string.Empty;
|
|
string[] roleReadArray = roleRead.Split(',');
|
|
string[] roleEditArray = roleEdit.Split(',');
|
|
foreach (string readdateStr in readdate.Split(','))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(readdateStr) && !roleReadArray.Contains(readdateStr))
|
|
{
|
|
nreaddate += string.Format("{0},", readdateStr);
|
|
}
|
|
}
|
|
foreach (string EditdateStr in Editdate.Split(','))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(EditdateStr) && !roleEditArray.Contains(EditdateStr))
|
|
{
|
|
neditdate += string.Format("{0},", EditdateStr);
|
|
}
|
|
}
|
|
//去除角色权限后在保存
|
|
if (PowerImpl.SaveRoleOperDate(id, DR["员工姓名"] + "", DR.Table.Columns.Contains("所属部门") ? DR["所属部门"] + "" : "", nreaddate, neditdate))
|
|
{
|
|
int rValue = savedata(int.Parse(id));
|
|
if (rValue == 1)
|
|
{
|
|
MessageUtil.Show("同步人员权限成功!");
|
|
}
|
|
else
|
|
{
|
|
MessageUtil.Show("同步人员权限失败!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//角色
|
|
if (PowerImpl.SaveRoleDate(id, readdate, Editdate))
|
|
{
|
|
|
|
int rValue = saveRoledata(int.Parse(id));
|
|
if (rValue == 0)
|
|
{
|
|
//在拥有权限的模块中生成权限分类 Editdate readdate
|
|
DataRow mSelectRow = this.RoleControlEx.GridView.GetFocusedDataRow();
|
|
string leftRoleName = mSelectRow["roleName"] + "";
|
|
PowerImpl.SetRolePermissionclassification(id, leftRoleName, ModulePermissionsControl.gridControl.DataSource as DataTable);
|
|
|
|
|
|
MessageUtil.Show("同步人员权限成功!");
|
|
}
|
|
else
|
|
{
|
|
MessageUtil.Show("同步人员权限失败!");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
finally
|
|
{
|
|
WaitForm.HideForm();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///// <summary>
|
|
///// <para>说明:分割条移动保存位置</para>
|
|
///// <para>创建人:龚宇超</para>
|
|
///// <para>创建日期:2018-03-06 </para>
|
|
///// <para>修改人:</para>
|
|
///// <para>修改日期:</para>
|
|
///// <para>修改备注:</para>
|
|
///// <para>版本:1.0</para>
|
|
///// </summary>
|
|
///// <param name="sender">The source of the event.</param>
|
|
///// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
//private void OnTopSplitterMoved(object sender, EventArgs e)
|
|
//{
|
|
// if (this._isInitFinish)
|
|
// {
|
|
// IniHelper.Write(string.Format("bill_width_{0}", this.SysModel.ModuleCode), this.ssc_main_top.SplitterPosition + "");
|
|
// }
|
|
//}
|
|
|
|
/// <summary>
|
|
/// 切换人员表默认选中第一行
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e)
|
|
{
|
|
|
|
if (xtraTabControl1.SelectedTabPage == xtraTabPage2)//进行tabpage位置判断
|
|
{
|
|
operPositionAfter = string.IsNullOrWhiteSpace(operPositionAfter) ? "0" : operPositionAfter;
|
|
operPositionBefore = string.IsNullOrWhiteSpace(operPositionBefore) ? employeetable.Rows[0]["员工ID"] + "" : operPositionBefore;
|
|
this.PeopleControlEx.GridView.SelectRowHandler(int.Parse(operPositionAfter));//设置默认选中行
|
|
Second(operPositionBefore);
|
|
|
|
}
|
|
if (xtraTabControl1.SelectedTabPage == xtraTabPage1)//进行tabpage位置判断
|
|
{
|
|
rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter;
|
|
if (Roletable.Rows.Count > 0)
|
|
{
|
|
rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? Roletable.Rows[0]["id"] + "" : rolePositionBefore;
|
|
First(rolePositionBefore);
|
|
}
|
|
else {
|
|
rolePositionBefore = "";
|
|
First("");
|
|
}
|
|
this.RoleControlEx.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行
|
|
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 删除人员权限
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btn_delete_Click(object sender, EventArgs e)
|
|
{
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(id);
|
|
//int[] Roledrows = this.gridControlEx3.GridView.GetSelectedRows();
|
|
DataRow[] Roledrows = this.RoleOwnerControl.GetViewFocusedDataRows();
|
|
foreach (DataRow Roledrow in Roledrows)
|
|
{
|
|
PowerImpl.deletRoleDate(Roledrow["员工ID"] + "", id);
|
|
savedata(int.Parse(Roledrow["员工ID"] + ""));
|
|
}
|
|
DataTable newRoledetailed = PowerImpl.GetWorkUsers(id);
|
|
this.RoleOwnerControl.GridControl.DataSource = newRoledetailed;
|
|
DataTable NEWTABLE = GetNewDt(newRoledetailed);
|
|
this.gridControlEx1.GridControl.DataSource = NEWTABLE;
|
|
PowerImpl.RefreshElementPermissions(id);
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:新增角色</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2019-06-24 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
void btn_Add_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
|
|
if (this.SysModel != null && !string.IsNullOrWhiteSpace(this.SysModel.MenuAddName))
|
|
{
|
|
this.AddPanelViewRecord();
|
|
return;
|
|
}
|
|
|
|
|
|
// 新增角色
|
|
FrmAddRole frmAddRole = new FrmAddRole();
|
|
frmAddRole.Text = "新增角色";
|
|
frmAddRole.LabelObj.Text = "请输入角色名称:";
|
|
if (frmAddRole.ShowDialog() == DialogResult.OK)
|
|
{
|
|
string RoleName = frmAddRole.RoleName;
|
|
|
|
DataRow mSelectRow = this.RoleControlEx.GridView.GetFocusedDataRow();
|
|
|
|
rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter;
|
|
// rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? "1" : rolePositionBefore;
|
|
rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? mSelectRow == null || string.IsNullOrWhiteSpace(mSelectRow["id"] + "") ? "1" : mSelectRow["id"] + "" : rolePositionBefore;
|
|
if (PowerImpl.intnewOper(RoleName))
|
|
{
|
|
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
|
|
this.RoleControlEx.GridControl.DataSource = Roletable;
|
|
this.RoleControlEx.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行
|
|
if (Roletable.Rows.Count > 0)
|
|
{
|
|
First(rolePositionBefore);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
//MessageUtil.Show(ex.Message);
|
|
LogUtil.WriteError("角色添加模块", ex);
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <para>说明:弹出添加数据</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-01-31 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void AddPanelViewRecord()
|
|
{
|
|
string mLeftFieldId = string.Empty;
|
|
string mLeftFieldName = string.Empty;
|
|
string mLeftTreeData = string.Empty;
|
|
string mLeftGridData = string.Empty;
|
|
try
|
|
{
|
|
if (this.SysModel.MenuAddName.Equals("Lskj.PubAdd4.dll", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
string url = string.Format("pages/app/app.html?username={0}&password={1}&xtype={2}&dllcoid=", ERPInfo.Instance.UserName, ERPInfo.Instance.Password, this.SysModel.BsAdddllname);
|
|
// 固定传入参数(窗口标题、操作员ID、操作员名称、权限、模版编号)
|
|
string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, "", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", "purview001").Split('~');
|
|
string[] menuArgs = new string[] { "", "", url };
|
|
string[] args = defaultArgs.Concat(menuArgs).ToArray();
|
|
IForm form = FormHelper.LoadDllForm(ResourceDynamic.PubBrower, args);
|
|
form.SubForm.WindowState = FormWindowState.Maximized;
|
|
DialogResult result = form.SubForm.ShowDialog();
|
|
}
|
|
else
|
|
{
|
|
// 固定传入参数(窗口标题、操作员ID、操作员名称、权限、模版编号)
|
|
string unionKey = string.Empty, unionValue = string.Empty;
|
|
string maintabFocusedRowJson = "";
|
|
|
|
|
|
string[] defaultArgs = string.Format(ModuleArgs.DefaultArgs, "", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", "purview001").Split('~');
|
|
string[] menuArgs = { string.Format(ModuleArgs.PubAddArgs, ""), "0", "", mLeftFieldId, mLeftFieldName, "", "1", "", "", mLeftGridData == null ? mLeftTreeData : mLeftGridData, unionKey, unionValue };
|
|
string[] maintabFocusedRowArg = { maintabFocusedRowJson };
|
|
string[] args = defaultArgs.Concat(menuArgs).ToArray();
|
|
args = args.Concat(maintabFocusedRowArg).ToArray();
|
|
IForm form = FormHelper.LoadDllForm((this.SysModel.MenuAddName).ToLower().StartsWith("lskj.pubadd") ? ResourceDynamic.PubAdd : this.SysModel.MenuAddName, args);
|
|
|
|
//form.SubForm.Show();
|
|
DialogResult result = form.SubForm.ShowDialog();
|
|
if (result == DialogResult.OK)
|
|
{
|
|
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
|
|
this.RoleControlEx.GridControl.DataSource = Roletable;
|
|
}
|
|
|
|
form.SubForm.Dispose();
|
|
form = null;
|
|
GC.Collect();
|
|
GC.WaitForPendingFinalizers();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 删除角色权限
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btn_deleteRole_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
//int[] Roledrows = this.gridControlEx2.GridView.GetSelectedRows();
|
|
DataRow[] Roledrows = this.RoleControlEx.GetViewFocusedDataRows();
|
|
int index = Roledrows.Length > 0 ? this.RoleControlEx.GridView.GetRowHandle(Roledrows[0].Table.Rows.IndexOf(Roledrows[0])) : 0;
|
|
if (Roledrows.Length < 1)
|
|
return;
|
|
DialogResult result = MessageUtil.Show(string.Format(ResourceKeys.DeleteRows, Roledrows.Length), MessageBoxButtons.YesNo);
|
|
if (result == DialogResult.Yes)
|
|
{
|
|
DialogResult resultNew = MessageUtil.Show("是否删除当前选中角色下的所有人员角色权限?", MessageBoxButtons.YesNo);
|
|
if (resultNew == DialogResult.Yes)
|
|
{
|
|
StringBuilder msgString = new StringBuilder();
|
|
foreach (DataRow RoleRow in Roledrows)
|
|
{
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(RoleRow["id"] + "");
|
|
if (Roledetailed.Rows.Count > 0 && SystemInfo.Instance.HiddenUrl)
|
|
{
|
|
msgString.Append(string.Format("{0},", RoleRow["roleName"] + ""));
|
|
continue;
|
|
}
|
|
//PowerImpl.deletRoleoperDate(Roletable.Rows[num]["id"] + "");
|
|
PowerImpl.deletRoleoperDate(RoleRow["id"] + "");
|
|
PowerImpl.deletPermissionClassification(RoleRow["id"] + "");
|
|
saveRoledata(int.Parse(id));
|
|
}
|
|
if (!string.IsNullOrEmpty(msgString.ToString()))
|
|
{
|
|
MessageUtil.Show(string.Format("角色{0}下方有人员,不允许删除!", msgString.ToString().TrimEnd(',')));
|
|
}
|
|
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
|
|
this.RoleControlEx.GridControl.DataSource = Roletable;
|
|
if (Roletable.Rows.Count > 0)
|
|
{
|
|
if (Roletable.Rows.Count > index)
|
|
{
|
|
this.RoleControlEx.GridView.SelectRowHandler(index);//设置默认选中行
|
|
First(Roletable.Rows[index]["id"] + "");
|
|
}
|
|
else
|
|
{
|
|
this.RoleControlEx.GridView.SelectRowHandler(Roletable.Rows.Count - 1);//设置默认选中行
|
|
First(Roletable.Rows[Roletable.Rows.Count - 1]["id"] + "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogUtil.WriteError("删除角色权限出错!", ex);
|
|
//MessageUtil.Show("删除角色权限出错!" + ex);
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// 复制角色和权限到新建角色中
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnBtn_copyRole_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DataRow focuedRow = this.RoleControlEx.GridView.GetFocusedDataRow();
|
|
string id = focuedRow["id"] + "";
|
|
string selectSqlStr = string.Format("select * from p_systemRoleSetTab where id= '{0}'", id);
|
|
DataRow copyRow = BaseImpl.GetDataRowResult(selectSqlStr);
|
|
if (copyRow == null)
|
|
{
|
|
MessageUtil.Show("请选择一行数据!");
|
|
}
|
|
else
|
|
{
|
|
FrmAddRole frmAddRole = new FrmAddRole();
|
|
frmAddRole.Text = "复制角色";
|
|
frmAddRole.LabelObj.Text = "请输入复制角色名称:";
|
|
if (frmAddRole.ShowDialog() == DialogResult.OK)
|
|
{
|
|
string RoleName = frmAddRole.RoleName;
|
|
//复制角色
|
|
string insertSql = "insert into p_systemRoleSetTab ({0}) values ({1})";
|
|
string copyKeys = string.Empty;
|
|
string copyValues = string.Empty;
|
|
foreach (DataColumn col in copyRow.Table.Columns)
|
|
{
|
|
if (col.ColumnName.Equals("id"))
|
|
continue;
|
|
copyKeys += string.Format("{0},", col.ColumnName);
|
|
if (col.ColumnName.Equals("roleName"))
|
|
copyValues += string.Format("'{0}',", RoleName);
|
|
else
|
|
copyValues += string.Format("'{0}',", (copyRow[col] + "").Replace("'", "''"));
|
|
}
|
|
insertSql = string.Format(insertSql, copyKeys.TrimEnd(','), copyValues.TrimEnd(','));
|
|
SqlHelper.ExecuteNonQuery(insertSql);
|
|
string newRoleId = SqlHelper.ExecuteScalar(string.Format("select ident_current('{0}')", "p_systemRoleSetTab")) + "";
|
|
//复制人员
|
|
DataTable copyRoleOwnerTable = SqlHelper.ExecuteDataTable(string.Format(@"select * from p_systemRoleOperSetTab ro right join p_employeetab emp on ro.roleOperatorId=emp.employeeid where ISNULL(emp.sign, 0) = 0 and roleId='{0}'", id));//查询复制角色人员表
|
|
string roleColumnsNameSql = string.Format("select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '{0}'", "p_systemRoleOperSetTab");
|
|
DataTable roleColumnsTab = SqlHelper.ExecuteDataTable(roleColumnsNameSql);
|
|
foreach (DataRow copyRoleRow in copyRoleOwnerTable.Rows)
|
|
{
|
|
insertSql = "insert into p_systemRoleOperSetTab ({0}) values ({1})";
|
|
copyKeys = string.Empty;
|
|
copyValues = string.Empty;
|
|
foreach (DataRow roleColNameRow in roleColumnsTab.Rows)
|
|
{
|
|
string colName = roleColNameRow["column_name"] + "";
|
|
if (colName.Equals("id"))
|
|
continue;
|
|
copyKeys += string.Format("{0},", colName);
|
|
if (colName.Equals("roleId"))
|
|
copyValues += string.Format("'{0}',", newRoleId);
|
|
else
|
|
copyValues += string.Format("'{0}',", (copyRoleRow[colName] + "").Replace("'", "''"));
|
|
}
|
|
insertSql = string.Format(insertSql, copyKeys.TrimEnd(','), copyValues.TrimEnd(','));
|
|
SqlHelper.ExecuteNonQuery(insertSql);
|
|
}
|
|
//刷新角色数据
|
|
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
|
|
this.RoleControlEx.GridControl.DataSource = Roletable;
|
|
this.RoleControlEx.GridView.SelectRowHandler(Roletable.Rows.Count - 1);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
|
|
//角色权限复制
|
|
private void btn_CopyPermissions_Click(object sender, EventArgs e)
|
|
{
|
|
DataRow focuedRow = this.RoleControlEx.GridView.GetFocusedDataRow();
|
|
string id = focuedRow["id"] + "";
|
|
string selectSqlStr = string.Format("select * from p_systemRoleSetTab where id= '{0}'", id);
|
|
DataRow copyRow = BaseImpl.GetDataRowResult(selectSqlStr);
|
|
if (copyRow == null)
|
|
{
|
|
MessageUtil.Show("请选择一行数据!");
|
|
}
|
|
else
|
|
{
|
|
FrmCopyPermission frmCopyPermission = new FrmCopyPermission(id);
|
|
frmCopyPermission.ShowDialog();
|
|
}
|
|
|
|
}
|
|
|
|
/// 设置父节点的状态
|
|
private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, Object check, Object obj)
|
|
{
|
|
if (node.ParentNode != null)
|
|
{
|
|
bool b = false;
|
|
int state;
|
|
for (int i = 0; i < node.ParentNode.Nodes.Count; i++)
|
|
{
|
|
state = (int)(node.ParentNode.Nodes[i].GetValue(obj));
|
|
if ((int)check != state)
|
|
{
|
|
b = !b;
|
|
break;
|
|
}
|
|
}
|
|
node.ParentNode.SetValue(obj, b ? CheckState.Indeterminate : check);
|
|
SetCheckedParentNodes(node.ParentNode, check, obj);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 复制权限
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btn_copy_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
FrmPermissionToCopy frmPermissionToCopy = new FrmPermissionToCopy();
|
|
if (frmPermissionToCopy.ShowDialog() == DialogResult.OK)
|
|
{
|
|
List<string> copyReadPurview = frmPermissionToCopy.readPurview;
|
|
List<string> copyEditPurview = frmPermissionToCopy.editPurview;
|
|
GetListKeyID();
|
|
|
|
//并集
|
|
string[] readPurviewUnion = readPurview.Union(copyReadPurview).ToList().ToArray();
|
|
string[] editPurviewUnion = editPurview.Union(copyEditPurview).ToList().ToArray();
|
|
|
|
GetNodeCheckedID(readPurviewUnion, editPurviewUnion);
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//清空
|
|
private void btn_empty_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string[] Read = { };
|
|
string[] Edit = { };
|
|
GetNodeCheckedID(Read, Edit);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 添加操作日志表默认列
|
|
/// </summary>
|
|
public void operationLogColumns()
|
|
{
|
|
|
|
GridColumn coidColumn = new GridColumn();
|
|
coidColumn.Caption = "模块编号";
|
|
coidColumn.FieldName = "coid";
|
|
coidColumn.Visible = true;
|
|
coidColumn.VisibleIndex = 0;
|
|
coidColumn.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn typeColumn = new GridColumn();
|
|
typeColumn.Caption = "操作类型";
|
|
typeColumn.FieldName = "type";
|
|
typeColumn.Visible = true;
|
|
typeColumn.VisibleIndex = 1;
|
|
typeColumn.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn contentColumn = new GridColumn();
|
|
contentColumn.Caption = "内容";
|
|
contentColumn.FieldName = "content";
|
|
contentColumn.Visible = true;
|
|
contentColumn.VisibleIndex = 2;
|
|
contentColumn.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn objectColumn = new GridColumn();
|
|
objectColumn.Caption = "具体内容";
|
|
objectColumn.FieldName = "object";
|
|
objectColumn.Visible = true;
|
|
objectColumn.VisibleIndex = 3;
|
|
objectColumn.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn stdtColumn = new GridColumn();
|
|
stdtColumn.Caption = "时间";
|
|
stdtColumn.FieldName = "stdt";
|
|
stdtColumn.Visible = true;
|
|
stdtColumn.VisibleIndex = 4;
|
|
stdtColumn.OptionsColumn.AllowEdit = false;
|
|
stdtColumn.Width = 150;
|
|
|
|
RepositoryItemDateEdit dateEdit = new RepositoryItemDateEdit();
|
|
dateEdit.DisplayFormat.FormatString = dateEdit.EditFormat.FormatString = dateEdit.Mask.EditMask = "yyyy-MM-dd HH:mm:ss";
|
|
dateEdit.DisplayFormat.FormatType = dateEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom;
|
|
dateEdit.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;
|
|
dateEdit.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True;
|
|
|
|
stdtColumn.ColumnEdit = dateEdit;
|
|
|
|
|
|
GridColumn operatorColumn = new GridColumn();
|
|
operatorColumn.Caption = "操作人员";
|
|
operatorColumn.FieldName = "operator";
|
|
operatorColumn.Visible = true;
|
|
operatorColumn.VisibleIndex = 5;
|
|
operatorColumn.OptionsColumn.AllowEdit = false;
|
|
|
|
GridColumn wsColumn = new GridColumn();
|
|
wsColumn.Caption = "操作电脑名";
|
|
wsColumn.FieldName = "ws";
|
|
wsColumn.Visible = true;
|
|
wsColumn.VisibleIndex = 6;
|
|
wsColumn.OptionsColumn.AllowEdit = false;
|
|
wsColumn.Width = 120;
|
|
|
|
this.LogControl.GridView.Columns.AddRange(new GridColumn[] {
|
|
coidColumn,
|
|
typeColumn,
|
|
contentColumn,
|
|
objectColumn,
|
|
stdtColumn,
|
|
operatorColumn,
|
|
wsColumn
|
|
});
|
|
|
|
//设置·搜索框中的时间
|
|
this.start_lde.DateFormat("yyyy-MM-dd");
|
|
this.end_lde.DateFormat("yyyy-MM-dd");
|
|
DateTime currentTime = DateTime.Now;
|
|
string startTime = currentTime.AddDays(1 - currentTime.Day).ToString("yyyy-MM-dd");//当月第一天
|
|
string endTime = currentTime.AddDays(1 - currentTime.Day).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");//当月最后一天
|
|
this.start_lde.EditText = startTime;
|
|
this.end_lde.EditText = endTime;
|
|
// start_lde.TextEdit.TextChanged += new EventHandler(SettingOperationLogs);
|
|
// end_lde.TextEdit.TextChanged += new EventHandler(SettingOperationLogs);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获得操作信息
|
|
/// </summary>
|
|
public void SettingOperationLogs(object sender, EventArgs e)
|
|
{
|
|
|
|
List<string> names = new List<string>();
|
|
string startTime = this.start_lde.EditText;
|
|
string endTime = this.end_lde.EditText;
|
|
|
|
|
|
|
|
if (Operatorflag)
|
|
{
|
|
//人员
|
|
string name = (employeetable.Select("员工ID='" + id + "'"))[0]["员工姓名"] + "";
|
|
names.Add(name);
|
|
}
|
|
else
|
|
{
|
|
//角色
|
|
DataTable Roledetailed = this.RoleOwnerControl.GridControl.DataSource as DataTable;
|
|
if (Roledetailed != null)
|
|
{
|
|
foreach (DataRow personnelDr in Roledetailed.Rows)
|
|
{
|
|
string personnelName = personnelDr["员工姓名"] + "";
|
|
names.Add(personnelName);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if (names.Count > 0)
|
|
{
|
|
string conditions = string.Empty;
|
|
if (names.Count > 1)
|
|
{
|
|
string fullName = string.Empty;
|
|
for (int i = 0; i <= names.Count - 1; i++)
|
|
{
|
|
fullName = fullName + "'" + names[i] + "',";
|
|
}
|
|
|
|
conditions = string.Format("where operator in ({0}) ", fullName.Trim(','));
|
|
}
|
|
else
|
|
{
|
|
conditions = string.Format("where operator='{0}'", names[0]);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(startTime)) conditions = conditions + string.Format(" and stdt >= '{0}' ", startTime);
|
|
if (!string.IsNullOrWhiteSpace(endTime))
|
|
{
|
|
conditions = conditions + string.Format("and '{0}' >= stdt ", endTime + " 23:59:59");
|
|
}
|
|
DataTable dataTable = SqlHelper.ExecuteDataTable(string.Format("select coid,systemtmp,[type],content,[object],stdt,operator,ws from p_logTab {0}", conditions));
|
|
this.LogControl.gridControl.DataSource = dataTable;
|
|
}
|
|
else
|
|
{
|
|
this.LogControl.gridControl.DataSource = null;
|
|
}
|
|
|
|
}
|
|
|
|
//员工日志点击查询
|
|
private void btn_query_Click(object sender, EventArgs e)
|
|
{
|
|
string startTime = this.start_lde.EditText;
|
|
string endTime = this.end_lde.EditText;
|
|
string enterName = this.name_lde.EditText;
|
|
string sql = string.Empty;
|
|
|
|
string conditions = string.Empty;
|
|
if (!string.IsNullOrWhiteSpace(startTime)) conditions = string.Format(" and stdt >= '{0}' ", startTime);
|
|
if (!string.IsNullOrWhiteSpace(endTime))
|
|
{
|
|
conditions = conditions + string.Format("and '{0}' >= stdt ", endTime + " 23:59:59");
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(enterName))
|
|
{
|
|
sql = string.Format("select coid,systemtmp,[type],content,[object],stdt,operator,ws from p_logTab where 1=1 {0} ", conditions);
|
|
}
|
|
else
|
|
{
|
|
sql = string.Format("select coid,systemtmp,[type],content,[object],stdt,operator,ws from p_logTab where operator like '%{1}%' {0}", conditions, enterName);
|
|
}
|
|
|
|
DataTable dataTable = SqlHelper.ExecuteDataTable(sql);
|
|
this.LogControl.gridControl.DataSource = dataTable;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击导出按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btn_export_Click(object sender, EventArgs e)
|
|
{
|
|
this.LogControl.GridControl.ToExcel("操作日志");
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:用户值改变后</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2019-06-24 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The sender.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void OnSearchMoudleEditValueChanged(object sender, EventArgs e)
|
|
{
|
|
string searchStr = this.searchModuleLab.EditText;
|
|
if (!string.IsNullOrEmpty(searchStr))
|
|
{
|
|
this.moduleControl.GridView.ActiveFilter.Add(null, new DevExpress.XtraGrid.Columns.ColumnFilterInfo(string.Format("MenuCaption like '%{0}%' or PurviewId like '%{0}%'", searchStr)));
|
|
}
|
|
else
|
|
{
|
|
this.moduleControl.GridView.ActiveFilter.Clear();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化审核权限
|
|
/// </summary>
|
|
private void generateModuleColumns()
|
|
{
|
|
try
|
|
{
|
|
|
|
this.moduleControl.GridView.Columns.AddVisible("MenuCaption", "模块名");
|
|
this.Directory.SelectedValueChanged += new EventHandler(DirectoryValueChanged);
|
|
this.Directory.SelectedIndex = 0;
|
|
|
|
this.moduleControl.GridView.Click += new EventHandler(OnModuleGridViewClick);
|
|
int height = this.frmWork1.choosePanel.Height;
|
|
this.panelControl12.Height = height;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 改变一级目录,加载对应的二级目录
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void DirectoryValueChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string text = (this.Directory.EditValue + "").Split('.')[0];
|
|
string where = "";
|
|
if (!string.IsNullOrWhiteSpace(text)) where = string.Format("and SubSysId={0}", text);
|
|
string sql = @"select PurviewId,MenuCaption,DllFileName ,SubSysId
|
|
from
|
|
(
|
|
SELECT
|
|
a.MenuId,a.SubSysId, a.MenuStruct,'01'+case when a.SubSysId>9 then cast(a.SubSysId as varchar(10)) else '0'+cast(a.SubSysId as varchar(10)) end+a.MenuStruct as speciesno,
|
|
a.MenuCaption,a.MouseOutImg
|
|
,case when a.DllFileName in ('Lskj.PubAccraditation.dll','Lskj.PubAccraditation2.dll') then 'Lskj.PubBill.dll' when a.DllFileName='Lskj.BaseAccraditation.dll' then 'Lskj.PubModule.dll' else '' end as DllFileName
|
|
,a.UrlParams,a.PurviewId,a.ParentMenuId,a.PurviewId as DllCode
|
|
FROM P_FormMenuConfigTab a with(nolock)
|
|
join P_FormMenuConfigTab aa with(nolock) on a.SubSysId=aa.SubSysId and LEFT(a.MenuStruct,2)=aa.MenuStruct
|
|
where 1=1 and len(a.MenuStruct)=4 and a.useFlag=1 and aa.useFlag=1
|
|
and a.dllfilename in ( 'Lskj.PubAccraditation.dll','Lskj.PubAccraditation2.dll','Lskj.BaseAccraditation.dll')
|
|
) a where 1=1 ";
|
|
sql = sql + where;
|
|
DataTable dataTable = SqlHelper.ExecuteDataTable(sql);
|
|
this.moduleControl.gridControl.DataSource = dataTable;
|
|
this.moduleControl.GridView.BestFitColumns();//设置根据内容填充列宽
|
|
if (dataTable.Rows.Count > 0)
|
|
{
|
|
OnModuleGridViewClick(null, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 选中模块后加载对应的审核信息
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnModuleGridViewClick(object sender, EventArgs e)
|
|
{
|
|
DataRow mSelectRow = this.moduleControl.GridView.GetFocusedDataRow();
|
|
if (mSelectRow != null)
|
|
{
|
|
string PurviewId = mSelectRow["PurviewId"] + "";
|
|
string DllFileName = mSelectRow["DllFileName"] + "";
|
|
bool Basis = !DllFileName.Equals("Lskj.PubBill.dll", StringComparison.CurrentCultureIgnoreCase);
|
|
this.frmWork1.InitializeControl(PurviewId, Basis);
|
|
}
|
|
}
|
|
|
|
#region 快捷通道设置
|
|
|
|
#region 私有字段
|
|
/// <summary>
|
|
/// 复选框字段名称
|
|
/// </summary>
|
|
private string _checkFieldName = "_check";
|
|
/// <summary>
|
|
/// The _id
|
|
/// </summary>
|
|
private string _id = "_id";
|
|
#endregion
|
|
#region 公有字段
|
|
|
|
|
|
/// <summary>
|
|
/// 分割条位置
|
|
/// </summary>
|
|
public int PositionSplitter;
|
|
/// <summary>
|
|
/// 分割条位置
|
|
/// </summary>
|
|
public int WindowHeight;
|
|
/// <summary>
|
|
/// 选中人员id
|
|
/// </summary>
|
|
public string employeeId;
|
|
|
|
/// <summary>
|
|
/// 全部的快捷设置
|
|
/// </summary>
|
|
public DataTable AllShortcutSettings;
|
|
/// <summary>
|
|
/// 人员id或者角色id
|
|
/// </summary>
|
|
public string EmployeeID;
|
|
|
|
|
|
#endregion
|
|
/// <summary>
|
|
/// 初始化快捷通道设置
|
|
/// </summary>
|
|
public void FastPassageInitialize()
|
|
{
|
|
|
|
this.AllQuickControlEx.GridView.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
|
|
GridDragGrid dragGrid = new GridDragGrid(this.AllQuickControlEx.GridView, this.QuickOperationControlEx.GridView);
|
|
GridDragGrid backdragGrid = new GridDragGrid(this.QuickOperationControlEx.GridView, this.AllQuickControlEx.GridView);
|
|
GridDragGrid dragGridNew = new GridDragGrid(this.AllQuickControlEx.GridView, this.QuickReportFormControlEx.GridView);
|
|
GridDragGrid backdragGridNew = new GridDragGrid(this.QuickReportFormControlEx.GridView, this.AllQuickControlEx.GridView);
|
|
|
|
//加载复选框
|
|
GridDragGrid.GridAddCheckBox(this.AllQuickControlEx.GridView);
|
|
GridDragGrid.GridAddCheckBox(this.QuickOperationControlEx.GridView);
|
|
GridDragGrid.GridAddCheckBox(this.QuickReportFormControlEx.GridView);
|
|
|
|
this.QuickOperationControlEx.GridView.OptionsSelection.EnableAppearanceFocusedCell = false;
|
|
this.QuickReportFormControlEx.GridView.OptionsSelection.EnableAppearanceFocusedCell = false;
|
|
//this.Resize += new System.EventHandler(maximization);
|
|
this.splitMain_Right.SplitterMoved += new EventHandler(PositionChange);
|
|
|
|
InitControls();
|
|
|
|
}
|
|
|
|
|
|
|
|
#region 方法
|
|
|
|
#region 获取选择人员已有的快捷通道设置
|
|
public void GetExistingSettings(string UserId)
|
|
{
|
|
if (this.groupBox1.Width != this.groupBox2.Width)
|
|
{
|
|
this.groupBox1.Width = this.groupBox2.Width = (this.groupBox1.Width + this.groupBox2.Width) / 2;
|
|
}
|
|
|
|
if (Operatorflag)
|
|
{
|
|
AllShortcutSettings = MainImpl.newGetGallerysByUserId(UserId);
|
|
}
|
|
else
|
|
{
|
|
AllShortcutSettings = MainImpl.GetGallerysByRoleId(UserId);
|
|
}
|
|
DataRow[] OperatingDr = AllShortcutSettings.Select("grouptagid=1");
|
|
DataRow[] ReportDr = AllShortcutSettings.Select("grouptagid=2");
|
|
|
|
DataTable OperatingDt = AllShortcutSettings.Clone();
|
|
DataTable ReportDt = AllShortcutSettings.Clone();
|
|
|
|
if (OperatingDr != null && OperatingDr.Length > 0)
|
|
{
|
|
foreach (DataRow row in OperatingDr)
|
|
{
|
|
OperatingDt.ImportRow(row);
|
|
}
|
|
|
|
}
|
|
if (ReportDr != null && ReportDr.Length > 0)
|
|
{
|
|
foreach (DataRow row in ReportDr)
|
|
{
|
|
ReportDt.ImportRow(row);
|
|
}
|
|
|
|
}
|
|
this.QuickOperationControlEx.gridControl.DataSource = OperatingDt;
|
|
this.QuickReportFormControlEx.gridControl.DataSource = ReportDt;
|
|
OnGridLeftGridViewClick(null, null);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 上方数据勾选,下方增加
|
|
public void AccessPermissions(DataRow rowItem, string grouptagid)
|
|
{
|
|
DataRow dr = AllShortcutSettings.NewRow();
|
|
dr["LMenuid"] = rowItem["LMenuid"] + "";
|
|
dr["PurviewId"] = rowItem["PurviewId"] + "";
|
|
dr["ObjDll"] = rowItem["DllFilename"] + "";
|
|
dr["DllShowCaption"] = rowItem["DllShowCaption"] + "";
|
|
dr["Lsubsysid"] = (this.PrimaryDirectory.EditValue + "").Split('.')[0];
|
|
dr["GroupTagid"] = grouptagid;
|
|
dr["EmployeeID"] = id;
|
|
dr["LinkModeTag"] = "1";
|
|
dr["orderid"] = "0";
|
|
|
|
//数据源如果原本不存在选中行,则增加
|
|
if ((AllShortcutSettings.Rows.Cast<DataRow>().Where(x => x["LMenuid"] + "" == dr["LMenuid"] + "" && x["PurviewId"] + "" == dr["PurviewId"] + "")).Count() == 0)
|
|
{
|
|
this.AllShortcutSettings.Rows.Add(dr);
|
|
if (grouptagid.Equals("1"))
|
|
{
|
|
DataTable QoDt = this.QuickOperationControlEx.gridControl.DataSource as DataTable;
|
|
QoDt.Rows.Add(dr.ItemArray);
|
|
}
|
|
else
|
|
{
|
|
DataTable QrDt = this.QuickReportFormControlEx.gridControl.DataSource as DataTable;
|
|
QrDt.Rows.Add(dr.ItemArray);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 下方数据删除,上方取消勾选
|
|
public void RemovePermissions(DataRow rowItem)
|
|
{
|
|
string menuid = rowItem["LMenuid"] + "";
|
|
DataRow[] dr = AllShortcutSettings.Select(string.Format("LMenuid='{0}' and EmployeeID='{1}'", menuid, id));
|
|
if (dr.Length == 1)
|
|
{
|
|
AllShortcutSettings.Rows.Remove(dr[0]);
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 设置分割条位置
|
|
/// <summary>
|
|
/// <para>说明:设置分割条位置</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
protected void InitlizeSpiltLocation()
|
|
{
|
|
try
|
|
{
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Instance.WriteError(ex);
|
|
MessageUtil.Show(ex);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取选中行数据
|
|
/// <summary>
|
|
/// <para>说明:获取选中行数据</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <returns>DataRow[].</returns>
|
|
public DataRow[] GetViewFocusedDataRows(GridView gridView)
|
|
{
|
|
int[] rows = gridView.GetSelectedRows();
|
|
DataRow[] dataRows = new DataRow[rows.Length];
|
|
for (int i = 0; i < rows.Length; i++)
|
|
{
|
|
dataRows[i] = gridView.GetDataRow(rows[i]);
|
|
}
|
|
return dataRows;
|
|
}
|
|
#endregion
|
|
#region 刷新左侧树数据
|
|
/// <summary>
|
|
/// 点击二级目录,加载具体模块
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnGridLeftGridViewClick(object sender, EventArgs e)
|
|
{
|
|
DataRow mSelectRow = this.gridLeft.GridView.GetFocusedDataRow();
|
|
if (mSelectRow != null)
|
|
{
|
|
string sql = string.Format("select MenuId as LMenuid,MenuCaption as DllShowCaption,PurviewId,subsysid,Menustruct,DllFilename from P_FormMenuConfigTab where subsysid='{0}' and left(menustruct,2)='{1}' and menustruct!='{1}' and useFlag='1' and len(menustruct)=4 ", mSelectRow["subsysid"] + "", mSelectRow["menustruct"] + "");
|
|
DataTable Alldt = SqlHelper.ExecuteDataTable(sql);
|
|
|
|
string menuid = string.Empty;
|
|
string purviewId = string.Empty;
|
|
//DataTable HasBeenSetDt = Alldt.Clone();//已设置快捷通道的模块
|
|
List<string> primaryKeys = new List<string>();
|
|
//DataTable IsNotSetDt = Alldt.Clone();//为设置快捷通道的模块
|
|
for (int i = 0; i < Alldt.Rows.Count; i++)
|
|
{
|
|
menuid = Alldt.Rows[i]["LMenuid"] + "";
|
|
purviewId = Alldt.Rows[i]["purviewId"] + "";
|
|
if (string.IsNullOrWhiteSpace(menuid)) continue;
|
|
|
|
//判断已有的快捷通道设置中是否有当前模块id
|
|
if (AllShortcutSettings!=null&&(AllShortcutSettings.Rows.Cast<DataRow>().Where(x => x["LMenuid"] + "" == menuid && x["PurviewId"] + "" == purviewId)).Count() > 0)
|
|
{
|
|
//HasBeenSetDt.Rows.Add(Alldt.Rows[i].ItemArray);
|
|
primaryKeys.Add(Alldt.Rows[i]["LMenuid"] + "");
|
|
}
|
|
else
|
|
{
|
|
//IsNotSetDt.Rows.Add(Alldt.Rows[i].ItemArray);
|
|
}
|
|
}
|
|
|
|
//this.AllQuickControlEx.gridControl.DataSource = IsNotSetDt;
|
|
this.AllQuickControlEx.gridControl.DataSource = Alldt;
|
|
for (int i = 0; i < Alldt.Rows.Count; i++)
|
|
{
|
|
if (primaryKeys.Contains(Alldt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.SelectRow(i);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
#region 创建界面
|
|
/// <summary>
|
|
/// <para>说明:创建界面</para>
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-07-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="menuCode">The menu code.</param>
|
|
public void InitControls()
|
|
{
|
|
try
|
|
{
|
|
string sql = @" Create Table P_RoleShortcut -- 角色快捷通道表
|
|
(
|
|
Id int identity(1,1) primary key, -- 分类ID,主键,自动增长
|
|
EmployeeID int not null, -- 角色编号
|
|
GroupTagid int not null, -- 1为操作 2为报表
|
|
ItemTagid int not null, --
|
|
ObjDll varchar(50) not null, --dll名
|
|
DllShowCaption varchar(50) not null, --模块名字
|
|
LinkModeTag int not null, --cs端为1 手机段为2
|
|
LMenuid int not null, --Menuid
|
|
Lsubsysid int not null, --1级目录id
|
|
orderid int, --cs段默认0
|
|
UrlParams varchar(50), --默认空
|
|
)";
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
catch { }
|
|
|
|
PositionSplitter = this.splitMain_Right.SplitterPosition;
|
|
WindowHeight = this.Height;
|
|
this.gridLeft.Visible = true;
|
|
this.InitlizeSpiltLocation();//设置分割条位置
|
|
|
|
|
|
|
|
GridColumn treeListColumnName = new GridColumn();
|
|
treeListColumnName.Caption = "菜单名称";
|
|
treeListColumnName.FieldName = "DllShowCaption";
|
|
treeListColumnName.MinWidth = 38;
|
|
treeListColumnName.Visible = true;
|
|
treeListColumnName.VisibleIndex = 0;
|
|
treeListColumnName.Width = 300;
|
|
|
|
GridColumn treeListColumnMenuId = new GridColumn();
|
|
treeListColumnMenuId.Caption = "菜单id";
|
|
treeListColumnMenuId.FieldName = "LMenuid";
|
|
treeListColumnMenuId.Visible = true;
|
|
treeListColumnMenuId.VisibleIndex = 1;
|
|
|
|
GridColumn treeListColumnModuleId = new GridColumn();
|
|
treeListColumnModuleId.Caption = "模块编号";
|
|
treeListColumnModuleId.FieldName = "PurviewId";
|
|
treeListColumnModuleId.Visible = true;
|
|
treeListColumnModuleId.VisibleIndex = 2;
|
|
|
|
|
|
|
|
this.AllQuickControlEx.GridView.Columns.AddRange(new GridColumn[] {
|
|
treeListColumnName,
|
|
treeListColumnMenuId,
|
|
treeListColumnModuleId
|
|
});
|
|
|
|
|
|
|
|
this.QuickOperationControlEx.GridView.Columns.AddVisible("DllShowCaption", "菜单名称");
|
|
this.QuickOperationControlEx.GridView.Columns.AddVisible("LMenuid", "菜单id");
|
|
this.QuickOperationControlEx.GridView.Columns.AddVisible("PurviewId", "模块编号");
|
|
this.QuickOperationControlEx.GridView.Columns["DllShowCaption"].Width = 200;
|
|
|
|
this.QuickReportFormControlEx.GridView.Columns.AddVisible("DllShowCaption", "菜单名称");
|
|
this.QuickReportFormControlEx.GridView.Columns.AddVisible("LMenuid", "菜单id");
|
|
this.QuickReportFormControlEx.GridView.Columns.AddVisible("PurviewId", "模块编号");
|
|
this.QuickReportFormControlEx.GridView.Columns["DllShowCaption"].Width = 200;
|
|
|
|
|
|
this.SettingOperation.Click += new EventHandler(OnSettingOperationRightsClick);
|
|
this.SettingReport.Click += new EventHandler(OnSettingReportClick);
|
|
|
|
this.SetRemovePermissions.Click += new EventHandler(OnRemovePermissionsClick);
|
|
this.SetRemovePermissions.Click += new EventHandler(OnRemovePermissionsClick2);
|
|
this.btnOk.Click += new EventHandler(OnbtnOkClick);
|
|
|
|
SetLevelOneDirectory();
|
|
SetLevelTweDirectory();
|
|
this.PrimaryDirectory.SelectedValueChanged += new EventHandler(PrimaryDirectoryValueChanged);
|
|
this.gridLeft.GridView.Click += new EventHandler(OnGridLeftGridViewClick);
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 改变一级目录,加载对应的二级目录
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void PrimaryDirectoryValueChanged(object sender, EventArgs e)
|
|
{
|
|
string text = (this.PrimaryDirectory.EditValue + "").Split('.')[0];
|
|
DataTable dt = SqlHelper.ExecuteDataTable(string.Format("select * from P_FormMenuConfigTab where len(menustruct)=2 and useFlag=1 and subsysid='{0}' order by menustruct", text));
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
this.gridLeft.gridControl.DataSource = dt;
|
|
this.gridLeft.GridView.SelectRowHandler(0);
|
|
OnGridLeftGridViewClick(null, null);
|
|
}
|
|
else
|
|
{
|
|
this.gridLeft.gridControl.DataSource = null;
|
|
this.AllQuickControlEx.gridControl.DataSource = null;
|
|
this.QuickOperationControlEx.gridControl.DataSource = null;
|
|
this.QuickReportFormControlEx.gridControl.DataSource = null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置一级目录,创建二级目录的表格列
|
|
/// </summary>
|
|
protected void SetLevelOneDirectory()
|
|
{
|
|
//获取一级目录
|
|
DataTable treeTable = SqlHelper.ExecuteDataTable("select subsysid,subsysname from P_SubSystemTab where useed=1");
|
|
string text = string.Empty;
|
|
foreach (DataRow dr in treeTable.Rows)
|
|
{
|
|
text = string.Empty;
|
|
text = dr["subsysid"] + "." + dr["subsysname"];
|
|
PrimaryDirectory.Properties.Items.Add(text);
|
|
Directory.Properties.Items.Add(text);
|
|
moduleAssociationRole.comboBox.Properties.Items.Add(text);
|
|
permissionSettings1.comboBox.Properties.Items.Add(text);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置二级目录表格
|
|
/// </summary>
|
|
protected void SetLevelTweDirectory()
|
|
{
|
|
//二级目录列
|
|
GridColumn MenuIdColumn = new GridColumn();
|
|
MenuIdColumn.Caption = "编号";
|
|
MenuIdColumn.FieldName = "MenuId";
|
|
MenuIdColumn.VisibleIndex = 1;
|
|
|
|
GridColumn MenuStructColumn = new GridColumn();
|
|
MenuStructColumn.Caption = "菜单号";
|
|
MenuStructColumn.FieldName = "MenuStruct";
|
|
MenuStructColumn.VisibleIndex = 2;
|
|
|
|
GridColumn MenuCaptionColumn = new GridColumn();
|
|
MenuCaptionColumn.Caption = "菜单名称";
|
|
MenuCaptionColumn.FieldName = "MenuCaption";
|
|
MenuCaptionColumn.VisibleIndex = 3;
|
|
|
|
|
|
this.gridLeft.GridView.Columns.AddRange(new GridColumn[] {
|
|
//subsysidColumn,
|
|
MenuIdColumn,
|
|
MenuStructColumn,
|
|
MenuCaptionColumn
|
|
});
|
|
}
|
|
|
|
#endregion
|
|
#endregion
|
|
#region 事件
|
|
#region 设置按钮点击事件
|
|
//设置操作快捷通道按钮点击事件
|
|
private void OnSettingOperationRightsClick(object sender, EventArgs e)
|
|
{
|
|
|
|
int[] rowNumbers = this.AllQuickControlEx.GridView.GetSelectedRows();
|
|
List<DataRow> addRows = new List<DataRow>();
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.AllQuickControlEx.GridView.GetDataRow(rowIndex);
|
|
addRows.Add(rowItem);
|
|
}
|
|
foreach (DataRow dr in addRows)
|
|
{
|
|
AccessPermissions(dr, "1");
|
|
}
|
|
}
|
|
// 设置报表快捷通道按钮点击事件
|
|
private void OnSettingReportClick(object sender, EventArgs e)
|
|
{
|
|
int[] rowNumbers = this.AllQuickControlEx.GridView.GetSelectedRows();
|
|
List<DataRow> addRows = new List<DataRow>();
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.AllQuickControlEx.GridView.GetDataRow(rowIndex);
|
|
addRows.Add(rowItem);
|
|
}
|
|
foreach (DataRow dr in addRows)
|
|
{
|
|
AccessPermissions(dr, "2");
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//删除权限 QuickOperationControlEx表
|
|
private void OnRemovePermissionsClick(object sender, EventArgs e)
|
|
{
|
|
int[] rowNumbers = this.QuickOperationControlEx.GridView.GetSelectedRows();
|
|
if (rowNumbers.Length == 0) return;
|
|
List<DataRow> deleteRows = new List<DataRow>();
|
|
List<string> primaryKeys = new List<string>();
|
|
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.QuickOperationControlEx.GridView.GetDataRow(rowIndex);
|
|
deleteRows.Add(rowItem);
|
|
primaryKeys.Add(rowItem["LMenuid"] + "");
|
|
}
|
|
|
|
DataTable gcDetailDt = this.QuickOperationControlEx.gridControl.DataSource as DataTable;
|
|
foreach (DataRow dr in deleteRows)
|
|
{
|
|
RemovePermissions(dr);
|
|
gcDetailDt.Rows.Remove(dr);
|
|
}
|
|
|
|
DataTable gcMainDt = this.AllQuickControlEx.gridControl.DataSource as DataTable;
|
|
for (int i = 0; i < gcMainDt.Rows.Count; i++)
|
|
{
|
|
if (primaryKeys.Contains(gcMainDt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.UnselectRow(i);
|
|
}
|
|
}
|
|
|
|
//QuickReportFormControlEx表
|
|
private void OnRemovePermissionsClick2(object sender, EventArgs e)
|
|
{
|
|
int[] rowNumbers = this.QuickReportFormControlEx.GridView.GetSelectedRows();
|
|
if (rowNumbers.Length == 0) return;
|
|
List<DataRow> deleteRows = new List<DataRow>();
|
|
List<string> primaryKeys = new List<string>();
|
|
|
|
foreach (int rowIndex in rowNumbers)
|
|
{
|
|
DataRow rowItem = this.QuickReportFormControlEx.GridView.GetDataRow(rowIndex);
|
|
deleteRows.Add(rowItem);
|
|
primaryKeys.Add(rowItem["LMenuid"] + "");
|
|
}
|
|
|
|
DataTable gcDetailDt = this.QuickReportFormControlEx.gridControl.DataSource as DataTable;
|
|
foreach (DataRow dr in deleteRows)
|
|
{
|
|
RemovePermissions(dr);
|
|
gcDetailDt.Rows.Remove(dr);
|
|
}
|
|
|
|
DataTable gcMainDt = this.AllQuickControlEx.gridControl.DataSource as DataTable;
|
|
for (int i = 0; i < gcMainDt.Rows.Count; i++)
|
|
{
|
|
if (primaryKeys.Contains(gcMainDt.Rows[i]["LMenuid"] + "")) this.AllQuickControlEx.GridView.UnselectRow(i);
|
|
}
|
|
}
|
|
|
|
//点击确定按钮
|
|
private void OnbtnOkClick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrWhiteSpace(id))
|
|
{
|
|
MessageUtil.Show("请选中左侧人员或角色");
|
|
return;
|
|
}
|
|
WaitForm.ShowForm(ResourceKeys.DataSaving);
|
|
|
|
string TableName = string.Empty;
|
|
DataTable oldRole = null;//一开始的角色表
|
|
if (Operatorflag)
|
|
{
|
|
TableName = "P_MessageToolLinkDllTab";
|
|
}
|
|
else
|
|
{
|
|
TableName = "P_RoleShortcut";
|
|
oldRole = MainImpl.GetGallerysByRoleId(id);
|
|
}
|
|
string deleteSql = string.Format("delete {0} where EmployeeID='{1}'", TableName, id);
|
|
SqlHelper.ExecuteNonQuery(deleteSql);
|
|
|
|
string sql = string.Empty;
|
|
foreach (DataRow dr in AllShortcutSettings.Rows)
|
|
{
|
|
|
|
sql = string.Format(@"insert into {10}(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams)
|
|
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
|
|
dr["EmployeeID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"],
|
|
dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"], TableName);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
|
|
//把角色的快捷信息保存到对应的人员中
|
|
if (!Operatorflag)
|
|
{
|
|
//获得角色表对应的全部人员
|
|
DataTable Roledetailed = PowerImpl.GetWorkUsers(id);
|
|
|
|
foreach (DataRow RoledetailedDr in Roledetailed.Rows)
|
|
{
|
|
//当前角色中对应人员的全部菜单
|
|
DataTable EmployeesQuicklyDt = MainImpl.newGetGallerysByUserId(RoledetailedDr["员工ID"] + "");
|
|
//删除对应人员的全部菜单
|
|
deleteSql = string.Format("delete P_MessageToolLinkDllTab where EmployeeID='{0}'", RoledetailedDr["员工ID"]);
|
|
SqlHelper.ExecuteNonQuery(deleteSql);
|
|
//把角色权限赋给人员
|
|
foreach (DataRow dr in AllShortcutSettings.Rows)
|
|
{
|
|
sql = string.Format(@"insert into P_MessageToolLinkDllTab(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams)
|
|
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
|
|
RoledetailedDr["员工ID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"],
|
|
dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"]);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
//把人员本身设置的菜单重新赋给人员
|
|
foreach (DataRow dr in EmployeesQuicklyDt.Rows)
|
|
{
|
|
//判断是否存在员工独立的快捷设置 AllShortcutSettings改为oldRole,避免把角色表删除的模块重新赋给人员
|
|
if ((oldRole.Rows.Cast<DataRow>().Where(x => x["LMenuid"] + "" == dr["LMenuid"] + "" && x["PurviewId"] + "" == dr["PurviewId"] + "")).Count() == 0)
|
|
{
|
|
sql = string.Format(@"insert into P_MessageToolLinkDllTab(EmployeeID,GroupTagid,ItemTagid,ObjDll,DllShowCaption,LinkModeTag,LMenuid,Lsubsysid,orderid,UrlParams)
|
|
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')",
|
|
RoledetailedDr["员工ID"], dr["GroupTagid"], dr["ItemTagid"], dr["ObjDll"], dr["DllShowCaption"], dr["LinkModeTag"],
|
|
dr["LMenuid"], dr["Lsubsysid"], dr["orderid"], dr["UrlParams"]);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|
|
MessageUtil.Show("保存成功");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageUtil.Show("保存失败");
|
|
}
|
|
finally
|
|
{
|
|
WaitForm.HideForm();
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 分割条位置改变
|
|
/// <summary>
|
|
/// <para>说明:分割条位置包含时记录位置</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2021-08-25 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void PositionChange(object sender, EventArgs e)
|
|
{
|
|
PositionSplitter = this.splitMain_Right.SplitterPosition;
|
|
}
|
|
#endregion
|
|
#region 窗口大小改变
|
|
/// <summary>
|
|
/// <para>说明:窗口大小改变时改变分割条位置</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2021-08-25 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void maximization(object sender, EventArgs e)
|
|
{
|
|
double a = (double)PositionSplitter / (double)WindowHeight;
|
|
if (a > 0)
|
|
{
|
|
this.splitMain_Right.SplitterPosition = Convert.ToInt32(Math.Round((double)this.Height * a));
|
|
WindowHeight = this.Height;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 已有权限改变
|
|
/// <summary>
|
|
/// <para>说明:已有权限框内容改变事件</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2022-06-15 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
//private void gridControlChange(object sender, RowCellClickEventArgs e)
|
|
//{
|
|
// if (this.gcDetail.RowCount == 0) return;
|
|
// //DataRow rowItem = this.gcDetail.GetFocusedDataRow();
|
|
|
|
//}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 取消
|
|
/// <summary>
|
|
/// <para>说明:取消</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-03-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="sender">The source of the event.</param>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
private void xtraTabControl2_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e)
|
|
{
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage9)//进行tabpage位置判断
|
|
{
|
|
GetExistingSettings(id);
|
|
}
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage8)//进行tabpage位置判断
|
|
{
|
|
SettingOperationLogs(null, null);
|
|
}
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage11)//进行tabpage位置判断
|
|
{
|
|
moduleAssociationRole.GridView_RowClick(null, null);
|
|
}
|
|
if (xtraTabControl2.SelectedTabPage == xtraTabPage12)//进行tabpage位置判断
|
|
{
|
|
personnelInformation.GridView_FocusedRowObjectChanged(null, null);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 滑动位置改变
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void OnSplitContainerControl1_SplitterPositionChanged(object sender, EventArgs e)
|
|
{
|
|
IniHelper.Write(string.Format("Step_spliterPositionMain_{0}", "PubUserTomodule"), this.splitContainerControl1.SplitterPosition + "");
|
|
}
|
|
|
|
private void SplitMain_LowerRight_SplitterPositionChanged(object sender, EventArgs e)
|
|
{
|
|
IniHelper.Write(string.Format("Step_spliterPositionMain_{0}", "splitMain_LowerRight"), this.splitMain_LowerRight.SplitterPosition + "");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 菜单功能明细界面删除角色后刷新当前主页选中的人员或角色
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void ModuleAssociationRole_onClickDeleteButton(object sender, EventArgs e)
|
|
{
|
|
xtraTabControl1_SelectedPageChanged(null, null);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 左侧角色推拽到人员权限页签中
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void OnDragRole(object sender, GridDragGridArgs e)
|
|
{
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
if (MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
|
|
foreach (DataRow rowItem in e.GridViewSelectRows)
|
|
{
|
|
string RoleId = rowItem["id"] + "";
|
|
//把推拽角色id传入页签中,页签根据选中的人员添加角色权限
|
|
personnelInformation.AddRolePermissions(RoleId);
|
|
}
|
|
|
|
personnelInformation.GridView_FocusedRowObjectChanged(null, null);
|
|
ModuleAssociationRole_onClickDeleteButton(null, null);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogUtil.WriteError("表格拖拽错误", ex);
|
|
LogHelper.Instance.WriteError(ex);
|
|
//MessageUtil.Show(ResourceKeys.OperFault);
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show(Message, ex.Message);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|