/// <summary> /// 将列信息转化为laytable的列数据格式{field:'a',align:'left'} /// </summary> /// <param name="columnInfo"></param> /// <returns></returns> public static Dictionary <string, object> ToLayData(this ColumnInfo columnInfo) { var dic = new Dictionary <string, object>(); if (columnInfo.ColumnKey == "RemainFee") { dic.Add("type", "space"); dic.Add("width", 150); } dic.Add("title", columnInfo.ColumnName); dic.Add("sortNum", columnInfo.Sort); //模板 if (columnInfo.ColumnType == ColumnTypes.Images || columnInfo.ColumnType == ColumnTypes.Files) { dic.Add("templet", $"#templet_{columnInfo.ModuleInfo.ModuleKey}_{columnInfo.ColumnKey}"); } //采用行间模板写法 else if (!columnInfo.Templet.IsNullOrWhiteSpace()) { dic.Add("templet", "<div>" + columnInfo.Templet + "</div>"); } //启用排序 if (columnInfo.IsEnableSort) { dic.Add("sort", true); } //启用汇总行 if (columnInfo.ColumnType == ColumnTypes.Number && columnInfo.EnableTotalRow) { dic.Add("totalRow", true); } //搜索 if (columnInfo.IsShownInAdvanceSearch && columnInfo.ColumnType != ColumnTypes.Files && columnInfo.ColumnType != ColumnTypes.Images) { //是否日期类型 if (columnInfo.ColumnType == ColumnTypes.DateTime) { dic.Add("filter", new { type = "date[yyyy-MM-dd HH:mm:ss]" }); } else { dic.Add("filter", true); } } //如果是标记列 if (columnInfo.IsFlagsColumn) { dic["templet"] = "#flagsTpl"; } //如果是操作列 if (columnInfo.IsOperationColumn) { dic.Add("toolbar", $"#{columnInfo.ColumnKey}"); dic.Add("minWidth", "100"); } else { //非操作列需要绑定数据 dic.Add("field", columnInfo.ColumnKey.ToCamelCase()); if (!string.IsNullOrEmpty(columnInfo.DisplayPath) || !string.IsNullOrEmpty(columnInfo.DictionaryName)) { dic["field"] = $"{columnInfo.ColumnKey.ToCamelCase()}_display"; } } var align = columnInfo.GetData <string>("align"); if (!align.IsNullOrWhiteSpace()) { dic.Add("align", align); } var style = columnInfo.GetData <string>("style"); if (!style.IsNullOrWhiteSpace()) { dic.Add("style", style); } var width = columnInfo.GetData <string>("width"); if (!width.IsNullOrWhiteSpace() && !dic.ContainsKey("width")) { dic.Add("width", width); } var fix = columnInfo.GetData <string>("fixed"); if (fix == "left" || fix == "right") { dic["fixed"] = fix; } return(dic); }