using DevComponents.DotNetBar; using DevComponents.DotNetBar.Metro; using POSV.Card; using POSV.Component; using POSV.Entity.WeiXinDc; 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.Windows.Forms; namespace POSV.WeiXin { public partial class WeiXinProductForm : BusinessForm { private int DefaultCategoryItemWidth = 100; private Size DefaultMainMenuSize = Size.Empty; private int DefaultPaddingLeftRight = -2; private List seriesList = new List(); private List selectGoodsIdList = new List(); private string _categoryId; WeiXinShopInfoResponse poiInfo = null; public WeiXinProductForm() { InitializeComponent(); this.controlBox1.Text = "选择商品"; this.controlBox1.ShowApplicationVersion = false; this.mainCategoryPage.OnPageChange += OnMainCategoryPageChange; this.weiXinProductSelectControl1.WxdcCheckedChanged += WeiXinProductSelectControl1_ProductCheckedChanged; } private void WeiXinProductSelectControl1_ProductCheckedChanged(object sender, WxdcEventArgs e) { var product = e.Entity; if (!selectGoodsIdList.Contains(product.ProductId)) { selectGoodsIdList.Add(product.ProductId); } } private void OnMainCategoryPageChange(object sender, EventArgs e) { RefreshMain(); } private void RefreshMain() { ItemContainer ic = new ItemContainer(); MetroTileItem firstItem = null; if (seriesList != null && seriesList.Count > 0) { this.mainCategoryPage.TotalCount = seriesList.Count; this.mainCategoryPage.itemWidth = DefaultCategoryItemWidth; //分页 var pageSeriesList = this.mainCategoryPage.ListPager(seriesList); ic.MultiLine = false; ic.ItemSpacing = 1; ic.ResizeItemsToFit = false; //很关键 foreach (var series in pageSeriesList) { MetroTileItem item = new MetroTileItem(); item.CheckBehavior = eMetroTileCheckBehavior.None; item.Checked = false; item.OptionGroup = "MainMenu"; item.TileStyle.TextAlignment = eStyleTextAlignment.Center; item.Text = series.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 = series; if (firstItem == null) { firstItem = item; } item.MouseDown += OnMainMenuMouseDown; item.CheckedChanged += OnSubMenuCheckedChanged; ic.SubItems.Add(item); } } this.mainCategoryPage.RefreshUI(ic); if (firstItem != null) { firstItem.Checked = true; } } /// /// 加载子菜单 /// /// /// private void OnMainMenuMouseDown(object sender, MouseEventArgs e) { MetroTileItem obj = sender as MetroTileItem; obj.Checked = true; } private void OnSubMenuCheckedChanged(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 type = obj.Tag as WxdcGoodsCategoryEntity; LoadMaterialDetail(type.Id); } else { obj.TileStyle.BackColor = Color.Teal; obj.TileStyle.BackColor2 = Color.Teal; } } private void LoadMaterialDetail(string categoryId) { this._categoryId = categoryId; WxdcGoodsListRequest request = new WxdcGoodsListRequest(); request.StoreId = poiInfo.Id; request.CategoryId = categoryId; request.PageNumber = 1; request.PageSize = 1500; var response = WeiXinOrderUtils.WxdcGoods(request); if (response != null && response.Item1) { List detailList = new List(); detailList = response.Item3.List; this.weiXinProductSelectControl1.SelectedIds = selectGoodsIdList; this.weiXinProductSelectControl1.PageNumber = 1; this.weiXinProductSelectControl1.BindDataSource(detailList); } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); DefaultMainMenuSize = new Size(DefaultCategoryItemWidth, this.mainCategoryPage.Height); //第一步加载门店信息 QueryWeixinPoiInfo(); } private void QueryWeixinPoiInfo() { WeiXinShopInfoRequest request = new WeiXinShopInfoRequest(); request.StoreId = Global.Instance.BusinessPlanLog.StoreId; var response = WeiXinOrderUtils.WeiXinShopInfo(request); if (response != null && response.Item1) { var responseMessage = response.Item3; if (responseMessage != null && responseMessage.Data != null) { poiInfo = responseMessage.Data; this.StoreNameLabelX.Text = poiInfo.Name;//门店名称 switch (poiInfo.IsOpen) { case 0: this.isOpenLabelX.Text = "门店歇业"; break; case 1: this.isOpenLabelX.Text = "正在营业"; break; default: this.isOpenLabelX.Text = "门店歇业"; break; } this.openTimeLabelX.Text = StringUtils.GetString(poiInfo.OpenTime); WxdcGoodsCategoryListRequest request1 = new WxdcGoodsCategoryListRequest(); request1.StoreId = poiInfo.Id; var response1 = WeiXinOrderUtils.WxdcGoodsCategory(request1); if (response1 != null && response.Item1) { seriesList = response1.Item3.List; RefreshMain(); } } } } private void OnControlBoxCloseClick(object sender, EventArgs e) { OnCloseTouchClick(sender, e); } private void OnControlBoxMinClick(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void OnCloseTouchClick(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void BtnClose(object sender, EventArgs e) { OnCloseTouchClick(sender, e); } //开卖 private void BtnSellIn(object sender, EventArgs e) { if (selectGoodsIdList==null || selectGoodsIdList.Count<=0) { this.ShowToastNotify(this, "请选择要开卖的单品"); return; } WxdcGoodsSellinRequest request = new WxdcGoodsSellinRequest(); request.StoreId = poiInfo.Id; string productIds = ""; foreach (string id in selectGoodsIdList) { productIds= productIds+id +","; } if (!"".Equals(productIds)) { request.ProductIds = productIds.Substring(0, productIds.Length-1); } var response = WeiXinOrderUtils.WxdcGoodsSellin(request); if (response != null && response.Item1) { this.ShowToastNotify(this, "操作成功"); selectGoodsIdList = new List(); LoadMaterialDetail(this._categoryId); } else { this.ShowToastNotify(this, response.Item2); } } //全部开卖 private void BtnSellAll(object sender, EventArgs e) { var dialog = new DialogForm("微信商品提醒", "是否全部开卖?", MessageBoxIcon.Question, MessageBoxButtons.OKCancel); if (dialog.ShowDialog(this) == DialogResult.OK) { WxdcGoodsSellinRequest request = new WxdcGoodsSellinRequest(); request.StoreId = poiInfo.Id; var response = WeiXinOrderUtils.WxdcGoodsSellin(request); if (response != null && response.Item1) { this.ShowToastNotify(this, "操作成功"); selectGoodsIdList = new List(); LoadMaterialDetail(this._categoryId); } else { this.ShowToastNotify(this, response.Item2); } } } //售罄 private void BtnSellOut(object sender, EventArgs e) { if (selectGoodsIdList == null || selectGoodsIdList.Count <= 0) { this.ShowToastNotify(this, "请选择要停售的单品"); return; } WxdcGoodsSellOutRequest request = new WxdcGoodsSellOutRequest(); request.StoreId = poiInfo.Id; string productIds = ""; foreach (string id in selectGoodsIdList) { productIds = productIds + id + ","; } if (!"".Equals(productIds)) { request.ProductIds = productIds.Substring(0, productIds.Length - 1); } var response = WeiXinOrderUtils.WxdcGoodsSellOut(request); if (response != null && response.Item1) { this.ShowToastNotify(this, "操作成功"); selectGoodsIdList = new List(); LoadMaterialDetail(this._categoryId); } else { this.ShowToastNotify(this, response.Item2); } } //全部售罄 private void BtnSellOutAll(object sender, EventArgs e) { var dialog = new DialogForm("微信商品提醒", "是否全部售罄?", MessageBoxIcon.Question, MessageBoxButtons.OKCancel); if (dialog.ShowDialog(this) == DialogResult.OK) { WxdcGoodsSellOutRequest request = new WxdcGoodsSellOutRequest(); request.StoreId = poiInfo.Id; var response = WeiXinOrderUtils.WxdcGoodsSellOut(request); if (response != null && response.Item1) { this.ShowToastNotify(this, "操作成功"); selectGoodsIdList = new List(); LoadMaterialDetail(this._categoryId); } else { this.ShowToastNotify(this, response.Item2); } } } } }