小程序接口、培训计划界面调优

This commit is contained in:
2025-03-05 17:00:55 +08:00
parent e975ddbf1d
commit 02ba872cee
20 changed files with 422 additions and 1637 deletions
+100 -92
View File
@@ -9,100 +9,108 @@
</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" DataKeyNames="PlanId" EnableColumnLines="true" DataIDField="PlanId"
AllowSorting="true" SortField="PlanCode" SortDirection="DESC" OnSort="Grid1_Sort" AllowPaging="true"
IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange" ForceFit="true"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server">
<Items>
<f:DropDownList ID="drpWorkPost" runat="server" Label="位" EnableCheckBoxSelect="true"
EnableMultiSelect="true" AutoPostBack="true" OnSelectedIndexChanged="drpWorkPost_SelectedIndexChanged"
<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" DataKeyNames="PlanId" EnableColumnLines="true" DataIDField="PlanId"
AllowSorting="true" SortField="PlanCode" SortDirection="DESC" OnSort="Grid1_Sort" AllowPaging="true"
IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange" ForceFit="true"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server">
<Items>
<f:DropDownList ID="drpUnit" runat="server" Label="位" EnableCheckBoxSelect="true" AutoSelectFirstItem="false"
EnableMultiSelect="true" AutoPostBack="true" OnSelectedIndexChanged="drp_SelectedIndexChanged"
LabelAlign="Right" LabelWidth="50px" Width="260px">
</f:DropDownList>
<f:TextBox ID="txtName" runat="server" Label="查询" EmptyText="输入查询条件" AutoPostBack="true"
OnTextChanged="TextBox_TextChanged" Width="350px" LabelWidth="80px" LabelAlign="Right">
</f:TextBox>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" runat="server" OnClick="btnNew_Click"
>
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center"
TextAlign="Center" />
<f:RenderField Width="80px" ColumnID="PlanCode" DataField="PlanCode" SortField="PlanCode"
HeaderText="编号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="110px" ColumnID="PlanName" DataField="PlanName" FieldType="String"
HeaderText="名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:TemplateField Width="260px" HeaderText="接受培训单位" HeaderTextAlign="Center" TextAlign="Left" ColumnID="tfUnitNames">
<ItemTemplate>
<asp:Label ID="lbUnitNames" runat="server" Text='<%#ConvertUnitName(Eval("UnitIds")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:TemplateField Width="150px" HeaderText="接受培训岗位" HeaderTextAlign="Center" TextAlign="Left" ColumnID="tfWorkPostNames">
<ItemTemplate>
<asp:Label ID="lbtfWorkPostNames" runat="server" Text='<%#ConvertWorkPostName(Eval("WorkPostId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="90px" ColumnID="DesignerName" DataField="DesignerName" FieldType="String"
HeaderText="制定人" HeaderTextAlign="Center" TextAlign="Left" >
</f:RenderField>
<f:RenderField Width="100px" ColumnID="DesignerDate" DataField="DesignerDate" SortField="DesignerDate"
FieldType="Date" Renderer="Date" HeaderText="制定时间" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="TeachAddress" DataField="TeachAddress"
HeaderText="地点" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TrainStartDate" DataField="TrainStartDate" SortField="TrainStartDate"
FieldType="Date" Renderer="Date" HeaderText="培训时间" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="90px" ColumnID="States" DataField="States"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" TextAlign="Left">
</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:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="编辑培训计划" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true"
Width="1000px" Height="450px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuView" OnClick="btnMenuView_Click" EnablePostBack="true"
runat="server" Text="查看" Icon="Find">
</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="删除"
Hidden="true">
</f:MenuButton>
</f:Menu>
<f:DropDownList ID="drpWorkPost" runat="server" Label="岗位" EnableCheckBoxSelect="true" AutoSelectFirstItem="false"
EnableMultiSelect="true" AutoPostBack="true" OnSelectedIndexChanged="drp_SelectedIndexChanged"
LabelAlign="Right" LabelWidth="50px" Width="260px">
</f:DropDownList>
<f:TextBox ID="txtName" runat="server" Label="查询" EmptyText="输入计划编号、名称" AutoPostBack="true"
OnTextChanged="TextBox_TextChanged" Width="350px" LabelWidth="80px" LabelAlign="Right">
</f:TextBox>
<f:DropDownList runat="server" ID="drpTrainType" Label="培训类型" AutoSelectFirstItem="true" AutoPostBack="true" OnSelectedIndexChanged="drp_SelectedIndexChanged" LabelAlign="Right">
</f:DropDownList>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" runat="server" OnClick="btnNew_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center"
TextAlign="Center" />
<f:RenderField Width="80px" ColumnID="PlanCode" DataField="PlanCode" SortField="PlanCode"
HeaderText="编号" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="110px" ColumnID="PlanName" DataField="PlanName" FieldType="String"
HeaderText="名称" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="TrainTypeName" DataField="TrainTypeName" FieldType="String"
HeaderText="培训类型" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:TemplateField Width="260px" HeaderText="接受培训单位" HeaderTextAlign="Center" TextAlign="Left" ColumnID="tfUnitNames">
<ItemTemplate>
<asp:Label ID="lbUnitNames" runat="server" Text='<%#ConvertUnitName(Eval("UnitIds")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:TemplateField Width="150px" HeaderText="接受培训岗位" HeaderTextAlign="Center" TextAlign="Left" ColumnID="tfWorkPostNames">
<ItemTemplate>
<asp:Label ID="lbtfWorkPostNames" runat="server" Text='<%#ConvertWorkPostName(Eval("WorkPostId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="90px" ColumnID="DesignerName" DataField="DesignerName" FieldType="String"
HeaderText="制定人" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="DesignerDate" DataField="DesignerDate" SortField="DesignerDate"
FieldType="Date" Renderer="Date" HeaderText="制定时间" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="TeachAddress" DataField="TeachAddress"
HeaderText="地点" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TrainStartDate" DataField="TrainStartDate" SortField="TrainStartDate"
FieldType="Date" Renderer="Date" HeaderText="培训时间" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="90px" ColumnID="States" DataField="States"
FieldType="String" 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:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="编辑培训计划" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true"
Width="1000px" Height="450px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuView" OnClick="btnMenuView_Click" EnablePostBack="true"
runat="server" Text="查看" Icon="Find">
</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="删除"
Hidden="true">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
+60 -15
View File
@@ -21,14 +21,9 @@ namespace FineUIPro.Web.HSSE.EduTrain
{
Funs.DropDownPageSize(this.ddlPageSize);
this.GetButtonPower();
this.InitDropDownList();
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
var data = APIBaseInfoService.getWorkPost(CurrUser.ProjectId, null);
this.drpWorkPost.DataValueField = "BaseInfoId";
this.drpWorkPost.DataTextField = "BaseInfoName";
this.drpWorkPost.DataSource = data;
this.drpWorkPost.DataBind();
Funs.FineUIPleaseSelect(drpWorkPost);
// 绑定表格
BindGrid();
}
@@ -40,6 +35,22 @@ namespace FineUIPro.Web.HSSE.EduTrain
}
}
}
/// <summary>
/// 初始化下拉框
/// </summary>
private void InitDropDownList()
{
UnitService.InitUnitByProjectIdUnitTypeDropDownList1(drpUnit, this.CurrUser.LoginProjectId, false);
TrainTypeService.InitTrainTypeDropDownList(drpTrainType, true);
var data = APIBaseInfoService.getWorkPost(CurrUser.ProjectId, null);
this.drpWorkPost.DataValueField = "BaseInfoId";
this.drpWorkPost.DataTextField = "BaseInfoName";
this.drpWorkPost.DataSource = data;
this.drpWorkPost.DataBind();
//Funs.FineUIPleaseSelect(drpWorkPost);
}
#region
/// <summary>
/// 编制
@@ -60,10 +71,12 @@ namespace FineUIPro.Web.HSSE.EduTrain
private void BindGrid()
{
string strSql = @"SELECT Plans.PlanId,Plans.PlanCode, Plans.PlanName, Plans.DesignerId, Plans.DesignerDate, Plans.WorkPostId,UnitIds,TrainStartDate,TeachHour,TeachAddress,
(CASE Plans.States WHEN '0' THEN '计划中' WHEN '1' THEN '待考试' WHEN '2' THEN '考试中' WHEN '3' THEN '已结束' WHEN '-1' THEN '已作废' END ) AS States,
Users.UserName AS DesignerName,WorkPostNames"
(CASE Plans.States WHEN '0' THEN '计划中' WHEN '1' THEN '待考试' WHEN '2' THEN '考试中' WHEN '3' THEN '已结束' WHEN '-1' THEN '已作废' END ) AS States,
(CASE Plans.IsRetakeCourse WHEN '1' THEN '重修培训' ELSE '日常培训' END ) AS IsRetakeCourseStr,
TrainType.TrainTypeName,Plans.IsRetakeCourse,Users.UserName AS DesignerName,WorkPostNames"
+ @" FROM dbo.Training_Plan AS Plans "
+ @" LEFT JOIN Sys_User AS Users ON Users.UserId = Plans.DesignerId "
+ @" LEFT JOIN Base_TrainType AS TrainType ON TrainType.TrainTypeId = Plans.TrainTypeId "
+ @" WHERE Plans.ProjectId='" + this.CurrUser.LoginProjectId + "'";
List<SqlParameter> listStr = new List<SqlParameter>();
@@ -72,10 +85,40 @@ namespace FineUIPro.Web.HSSE.EduTrain
strSql += " AND (PlanCode LIKE @name OR PlanName LIKE @name)";
listStr.Add(new SqlParameter("@name", "%" + this.txtName.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.drpWorkPost.SelectedValue) && this.drpWorkPost.SelectedValue != "null")
if (this.drpUnit.SelectedItemArray.Count() > 1 || (this.drpUnit.SelectedValue != BLL.Const._Null && this.drpUnit.SelectedItemArray.Count() == 1))
{
strSql += " AND Plans.WorkPostId = '@workPost' ";
listStr.Add(new SqlParameter("@workPost", "%" + this.drpWorkPost.SelectedValue + "%"));
strSql += " AND (1=2 ";
int i = 0;
foreach (var item in this.drpUnit.SelectedValueArray)
{
if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null)
{
strSql += " OR Plans.UnitIds LIKE @UnitId" + i.ToString();
listStr.Add(new SqlParameter("@UnitId" + i.ToString(), "%" + item + "%"));
}
i++;
}
strSql += ")";
}
if (this.drpWorkPost.SelectedItemArray.Count() > 1 || (this.drpWorkPost.SelectedValue != BLL.Const._Null && this.drpWorkPost.SelectedItemArray.Count() == 1))
{
strSql += " AND (1=2 ";
int i = 0;
foreach (var item in this.drpWorkPost.SelectedValueArray)
{
if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null)
{
strSql += " OR Plans.WorkPostId LIKE @WorkPostId" + i.ToString();
listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), "%" + item + "%"));
}
i++;
}
strSql += ")";
}
if (!string.IsNullOrEmpty(this.drpTrainType.SelectedValue) && this.drpTrainType.SelectedValue != Const._Null)
{
strSql += " AND Plans.TrainTypeId = @TrainTypeId ";
listStr.Add(new SqlParameter("@TrainTypeId", this.drpTrainType.SelectedValue));
}
SqlParameter[] parameter = listStr.ToArray();
@@ -265,6 +308,12 @@ namespace FineUIPro.Web.HSSE.EduTrain
{
this.BindGrid();
}
protected void drp_SelectedIndexChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
#region
@@ -312,10 +361,6 @@ namespace FineUIPro.Web.HSSE.EduTrain
#endregion
protected void drpWorkPost_SelectedIndexChanged(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 查看二维码
+18
View File
@@ -59,6 +59,15 @@ namespace FineUIPro.Web.HSSE.EduTrain
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// drpUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnit;
/// <summary>
/// drpWorkPost 控件。
/// </summary>
@@ -77,6 +86,15 @@ namespace FineUIPro.Web.HSSE.EduTrain
/// </remarks>
protected global::FineUIPro.TextBox txtName;
/// <summary>
/// drpTrainType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpTrainType;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
@@ -470,8 +470,8 @@ namespace FineUIPro.Web.HSSE.EduTrain
if (dpUnit.SelectedValueArray != null && dpWorkPost.SelectedValueArray != null)
{
dpSysUser.Items.Clear();
string unitIds = string.Join(",", dpUnit.SelectedValue);
string workPostIds = string.Join(",", dpWorkPost.SelectedValue);
string unitIds = string.Join(",", dpUnit.SelectedValueArray);
string workPostIds = string.Join(",", dpWorkPost.SelectedValueArray);
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(this.CurrUser.LoginProjectId, unitIds, workPostIds, "", drpTrainType.SelectedValue, "", "").OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
dpSysUser.DataTextField = "PersonName";
dpSysUser.DataValueField = "PersonId";