20240308 会议管理

This commit is contained in:
毕文静 2024-03-08 23:33:10 +08:00
parent 75fc3cf2f5
commit a59e10daa2
37 changed files with 6024 additions and 431 deletions

View File

@ -0,0 +1,42 @@
Alter table Driver_Meeting add MeetingCode nvarchar(50)
Alter table Driver_Meeting add CompileMan nvarchar(50)
Alter table Driver_Meeting add CompileDate DateTime
Alter table Driver_Meeting add States char(1)
go
CREATE TABLE [dbo].[Driver_MeetingItem](
[MeetingItemId] [nvarchar](50) NOT NULL,
[MeetingId] [nvarchar](50) NOT NULL,
[UserId] [nvarchar](50) NULL,
[IsMeeting] [bit] NULL,
[Feedback] [nvarchar](100) NULL,
CONSTRAINT [PK_Driver_MeetingItem] PRIMARY KEY CLUSTERED
(
[MeetingItemId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Driver_MeetingItem] WITH CHECK ADD CONSTRAINT [FK_Driver_MeetingItem_Driver_Meeting] FOREIGN KEY([MeetingId])
REFERENCES [dbo].[Driver_Meeting] ([MeetingId])
GO
ALTER TABLE [dbo].[Driver_MeetingItem] CHECK CONSTRAINT [FK_Driver_MeetingItem_Driver_Meeting]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Driver_MeetingItem', @level2type=N'COLUMN',@level2name=N'MeetingItemId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'会议Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Driver_MeetingItem', @level2type=N'COLUMN',@level2name=N'MeetingId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'参会人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Driver_MeetingItem', @level2type=N'COLUMN',@level2name=N'UserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否参会' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Driver_MeetingItem', @level2type=N'COLUMN',@level2name=N'IsMeeting'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'反馈意见' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Driver_MeetingItem', @level2type=N'COLUMN',@level2name=N'Feedback'
GO

View File

@ -756,6 +756,7 @@
<Compile Include="TestRun\DriverSub\DriverSubService.cs" />
<Compile Include="TestRun\DriverSummary\DriverSummaryService.cs" />
<Compile Include="TestRun\FeedingTestRunService.cs" />
<Compile Include="TestRun\Meeting\MeetingItemService.cs" />
<Compile Include="TestRun\Meeting\MeetingService.cs" />
<Compile Include="TestRun\PersonTrain\DriverPrepareTrainPlanService.cs" />
<Compile Include="TestRun\PersonTrain\PersonTrainPlanService.cs" />

View File

@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
/// <summary>
/// 参会人
/// </summary>
public class MeetingItemService
{
/// <summary>
/// 根据会议Id获取参会人信息
/// </summary>
/// <param name="meetingId"></param>
/// <returns></returns>
public static List<Model.Driver_MeetingItem> GetMeetingItemByMeetingId(string meetingId)
{
return (from x in Funs.DB.Driver_MeetingItem where x.MeetingId == meetingId select x).ToList();
}
/// <summary>
/// 根据会议Id和参会人Id获取参会人信息
/// </summary>
/// <param name="meetingId"></param>
/// <param name="userId"></param>
/// <returns></returns>
public static Model.Driver_MeetingItem GetMeetingItemByMeetingIdAndUserId(string meetingId,string userId)
{
return (from x in Funs.DB.Driver_MeetingItem where x.MeetingId == meetingId && x.UserId == userId select x).FirstOrDefault();
}
/// <summary>
/// 添加参会人信息
/// </summary>
/// <param name="item"></param>
public static void AddMeetingItem(Model.Driver_MeetingItem item)
{
Model.Driver_MeetingItem newItem = new Model.Driver_MeetingItem
{
MeetingItemId = item.MeetingItemId,
MeetingId = item.MeetingId,
UserId = item.UserId,
IsMeeting = item.IsMeeting,
Feedback = item.Feedback
};
Funs.DB.Driver_MeetingItem.InsertOnSubmit(newItem);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改参会人信息
/// </summary>
/// <param name="item"></param>
public static void UpdateMeetingItem(Model.Driver_MeetingItem item)
{
Model.Driver_MeetingItem newItem = Funs.DB.Driver_MeetingItem.FirstOrDefault(e => e.MeetingItemId == item.MeetingItemId);
if (newItem != null)
{
newItem.IsMeeting = item.IsMeeting;
newItem.Feedback = item.Feedback;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据会议Id删除参会人信息
/// </summary>
/// <param name="meetingId"></param>
public static void DeleteMeetingItemByMeetingId(string meetingId)
{
var item = (from x in Funs.DB.Driver_MeetingItem where x.MeetingId == meetingId select x).ToList();
if (item != null)
{
Funs.DB.Driver_MeetingItem.DeleteAllOnSubmit(item);
Funs.DB.SubmitChanges();
}
}
}
}

View File

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Linq;
namespace BLL
{
@ -40,6 +36,10 @@ namespace BLL
newMeeting.MeetingType = meeting.MeetingType;
newMeeting.AttachUrl = meeting.AttachUrl;
newMeeting.Remark = meeting.Remark;
newMeeting.MeetingCode = meeting.MeetingCode;
newMeeting.CompileMan = meeting.CompileMan;
newMeeting.CompileDate = meeting.CompileDate;
newMeeting.States = meeting.States;
Funs.DB.Driver_Meeting.InsertOnSubmit(newMeeting);
Funs.DB.SubmitChanges();
@ -65,6 +65,8 @@ namespace BLL
//newMeeting.MeetingType = meeting.MeetingType;
newMeeting.AttachUrl = meeting.AttachUrl;
newMeeting.Remark = meeting.Remark;
newMeeting.MeetingCode = meeting.MeetingCode;
newMeeting.States = meeting.States;
Funs.DB.SubmitChanges();
}
@ -79,10 +81,9 @@ namespace BLL
Model.Driver_Meeting meeting = Funs.DB.Driver_Meeting.FirstOrDefault(e => e.MeetingId == meetingId);
if (meeting != null)
{
if (!string.IsNullOrEmpty(meeting.AttachUrl))
{
BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, meeting.AttachUrl);//删除附件
}
CommonService.DeleteAttachFileById(meetingId + "#1");//删除会议纪要附件
CommonService.DeleteAttachFileById(meetingId + "#2");//删除签到表附件
CommonService.DeleteFlowOperateByID(meetingId);//删除流程表
Funs.DB.Driver_Meeting.DeleteOnSubmit(meeting);
Funs.DB.SubmitChanges();
}

File diff suppressed because it is too large Load Diff

View File

@ -1775,12 +1775,16 @@
<Content Include="TestRun\DriverSummary\MonthSummaryEdit.aspx" />
<Content Include="TestRun\FeedingTestRun.aspx" />
<Content Include="TestRun\FeedingTestRunEdit.aspx" />
<Content Include="TestRun\Meeting\Feedback.aspx" />
<Content Include="TestRun\Meeting\ScheduleMeeting.aspx" />
<Content Include="TestRun\Meeting\ScheduleMeetingEdit.aspx" />
<Content Include="TestRun\Meeting\ScheduleMeetingView.aspx" />
<Content Include="TestRun\Meeting\SpecialMeeting.aspx" />
<Content Include="TestRun\Meeting\SpecialMeetingEdit.aspx" />
<Content Include="TestRun\Meeting\SpecialMeetingView.aspx" />
<Content Include="TestRun\Meeting\WeekMeeting.aspx" />
<Content Include="TestRun\Meeting\WeekMeetingEdit.aspx" />
<Content Include="TestRun\Meeting\WeekMeetingView.aspx" />
<Content Include="TestRun\PersonTrain\PersonTrainPlan.aspx" />
<Content Include="TestRun\PersonTrain\PersonTrainPlanEdit.aspx" />
<Content Include="TestRun\PersonTrain\TrainContact.aspx" />
@ -15976,6 +15980,13 @@
<Compile Include="TestRun\FeedingTestRunEdit.aspx.designer.cs">
<DependentUpon>FeedingTestRunEdit.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\Feedback.aspx.cs">
<DependentUpon>Feedback.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\Meeting\Feedback.aspx.designer.cs">
<DependentUpon>Feedback.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\ScheduleMeeting.aspx.cs">
<DependentUpon>ScheduleMeeting.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -15990,6 +16001,13 @@
<Compile Include="TestRun\Meeting\ScheduleMeetingEdit.aspx.designer.cs">
<DependentUpon>ScheduleMeetingEdit.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\ScheduleMeetingView.aspx.cs">
<DependentUpon>ScheduleMeetingView.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\Meeting\ScheduleMeetingView.aspx.designer.cs">
<DependentUpon>ScheduleMeetingView.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\SpecialMeeting.aspx.cs">
<DependentUpon>SpecialMeeting.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -16004,6 +16022,13 @@
<Compile Include="TestRun\Meeting\SpecialMeetingEdit.aspx.designer.cs">
<DependentUpon>SpecialMeetingEdit.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\SpecialMeetingView.aspx.cs">
<DependentUpon>SpecialMeetingView.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\Meeting\SpecialMeetingView.aspx.designer.cs">
<DependentUpon>SpecialMeetingView.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\WeekMeeting.aspx.cs">
<DependentUpon>WeekMeeting.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -16018,6 +16043,13 @@
<Compile Include="TestRun\Meeting\WeekMeetingEdit.aspx.designer.cs">
<DependentUpon>WeekMeetingEdit.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\Meeting\WeekMeetingView.aspx.cs">
<DependentUpon>WeekMeetingView.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\Meeting\WeekMeetingView.aspx.designer.cs">
<DependentUpon>WeekMeetingView.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\PersonTrain\PersonTrainPlan.aspx.cs">
<DependentUpon>PersonTrainPlan.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

View File

@ -0,0 +1,79 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Feedback.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.Feedback" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnSave" OnClick="btnSave_Click" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1">
</f:Button>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
</Items>
</f:Toolbar>
</Toolbars>
<Rows>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel2" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="false" AutoScroll="true"
runat="server">
<f:Form ID="Form2" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px">
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px"></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:RadioButtonList ID="rblIsMeeting" runat="server" Label="是否参会" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true" AutoPostBack="true" OnSelectedIndexChanged="rblIsMeeting_SelectedIndexChanged">
<f:RadioItem Value="1" Text="是" Selected="true" />
<f:RadioItem Value="0" Text="否" />
</f:RadioButtonList>
<f:Label ID="Label1" runat="server"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtFeedbak" runat="server" Label="反馈意见" LabelAlign="Right"></f:TextArea>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</form>
</body>
</html>

View File

@ -0,0 +1,77 @@
using System;
namespace FineUIPro.Web.TestRun.Meeting
{
public partial class Feedback : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.txtFeedbak.Hidden = true;
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
Model.Driver_Meeting data = BLL.MeetingService.GetMeetingById(id);
if (data != null)
{
this.hdId.Text = id;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
}
}
/// <summary>
/// 是否参会选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void rblIsMeeting_SelectedIndexChanged(object sender, EventArgs e)
{
if (rblIsMeeting.SelectedValue == "0")
{
this.txtFeedbak.Hidden = false;
}
else
{
this.txtFeedbak.Hidden = true;
}
}
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string id = Request.Params["id"];
var meetingItem = BLL.MeetingItemService.GetMeetingItemByMeetingIdAndUserId(id, this.CurrUser.UserId);
if (meetingItem != null)
{
if (rblIsMeeting.SelectedValue == "1")
{
meetingItem.IsMeeting = true;
}
else
{
meetingItem.IsMeeting = false;
}
meetingItem.Feedback = this.txtFeedbak.Text.Trim();
BLL.MeetingItemService.UpdateMeetingItem(meetingItem);
ShowNotify("反馈成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
}
}

View File

@ -0,0 +1,177 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.Meeting {
public partial class Feedback {
/// <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>
/// 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>
/// hdId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdId;
/// <summary>
/// ContentPanel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel2;
/// <summary>
/// Form2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form Form2;
/// <summary>
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// rblIsMeeting 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.RadioButtonList rblIsMeeting;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// txtFeedbak 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtFeedbak;
}
}

View File

@ -20,8 +20,7 @@
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpUnitWorkId" runat="server" Label="单位工程" LabelAlign="Right"></f:DropDownList>
<f:TextBox ID="txtMeetingContent" runat="server" Label="会议内容" LabelAlign="Right"></f:TextBox>
<f:TextBox ID="txtCode" runat="server" Label="编号" LabelAlign="Right"></f:TextBox>
<f:Button ID="btnSearch" Icon="SystemSearch" ToolTip="搜索"
EnablePostBack="true" runat="server" OnClick="btnSearch_Click">
</f:Button>
@ -38,31 +37,32 @@
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="UnitWorkName" DataField="UnitWorkName"
FieldType="String" HeaderText="单位工程" HeaderTextAlign="Center" Width="120px">
</f:RenderField>
<f:RenderField ColumnID="MeetingTake" DataField="MeetingTake"
FieldType="String" HeaderText="会议主持" HeaderTextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField ColumnID="MeetingUnit" DataField="MeetingUnit"
FieldType="String" HeaderText="参会单位" HeaderTextAlign="Center" Width="220px">
<f:RenderField ColumnID="MeetingCode" DataField="MeetingCode"
FieldType="String" HeaderText="编号" HeaderTextAlign="Center" Width="180px">
</f:RenderField>
<f:RenderField ColumnID="MeetingDate" DataField="MeetingDate"
FieldType="Date" Renderer="Date" HeaderText="会议日期" HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:RenderField ColumnID="Number" DataField="Number"
FieldType="String" HeaderText="期数" HeaderTextAlign="Center" Width="150px">
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="会议日期" HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="MeetingAddress" DataField="MeetingAddress"
FieldType="String" HeaderText="地点" HeaderTextAlign="Center" Width="180px">
FieldType="String" HeaderText="会议地点" HeaderTextAlign="Center" Width="180px">
</f:RenderField>
<f:RenderField ColumnID="MeetingContent" DataField="MeetingContent"
FieldType="String" HeaderText="会议内容" HeaderTextAlign="Center" Width="200px">
<f:RenderField ColumnID="CompileManName" DataField="CompileManName"
FieldType="String" HeaderText="发起人" HeaderTextAlign="Center" Width="90px">
</f:RenderField>
<f:RenderField ColumnID="Remark" DataField="Remark"
FieldType="String" HeaderText="备注" HeaderTextAlign="Center" Width="120px">
<f:RenderField ColumnID="CompileDate" DataField="CompileDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="发起时间" HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:LinkButtonField HeaderText="附件" ConfirmTarget="Top" Width="80px" CommandName="AttachUrl" ColumnID="AttachUrl"
<f:TemplateField HeaderText="参会人" Width="300px" HeaderTextAlign="Center" ExpandUnusedSpace="true">
<ItemTemplate>
<asp:Label ID="tbxGroupName" runat="server" Text='<%# ConvertUserName(Eval("MeetingId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="FlowOperateName" DataField="FlowOperateName"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:LinkButtonField HeaderText="会议纪要" ConfirmTarget="Top" Width="80px" CommandName="AttachUrl" ColumnID="AttachUrl"
TextAlign="Center" ToolTip="附件查看" Icon="Find" />
<f:LinkButtonField HeaderText="签到表" ConfirmTarget="Top" Width="80px" CommandName="SignUrl" ColumnID="SignUrl"
TextAlign="Center" ToolTip="附件查看" Icon="Find" />
</Columns>
<Listeners>
@ -88,6 +88,10 @@
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="900px" Height="630px">
</f:Window>
<f:Window ID="Window2" Title="通知反馈" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="900px" Height="430px">
</f:Window>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
@ -99,6 +103,8 @@
<f:MenuButton ID="btnMenuDel" EnablePostBack="true" runat="server" Icon="Delete" Text="删除" ConfirmText="确定删除当前数据?"
OnClick="btnMenuDel_Click">
</f:MenuButton>
<f:MenuButton ID="btnMenuFeek" EnablePostBack="true" runat="server" Text="反馈" Icon="BookAddressesKey" OnClick="btnMenuFeek_Click">
</f:MenuButton>
</Items>
</f:Menu>
</form>

View File

@ -17,7 +17,6 @@ namespace FineUIPro.Web.TestRun.Meeting
GetButtonPower();
BindGrid();
btnNew.OnClientClick = Window1.GetShowReference("ScheduleMeetingEdit.aspx") + "return false;";
BLL.UnitWorkService.InitUnitWorkDropDownList(this.drpUnitWorkId, this.CurrUser.LoginProjectId, true);
}
}
#endregion
@ -37,25 +36,26 @@ namespace FineUIPro.Web.TestRun.Meeting
meeting.Number,
meeting.MeetingType,
meeting.Remark,
unitWork.UnitWorkName"
meeting.MeetingCode,
meeting.CompileMan,
u.UserName as CompileManName,
meeting.CompileDate,"
+ @" (CASE WHEN meeting.States = " + BLL.Const.State_0 + " OR meeting.States IS NULL THEN '待['+OperateUser.UserName+']提交' WHEN meeting.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName"
+ @" FROM Driver_Meeting AS meeting "
+ @" LEFT JOIN WBS_UnitWork AS unitWork ON unitWork.UnitWorkId = meeting.UnitWorkId WHERE meeting.ProjectId=@projectId AND meeting.MeetingType='1'";
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON meeting.MeetingId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
+ @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId"
+ @" LEFT JOIN Sys_User as u on u.UserId = meeting.CompileMan"
+ @" WHERE meeting.ProjectId=@projectId AND meeting.MeetingType='1'";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId));
if (!string.IsNullOrEmpty(this.drpUnitWorkId.SelectedValue) && this.drpUnitWorkId.SelectedValue != BLL.Const._Null)
if (!string.IsNullOrEmpty(this.txtCode.Text.Trim()))
{
strSql += " AND meeting.UnitWorkId=@unitWorkId";
listStr.Add(new SqlParameter("@unitWorkId", this.drpUnitWorkId.SelectedValue));
}
if (!string.IsNullOrEmpty(this.txtMeetingContent.Text.Trim()))
{
strSql += " AND meeting.MeetingContent LIKE @MeetingContent";
listStr.Add(new SqlParameter("@MeetingContent", "%" + this.txtMeetingContent.Text.Trim() + "%"));
strSql += " AND meeting.MeetingCode LIKE @meetingCode";
listStr.Add(new SqlParameter("@meetingCode", "%" + this.txtCode.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
@ -143,8 +143,23 @@ namespace FineUIPro.Web.TestRun.Meeting
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
var user = (from x in Funs.DB.Sys_FlowOperate where x.DataId == Grid1.SelectedRowID && x.MenuId == BLL.Const.ScheduleMeetingMenuId && x.IsClosed == false orderby x.SortIndex descending select x).FirstOrDefault();
if (user != null)
{
if (user.OperaterId == this.CurrUser.UserId)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ScheduleMeetingEdit.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ScheduleMeetingView.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ScheduleMeetingView.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
#endregion
#region
@ -158,6 +173,7 @@ namespace FineUIPro.Web.TestRun.Meeting
var info = BLL.MeetingService.GetMeetingById(rowID);
if (info != null)
{
BLL.MeetingItemService.DeleteMeetingItemByMeetingId(rowID);
BLL.MeetingService.DeleteMeeting(rowID);
}
}
@ -178,7 +194,11 @@ namespace FineUIPro.Web.TestRun.Meeting
string id = Grid1.DataKeys[e.RowIndex][0].ToString();
if (e.CommandName == "AttachUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}", id, BLL.Const.ScheduleMeetingMenuId)));
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}&strParam=1", id, BLL.Const.ScheduleMeetingMenuId)));
}
if (e.CommandName == "SignUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}&strParam=2", id, BLL.Const.ScheduleMeetingMenuId)));
}
}
#endregion
@ -208,5 +228,67 @@ namespace FineUIPro.Web.TestRun.Meeting
}
}
#endregion
protected string ConvertUserName(object meetingId)
{
string userName = string.Empty;
var meetingItem = BLL.MeetingItemService.GetMeetingItemByMeetingId(meetingId.ToString());
if (meetingItem.Count>0)
{
foreach (var item in meetingItem)
{
userName += BLL.UserService.GetUserNameByUserId(item.UserId) + ",";
}
if (!string.IsNullOrEmpty(userName))
{
userName = userName.Substring(0, userName.LastIndexOf(','));
}
}
return userName;
}
#region
/// <summary>
/// 反馈
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuFeek_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
var meeting = BLL.MeetingService.GetMeetingById(Grid1.SelectedRowID);
if (meeting.States == "2")
{
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(Grid1.SelectedRowID);
if (items.Count > 0)
{
var user = items.Where(x => x.UserId == this.CurrUser.UserId);
if (user.Count() > 0)
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("Feedback.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
Alert.ShowInTop("未参与此会议,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("未参与此会议,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("审核未完成,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
#endregion
}
}

View File

@ -58,22 +58,13 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// drpUnitWorkId 控件。
/// txtCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWorkId;
/// <summary>
/// txtMeetingContent 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingContent;
protected global::FineUIPro.TextBox txtCode;
/// <summary>
/// btnSearch 控件。
@ -102,6 +93,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <summary>
/// tbxGroupName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label tbxGroupName;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
@ -138,6 +138,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// WindowAtt 控件。
/// </summary>
@ -173,5 +182,14 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDel;
/// <summary>
/// btnMenuFeek 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuFeek;
}
}

View File

@ -1,4 +1,6 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ScheduleMeetingEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.ScheduleMeetingEdit" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ScheduleMeetingEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.ScheduleMeetingEdit" ValidateRequest="false" %>
<%@ Register Src="~/Controls/FlowOperateControl.ascx" TagName="FlowOperateControl" TagPrefix="uc1" %>
<!DOCTYPE html>
@ -19,6 +21,8 @@
</f:ToolbarFill>
<f:Button ID="btnSave" OnClick="btnSave_Click" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1">
</f:Button>
<f:Button ID="btnSubmit" OnClick="btnSubmit_Click" Icon="SystemSaveNew" runat="server" ToolTip="提交" ValidateForms="SimpleForm1">
</f:Button>
<f:HiddenField ID="hdAttachUrl" runat="server">
</f:HiddenField>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
@ -36,61 +40,59 @@
<Rows>
<f:FormRow>
<Items>
<f:DropDownList ID="drpUnitWorkId" runat="server" Label="单位工程" LabelAlign="Right" LabelWidth="150px"></f:DropDownList>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px" MaxLength="50" Required="true" ShowRedStar="true">
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingTake" runat="server" Label="会议主持" LabelAlign="Right" LabelWidth="150px" MaxLength="50" Required="true" ShowRedStar="true">
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px" MaxLength="100" Required="true" ShowRedStar="true">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px" MaxLength="1000">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingUnit" runat="server" Label="参会单位" LabelAlign="Right" LabelWidth="150px" MaxLength="150">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="150px"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtNumber" runat="server" Label="期数" LabelAlign="Right" LabelWidth="150px" MaxLength="50">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="150px" MaxLength="100">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtMeetingContent" runat="server" Label="会议内容" LabelAlign="Right" LabelWidth="150px" MaxLength="500">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" LabelAlign="Right" LabelWidth="150px" MaxLength="500">
</f:TextArea>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px" EnableEdit="true" Required="true" ShowRedStar="true"></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Panel ID="Panel3" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="上传附件"
LabelWidth="150px">
<f:Label ID="lblAttach" runat="server" Label="会议纪要" LabelWidth="100px">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel1" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="Label1" runat="server" Label="签到表" LabelWidth="100px">
</f:Label>
<f:Button ID="btnSign" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnSign_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Tree ID="tvAttendMeetingsPerson" EnableCollapse="true" ShowHeader="true" Title="参会人员" EnableCheckBox="true"
AutoLeafIdentification="true" runat="server" EnableIcons="true" AutoScroll="true"
EnableSingleClickExpand="true" OnNodeCheck="tvAttendMeetingsPerson_NodeCheck">
</f:Tree>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" runat="server" ShowHeader="false" EnableCollapse="true"
BodyPadding="0px">
<uc1:FlowOperateControl ID="ctlAuditFlow" runat="server" />
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>

View File

@ -15,8 +15,7 @@ namespace FineUIPro.Web.TestRun.Meeting
{
if (!IsPostBack)
{
BLL.UnitWorkService.InitUnitWorkDropDownList(this.drpUnitWorkId, this.CurrUser.LoginProjectId, true);
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
@ -24,30 +23,39 @@ namespace FineUIPro.Web.TestRun.Meeting
if (data != null)
{
this.hdId.Text = id;
if (!string.IsNullOrEmpty(data.UnitWorkId))
{
this.drpUnitWorkId.SelectedValue = data.UnitWorkId;
}
this.txtMeetingTake.Text = data.MeetingTake;
this.txtMeetingUnit.Text = data.MeetingUnit;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingContent.Text = data.MeetingContent;
this.txtNumber.Text = data.Number;
this.txtRemark.Text = data.Remark;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
else
{
this.txtMeetingDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
this.drpCompileMan.SelectedValue = this.CurrUser.LoginProjectId;
this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
string perfix = BLL.ProjectService.GetProjectCodeByProjectId(this.CurrUser.LoginProjectId) + "-MM-PSM-";
this.txtMeetingCode.Text = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "dbo.Driver_Meeting", "MeetingCode", this.CurrUser.LoginProjectId, perfix);
}
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.ScheduleMeetingMenuId;
this.ctlAuditFlow.DataId = id;
this.ctlAuditFlow.ProjectId = this.CurrUser.LoginProjectId;
this.ctlAuditFlow.UnitId = this.CurrUser.UnitId;
InitMenuTree();
}
}
#endregion
#region
/// <summary>
/// 附件上传
/// 会议纪要
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@ -57,7 +65,21 @@ namespace FineUIPro.Web.TestRun.Meeting
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.Driver_Meeting));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}", this.hdId.Text, BLL.Const.ScheduleMeetingMenuId)));
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}&strParam=1", this.hdId.Text, BLL.Const.ScheduleMeetingMenuId)));
}
/// <summary>
/// 签到表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSign_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.hdId.Text)) //新增记录
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.Driver_Meeting));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}&strParam=2", this.hdId.Text, BLL.Const.ScheduleMeetingMenuId)));
}
#endregion
@ -68,21 +90,53 @@ namespace FineUIPro.Web.TestRun.Meeting
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
SaveData(BLL.Const.BtnSave);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.ctlAuditFlow.NextStep == BLL.Const.State_1 && this.ctlAuditFlow.NextPerson == BLL.Const._Null)
{
ShowNotify("请选择下一步办理人!", MessageBoxIcon.Warning);
return;
}
SaveData(BLL.Const.BtnSubmit);
ShowNotify("提交成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
string id = Request.Params["id"];
Model.Driver_Meeting newData = new Model.Driver_Meeting();
if (this.drpUnitWorkId.SelectedValue != BLL.Const._Null)
{
newData.UnitWorkId = this.drpUnitWorkId.SelectedValue;
}
newData.MeetingTake = this.txtMeetingTake.Text.Trim();
newData.MeetingUnit = this.txtMeetingUnit.Text.Trim();
newData.MeetingCode = this.txtMeetingCode.Text.Trim();
newData.MeetingDate = Funs.GetNewDateTime(this.txtMeetingDate.Text.Trim());
newData.MeetingAddress = this.txtMeetingAddress.Text.Trim();
newData.MeetingContent = this.txtMeetingContent.Text.Trim();
newData.Number = this.txtNumber.Text.Trim();
newData.Remark = this.txtRemark.Text.Trim();
newData.AttachUrl = this.txtMeetingUrl.Text.Trim();
if (this.drpCompileMan.SelectedValue != BLL.Const._Null)
{
newData.CompileMan = this.drpCompileMan.SelectedValue;
}
newData.CompileDate = Funs.GetNewDateTime(this.txtCompileDate.Text.Trim());
newData.ProjectId = this.CurrUser.LoginProjectId;
////单据状态
newData.States = BLL.Const.State_0;
if (type == BLL.Const.BtnSubmit)
{
newData.States = this.ctlAuditFlow.NextStep;
}
if (!string.IsNullOrEmpty(id))
{
newData.MeetingId = id;
@ -102,8 +156,144 @@ namespace FineUIPro.Web.TestRun.Meeting
}
BLL.MeetingService.AddMeeting(newData);
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
#region
BLL.MeetingItemService.DeleteMeetingItemByMeetingId(this.hdId.Text);
TreeNode[] nodes = this.tvAttendMeetingsPerson.GetCheckedNodes();
if (nodes.Length > 0)
{
foreach (TreeNode tn in nodes)
{
if (tn.NodeID != "0")
{
Model.Driver_MeetingItem newItem = new Model.Driver_MeetingItem
{
MeetingItemId = SQLHelper.GetNewID(typeof(Model.Driver_MeetingItem)),
MeetingId = this.hdId.Text,
UserId = tn.NodeID,
};
BLL.MeetingItemService.AddMeetingItem(newItem);
}
}
}
#endregion
////保存流程审核数据
this.ctlAuditFlow.btnSaveData(this.CurrUser.LoginProjectId, BLL.Const.ScheduleMeetingMenuId, this.hdId.Text, (type == BLL.Const.BtnSubmit ? true : false), newData.MeetingCode, null);
}
#endregion
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">单位集合</param>
private void InitMenuTree()
{
this.tvAttendMeetingsPerson.Nodes.Clear();
var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
foreach (var item in units)
{
TreeNode rootNode = new TreeNode
{
Text = item.UnitName,
NodeID = item.UnitId,
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvAttendMeetingsPerson.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, string superMenuId)
{
var menus = BLL.UserService.GetUserByUnitId(this.CurrUser.LoginProjectId, superMenuId);
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.Text,
NodeID = item.Value,
EnableCheckBox = true,
EnableCheckEvent = true
};
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(this.hdId.Text.Trim());
if (items.Count > 0)
{
foreach (var i in items)
{
if (i.UserId == item.Value)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
var meeting = BLL.MeetingService.GetMeetingById(this.hdId.Text.Trim());
if (meeting != null)
{
if (meeting.States == "2")
{
if (i.IsMeeting == true)
{
chidNode.Text = item.Text + "(可按时参加)";
}
else if (i.IsMeeting == false)
{
chidNode.Text = item.Text + "(因故不参加:" + i.Feedback + "";
}
else
{
chidNode.Text = item.Text + "(暂未反馈)";
}
}
}
}
}
}
nodes.Add(chidNode);
}
}
#endregion
#region
/// <summary>
/// 全选、全不选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvAttendMeetingsPerson_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e)
{
if (e.Checked)
{
this.tvAttendMeetingsPerson.CheckAllNodes(e.Node.Nodes);
SetCheckParentNode(e.Node);
}
else
{
this.tvAttendMeetingsPerson.UncheckAllNodes(e.Node.Nodes);
}
}
/// <summary>
/// 选中父节点
/// </summary>
/// <param name="node"></param>
private void SetCheckParentNode(TreeNode node)
{
if (node.ParentNode != null && node.ParentNode.NodeID != "0")
{
node.ParentNode.Checked = true;
if (node.ParentNode.ParentNode.NodeID != "0")
{
SetCheckParentNode(node.ParentNode);
}
}
}
#endregion
}

