危险源管理模块接入真实数据库:新增危大/超危工程、风险控制清单、安全验收、安全巡检、临时用电管理(含前端页面、BLL/API服务、WebAPI控制器、Model项、SQL脚本与接口文档)

排除 CreateModel.bat(含明文sa密码与本地服务器名,未入库)
This commit is contained in:
2026-08-24 11:07:59 +08:00
parent 4925a6c4b0
commit 55944d732a
323 changed files with 9806 additions and 922 deletions
@@ -0,0 +1,150 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PowerBox.aspx.cs" Inherits="FineUIPro.Web.HSSE.PowerMG.PowerBox" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>配电箱管理</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="配电箱管理" EnableCollapse="true"
runat="server" BoxFlex="1" EnableColumnLines="true" DataKeyNames="PowerBoxId"
DataIDField="PowerBoxId" AllowSorting="true"
SortField="PowerBoxCode" SortDirection="ASC" OnSort="Grid1_Sort" AllowPaging="true"
IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick"
EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:TextBox runat="server" Label="编号" ID="txtPowerBoxCode" EmptyText="输入查询条件"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="180px" LabelAlign="right"
LabelWidth="50px">
</f:TextBox>
<f:TextBox runat="server" Label="名称" ID="txtPowerBoxName" EmptyText="输入查询条件"
AutoPostBack="true" OnTextChanged="TextBox_TextChanged" Width="200px" LabelAlign="right"
LabelWidth="50px">
</f:TextBox>
<f:DropDownList ID="ddlBoxType" runat="server" Label="类型" LabelAlign="right" LabelWidth="50px"
Width="130px" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
<f:ListItem Text="全部" Value="" />
<f:ListItem Text="总配电箱" Value="总配电箱" />
<f:ListItem Text="分配电箱" Value="分配电箱" />
<f:ListItem Text="开关箱" Value="开关箱" />
</f:DropDownList>
<f:DropDownList ID="ddlStates" runat="server" Label="状态" LabelAlign="right" LabelWidth="50px"
Width="130px" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
<f:ListItem Text="全部" Value="" />
<f:ListItem Text="正常" Value="正常" />
<f:ListItem Text="停用" Value="停用" />
<f:ListItem Text="维修中" Value="维修中" />
</f:DropDownList>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" EnablePostBack="false" runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="50px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="100px" ColumnID="PowerBoxCode" DataField="PowerBoxCode"
SortField="PowerBoxCode" FieldType="String" HeaderText="编号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="140px" ColumnID="PowerBoxName" DataField="PowerBoxName"
SortField="PowerBoxName" FieldType="String" HeaderText="名称/型号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="90px" ColumnID="BoxType" DataField="BoxType"
SortField="BoxType" FieldType="String" HeaderText="类型" HeaderTextAlign="Center"
TextAlign="Center">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="InstallPlace" DataField="InstallPlace"
SortField="InstallPlace" FieldType="String" HeaderText="安装位置" HeaderTextAlign="Center"
TextAlign="Left" ExpandUnusedSpace="true">
</f:RenderField>
<f:RenderField Width="80px" ColumnID="RatedCapacity" DataField="RatedCapacity"
SortField="RatedCapacity" FieldType="String" HeaderText="额定容量(A)" HeaderTextAlign="Center"
TextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="ManagerUnit" DataField="ManagerUnit"
SortField="ManagerUnit" FieldType="String" HeaderText="责任单位" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="90px" ColumnID="ManagerMan" DataField="ManagerMan"
SortField="ManagerMan" FieldType="String" HeaderText="责任人" HeaderTextAlign="Center"
TextAlign="Center">
</f:RenderField>
<f:RenderField Width="70px" ColumnID="States" DataField="States"
SortField="States" FieldType="String" HeaderText="状态" HeaderTextAlign="Center"
TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="LastCheckDate" DataField="LastCheckDate"
SortField="LastCheckDate" FieldType="Date" Renderer="Date" HeaderText="最近巡检日期" HeaderTextAlign="Center"
TextAlign="Center">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="10" Value="10" />
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
<f:ListItem Text="所有行" Value="100000" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="编辑" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="true" runat="server" IsModal="true" Width="820px"
Height="620px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="TableEdit" EnablePostBack="true"
runat="server" Text="编辑">
</f:MenuButton>
<f:MenuButton ID="btnQR" OnClick="btnQR_Click" EnablePostBack="true"
runat="server" Text="二维码" Icon="Shading">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server"
Text="删除">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false,来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>
@@ -0,0 +1,315 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
namespace FineUIPro.Web.HSSE.PowerMG
{
/// <summary>
/// 配电箱信息实体(模拟数据阶段使用,接入数据库后可删除)
/// </summary>
public class PowerBoxInfo
{
/// <summary>
/// 主键
/// </summary>
public string PowerBoxId { get; set; }
/// <summary>
/// 配电箱编号
/// </summary>
public string PowerBoxCode { get; set; }
/// <summary>
/// 配电箱名称/型号
/// </summary>
public string PowerBoxName { get; set; }
/// <summary>
/// 类型(总配电箱/分配电箱/开关箱)
/// </summary>
public string BoxType { get; set; }
/// <summary>
/// 安装位置
/// </summary>
public string InstallPlace { get; set; }
/// <summary>
/// 额定容量(A)
/// </summary>
public string RatedCapacity { get; set; }
/// <summary>
/// 电压等级
/// </summary>
public string VoltageLevel { get; set; }
/// <summary>
/// 责任单位
/// </summary>
public string ManagerUnit { get; set; }
/// <summary>
/// 责任人
/// </summary>
public string ManagerMan { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public string ManagerTel { get; set; }
/// <summary>
/// 状态(正常/停用/维修中)
/// </summary>
public string States { get; set; }
/// <summary>
/// 最近巡检日期
/// </summary>
public DateTime? LastCheckDate { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}
/// <summary>
/// 配电箱管理页面(当前为模拟数据演示,数据存于 Session,后续接入数据库)
/// </summary>
public partial class PowerBox : PageBase
{
/// <summary>
/// 模拟数据Session键
/// </summary>
public const string MockSessionKey = "PowerBoxMockData";
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.InitMockData();
this.btnNew.OnClientClick = Window1.GetShowReference("PowerBoxEdit.aspx") + "return false;";
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
this.BindGrid();
}
}
#endregion
#region
/// <summary>
/// 初始化模拟数据(Session为空时生成)
/// </summary>
private void InitMockData()
{
if (Session[MockSessionKey] == null)
{
Session[MockSessionKey] = CreateMockData();
}
}
/// <summary>
/// 获取模拟数据列表(来自Session)
/// </summary>
private List<PowerBoxInfo> GetMockList()
{
return Session[MockSessionKey] as List<PowerBoxInfo>;
}
/// <summary>
/// 生成初始模拟数据
/// </summary>
private List<PowerBoxInfo> CreateMockData()
{
List<PowerBoxInfo> list = new List<PowerBoxInfo>();
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-001", PowerBoxName = "总配电箱1#XL-21型)", BoxType = "总配电箱", InstallPlace = "项目部西侧配电房", RatedCapacity = "630", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "张建国", ManagerTel = "13800001201", States = "正常", LastCheckDate = new DateTime(2026, 1, 10), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-002", PowerBoxName = "分配电箱1#楼", BoxType = "分配电箱", InstallPlace = "1#楼一层东侧", RatedCapacity = "250", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "李卫东", ManagerTel = "13800001202", States = "正常", LastCheckDate = new DateTime(2026, 1, 8), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-003", PowerBoxName = "分配电箱2#楼", BoxType = "分配电箱", InstallPlace = "2#楼一层西侧", RatedCapacity = "250", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "李卫东", ManagerTel = "13800001203", States = "正常", LastCheckDate = new DateTime(2026, 1, 5), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-004", PowerBoxName = "开关箱1-1", BoxType = "开关箱", InstallPlace = "1#楼三层南侧", RatedCapacity = "63", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "王强", ManagerTel = "13800001204", States = "正常", LastCheckDate = new DateTime(2026, 1, 12), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-005", PowerBoxName = "开关箱1-2", BoxType = "开关箱", InstallPlace = "1#楼五层北侧", RatedCapacity = "63", VoltageLevel = "380V", ManagerUnit = "河北安装一分公司", ManagerMan = "王强", ManagerTel = "13800001205", States = "维修中", LastCheckDate = new DateTime(2025, 12, 28), Remark = "漏电保护器故障,待更换" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-006", PowerBoxName = "总配电箱2#", BoxType = "总配电箱", InstallPlace = "生活区东侧", RatedCapacity = "400", VoltageLevel = "380V", ManagerUnit = "河北安装二分公司", ManagerMan = "刘志刚", ManagerTel = "13800001206", States = "正常", LastCheckDate = new DateTime(2026, 1, 11), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-007", PowerBoxName = "分配电箱生活区", BoxType = "分配电箱", InstallPlace = "生活区食堂旁", RatedCapacity = "160", VoltageLevel = "380V", ManagerUnit = "河北安装二分公司", ManagerMan = "刘志刚", ManagerTel = "13800001207", States = "正常", LastCheckDate = new DateTime(2026, 1, 6), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-008", PowerBoxName = "开关箱钢筋棚", BoxType = "开关箱", InstallPlace = "钢筋加工棚北侧", RatedCapacity = "63", VoltageLevel = "380V", ManagerUnit = "河北安装二分公司", ManagerMan = "赵磊", ManagerTel = "13800001208", States = "停用", LastCheckDate = new DateTime(2025, 12, 20), Remark = "钢筋棚搬迁后停用" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-009", PowerBoxName = "分配电箱塔吊1#", BoxType = "分配电箱", InstallPlace = "1#塔吊基础旁", RatedCapacity = "250", VoltageLevel = "380V", ManagerUnit = "河北安装三分公司", ManagerMan = "孙立新", ManagerTel = "13800001209", States = "正常", LastCheckDate = new DateTime(2026, 1, 9), Remark = "" });
list.Add(new PowerBoxInfo { PowerBoxId = Guid.NewGuid().ToString(), PowerBoxCode = "PDX-010", PowerBoxName = "开关箱塔吊1#", BoxType = "开关箱", InstallPlace = "1#塔吊操作室", RatedCapacity = "40", VoltageLevel = "380V", ManagerUnit = "河北安装三分公司", ManagerMan = "孙立新", ManagerTel = "13800001210", States = "正常", LastCheckDate = new DateTime(2026, 1, 9), Remark = "" });
return list;
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
List<PowerBoxInfo> list = GetMockList();
if (list == null)
{
this.InitMockData();
list = GetMockList();
}
////查询条件过滤
string code = this.txtPowerBoxCode.Text.Trim();
if (!string.IsNullOrEmpty(code))
{
list = list.Where(x => x.PowerBoxCode.Contains(code)).ToList();
}
string name = this.txtPowerBoxName.Text.Trim();
if (!string.IsNullOrEmpty(name))
{
list = list.Where(x => x.PowerBoxName.Contains(name)).ToList();
}
if (!string.IsNullOrEmpty(this.ddlBoxType.SelectedValue))
{
list = list.Where(x => x.BoxType == this.ddlBoxType.SelectedValue).ToList();
}
if (!string.IsNullOrEmpty(this.ddlStates.SelectedValue))
{
list = list.Where(x => x.States == this.ddlStates.SelectedValue).ToList();
}
Grid1.RecordCount = list.Count;
var table = this.GetPagedDataTable(Grid1, list);
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 分页事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
this.BindGrid();
}
/// <summary>
/// 每页记录数下拉事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
this.Grid1.PageSize = Convert.ToInt32(this.ddlPageSize.SelectedValue);
this.BindGrid();
}
/// <summary>
/// 排序事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 双击行编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
this.EditData();
}
/// <summary>
/// 右键菜单编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
this.EditData();
}
/// <summary>
/// 编辑数据方法
/// </summary>
private void EditData()
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
string id = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PowerBoxEdit.aspx?PowerBoxId={0}", id)));
}
#endregion
#region
/// <summary>
/// 右键菜单删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
List<PowerBoxInfo> list = GetMockList();
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
list.RemoveAll(x => x.PowerBoxId == rowID);
}
Session[MockSessionKey] = list;
this.BindGrid();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 生成巡检二维码(模拟阶段:二维码内容为配电箱标识,接入数据库后可改为巡检URL)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnQR_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
string id = Grid1.SelectedRowID;
List<PowerBoxInfo> list = GetMockList();
PowerBoxInfo info = list.FirstOrDefault(x => x.PowerBoxId == id);
if (info != null)
{
////二维码内容:配电箱标识(编号),后续可替换为巡检页面URL
string strValue = "powerbox$" + info.PowerBoxCode;
string urlName = info.PowerBoxCode;
string title = "配电箱:" + info.PowerBoxCode + " " + info.PowerBoxName;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("~/Controls/ShowQRImage.aspx?strValue={0}&urlName={1}&title={2}", strValue, urlName, System.Web.HttpUtility.UrlEncode(title)), "巡检二维码", 340, 400));
}
}
#endregion
}
}
+188
View File
@@ -0,0 +1,188 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HSSE.PowerMG
{
public partial class PowerBox
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// txtPowerBoxCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtPowerBoxCode;
/// <summary>
/// txtPowerBoxName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtPowerBoxName;
/// <summary>
/// ddlBoxType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlBoxType;
/// <summary>
/// ddlStates 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlStates;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuEdit;
/// <summary>
/// btnQR 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnQR;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDelete;
}
}
@@ -0,0 +1,106 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PowerBoxEdit.aspx.cs" Inherits="FineUIPro.Web.HSSE.PowerMG.PowerBoxEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>编辑配电箱</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="SimpleForm1"/>
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" Title="配电箱信息" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtPowerBoxCode" runat="server" Label="编号" LabelAlign="Right"
MaxLength="50" Required="true" ShowRedStar="true" LabelWidth="90px">
</f:TextBox>
<f:TextBox ID="txtPowerBoxName" runat="server" Label="名称/型号" LabelAlign="Right"
MaxLength="100" Required="true" ShowRedStar="true" LabelWidth="90px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="ddlBoxType" runat="server" Label="类型" LabelAlign="Right"
LabelWidth="90px" Required="true" ShowRedStar="true">
<f:ListItem Text="总配电箱" Value="总配电箱" />
<f:ListItem Text="分配电箱" Value="分配电箱" />
<f:ListItem Text="开关箱" Value="开关箱" />
</f:DropDownList>
<f:TextBox ID="txtInstallPlace" runat="server" Label="安装位置" LabelAlign="Right"
MaxLength="200" LabelWidth="90px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtRatedCapacity" runat="server" Label="额定容量(A)" LabelAlign="Right"
MaxLength="20" LabelWidth="90px">
</f:TextBox>
<f:DropDownList ID="ddlVoltageLevel" runat="server" Label="电压等级" LabelAlign="Right"
LabelWidth="90px">
<f:ListItem Text="380V" Value="380V" Selected="true" />
<f:ListItem Text="220V" Value="220V" />
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtManagerUnit" runat="server" Label="责任单位" LabelAlign="Right"
MaxLength="100" LabelWidth="90px">
</f:TextBox>
<f:TextBox ID="txtManagerMan" runat="server" Label="责任人" LabelAlign="Right"
MaxLength="50" LabelWidth="90px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtManagerTel" runat="server" Label="联系电话" LabelAlign="Right"
MaxLength="20" LabelWidth="90px">
</f:TextBox>
<f:DropDownList ID="ddlStates" runat="server" Label="状态" LabelAlign="Right"
LabelWidth="90px">
<f:ListItem Text="正常" Value="正常" Selected="true" />
<f:ListItem Text="停用" Value="停用" />
<f:ListItem Text="维修中" Value="维修中" />
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="dpLastCheckDate" runat="server" Label="最近巡检日期" LabelAlign="Right"
LabelWidth="90px" DateFormatString="yyyy-MM-dd">
</f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" LabelAlign="Right" Height="80px"
MaxLength="500" LabelWidth="90px">
</f:TextArea>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1"
OnClick="btnSave_Click">
</f:Button>
<f:Button ID="btnClose" EnablePostBack="false" ToolTip="关闭" runat="server" Icon="SystemClose">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,162 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace FineUIPro.Web.HSSE.PowerMG
{
/// <summary>
/// 编辑配电箱页面(模拟数据阶段,数据存于 Session,接入数据库后替换为数据库操作)
/// </summary>
public partial class PowerBoxEdit : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
private string PowerBoxId
{
get
{
return (string)ViewState["PowerBoxId"];
}
set
{
ViewState["PowerBoxId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.PowerBoxId = Request.Params["PowerBoxId"];
if (!string.IsNullOrEmpty(this.PowerBoxId))
{
////编辑:回填数据
List<PowerBoxInfo> list = this.GetMockList();
PowerBoxInfo info = list.FirstOrDefault(x => x.PowerBoxId == this.PowerBoxId);
if (info != null)
{
this.txtPowerBoxCode.Text = info.PowerBoxCode;
this.txtPowerBoxName.Text = info.PowerBoxName;
this.ddlBoxType.SelectedValue = info.BoxType;
this.txtInstallPlace.Text = info.InstallPlace;
this.txtRatedCapacity.Text = info.RatedCapacity;
this.ddlVoltageLevel.SelectedValue = info.VoltageLevel;
this.txtManagerUnit.Text = info.ManagerUnit;
this.txtManagerMan.Text = info.ManagerMan;
this.txtManagerTel.Text = info.ManagerTel;
this.ddlStates.SelectedValue = info.States;
if (info.LastCheckDate.HasValue)
{
this.dpLastCheckDate.SelectedDate = info.LastCheckDate.Value;
}
this.txtRemark.Text = info.Remark;
}
}
else
{
////新增:自动生成编号
this.txtPowerBoxCode.Text = this.GetNewCode();
}
}
}
#endregion
#region
/// <summary>
/// 获取模拟数据列表(来自Session)
/// </summary>
private List<PowerBoxInfo> GetMockList()
{
return Session[PowerBox.MockSessionKey] as List<PowerBoxInfo>;
}
/// <summary>
/// 自动生成配电箱编号(PDX-XXX,取现有最大序号加1)
/// </summary>
private string GetNewCode()
{
List<PowerBoxInfo> list = GetMockList();
int max = 0;
if (list != null)
{
foreach (PowerBoxInfo item in list)
{
string code = item.PowerBoxCode;
if (!string.IsNullOrEmpty(code) && code.StartsWith("PDX-"))
{
int num = 0;
if (int.TryParse(code.Substring(4), out num) && num > max)
{
max = num;
}
}
}
}
return string.Format("PDX-{0:D3}", max + 1);
}
#endregion
#region
/// <summary>
/// 保存按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
List<PowerBoxInfo> list = GetMockList();
if (list == null)
{
list = new List<PowerBoxInfo>();
}
PowerBoxInfo info = new PowerBoxInfo
{
PowerBoxCode = this.txtPowerBoxCode.Text.Trim(),
PowerBoxName = this.txtPowerBoxName.Text.Trim(),
BoxType = this.ddlBoxType.SelectedValue,
InstallPlace = this.txtInstallPlace.Text.Trim(),
RatedCapacity = this.txtRatedCapacity.Text.Trim(),
VoltageLevel = this.ddlVoltageLevel.SelectedValue,
ManagerUnit = this.txtManagerUnit.Text.Trim(),
ManagerMan = this.txtManagerMan.Text.Trim(),
ManagerTel = this.txtManagerTel.Text.Trim(),
States = this.ddlStates.SelectedValue,
LastCheckDate = this.dpLastCheckDate.SelectedDate,
Remark = this.txtRemark.Text.Trim()
};
if (!string.IsNullOrEmpty(this.PowerBoxId))
{
////编辑:更新原记录
info.PowerBoxId = this.PowerBoxId;
int index = list.FindIndex(x => x.PowerBoxId == this.PowerBoxId);
if (index >= 0)
{
list[index] = info;
}
else
{
list.Insert(0, info);
}
}
else
{
////新增:插入记录
info.PowerBoxId = Guid.NewGuid().ToString();
list.Insert(0, info);
}
Session[PowerBox.MockSessionKey] = list;
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
#endregion
}
}
@@ -0,0 +1,188 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HSSE.PowerMG
{
public partial class PowerBoxEdit
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtPowerBoxCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtPowerBoxCode;
/// <summary>
/// txtPowerBoxName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtPowerBoxName;
/// <summary>
/// ddlBoxType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlBoxType;
/// <summary>
/// txtInstallPlace 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtInstallPlace;
/// <summary>
/// txtRatedCapacity 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtRatedCapacity;
/// <summary>
/// ddlVoltageLevel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlVoltageLevel;
/// <summary>
/// txtManagerUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtManagerUnit;
/// <summary>
/// txtManagerMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtManagerMan;
/// <summary>
/// txtManagerTel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtManagerTel;
/// <summary>
/// ddlStates 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlStates;
/// <summary>
/// dpLastCheckDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker dpLastCheckDate;
/// <summary>
/// txtRemark 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemark;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
}
}