示例#1
0
        public IEnumerable <TreeDataView> GetModuleTree()
        {
            List <TreeDataView> moList = _platformDomain.ModuleSet.Select(t => new TreeDataView {
                Id = t.Fid.ToString(), Pid = t.Pid, Text = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Module, t.Fid), Icon = (t.Icon.IsMissing() ? "icon-folder green ace-icon fa fa-leaf" : "icon-folder green ace-icon " + t.Icon)
            }).ToList <TreeDataView>();

            List <TreeDataView> tree     = new List <TreeDataView>();
            TreeDataView        treeRoot = new TreeDataView()
            {
                Id    = "0",
                Text  = _multiLangService.GetOrAndMultiLangValue(MultiLanguageOriginEnum.Page, "page_module_rootname", "系统模块"),
                State = new NodeState {
                    Opened = true
                },
                Icon = "icon-folder purple ace-icon fa fa-home bigger-160",
            };

            tree.Add(treeRoot);
            TreeViewHelper.MakeTree(treeRoot.Children, moList, treeRoot.Id);
            return(tree);
        }
示例#2
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine(" <div class=\"profile-info-row\">");
            string require = string.Empty;

            if (CurrFapColumn.NullAble == 0)
            {
                require = "<span class=\"text-danger\">*</span>";
            }
            sb.AppendFormat("		<div class=\"profile-info-name\"> {0} {1}</div>", _multiLang.GetMultiLangValue(MultiLanguageOriginEnum.FapColumn, $"{CurrFapColumn.TableName}_{CurrFapColumn.ColName}"), require).AppendLine();
            sb.AppendLine("		<div class=\"profile-info-value\">");
            if (CurrFapColumn.EditAble == 1)
            {
                if (CurrFapColumn.CtrlType == FapColumn.CTRL_TYPE_MEMO)
                {
                    sb.AppendFormat("		 	<span class=\"editable\" id=\"{0}\">{1}</span>", CurrFapColumn.ColName, FieldValue).AppendLine();
                }
                else
                {
                    sb.AppendFormat("		 	<span class=\"editable\" id=\"{0}\"></span>", CurrFapColumn.ColName).AppendLine();
                }
            }
            else
            {
                if (CurrFapColumn.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
                {
                    string value = EntityData.Get(CurrFapColumn.TableName + "_" + CurrFapColumn.ColName + "MC");
                    if (value != null)
                    {
                        sb.AppendFormat("		 	<span class=\"editable\" >{0}</span>", value).AppendLine();
                    }
                    else
                    {
                        sb.AppendLine("		 	<span class=\"editable\" ></span>");
                    }
                }
                else
                {
                    sb.AppendFormat("		 	<span class=\"editable\" >{0}</span>", FieldValue).AppendLine();
                }
            }
            sb.AppendLine("		</div>");
            sb.AppendLine(" </div>");

            return(sb.ToString());
        }
