Esempio n. 1
0
        public virtual ActionResult PageView(string tmplCode)
        {
            var  listDef = entities.Set <S_UI_List>().SingleOrDefault(c => c.Code == tmplCode);
            UIFO uiFO    = FormulaHelper.CreateFO <UIFO>();

            ViewBag.ListHtml      = uiFO.CreateListHtml(tmplCode);
            ViewBag.Script        = uiFO.CreateListScript(tmplCode);
            ViewBag.RightKeyHtml  = uiFO.GetGridRightKeyHtml(tmplCode);
            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;
                    }


                    Category 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;
                    }
                    if (enumKey.StartsWith("["))
                    {
                        category = CategoryFactory.GetCategoryByString(enumKey, settings["TabSearchName"].ToString(), field["field"].ToString(), hasAllAttr);
                    }
                    else
                    {
                        category = CategoryFactory.GetCategory(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());
        }