View File

@ -66,6 +66,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnSubmit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSubmit;
/// <summary>
/// hdAttachUrl 控件。
/// </summary>
@ -103,31 +112,13 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.Form Form2;
/// <summary>
/// drpUnitWorkId 控件。
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWorkId;
/// <summary>
/// txtMeetingTake 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingTake;
/// <summary>
/// txtMeetingUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUnit;
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
@ -138,15 +129,6 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtNumber 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtNumber;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
@ -157,22 +139,31 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingContent 控件。
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtMeetingContent;
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// txtRemark 控件。
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemark;
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// Panel3 控件。
@ -201,6 +192,60 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// btnSign 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSign;
/// <summary>
/// tvAttendMeetingsPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvAttendMeetingsPerson;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ctlAuditFlow 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Web.Controls.FlowOperateControl ctlAuditFlow;
/// <summary>
/// WindowAtt 控件。
/// </summary>

View File

@ -0,0 +1,107 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ScheduleMeetingView.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.ScheduleMeetingView" ValidateRequest="false" %>
<%@ Register Src="~/Controls/FlowOperateControl.ascx" TagName="FlowOperateControl" TagPrefix="uc1" %>
<!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="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:HiddenField ID="hdAttachUrl" runat="server">
</f:HiddenField>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
</Items>
</f:Toolbar>
</Toolbars>
<Rows>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel2" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="false" AutoScroll="true"
runat="server">
<f:Form ID="Form2" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px" >
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px" ></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px" >
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px" ></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px" ></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Panel ID="Panel3" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="会议纪要" LabelWidth="100px">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel1" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="Label1" runat="server" Label="签到表" LabelWidth="100px">
</f:Label>
<f:Button ID="btnSign" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnSign_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Tree ID="tvAttendMeetingsPerson" EnableCollapse="true" ShowHeader="true" Title="参会人员" EnableCheckBox="true"
AutoLeafIdentification="true" runat="server" EnableIcons="true" AutoScroll="true"
EnableSingleClickExpand="true" >
</f:Tree>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" runat="server" ShowHeader="false" EnableCollapse="true"
BodyPadding="0px">
<uc1:FlowOperateControl ID="ctlAuditFlow" runat="server" />
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window>
</form>
</body>
</html>