示例#3
0
        protected string RenderJavascript()
        {
            StringBuilder script = new StringBuilder();

            script.Append(" $(function () {").AppendLine();
            //多语弹出框关闭
            script.AppendLine(" $(\".multilangpopoverclose\").on(ace.click_event, function () {     $(this).closest(\".popover\").css(\"display\",\"none\");  });");
            //参照弹出事件、上传附件、数值控件
            //开启textarea 校验
            bool hasTextArea = false;
            //开启jqueryvalidate校验的条件
            bool needValidate = false;

            foreach (FapField field in formFields)
            {
                FapColumn column = field.CurrentColumn;
                if (column.ColName == "Id" || column.ColName == "Fid" || column.ShowAble == 0)
                {
                    continue;
                }
                if (!hasTextArea && column.CtrlType == FapColumn.CTRL_TYPE_MEMO)
                {
                    hasTextArea = true;
                }
                if (!needValidate && ((column.NullAble == 0 && column.ShowAble == 1) || column.RemoteChkURL.IsPresent()))
                {
                    needValidate = true;
                }
                #region 日期
                if (column.CtrlType == FapColumn.CTRL_TYPE_DATE)
                {
                    string model      = "0";
                    string dateFormat = column.DisplayFormat;
                    string minDate    = "1900-1-1";
                    string maxDate    = "2999-12-12";
                    if (dateFormat.IsMissing())
                    {
                        dateFormat = "yyyy-mm-dd";
                        model      = "0";
                    }
                    else if (dateFormat.Length > 4 && dateFormat.Length < 10)
                    {
                        dateFormat = "yyyy-mm";
                        model      = "1";
                    }
                    else
                    {
                        dateFormat = "yyyy";
                        model      = "2";
                    }
                    if (column.MinValue != 0)
                    {
                        minDate = DateTimeUtils.DateFormat(DateTime.Now.AddDays((double)column.MinValue));
                    }
                    if (column.MaxValue != 0)
                    {
                        maxDate = DateTimeUtils.DateFormat(DateTime.Now.AddDays((double)column.MaxValue));
                    }
                    if (dateFormat == "yyyy-mm-dd")
                    {
                        script.AppendLine(" $(\"###formid## #" + column.ColName + "\").scroller('destroy').scroller($.extend({preset:'date', minDate:moment('" + minDate + "').toDate(),maxDate:moment('" + maxDate + "').toDate()},{ theme: 'android-ics light', mode: 'scroller', display:'modal', lang: 'zh' }));");
                    }
                    else
                    {
                        script.AppendLine("$(\"###formid## #" + column.ColName + "\").datePicker({  followOffset: [0, 24],onselect:function(date){ var formatDate = DatePicker.formatDate(date, '" + dateFormat + "');this.shell.val(formatDate).change();  return false;},minDate:'" + minDate + "',maxDate:'" + maxDate + "', altFormat:'" + dateFormat + "',showMode:" + model + " }).next().on(ace.click_event, function () {$(this).prev().focus(); });");
                    }
                }
                else if (column.CtrlType == FapColumn.CTRL_TYPE_DATETIME)
                {
                    //moment.js的格式
                    //string format = column.DisplayFormat;
                    //string startDate = "1900-1-1";
                    //string endDate = "2999-12-12";
                    //string startView = "2";
                    //if (column.MinValue.HasValue)
                    //{
                    //    startDate = DateTime.Now.AddDays((column.MinValue).ToDouble()).ToString(PublicUtils.DateFormat);
                    //}
                    //if (column.MaxValue.HasValue)
                    //{
                    //    endDate = DateTime.Now.AddDays((column.MaxValue).ToDouble()).ToString(PublicUtils.DateFormat);
                    //}
                    //if (format.IsMissing())
                    //{
                    //    format = "yyyy-mm-dd hh:ii:ss";
                    //}
                    //else if (format.EqualsWithIgnoreCase("HH:mm"))
                    //{
                    //    format = "hh:ii";
                    //    startView = "0";
                    //}


                    //script.AppendLine(" $(\"#" + column.ColName + "\").datetimepicker({ format:\"" + format + "\",startDate:'" + startDate + "',endDate:'" + endDate + "',startView:" + startView + ",todayBtn:true,todayHighlight:true, language: \"zh-CN\" }).next().on(ace.click_event, function () {            $(this).prev().focus();        });");

                    string format    = column.DisplayFormat;
                    string startDate = "1900-1-1";
                    string endDate   = "2999-12-12";

                    if (column.MinValue != 0)
                    {
                        startDate = DateTimeUtils.DateFormat(DateTime.Now.AddDays((double)column.MinValue));
                    }
                    if (column.MaxValue != 0)
                    {
                        endDate = DateTimeUtils.DateFormat(DateTime.Now.AddDays((double)column.MaxValue));
                    }
                    if (format.IsMissing())
                    {
                        //format = "datetime";
                        //script.AppendLine("opt.datetime = { preset : 'datetime', minDate:moment('" + startDate + "').toDate(), maxDate: minDate:moment('" + endDate + "').toDate() , stepMinute: 5  };");
                        script.AppendLine(" $(\"###formid## #" + column.ColName + "\").scroller('destroy').scroller($.extend({ preset:'datetime', minDate:moment('" + startDate + "').toDate(), maxDate:moment('" + endDate + "').toDate() , stepMinute: 5  }, { theme:'android-ics light', mode: 'scroller', display:'modal', lang: 'zh' }));");
                    }
                    else if (format.EqualsWithIgnoreCase("HH:mm"))
                    {
                        format = "time";
                        //script.AppendLine("opt.time = {preset : 'time'};");
                        script.AppendLine(" $(\"###formid## #" + column.ColName + "\").scroller('destroy').scroller($.extend({preset:'time'}, { theme: 'android-ics light', mode: 'scroller', display:'modal', lang: 'zh' }));");
                    }
                }
                #endregion

                #region 参照
                else if (column.CtrlType == FapColumn.CTRL_TYPE_REFERENCE && !field.ReadOnly)
                {
                    //去除自定义列
                    if (column.IsCustomColumn == 1)
                    {
                        continue;
                    }
                    //编码已经和地址一样了
                    string refUrl = column.RefType;
                    //if (column.RefType == "GRID")
                    //{
                    //    refUrl = "GridReference";
                    //}
                    //else if (column.RefType == "TREE")
                    //{
                    //    refUrl = "TreeReference";
                    //}
                    //else
                    //{
                    //    refUrl = "TreeGridReference";
                    //}
                    string dispalyName = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.FapColumn, $"{column.TableName}_{column.ColName}");
                    script.AppendLine("$(\"###formid## #" + column.ColName + "MC\").next().on(ace.click_event, function(){");
                    //script.AppendLine("//不可编辑字段不能弹出");
                    script.AppendLine(" if($(this).prev().attr(\"disabled\")==\"disabled\"){return;}");
                    //扩展参考值,参照参数用
                    script.AppendLine("var extra=[];");

                    //针对某些参照要用表单上的控件数据
                    if (column.RefCondition.IsPresent())
                    {
                        //DeptUid='${DeptUid}',@后面为表单上的控件
                        string fieldName = "";
                        string pattern   = FapPlatformConstants.VariablePattern;
                        Regex  regex     = new Regex(pattern);
                        var    mat       = regex.Matches(column.RefCondition);
                        foreach (Match item in mat)
                        {
                            int length = item.ToString().Length - 3;
                            fieldName = item.ToString().Substring(2, length);
                            //fieldName = item.Groups[1].ToString();

                            FapColumn col = _fapColumns.FirstOrDefault(f => f.ColName.EqualsWithIgnoreCase(fieldName));
                            if (col != null)
                            {
                                script.AppendLine("var conv=$('#" + fieldName + "').val();if(conv==''){bootbox.alert('【" + _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.FapColumn, $"{col.TableName}_{col.ColName}") + "】为空,请先设置。');return;}");
                                script.AppendLine("extra.push('" + fieldName + "='+conv)");
                            }
                        }
                    }
                    script.AppendLine("loadRefMessageBox('" + dispalyName + "','##formid##','" + column.Fid + "','" + column.ColName + "','" + refUrl + "',extra)");
                    script.AppendLine("});");
                    script.AppendLine("$(\"###formid## #" + column.ColName + "MC\").on(ace.click_event,function(e){$(this).next().trigger(ace.click_event);e.preventDefault();});");
                }
                #endregion

                #region 附件

                else if (column.CtrlType == FapColumn.CTRL_TYPE_FILE)
                {
                    script.AppendLine("$(\"###formid## #file" + FormId + column.ColName + "\").on(ace.click_event, function () {");
                    string tempFid = UUIDUtils.Fid;
                    if (field.FieldValue.ToString().IsMissing())
                    {
                        field.FieldValue = tempFid;
                    }
                    script.AppendLine("loadFileMessageBox('" + tempFid + "','##formid##',initFile" + FormId.Replace('-', '_') + tempFid + ");");

                    script.AppendLine("});");
                    string allowExt = string.Empty;
                    if (column.FileSuffix.IsPresent())
                    {
                        List <string> suffix = column.FileSuffix.SplitComma();
                        if (suffix.Any())
                        {
                            allowExt = string.Join(",", suffix.Select(s => "'" + s + "'").ToList());
                        }
                    }
                    //建立初始化附件控件js函数
                    script.AppendLine("var initFile" + FormId.Replace('-', '_') + tempFid + "=function(){");
                    script.AppendLine("$(\"###formid##" + tempFid + "-FILE\").fileinput({");
                    script.AppendLine("language: language,");
                    script.AppendLine($"uploadUrl:\"{ _applicationContext.BaseUrl }/Component/UploadFile/{ field.FieldValue }\",");
                    //script.AppendLine("deleteUrl:\"http://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath  + "/Api/Core/deletefile\",");
                    if (allowExt.IsPresent())
                    {
                        script.AppendLine($"allowedFileExtensions : [{ allowExt }],");
                    }
                    if (column.FileSize > 0)
                    {
                        script.AppendLine($"maxFileSize: {column.FileSize},");
                    }
                    script.AppendLine("uploadExtraData:{fid:'" + field.FieldValue + "'},");
                    script.AppendLine("allowedPreviewTypes: ['image', 'text'],");
                    script.AppendLine($"maxFileCount:{(column.FileCount == 0 ? 1 : column.FileCount)},");
                    script.AppendLine("showUpload: true,");
                    //script.AppendLine("showCaption: false,");
                    //script.AppendLine("overwriteInitial: false,");
                    script.AppendLine("slugCallback: function(filename) {");
                    script.AppendLine(" return filename.replace('(', '_').replace(']', '_');");
                    script.AppendLine("},");
                    //浏览按钮样式
                    //script.AppendLine("browseClass: \"btn btn-primary btn-block\",");
                    //浏览按钮图标
                    script.AppendLine("previewFileIcon: \"<i class='glyphicon glyphicon-king'></i>\"})");
                    //script.AppendLine(@".on('fileloaded', function(event, file, previewId, index, reader) {
                    //    var files =$(this).fileinput('getFileStack');
                    //    $(this).fileinput('uploadSingle',index,files,false);})");
                    script.AppendLine(@".on('fileuploaded', function (event, data, previewId, index) {  if(data.response.success==false){bootbox.alert(data.response.msg);}else{loadFileList('" + FormId + "', '" + column.ColName + "', '" + field.FieldValue.ToString() + "');                } });       ");
                    script.AppendLine("}");
                    if (_formStatus == FormStatus.Edit)
                    {
                        string bid = field.FieldValue.ToString();
                        script.AppendLine("loadFileList('" + FormId + "','" + column.ColName + "','" + bid + "');");
                    }
                }
                #endregion

                #region 图片头像
                else if (column.CtrlType == FapColumn.CTRL_TYPE_IMAGE && !field.ReadOnly)
                {
                    if (field.FieldValue.ToString().IsMissing())
                    {
                        field.FieldValue = UUIDUtils.Fid;
                    }
                    script.AppendLine("loadImageControl('avatar" + column.ColName + "')");
                }
                #endregion

                #region 富文本控件
                else if (column.CtrlType == FapColumn.CTRL_TYPE_RICHTEXTBOX)
                {
                    script.AppendLine("var wysiwyg_" + column.ColName + " =$(\"###formid## #" + column.ColName + ".wysiwyg-editor\").ace_wysiwyg({" + @"
						toolbar:
						[
                            'font',
			                null,
			                'fontSize',
			                null,
							'bold',
							'italic',
							'strikethrough',
							'underline',
							null,
                            'insertunorderedlist',
                            'insertorderedlist',
                            'outdent',
                            'indent', 
                            null,
							'justifyleft',
							'justifycenter',
							'justifyright',
							null,
							'createLink',
							'unlink',
							null,
                            'insertImage',
                            null,
                            'foreColor',
		                    null,
							'undo',
							'redo',
                            null,
						'viewSource'
						]
					}).prev().addClass('wysiwyg-style1');"                    );
                    //script.AppendLine("$(\"#frm-" + _id + " #" + column.ColName + "\").html('" + StringUtil.TextToHtml(field.FieldValue.ToString()) + "');");
                }
                #endregion

                #region 数值控件
                else if (column.CtrlType == FapColumn.CTRL_TYPE_INT || column.CtrlType == FapColumn.CTRL_TYPE_DOUBLE || column.CtrlType == FapColumn.CTRL_TYPE_MONEY)
                {
                    if (column.EditAble != 1)
                    {
                        continue;
                    }
                    int min = column.MinValue;
                    int max = column.MaxValue;
                    if (min == 0 && max == 0)
                    {
                        min = int.MinValue;
                        max = int.MaxValue;
                    }
                    string unit = "";
                    if (column.CtrlType == FapColumn.CTRL_TYPE_MONEY)
                    {
                        unit = " postfix: '¥'";
                    }
                    string step      = "1";
                    int    precision = column.ColPrecision;
                    if (precision > 0)
                    {
                        step = "0." + "1".PadLeft(precision, '0');
                    }
                    script.AppendLine(" $(\"###formid## input[name='" + column.ColName + "']\").TouchSpin({");
                    script.AppendLine(@"
                        min: " + min + @",
                        max: " + max + @",
                        step: " + step + @",
                        decimals: " + precision + @",
                        boostat: 5,
                        maxboostedstep: 10,
                     
                        " + unit + @"
                    });
                   ");
                }
                #endregion

                #region 数值范围
                else if (column.CtrlType == FapColumn.CTRL_TYPE_RANGE)
                {
                    StringBuilder sr = new StringBuilder("[");
                    for (int i = column.MinValue; i <= column.MaxValue; i++)
                    {
                        sr.Append($"{i},");
                    }
                    string r = sr.ToString().TrimEnd(',');
                    r += "]";
                    script.AppendLine(@"$('###formid## #" + column.ColName + @"').jRange({
                        from: " + column.MinValue + @",
                        to: " + column.MaxValue + @",
                        step: 1,
                        scale: " + r + @",
                        format: '%s',
                        width: 680,
                        disable:" + ((column.EditAble == 0 || field.ReadOnly) ? "true," : "false,") + @"
                        theme:'theme-blue',
                        showLabels: true,
                        isRange: true
                    });");
                }
                #endregion

                #region 籍贯

                else if (column.CtrlType == FapColumn.CTRL_TYPE_NATIVE)
                {
                    //籍贯
                    script.AppendLine("$(\"###formid## #" + column.ColName + "\").citypicker();");
                }

                #endregion

                #region 城市

                else if (column.CtrlType == FapColumn.CTRL_TYPE_CITY)
                {
                    //城市
                    script.AppendLine("$(\"###formid## #" + column.ColName + "\").cityselect();");
                }

                #endregion
                #region 评星级
                else if (column.CtrlType == FapColumn.CTRL_TYPE_STAR)
                {
                    if (field.FieldValue?.ToString().IsMissing() ?? true)
                    {
                        field.FieldValue = "0";
                    }
                    //评星级
                    script.AppendLine("if(!$(\"###formid## #" + column.ColName + "\").prop(\"disabled\")){ $(\"###formid## #rat-" + column.ColName + "\").raty({number: 5,score:" + field.FieldValue +
                                      @", cancel: true,  'starType' : 'i',
                    'click': function(score,evt) {" +
                                      "$(\"###formid## #" + column.ColName + "\").val(score);" +
                                      @"},					
                    })}else{" + "$(\"###formid## #rat-" + column.ColName + "\").raty({number: 5,score:" + field.FieldValue +
                                      @",  'starType' : 'i',readOnly: true			
                    })}");
                }
                #endregion
                #region 多語
                else if (column.CtrlType == FapColumn.CTRL_TYPE_TEXT && column.IsMultiLang == 1)
                {
                    string oriCtrl = column.ColName;

                    string ctrmultiLang = oriCtrl + _multiLangService.CurrentLanguageName;

                    script.AppendLine("$(\"###formid## #" + oriCtrl + "\").on(\"blur\",function(){$(\"###formid## #" + ctrmultiLang + "\").val($(this).val())}).next().on(ace.click_event, function(){");
                    script.AppendLine(" document.addEventListener(\"mousedown\", onMultiLangPoverMouseDown, false);");
                    script.AppendLine("var fid=$(this).data(\"fid\");");
                    script.AppendLine("var X1 = $(\"###formid## #" + oriCtrl + "\").offset().top-55;var Y1 =$(\"###formid## #" + oriCtrl + "\").offset().left;");
                    script.AppendLine("var bg=$(\"#\"+fid).closest(\".modal-lg\");var top=X1;var left=Y1");
                    script.AppendLine("if(bg){ var bgo=bg.offset();   top=X1-bgo.top;left=Y1-bgo.left;}");
                    script.AppendLine("$(\"#\"+fid).css({\"position\": \"fixed\",\"display\":\"inline-grid\",\"top\":top+'px',\"left\":left+'px'});");
                    script.AppendLine("})");
                }
                #endregion
            }
            #region 多语公共js
            if (formFields.Exists(f => f.CurrentColumn.IsMultiLang == 1))
            {
                //关闭按钮事件
                script.AppendLine(" $(\".multilangpopoverclose\").on(ace.click_event, function () {     $(this).closest(\".popover\").css(\"display\",\"none\");  });");
                script.AppendLine(@"function multiLangPoverClose() {" +
                                  @"$('.popovermultilang').css('display','none');" +
                                  "document.removeEventListener(\"mousedown\", onMultiLangPoverMouseDown, false);}" +
                                  "function onMultiLangPoverMouseDown(event) {" +
                                  "if (!(event.target.className.indexOf(\"popovermultilang\")>0 || $(event.target).parents(\".popovermultilang\").length > 0)) {" +
                                  "multiLangPoverClose();" +
                                  "}}");
            }
            #endregion

            #region TextArea
            if (hasTextArea)
            {
                script.AppendLine(@"$('textarea.limited').inputlimiter({
					remText: '%n 字符剩余...',
					limitText: '最大字符数 : %n.'
				});"                );
            }
            #endregion

            #region 表单校验

            if (needValidate)
            {
                //校验
                script.AppendLine("$('###formid##').validate({");
                script.AppendLine("		errorElement: 'div',");
                script.AppendLine("		errorClass: 'error',");
                script.AppendLine("		focusInvalid: false,");
                script.AppendLine("		ignore: \"\",");
                script.AppendLine("		rules: {");
                foreach (FapColumn col in _fapColumns)
                {
                    //非空可见
                    if ((col.NullAble == 0 && col.ShowAble == 1) || col.RemoteChkURL.IsPresent())
                    {
                        if (col.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
                        {
                            script.AppendLine("                " + col.ColName + "MC" + ": {");
                        }
                        else
                        {
                            script.AppendLine("             " + col.ColName + ": {");
                        }
                        if (col.NullAble == 0 && col.ShowAble == 1)
                        {
                            script.AppendLine("				required: true,");
                        }
                        if (col.RemoteChkURL.IsPresent())
                        {
                            string oriValue = FormData.Get(col.ColName).ToString();
                            script.AppendLine("				remote: '"+ _applicationContext.BaseUrl + col.RemoteChkURL + "&fid=" + HttpUtility.UrlEncode(FidValue) + "&orivalue=" + HttpUtility.UrlEncode(oriValue) + "&currcol=" + HttpUtility.UrlEncode(col.ColName) + "',");
                        }
                        script.AppendLine("			},");
                    }
                }


                script.AppendLine("			},");

                script.AppendLine("		messages: {");

                foreach (FapColumn col in _fapColumns)
                {
                    //非空可见
                    if ((col.NullAble == 0 && col.ShowAble == 1) || col.RemoteChkURL.IsPresent())
                    {
                        if (col.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
                        {
                            script.AppendLine("                " + col.ColName + "MC" + ": {");
                        }
                        else
                        {
                            script.AppendLine("                " + col.ColName + ": {");
                        }
                        if (col.NullAble == 0 && col.ShowAble == 1)
                        {
                            script.AppendLine("				required: \"["+ col.ColComment + "]必须填写!\",");
                        }
                        if (col.RemoteChkURL.IsPresent())
                        {
                            string msg = col.RemoteChkMsg;
                            if (msg.IsMissing())
                            {
                                msg = "[" + col.ColComment + "]此项值已经存在,请更换";
                            }
                            script.AppendLine("				remote: \""+ msg + "\",");
                        }
                        script.AppendLine("			},");
                    }
                }
                script.AppendLine("		},");
                //校验容器
                script.AppendLine("errorLabelContainer: $(\"###formid## div.error\"),");
                script.AppendLine("		highlight: function (e) {");
                script.AppendLine("			$(e).closest('.form-group').removeClass('has-info').addClass('has-error');");
                script.AppendLine("		},");

                script.AppendLine("		success: function (e) {");
                script.AppendLine("			$(e).closest('.form-group').removeClass('has-error');//.addClass('has-info');");
                script.AppendLine("			$(e).remove();");
                script.AppendLine("		},");

                script.AppendLine("		errorPlacement: function (error, element) {");
                script.AppendLine("			if(element.is('input[type=checkbox]') || element.is('input[type=radio]')) {");
                script.AppendLine("				var controls = element.closest('div[class*=\"col-\"]');");
                script.AppendLine("				if(controls.find(':checkbox,:radio').length > 1) controls.append(error);");
                script.AppendLine("				else error.insertAfter(element.nextAll('.lbl:eq(0)').eq(0));");
                script.AppendLine("			}");
                //script.AppendLine("			else if(element.is('.select2')) {");
                //script.AppendLine("				error.insertAfter(element.siblings('[class*=\"select2-container\"]:eq(0)'));");
                //script.AppendLine("			}");
                script.AppendLine("			else if(element.is('.chosen-select')) {");
                script.AppendLine("				error.insertAfter(element.siblings('[class*=\"chosen-container\"]:eq(0)'));");
                script.AppendLine("			}");
                script.AppendLine("			else error.insertAfter(element.parent());");
                script.AppendLine("		},");

                script.AppendLine("		submitHandler: function (form) {");
                script.AppendLine("		},");
                script.AppendLine("		invalidHandler: function (form) {");
                script.AppendLine("		}");
                script.AppendLine("	});");
            }
            #endregion

            #region 表单联动脚本
            DynamicParameters pm = new DynamicParameters();
            pm.Add("TableName", _fapTable.TableName);
            var formInjections = _dbContext.QueryWhere <FapFormInjection>("TableName=@TableName and IsEnabled=1", pm);
            if (formInjections != null && formInjections.Any())
            {
                foreach (var inject in formInjections)
                {
                    var changCol = _fapColumns.FirstOrDefault(f => f.ColName == inject.ChangeColumn);
                    //可见可编辑
                    if (changCol != null && changCol.EditAble == 1 && changCol.ShowAble == 1)
                    {
                        string ctrlName = changCol.ColName;

                        if (changCol.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
                        {
                            ctrlName = changCol.ColName + "MC";
                        }
                        script.AppendLine("$('#" + ctrlName + "').change(function(){");
                        string jsonData = "{'Fid':'" + inject.Fid + "','" + changCol.ColName + "':$('#" + changCol.ColName + "').val()";
                        if (inject.ParamColumns.IsPresent())
                        {
                            var paramCols = inject.ParamColumns.SplitComma();
                            foreach (var pc in paramCols)
                            {
                                jsonData += ",'" + pc + "':$('#" + pc + "').val()";
                            }
                        }
                        jsonData += "}";
                        script.AppendLine("$.post(basePath+'/Api/Core/frminjection'," + jsonData + ",function(result){");
                        script.AppendLine("$.each(result,function(name,value) {");
                        script.AppendLine("$('#'+name).val(value)");
                        script.AppendLine("});");
                        script.AppendLine("});");
                        script.AppendLine("})");
                    }
                }
            }

            #endregion

            #region 注入script脚本
            //元数据表注入
            if (_fapTable.ScriptInjection.IsPresent())
            {
                script.AppendLine(_fapTable.ScriptInjection);
            }
            //js文件注入
            string jsfilePath = Path.Combine(new string[] { Directory.GetCurrentDirectory(), "wwwroot", "Scripts", "FapFormPlugin", $"frm.plugin.{_fapTable.TableName}.js" });
            if (File.Exists(jsfilePath))
            {
                script.AppendLine(File.ReadAllText(jsfilePath, Encoding.UTF8));
            }
            #endregion

            script.AppendLine(" });");
            return(script.ToString());
        }
示例#4
0
        public List <MenuItem> BuildMenus()
        {
            string ceoModuleUid = "f4ce11e59cad54031d2f";
            //经理自主模块Fid
            string           mgrModuleUid  = "23b611e6b65e40b5abc8";
            List <MenuItem>  menus         = new List <MenuItem>();
            List <FapMenu>   threeLevel    = new List <FapMenu>();
            List <FapModule> modules       = new List <FapModule>();
            bool             isDeptManager = _rbacService.IsDeptManager();
            bool             isCEO         = _rbacService.IsCEO();
            //获取权限菜单
            IEnumerable <FapRoleMenu> roleMenuUids = _rbacService.GetRoleMenuList(_applicationContext.CurrentRoleUid);

            if (roleMenuUids.Any())
            {
                List <FapMenu> roleMenus = new List <FapMenu>();
                foreach (var rm in roleMenuUids)
                {
                    FapMenu fm;
                    if (_platformDomain.MenuSet.TryGetValue(rm.MenuUid, out fm))
                    {
                        //经理自助菜单权限 只有部门经理或者负责人具有
                        if (!isDeptManager && fm.ModuleUid == mgrModuleUid)
                        {
                            continue;
                        }
                        if (!isCEO && fm.ModuleUid == ceoModuleUid)
                        {
                            continue;
                        }
                        if (fm.MenuCode.Length > 5)
                        {
                            //如果没有二级菜单授权,这里要加上。
                            string parentCode = fm.MenuCode.Substring(0, 5);
                            if (!roleMenus.Exists(m => m.MenuCode == parentCode))
                            {
                                var pmenu = _platformDomain.MenuSet.FirstOrDefault <FapMenu>(m => m.MenuCode == parentCode);
                                if (pmenu != null)
                                {
                                    roleMenus.Add(pmenu);
                                }
                            }
                        }
                        if (!roleMenus.Contains(fm))
                        {
                            roleMenus.Add(fm);
                        }
                    }
                }
                var roleMenusOrder = roleMenus.OrderBy(m => m.MenuOrder);
                foreach (var fm in roleMenusOrder)
                {
                    //仅仅处理二级菜单
                    if (fm.MenuUrl.IsMissing())
                    {
                        continue;
                    }
                    if (fm.ActiveFlag == 0)
                    {
                        continue;
                    }
                    if (fm.MenuCode.Length > 5)
                    {
                        threeLevel.Add(fm);
                        continue;
                    }
                    string   menuText = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Menu, fm.Fid);
                    MenuItem fmm      = new MenuItem {
                        Text = menuText, Value = fm.MenuCode, NavigateUrl = fm.MenuUrl, ToolTip = fm.BadgePlusClass
                    };

                    FapModule fmd;
                    //是模块的时候
                    if (_platformDomain.ModuleSet.TryGetValue(fm.ModuleUid, out fmd))
                    {
                        MenuItem mmd = null;
                        menuText = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Module, fmd.Fid);
                        if (!modules.Contains(fmd))
                        {
                            modules.Add(fmd);
                            mmd = new MenuItem {
                                Text = menuText, NavigateUrl = "", Value = fmd.ModuleCode, ImageUrl = fmd.Icon, Target = fmd.ModuleOrder.ToString()
                            };
                            mmd.ChildItems.Add(fmm);
                            menus.Add(mmd);
                        }
                        else
                        {
                            mmd = menus.Find(m => m.Text == menuText);
                            mmd.ChildItems.Add(fmm);
                        }
                    }
                }
            }
            //管理员账号 增加系统管理菜单
            if (_applicationContext.UserName == FapPlatformConstants.Administrator)
            {
                //检查系统菜单,如果有就移除
                var sysModule = _platformDomain.ModuleSet.FirstOrDefault(m => m.ModuleCode == "099");
                if (sysModule != null)
                {
                    var sysMenu = menus.Find(m => m.Value == sysModule.ModuleCode);
                    if (sysMenu != null)
                    {
                        menus.Remove(sysMenu);
                        modules.Remove(sysModule);
                    }
                }
                //重新增加系统菜单
                IEnumerator <FapMenu> ms = _platformDomain.MenuSet.Where(m => m.MenuCode.StartsWith("099", System.StringComparison.OrdinalIgnoreCase)).OrderBy(m => m.MenuOrder).GetEnumerator();
                while (ms.MoveNext())
                {
                    FapMenu fm = ms.Current;
                    if (fm.ActiveFlag == 0)
                    {
                        continue;
                    }

                    //仅仅处理二级菜单
                    if (fm.MenuUrl.IsMissing())
                    {
                        continue;
                    }
                    if (fm.MenuCode.Length > 5)
                    {
                        threeLevel.Add(fm);
                        continue;
                    }
                    string mx = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Menu, fm.Fid);
                    //菜单
                    MenuItem fmm = new MenuItem {
                        Text = mx, NavigateUrl = fm.MenuUrl, Value = fm.MenuCode, ToolTip = fm.BadgePlusClass
                    };

                    FapModule fmd;
                    if (_platformDomain.ModuleSet.TryGetValue(fm.ModuleUid, out fmd))
                    {
                        mx = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Module, fmd.Fid);
                        if (!modules.Contains(fmd))
                        {
                            modules.Add(fmd);
                            //模块
                            MenuItem mmd = new MenuItem {
                                Text = mx, NavigateUrl = "", ImageUrl = fmd.Icon, Value = fmd.ModuleCode, Target = fmd.ModuleOrder.ToString()
                            };

                            mmd.ChildItems.Add(fmm);
                            menus.Add(mmd);
                        }
                        else
                        {
                            menus.Find(m => m.Text == mx).ChildItems.Add(fmm);
                        }
                    }
                }
            }
            //处理三级菜单
            if (threeLevel.Any())
            {
                var threeMenus = threeLevel.OrderBy(m => m.MenuOrder);
                foreach (var menu in threeMenus)
                {
                    //找到所在的模块
                    var module = menus.Find(m => menu.MenuCode.StartsWith(m.Value, System.StringComparison.OrdinalIgnoreCase));
                    if (module != null && module.ChildItems != null && module.ChildItems.Count > 0)
                    {
                        foreach (MenuItem item in module.ChildItems)
                        {
                            if (menu.MenuCode.StartsWith(item.Value, System.StringComparison.OrdinalIgnoreCase) && item.Value.Length == 5)
                            {
                                string   mx  = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.Menu, menu.Fid);
                                MenuItem fmm = new MenuItem {
                                    Text = mx, Value = menu.MenuCode, NavigateUrl = menu.MenuUrl, ToolTip = menu.BadgePlusClass
                                };

                                item.ChildItems.Add(fmm);
                                break;
                            }
                        }
                    }
                }
            }
            return(menus);
        }
