Example #1
0
        public virtual IActionResult CoreView()
        #region
        {
            string           tmplCode = Request.Query["tmplCode"].ToString();
            string           sql      = "SELECT  * FROM S_UI_List";
            List <S_UI_List> uiLists  = sqlHelper.ExecuteList <S_UI_List>(sql).Where(c => c.Code == tmplCode).ToList();
            S_UI_List        listDef  = uiLists.FirstOrDefault();

            UIBuilder uiFO = new UIBuilder();

            ViewBag.ListHtml      = uiFO.CreateListHtml(tmplCode);
            ViewBag.Script        = uiFO.CreateListScript(tmplCode);
            ViewBag.RightKeyHtml  = "";
            ViewBag.FixedFields   = string.Format("var FixedFields={0};", Newtonsoft.Json.JsonConvert.SerializeObject(uiFO.GetFixedWidthFields(tmplCode)));
            ViewBag.Title         = listDef.Name;
            ViewBag.VirtualScroll = "false";
            var isColumnEdit = false;

            if (!string.IsNullOrEmpty(listDef.LayoutGrid))
            {
                var settings = JsonHelper.ToObject(listDef.LayoutGrid);
                if (settings.GetValue("allowCellEdit") == "true")
                {
                    isColumnEdit = true;
                }
                if (!String.IsNullOrEmpty(settings.GetValue("virtualScroll")))
                {
                    ViewBag.VirtualScroll = settings.GetValue("virtualScroll");
                }
            }

            var tab = new Tab();

            if (!isColumnEdit)
            {
                //不可标签式查询
                var fields = JsonHelper.ToList(listDef.LayoutField);
                foreach (var field in fields)
                {
                    if (!field.ContainsKey("Settings"))
                    {
                        continue;
                    }
                    var settings = JsonHelper.ToObject(field["Settings"].ToString());

                    if (!settings.ContainsKey("EnumKey") || settings["EnumKey"].ToString() == "")
                    {
                        continue;
                    }

                    if (!settings.ContainsKey("TabSearchName") || settings["TabSearchName"].ToString() == "")
                    {
                        continue;
                    }


                    UICategory category = null;

                    //根据配置决定是否显示‘全部’选项
                    var    hasAllAttr = true;
                    string enumKey    = settings["EnumKey"].ToString();

                    if (settings.ContainsKey("ShowAll") && settings["ShowAll"].ToString() == "false" &&
                        settings.ContainsKey("TabSearchDefault") && !String.IsNullOrEmpty(settings["TabSearchDefault"].ToString()))
                    {
                        hasAllAttr = false;
                    }
                    category = CategoryFactory.GetCategoryByString(enumKey, settings["TabSearchName"].ToString(), field["field"].ToString(), hasAllAttr);


                    //默认值
                    if (settings.ContainsKey("TabSearchDefault") && settings["TabSearchDefault"].ToString() != "")
                    {
                        category.SetDefaultItem(settings["TabSearchDefault"].ToString());
                    }
                    else
                    {
                        category.SetDefaultItem();
                    }

                    //多选或单选
                    if (settings.ContainsKey("TabSearchMulti") && settings["TabSearchMulti"].ToString() == "false")
                    {
                        category.Multi = false;
                    }
                    else
                    {
                        category.Multi = true;
                    }

                    tab.Categories.Add(category);
                }
            }

            if (tab.Categories.Count > 0)
            {
                tab.IsDisplay  = true;
                ViewBag.Tab    = tab;
                ViewBag.Layout = "~/Views/Shared/_AutoListLayoutTab.cshtml";
            }
            else
            {
                ViewBag.Layout = "~/Views/Shared/_Layout.cshtml";
            }

            return(View());
        }