View File

@ -0,0 +1,150 @@
using System;
namespace FineUIPro.Web.TestRun.Meeting
{
public partial class ScheduleMeetingView : PageBase
{
#region
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
Model.Driver_Meeting data = BLL.MeetingService.GetMeetingById(id);
if (data != null)
{
this.hdId.Text = id;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
InitMenuTree();
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.ScheduleMeetingMenuId;
this.ctlAuditFlow.DataId = id;
}
}
#endregion
#region
/// <summary>
/// 会议纪要
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttach_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}&strParam=1", this.hdId.Text, BLL.Const.ScheduleMeetingMenuId)));
}
}
/// <summary>
/// 签到表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSign_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/ScheduleMeeting&menuId={1}&strParam=2", this.hdId.Text, BLL.Const.ScheduleMeetingMenuId)));
}
}
#endregion
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">单位集合</param>
private void InitMenuTree()
{
this.tvAttendMeetingsPerson.Nodes.Clear();
var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
foreach (var item in units)
{
TreeNode rootNode = new TreeNode
{
Text = item.UnitName,
NodeID = item.UnitId,
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvAttendMeetingsPerson.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, string superMenuId)
{
var menus = BLL.UserService.GetUserByUnitId(this.CurrUser.LoginProjectId, superMenuId);
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.Text,
NodeID = item.Value,
EnableCheckBox = true,
EnableCheckEvent = true
};
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(this.hdId.Text.Trim());
if (items.Count > 0)
{
foreach (var i in items)
{
if (i.UserId == item.Value)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
var meeting = BLL.MeetingService.GetMeetingById(this.hdId.Text.Trim());
if (meeting != null)
{
if (meeting.States == "2")
{
if (i.IsMeeting == true)
{
chidNode.Text = item.Text + "(可按时参加)";
}
else if (i.IsMeeting == false)
{
chidNode.Text = item.Text + "(因故不参加:" + i.Feedback + "";
}
else
{
chidNode.Text = item.Text + "(暂未反馈)";
}
}
}
}
}
}
nodes.Add(chidNode);
}
}
#endregion
}
}

View File

