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 DevExpress.XtraBars;
using Lskj.Control;
using Lskj.Control.Model;
using DevExpress.XtraTreeList.Columns;
using DevExpress.XtraGrid.Views.Grid;
namespace Lskj.PubPower
{
public partial class FrmMain : BaseForm
{
public DynamicPowerModel PubPowerModel;
///
/// 选中行的集合
///
private List rows = new List();
private List readPurview = new List();
private List editPurview = new List();
private List idlist = new List();
///
/// 记录选中角色选中行的行号之后
///
private string rolePositionAfter = string.Empty;
///
/// 记录选中人员选中行的行号之后
///
private string operPositionAfter = string.Empty;
///
/// 记录选中角色选中行的行号之前
///
private string rolePositionBefore = string.Empty;
///
/// 记录选中人员选中行的行号之前
///
private string operPositionBefore = string.Empty;
///
/// 获取左侧选中的名称
///
private string id = string.Empty;
///
/// 获取临时选中的名称
///
private string empid = string.Empty;
private bool Operatorflag = false;
///
/// treeList绑定的表
///
DataTable dt = new DataTable();
///
/// 角色表
///
DataTable Roletable = new DataTable();
///
/// 员工表
///
DataTable employeetable = new DataTable();
///
/// 是否为配置角色表
///
private bool IsConfigureRoleTable = false;
///
/// 系统模块实体对象
///
/// The system model.
public ModuleModel SysModel;
public FrmMain()
{
InitializeComponent();
//InitializeDeps();
InitializeColumns();
InitializeUsers();
creatTreeListControl();
BindGridTreeView();
GridDragGrid dragGrid = new GridDragGrid(this.gridControlEx1.GridView, this.gridControlEx3.GridView);
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
//GridDragGrid.GridAddCheckBox(this.gridControlEx1.GridView);
this.gridControlEx2.GridView.Click += new EventHandler(OnGridViewClick);//角色表点击
this.gridControlEx2.GridView.DoubleClick += new EventHandler(DoubleGridViewClick);
this.gridControlEx4.GridView.Click += new EventHandler(OnGridView2Click);//人员表点击
//this.gridControlEx3.GridView.Click += new EventHandler(OnGridView3Click);//临时表人员表点击
this.gridControlEx2.GridView.SelectRowHandler(0);//设置默认选中行
this.gridControlEx2.GridView.BestFitColumns();//设置根据内容填充列宽
this.gridControlEx3.GridView.BestFitColumns();//设置根据内容填充列宽
this.gridControlEx4.GridView.BestFitColumns();//设置根据内容填充列宽
if (Roletable.Rows.Count > 0)
{
First(Roletable.Rows[0]["id"] + "");
}
this.employeeName.TextEdit.EditValueChanged += new EventHandler(OnUserEditValueChanged);
this.employeeId.TextEdit.EditValueChanged += new EventHandler(OnUserEditValueChanged);
this.employeeName.Visible = false;
this.employeeId.Visible = false;
this.BeCopiedPeople.Visible = false;
this.btn_copy.Visible = false;
this.SelectedStaff.Visible = false;
this.btn_paste.Visible = false;
this.btn_copy.Click += new EventHandler(onBtn_copyClik);
this.btn_paste.Click += new EventHandler(onBtn_pasteClik);
this.BeCopiedPeople.TextEdit.Enabled = false;
this.SelectedStaff.TextEdit.Enabled = false;
this.gridControlEx3.GridControl.ContextMenuStrip = this.MenuStrip;
this.gridControlEx4.GridControl.ContextMenuStrip = this.contextMenuStrip;
//this.department.TextEdit.EditValueChanged += new EventHandler(OnDepEditValueChanged);
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
}
#region 私有方法
///
/// 说明:表格拖拽完成
/// 创建人:龚宇超
/// 创建日期:2017-11-14
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The e.
protected void OnDragGridCompleted(object sender, GridDragGridArgs e)
{
string sql = string.Empty;
try
{
if (MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes)
{
GridColumnCollection gridColumns = this.gridControlEx3.GridView.Columns;
DataTable table = this.gridControlEx3.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.gridControlEx3.GridControl.DataSource as DataTable);
this.gridControlEx1.GridControl.DataSource = NEWTABLE;
this.gridControlEx3.GridView.ClearSelection();
this.gridControlEx3.GridView.SelectRowHandler(table.Rows.Count - 1);
this.gridControlEx3.GridView.UpdateCurrentRow();
this.gridControlEx3.GridView.ShowEditor();
}
}
catch (Exception ex)
{
LogUtil.WriteError("表格拖拽错误", ex);
LogHelper.Instance.WriteError(ex);
//MessageUtil.Show(ResourceKeys.OperFault);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 筛选赋权限表
///
///
///
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;
}
///
/// 说明:获取选中行数据
/// 创建人:王一帆
/// 创建日期:2019-09-27
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The node.
/// DataRow.
private DataRow GetForcedNodeDataRow(TreeListNode node)
{
DataRowView dataRowView = this.treeList1.GetDataRecordByNode(node) as DataRowView;
return dataRowView != null ? dataRowView.Row : null;
}
///
/// 默认绑定列数据
///
private void InitializeColumns()
{
//this.gridControlEx2.GridView.Columns.AddVisible("roleName", "角色");
this.gridControlEx4.GridView.Columns.AddVisible("员工ID", "员工ID");
this.gridControlEx4.GridView.Columns.AddVisible("员工工号", "员工工号");
this.gridControlEx4.GridView.Columns.AddVisible("员工姓名", "员工姓名");
this.gridControlEx4.GridView.Columns.AddVisible("所属部门", "所属部门");
if (SystemInfo.Instance.DisplayResignation)
{
this.gridControlEx4.GridView.Columns.AddVisible("是否离职", "是否离职");
}
//点击角色表的列
//查询是否有指定模块
//DataTable table = SqlHelper.ExecuteDataTable("select * from p_formmenuconfigtab where purviewId='purview001'");
DataRow dataRow = MainImpl.GetSystemdllTab("purview001");//获取单个模块信息
if (dataRow != null)
{
this.SysModel = new ModuleModel(dataRow);// 系统模块实体对象
DataTable RoleControlExColumns = BaseModuleImpl.GetBaseGridColumns("purview001");
this.gridControlEx2.SetReadOnlyColumns(RoleControlExColumns);
}
else
{
this.gridControlEx2.GridView.Columns.AddVisible("roleName", "角色");
}
}
///
/// 说明:默认加载表格数据
/// 创建人:王一帆
/// 创建日期:2019-09-19
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
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.gridControlEx2.GridControl.DataSource = Roletable;
this.gridControlEx4.GridControl.DataSource = employeetable;
this.gridControlEx1.GridView.OptionsBehavior.Editable = this.gridControlEx2.GridView.OptionsBehavior.Editable = this.gridControlEx3.GridView.OptionsBehavior.Editable = this.gridControlEx4.GridView.OptionsBehavior.Editable = false;
}
///
/// 动态创建TreeList的Column,一列为图层名,一列为是否统计列Check控件
///
private void creatTreeListControl()
{
TreeListColumn treeListColumnName = new TreeListColumn();
treeListColumnName.Caption = "系统名称";
treeListColumnName.FieldName = "Caption";
treeListColumnName.MinWidth = 38;
treeListColumnName.Visible = true;
treeListColumnName.VisibleIndex = 0;
treeListColumnName.Width = 400;
TreeListColumn treeListColumnMenuId = new TreeListColumn();
treeListColumnMenuId.Caption = "菜单id";
treeListColumnMenuId.FieldName = "MenuId";
treeListColumnMenuId.Visible = true;
treeListColumnMenuId.VisibleIndex = 1;
TreeListColumn treeListColumnReadflag = new TreeListColumn();
RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit();
checkEdit.ValueChecked = 1;
checkEdit.ValueUnchecked = 0;
checkEdit.ValueGrayed = 3;
treeListColumnReadflag.ColumnEdit = checkEdit;
treeListColumnReadflag.Caption = "只读权限";
treeListColumnReadflag.FieldName = "Readflag";
treeListColumnReadflag.Name = "treeListColumnReadflagValue";
treeListColumnReadflag.Visible = true;
treeListColumnReadflag.VisibleIndex = 3;
TreeListColumn treeListColumnEditflag = new TreeListColumn();
treeListColumnEditflag.ColumnEdit = checkEdit;
treeListColumnEditflag.Caption = "操作权限";
treeListColumnEditflag.FieldName = "Editflag";
treeListColumnEditflag.Name = "treeListColumnEditflagValue";
treeListColumnEditflag.Visible = true;
treeListColumnEditflag.VisibleIndex = 2;
this.treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
treeListColumnName,
treeListColumnMenuId,
treeListColumnReadflag,
treeListColumnEditflag
});
this.treeList1.Nodes.Clear();
this.treeList1.Refresh();
}
///
/// 说明:绑定表格树结构
/// 创建人:王一帆
/// 创建日期:2017-09-04
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The tree table.
public void BindGridTreeView()
{
DataTable treeTable = PowerImpl.GetMenuTreeViewData();
//节点前显示复选框
//this.treeList1.OptionsView.ShowCheckBoxes = true;
// this.treeList1.OptionsBehavior.Editable = false;
dt.Columns.Add("ID");
dt.Columns.Add("PARENTID");
//(节点编码的名称)
dt.Columns.Add("Caption");
dt.Columns.Add("MenuId");
dt.Columns.Add("Readflag", typeof(int));
dt.Columns.Add("Editflag", typeof(int));
if (treeTable != null && treeTable.Rows.Count > 0)
{
List idlist = new List();
this.Tag = treeTable.Rows[0];
DataColumnCollection dcc = treeTable.Columns;
for (int i = 0; i < treeTable.Rows.Count; i++)
{
DataRow dr = treeTable.Rows[i];
DataRow dr1 = dt.NewRow();
string tnKey = dr["id"] + "";
string tnStr = dr["MenuCaption"] + "";
string pKey = dr["parentId"] + "";
string MenuId = dr["MenuId"] + "";
if (idlist.Contains(tnKey))
{
tnKey += "re" + i;
}
dr1["ID"] = tnKey;
dr1["PARENTID"] = pKey;
dr1["Caption"] = tnStr;
dr1["MenuId"] = MenuId;
dr1["Readflag"] = 0;
dr1["editflag"] = 0;
dt.Rows.Add(dr1);
idlist.Add(tnKey);
}
this.treeList1.DataSource = dt;
this.treeList1.KeyFieldName = "ID";
this.treeList1.ParentFieldName = "PARENTID";
//this.treeList1.Columns[0].Caption = "系统名称";
//this.treeList1.Columns[0].Width = 500;
this.treeList1.Columns[0].OptionsColumn.AllowEdit = false;
this.treeList1.Columns[1].Visible = false;
}
}
///
/// 执行保存角色权限时候的存储过程
///
///
///
///
///
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());
}
///
/// 执行保存时候的存储过程
///
///
///
///
///
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());
}
///
/// 说明:部门下拉框值改变后
/// 创建人:王一帆
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
void OnDepEditValueChanged(object sender, EventArgs e)
{
//string depid = this.department.EditValue;
//string mf = this.employeeName.EditText;
//DataTable table = WorkFlowBillImpl.GetWorkFlowUsers(depid, mf);
//this.gridControlEx4.gridControl.DataSource = table;
}
///
/// 说明:用户值改变后
/// 创建人:王一帆
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
void OnUserEditValueChanged(object sender, EventArgs e)
{
try
{
string mc = this.employeeName.EditText;
string dc = this.employeeId.EditText;
DataTable table = PowerImpl.GetWorkFlowUsers(mc, dc);
this.gridControlEx4.gridControl.DataSource = table;
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 说明:初始化部门数据
/// 创建人:王一帆
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
//private void InitializeDeps()
//{
// DataTable table = WorkFlowBillImpl.GetDeps();
// this.department.ValueMember = "departmentid";
// this.department.ValueField = "departmentid";
// this.department.TextField = "departmentname";
// this.department.SetDataSource(table);
//}
///
/// 获取所有选中的集合
///
///
private void GetListKeyID()
{
editPurview.Clear();
readPurview.Clear();
DataTable masterdt = (DataTable)treeList1.DataSource;
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"] + "");
}
}
}
///
/// 获取选择状态有权限的节点集合
///
/// 父级节点
private void GetNodeCheckedID(string[] ReadPurview, string[] EditPurview)
{
rows.Clear();
foreach (DataRow item in dt.Rows)
{
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);
}
this.treeList1.DataSource = rows.CopyToDataTable();
this.treeList1.CollapseAll();
}
#endregion
#region 点击事件
///
/// 粘贴
///
///
///
private void onBtn_pasteClik(object sender, EventArgs e)
{
if (Operatorflag)
{
DataRow mSelectRow = this.gridControlEx4.GridView.GetFocusedDataRow();
if (mSelectRow == null) return;
string selectedId = mSelectRow["员工ID"] + "";//当前人员
DataRow selectedDR = PowerImpl.GeRoleOperRow(selectedId);
string copyId = this.BeCopiedPeople.Tag + "";//复制人员
// DataRow copyDR = PowerImpl.GeRoleOperRow(copyId);
DataTable table = SqlHelper.ExecuteDataTable(string.Format("select * from p_systemRoleOperSetTab s where s.operatorid='{0}'", copyId));
if (PowerImpl.SaveRoleOperDate(selectedId, selectedDR["员工姓名"] + "", selectedDR["所属部门"] + "", table.Rows[0]["ReadPurview"] + "", table.Rows[0]["EditPurview"] + ""))
{
int rValue = savedata(int.Parse(selectedId));
if (rValue == 1)
{
MessageUtil.Show("复制人员权限成功!");
}
else
{
MessageUtil.Show("复制人员权限失败!");
return;
}
}
}
}
///
/// 复制
///
///
///
private void onBtn_copyClik(object sender, EventArgs e)
{
if (Operatorflag)
{
DataRow mSelectRow = this.gridControlEx4.GridView.GetFocusedDataRow();
if (mSelectRow == null) return;
string name = mSelectRow["员工姓名"] + "";
string id = mSelectRow["员工ID"] + "";
this.BeCopiedPeople.EditText = name;
this.BeCopiedPeople.Tag = id;
}
}
///
/// 说明:全部展开
/// 创建人:王一帆
/// 创建日期:2022-06-07
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
private void OnAllExpandClick(object sender, EventArgs e)
{
try
{
if (this.btn_unfold.Text == "一键展开")
{
this.treeList1.ExpandAll();
this.btn_unfold.Text = "一键合并";
}
else
{
this.treeList1.CollapseAll();
this.btn_unfold.Text = "一键展开";
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 双击角色表里的数据
///
///
///
void DoubleGridViewClick(object sender, EventArgs e)
{
try
{
// 新增角色
FrmAddRole frmAddRole = new FrmAddRole();
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.gridControlEx2.GridControl.DataSource = Roletable;
this.gridControlEx2.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);
}
}
///
/// 单击查询角色表里的数据
///
///
///
private void OnGridViewClick(object sender, EventArgs e)
{
try
{
DataRow mSelectRow = this.gridControlEx2.GridView.GetFocusedDataRow();
rolePositionAfter = this.gridControlEx2.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);
}
}
///
/// 点击角色权限信息的方法
///
///
private void First(string Firstid)
{
id = Firstid;
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.gridControlEx3.GridControl.DataSource = Roledetailed;
DataTable NEWTABLE = GetNewDt(Roledetailed);
this.gridControlEx1.GridControl.DataSource = NEWTABLE;
Operatorflag = false;
this.treeList1.CollapseAll();
}
///
/// 单击查询人员表里的数据
///
///
///
private void OnGridView2Click(object sender, EventArgs e)
{
try
{
DataRow mSelectRow = this.gridControlEx4.GridView.GetFocusedDataRow();
operPositionAfter = this.gridControlEx4.GridView.FocusedRowHandle.ToString();
if (mSelectRow != null)
{
id = mSelectRow["员工ID"] + "";
operPositionBefore = id;
Second(id);
string name = mSelectRow["员工姓名"] + "";
this.SelectedStaff.EditText = name;
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 点击人员详细信息的方法
///
///
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;
}
catch (Exception ex)
{
//MessageUtil.Show("权限表无此人!");
this.gridControlEx4.GridView.SelectRowHandler(0);
Second("1");
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
#endregion
///
/// 点击保存权限
///
///
///
private void btn_save_Click(object sender, EventArgs e)
{
try
{
WaitForm.ShowForm("权限保存中,请稍后...");
GetListKeyID();
string readdate = string.Empty;
string Editdate = string.Empty;
foreach (string item in readPurview)
{
readdate = readdate + item + ",";
}
foreach (string item in editPurview)
{
Editdate = Editdate + item + ",";
}
//readdate = Editdate = "";
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["所属部门"] + "", 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)
{
MessageUtil.Show("同步人员权限成功!");
}
else
{
MessageUtil.Show("同步人员权限失败!");
return;
}
}
}
}
catch (Exception ex)
{
}
finally
{
WaitForm.HideForm();
}
}
///
/// 切换人员表默认选中第一行
///
///
///
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.gridControlEx4.GridView.SelectRowHandler(int.Parse(operPositionAfter));//设置默认选中行
Second(operPositionBefore);
this.employeeName.Visible = true;
this.employeeId.Visible = true;
this.BeCopiedPeople.Visible = true;
this.btn_copy.Visible = true;
this.SelectedStaff.Visible = true;
this.btn_paste.Visible = true;
}
if (xtraTabControl1.SelectedTabPage == xtraTabPage1)//进行tabpage位置判断
{
rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter;
rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? Roletable.Rows[0]["id"] + "" : rolePositionBefore;
if (Roletable.Rows.Count > 0)
{
First(rolePositionBefore);
}
this.gridControlEx2.GridView.SelectRowHandler(int.Parse(rolePositionAfter));//设置默认选中行
this.employeeName.Visible = false;
this.employeeId.Visible = false;
this.BeCopiedPeople.Visible = false;
this.btn_copy.Visible = false;
this.SelectedStaff.Visible = false;
this.btn_paste.Visible = false;
}
}
///
/// 删除人员权限
///
///
///
private void btn_delete_Click(object sender, EventArgs e)
{
DataTable Roledetailed = PowerImpl.GetWorkUsers(id);
//int[] Roledrows = this.gridControlEx3.GridView.GetSelectedRows();
DataRow[] Roledrows = this.gridControlEx3.GetViewFocusedDataRows();
foreach (DataRow Roledrow in Roledrows)
{
PowerImpl.deletRoleDate(Roledrow["员工ID"] + "", id);
savedata(int.Parse(Roledrow["员工ID"] + ""));
}
DataTable newRoledetailed = PowerImpl.GetWorkUsers(id);
this.gridControlEx3.GridControl.DataSource = newRoledetailed;
DataTable NEWTABLE = GetNewDt(newRoledetailed);
this.gridControlEx1.GridControl.DataSource = NEWTABLE;
}
///
/// 说明:添加模块
/// 创建人:龚宇超
/// 创建日期:2019-06-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The sender.
/// The instance containing the event data.
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.LabelObj.Text = "请输入角色名称:";
if (frmAddRole.ShowDialog() == DialogResult.OK)
{
string RoleName = frmAddRole.RoleName;
DataRow mSelectRow = this.gridControlEx2.GridView.GetFocusedDataRow();
rolePositionAfter = string.IsNullOrWhiteSpace(rolePositionAfter) ? "0" : rolePositionAfter;
rolePositionBefore = string.IsNullOrWhiteSpace(rolePositionBefore) ? 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.gridControlEx2.GridControl.DataSource = Roletable;
this.gridControlEx2.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);
}
}
///
/// 删除角色权限
///
///
///
private void btn_deleteRole_Click(object sender, EventArgs e)
{
try
{
//int[] Roledrows = this.gridControlEx2.GridView.GetSelectedRows();
DataRow[] Roledrows = this.gridControlEx2.GetViewFocusedDataRows();
if (Roledrows.Length < 1)
return;
DialogResult result = MessageUtil.Show(string.Format(ResourceKeys.DeleteRows, Roledrows.Length), MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
foreach (DataRow RoleRow in Roledrows)
{
//PowerImpl.deletRoleoperDate(Roletable.Rows[num]["id"] + "");
PowerImpl.deletRoleoperDate(RoleRow["id"] + "");
saveRoledata(int.Parse(id));
}
Roletable = this.SysModel == null ? PowerImpl.GetWorkRole("", "") : SqlHelper.ExecuteDataTable(ReplaceHelper.ReplaceUserInfo(this.SysModel.MenuSql));
this.gridControlEx2.GridControl.DataSource = Roletable;
this.gridControlEx2.GridView.SelectRowHandler(0);//设置默认选中行
if (Roletable.Rows.Count > 0)
{
First(Roletable.Rows[0]["id"] + "");
}
}
}
catch (Exception ex)
{
LogUtil.WriteError("删除角色权限出错!", ex);
//MessageUtil.Show("删除角色权限出错!" + ex);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
///
/// 获得图层名节点的Index值
///
///
///
private int getParentID(string ParentNodeName)
{
int i = -1;
for (i = 0; i < this.treeList1.Nodes.Count; i++)
{
if (this.treeList1.Nodes[i][0].ToString() == ParentNodeName)
{
break;
}
}
return i;
}
///
/// 当点击Node事件发生改变(点击主节点时,其子节点跟着主节点变化)
///
///
///
private void treeList_CellValueChanging(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e)
{
try
{
if (e.Column.Name.Equals("treeListColumnReadflagValue"))
{
object objCol = this.treeList1.Columns[2];
for (int i = 0; i < e.Node.Nodes.Count; i++)
{
e.Node.Nodes[i].SetValue(objCol, e.Value);
for (int j = 0; j < e.Node.Nodes[i].Nodes.Count; j++)
{
e.Node.Nodes[i].Nodes[j].SetValue(objCol, e.Value);
}
}
e.Node.SetValue(objCol, e.Value);
SetCheckedParentNodes(e.Node, e.Value, objCol);
}
else if (e.Column.Name.Equals("treeListColumnEditflagValue"))
{
object objCol = this.treeList1.Columns[3];
for (int i = 0; i < e.Node.Nodes.Count; i++)
{
e.Node.Nodes[i].SetValue(objCol, e.Value);
for (int j = 0; j < e.Node.Nodes[i].Nodes.Count; j++)
{
e.Node.Nodes[i].Nodes[j].SetValue(objCol, e.Value);
}
}
e.Node.SetValue(objCol, e.Value);
SetCheckedParentNodes(e.Node, e.Value, objCol);
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
/// 设置父节点的状态
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);
}
}
//复制
private void btn_copy_Click(object sender, EventArgs e)
{
try
{
FrmPermissionToCopy frmPermissionToCopy = new FrmPermissionToCopy();
if (frmPermissionToCopy.ShowDialog() == DialogResult.OK)
{
List copyReadPurview = frmPermissionToCopy.readPurview;
List 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);
}
}
///
/// 说明:弹出添加数据
/// 创建人:龚宇超
/// 创建日期:2018-01-31
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
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.gridControlEx2.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);
}
}
}
}