ZhiYeJianKang_PeiXun/Song.Site/Manage/Utility/EmplyeeSelectBox.ascx.cs
2025-02-20 15:41:53 +08:00

353 lines
14 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WeiSha.Common;
using Song.ServiceInterfaces;
using Song.Entities;
namespace Song.Site.Manage.Utility
{
public partial class EmplyeeSelectBox : System.Web.UI.UserControl
{
#region
private string _width = "100";
public string Width
{
get
{
return _width;
}
set
{
_width = value;
}
}
private int _height = 200;
public int Height
{
get
{
return _height;
}
set
{
_height = value;
}
}
private string _target = "";
public string Target
{
get
{
return _target;
}
set
{
_target = value;
}
}
private string _targetTextBox = "";
public string TargetTextBox
{
get
{
return _targetTextBox;
}
set
{
_targetTextBox = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
bind();
}
//加载专用js文件与css文件
this.Page.Header.Controls.Add(new System.Web.UI.LiteralControl("<script type=\"text/javascript\" src=\"/Manage/Utility/Scripts/EmplyeeSelectBox.js\"></script>"));
this.Page.Header.Controls.Add(new System.Web.UI.LiteralControl("<link href=\"/Manage/Utility/Style/EmplyeeSelectBox.css\" type=\"text/css\" rel=\"stylesheet\" />"));
}
private void bind()
{
//输出院系
int orgid = Extend.LoginState.Admin.CurrentUser.Org_ID;
Song.Entities.Depart[] depart = Business.Do<IDepart>().GetAll(orgid, true, true);
string tmp = this.buildDepart(0, depart);
ltDepart.Text = tmp;
//输出岗位
Song.Entities.Position[] posi = Business.Do<IPosition>().GetAll(orgid,true);
ltPosi.Text = this.buildPosi(posi);
//输出工作组
Song.Entities.EmpGroup[] group = Business.Do<IEmpGroup>().GetAll(orgid,true);
this.lgGroup.Text = buildGroup(group);
//输出在线用户
this.ltOnline.Text = buildOnline();
}
#region html
/// <summary>
/// 用于院系递归输出
/// </summary>
/// <param name="dep"></param>
/// <param name="depart"></param>
/// <returns></returns>
private string buildDepart(int patId,Song.Entities.Depart[] depart)
{
bool isChild = false;
foreach (Song.Entities.Depart d in depart)
{
if (d.Dep_PatId == patId)
{
isChild = true;
break;
}
}
if (!isChild) return "";
string tmp = "";
tmp += "<div type=\"departpanel\" patId=\"" + patId + "\" class=\"panel\">";
if (patId == 0)
{
//顶级节点
tmp += "<div type=\"allnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/root.gif\"/>";
tmp += "</div>";
//院系名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"0\">";
tmp += "全部";
tmp += "</div>";
tmp += "</div>";
}
foreach (Song.Entities.Depart d in depart)
{
if (d.Dep_PatId == patId)
{
tmp += "<div type=\"departnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/minus.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/folderopen.gif\"/>";
tmp += "</div>";
//院系名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\""+d.Dep_Id+"\">";
tmp += d.Dep_CnName;
tmp += "</div>";
tmp += "</div>";
//输出员工
int orgid = Extend.LoginState.Admin.CurrentUser.Org_ID;
Song.Entities.EmpAccount[] ema = Business.Do<IEmployee>().GetAll(orgid,d.Dep_Id,true,"");
if (ema != null && ema.Length>0)
{
tmp += "<div type=\"emplyeepanel\" patId=\"" + d.Dep_Id + "\" class=\"panel\">";
foreach (Song.Entities.EmpAccount ea in ema)
{
tmp += "<div type=\"empnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/join.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/page.gif\"/>";
tmp += "</div>";
//员工名称
tmp += "<div nodetype=\"text\" class=\"ctext\" nodeid=\"" + ea.Acc_Id + "\">";
tmp += ea.Acc_Name;
tmp += "</div>";
tmp += "</div>";
}
tmp += "</div>";
}
tmp += this.buildDepart(d.Dep_Id, depart);
}
}
tmp += "</div>";
return tmp;
}
/// <summary>
/// 输入岗位(角色)
/// </summary>
/// <param name="posi"></param>
/// <returns></returns>
private string buildPosi(Song.Entities.Position[] posi)
{
string tmp = "";
tmp += "<div type=\"departpanel\" patId=\"0\" class=\"panel\">";
//顶级节点
tmp += "<div type=\"allnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/root.gif\"/>";
tmp += "</div>";
//院系名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"0\">";
tmp += "全部";
tmp += "</div>";
tmp += "</div>";
foreach (Song.Entities.Position d in posi)
{
tmp += "<div type=\"departnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/minus.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/folderopen.gif\"/>";
tmp += "</div>";
//组名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"" + d.Posi_Id + "\">";
tmp += d.Posi_Name;
tmp += "</div>";
tmp += "</div>";
//输出员工
Song.Entities.EmpAccount[] ema = Business.Do<IPosition>().GetAllEmplyee(d.Posi_Id,true);
if (ema != null && ema.Length > 0)
{
tmp += "<div type=\"emplyeepanel\" patId=\"" + d.Posi_Id + "\" class=\"panel\">";
foreach (Song.Entities.EmpAccount ea in ema)
{
tmp += "<div type=\"empnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/join.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/page.gif\"/>";
tmp += "</div>";
//员工名称
tmp += "<div nodetype=\"text\" class=\"ctext\" nodeid=\"" + ea.Acc_Id + "\">";
tmp += ea.Acc_Name;
tmp += "</div>";
tmp += "</div>";
}
tmp += "</div>";
}
}
tmp += "</div>";
return tmp;
}
/// <summary>
/// 工作组
/// </summary>
/// <param name="posi"></param>
/// <returns></returns>
private string buildGroup(Song.Entities.EmpGroup[] group)
{
string tmp = "";
tmp += "<div type=\"departpanel\" patId=\"0\" class=\"panel\">";
//顶级节点
tmp += "<div type=\"allnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/root.gif\"/>";
tmp += "</div>";
//院系名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"0\">";
tmp += "全部";
tmp += "</div>";
tmp += "</div>";
foreach (Song.Entities.EmpGroup d in group)
{
tmp += "<div type=\"departnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/minus.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/folderopen.gif\"/>";
tmp += "</div>";
//组名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"" + d.EGrp_Id + "\">";
tmp += d.EGrp_Name;
tmp += "</div>";
tmp += "</div>";
//输出员工
Song.Entities.EmpAccount[] ema = Business.Do<IEmpGroup>().GetAll4Group(d.EGrp_Id, true);
if (ema != null && ema.Length > 0)
{
tmp += "<div type=\"emplyeepanel\" patId=\"" + d.EGrp_Id + "\" class=\"panel\">";
foreach (Song.Entities.EmpAccount ea in ema)
{
tmp += "<div type=\"empnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/join.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/page.gif\"/>";
tmp += "</div>";
//员工名称
tmp += "<div nodetype=\"text\" class=\"ctext\" nodeid=\"" + ea.Acc_Id + "\">";
tmp += ea.Acc_Name;
tmp += "</div>";
tmp += "</div>";
}
tmp += "</div>";
}
}
tmp += "</div>";
return tmp;
}
/// <summary>
/// 在线用户
/// </summary>
/// <returns></returns>
private string buildOnline()
{
string tmp = "";
tmp += "<div type=\"departpanel\" patId=\"0\" class=\"panel\">";
//顶级节点
tmp += "<div type=\"allnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/root.gif\"/>";
tmp += "</div>";
//院系名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"0\">";
tmp += "全部";
tmp += "</div>";
tmp += "</div>";
tmp += "<div type=\"departnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/minus.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/folderopen.gif\"/>";
tmp += "</div>";
//组名称
tmp += "<div nodetype=\"text\" class=\"ptext\" nodeid=\"1\">";
tmp += "在线人员";
tmp += "</div>";
tmp += "</div>";
List<EmpAccount> acc = Extend.LoginState.Admin.OnlineUser;
//DataTable dt = Extend.LoginState.Admin.GetOnlineUser();
if (acc.Count > 0)
{
tmp += "<div type=\"emplyeepanel\" patId=\"1\" class=\"panel\">";
foreach(EmpAccount ea in acc)
{
tmp += "<div type=\"empnode\" class=\"nodeline\">";
//前面的图标
tmp += "<div nodetype=\"ico\" class=\"ico\">";
tmp += "<img src=\"/Manage/Images/tree/join.gif\"/>";
tmp += "<img src=\"/Manage/Images/tree/page.gif\"/>";
tmp += "</div>";
//员工名称
tmp += "<div nodetype=\"text\" class=\"ctext\" nodeid=\"" +ea.Acc_Id + "\" title=\"" + ea.Acc_LastTime.ToString() + "\">";
tmp += ea.Acc_Name;
//tmp += +dr["time"].ToString();
tmp += "</div>";
tmp += "</div>";
}
tmp += "</div>";
}
tmp += "</div>";
return tmp;
}
#endregion
}
}