@ -0,0 +1,240 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.Meeting {
public partial class ScheduleMeetingView {
/// <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>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// hdAttachUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdAttachUrl;
/// <summary>
/// hdId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdId;
/// <summary>
/// ContentPanel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel2;
/// <summary>
/// Form2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form Form2;
/// <summary>
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// Panel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel3;
/// <summary>
/// lblAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblAttach;
/// <summary>
/// btnAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// btnSign 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSign;
/// <summary>
/// tvAttendMeetingsPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvAttendMeetingsPerson;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ctlAuditFlow 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Web.Controls.FlowOperateControl ctlAuditFlow;
/// <summary>
/// WindowAtt 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
}
}

View File

@ -20,8 +20,7 @@
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpUnitWorkId" runat="server" Label="单位工程" LabelAlign="Right"></f:DropDownList>
<f:TextBox ID="txtMeetingContent" runat="server" Label="会议内容" LabelAlign="Right"></f:TextBox>
<f:TextBox ID="txtCode" runat="server" Label="编号" LabelAlign="Right"></f:TextBox>
<f:Button ID="btnSearch" Icon="SystemSearch" ToolTip="搜索"
EnablePostBack="true" runat="server" OnClick="btnSearch_Click">
</f:Button>
@ -38,31 +37,32 @@
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="UnitWorkName" DataField="UnitWorkName"
FieldType="String" HeaderText="单位工程" HeaderTextAlign="Center" Width="120px">
</f:RenderField>
<f:RenderField ColumnID="MeetingTake" DataField="MeetingTake"
FieldType="String" HeaderText="会议主持" HeaderTextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField ColumnID="MeetingUnit" DataField="MeetingUnit"
FieldType="String" HeaderText="参会单位" HeaderTextAlign="Center" Width="220px">
<f:RenderField ColumnID="MeetingCode" DataField="MeetingCode"
FieldType="String" HeaderText="编号" HeaderTextAlign="Center" Width="180px">
</f:RenderField>
<f:RenderField ColumnID="MeetingDate" DataField="MeetingDate"
FieldType="Date" Renderer="Date" HeaderText="会议日期" HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:RenderField ColumnID="Number" DataField="Number"
FieldType="String" HeaderText="期数" HeaderTextAlign="Center" Width="150px">
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="会议日期" HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="MeetingAddress" DataField="MeetingAddress"
FieldType="String" HeaderText="地点" HeaderTextAlign="Center" Width="180px">
FieldType="String" HeaderText="会议地点" HeaderTextAlign="Center" Width="180px">
</f:RenderField>
<f:RenderField ColumnID="MeetingContent" DataField="MeetingContent"
FieldType="String" HeaderText="会议内容" HeaderTextAlign="Center" Width="200px">
<f:RenderField ColumnID="CompileManName" DataField="CompileManName"
FieldType="String" HeaderText="发起人" HeaderTextAlign="Center" Width="90px">
</f:RenderField>
<f:RenderField ColumnID="Remark" DataField="Remark"
FieldType="String" HeaderText="备注" HeaderTextAlign="Center" Width="120px">
<f:RenderField ColumnID="CompileDate" DataField="CompileDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="发起时间" HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:LinkButtonField HeaderText="附件" ConfirmTarget="Top" Width="80px" CommandName="AttachUrl" ColumnID="AttachUrl"
<f:TemplateField HeaderText="参会人" Width="300px" HeaderTextAlign="Center" ExpandUnusedSpace="true">
<ItemTemplate>
<asp:Label ID="tbxGroupName" runat="server" Text='<%# ConvertUserName(Eval("MeetingId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="FlowOperateName" DataField="FlowOperateName"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:LinkButtonField HeaderText="会议纪要" ConfirmTarget="Top" Width="80px" CommandName="AttachUrl" ColumnID="AttachUrl"
TextAlign="Center" ToolTip="附件查看" Icon="Find" />
<f:LinkButtonField HeaderText="签到表" ConfirmTarget="Top" Width="80px" CommandName="SignUrl" ColumnID="SignUrl"
TextAlign="Center" ToolTip="附件查看" Icon="Find" />
</Columns>
<Listeners>
@ -88,6 +88,10 @@
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="900px" Height="630px">
</f:Window>
<f:Window ID="Window2" Title="通知反馈" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="900px" Height="430px">
</f:Window>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
@ -99,6 +103,8 @@
<f:MenuButton ID="btnMenuDel" EnablePostBack="true" runat="server" Icon="Delete" Text="删除" ConfirmText="确定删除当前数据?"
OnClick="btnMenuDel_Click">
</f:MenuButton>
<f:MenuButton ID="btnMenuFeek" EnablePostBack="true" runat="server" Text="反馈" Icon="BookAddressesKey" OnClick="btnMenuFeek_Click">
</f:MenuButton>
</Items>
</f:Menu>
</form>

View File

