public ActionResult Reorganize() { var SpaceID = GetQueryString("SpaceID"); //baseEntities.Set<S_UI_Form>() var space = DocConfigHelper.CreateConfigSpaceByID(SpaceID); if (space == null) { throw new BusinessException("未指定档案实体空间,无法获取数据访问对象"); } //var config = space.S_DOC_ReorganizeConfig.FirstOrDefault(); //if (config == null || string.IsNullOrEmpty(config.Items)) // throw new BusinessException("请先配置档案整编区定义"); var sbField = new System.Text.StringBuilder(); var sbScript = new System.Text.StringBuilder(); var sbSelector = new System.Text.StringBuilder(); //var fields = JsonHelper.ToList(config.Items); var baseEntities = FormulaHelper.GetEntities <BaseEntities>(); var formDef = baseEntities.Set <S_UI_Form>().FirstOrDefault(a => a.Code == "Reorganize"); if (formDef == null || string.IsNullOrEmpty(formDef.Items)) { throw new BusinessException("请先配置表单"); } var field = JsonHelper.ToList(formDef.Items).FirstOrDefault(a => a.GetValue("Code").ToString() == "DocumentList"); var fo = new UIFO(); //foreach (var field in fields) //{ //var settingStr = field.GetValue("Settings"); if (field == null || string.IsNullOrEmpty(field.GetValue("Code").ToString())) { throw new BusinessException("请先配置表单子表"); } var settings = JsonHelper.ToObject(field.GetValue("Settings")); var documentLists = JsonHelper.ToList(settings.GetValue("listData"));//拿到子表字段 foreach (var docList in documentLists) { string header = docList.GetValue("Name"); var settingStrDocList = docList.GetValue("Settings"); var settingsDocList = JsonHelper.ToObject(settingStrDocList); if (docList.GetValue("Code").ToString().Equals("ReorganizePath") && !Convert.ToBoolean(docList.GetValue("Visible")))//当整编目录在子表中时隐藏的,改为显示, { docList.SetValue("Visible", "true"); } if (Convert.ToBoolean(docList.GetValue("Visible"))) //该字段是否可见 { string selector = settingsDocList.GetValue("SelectorKey"); if (!string.IsNullOrEmpty(selector))//弹出选择 { sbField.AppendFormat("<div name='{3}' field='{3}' {0} {1} header='{2}' allowdrag='true' headeralign='center'></div>", fo.GetMiniuiSettings(docList) , fo.GetMiniuiSettings(docList.GetValue("Settings")) , header, docList.GetValue("Code") + "Name"); } else { sbField.AppendFormat("<div name='{3}' field='{3}' {0} {1} header='{2}' allowdrag='true' headeralign='center'></div>", fo.GetMiniuiSettings(docList) , fo.GetMiniuiSettings(docList.GetValue("Settings")) , header, docList.GetValue("Code")); } } if (string.IsNullOrEmpty(settingStrDocList)) { continue; } //子表枚举 string enumKey = settingsDocList.GetValue("data"); if (!string.IsNullOrEmpty(enumKey)) { string tableName = formDef.TableName.Split(',')[0]; var key = GetEnumKey(formDef.ConnName, tableName, docList.GetValue("Code"), enumKey); string enumStr = GetEnumString(formDef.ConnName, tableName, docList.GetValue("Code"), enumKey); if (string.IsNullOrEmpty(enumStr)) { enumStr = "[]"; } sbScript.AppendFormat("\n var {0} = {1}", key, enumStr); sbScript.AppendFormat("\n addGridEnum('fileTreeGrid', '{0}', '{1}');", field.GetValue("Code"), key); } //} } ViewBag.FileTreeFieldsHtml = sbField.ToString(); ViewBag.FileTreeFieldsScript = sbScript.ToString(); return(View()); }