init commit

This commit is contained in:
路 范
2022-03-30 17:54:33 +08:00
parent df01841625
commit 904bdd16cd
500 changed files with 217251 additions and 0 deletions

View File

@@ -0,0 +1,757 @@
using Ewide.Core;
using Furion.DependencyInjection;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Localization;
using Newtonsoft.Json.Linq;
using RoadFlow.Utility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RoadFlow.Data
{
public class Program: RoadFlowRepository<RoadFlow.Model.rf_program>,IProgram, ITransient
{
/// <summary>
/// 得到运行时实体
/// </summary>
/// <param name="id"></param>
/// <param name="localizer">语言包</param>
/// <returns></returns>
public Model.ProgramRun GetRunModel(string id, IStringLocalizer localizer = null)
{
string key = "ProgramRun_" + id;
var obj = _memoryCache.Get(key);
if (obj != null)
{
return (Model.ProgramRun)obj;
}
else
{
var programModel = GetOneById(id);
if (null == programModel)
{
return null;
}
Model.ProgramRun programRunModel = new Model.ProgramRun
{
ButtonLocation = programModel.ButtonLocation,
ClientScript = programModel.ClientScript,
ConnId = programModel.ConnId.ToGuid(),
CreateTime = programModel.CreateTime,
CreateUserId = programModel.CreateUserId.ToGuid(),
EditModel = programModel.EditModel,
ExportFileName = programModel.ExportFileName,
ExportHeaderText = programModel.ExportHeaderText,
ExportTemplate = programModel.ExportTemplate,
FormId = programModel.FormId,
Height = programModel.Height,
Id = programModel.Id.ToGuid(),
InDataNumberFiledName = programModel.InDataNumberFiledName,
IsAdd = programModel.IsAdd,
IsPager = programModel.IsPager,
RowNumber = programModel.RowNumber,
Name = programModel.Name,
ProgramButtons = new ProgramButton().GetAllByProgramId(programModel.Id),
ProgramExports = new ProgramExport().GetAllByProgramId(programModel.Id),
ProgramFields = new ProgramField().GetAllByProgramId(programModel.Id),
ProgramQueries = new ProgramQuery().GetAllByProgramId(programModel.Id),
ProgramValidates = new ProgramValidate().GetAllByProgramId(programModel.Id),
PublishTime = programModel.PublishTime,
SelectColumn = programModel.SelectColumn,
SqlString = programModel.SqlString,
Status = programModel.Status,
TableHead = programModel.TableHead,
TableStyle = programModel.TableStyle,
Type = programModel.Type.ToGuid(),
Width = programModel.Width,
GroupHeaders = programModel.GroupHeaders,
DefaultSort = programModel.DefaultSort,
EditEvents = programModel.EditEvents
};
programRunModel.QueryHtml = GetQueryHtml(programRunModel.ProgramQueries, localizer);
programRunModel.QueryData = GetQueryData(programRunModel.ProgramQueries);
programRunModel.GridColNames = GetColNames(programRunModel.ProgramFields);
programRunModel.GridColModels = GetColModels(programRunModel.ProgramFields);
programRunModel.DefaultSort =
programModel.DefaultSort.IsNullOrWhiteSpace() ? GetDefaultSort(programRunModel.ProgramFields) : programModel.DefaultSort;
_memoryCache.Set(key, programRunModel);
return programRunModel;
}
}
/// <summary>
/// 得到查询HTML
/// </summary>
/// <param name="programQueries"></param>
/// <param name="localizer">语言包</param>
/// <returns></returns>
private string GetQueryHtml(List<Model.rf_programquery> programQueries, IStringLocalizer localizer = null)
{
StringBuilder query_controls = new StringBuilder();
if (null == programQueries)
{
return "";
}
foreach (var query in programQueries)
{
string title = query.ShowTitle.IsNullOrWhiteSpace() ? query.Field : query.ShowTitle;
string controlName = query.ControlName.IsNullOrWhiteSpace() ? "ctl_" + query.Id : query.ControlName;
query_controls.Append("<span style=\"margin-right:8px;display:inline-block;word-wrap:break-word;white-space:normal;\">");
query_controls.Append("<label>" + title + "</label>");
switch (query.InputType)
{
case 0: //文本框
query_controls.Append("<input type='text' class='mytext'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
break;
case 1://日期
query_controls.Append("<input type='text' class='mycalendar'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
break;
case 2://日期范围
query_controls.Append("<input type='text' class='mycalendar'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
query_controls.Append(localizer == null ? (localizer == null ? " 至 " : localizer["To"]) : localizer["To"]);
query_controls.Append("<input type='text' class='mycalendar'");
query_controls.Append(" id='" + controlName + "1'");
query_controls.Append(" name='" + controlName + "1'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
break;
case 3://日期时间
query_controls.Append("<input type='text' class='mycalendar' istime='1'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
break;
case 4://日期时间范围
query_controls.Append("<input type='text' class='mycalendar' istime='1'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
query_controls.Append(localizer == null ? (localizer == null ? " 至 " : localizer["To"]) : localizer["To"]);
query_controls.Append("<input type='text' class='mycalendar' istime='1'");
query_controls.Append(" id='" + controlName + "1'");
query_controls.Append(" name='" + controlName + "1'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
break;
case 5://下拉选项
query_controls.Append("<select class='myselect'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append(">");
query_controls.Append("<option value=\"\"></option>");
switch (query.DataSource.Value)
{
case 0://字符串表达式
query_controls.Append(new Form().GetOptionsByStringExpression(query.DataSourceString, ""));
break;
case 1://数据字典
Dictionary.ValueField valueField = Dictionary.ValueField.Id;
switch (query.OrgAttribute.ToInt(0))
{
case 1:
valueField = Dictionary.ValueField.Title;
break;
case 2:
valueField = Dictionary.ValueField.Code;
break;
case 3:
valueField = Dictionary.ValueField.Value;
break;
case 4:
valueField = Dictionary.ValueField.Note;
break;
case 5:
valueField = Dictionary.ValueField.Other;
break;
default:
valueField = Dictionary.ValueField.Id;
break;
}
query_controls.Append(new Dictionary().GetOptionsByID(query.DictValue, valueField));
break;
case 2://SQL
query_controls.Append(new Form().GetOptionsBySQL(query.ConnId, query.DataSourceString, ""));
break;
}
query_controls.Append("</select>");
break;
case 6://组织机构选择
query_controls.Append("<input type='text' class='mymember'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
string orgOptions = new Organize().GetOrganizeAttrString(query.OrgAttribute);
query_controls.Append(orgOptions);
query_controls.Append("/>");
break;
case 7://数据字典选择
query_controls.Append("<input type='text' class='mydict'");
query_controls.Append(" id='" + controlName + "'");
query_controls.Append(" name='" + controlName + "'");
query_controls.Append(" rootid='" + query.DictValue + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("/>");
break;
}
query_controls.Append("</span>");
}
return query_controls.ToString();
}
/// <summary>
/// 得到查询的JSON data
/// </summary>
/// <param name="programQueries"></param>
/// <returns></returns>
private string GetQueryData(List<Model.rf_programquery> programQueries)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("\"pagesize\": size || curPageSize, \"pagenumber\": number || curPageNumber,");
foreach (var query in programQueries)
{
string controlName = query.ControlName.IsNullOrWhiteSpace() ? "ctl_" + query.Id : query.ControlName;
stringBuilder.Append("\"" + controlName + "\":$(\"#" + controlName + "\").val(),");
if (query.InputType.In(2, 4))//如果是日期时间范围要加上截止时间
{
stringBuilder.Append("\"" + controlName + "1\":$(\"#" + controlName + "1\").val(),");
}
}
return "{" + stringBuilder.ToString().TrimEnd(',') + "}";
}
/// <summary>
/// 得到Grid列头
/// </summary>
/// <param name="programFields"></param>
/// <returns></returns>
private string GetColNames(List<Model.rf_programfield> programFields)
{
if (null == programFields)
{
return string.Empty;
}
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("[");
foreach (var field in programFields)
{
stringBuilder.Append("\"" + (field.ShowTitle.IsNullOrWhiteSpace() ? field.Field : field.ShowTitle) + "\",");
}
return stringBuilder.ToString().TrimEnd(',') + "]";
}
/// <summary>
/// 得到GRID列JSON
/// </summary>
/// <param name="programFields"></param>
/// <returns></returns>
private string GetColModels(List<Model.rf_programfield> programFields)
{
if (null == programFields)
{
return string.Empty;
}
Newtonsoft.Json.Linq.JArray jArray = new Newtonsoft.Json.Linq.JArray();
foreach (var field in programFields)
{
Newtonsoft.Json.Linq.JObject jObject = new Newtonsoft.Json.Linq.JObject();
string name = field.Field;
if (name.IsNullOrWhiteSpace())
{
if (100 == field.ShowType)
{
name = "opation";
}
else if (1 == field.ShowType)
{
name = "rowserialnumber";
}
}
jObject.Add("name", name);
if (!field.IsSort.IsNullOrWhiteSpace())
{
jObject.Add("index", field.IsSort.Trim());
}
else
{
jObject.Add("sortable", false);
}
if (field.ShowType == 100)
{
jObject.Add("title", false);
}
if (field.IsShow == 0)
{
jObject.Add("hidedlg", true);
jObject.Add("hidden", true);
}
if (!field.Width.IsNullOrWhiteSpace())
{
jObject.Add("width", field.Width.GetNumber());
}
jObject.Add("align", field.Align);
jArray.Add(jObject);
}
return jArray.ToString(Newtonsoft.Json.Formatting.None);
}
/// <summary>
/// 得到默认排序列
/// </summary>
/// <param name="programFields"></param>
/// <returns></returns>
private string GetDefaultSort(List<Model.rf_programfield> programFields)
{
if (null == programFields || programFields.Count == 0)
{
return string.Empty;
}
var filed = programFields.Find(p => !p.IsSort.IsNullOrWhiteSpace());
if (null != filed)
{
return filed.IsSort;
}
else
{
return programFields.First().Field + " ASC";
}
}
/// <summary>
/// 得到运行时实体
/// </summary>
/// <param name="id">应用程序ID,RF_Program表ID</param>
/// <param name="userModel">用户实体,用于判断按钮权限</param>
/// <param name="menuId">菜单id</param>
/// <param name="localizer">语言包</param>
/// <returns></returns>
public Model.ProgramRun VueGetRunModel(string id, SysUser userModel, string menuId, IStringLocalizer localizer = null)
{
string key = "ProgramRun_VUE_" + id;
var obj = _memoryCache.Get(key);
Model.ProgramRun programRunModel;
if (obj != null)
{
programRunModel = (Model.ProgramRun)obj;
}
else
{
var programModel = GetOneById(id);
if (null == programModel)
{
return null;
}
programRunModel = new Model.ProgramRun
{
ButtonLocation = programModel.ButtonLocation,
ClientScript = programModel.ClientScript,
ConnId = programModel.ConnId.ToGuid(),
CreateTime = programModel.CreateTime,
CreateUserId = programModel.CreateUserId.ToGuid(),
EditModel = programModel.EditModel,
ExportFileName = programModel.ExportFileName,
ExportHeaderText = programModel.ExportHeaderText,
ExportTemplate = programModel.ExportTemplate,
FormId = programModel.FormId,
Height = programModel.Height,
Id = programModel.Id.ToGuid(),
InDataNumberFiledName = programModel.InDataNumberFiledName,
IsAdd = programModel.IsAdd,
IsPager = programModel.IsPager,
RowNumber = programModel.RowNumber,
Name = programModel.Name,
ProgramButtons = new ProgramButton().GetAllByProgramId(programModel.Id),
ProgramExports = new ProgramExport().GetAllByProgramId(programModel.Id),
ProgramFields = new ProgramField().GetAllByProgramId(programModel.Id),
ProgramQueries = new ProgramQuery().GetAllByProgramId(programModel.Id),
ProgramValidates = new ProgramValidate().GetAllByProgramId(programModel.Id),
PublishTime = programModel.PublishTime,
SelectColumn = programModel.SelectColumn,
SqlString = programModel.SqlString,
Status = programModel.Status,
TableHead = programModel.TableHead,
TableStyle = programModel.TableStyle,
Type = programModel.Type.ToGuid(),
Width = programModel.Width,
GroupHeaders = programModel.GroupHeaders,
DefaultSort = programModel.DefaultSort,
EditEvents = programModel.EditEvents
};
programRunModel.QueryHtml = VueGetRunHtml(programRunModel, localizer);
_memoryCache.Set(key, programRunModel);
}
//替换按钮
if (userModel != null)
{
var (normalButton, listButton) = VueGetButtons(programRunModel.ProgramButtons, userModel, menuId);
programRunModel.QueryHtml = programRunModel.QueryHtml.Replace("{<button-normal>}", normalButton);
foreach (JObject jObject in programRunModel.Cols)
{
if (jObject.ContainsKey("buttons"))
{
jObject["buttons"] = listButton;
}
}
}
return programRunModel;
}
/// <summary>
/// 得到运行时VUE组件HTML
/// </summary>
/// <param name="programRun"></param>
/// <param name="localizer">语言包</param>
/// <returns></returns>
public string VueGetRunHtml(Model.ProgramRun programRunModel, IStringLocalizer localizer = null)
{
if (programRunModel == null)
{
return string.Empty;
}
StringBuilder html = new StringBuilder();
#region
string queryHtml = VueGetQueryHtml(programRunModel.ProgramQueries, localizer);
html.Append("<div style='padding:0 10px;'>");
html.Append(queryHtml);
//查询按钮(查询后面)
if (programRunModel.ButtonLocation == 1)
{
if (!queryHtml.IsNullOrWhiteSpace())
{
html.Append("<roadui-button @click.native=\"query()\">" + (localizer == null ? "查询" : localizer["Query"].Value) + "</roadui-button>");
}
//{<button-normal>}作为占位符,实际运行时根据当前用户获取有权限的按钮填充。
html.Append("{<button-normal>}");
}
html.Append("</div>");
//查询按钮(新行)
if (programRunModel.ButtonLocation == 0)
{
html.Append("<div style='text-align:center;margin:15px 0 10px 0;'>" + (queryHtml.IsNullOrWhiteSpace() ? string.Empty : "<roadui-button @click.native=\"query()\">" + (localizer == null ? "查询" : localizer["Query"].Value) + "</roadui-button>") + "{<button-normal>}</div>");
}
#endregion
#region
html.Append("<roadui-table style=\"margin-top:15px;\" :cols=\"cols\" :rows=\"table.rows\" :loading=\"loading\" :total=\"table.total\""
+ " :pagenumber.sync=\"number\" :pagesize.sync=\"size\" :ordertype=\"0\" :height=\"tableHeight\""
+ (programRunModel.RowNumber == 1 ? " number" : "")
+ (programRunModel.SelectColumn == 2 ? " checkbox" : programRunModel.SelectColumn == 1 ? " radio" : "") + " v-model=\"selectRows\""
+ (programRunModel.TableHead.IsNullOrWhiteSpace() ? "" : " :mythead=\"myThead\"")
+ " :pager=\"" + (programRunModel.IsPager == 1 ? "true" : "false") + "\" :order.sync=\"order\" @load=\"query\"></roadui-table>");
programRunModel.Cols = VueGetCols(programRunModel.ProgramFields);
#endregion
return html.ToString();
}
/// <summary>
/// 获取按钮
/// </summary>
/// <param name="programButtons"></param>
/// <param name="userModel"></param>
/// <param name="menuId">菜单id</param>
/// <returns>(常规按钮,列表按钮)</returns>
public (string, JArray) VueGetButtons(List<Model.rf_programbutton> programButtons, SysUser userModel, string menuId)
{
StringBuilder button_normal = new StringBuilder();
JArray button_list = new JArray();
List<Model.rf_menuuser> menuusers = new MenuUser().GetAll();
Menu menu = new Menu();
SystemButton systemButton = new SystemButton();
string language = Tools.GetCurrentLanguage();
foreach (var button in programButtons.OrderBy(p => p.Sort))
{
//检查权限
if (1 == button.IsValidateShow)
{
if (!menu.HasUseButton(menuId, button.Id, userModel.Id, menuusers))
{
continue;
}
}
string butName = button.ButtonName;
string ico = button.Ico;
string note = button.Note;
if (button.ShowType == 1)//常规按钮
{
button_normal.Append("<roadui-button");
button_normal.Append(" @click.native=\"execScript('" + RoadFlow.Business.Wildcard.Filter(button.ClientScript, userModel).UrlEncode() + "')\"");
if (!ico.IsNullOrWhiteSpace())
{
button_normal.Append(" ico=\"" + ico + "\"");
}
if (!note.IsNullOrWhiteSpace())
{
button_normal.Append(" title=\"" + note + "\"");
}
button_normal.Append(">");
if (!butName.IsNullOrWhiteSpace())
{
button_normal.Append(butName);
}
button_normal.Append("</roadui-button>");
}
else if (button.ShowType == 2)//列表按钮 不替换通配符,列表按钮涉及运行时数据,在运行时替换。
{
button_list.Add(new JObject()
{
{ "title", butName },
{ "ico", ico },
{ "fun", RoadFlow.Business.Wildcard.Filter(button.ClientScript, userModel).UrlEncode()},
{ "note", note },
});
}
}
return (button_normal.ToString(), button_list);
}
/// <summary>
/// 得到VUE查询HTML
/// </summary>
/// <param name="programQueries"></param>
/// <param name="localizer">语言包</param>
/// <returns></returns>
public string VueGetQueryHtml(List<Model.rf_programquery> programQueries, IStringLocalizer localizer = null)
{
if (null == programQueries)
{
return string.Empty;
}
StringBuilder query_controls = new StringBuilder();
foreach (var query in programQueries)
{
string title = query.ShowTitle.IsNullOrWhiteSpace() ? query.Field : query.ShowTitle;
string controlName = query.ControlName.IsNullOrWhiteSpace() ? "ctl_" + query.Id : query.ControlName;
query_controls.Append("<span style=\"margin-right:8px;display:inline-block;word-wrap:break-word;white-space:normal;\">");
query_controls.Append(title + "");
switch (query.InputType)
{
case 0: //文本框
query_controls.Append("<roadui-text");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-text>");
break;
case 1://日期
query_controls.Append("<roadui-calendar");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-calendar>");
break;
case 2://日期范围
query_controls.Append("<roadui-calendar");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-calendar>");
query_controls.Append(localizer == null ? " 至 " : localizer["To"].Value);
query_controls.Append("<roadui-calendar");
query_controls.Append(" v-model='find." + controlName + "1'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-calendar>");
break;
case 3://日期时间
query_controls.Append("<roadui-calendar time='HH:mm'");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-calendar>");
break;
case 4://日期时间范围
query_controls.Append("<roadui-calendar time='HH:mm'");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-calendar>");
query_controls.Append(localizer == null ? " 至 " : localizer["To"].Value);
query_controls.Append("<roadui-calendar time='HH:mm'");
query_controls.Append(" v-model='find." + controlName + "1'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
query_controls.Append("></roadui-calendar>");
break;
case 5://下拉选项
query_controls.Append("<roadui-combox");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
switch (query.DataSource.Value)
{
case 0://字符串表达式
query_controls.Append(" :source=\"{type:1,str:'" + query.DataSourceString.UrlEncode().Replace("'", "\\'") + "'}\"");
break;
case 1://数据字典
query_controls.Append(" :source=\"{type:0,dictId:'" + query.DataSourceString + "',childs:1,valueField:'" + query.DictValue + "'}\"");
break;
case 2://SQL
query_controls.Append(" :source=\"{type:2,connId:'" + query.ConnId + "',sql:'" + query.DataSourceString.UrlEncode().Replace("'", "\\'") + "'}\"");
break;
}
query_controls.Append("></roadui-combox>");
break;
case 6://组织机构选择
query_controls.Append("<roadui-org");
query_controls.Append(" v-model='find." + controlName + "'");
if (!query.ShowStyle.IsNullOrWhiteSpace())
{
query_controls.Append(" style=\"" + query.ShowStyle + "\"");
}
JObject orgJObject = query.OrgAttribute.ToJObject();
if (!orgJObject.IsEmptyJObject())
{
string selectrange = orgJObject.Value<string>("selectrange");//选择范围
string multiple = orgJObject.Value<string>("multiple");//多选
JArray selecttype = orgJObject.Value<JArray>("selecttype");//选择类型
JArray selecttype1 = new JArray();
foreach (JValue j in selecttype)
{
if (!j.ToString().IsNullOrWhiteSpace())
{
selecttype1.Add(j);
}
}
if (selecttype1.Count == 0)//没有设置时为全部可选
{
selecttype1.Add("unit");
selecttype1.Add("dept");
selecttype1.Add("station");
selecttype1.Add("user");
selecttype1.Add("workgroup");
}
query_controls.Append("1".Equals(multiple) ? " multiple" : "");
query_controls.Append(selectrange.IsNullOrWhiteSpace() ? "" : " root='" + selectrange + "'");
query_controls.Append(" :selecttype='" + selecttype1.ToString(Newtonsoft.Json.Formatting.None) + "'");
}
query_controls.Append("></roadui-org>");
break;
}
query_controls.Append("</span>");
}
return query_controls.ToString();
}
/// <summary>
/// 得到列设置
/// </summary>
/// <param name="programFields"></param>
/// <returns></returns>
public JArray VueGetCols(List<Model.rf_programfield> programFields)
{
JArray jArray = new JArray
{
//添加id列
new JObject()
{
{ "name", "Id" },
{ "title", "" },
{ "order", "none" },
{ "width", "" },
{ "key", true },
{ "show", 0 },
}
};
foreach (var field in programFields)
{
JObject jObject = new JObject() {
{ "name", field.Field },
{ "title", field.ShowTitle.IsNullOrEmpty() ? field.Field :field.ShowTitle },
{ "width", field.Width },
{ "align", field.Align },
};
if (field.IsSort.IsNullOrWhiteSpace())
{
jObject.Add("order", "none");
}
if (field.IsShow == 0)
{
jObject.Add("show", 0);
}
if (field.ShowType == 100)//操作列
{
jObject["name"] = "Opation";
jObject["order"] = "none";
jObject.Add("type", "buttons");
jObject.Add("buttons", new JArray());
}
else if (field.ShowType == 1)//序号列
{
jObject["name"] = "RowSerialNumber";
}
else if (field.ShowType.In(8, 9, 10))//显示附件,全部显示,不省略内容, 列加属性noellipsis:true
{
jObject.Add("noellipsis", true);
}
jArray.Add(jObject);
}
return jArray;
}
}
}