@ -17,7 +17,6 @@ namespace FineUIPro.Web.TestRun.Meeting
GetButtonPower();
BindGrid();
btnNew.OnClientClick = Window1.GetShowReference("SpecialMeetingEdit.aspx") + "return false;";
BLL.UnitWorkService.InitUnitWorkDropDownList(this.drpUnitWorkId, this.CurrUser.LoginProjectId, true);
}
}
#endregion
@ -37,25 +36,26 @@ namespace FineUIPro.Web.TestRun.Meeting
meeting.Number,
meeting.MeetingType,
meeting.Remark,
unitWork.UnitWorkName"
meeting.MeetingCode,
meeting.CompileMan,
u.UserName as CompileManName,
meeting.CompileDate,"
+ @" (CASE WHEN meeting.States = " + BLL.Const.State_0 + " OR meeting.States IS NULL THEN '待['+OperateUser.UserName+']提交' WHEN meeting.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName"
+ @" FROM Driver_Meeting AS meeting "
+ @" LEFT JOIN WBS_UnitWork AS unitWork ON unitWork.UnitWorkId = meeting.UnitWorkId WHERE meeting.ProjectId=@projectId AND meeting.MeetingType='3'";
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON meeting.MeetingId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
+ @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId"
+ @" LEFT JOIN Sys_User as u on u.UserId = meeting.CompileMan"
+ @" WHERE meeting.ProjectId=@projectId AND meeting.MeetingType='3'";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId));
if (!string.IsNullOrEmpty(this.drpUnitWorkId.SelectedValue) && this.drpUnitWorkId.SelectedValue != BLL.Const._Null)
if (!string.IsNullOrEmpty(this.txtCode.Text.Trim()))
{
strSql += " AND meeting.UnitWorkId=@unitWorkId";
listStr.Add(new SqlParameter("@unitWorkId", this.drpUnitWorkId.SelectedValue));
}
if (!string.IsNullOrEmpty(this.txtMeetingContent.Text.Trim()))
{
strSql += " AND meeting.MeetingContent LIKE @MeetingContent";
listStr.Add(new SqlParameter("@MeetingContent", "%" + this.txtMeetingContent.Text.Trim() + "%"));
strSql += " AND meeting.MeetingCode LIKE @meetingCode";
listStr.Add(new SqlParameter("@meetingCode", "%" + this.txtCode.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
@ -143,8 +143,23 @@ namespace FineUIPro.Web.TestRun.Meeting
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
var user = (from x in Funs.DB.Sys_FlowOperate where x.DataId == Grid1.SelectedRowID && x.MenuId == BLL.Const.SpecialMeetingMenuId && x.IsClosed == false orderby x.SortIndex descending select x).FirstOrDefault();
if (user != null)
{
if (user.OperaterId == this.CurrUser.UserId)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SpecialMeetingEdit.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SpecialMeetingView.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SpecialMeetingView.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
#endregion
#region
@ -158,6 +173,7 @@ namespace FineUIPro.Web.TestRun.Meeting
var info = BLL.MeetingService.GetMeetingById(rowID);
if (info != null)
{
BLL.MeetingItemService.DeleteMeetingItemByMeetingId(rowID);
BLL.MeetingService.DeleteMeeting(rowID);
}
}
@ -178,7 +194,11 @@ namespace FineUIPro.Web.TestRun.Meeting
string id = Grid1.DataKeys[e.RowIndex][0].ToString();
if (e.CommandName == "AttachUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}", id, BLL.Const.SpecialMeetingMenuId)));
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}&strParam=1", id, BLL.Const.SpecialMeetingMenuId)));
}
if (e.CommandName == "SignUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}&strParam=2", id, BLL.Const.SpecialMeetingMenuId)));
}
}
#endregion
@ -208,5 +228,74 @@ namespace FineUIPro.Web.TestRun.Meeting
}
}
#endregion
#region
/// <summary>
/// 获取通知人员姓名
/// </summary>
/// <param name="meetingId"></param>
/// <returns></returns>
protected string ConvertUserName(object meetingId)
{
string userName = string.Empty;
var meetingItem = BLL.MeetingItemService.GetMeetingItemByMeetingId(meetingId.ToString());
if (meetingItem.Count > 0)
{
foreach (var item in meetingItem)
{
userName += BLL.UserService.GetUserNameByUserId(item.UserId) + ",";
}
if (!string.IsNullOrEmpty(userName))
{
userName = userName.Substring(0, userName.LastIndexOf(','));
}
}
return userName;
}
#endregion
#region
/// <summary>
/// 反馈
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuFeek_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
var meeting = BLL.MeetingService.GetMeetingById(Grid1.SelectedRowID);
if (meeting.States == "2")
{
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(Grid1.SelectedRowID);
if (items.Count > 0)
{
var user = items.Where(x => x.UserId == this.CurrUser.UserId);
if (user.Count() > 0)
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("Feedback.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
Alert.ShowInTop("未参与此会议,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("未参与此会议,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("审核未完成,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
#endregion
}
}

View File

@ -58,22 +58,13 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// drpUnitWorkId 控件。
/// txtCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWorkId;
/// <summary>
/// txtMeetingContent 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingContent;
protected global::FineUIPro.TextBox txtCode;
/// <summary>
/// btnSearch 控件。
@ -102,6 +93,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <summary>
/// tbxGroupName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label tbxGroupName;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
@ -138,6 +138,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// WindowAtt 控件。
/// </summary>
@ -173,5 +182,14 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDel;
/// <summary>
/// btnMenuFeek 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuFeek;
}
}

View File

@ -1,4 +1,6 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SpecialMeetingEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.SpecialMeetingEdit" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SpecialMeetingEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.SpecialMeetingEdit" ValidateRequest="false" %>
<%@ Register Src="~/Controls/FlowOperateControl.ascx" TagName="FlowOperateControl" TagPrefix="uc1" %>
<!DOCTYPE html>
@ -19,6 +21,8 @@
</f:ToolbarFill>
<f:Button ID="btnSave" OnClick="btnSave_Click" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1">
</f:Button>
<f:Button ID="btnSubmit" OnClick="btnSubmit_Click" Icon="SystemSaveNew" runat="server" ToolTip="提交" ValidateForms="SimpleForm1">
</f:Button>
<f:HiddenField ID="hdAttachUrl" runat="server">
</f:HiddenField>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
@ -36,61 +40,59 @@
<Rows>
<f:FormRow>
<Items>
<f:DropDownList ID="drpUnitWorkId" runat="server" Label="单位工程" LabelAlign="Right" LabelWidth="150px"></f:DropDownList>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px" MaxLength="50" Required="true" ShowRedStar="true">
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingTake" runat="server" Label="会议主持" LabelAlign="Right" LabelWidth="150px" MaxLength="50" Required="true" ShowRedStar="true">
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px" MaxLength="100" Required="true" ShowRedStar="true">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px" MaxLength="1000">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingUnit" runat="server" Label="参会单位" LabelAlign="Right" LabelWidth="150px" MaxLength="150">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="150px"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtNumber" runat="server" Label="期数" LabelAlign="Right" LabelWidth="150px" MaxLength="50">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="150px" MaxLength="100">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtMeetingContent" runat="server" Label="会议内容" LabelAlign="Right" LabelWidth="150px" MaxLength="500">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" LabelAlign="Right" LabelWidth="150px" MaxLength="500">
</f:TextArea>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px" EnableEdit="true" Required="true" ShowRedStar="true"></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Panel ID="Panel3" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="上传附件"
LabelWidth="150px">
<f:Label ID="lblAttach" runat="server" Label="会议纪要" LabelWidth="100px">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel1" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="Label1" runat="server" Label="签到表" LabelWidth="100px">
</f:Label>
<f:Button ID="btnSign" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnSign_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Tree ID="tvAttendMeetingsPerson" EnableCollapse="true" ShowHeader="true" Title="参会人员" EnableCheckBox="true"
AutoLeafIdentification="true" runat="server" EnableIcons="true" AutoScroll="true"
EnableSingleClickExpand="true" OnNodeCheck="tvAttendMeetingsPerson_NodeCheck">
</f:Tree>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" runat="server" ShowHeader="false" EnableCollapse="true"
BodyPadding="0px">
<uc1:FlowOperateControl ID="ctlAuditFlow" runat="server" />
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>

View File

@ -15,8 +15,7 @@ namespace FineUIPro.Web.TestRun.Meeting
{
if (!IsPostBack)
{
BLL.UnitWorkService.InitUnitWorkDropDownList(this.drpUnitWorkId, this.CurrUser.LoginProjectId, true);
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
@ -24,23 +23,32 @@ namespace FineUIPro.Web.TestRun.Meeting
if (data != null)
{
this.hdId.Text = id;
if (!string.IsNullOrEmpty(data.UnitWorkId))
{
this.drpUnitWorkId.SelectedValue = data.UnitWorkId;
}
this.txtMeetingTake.Text = data.MeetingTake;
this.txtMeetingUnit.Text = data.MeetingUnit;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingContent.Text = data.MeetingContent;
this.txtNumber.Text = data.Number;
this.txtRemark.Text = data.Remark;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
else
{
this.txtMeetingDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
this.drpCompileMan.SelectedValue = this.CurrUser.LoginProjectId;
this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
string perfix = BLL.ProjectService.GetProjectCodeByProjectId(this.CurrUser.LoginProjectId) + "-MM-PSM-";
this.txtMeetingCode.Text = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "dbo.Driver_Meeting", "MeetingCode", this.CurrUser.LoginProjectId, perfix);
}
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.SpecialMeetingMenuId;
this.ctlAuditFlow.DataId = id;
this.ctlAuditFlow.ProjectId = this.CurrUser.LoginProjectId;
this.ctlAuditFlow.UnitId = this.CurrUser.UnitId;
InitMenuTree();
}
}
#endregion
@ -57,7 +65,21 @@ namespace FineUIPro.Web.TestRun.Meeting
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.Driver_Meeting));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}", this.hdId.Text, BLL.Const.SpecialMeetingMenuId)));
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}&strParam=1", this.hdId.Text, BLL.Const.SpecialMeetingMenuId)));
}
/// <summary>
/// 签到表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSign_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.hdId.Text)) //新增记录
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.Driver_Meeting));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}&strParam=2", this.hdId.Text, BLL.Const.SpecialMeetingMenuId)));
}
#endregion
@ -68,21 +90,53 @@ namespace FineUIPro.Web.TestRun.Meeting
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
SaveData(BLL.Const.BtnSave);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.ctlAuditFlow.NextStep == BLL.Const.State_1 && this.ctlAuditFlow.NextPerson == BLL.Const._Null)
{
ShowNotify("请选择下一步办理人!", MessageBoxIcon.Warning);
return;
}
SaveData(BLL.Const.BtnSubmit);
ShowNotify("提交成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
string id = Request.Params["id"];
Model.Driver_Meeting newData = new Model.Driver_Meeting();
if (this.drpUnitWorkId.SelectedValue != BLL.Const._Null)
{
newData.UnitWorkId = this.drpUnitWorkId.SelectedValue;
}
newData.MeetingTake = this.txtMeetingTake.Text.Trim();
newData.MeetingUnit = this.txtMeetingUnit.Text.Trim();
newData.MeetingCode = this.txtMeetingCode.Text.Trim();
newData.MeetingDate = Funs.GetNewDateTime(this.txtMeetingDate.Text.Trim());
newData.MeetingAddress = this.txtMeetingAddress.Text.Trim();
newData.MeetingContent = this.txtMeetingContent.Text.Trim();
newData.Number = this.txtNumber.Text.Trim();
newData.Remark = this.txtRemark.Text.Trim();
newData.AttachUrl = this.txtMeetingUrl.Text.Trim();
if (this.drpCompileMan.SelectedValue != BLL.Const._Null)
{
newData.CompileMan = this.drpCompileMan.SelectedValue;
}
newData.CompileDate = Funs.GetNewDateTime(this.txtCompileDate.Text.Trim());
newData.ProjectId = this.CurrUser.LoginProjectId;
////单据状态
newData.States = BLL.Const.State_0;
if (type == BLL.Const.BtnSubmit)
{
newData.States = this.ctlAuditFlow.NextStep;
}
if (!string.IsNullOrEmpty(id))
{
newData.MeetingId = id;
@ -102,8 +156,144 @@ namespace FineUIPro.Web.TestRun.Meeting
}
BLL.MeetingService.AddMeeting(newData);
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
#region
BLL.MeetingItemService.DeleteMeetingItemByMeetingId(this.hdId.Text);
TreeNode[] nodes = this.tvAttendMeetingsPerson.GetCheckedNodes();
if (nodes.Length > 0)
{
foreach (TreeNode tn in nodes)
{
if (tn.NodeID != "0")
{
Model.Driver_MeetingItem newItem = new Model.Driver_MeetingItem
{
MeetingItemId = SQLHelper.GetNewID(typeof(Model.Driver_MeetingItem)),
MeetingId = this.hdId.Text,
UserId = tn.NodeID,
};
BLL.MeetingItemService.AddMeetingItem(newItem);
}
}
}
#endregion
////保存流程审核数据
this.ctlAuditFlow.btnSaveData(this.CurrUser.LoginProjectId, BLL.Const.SpecialMeetingMenuId, this.hdId.Text, (type == BLL.Const.BtnSubmit ? true : false), newData.MeetingCode, null);
}
#endregion
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">单位集合</param>
private void InitMenuTree()
{
this.tvAttendMeetingsPerson.Nodes.Clear();
var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
foreach (var item in units)
{
TreeNode rootNode = new TreeNode
{
Text = item.UnitName,
NodeID = item.UnitId,
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvAttendMeetingsPerson.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, string superMenuId)
{
var menus = BLL.UserService.GetUserByUnitId(this.CurrUser.LoginProjectId, superMenuId);
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.Text,
NodeID = item.Value,
EnableCheckBox = true,
EnableCheckEvent = true
};
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(this.hdId.Text.Trim());
if (items.Count > 0)
{
foreach (var i in items)
{
if (i.UserId == item.Value)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
var meeting = BLL.MeetingService.GetMeetingById(this.hdId.Text.Trim());
if (meeting != null)
{
if (meeting.States == "2")
{
if (i.IsMeeting == true)
{
chidNode.Text = item.Text + "(可按时参加)";
}
else if (i.IsMeeting == false)
{
chidNode.Text = item.Text + "(因故不参加:" + i.Feedback + "";
}
else
{
chidNode.Text = item.Text + "(暂未反馈)";
}
}
}
}
}
}
nodes.Add(chidNode);
}
}
#endregion
#region
/// <summary>
/// 全选、全不选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvAttendMeetingsPerson_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e)
{
if (e.Checked)
{
this.tvAttendMeetingsPerson.CheckAllNodes(e.Node.Nodes);
SetCheckParentNode(e.Node);
}
else
{
this.tvAttendMeetingsPerson.UncheckAllNodes(e.Node.Nodes);
}
}
/// <summary>
/// 选中父节点
/// </summary>
/// <param name="node"></param>
private void SetCheckParentNode(TreeNode node)
{
if (node.ParentNode != null && node.ParentNode.NodeID != "0")
{
node.ParentNode.Checked = true;
if (node.ParentNode.ParentNode.NodeID != "0")
{
SetCheckParentNode(node.ParentNode);
}
}
}
#endregion
}

View File

@ -66,6 +66,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnSubmit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSubmit;
/// <summary>
/// hdAttachUrl 控件。
/// </summary>
@ -103,31 +112,13 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.Form Form2;
/// <summary>
/// drpUnitWorkId 控件。
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWorkId;
/// <summary>
/// txtMeetingTake 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingTake;
/// <summary>
/// txtMeetingUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUnit;
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
@ -138,15 +129,6 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtNumber 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtNumber;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
@ -157,22 +139,31 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingContent 控件。
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtMeetingContent;
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// txtRemark 控件。
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemark;
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// Panel3 控件。
@ -201,6 +192,60 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// btnSign 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSign;
/// <summary>
/// tvAttendMeetingsPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvAttendMeetingsPerson;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ctlAuditFlow 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Web.Controls.FlowOperateControl ctlAuditFlow;
/// <summary>
/// WindowAtt 控件。
/// </summary>

View File

@ -0,0 +1,106 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SpecialMeetingView.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.SpecialMeetingView" ValidateRequest="false" %>
<%@ Register Src="~/Controls/FlowOperateControl.ascx" TagName="FlowOperateControl" TagPrefix="uc1" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:HiddenField ID="hdAttachUrl" runat="server">
</f:HiddenField>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
</Items>
</f:Toolbar>
</Toolbars>
<Rows>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel2" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="false" AutoScroll="true"
runat="server">
<f:Form ID="Form2" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px" >
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px" ></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px" >
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px" ></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px" ></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Panel ID="Panel3" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="会议纪要" LabelWidth="100px">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel1" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="Label1" runat="server" Label="签到表" LabelWidth="100px">
</f:Label>
<f:Button ID="btnSign" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnSign_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Tree ID="tvAttendMeetingsPerson" EnableCollapse="true" ShowHeader="true" Title="参会人员" EnableCheckBox="true"
AutoLeafIdentification="true" runat="server" EnableIcons="true" AutoScroll="true"
EnableSingleClickExpand="true" >
</f:Tree>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" runat="server" ShowHeader="false" EnableCollapse="true"
BodyPadding="0px">
<uc1:FlowOperateControl ID="ctlAuditFlow" runat="server" />
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window>
</form>
</body>
</html>

View File

@ -0,0 +1,150 @@
using System;
namespace FineUIPro.Web.TestRun.Meeting
{
public partial class SpecialMeetingView : PageBase
{
#region
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
Model.Driver_Meeting data = BLL.MeetingService.GetMeetingById(id);
if (data != null)
{
this.hdId.Text = id;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
InitMenuTree();
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.SpecialMeetingMenuId;
this.ctlAuditFlow.DataId = id;
}
}
#endregion
#region
/// <summary>
/// 会议纪要
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttach_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}&strParam=1", this.hdId.Text, BLL.Const.SpecialMeetingMenuId)));
}
}
/// <summary>
/// 签到表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSign_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/SpecialMeeting&menuId={1}&strParam=2", this.hdId.Text, BLL.Const.SpecialMeetingMenuId)));
}
}
#endregion
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">单位集合</param>
private void InitMenuTree()
{
this.tvAttendMeetingsPerson.Nodes.Clear();
var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
foreach (var item in units)
{
TreeNode rootNode = new TreeNode
{
Text = item.UnitName,
NodeID = item.UnitId,
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvAttendMeetingsPerson.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, string superMenuId)
{
var menus = BLL.UserService.GetUserByUnitId(this.CurrUser.LoginProjectId, superMenuId);
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.Text,
NodeID = item.Value,
EnableCheckBox = true,
EnableCheckEvent = true
};
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(this.hdId.Text.Trim());
if (items.Count > 0)
{
foreach (var i in items)
{
if (i.UserId == item.Value)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
var meeting = BLL.MeetingService.GetMeetingById(this.hdId.Text.Trim());
if (meeting != null)
{
if (meeting.States == "2")
{
if (i.IsMeeting == true)
{
chidNode.Text = item.Text + "(可按时参加)";
}
else if (i.IsMeeting == false)
{
chidNode.Text = item.Text + "(因故不参加:" + i.Feedback + "";
}
else
{
chidNode.Text = item.Text + "(暂未反馈)";
}
}
}
}
}
}
nodes.Add(chidNode);
}
}
#endregion
}
}

