This commit is contained in:
geh
2026-03-23 15:22:29 +08:00
parent 94584d242b
commit c38590add8
173 changed files with 19679 additions and 4413 deletions
@@ -0,0 +1,150 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RewardAndPunishManager.aspx.cs" Inherits="FineUIPro.Web.BaseInfo.RewardAndPunishManager" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<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" Title="奖罚类别维护" Layout="HBox" ShowHeader="false">
<Items>
<f:Grid ID="Grid1" Title="奖罚类别维护" ShowHeader="false" EnableCollapse="true" PageSize="10" ForceFit="true"
ShowBorder="true" AllowPaging="true" IsDatabasePaging="true" runat="server" Width="850px" EnableColumnLines="true"
DataKeyNames="ID" DataIDField="ID" OnPageIndexChange="Grid1_PageIndexChange"
AllowFilters="true" OnFilterChange="Grid1_FilterChange" EnableTextSelection="True">
<Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center"
TextAlign="Center"/>
<f:RenderField Width="300px" ColumnID="ConstText" DataField="ConstText" FieldType="String"
HeaderText="奖罚名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="300px" ColumnID="GroupName" DataField="GroupName" FieldType="String"
HeaderText="类别" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="300px" ColumnID="Remark" DataField="Remark" FieldType="String"
HeaderText="备注" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="rowselect" Handler="onGridRowSelect"/>
<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:DropDownList>
</PageItems>
</f:Grid>
<f:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="true" ShowHeader="false"
LabelWidth="80px" BodyPadding="5px" Width="350px">
<Items>
<f:TextBox ID="hfFormID" Hidden="true"
runat="server" LabelAlign="right">
</f:TextBox>
<f:TextBox ID="txtTrainLevelName" Label="奖罚名称" ShowRedStar="true" Required="true" runat="server" LabelWidth="110px"
LabelAlign="right" AutoPostBack="true" OnTextChanged="TextBox_TextChanged">
</f:TextBox>
<f:RadioButtonList ID="rblIsType" runat="server" Label="类别" LabelAlign="Right" Required="True" ShowRedStar="True" LabelWidth="110px">
<f:RadioItem Value="奖励" Text="奖励"/>
<f:RadioItem Value="处罚" Text="处罚"/>
</f:RadioButtonList>
<f:TextArea ID="txtRemark" runat="server" Label="备注" LabelAlign="right" LabelWidth="110px">
</f:TextArea>
</Items>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" runat="server">
<Items>
<f:Button ID="btnNew" Icon="Add" ToolTip="新增" EnablePostBack="false" runat="server" Text="新增">
<Listeners>
<f:Listener Event="click" Handler="onNewButtonClick"/>
</Listeners>
</f:Button>
<f:Button ID="btnDelete" Enabled="false" ToolTip="删除" Icon="Delete" ConfirmText="确定删除当前数据?" Text="删除"
OnClick="btnDelete_Click" runat="server">
</f:Button>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ValidateForms="SimpleForm1" Text="保存"
OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:SimpleForm>
</Items>
</f:Panel>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" EnablePostBack="true"
runat="server" Text="编辑" Icon="Pencil">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server" Text="删除" Icon="Delete">
</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');
}
var gridClientID = '<%= Grid1.ClientID %>';
var btnDeleteClientID = '<%= btnDelete.ClientID %>';
var btnSaveClientID = '<%= btnSave.ClientID %>';
var formClientID = '<%= SimpleForm1.ClientID %>';
var hfFormIDClientID = '<%= hfFormID.ClientID %>';
var rblIsTypeClientID = '<%= rblIsType.ClientID %>';
var txtNameClientID = '<%= txtTrainLevelName.ClientID %>';
var txtRemarkClientID = '<%= txtRemark.ClientID %>';
function onGridRowSelect(event, rowId) {
var grid = F(gridClientID);
// 启用删除按钮
F(btnDeleteClientID).enable();
// 当前行数据
var rowValue = grid.getRowValue(rowId);
console.log(rowValue)
// 使用当前行数据填充表单字段
F(hfFormIDClientID).setValue(rowId);
F(rblIsTypeClientID).setValue(rowValue['GroupName']);
F(txtNameClientID).setValue(rowValue['ConstText']);
F(txtRemarkClientID).setValue(rowValue['Remark']);
// 更新保存按钮文本
// F(btnSaveClientID).setText('保存数据(编辑)');
}
function onNewButtonClick() {
// 重置表单字段
F(formClientID).reset();
F(hfFormIDClientID).reset();
// 清空表格选中行
F(gridClientID).clearSelections();
// 禁用删除按钮
F(btnDeleteClientID).disable();
// 更新保存按钮文本
// F(btnSaveClientID).setText('保存数据(新增)');
}
</script>
</body>
</html>
@@ -0,0 +1,349 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BLL;
namespace FineUIPro.Web.BaseInfo
{
public partial class RewardAndPunishManager : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
////权限按钮方法
this.GetButtonPower();
Funs.DropDownPageSize(this.ddlPageSize);
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
}
}
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId,
BLL.Const.RewardAndPunishManagerMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnDelete.Hidden = false;
this.btnMenuDelete.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
}
}
}
#endregion
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
var q = from x in Funs.DB.Sys_Const
where x.GroupId == "RewardType" || x.GroupId == "PunishType"
orderby x.SortIndex
select new
{
ID = x.ID,
ConstText = x.ConstText,
Remark = x.Remark,
GroupName = x.GroupId == "RewardType" ? "奖励" : "处罚"
};
Grid1.RecordCount = q.Count();
// 2.获取当前分页数据
var table = GetPagedDataTable(Grid1.PageIndex, Grid1.PageSize);
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 分页
/// </summary>
/// <returns></returns>
private List<dynamic> GetPagedDataTable(int pageIndex, int pageSize)
{
var source =
(from x in Funs.DB.Sys_Const
where x.GroupId == "RewardType" || x.GroupId == "PunishType"
orderby x.SortIndex
select new
{
ID = x.ID,
ConstText = x.ConstText,
Remark = x.Remark,
GroupName = x.GroupId == "RewardType" ? "奖励" : "处罚"
}).ToList();
List<dynamic> paged = new List<dynamic>();
int rowbegin = pageIndex * pageSize;
int rowend = (pageIndex + 1) * pageSize;
if (rowend > source.Count())
{
rowend = source.Count();
}
for (int i = rowbegin; i < rowend; i++)
{
paged.Add(source[i]);
}
return paged;
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// 分页下拉选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 过滤表头
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDelete_Click(object sender, EventArgs e)
{
var trainLevel = Funs.DB.Sys_Const.FirstOrDefault(x => x.ID == hfFormID.Text);
if (trainLevel != null)
{
Funs.DB.Sys_Const.DeleteOnSubmit(trainLevel);
Funs.DB.SubmitChanges();
// 重新绑定表格,并模拟点击[新增按钮]
BindGrid();
PageContext.RegisterStartupScript("onNewButtonClick();");
}
}
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
this.DeleteData();
}
/// <summary>
/// 删除方法
/// </summary>
private void DeleteData()
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var model = Funs.DB.Sys_Const.FirstOrDefault(x => x.ID == rowID);
if (model != null)
{
Funs.DB.Sys_Const.DeleteOnSubmit(model);
Funs.DB.SubmitChanges();
}
}
BindGrid();
PageContext.RegisterStartupScript("onNewButtonClick();");
}
}
#endregion
#region
/// <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;
var model = Funs.DB.Sys_Const.FirstOrDefault(x => x.ID == Id);
if (model != null)
{
this.txtTrainLevelName.Text = model.ConstText;
if (model.GroupId == "RewardType")
{
this.rblIsType.SelectedValue = "奖励";
}
else
{
this.rblIsType.SelectedValue = "处罚";
}
this.txtRemark.Text = model.Remark;
hfFormID.Text = Id;
this.btnDelete.Enabled = true;
}
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string strRowID = hfFormID.Text;
var model = new Model.Sys_Const
{
ConstText = this.txtTrainLevelName.Text.Trim(),
Remark = txtRemark.Text.Trim()
};
if (!string.IsNullOrEmpty(this.rblIsType.SelectedValue))
{
if (this.rblIsType.SelectedValue == "奖励")
{
model.GroupId = "RewardType";
}
else
{
model.GroupId = "PunishType";
}
}
if (string.IsNullOrEmpty(strRowID))
{
model.ID = SQLHelper.GetNewID(typeof(Model.Base_TrainLevel));
model.SortIndex = Funs.DB.Sys_Const.Where(x => x.GroupId == "RewardType" || x.GroupId == "PunishType")
.ToList().Count + 1;
if (!string.IsNullOrEmpty(this.rblIsType.SelectedValue))
{
if (this.rblIsType.SelectedValue == "奖励")
{
model.ConstValue = (Funs.DB.Sys_Const.Where(x => x.GroupId == "RewardType")
.ToList().Count + 1).ToString();
}
else
{
model.ConstValue = (Funs.DB.Sys_Const.Where(x => x.GroupId == "PunishType")
.ToList().Count + 1).ToString();
}
}
Funs.DB.Sys_Const.InsertOnSubmit(model);
Funs.DB.SubmitChanges();
}
else
{
model.ID = strRowID;
var newmodel = Funs.DB.Sys_Const.FirstOrDefault(x => x.ID == model.ID);
newmodel.ConstText = model.ConstText;
newmodel.Remark = model.Remark;
Funs.DB.SubmitChanges();
}
this.SimpleForm1.Reset();
// 重新绑定表格,并点击当前编辑或者新增的行
BindGrid();
PageContext.RegisterStartupScript(String.Format("F('{0}').selectRow('{1}');", Grid1.ClientID, model.ID));
}
#endregion
#region
/// <summary>
/// 验证部门名称、编号是否存在
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
var q = Funs.DB.Sys_Const.FirstOrDefault(x =>
(x.GroupId == "RewardType" || x.GroupId == "PunishType") &&
x.ConstText == this.txtTrainLevelName.Text.Trim() &&
(x.ID != hfFormID.Text || (hfFormID.Text == null && x.ID != null)));
if (q != null)
{
ShowNotify("输入的奖罚类别名称已存在!", MessageBoxIcon.Warning);
}
}
#endregion
}
}
@@ -0,0 +1,197 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.BaseInfo
{
public partial class RewardAndPunishManager
{
/// <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>
/// 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>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.SimpleForm SimpleForm1;
/// <summary>
/// hfFormID 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox hfFormID;
/// <summary>
/// txtTrainLevelName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtTrainLevelName;
/// <summary>
/// rblIsType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.RadioButtonList rblIsType;
/// <summary>
/// txtRemark 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemark;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnDelete;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuEdit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuEdit;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDelete;
}
}