示例#5
0
        /// <summary>
        /// 生成控件,切记获取值得控件要有 class='form-control'
        /// </summary>
        /// <returns></returns>
        public string BuilderForm(string frmid, int _colCount, bool isColspan, FormStatus formStatus = FormStatus.Add)
        {
            string lableName = _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.FapColumn, $"{_fapColumn.TableName}_{_fapColumn.ColName}");
            string ctrlName  = _fapColumn.ColName;

            //是否可编辑
            string editAble = string.Empty;

            if (_fapColumn.EditAble == 0 || ReadOnly)
            {
                editAble = "disabled='disabled'";
            }
            StringBuilder sbFormGroup = new StringBuilder();
            string        labelCol    = " col-sm-2 col-xs-12";

            if (formStatus == FormStatus.View)
            {
                labelCol = " col-sm-2 col-xs-2";
            }
            string ctrlOneCol = " col-xs-12 col-sm-10";
            string ctrlTwoCol = " col-xs-12 col-sm-4 ";

            if (formStatus == FormStatus.View)
            {
                ctrlOneCol = " col-xs-10 col-sm-10";
                ctrlTwoCol = " col-xs-4 col-sm-4 ";
            }
            if (_colCount == 1)
            {
                labelCol   = " col-sm-3 col-xs-12";
                ctrlTwoCol = ctrlOneCol = " col-xs-12 col-sm-9";
                if (formStatus == FormStatus.View)
                {
                    labelCol   = " col-sm-3 col-xs-3";
                    ctrlTwoCol = ctrlOneCol = " col-xs-9 col-sm-9";
                }
            }

            //一个控件占一行textarea,richtextbox
            if (isColspan)
            {
                //sbFormGroup.AppendLine("<div class=\"form-group col-xs-12 col-sm-12\">");

                sbFormGroup.AppendFormat("<label class=\"" + labelCol + " control-label no-padding-right\" for=\"{0}\">{1}", ctrlName, lableName);
                if (_fapColumn.NullAble == 0 && formStatus != FormStatus.View)
                {
                    sbFormGroup.Append("<i class='red'>*</i>");
                }
                if (formStatus == FormStatus.View)
                {
                    sbFormGroup.Append(":");
                }
                sbFormGroup.Append("</label>");

                sbFormGroup.AppendLine("<div class=\"ctrlcontainer " + ctrlOneCol + "\">");
            }
            else
            {
                //sbFormGroup.AppendLine(" <div class=\"form-group col-xs-12 col-sm-6\">");

                sbFormGroup.AppendFormat("<label class=\"" + labelCol + " control-label no-padding-right\" for=\"{0}\">{1}", ctrlName, lableName);

                if (_fapColumn.NullAble == 0 && formStatus != FormStatus.View)
                {
                    sbFormGroup.Append("<i class='red'>*</i>");
                }
                if (formStatus == FormStatus.View)
                {
                    sbFormGroup.Append(":");
                }
                sbFormGroup.Append("</label>");

                sbFormGroup.AppendLine("<div class=\"ctrlcontainer " + ctrlTwoCol + "\">");
            }

            if (formStatus == FormStatus.View)
            {
                sbFormGroup.AppendLine("<div class=\"text-info control-label align-left\">" + $"<label id=\"{ctrlName}\" >{BuilderFormFieldText()} </label>" + "</div>");
            }
            else
            {
                sbFormGroup.AppendLine("<div class='clearfix'>");
                BuilderDataFormField(frmid, lableName, editAble, sbFormGroup);
                sbFormGroup.AppendLine("</div>");
            }
            sbFormGroup.AppendLine("</div>");
            //sbFormGroup.AppendLine("</div>");

            return(sbFormGroup.ToString());
        }