View File

@ -0,0 +1,240 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.Meeting {
public partial class SpecialMeetingView {
/// <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>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// hdAttachUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdAttachUrl;
/// <summary>
/// hdId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdId;
/// <summary>
/// ContentPanel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel2;
/// <summary>
/// Form2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form Form2;
/// <summary>
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// Panel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel3;
/// <summary>
/// lblAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblAttach;
/// <summary>
/// btnAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// btnSign 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSign;
/// <summary>
/// tvAttendMeetingsPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvAttendMeetingsPerson;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ctlAuditFlow 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Web.Controls.FlowOperateControl ctlAuditFlow;
/// <summary>
/// WindowAtt 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
}
}

View File

@ -6,6 +6,7 @@
<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">
@ -20,8 +21,7 @@
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpUnitWorkId" runat="server" Label="单位工程" LabelAlign="Right"></f:DropDownList>
<f:TextBox ID="txtMeetingContent" runat="server" Label="会议内容" LabelAlign="Right"></f:TextBox>
<f:TextBox ID="txtCode" runat="server" Label="编号" LabelAlign="Right"></f:TextBox>
<f:Button ID="btnSearch" Icon="SystemSearch" ToolTip="搜索"
EnablePostBack="true" runat="server" OnClick="btnSearch_Click">
</f:Button>
@ -38,31 +38,32 @@
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="UnitWorkName" DataField="UnitWorkName"
FieldType="String" HeaderText="单位工程" HeaderTextAlign="Center" Width="120px">
</f:RenderField>
<f:RenderField ColumnID="MeetingTake" DataField="MeetingTake"
FieldType="String" HeaderText="会议主持" HeaderTextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField ColumnID="MeetingUnit" DataField="MeetingUnit"
FieldType="String" HeaderText="参会单位" HeaderTextAlign="Center" Width="220px">
<f:RenderField ColumnID="MeetingCode" DataField="MeetingCode"
FieldType="String" HeaderText="编号" HeaderTextAlign="Center" Width="180px">
</f:RenderField>
<f:RenderField ColumnID="MeetingDate" DataField="MeetingDate"
FieldType="Date" Renderer="Date" HeaderText="会议日期" HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:RenderField ColumnID="Number" DataField="Number"
FieldType="String" HeaderText="期数" HeaderTextAlign="Center" Width="150px">
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="会议日期" HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="MeetingAddress" DataField="MeetingAddress"
FieldType="String" HeaderText="地点" HeaderTextAlign="Center" Width="180px">
FieldType="String" HeaderText="会议地点" HeaderTextAlign="Center" Width="180px">
</f:RenderField>
<f:RenderField ColumnID="MeetingContent" DataField="MeetingContent"
FieldType="String" HeaderText="会议内容" HeaderTextAlign="Center" Width="200px">
<f:RenderField ColumnID="CompileManName" DataField="CompileManName"
FieldType="String" HeaderText="发起人" HeaderTextAlign="Center" Width="90px">
</f:RenderField>
<f:RenderField ColumnID="Remark" DataField="Remark"
FieldType="String" HeaderText="备注" HeaderTextAlign="Center" Width="120px">
<f:RenderField ColumnID="CompileDate" DataField="CompileDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="发起时间" HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:LinkButtonField HeaderText="附件" ConfirmTarget="Top" Width="80px" CommandName="AttachUrl" ColumnID="AttachUrl"
<f:TemplateField HeaderText="参会人" Width="300px" HeaderTextAlign="Center" ExpandUnusedSpace="true">
<ItemTemplate>
<asp:Label ID="tbxGroupName" runat="server" Text='<%# ConvertUserName(Eval("MeetingId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="FlowOperateName" DataField="FlowOperateName"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" Width="110px">
</f:RenderField>
<f:LinkButtonField HeaderText="会议纪要" ConfirmTarget="Top" Width="80px" CommandName="AttachUrl" ColumnID="AttachUrl"
TextAlign="Center" ToolTip="附件查看" Icon="Find" />
<f:LinkButtonField HeaderText="签到表" ConfirmTarget="Top" Width="80px" CommandName="SignUrl" ColumnID="SignUrl"
TextAlign="Center" ToolTip="附件查看" Icon="Find" />
</Columns>
<Listeners>
@ -88,6 +89,10 @@
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="900px" Height="630px">
</f:Window>
<f:Window ID="Window2" Title="通知反馈" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="900px" Height="430px">
</f:Window>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
@ -99,6 +104,8 @@
<f:MenuButton ID="btnMenuDel" EnablePostBack="true" runat="server" Icon="Delete" Text="删除" ConfirmText="确定删除当前数据?"
OnClick="btnMenuDel_Click">
</f:MenuButton>
<f:MenuButton ID="btnMenuFeek" EnablePostBack="true" runat="server" Text="反馈" Icon="BookAddressesKey" OnClick="btnMenuFeek_Click">
</f:MenuButton>
</Items>
</f:Menu>
</form>

View File

@ -17,7 +17,6 @@ namespace FineUIPro.Web.TestRun.Meeting
GetButtonPower();
BindGrid();
btnNew.OnClientClick = Window1.GetShowReference("WeekMeetingEdit.aspx") + "return false;";
BLL.UnitWorkService.InitUnitWorkDropDownList(this.drpUnitWorkId, this.CurrUser.LoginProjectId, true);
}
}
#endregion
@ -37,25 +36,26 @@ namespace FineUIPro.Web.TestRun.Meeting
meeting.Number,
meeting.MeetingType,
meeting.Remark,
unitWork.UnitWorkName"
meeting.MeetingCode,
meeting.CompileMan,
u.UserName as CompileManName,
meeting.CompileDate,"
+ @" (CASE WHEN meeting.States = " + BLL.Const.State_0 + " OR meeting.States IS NULL THEN '待['+OperateUser.UserName+']提交' WHEN meeting.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName"
+ @" FROM Driver_Meeting AS meeting "
+ @" LEFT JOIN WBS_UnitWork AS unitWork ON unitWork.UnitWorkId = meeting.UnitWorkId WHERE meeting.ProjectId=@projectId AND meeting.MeetingType='2'";
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON meeting.MeetingId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
+ @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId"
+ @" LEFT JOIN Sys_User as u on u.UserId = meeting.CompileMan"
+ @" WHERE meeting.ProjectId=@projectId AND meeting.MeetingType='2'";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId));
if (!string.IsNullOrEmpty(this.drpUnitWorkId.SelectedValue) && this.drpUnitWorkId.SelectedValue != BLL.Const._Null)
if (!string.IsNullOrEmpty(this.txtCode.Text.Trim()))
{
strSql += " AND meeting.UnitWorkId=@unitWorkId";
listStr.Add(new SqlParameter("@unitWorkId", this.drpUnitWorkId.SelectedValue));
}
if (!string.IsNullOrEmpty(this.txtMeetingContent.Text.Trim()))
{
strSql += " AND meeting.MeetingContent LIKE @MeetingContent";
listStr.Add(new SqlParameter("@MeetingContent", "%" + this.txtMeetingContent.Text.Trim() + "%"));
strSql += " AND meeting.MeetingCode LIKE @meetingCode";
listStr.Add(new SqlParameter("@meetingCode", "%" + this.txtCode.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
@ -143,8 +143,23 @@ namespace FineUIPro.Web.TestRun.Meeting
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
var user = (from x in Funs.DB.Sys_FlowOperate where x.DataId == Grid1.SelectedRowID && x.MenuId == BLL.Const.WeekMeetingMenuId && x.IsClosed == false orderby x.SortIndex descending select x).FirstOrDefault();
if (user != null)
{
if (user.OperaterId == this.CurrUser.UserId)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekMeetingEdit.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekMeetingView.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekMeetingView.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
#endregion
#region
@ -158,6 +173,7 @@ namespace FineUIPro.Web.TestRun.Meeting
var info = BLL.MeetingService.GetMeetingById(rowID);
if (info != null)
{
BLL.MeetingItemService.DeleteMeetingItemByMeetingId(rowID);
BLL.MeetingService.DeleteMeeting(rowID);
}
}
@ -178,7 +194,11 @@ namespace FineUIPro.Web.TestRun.Meeting
string id = Grid1.DataKeys[e.RowIndex][0].ToString();
if (e.CommandName == "AttachUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}", id, BLL.Const.WeekMeetingMenuId)));
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}&strParam=1", id, BLL.Const.WeekMeetingMenuId)));
}
if (e.CommandName == "SignUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}&strParam=2", id, BLL.Const.WeekMeetingMenuId)));
}
}
#endregion
@ -208,5 +228,74 @@ namespace FineUIPro.Web.TestRun.Meeting
}
}
#endregion
#region
/// <summary>
/// 获取通知人员姓名
/// </summary>
/// <param name="meetingId"></param>
/// <returns></returns>
protected string ConvertUserName(object meetingId)
{
string userName = string.Empty;
var meetingItem = BLL.MeetingItemService.GetMeetingItemByMeetingId(meetingId.ToString());
if (meetingItem.Count > 0)
{
foreach (var item in meetingItem)
{
userName += BLL.UserService.GetUserNameByUserId(item.UserId) + ",";
}
if (!string.IsNullOrEmpty(userName))
{
userName = userName.Substring(0, userName.LastIndexOf(','));
}
}
return userName;
}
#endregion
#region
/// <summary>
/// 反馈
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuFeek_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
var meeting = BLL.MeetingService.GetMeetingById(Grid1.SelectedRowID);
if (meeting.States == "2")
{
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(Grid1.SelectedRowID);
if (items.Count > 0)
{
var user = items.Where(x => x.UserId == this.CurrUser.UserId);
if (user.Count() > 0)
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("Feedback.aspx?id={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
Alert.ShowInTop("未参与此会议,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("未参与此会议,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("审核未完成,无需反馈!", MessageBoxIcon.Warning);
return;
}
}
#endregion
}
}

View File

@ -58,22 +58,13 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// drpUnitWorkId 控件。
/// txtCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWorkId;
/// <summary>
/// txtMeetingContent 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingContent;
protected global::FineUIPro.TextBox txtCode;
/// <summary>
/// btnSearch 控件。
@ -102,6 +93,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <summary>
/// tbxGroupName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label tbxGroupName;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
@ -138,6 +138,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// WindowAtt 控件。
/// </summary>
@ -173,5 +182,14 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDel;
/// <summary>
/// btnMenuFeek 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuFeek;
}
}

View File

