using Ewide.Core; using Microsoft.Extensions.Localization; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RoadFlow.Data { public interface IForm : IRoadFlowRepository { /// /// 获取表单运行时HTML /// /// 表单ID /// 预览表单时传 /// 预览表单时传 /// 表单相关属性json public JObject GetRunJObject(string formId, string attrJson = "", string eventJson = ""); /// /// 根据字符串表达式得到选项 /// /// 选项文本1,选项值1;选项文本2,选项值2 /// public string GetOptionsByStringExpression(string expression, string defaultValue = ""); /// /// 查询表单数据 /// /// /// /// /// /// /// /// /// 动态步骤模式时用于获取步骤字段状态 /// public string GetFormData(string connId, string tableName, string primaryKey, string instanceId, string stepId, string flowId, string formatJSON, out string fieldStatusJSON, string groupId = ""); /// /// 得到一个连接SQL的数据表JArray /// /// /// /// (rows, cols) public (JArray, JArray) GetDataTablJArray(string connId, string sql); /// /// 得到子表行数据 /// /// /// 连接id /// 实例id /// public JArray GetSubTableJarray(JObject jObject, string connId, string instanceId); /// /// 得到子表默认值json /// /// /// public JArray GetSubTableDefaultValueJArray(JArray jArray, SysUser userModel = null); /// /// 替换标题表达式 /// /// /// /// /// public string ReplaceTitleExpression(string titleExpression, string tableName, string instanceId, JObject formBody); /// /// 删除一个表单对应的数据 /// /// 表单Id(RF_Form表Id) /// 实例Id /// 设计的应用程序实体(用于判断数据删除后事件) /// 语言包 /// 是否是VUE版本 /// 返回1表单成功,其它为错误信息 public string DeleteFormData(string formId, string instanceId, Model.ProgramRun programRunModel = null, IStringLocalizer localizer = null, bool isVue = false); /// /// 保存表单数据(vue前后分离方式) /// /// 业务表主键值, 错误信息 /// 当前请求 public (string, string) SaveDataVue(JObject args, IStringLocalizer localizer = null); /// /// 查询一页数据 /// /// /// /// /// 当前人员ID /// /// /// /// 状态,默认为查询没有删除的表单 /// public List GetPagerList(out int count, int size, int number, string userId, string name, string type, string order, int status = -1); /// /// 删除表单同时删除应用程序库中记录 /// /// 表单实体 /// 是否彻底删除 0不 1彻底删除 /// public int DeleteAndApplibrary(Model.rf_form form, int delete = 0); /// /// 清除表单运行时HTML缓存 /// /// 表单ID public void ClearRunJObjectCache(string formId); /// /// 根据SQL得到下拉选项(vue项目用) /// /// /// /// /// public JArray GetJArrayOptionsBySQL(string connId, string sql, string value); /// /// 根据URL得到下拉选项 /// /// /// public string GetOptionsByUrl(string url); /// /// 导入表单 /// /// /// 是否需要创建文件,VUE不需要创建文件 /// 返回1表示成功,其它为错误信息 public string ImportForm(string json, bool createFile = true); } }