示例#6
0
        private string RenderJavascript()
        {
            var script = new StringBuilder();

            script.AppendLine("var formdata={};");
            script.AppendLine("formdata.Fid='" + _pkValue + "';");
            script.AppendLine("$(function(){");
            if (_formModel == XEditableFormModel.Inline)
            {
                script.AppendLine(@"$.fn.editable.defaults.mode = 'inline';");
            }
            else
            {
                script.AppendLine(@"$.fn.editable.defaults.mode = 'popup';");
            }
            script.AppendLine("$.fn.editableform.loading = \"<div class='editableform-loading'><i class='ace-icon fa fa-spinner fa-spin fa-2x light-blue'></i></div>\";");
            script.AppendLine("$.fn.editableform.buttons = '<button type=\"submit\" class=\"btn btn-info editable-submit\"><i class=\"ace-icon fa fa-check\"></i></button>'+");
            script.AppendLine("                           '<button type=\"button\" class=\"btn editable-cancel\"><i class=\"ace-icon fa fa-times\"></i></button>';  ");

            foreach (var xfield in _xEditableFields)
            {
                var column = xfield.CurrFapColumn;
                //script.AppendLine(SetFormDataJson(column, xfield.FieldValue));
                if (column.EditAble == 1)
                {
                    script.AppendLine("$('#" + column.ColName + "').editable({");
                    script.AppendLine(" name:'" + column.ColName + "',");
                    script.AppendLine(GetOption(column, xfield.FieldValue));
                    if (column.NullAble == 0)
                    {
                        script.AppendLine(" validate: function(value) { if($.trim(value) == '') return '此项是必须的!';  },");
                    }
                    if (_saveModel == XEditableSaveModel.Single)
                    {
                        script.AppendLine(" url: basePath+'" + _editUrl + "',  ");
                        script.AppendLine("pk: '" + _pkValue + "',    ");
                        string strPv = "params.value=params.value";
                        //参照返回的是一个对象
                        if (column.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
                        {
                            strPv = "params.value=params.value.code";
                        }
                        script.AppendLine(@"params: function(params) {
                                            //originally params contain pk, name and value
                                            params.tablename = '" + TableName + @"';" + strPv + @"
                                            return params;},");


                        //title始终放最后
                        script.AppendLine("title: '" + _multiLangService.GetMultiLangValue(MultiLanguageOriginEnum.FapColumn, $"{column.TableName}_{column.ColName}") + "',");
                    }

                    //成功返回
                    //script.AppendLine("success: function(response, newValue) {formdata."+column.ColName+"= }");

                    script.AppendLine("});");
                }
            }
            //销毁
            script.AppendLine(@"$(document).one('ajaxloadstart.page', function(e) {
					    //in ajax mode, remove remaining elements before leaving page
					    try {
						    $('.editable').editable('destroy');
					    } catch(e) {}
					    $('[class*=select2]').remove();
				    });"                );
            if (!_enabled)
            {
                script.AppendLine(" $('.profile-user-info.profile-user-info-striped .editable').editable('disable');");
            }

            script.AppendLine("})");
            if (_saveModel == XEditableSaveModel.All)
            {
                script.AppendLine("var saveXEditFormData=function(){");
                script.AppendLine(@"
                                    var i = 0;
                                    for(f in formdata)
                                    {
                                        if(f=='Fid')
                                        {
                                            continue;
                                        }
                                        i++;
                                    }
                                    if(i==0)
                                    {
                                        bootbox.alert('没检测到你数据的改变,不需要保存');
                                        return;
                                    }
                ");
                script.AppendLine("formdata.TableName='" + TableName + "';formdata.oper='edit'");
                script.AppendLine("$.post(basePath+'" + _editUrl + "',formdata,function(result){if(result==true){bootbox.alert('更新成功')}else{bootbox.alert('更新失败')}});");
                script.AppendLine("};");
            }
            return(script.ToString());
        }
示例#7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fapColumn"></param>
        /// <param name="disCols">手动设置可见的字段,默认可能为不可见</param>
        /// <param name="hideCols">要隐藏的字段</param>
        /// <returns></returns>
        public static Column ToColumn(this FapColumn fapColumn, IMultiLangService multiLang, IDbContext dbContext)
        {
            //判断是否为隐藏。当disCols不包含且 ShowAble==0

            bool   hideAble = fapColumn.ShowAble == 0;
            string colName  = fapColumn.ColName;
            //if (colName.EndsWith("MC") && fapColumn.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
            //{
            //    colName = colName.Substring(0, colName.Length - 2);
            //}


            //如果是参照字段,隐藏之,显示MC字段
            //if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_REFERENCE && !hideAble && fapColumn.IsCustomColumn == 0)
            //{
            //    hideAble = true;
            //}
            string columnName = fapColumn.ColName;

            if (fapColumn.IsMultiLang == 1)
            {
                string langName = multiLang.CurrentLanguageName;
                if (langName != MultiLanguageEnum.ZhCn.ToString())
                {
                    columnName += langName;
                }
            }
            //fapColumn.CtrlType
            Column col   = new Column(fapColumn);
            string label = multiLang.GetMultiLangValue(MultiLanguageOriginEnum.FapColumn, $"{fapColumn.TableName}_{fapColumn.ColName}");

            col.SetLabel(label);
            col.SetKey(fapColumn.ColType == FapColumn.COL_TYPE_PK);
            col.SetWidth(fapColumn.DisplayWidth);
            col.SetHidden(hideAble).SetHidelg(hideAble).SetColmenu(true);
            col.SetEditable(fapColumn.EditAble == 1);
            //编辑规则
            EditRules editRules = new EditRules();

            col.SetEditRules(editRules);
            if (fapColumn.NullAble == 0)
            {
                editRules.Required = true;
            }
            if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_CHECKBOX)
            {
                col.SetFormatter(Enums.Formatters.Checkbox);
                //编辑设置
                col.SetEditType(Enums.EditType.Checkbox);
                EditOptions eo = new EditOptions()
                {
                    Value = "1:0"
                };
                col.SetEditOptions(eo);
                //查询设置
                col.SetSearchType(Enums.Searchtype.Select);
                col.SetSearchOption(Enums.SearchOptions.Equal);
                col.SetSearchOption(Enums.SearchOptions.NotEqual);
                IDictionary <string, string> searchTerms = new Dictionary <string, string>();
                searchTerms.Add("1", "是");
                searchTerms.Add("0", "否");
                col.SetSearchTerms(searchTerms);
                //默认ACE样式函数
                //col.SetUnFormat("aceSwitch");
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_COMBOBOX)
            {
                if (fapColumn.MultiAble == 1)
                {
                    col.SetCustomFormatter("formatCheckboxList");
                    col.SetUnFormat("unformatCheckboxList");
                }
                else
                {
                    col.SetFormatter(Enums.Formatters.Select);
                    //编辑设置
                    col.SetEditType(Enums.EditType.Select);
                    IEnumerable <FapDict> list = dbContext.Dictionarys(fapColumn.ComboxSource);
                    if (list != null && list.Any())
                    {
                        string      codeValues = string.Join(";", list.Select(c => c.Code + ":" + c.Name).ToList());
                        EditOptions eo         = new EditOptions()
                        {
                            Value = codeValues
                        };                                                        //" getCodeData('" + fapColumn.RefTable + "')"};
                        col.SetEditOptions(eo);
                        //查询设置
                        col.SetSearchType(Enums.Searchtype.Select);
                        col.SetSearchOption(Enums.SearchOptions.Equal);
                        col.SetSearchOption(Enums.SearchOptions.NotEqual);
                        IDictionary <string, string> searchTerms = new Dictionary <string, string>();
                        foreach (var item in list)
                        {
                            searchTerms.Add(item.Code, item.Name);
                        }
                        col.SetSearchTerms(searchTerms);
                    }
                }
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_CHECKBOXLIST)
            {
                col.SetCustomFormatter("formatCheckboxList");
                col.SetUnFormat("unformatCheckboxList");
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_DATE || fapColumn.CtrlType == FapColumn.CTRL_TYPE_DATETIME)
            {
                string fmt = fapColumn.DisplayFormat;
                col.SetEditType(Enums.EditType.Text);
                EditOptions editoptions = new EditOptions();
                col.SetEditOptions(editoptions);
                if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_DATE)
                {
                    if (fmt.EqualsWithIgnoreCase("yyyy"))
                    {
                        fmt = "Y";
                    }
                    else if (fmt.EqualsWithIgnoreCase("yyyy-mm"))
                    {
                        fmt = "Y-m";
                    }
                    else
                    {
                        fmt = "Y-m-d";
                    }
                    col.SetFormatter(Enums.Formatters.Date, "srcformat:\"" + fmt + "\",newformat:\"" + fmt + "\"");
                    //查询设置
                    col.SetSearchType(Enums.Searchtype.Datepicker);
                }
                else
                {
                    if (fmt.IsPresent() && fmt.EqualsWithIgnoreCase("HH:mm"))
                    {
                        fmt = "H:i";
                    }
                    else
                    {
                        fmt = "Y-m-d H:i:s";
                    }
                    col.SetFormatter(Enums.Formatters.Date, "srcformat:\"" + fmt + "\",newformat:\"" + fmt + "\"");
                    //查询设置
                    col.SetSearchType(Enums.Searchtype.Datetimepicker);
                }
                //编辑设置
                editoptions.DataInit = @"function (element) {
                                $(element).datepicker({
                                    id: '" + fapColumn.ColName + @"_datePicker',
                                    dateFormat: '" + fmt + @"',
                                    //minDate: new Date(2010, 0, 1),
                                    maxDate: new Date(2030, 0, 1),
                                    showOn: 'focus'
                                });
                            }";
                //默认ACE样式函数
                //col.SetUnFormat("pickDate");
                //col.SetDataInit("initDateSearch");

                col.SetSearchDateFormat(fapColumn.DisplayFormat);
                col.SetSearchOption(Enums.SearchOptions.Equal);
                col.SetSearchOption(Enums.SearchOptions.NotEqual);
                col.SetSearchOption(Enums.SearchOptions.Greater);
                col.SetSearchOption(Enums.SearchOptions.GreaterOrEqual);
                col.SetSearchOption(Enums.SearchOptions.Less);
                col.SetSearchOption(Enums.SearchOptions.LessOrEqual);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_DOUBLE || fapColumn.CtrlType == FapColumn.CTRL_TYPE_MONEY)
            {
                SetEditRulesNumber(fapColumn, editRules);
                //inline 编辑设置
                col.SetEditType(Enums.EditType.Text);
                EditOptions editopt = new EditOptions();
                editopt.DataInit = @"function (element) {
                                $(element).TouchSpin({
                                step: 1,
                                decimals: 2,
                                boostat: 5,
                                maxboostedstep: 10               
                                });
                            }";
                //col.SetFormatter(Enums.Formatters.Currency);
                if (fapColumn.DisplayFormat == "%")
                {
                    col.SetFormatter(Enums.Formatters.Percent);
                }
                //col.SetFormatter(Enums.Formatters.Number, "thousandsSeparator: ','");
                col.SetSearchOption(Enums.SearchOptions.Equal);
                col.SetSearchOption(Enums.SearchOptions.NotEqual);
                col.SetSearchOption(Enums.SearchOptions.Greater);
                col.SetSearchOption(Enums.SearchOptions.GreaterOrEqual);
                col.SetSearchOption(Enums.SearchOptions.Less);
                col.SetSearchOption(Enums.SearchOptions.LessOrEqual);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_INT)
            {
                SetEditRulesNumber(fapColumn, editRules);
                //inline 编辑设置
                col.SetEditType(Enums.EditType.Text);
                EditOptions editopt = new EditOptions();
                editopt.DataInit = @"function (element) {
                                $(element).TouchSpin({
                                step: 1,
                                boostat: 5,
                                maxboostedstep: 10               
                                });
                            }";
                col.SetFormatter(Enums.Formatters.Integer);
                col.SetSearchOption(Enums.SearchOptions.Equal);
                col.SetSearchOption(Enums.SearchOptions.NotEqual);
                col.SetSearchOption(Enums.SearchOptions.Greater);
                col.SetSearchOption(Enums.SearchOptions.GreaterOrEqual);
                col.SetSearchOption(Enums.SearchOptions.Less);
                col.SetSearchOption(Enums.SearchOptions.LessOrEqual);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_CITY)
            {
                //城市
                col.SetEditType(Enums.EditType.Text);
                EditOptions editoptions = new EditOptions();
                editoptions.DataInit = @"function (element) {
                                $(element).cityselect();
                            }";
                col.SetEditOptions(editoptions);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_NATIVE)
            {
                //籍贯
                col.SetEditType(Enums.EditType.Text);
                EditOptions editoptions = new EditOptions();
                editoptions.DataInit = @"function (element) {
                                $(element).citypicker();
                            }";
                col.SetEditOptions(editoptions);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
            {
                col.SetSearchType(Enums.Searchtype.Reference);
                col.SetSearchOption(Enums.SearchOptions.IsIn);
                col.SetSearchOption(Enums.SearchOptions.IsNotIn);


                col.SetCustomFormatter("formatReference");
                col.SetUnFormat("unformatReference");
                col.SetEditType(Enums.EditType.Custom);
                EditOptions editoptions = new EditOptions();
                editoptions.DataInit       = @"function (element) {
                                $(element).find('input:text').on(ace.click_event,function(e){$(this).next().trigger(ace.click_event);e.preventDefault();});
                                $(element).find('input:text').next().on(ace.click_event, function(){ var $this=$(this).prev();
                                    openRefrenceWindow('" + fapColumn.ColComment + "选择','" + fapColumn.Fid + @"','" + fapColumn.RefType + @"',function(code,name){
                                        $this.val(name).data('value',code);
                                        $this.closest('td').next().find('input:text').val(name);
                                    },function(){
                                        $this.val('').data('value','');
                                   })
                                });
                            }";
                editoptions.Custom_element = "createReferenceEditElement"; //创建元素
                editoptions.Custom_value   = "getReferenceElementValue";   //获取值
                col.SetEditOptions(editoptions);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_FILE)
            {
                //附件
                col.SetCustomFormatter("attachmentInfo");
                col.SetUnFormat("unattachmentInfo");
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_IMAGE)
            {
                col.SetCustomFormatter("formatImage");
                col.SetUnFormat("unformatImage");
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_TEXT)
            {
                SetTextSearchOption(col);
            }
            else if (fapColumn.CtrlType == FapColumn.CTRL_TYPE_EMAIL)
            {
                SetTextSearchOption(col);
                editRules.Email = true;
            }
            else
            {
                SetTextSearchOption(col);
            }



            return(col);
        }