@ -1,4 +1,5 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeekMeetingEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.WeekMeetingEdit" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeekMeetingEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.WeekMeetingEdit" ValidateRequest="false"%>
<%@ Register Src="~/Controls/FlowOperateControl.ascx" TagName="FlowOperateControl" TagPrefix="uc1" %>
<!DOCTYPE html>
@ -19,6 +20,8 @@
</f:ToolbarFill>
<f:Button ID="btnSave" OnClick="btnSave_Click" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1">
</f:Button>
<f:Button ID="btnSubmit" OnClick="btnSubmit_Click" Icon="SystemSaveNew" runat="server" ToolTip="提交" ValidateForms="SimpleForm1">
</f:Button>
<f:HiddenField ID="hdAttachUrl" runat="server">
</f:HiddenField>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
@ -36,61 +39,59 @@
<Rows>
<f:FormRow>
<Items>
<f:DropDownList ID="drpUnitWorkId" runat="server" Label="单位工程" LabelAlign="Right" LabelWidth="150px"></f:DropDownList>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px" MaxLength="50" Required="true" ShowRedStar="true">
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingTake" runat="server" Label="会议主持" LabelAlign="Right" LabelWidth="150px" MaxLength="50" Required="true" ShowRedStar="true">
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px" MaxLength="100" Required="true" ShowRedStar="true">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px" MaxLength="1000">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingUnit" runat="server" Label="参会单位" LabelAlign="Right" LabelWidth="150px" MaxLength="150">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="150px"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtNumber" runat="server" Label="期数" LabelAlign="Right" LabelWidth="150px" MaxLength="50">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="150px" MaxLength="100">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtMeetingContent" runat="server" Label="会议内容" LabelAlign="Right" LabelWidth="150px" MaxLength="500">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" LabelAlign="Right" LabelWidth="150px" MaxLength="500">
</f:TextArea>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px" EnableEdit="true" Required="true" ShowRedStar="true"></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px" Required="true" ShowRedStar="true"></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Panel ID="Panel3" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="上传附件"
LabelWidth="150px">
<f:Label ID="lblAttach" runat="server" Label="会议纪要" LabelWidth="100px">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel1" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="Label1" runat="server" Label="签到表" LabelWidth="100px">
</f:Label>
<f:Button ID="btnSign" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnSign_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Tree ID="tvAttendMeetingsPerson" EnableCollapse="true" ShowHeader="true" Title="参会人员" EnableCheckBox="true"
AutoLeafIdentification="true" runat="server" EnableIcons="true" AutoScroll="true"
EnableSingleClickExpand="true" OnNodeCheck="tvAttendMeetingsPerson_NodeCheck">
</f:Tree>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" runat="server" ShowHeader="false" EnableCollapse="true"
BodyPadding="0px">
<uc1:flowoperatecontrol id="ctlAuditFlow" runat="server" />
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>

View File

@ -15,8 +15,7 @@ namespace FineUIPro.Web.TestRun.Meeting
{
if (!IsPostBack)
{
BLL.UnitWorkService.InitUnitWorkDropDownList(this.drpUnitWorkId, this.CurrUser.LoginProjectId, true);
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
@ -24,23 +23,32 @@ namespace FineUIPro.Web.TestRun.Meeting
if (data != null)
{
this.hdId.Text = id;
if (!string.IsNullOrEmpty(data.UnitWorkId))
{
this.drpUnitWorkId.SelectedValue = data.UnitWorkId;
}
this.txtMeetingTake.Text = data.MeetingTake;
this.txtMeetingUnit.Text = data.MeetingUnit;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingContent.Text = data.MeetingContent;
this.txtNumber.Text = data.Number;
this.txtRemark.Text = data.Remark;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
else
{
this.txtMeetingDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
this.drpCompileMan.SelectedValue = this.CurrUser.LoginProjectId;
this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
string perfix = BLL.ProjectService.GetProjectCodeByProjectId(this.CurrUser.LoginProjectId) + "-MM-PSM-";
this.txtMeetingCode.Text = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "dbo.Driver_Meeting", "MeetingCode", this.CurrUser.LoginProjectId, perfix);
}
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.WeekMeetingMenuId;
this.ctlAuditFlow.DataId = id;
this.ctlAuditFlow.ProjectId = this.CurrUser.LoginProjectId;
this.ctlAuditFlow.UnitId = this.CurrUser.UnitId;
InitMenuTree();
}
}
#endregion
@ -57,7 +65,21 @@ namespace FineUIPro.Web.TestRun.Meeting
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.Driver_Meeting));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}", this.hdId.Text, BLL.Const.WeekMeetingMenuId)));
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}&strParam=1", this.hdId.Text, BLL.Const.WeekMeetingMenuId)));
}
/// <summary>
/// 签到表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSign_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.hdId.Text)) //新增记录
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.Driver_Meeting));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}&strParam=2", this.hdId.Text, BLL.Const.WeekMeetingMenuId)));
}
#endregion
@ -68,21 +90,53 @@ namespace FineUIPro.Web.TestRun.Meeting
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
SaveData(BLL.Const.BtnSave);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.ctlAuditFlow.NextStep == BLL.Const.State_1 && this.ctlAuditFlow.NextPerson == BLL.Const._Null)
{
ShowNotify("请选择下一步办理人!", MessageBoxIcon.Warning);
return;
}
SaveData(BLL.Const.BtnSubmit);
ShowNotify("提交成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
string id = Request.Params["id"];
Model.Driver_Meeting newData = new Model.Driver_Meeting();
if (this.drpUnitWorkId.SelectedValue != BLL.Const._Null)
{
newData.UnitWorkId = this.drpUnitWorkId.SelectedValue;
}
newData.MeetingTake = this.txtMeetingTake.Text.Trim();
newData.MeetingUnit = this.txtMeetingUnit.Text.Trim();
newData.MeetingCode = this.txtMeetingCode.Text.Trim();
newData.MeetingDate = Funs.GetNewDateTime(this.txtMeetingDate.Text.Trim());
newData.MeetingAddress = this.txtMeetingAddress.Text.Trim();
newData.MeetingContent = this.txtMeetingContent.Text.Trim();
newData.Number = this.txtNumber.Text.Trim();
newData.Remark = this.txtRemark.Text.Trim();
newData.AttachUrl = this.txtMeetingUrl.Text.Trim();
if (this.drpCompileMan.SelectedValue != BLL.Const._Null)
{
newData.CompileMan = this.drpCompileMan.SelectedValue;
}
newData.CompileDate = Funs.GetNewDateTime(this.txtCompileDate.Text.Trim());
newData.ProjectId = this.CurrUser.LoginProjectId;
////单据状态
newData.States = BLL.Const.State_0;
if (type == BLL.Const.BtnSubmit)
{
newData.States = this.ctlAuditFlow.NextStep;
}
if (!string.IsNullOrEmpty(id))
{
newData.MeetingId = id;
@ -102,8 +156,145 @@ namespace FineUIPro.Web.TestRun.Meeting
}
BLL.MeetingService.AddMeeting(newData);
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
#region
BLL.MeetingItemService.DeleteMeetingItemByMeetingId(this.hdId.Text);
TreeNode[] nodes = this.tvAttendMeetingsPerson.GetCheckedNodes();
if (nodes.Length > 0)
{
foreach (TreeNode tn in nodes)
{
if (tn.NodeID != "0")
{
Model.Driver_MeetingItem newItem = new Model.Driver_MeetingItem
{
MeetingItemId = SQLHelper.GetNewID(typeof(Model.Driver_MeetingItem)),
MeetingId = this.hdId.Text,
UserId = tn.NodeID,
};
BLL.MeetingItemService.AddMeetingItem(newItem);
}
}
}
#endregion
////保存流程审核数据
this.ctlAuditFlow.btnSaveData(this.CurrUser.LoginProjectId, BLL.Const.WeekMeetingMenuId, this.hdId.Text, (type == BLL.Const.BtnSubmit ? true : false), newData.MeetingCode, null);
}
#endregion
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">单位集合</param>
private void InitMenuTree()
{
this.tvAttendMeetingsPerson.Nodes.Clear();
var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
foreach (var item in units)
{
TreeNode rootNode = new TreeNode
{
Text = item.UnitName,
NodeID = item.UnitId,
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvAttendMeetingsPerson.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, string superMenuId)
{
var menus = BLL.UserService.GetUserByUnitId(this.CurrUser.LoginProjectId, superMenuId);
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.Text,
NodeID = item.Value,
EnableCheckBox = true,
EnableCheckEvent = true
};
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(this.hdId.Text.Trim());
if (items.Count > 0)
{
foreach (var i in items)
{
if (i.UserId == item.Value)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
var meeting = BLL.MeetingService.GetMeetingById(this.hdId.Text.Trim());
if (meeting != null)
{
if (meeting.States == "2")
{
if (i.IsMeeting == true)
{
chidNode.Text = item.Text + "(可按时参加)";
}
else if (i.IsMeeting == false)
{
chidNode.Text = item.Text + "(因故不参加:" + i.Feedback + "";
}
else
{
chidNode.Text = item.Text + "(暂未反馈)";
}
}
}
}
}
}
nodes.Add(chidNode);
}
}
#endregion
#region
/// <summary>
/// 全选、全不选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvAttendMeetingsPerson_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e)
{
if (e.Checked)
{
this.tvAttendMeetingsPerson.CheckAllNodes(e.Node.Nodes);
SetCheckParentNode(e.Node);
}
else
{
this.tvAttendMeetingsPerson.UncheckAllNodes(e.Node.Nodes);
}
}
/// <summary>
/// 选中父节点
/// </summary>
/// <param name="node"></param>
private void SetCheckParentNode(TreeNode node)
{
if (node.ParentNode != null && node.ParentNode.NodeID != "0")
{
node.ParentNode.Checked = true;
if (node.ParentNode.ParentNode.NodeID != "0")
{
SetCheckParentNode(node.ParentNode);
}
}
}
#endregion
}

View File

@ -66,6 +66,15 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnSubmit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSubmit;
/// <summary>
/// hdAttachUrl 控件。
/// </summary>
@ -103,31 +112,13 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.Form Form2;
/// <summary>
/// drpUnitWorkId 控件。
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWorkId;
/// <summary>
/// txtMeetingTake 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingTake;
/// <summary>
/// txtMeetingUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUnit;
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
@ -138,15 +129,6 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtNumber 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtNumber;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
@ -157,22 +139,31 @@ namespace FineUIPro.Web.TestRun.Meeting {
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingContent 控件。
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtMeetingContent;
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// txtRemark 控件。
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRemark;
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// Panel3 控件。
@ -201,6 +192,60 @@ namespace FineUIPro.Web.TestRun.Meeting {
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// btnSign 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSign;
/// <summary>
/// tvAttendMeetingsPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvAttendMeetingsPerson;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ctlAuditFlow 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Web.Controls.FlowOperateControl ctlAuditFlow;
/// <summary>
/// WindowAtt 控件。
/// </summary>

View File

@ -0,0 +1,106 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeekMeetingView.aspx.cs" Inherits="FineUIPro.Web.TestRun.Meeting.WeekMeetingView" ValidateRequest="false" %>
<%@ Register Src="~/Controls/FlowOperateControl.ascx" TagName="FlowOperateControl" TagPrefix="uc1" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:HiddenField ID="hdAttachUrl" runat="server">
</f:HiddenField>
<f:HiddenField ID="hdId" runat="server"></f:HiddenField>
</Items>
</f:Toolbar>
</Toolbars>
<Rows>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel2" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="false" AutoScroll="true"
runat="server">
<f:Form ID="Form2" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingCode" runat="server" Label="编号" LabelAlign="Right" LabelWidth="100px" >
</f:TextBox>
<f:DatePicker ID="txtMeetingDate" runat="server" Label="会议日期" LabelAlign="Right" LabelWidth="100px" ></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMeetingAddress" runat="server" Label="地点" LabelAlign="Right" LabelWidth="100px">
</f:TextBox>
<f:TextBox ID="txtMeetingUrl" runat="server" Label="会议链接" LabelAlign="Right" LabelWidth="100px" >
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCompileMan" runat="server" Label="发起人" LabelAlign="Right" LabelWidth="100px" ></f:DropDownList>
<f:DatePicker ID="txtCompileDate" runat="server" Label="发起日期" LabelAlign="Right" LabelWidth="100px" ></f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Panel ID="Panel3" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="会议纪要" LabelWidth="100px">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel1" Width="300px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="Label1" runat="server" Label="签到表" LabelWidth="100px">
</f:Label>
<f:Button ID="btnSign" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnSign_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow runat="server">
<Items>
<f:Tree ID="tvAttendMeetingsPerson" EnableCollapse="true" ShowHeader="true" Title="参会人员" EnableCheckBox="true"
AutoLeafIdentification="true" runat="server" EnableIcons="true" AutoScroll="true"
EnableSingleClickExpand="true" >
</f:Tree>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" runat="server" ShowHeader="false" EnableCollapse="true"
BodyPadding="0px">
<uc1:FlowOperateControl ID="ctlAuditFlow" runat="server" />
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window>
</form>
</body>
</html>

View File

@ -0,0 +1,150 @@
using System;
namespace FineUIPro.Web.TestRun.Meeting
{
public partial class WeekMeetingView : PageBase
{
#region
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BLL.UserService.InitUserDropDownList(this.drpCompileMan, this.CurrUser.LoginProjectId, true);
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
Model.Driver_Meeting data = BLL.MeetingService.GetMeetingById(id);
if (data != null)
{
this.hdId.Text = id;
this.txtMeetingCode.Text = data.MeetingCode;
this.txtMeetingDate.Text = data.MeetingDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MeetingDate) : "";
this.txtMeetingAddress.Text = data.MeetingAddress;
this.txtMeetingUrl.Text = data.AttachUrl;
if (!string.IsNullOrEmpty(data.CompileMan))
{
this.drpCompileMan.SelectedValue = data.CompileMan;
}
this.txtCompileDate.Text = data.CompileDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.CompileDate) : "";
}
}
InitMenuTree();
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.WeekMeetingMenuId;
this.ctlAuditFlow.DataId = id;
}
}
#endregion
#region
/// <summary>
/// 会议纪要
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttach_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}&strParam=1", this.hdId.Text, BLL.Const.WeekMeetingMenuId)));
}
}
/// <summary>
/// 签到表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSign_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/TestRun/Meeting/WeekMeeting&menuId={1}&strParam=2", this.hdId.Text, BLL.Const.WeekMeetingMenuId)));
}
}
#endregion
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">单位集合</param>
private void InitMenuTree()
{
this.tvAttendMeetingsPerson.Nodes.Clear();
var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
foreach (var item in units)
{
TreeNode rootNode = new TreeNode
{
Text = item.UnitName,
NodeID = item.UnitId,
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvAttendMeetingsPerson.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, string superMenuId)
{
var menus = BLL.UserService.GetUserByUnitId(this.CurrUser.LoginProjectId, superMenuId);
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.Text,
NodeID = item.Value,
EnableCheckBox = true,
EnableCheckEvent = true
};
var items = BLL.MeetingItemService.GetMeetingItemByMeetingId(this.hdId.Text.Trim());
if (items.Count > 0)
{
foreach (var i in items)
{
if (i.UserId == item.Value)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
var meeting = BLL.MeetingService.GetMeetingById(this.hdId.Text.Trim());
if (meeting != null)
{
if (meeting.States == "2")
{
if (i.IsMeeting == true)
{
chidNode.Text = item.Text + "(可按时参加)";
}
else if (i.IsMeeting == false)
{
chidNode.Text = item.Text + "(因故不参加:" + i.Feedback + "";
}
else
{
chidNode.Text = item.Text + "(暂未反馈)";
}
}
}
}
}
}
nodes.Add(chidNode);
}
}
#endregion
}
}

