点击查看代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BLL;
using DAL;
using Model;
namespace UI
{
public partial class CateringShowForm : Form
{
private RoomBLL _roomBLL = new RoomBLL();
private CateringLoginForm _loginForm;
private DeskBLL _deskBLL = new DeskBLL();
public CateringShowForm()
{
InitializeComponent();
this.StartPosition = FormStartPosition.CenterScreen;
}
public CateringShowForm(CateringLoginForm cateringLoginForm) : this()
{
_loginForm = cateringLoginForm;
}
private void CateringShowForm_FormClosing(object sender, FormClosingEventArgs e)
{
_loginForm?.Close();
Application.Exit();
}
public void ShowTime()
{
labTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
private void CateringShowForm_Load(object sender, EventArgs e)
{
ShowTime(); // 在窗体加载时立即显示当前时间
timer1.Interval = 1000; // 设置定时器的时间间隔为1000毫秒(1秒)
timer1.Start(); // 启动定时器
//展示包房信息
InitRoomInfoData();
}
// 初始化加载包房信息
public void InitRoomInfoData()
{
DataTable dt = _roomBLL.QueryRoom();
DataRowCollection rows = dt.Rows;
foreach (DataRow roomInfo in rows)
{
string rname = roomInfo[1].ToString();
TabPage tabPage = new TabPage(rname);
tabPage.Tag = roomInfo;
tabControl2.TabPages.Add(tabPage);
// 设置新添加的 TabPage 为当前选中的 TabPage
tabControl2.SelectedTab = tabPage;
// 调用 ShowDeskInfoByRoom 方法显示桌台信息
ShowDeskInfoByRoom();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
ShowTime(); // 每次定时器触发时调用 ShowTime 方法
}
private void btnMemmber_Click(object sender, EventArgs e)
{
MemberShowForm memberShowForm = new MemberShowForm();
memberShowForm.ShowDialog();
}
private void btnCategory_Click(object sender, EventArgs e)
{
ProductInfoShowForm productInfoShowForm = new ProductInfoShowForm();
productInfoShowForm.ShowDialog();
}
// 查询包房(标签页)显示桌台信息
public void ShowDeskInfoByRoom()
{
TabPage selectedTab = tabControl2.SelectedTab;
// 获取包房信息
DataRow roominfo = selectedTab.Tag as DataRow;
ListView listView;
if (selectedTab.Controls.Count == 0)
{
listView = new ListView();
selectedTab.Controls.Add(listView);
}
else
{
listView = selectedTab.Controls[0] as ListView;
}
// 获取包房id
int roomid = Convert.ToInt32(roominfo[0]);
Console.WriteLine(roomid + "================");
// 根据包房类别(标签页)查询包房信息
DataTable dataTable = _deskBLL.QueryDeskInfoByRoomId(roomid);
listView.Dock = DockStyle.Fill; // 设置充满窗体
listView.View = View.LargeIcon; // 设置大图标
listView.LargeImageList = imageList1; // 设置大图标
listView.MultiSelect = false; // 设置单选
listView.Items.Clear(); // 清空原有的列表项
foreach (DataRow deskInfo in dataTable.Rows)
{
Console.WriteLine(deskInfo[0] + " " + deskInfo[1]);
ListViewItem listViewItem = new ListViewItem(deskInfo[2].ToString()); // 添加到列表中
listViewItem.ImageIndex = Convert.ToInt32(deskInfo[4]); // 设置图标
listViewItem.Tag = deskInfo; // 设置数据
listView.Items.Add(listViewItem);
}
}
// 切换包房(标签页)的切换事件
private void tabControl2_SelectedIndexChanged(object sender, EventArgs e)
{
ShowDeskInfoByRoom();
}
// 定义事件
public event EventHandler AddOrderEvent;
// 顾客开单的事件
private void btnBiling_Click(object sender, EventArgs e)
{
TabPage selectedTab = tabControl2.SelectedTab;
DataRow roomInfo = selectedTab.Tag as DataRow;
ListView listView;
if (selectedTab.Controls.Count == 0)
{
MessageBox.Show("当前标签页未加载桌台信息,请稍候重试。");
return;
}
else
{
listView = selectedTab.Controls[0] as ListView;
}
int count = listView.SelectedItems.Count;
if (count == 0)
{
MessageBox.Show("请选择开单的桌台");
return;
}
ListViewItem listViewItem = listView.SelectedItems[0];
DataRow deskInfo = listViewItem.Tag as DataRow;
if (Convert.ToInt32(deskInfo[4]) == 1)
{
MessageBox.Show("请选择空闲的桌台");
}
else
{
OrderAddForm orderAddForm = new OrderAddForm(); // 创建订单添加界面
OrderDTO orderDTO = new OrderDTO(); // 创建订单数据传输对象
orderDTO.RoomId = Convert.ToInt32(roomInfo[0]); // 设置房间编号
orderDTO.RoomName = roomInfo[1].ToString(); // 设置房间名称
Console.WriteLine(roomInfo[2]); // 设置房间消费
orderDTO.RoomMinConsumption = Convert.ToInt32(roomInfo[2]); // 设置房间最低消费
orderDTO.DeskId = Convert.ToInt32(deskInfo[0]); // 设置桌台编号
orderDTO.DeskName = deskInfo[2].ToString(); // 设置桌台名称
// 订阅订单添加界面的获取数据事件
AddOrderEvent += orderAddForm.SetData;
// 发布事件
AddOrderEvent.Invoke(this, orderDTO);
orderAddForm.ShowDialog(); // 显示订单添加界面
}
}
}
}