コード例 #1
0
        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());
        }