View File

@ -0,0 +1,240 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.Meeting {
public partial class WeekMeetingView {
/// <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>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// hdAttachUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdAttachUrl;
/// <summary>
/// hdId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hdId;
/// <summary>
/// ContentPanel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel2;
/// <summary>
/// Form2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form Form2;
/// <summary>
/// txtMeetingCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingCode;
/// <summary>
/// txtMeetingDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtMeetingDate;
/// <summary>
/// txtMeetingAddress 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingAddress;
/// <summary>
/// txtMeetingUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMeetingUrl;
/// <summary>
/// drpCompileMan 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCompileMan;
/// <summary>
/// txtCompileDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtCompileDate;
/// <summary>
/// Panel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel3;
/// <summary>
/// lblAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblAttach;
/// <summary>
/// btnAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// btnSign 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSign;
/// <summary>
/// tvAttendMeetingsPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvAttendMeetingsPerson;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ctlAuditFlow 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Web.Controls.FlowOperateControl ctlAuditFlow;
/// <summary>
/// WindowAtt 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
}
}

View File

@ -719,6 +719,9 @@ namespace Model
partial void InsertDriver_Meeting(Driver_Meeting instance);
partial void UpdateDriver_Meeting(Driver_Meeting instance);
partial void DeleteDriver_Meeting(Driver_Meeting instance);
partial void InsertDriver_MeetingItem(Driver_MeetingItem instance);
partial void UpdateDriver_MeetingItem(Driver_MeetingItem instance);
partial void DeleteDriver_MeetingItem(Driver_MeetingItem instance);
partial void InsertDriver_TestRun(Driver_TestRun instance);
partial void UpdateDriver_TestRun(Driver_TestRun instance);
partial void DeleteDriver_TestRun(Driver_TestRun instance);
@ -4412,6 +4415,14 @@ namespace Model
}
}
public System.Data.Linq.Table<Driver_MeetingItem> Driver_MeetingItem
{
get
{
return this.GetTable<Driver_MeetingItem>();
}
}
public System.Data.Linq.Table<Driver_TestRun> Driver_TestRun
{
get
@ -121006,10 +121017,20 @@ namespace Model
private string _Remark;
private string _MeetingCode;
private string _States;
private string _CompileMan;
private System.Nullable<System.DateTime> _CompileDate;
private EntityRef<Base_Project> _Base_Project;
private EntityRef<WBS_UnitWork> _WBS_UnitWork;
private EntitySet<Driver_MeetingItem> _Driver_MeetingItem;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -121038,12 +121059,21 @@ namespace Model
partial void OnMeetingTypeChanged();
partial void OnRemarkChanging(string value);
partial void OnRemarkChanged();
partial void OnMeetingCodeChanging(string value);
partial void OnMeetingCodeChanged();
partial void OnStatesChanging(string value);
partial void OnStatesChanged();
partial void OnCompileManChanging(string value);
partial void OnCompileManChanged();
partial void OnCompileDateChanging(System.Nullable<System.DateTime> value);
partial void OnCompileDateChanged();
#endregion
public Driver_Meeting()
{
this._Base_Project = default(EntityRef<Base_Project>);
this._WBS_UnitWork = default(EntityRef<WBS_UnitWork>);
this._Driver_MeetingItem = new EntitySet<Driver_MeetingItem>(new Action<Driver_MeetingItem>(this.attach_Driver_MeetingItem), new Action<Driver_MeetingItem>(this.detach_Driver_MeetingItem));
OnCreated();
}
@ -121295,6 +121325,86 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MeetingCode", DbType="NVarChar(50)")]
public string MeetingCode
{
get
{
return this._MeetingCode;
}
set
{
if ((this._MeetingCode != value))
{
this.OnMeetingCodeChanging(value);
this.SendPropertyChanging();
this._MeetingCode = value;
this.SendPropertyChanged("MeetingCode");
this.OnMeetingCodeChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_States", DbType="Char(1)")]
public string States
{
get
{
return this._States;
}
set
{
if ((this._States != value))
{
this.OnStatesChanging(value);
this.SendPropertyChanging();
this._States = value;
this.SendPropertyChanged("States");
this.OnStatesChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompileMan", DbType="NVarChar(50)")]
public string CompileMan
{
get
{
return this._CompileMan;
}
set
{
if ((this._CompileMan != value))
{
this.OnCompileManChanging(value);
this.SendPropertyChanging();
this._CompileMan = value;
this.SendPropertyChanged("CompileMan");
this.OnCompileManChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompileDate", DbType="DateTime")]
public System.Nullable<System.DateTime> CompileDate
{
get
{
return this._CompileDate;
}
set
{
if ((this._CompileDate != value))
{
this.OnCompileDateChanging(value);
this.SendPropertyChanging();
this._CompileDate = value;
this.SendPropertyChanged("CompileDate");
this.OnCompileDateChanged();
}
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Driver_Meeting_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)]
public Base_Project Base_Project
{
@ -121363,6 +121473,230 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Driver_MeetingItem_Driver_Meeting", Storage="_Driver_MeetingItem", ThisKey="MeetingId", OtherKey="MeetingId", DeleteRule="NO ACTION")]
public EntitySet<Driver_MeetingItem> Driver_MeetingItem
{
get
{
return this._Driver_MeetingItem;
}
set
{
this._Driver_MeetingItem.Assign(value);
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void SendPropertyChanging()
{
if ((this.PropertyChanging != null))
{
this.PropertyChanging(this, emptyChangingEventArgs);
}
}
protected virtual void SendPropertyChanged(String propertyName)
{
if ((this.PropertyChanged != null))
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private void attach_Driver_MeetingItem(Driver_MeetingItem entity)
{
this.SendPropertyChanging();
entity.Driver_Meeting = this;
}
private void detach_Driver_MeetingItem(Driver_MeetingItem entity)
{
this.SendPropertyChanging();
entity.Driver_Meeting = null;
}
}
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Driver_MeetingItem")]
public partial class Driver_MeetingItem : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private string _MeetingItemId;
private string _MeetingId;
private string _UserId;
private System.Nullable<bool> _IsMeeting;
private string _Feedback;
private EntityRef<Driver_Meeting> _Driver_Meeting;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnMeetingItemIdChanging(string value);
partial void OnMeetingItemIdChanged();
partial void OnMeetingIdChanging(string value);
partial void OnMeetingIdChanged();
partial void OnUserIdChanging(string value);
partial void OnUserIdChanged();
partial void OnIsMeetingChanging(System.Nullable<bool> value);
partial void OnIsMeetingChanged();
partial void OnFeedbackChanging(string value);
partial void OnFeedbackChanged();
#endregion
public Driver_MeetingItem()
{
this._Driver_Meeting = default(EntityRef<Driver_Meeting>);
OnCreated();
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MeetingItemId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)]
public string MeetingItemId
{
get
{
return this._MeetingItemId;
}
set
{
if ((this._MeetingItemId != value))
{
this.OnMeetingItemIdChanging(value);
this.SendPropertyChanging();
this._MeetingItemId = value;
this.SendPropertyChanged("MeetingItemId");
this.OnMeetingItemIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MeetingId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
public string MeetingId
{
get
{
return this._MeetingId;
}
set
{
if ((this._MeetingId != value))
{
if (this._Driver_Meeting.HasLoadedOrAssignedValue)
{
throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
}
this.OnMeetingIdChanging(value);
this.SendPropertyChanging();
this._MeetingId = value;
this.SendPropertyChanged("MeetingId");
this.OnMeetingIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserId", DbType="NVarChar(50)")]
public string UserId
{
get
{
return this._UserId;
}
set
{
if ((this._UserId != value))
{
this.OnUserIdChanging(value);
this.SendPropertyChanging();
this._UserId = value;
this.SendPropertyChanged("UserId");
this.OnUserIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsMeeting", DbType="Bit")]
public System.Nullable<bool> IsMeeting
{
get
{
return this._IsMeeting;
}
set
{
if ((this._IsMeeting != value))
{
this.OnIsMeetingChanging(value);
this.SendPropertyChanging();
this._IsMeeting = value;
this.SendPropertyChanged("IsMeeting");
this.OnIsMeetingChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Feedback", DbType="NVarChar(100)")]
public string Feedback
{
get
{
return this._Feedback;
}
set
{
if ((this._Feedback != value))
{
this.OnFeedbackChanging(value);
this.SendPropertyChanging();
this._Feedback = value;
this.SendPropertyChanged("Feedback");
this.OnFeedbackChanged();
}
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Driver_MeetingItem_Driver_Meeting", Storage="_Driver_Meeting", ThisKey="MeetingId", OtherKey="MeetingId", IsForeignKey=true)]
public Driver_Meeting Driver_Meeting
{
get
{
return this._Driver_Meeting.Entity;
}
set
{
Driver_Meeting previousValue = this._Driver_Meeting.Entity;
if (((previousValue != value)
|| (this._Driver_Meeting.HasLoadedOrAssignedValue == false)))
{
this.SendPropertyChanging();
if ((previousValue != null))
{
this._Driver_Meeting.Entity = null;
previousValue.Driver_MeetingItem.Remove(this);
}
this._Driver_Meeting.Entity = value;
if ((value != null))
{
value.Driver_MeetingItem.Add(this);
this._MeetingId = value.MeetingId;
}
else
{
this._MeetingId = default(string);
}
this.SendPropertyChanged("Driver_Meeting");
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;