Ejemplo n.º 1
0
 public ActionResult AllOperate(string opstr, int?AdvertiseID, int?Cate)
 {
     try
     {
         if (string.IsNullOrEmpty(opstr) || !AdvertiseID.HasValue || !Cate.HasValue)
         {
             return(Json(new { IsSuccess = false, ReturnStr = "输入的参数不能为空" }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             string[] _Oparr = opstr.Split('*');
             foreach (string Paras in _Oparr)
             {
                 try
                 {
                     if (!string.IsNullOrEmpty(Paras))
                     {
                         string[] _Para = Paras.Split(',');
                         if (_Para.Length == 5)
                         {
                             string  _PID            = _Para[0];
                             string  _NewPID         = _Para[1];
                             byte    _Position       = byte.Parse(_Para[2]);
                             decimal _PromotionPrice = decimal.Parse(_Para[3]);
                             int     _PromotionNum   = int.Parse(_Para[4]);
                             if (!string.IsNullOrEmpty(_PID) && !string.IsNullOrEmpty(_NewPID))
                             {
                                 //删除
                                 if (Cate == 1)
                                 {
                                     manager.DeleteAdProduct(AdvertiseID.Value, _PID);
                                 }
                                 //保存
                                 else if (Cate == 2)
                                 {
                                     manager.UpdateAdProduct(AdvertiseID.Value, _PID, _NewPID, _Position, _PromotionPrice, _PromotionNum);
                                 }
                             }
                         }
                     }
                 }
                 catch { }
             }
         }
         return(Json(new { IsSuccess = true, ReturnStr = Cate.Value == 1 ? "批量删除成功" : "批量保存成功" }, JsonRequestBehavior.AllowGet));
     }
     catch
     {
         return(Json(new { IsSuccess = false, ReturnStr = "保存失败" }, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 2
0
 public JsonResult SavePercentage(string opstr)
 {
     try
     {
         if (string.IsNullOrEmpty(opstr))
         {
             return(Json(new { IsSuccess = false, ReturnStr = "输入的参数不能为空" }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             string[] _Oparr = opstr.Split('*');
             foreach (string Paras in _Oparr)
             {
                 try
                 {
                     if (!string.IsNullOrEmpty(Paras))
                     {
                         string[] _Para = Paras.Split(',');
                         if (_Para.Length == 2)
                         {
                             string _PKID = _Para[0];
                             string _PERC = _Para[1];
                             if (!string.IsNullOrEmpty(_PKID) && !string.IsNullOrEmpty(_PERC))
                             {
                                 manager.UpdateCouponCategoryPercentage(int.Parse(_PKID), int.Parse(_PERC));
                             }
                         }
                     }
                 }
                 catch { }
             }
         }
         return(Json(new { IsSuccess = true, ReturnStr = "批量保存成功" }, JsonRequestBehavior.AllowGet));
     }
     catch
     {
         return(Json(new { IsSuccess = false, ReturnStr = "保存失败" }, JsonRequestBehavior.AllowGet));
     }
 }
 public ActionResult AllOperate(string opstr, int?Cate)
 {
     try
     {
         if (string.IsNullOrEmpty(opstr) || !Cate.HasValue)
         {
             return(Json(new { IsSuccess = false, ReturnStr = "输入的参数不能为空" }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             string[] _Oparr = opstr.Split('*');
             foreach (string Paras in _Oparr)
             {
                 try
                 {
                     if (!string.IsNullOrEmpty(Paras))
                     {
                         string[] _Para = Paras.Split(',');
                         if (_Para.Length == 8)
                         {
                             int     _PKID           = int.Parse(_Para[0]);
                             string  _PID            = _Para[1];
                             byte    _Position       = byte.Parse(_Para[2]);
                             decimal _PromotionPrice = decimal.Parse(_Para[3]);
                             decimal _MarketPrice    = decimal.Parse(_Para[4]);
                             int     _PromotionNum   = int.Parse(_Para[5]);
                             int     _MaxNum         = int.Parse(_Para[6]);
                             int     _NumLeft        = int.Parse(_Para[7]);
                             if (!string.IsNullOrEmpty(_PID))
                             {
                                 //删除
                                 if (Cate == 1)
                                 {
                                     manager.DeleteFlashSalesProduct(_PKID);
                                 }
                                 //保存
                                 else if (Cate == 2)
                                 {
                                     FlashSalesProduct _FlashSalesProduct = new FlashSalesProduct
                                     {
                                         PKID                  = _PKID,
                                         PID                   = _PID,
                                         Position              = _Position,
                                         PromotionPrice        = _PromotionPrice,
                                         MarketPrice           = _MarketPrice,
                                         PromotionNum          = _PromotionNum,
                                         MaxNum                = _MaxNum,
                                         NumLeft               = _NumLeft,
                                         FlashSalesProductPara = _PImanager.GetFlashSalesProductParaByPID(_PID)
                                     };
                                     manager.UpdateFlashSalesProduct(_FlashSalesProduct);
                                 }
                             }
                         }
                     }
                 }
                 catch { }
             }
         }
         return(Json(new { IsSuccess = true, ReturnStr = Cate.Value == 1 ? "批量删除成功" : "批量保存成功" }, JsonRequestBehavior.AllowGet));
     }
     catch
     {
         return(Json(new { IsSuccess = false, ReturnStr = "保存失败" }, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 4
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            #region Display Value

            var modelType = Field.Metadata.ModelType;
            var list      = new List <string>();
            if (Field.Model != null)
            {
                // 数组 or 泛型集合
                if (modelType.IsArray || (modelType.IsGenericType && typeof(List <>).IsAssignableFrom(modelType.GetGenericTypeDefinition())))
                {
                    foreach (var item in Field.Model as dynamic)
                    {
                        list.Add(item.ToString());
                    }
                }
                else
                {
                    list.Add(Field.Model.ToString());
                }
            }
            if (ListVM == null || ListVM.Model == null)
            {
                throw new Exception("The ListVM of the Selector is null");
            }
            var listVM = ListVM.Model as IBasePagedListVM <TopBasePoco, ISearcher>;
            var value  = new List <string>();
            if (context.Items.ContainsKey("model") == true)
            {
                listVM.CopyContext(context.Items["model"] as BaseVM);
            }
            if (list.Count > 0)
            {
                listVM.Ids        = list;
                listVM.NeedPage   = false;
                listVM.IsSearched = false;
                listVM.ClearEntityList();
                listVM.SearcherMode = ListVMSearchModeEnum.Batch;
                if (!string.IsNullOrEmpty(Paras))
                {
                    var   p = Paras.Split(',');
                    Regex r = new Regex("(\\s*)\\S*?=\\S*?(\\s*)");
                    foreach (var item in p)
                    {
                        var s = Regex.Split(item, "=");
                        if (s != null && s.Length == 2)
                        {
                            listVM.SetPropertyValue(s[0], s[1]);
                        }
                    }
                }

                var entityList = listVM.GetEntityList().ToList();
                foreach (var item in entityList)
                {
                    value.Add(item.GetType().GetProperty(TextBind?.Metadata.PropertyName)?.GetValue(item).ToString());
                }
            }

            #endregion

            if (Display)
            {
                output.TagName = "label";
                output.TagMode = TagMode.StartTagAndEndTag;
                output.Attributes.Add("class", "layui-form-label");
                output.Attributes.Add("style", "text-align:left;padding:9px 0;");
                var val = string.Empty;
                if (Field.Model != null)
                {
                    if (Field.Model.GetType().IsEnumOrNullableEnum())
                    {
                        val = PropertyHelper.GetEnumDisplayName(Field.Model.GetType(), Field.Model.ToString());
                    }
                    else
                    {
                        val = Field.Model.ToString();
                    }
                }
                output.Content.AppendHtml(string.Join(",", value));

                base.Process(context, output);
            }
            else
            {
                var windowid = Guid.NewGuid().ToString();
                if (MultiSelect == null)
                {
                    MultiSelect = false;
                    var type = Field.Metadata.ModelType;
                    if (type.IsArray || (type.IsGenericType && typeof(List <>).IsAssignableFrom(type.GetGenericTypeDefinition())))// Array or List
                    {
                        MultiSelect = true;
                    }
                }
                if (WindowWidth == null)
                {
                    WindowWidth = 800;
                }

                output.TagName = "input";
                output.TagMode = TagMode.StartTagOnly;
                output.Attributes.Add("type", "text");
                output.Attributes.Add("id", Id + "_Display");
                output.Attributes.Add("name", Field.Name + "_Display");

                if (listVM.Searcher != null)
                {
                    var searcher = listVM.Searcher;
                    searcher.CopyContext(listVM);
                    searcher.DoInit();
                }
                var content = output.GetChildContentAsync().Result.GetContent().Trim();

                #region 移除因 RowTagHelper 生成的外层 div 即 <div class="layui-col-xs6"></div>

                var regStart = new Regex(@"^<div\s+class=""layui-col-md[0-9]+"">");
                var regEnd   = new Regex("</div>$");
                content = regStart.Replace(content, string.Empty);
                content = regEnd.Replace(content, string.Empty);

                #endregion

                var reg = new Regex("(name=\")([0-9a-zA-z]{0,}[.]?)(Searcher[.]?[0-9a-zA-z]{0,}\")", RegexOptions.Multiline | RegexOptions.IgnoreCase);
                content = reg.Replace(content, "$1$3");
                content = content.Replace("<script>", "$$script$$").Replace("</script>", "$$#script$$");
                var searchPanelTemplate = $@"<script type=""text/template"" id=""Temp{Id}"">{content}</script>";

                output.Attributes.Add("value", string.Join(",", value));
                output.Attributes.Add("placeholder", EmptyText ?? Program._localizer["PleaseSelect"]);
                output.Attributes.Add("class", "layui-input");
                this.Disabled = true;
                var vmQualifiedName = ListVM.Metadata.ModelType.AssemblyQualifiedName;
                vmQualifiedName = vmQualifiedName.Substring(0, vmQualifiedName.LastIndexOf(", Version="));
                var Filter = new Dictionary <string, object>
                {
                    { "_DONOT_USE_VMNAME", vmQualifiedName },
                    { "_DONOT_USE_KFIELD", TextBind?.Metadata.PropertyName },
                    { "_DONOT_USE_VFIELD", ValBind == null ? "ID" : ValBind?.Metadata.PropertyName },
                    { "_DONOT_USE_FIELD", Field.Name },
                    { "_DONOT_USE_MULTI_SEL", MultiSelect },
                    { "_DONOT_USE_SEL_ID", Id },
                    { "Ids", list }
                };
                if (!string.IsNullOrEmpty(SubmitFunc))
                {
                    Filter.Add("_DONOT_USE_SUBMIT", SubmitFunc);
                }
                if (listVM.Searcher != null)
                {
                    var props = listVM.Searcher.GetType().GetProperties();
                    props = props.Where(x => !_excludeTypes.Contains(x.PropertyType)).ToArray();
                    foreach (var prop in props)
                    {
                        if (!_excludeParams.Contains(prop.Name))
                        {
                            Filter.Add($"Searcher.{prop.Name}", prop.GetValue(listVM.Searcher));
                        }
                    }
                }

                if (!string.IsNullOrEmpty(Paras))
                {
                    var   p = Paras.Split(',');
                    Regex r = new Regex("(\\s*)\\S*?=\\S*?(\\s*)");
                    foreach (var item in p)
                    {
                        var s = Regex.Split(item, "=");
                        if (s != null && s.Length == 2)
                        {
                            if (Filter.ContainsKey(s[0]))
                            {
                                Filter[s[0]] = s[1];
                            }
                            else
                            {
                                Filter.Add(s[0], s[1]);
                            }
                        }
                    }
                }
                var hiddenStr = string.Empty;
                var sb        = new StringBuilder();
                foreach (var item in list)
                {
                    sb.Append($"<input type='hidden' name='{Field.Name}' value='{item.ToString()}' />");
                }
                hiddenStr = sb.ToString();
                output.PreElement.AppendHtml($@"<div id=""{Id}_Container"" style=""position:absolute;right:{SelectButtonWidth?.ToString() ?? "50"}px;left:0px;width:auto"">");
                output.PostElement.AppendHtml($@"
{hiddenStr}
</div>
<button class='layui-btn layui-btn-sm layui-btn-warm' type='button' id='{Id}_Select' style='color:white;position:absolute;right:0px'>{SelectButtonText ?? " . . . "}</button>
<hidden id='{Id}' name='{Field.Name}' />
<script>
var {Id}filter = {{}};
$('#{Id}_Select').on('click',function(){{
  {(string.IsNullOrEmpty(BeforeOnpenDialogFunc) == true ? "" : "var data={};" + FormatFuncName(BeforeOnpenDialogFunc) + ";")}
  var filter = {JsonConvert.SerializeObject(Filter)};
  var vals = $('#{Id}_Container input[type=hidden]');