|
|
|
|
using DevComponents.DotNetBar;
|
|
|
|
|
using DevComponents.DotNetBar.Controls;
|
|
|
|
|
using DevComponents.DotNetBar.Metro;
|
|
|
|
|
using POS.Language.Language;
|
|
|
|
|
using POSV.Card;
|
|
|
|
|
using POSV.Entity;
|
|
|
|
|
using POSV.ShoppingCart;
|
|
|
|
|
using POSV.Utils;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace POSV.Component
|
|
|
|
|
{
|
|
|
|
|
public partial class DeskNoForm : BusinessForm
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 数据源
|
|
|
|
|
/// </summary>
|
|
|
|
|
private List<Table> _dataSource = null;
|
|
|
|
|
|
|
|
|
|
private OrderObject _orderObject = null;
|
|
|
|
|
|
|
|
|
|
private static int _DEFAULTITEMHIGHT = 80;
|
|
|
|
|
|
|
|
|
|
private static int _DEFAULTCOLUMNS = 5;
|
|
|
|
|
|
|
|
|
|
private int DefaultCategoryItemWidth = 87;
|
|
|
|
|
|
|
|
|
|
private Size DefaultMainMenuSize = Size.Empty;
|
|
|
|
|
|
|
|
|
|
private int DefaultPaddingLeftRight = -2;
|
|
|
|
|
|
|
|
|
|
private Table selectTable =null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 餐桌类型数据源
|
|
|
|
|
/// </summary>
|
|
|
|
|
private List<TableType> _tableTypeList = null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 餐桌区域数据源
|
|
|
|
|
/// </summary>
|
|
|
|
|
private List<TableArea> _tableAreaList = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Dictionary<string, string> AreaMap = new Dictionary<string, string>();
|
|
|
|
|
|
|
|
|
|
public DeskNoForm(OrderObject orderObject)
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
|
|
|
_orderObject = orderObject;
|
|
|
|
|
|
|
|
|
|
this.superTabControl1.SelectedTabIndex = 0;
|
|
|
|
|
this.ActiveControl = this.txtDeskNo;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnLoad(EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.OnLoad(e);
|
|
|
|
|
|
|
|
|
|
if (DesignMode) return;
|
|
|
|
|
|
|
|
|
|
Task.Factory.StartNew(() =>
|
|
|
|
|
{
|
|
|
|
|
this.Invoke(new Action(() =>
|
|
|
|
|
{
|
|
|
|
|
InstallDeskTypeAndNo();
|
|
|
|
|
}));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载当前门店后台设置的餐桌
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void InstallDeskTypeAndNo()
|
|
|
|
|
{
|
|
|
|
|
///按餐桌区域选择
|
|
|
|
|
var autoDeskArea = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_CHECKAUTOOPENDESKAREA, false);
|
|
|
|
|
|
|
|
|
|
if (autoDeskArea)
|
|
|
|
|
{
|
|
|
|
|
this.textMobile.Text = this._orderObject.Ext1;
|
|
|
|
|
|
|
|
|
|
this.superTabItem1.Visible = false;
|
|
|
|
|
if (this._orderObject.OrderType == OrderType.外带) {
|
|
|
|
|
this.superTabItem2.Visible = false;
|
|
|
|
|
}
|
|
|
|
|
this.textMobile.Visible = true;
|
|
|
|
|
this._tableAreaList = new List<TableArea>();
|
|
|
|
|
TableArea tableArea = new TableArea();
|
|
|
|
|
tableArea.Id = "";
|
|
|
|
|
tableArea.Name = LangProxy.ToLang("全部");
|
|
|
|
|
this._tableAreaList.Add(tableArea);
|
|
|
|
|
//做法分类数据源
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
List<TableArea> tableAreaListTemp = db.Query<TableArea>().OrderBy(x => x.No).ToList();
|
|
|
|
|
if (tableAreaListTemp != null)
|
|
|
|
|
{
|
|
|
|
|
this._tableAreaList.AddRange(tableAreaListTemp);
|
|
|
|
|
}
|
|
|
|
|
foreach (TableArea area in tableAreaListTemp) {
|
|
|
|
|
AreaMap.Add(area.Id, area.Name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//做法分类
|
|
|
|
|
this.mainCategoryPage.OnPageChange += OnMainCategoryPageChange;
|
|
|
|
|
DefaultMainMenuSize = new Size(DefaultCategoryItemWidth, this.mainCategoryPage.Height);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
this._tableTypeList = new List<TableType>();
|
|
|
|
|
TableType tableArea = new TableType();
|
|
|
|
|
this.superTabItem3.Visible = false;
|
|
|
|
|
tableArea.Id = "";
|
|
|
|
|
tableArea.Name = LangProxy.ToLang("全部");
|
|
|
|
|
this._tableTypeList.Add(tableArea);
|
|
|
|
|
//做法分类数据源
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
List<TableType> tableAreaListTemp = db.Query<TableType>().OrderBy(x => x.No).ToList();
|
|
|
|
|
if (tableAreaListTemp != null)
|
|
|
|
|
{
|
|
|
|
|
this._tableTypeList.AddRange(tableAreaListTemp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//做法分类
|
|
|
|
|
this.mainCategoryPage.OnPageChange += OnMainCategoryPageChange;
|
|
|
|
|
DefaultMainMenuSize = new Size(DefaultCategoryItemWidth, this.mainCategoryPage.Height);
|
|
|
|
|
}
|
|
|
|
|
//加载全部做法
|
|
|
|
|
this.RefreshMain();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnMainCategoryPageChange(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
PageNumber = 1;
|
|
|
|
|
RefreshMain();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void RefreshMain()
|
|
|
|
|
{
|
|
|
|
|
ItemContainer ic = new ItemContainer();
|
|
|
|
|
|
|
|
|
|
MetroTileItem firstItem = null;
|
|
|
|
|
|
|
|
|
|
///按餐桌区域选择
|
|
|
|
|
var autoDeskArea = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_CHECKAUTOOPENDESKAREA, false);
|
|
|
|
|
|
|
|
|
|
if (autoDeskArea) {
|
|
|
|
|
if (this._tableAreaList != null && this._tableAreaList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
this.mainCategoryPage.TotalCount = this._tableAreaList.Count;
|
|
|
|
|
this.mainCategoryPage.itemWidth = DefaultCategoryItemWidth;
|
|
|
|
|
//分页
|
|
|
|
|
var pageTypeList = this.mainCategoryPage.ListPager<TableArea>(this._tableAreaList);
|
|
|
|
|
|
|
|
|
|
ic.MultiLine = false;
|
|
|
|
|
ic.ItemSpacing = 1;
|
|
|
|
|
ic.ResizeItemsToFit = false; //很关键
|
|
|
|
|
|
|
|
|
|
foreach (var type in pageTypeList)
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem item = new MetroTileItem();
|
|
|
|
|
|
|
|
|
|
item.CheckBehavior = eMetroTileCheckBehavior.None;
|
|
|
|
|
item.Checked = false;
|
|
|
|
|
|
|
|
|
|
item.OptionGroup = "tableType";
|
|
|
|
|
|
|
|
|
|
item.TileStyle.TextAlignment = eStyleTextAlignment.Center;
|
|
|
|
|
item.Text = type.Name;
|
|
|
|
|
item.TileSize = DefaultMainMenuSize;
|
|
|
|
|
|
|
|
|
|
item.TileStyle.TextColor = Color.White;
|
|
|
|
|
item.TileStyle.BackColor = ColorTranslator.FromHtml("#333333");
|
|
|
|
|
item.TileStyle.BackColor2 = ColorTranslator.FromHtml("#333333");
|
|
|
|
|
item.TileStyle.BorderColor = Color.Transparent;
|
|
|
|
|
item.TileStyle.BorderColor2 = Color.Transparent;
|
|
|
|
|
|
|
|
|
|
item.TileStyle.PaddingLeft = DefaultPaddingLeftRight;
|
|
|
|
|
item.TileStyle.PaddingRight = DefaultPaddingLeftRight;
|
|
|
|
|
|
|
|
|
|
item.Tag = type;
|
|
|
|
|
|
|
|
|
|
if (firstItem == null)
|
|
|
|
|
{
|
|
|
|
|
firstItem = item;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
item.MouseDown += OnMainMenuMouseDown;
|
|
|
|
|
item.CheckedChanged += OnMainItemCheckedChange;
|
|
|
|
|
ic.SubItems.Add(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
this.mainCategoryPage.RefreshUI(ic);
|
|
|
|
|
|
|
|
|
|
if (firstItem != null)
|
|
|
|
|
{
|
|
|
|
|
firstItem.Checked = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (this._tableTypeList != null && this._tableTypeList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
this.mainCategoryPage.TotalCount = this._tableTypeList.Count;
|
|
|
|
|
this.mainCategoryPage.itemWidth = DefaultCategoryItemWidth;
|
|
|
|
|
//分页
|
|
|
|
|
var pageTypeList = this.mainCategoryPage.ListPager<TableType>(this._tableTypeList);
|
|
|
|
|
|
|
|
|
|
ic.MultiLine = false;
|
|
|
|
|
ic.ItemSpacing = 1;
|
|
|
|
|
ic.ResizeItemsToFit = false; //很关键
|
|
|
|
|
|
|
|
|
|
foreach (var type in pageTypeList)
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem item = new MetroTileItem();
|
|
|
|
|
|
|
|
|
|
item.CheckBehavior = eMetroTileCheckBehavior.None;
|
|
|
|
|
item.Checked = false;
|
|
|
|
|
|
|
|
|
|
item.OptionGroup = "tableType";
|
|
|
|
|
|
|
|
|
|
item.TileStyle.TextAlignment = eStyleTextAlignment.Center;
|
|
|
|
|
item.Text = type.Name;
|
|
|
|
|
item.TileSize = DefaultMainMenuSize;
|
|
|
|
|
|
|
|
|
|
item.TileStyle.TextColor = Color.White;
|
|
|
|
|
item.TileStyle.BackColor = ColorTranslator.FromHtml("#333333");
|
|
|
|
|
item.TileStyle.BackColor2 = ColorTranslator.FromHtml("#333333");
|
|
|
|
|
item.TileStyle.BorderColor = Color.Transparent;
|
|
|
|
|
item.TileStyle.BorderColor2 = Color.Transparent;
|
|
|
|
|
|
|
|
|
|
item.TileStyle.PaddingLeft = DefaultPaddingLeftRight;
|
|
|
|
|
item.TileStyle.PaddingRight = DefaultPaddingLeftRight;
|
|
|
|
|
|
|
|
|
|
item.Tag = type;
|
|
|
|
|
|
|
|
|
|
if (firstItem == null)
|
|
|
|
|
{
|
|
|
|
|
firstItem = item;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
item.MouseDown += OnMainMenuMouseDown;
|
|
|
|
|
item.CheckedChanged += OnMainItemCheckedChange;
|
|
|
|
|
ic.SubItems.Add(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
this.mainCategoryPage.RefreshUI(ic);
|
|
|
|
|
|
|
|
|
|
if (firstItem != null)
|
|
|
|
|
{
|
|
|
|
|
firstItem.Checked = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载子菜单
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
private void OnMainMenuMouseDown(object sender, MouseEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem obj = sender as MetroTileItem;
|
|
|
|
|
obj.Checked = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnMainItemCheckedChange(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem obj = sender as MetroTileItem;
|
|
|
|
|
if (obj.Checked)
|
|
|
|
|
{
|
|
|
|
|
obj.TileStyle.BackColor = ColorTranslator.FromHtml("#993366");
|
|
|
|
|
obj.TileStyle.BackColor2 = ColorTranslator.FromHtml("#993366");
|
|
|
|
|
|
|
|
|
|
///按餐桌区域选择
|
|
|
|
|
var autoDeskArea = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_CHECKAUTOOPENDESKAREA, false);
|
|
|
|
|
if (autoDeskArea) {
|
|
|
|
|
//加载子类
|
|
|
|
|
var type = obj.Tag as TableArea;
|
|
|
|
|
//加载大类下商品
|
|
|
|
|
LoadTableDetail(type.Id);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
//加载子类
|
|
|
|
|
var type = obj.Tag as TableType;
|
|
|
|
|
//加载大类下商品
|
|
|
|
|
LoadTableDetail(type.Id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
obj.TileStyle.BackColor = ColorTranslator.FromHtml("#333333");
|
|
|
|
|
obj.TileStyle.BackColor2 = ColorTranslator.FromHtml("#333333");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnCloseTouchClick(object sender, TouchEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void OnKeyBoardTouchAfter(object sender, KeyboardEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.txtDeskNo.Focus();
|
|
|
|
|
this.ActiveControl = this.txtDeskNo;
|
|
|
|
|
switch (e.KeyCode)
|
|
|
|
|
{
|
|
|
|
|
case "clear":
|
|
|
|
|
//如果当前焦点控件是输入框
|
|
|
|
|
if (this.ActiveControl is TextBoxX)
|
|
|
|
|
{
|
|
|
|
|
var activeControl = this.ActiveControl as TextBoxX;
|
|
|
|
|
activeControl.Text = string.Empty;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "accept":
|
|
|
|
|
//验证通过
|
|
|
|
|
{
|
|
|
|
|
//ValidatePollCode();
|
|
|
|
|
var deskNo = this.txtDeskNo.Text.Trim();
|
|
|
|
|
|
|
|
|
|
this.OnAcceptButtonClick(new TransparentEventArgs(TransparentAction.Accept, "deskNo", new Tuple<string, string,string>(deskNo, deskNo,"")));
|
|
|
|
|
|
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
|
OnCloseTouchClick(this, null);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
InputSimulatorUtils.SendKey(KeyCodes.Map[e.KeyCode]);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnKeyBoardTouchAfterMobile(object sender, KeyboardEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.textMobile.Focus();
|
|
|
|
|
this.ActiveControl = this.textMobile;
|
|
|
|
|
switch (e.KeyCode)
|
|
|
|
|
{
|
|
|
|
|
case "clear":
|
|
|
|
|
//如果当前焦点控件是输入框
|
|
|
|
|
if (this.ActiveControl is TextBoxX)
|
|
|
|
|
{
|
|
|
|
|
var activeControl = this.ActiveControl as TextBoxX;
|
|
|
|
|
activeControl.Text = string.Empty;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "accept":
|
|
|
|
|
//验证通过
|
|
|
|
|
{
|
|
|
|
|
if (this._orderObject.OrderType == OrderType.堂食)
|
|
|
|
|
{
|
|
|
|
|
//ValidatePollCode();
|
|
|
|
|
var Mobile = this.textMobile.Text.Trim();
|
|
|
|
|
if (selectTable == null)
|
|
|
|
|
{
|
|
|
|
|
this.labelX3.Text = LangProxy.ToLang("请选择餐桌");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.OnAcceptButtonClick(new TransparentEventArgs(TransparentAction.Accept, "deskNo", new Tuple<string, string, string>(selectTable.No, string.Format("{0}#{1}", AreaMap[selectTable.AreaId], selectTable.Name), Mobile)));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
var Mobile = this.textMobile.Text.Trim();
|
|
|
|
|
|
|
|
|
|
this.OnAcceptButtonClick(new TransparentEventArgs(TransparentAction.Accept, "deskNo", new Tuple<string, string, string>(null, null, Mobile)));
|
|
|
|
|
}
|
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
|
OnCloseTouchClick(this, null);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
InputSimulatorUtils.SendKey(KeyCodes.Map[e.KeyCode]);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 类型切换
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
private void LoadTableDetail(string typeId)
|
|
|
|
|
{
|
|
|
|
|
PageNumber = 1;
|
|
|
|
|
List<Table> tableList = null;
|
|
|
|
|
if("".Equals(typeId))
|
|
|
|
|
{
|
|
|
|
|
//加载所有餐桌
|
|
|
|
|
using(var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
tableList = db.Query<Table>("order by no").ToList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
///按餐桌区域选择
|
|
|
|
|
var autoDeskArea = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_CHECKAUTOOPENDESKAREA, false);
|
|
|
|
|
if (autoDeskArea) {
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
tableList = db.Query<Table>("where areaId = @0 order by no", typeId).ToList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
tableList = db.Query<Table>("where typeId = @0 order by no", typeId).ToList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//取消如果有桌子就选中桌子,这样不利于牌号等餐
|
|
|
|
|
//if(tableList.Count > 0)
|
|
|
|
|
//{
|
|
|
|
|
// this.superTabControl1.SelectedTabIndex = 1;
|
|
|
|
|
//}
|
|
|
|
|
BindDataSource(tableList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MetroTileItem GetTableItemTemplate()
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem template = new MetroTileItem();
|
|
|
|
|
|
|
|
|
|
template.TileStyle.PaddingLeft = template.TileStyle.PaddingRight = -2;
|
|
|
|
|
|
|
|
|
|
template.EnableMarkup = true;
|
|
|
|
|
template.OptionGroup = "table";
|
|
|
|
|
|
|
|
|
|
template.TileStyle.Font = this.deskNoPanel.Font;
|
|
|
|
|
|
|
|
|
|
//this.itemPanel1.ResizeItemsToFit = false;
|
|
|
|
|
this.deskNoPanel.BackgroundStyle.Class = "MetroTileGroupTitle";//很关键
|
|
|
|
|
|
|
|
|
|
template.TileStyle.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
|
|
|
|
|
template.TileStyle.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
|
|
|
|
|
|
|
|
|
|
template.TitleTextAlignment = ContentAlignment.BottomCenter;
|
|
|
|
|
template.TitleTextFont = new Font("宋体", 12f);
|
|
|
|
|
template.TileStyle.TextColor = Color.White;
|
|
|
|
|
template.TitleTextColor = Color.White;
|
|
|
|
|
|
|
|
|
|
template.TileStyle.BackColor = Color.DarkGreen;
|
|
|
|
|
template.TileStyle.BackColor2 = Color.DarkGreen;
|
|
|
|
|
template.TileStyle.BorderWidth = 1;
|
|
|
|
|
template.TileStyle.BorderColor = Color.DarkGreen;
|
|
|
|
|
template.TileStyle.BorderColor2 = Color.DarkGreen;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//显示大小
|
|
|
|
|
template.TileSize = new Size(this.deskNoPanel.Width / _DEFAULTCOLUMNS, _DEFAULTITEMHIGHT);
|
|
|
|
|
|
|
|
|
|
//圆角
|
|
|
|
|
template.TileStyle.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
|
|
|
|
|
|
|
|
|
|
template.MouseDown += OnItemMouseDown;
|
|
|
|
|
|
|
|
|
|
return template;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void BindDataSource(List<Table> dataSource, KeyboardAction action = KeyboardAction.None)
|
|
|
|
|
{
|
|
|
|
|
this._dataSource = dataSource;
|
|
|
|
|
|
|
|
|
|
if (this._dataSource == null)
|
|
|
|
|
{
|
|
|
|
|
this._dataSource = new List<Table>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//总数量
|
|
|
|
|
this.TotalCount = dataSource.Count;
|
|
|
|
|
|
|
|
|
|
//每页的显示数量
|
|
|
|
|
this.PageSize = this.Rows * this.Columns;
|
|
|
|
|
|
|
|
|
|
//清空历史数据
|
|
|
|
|
this.deskNoPanel.Items.Clear();
|
|
|
|
|
|
|
|
|
|
//复制新的数据源,进行分页运算
|
|
|
|
|
var merge = TableMerge.Merge(this.Rows, this.Columns, dataSource, false);
|
|
|
|
|
|
|
|
|
|
var pager = ListPager(merge);
|
|
|
|
|
|
|
|
|
|
ItemContainer ic = new ItemContainer();
|
|
|
|
|
|
|
|
|
|
ic.MultiLine = true;
|
|
|
|
|
ic.ItemSpacing = 0;
|
|
|
|
|
ic.LayoutOrientation = eOrientation.Horizontal;
|
|
|
|
|
|
|
|
|
|
foreach (Table entity in pager)
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem item = this.GetTableItemTemplate();
|
|
|
|
|
|
|
|
|
|
item.Name = entity.Id;
|
|
|
|
|
|
|
|
|
|
item.Tag = entity;
|
|
|
|
|
|
|
|
|
|
item.Checked = false;
|
|
|
|
|
|
|
|
|
|
switch (entity.Name)
|
|
|
|
|
{
|
|
|
|
|
case Constant.PREV_PAGER:
|
|
|
|
|
{
|
|
|
|
|
item.Image = POSV.Properties.Resources.left;
|
|
|
|
|
item.ImageTextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
|
|
|
|
|
|
|
|
|
|
item.TileStyle.BackColor = Color.DimGray;
|
|
|
|
|
item.TileStyle.BackColor2 = Color.DimGray;
|
|
|
|
|
item.TileStyle.BorderColor = Color.DimGray;
|
|
|
|
|
item.TileStyle.BorderColor2 = Color.DimGray;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case Constant.NEXT_PAGER:
|
|
|
|
|
{
|
|
|
|
|
item.Image = POSV.Properties.Resources.right;
|
|
|
|
|
item.ImageTextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
|
|
|
|
|
|
|
|
|
|
item.TileStyle.BackColor = Color.DimGray;
|
|
|
|
|
item.TileStyle.BackColor2 = Color.DimGray;
|
|
|
|
|
item.TileStyle.BorderColor = Color.DimGray;
|
|
|
|
|
item.TileStyle.BorderColor2 = Color.DimGray;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
item.Text = entity.Name;
|
|
|
|
|
item.TitleText = entity.Number + "人";
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ic.SubItems.Add(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.deskNoPanel.Items.Add(ic);
|
|
|
|
|
this.deskNoPanel.Invalidate();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 分页List数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public List<Table> ListPager(List<Table> data)
|
|
|
|
|
{
|
|
|
|
|
var result = new List<Table>();
|
|
|
|
|
|
|
|
|
|
result.AddRange(data.Skip((this.PageNumber - 1) * this.PageSize).Take(this.PageSize));
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnItemMouseDown(object sender, MouseEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
|
{
|
|
|
|
|
MetroTileItem item = (MetroTileItem)sender;
|
|
|
|
|
|
|
|
|
|
var table = item.Tag as Table;
|
|
|
|
|
|
|
|
|
|
switch (table.Name)
|
|
|
|
|
{
|
|
|
|
|
case Constant.PREV_PAGER:
|
|
|
|
|
{
|
|
|
|
|
this.PageNumber = table.Pager;
|
|
|
|
|
|
|
|
|
|
this.BindDataSource(this._dataSource);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case Constant.NEXT_PAGER:
|
|
|
|
|
{
|
|
|
|
|
this.PageNumber = table.Pager;
|
|
|
|
|
|
|
|
|
|
this.BindDataSource(this._dataSource);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
var autoDeskArea = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CASHIER_CHECKAUTOOPENDESKAREA, false);
|
|
|
|
|
if (autoDeskArea) {
|
|
|
|
|
selectTable = table;
|
|
|
|
|
|
|
|
|
|
this.superTabControl1.SelectedTab = this.superTabItem3;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
this.OnAcceptButtonClick(new TransparentEventArgs(TransparentAction.Accept, "deskNo", new Tuple<string, string,string>(table.No, table.Name,"")));
|
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
|
|
|
OnCloseTouchClick(this, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int _columns = _DEFAULTCOLUMNS;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 每一行显示的数量
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int Columns
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _columns;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
_columns = (value <= 0 ? 1 : value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///品类默认行数
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int Rows => this.deskNoPanel.Height / _DEFAULTITEMHIGHT;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 每页的大小
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int PageSize { get; private set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 总页数
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int PageCount => this.PageSize <= 0 ? 0 : ((this.TotalCount + this.PageSize - 1) / this.PageSize);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当前页码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int PageNumber { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 总数量
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int TotalCount { get; private set; }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|