Files
17168ERP/web/admin/user/group_reg.aspx.cs
2025-08-29 01:27:25 +08:00

255 lines
8.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
public partial class admin_user_group_reg : MyWeb.config
{
DataTable treeDt = new DataTable();
const int LevelMax = MyWeb.item.KindLevelMax; //分類層數
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
if (!isStrNull(Request["num"]))
{
L_msg.Text = "";
MyWeb.sql sql = new MyWeb.sql();
OleDbConnection sqlConn = sql.conn(db, p_name);
try
{
sqlConn.Open();
OleDbCommand sqlCmd = new OleDbCommand("", sqlConn);
sqlCmd.CommandText = "SELECT * FROM admin_group Where g_name=?";
sqlCmd.Parameters.Add(new OleDbParameter("g_name", Request["num"]));
DataTable dt = sql.dataTable(sqlCmd);
if (dt.Rows.Count > 0)
{
g_name.Text = dt.Rows[0]["g_name"].ToString();
if (dt.Rows[0]["g_name"].ToString() == "EZ")
{
rootMsg.Text = "注意:設計師模式群組無需勾選權限,重新登入即可獲得全部功能。";
}
demo.Text = dt.Rows[0]["demo"].ToString();
HiddenField1.Value = dt.Rows[0]["items"].ToString();
}
}
catch (Exception ex)
{
L_msg.Text = ex.Message;
}
finally
{
sqlConn.Close(); sqlConn.Dispose();
}
g_name.ReadOnly = true;
g_name.BorderWidth = 0;
g_name.BackColor = System.Drawing.Color.Transparent;
edit.Visible = true;
goback.Visible = true;
add.Visible = false;
title_msg.Text = "修改";
}
else {
edit.Visible = false;
title_msg.Text = "新增";
}
BuildTreeView();
}
}
protected void goback_Click(object sender, EventArgs e)
{
Response.Redirect("group_show.aspx" + (!isStrNull(Request["page"]) ? "?page=" + Request["page"] : ""));
}
#region TreeView選單
protected void TreeTopology()
{
MyWeb.sql sql = new MyWeb.sql();
OleDbConnection sqlConn = sql.conn(db, p_name);
try
{
sqlConn.Open();
OleDbCommand sqlCmd = new OleDbCommand("", sqlConn);
sqlCmd.CommandText = "SELECT num,title,root FROM item ORDER BY root, range";
treeDt = sql.dataTable(sqlCmd);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
sqlConn.Close();
sqlConn.Dispose();
}
}
public void BuildTreeView() {
TreeView1.Nodes.Clear();
TreeTopology();
BuildChild(0, TreeView1.Nodes);
treeDt.Dispose();
}
public void BuildChild(int RootUid, TreeNodeCollection Nodes, int Level=1)
{
string chkbox_value = "";
if (HiddenField1.Value != "") {
chkbox_value = "," + HiddenField1.Value;
}
string powers = "," + admin.info.power;
DataTable dt = treeDt;
foreach (DataRow row in dt.Rows)
{
if (row["root"].ToString() == RootUid.ToString())
{
string p = "," + row["num"].ToString() + ",";
if (powers.IndexOf(p, 0) > -1 || admin.info.group == "EZ")
{
TreeNode NewNode = new TreeNode();
NewNode.Text = row["title"].ToString();
NewNode.Value = row["num"].ToString();
NewNode.SelectAction = TreeNodeSelectAction.None;
NewNode.ToolTip = row["root"].ToString() + "-" + row["num"].ToString();
if (!isStrNull(Request["num"]) & chkbox_value.IndexOf(p, 0) > -1)
{
NewNode.Checked = true;
}
Nodes.Add(NewNode);
if (Level+1<= LevelMax) { BuildChild((int)row["num"], NewNode.ChildNodes, Level + 1); }
}
}
}
}
#endregion
#region
protected void edit_Click(object sender, EventArgs e)
{
string chk_data = chkData(); //取得勾選權限值
MyWeb.sql sql = new MyWeb.sql();
OleDbConnection sqlConn = sql.conn(db, p_name);
try
{
sqlConn.Open();
OleDbCommand sqlCmd = new OleDbCommand("", sqlConn);
sqlCmd.CommandText = "UPDATE admin_group SET demo=?, items=? WHERE g_name=?";
sqlCmd.Parameters.Add(new OleDbParameter("demo", demo.Text));
sqlCmd.Parameters.Add(new OleDbParameter("items", chk_data));
sqlCmd.Parameters.Add(new OleDbParameter("g_name", Request["num"]));
sqlCmd.ExecuteNonQuery();
if(admin.info.group != "EZ")
{
Model.admin_log admin_log = new Model.admin_log();
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Power, (int)Model.admin_log.Status.Update, "群組:" + g_name.Text);
}
Response.Redirect("group_show.aspx" + (!isStrNull(Request["page"]) ? "?page=" + Request["page"] : ""));
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
sqlConn.Close(); sqlConn.Dispose();
}
}
//取得勾選權限值
public string chkData()
{
string chk_data = "";
for (int i = 0; i < TreeView1.CheckedNodes.Count; i++)
{
string chk_data2 = "," + chk_data;
//string chk = "," + TreeView1.CheckedNodes[i].Parent.ValuePath + ",";
//if (chk_data2.IndexOf(chk, 0) == -1)
//{
// chk_data += TreeView1.CheckedNodes[i].Parent.ValuePath + ","; //取得主分類編號
//}
chk_data += TreeView1.CheckedNodes[i].Value.ToString() + ","; //取得勾選分類編號
}
return chk_data;
}
#endregion
#region
protected void add_Click(object sender, EventArgs e)
{
L_msg.Text = "";
string chk_data = chkData(); //取得勾選權限值
MyWeb.sql sql = new MyWeb.sql();
OleDbConnection sqlConn = sql.conn(db, p_name);
try
{
sqlConn.Open();
OleDbCommand sqlCmd = new OleDbCommand("", sqlConn);
sqlCmd.CommandText = "SELECT * FROM admin_group Where g_name=?";
sqlCmd.Parameters.Add(new OleDbParameter("g_name", g_name.Text));
DataTable dt = sql.dataTable(sqlCmd);
if (dt.Rows.Count > 0)
{
L_msg.Type = alert_type.warning;
L_msg.Text = "您所輸入的群組代號重覆";
}
else {
sqlCmd = new OleDbCommand("", sqlConn);
sqlCmd.CommandText = "INSERT INTO admin_group (g_name, items, demo) VALUES (?, ?, ?)";
sqlCmd.Parameters.Add(new OleDbParameter("g_name", g_name.Text));
sqlCmd.Parameters.Add(new OleDbParameter("items", chk_data));
sqlCmd.Parameters.Add(new OleDbParameter("demo",demo.Text));
sqlCmd.ExecuteNonQuery();
sqlConn.Close(); sqlConn.Dispose();
if (admin.info.group != "EZ")
{
Model.admin_log admin_log = new Model.admin_log();
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Power, (int)Model.admin_log.Status.Insert, "群組:" + g_name.Text);
}
Response.Redirect("group_show.aspx");
}
}
catch (Exception ex)
{
L_msg.Text =ex.Message;
L_msg.Type = alert_type.danger;
}
finally
{
sqlConn.Close(); sqlConn.Dispose();
}
}
#endregion
}