1、修改了下拉选择获取选项方式为sql时sql加密。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\run\index.vue

修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\FormController.cs

2、修改了文件管理的文件目录判断。
修改文件:\RoadFlow\RoadFlow.Service\File.cs

3、修改了登录token要验证ip,避免token复制到其他地方使用。
修改文件:\RoadFlow.Utility\Token.cs 文件修改比较多,直接覆盖。
修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\HomeController.cs

修改文件:\RoadFlow\RoadFlow.Service\User.cs

修改文件:\RoadFlow.Web\Areas\RoadFlowApi\Controllers\ApiValidateAttribute.cs

4、修改了升级登录验证后移动端无法登录问题。
修改文件:\RoadFlow.Web\Areas\RoadFlowMobileApi\Controllers\HomeController.cs

修改文件:\RoadFlow.Service\User.cs

5、修改了流程设计属性不设置数据连接标识事件无法保存的问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\design\attr.vue

6、修改了附件上传控件change事件没有响应的问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-components\el_selectfile.vue

7、修改了弹出层查看图片过大时溢出的问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\index.vue

8、修改了弹出选择控件清空了值弹出选择是还有选中的问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-components\el_selectdiv.vue

9、修改弹出选择控件按条件查询后选择值有重复问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-components\el_selectdiv.vue

10、修改了自定义表单可以定义字段类型。
修改文件:\RoadFlow.Service\FlowData.cs


自定义表单字段:

11、修改了表单设计流水号设置多个时出现错误的问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\flow\run\index.vue

//判断符合条件的流水号
if (utils.hasKey(form.value.formData, 'serialNumber') && utils.length(form.value.formData['serialNumber']) > 0) {
for (let i = 0; i < form.value.formData['serialNumber'].length; i++) {
let serialNumberi = form.value.formData['serialNumber'][i];
let serialNumberRemove = [];
for (let j = 0; j < serialNumberi['serials'].length; j++) {
let serialData = serialNumberi['serials'][j]['data'];
//如果数据条件为空,表示满足。
if (utils.length(serialData) === 0) {
continue;
}
let fun = new Function('formData', serialData);
let funResult = fun(form.value.formData);
if (!funResult) {
serialNumberRemove.push(j);
}
}
for (let j = 0; j < serialNumberRemove.length; j++) {
delete serialNumberi['serials'][serialNumberRemove[j]]
}
//ADV:移除空元素,保证号码正确
serialNumberi['serials'] = serialNumberi['serials'].filter(item => item !== "");
}
}12、修改了应用程序设计运行时提示propsQueryString未定义的问题。
修改文件:\RoadFlow.WebUIElement\src\roadui-pages\program\run\index.vue

13、修改了应用程序设计查询条件日期范围设置默认值。
修改文件:\RoadFlow.Service\Program.cs

if (queryModel.InputType == 2 || queryModel.InputType == 4)
{
defaultValueJObject.Add(queryModel.ControlName, RoadFlow.Utility.Json.ParseArray(RoadFlow.Service.Wildcard.Replace(queryModel.DefaultValue)));
}
else
{
defaultValueJObject.Add(queryModel.ControlName, RoadFlow.Service.Wildcard.Replace(queryModel.DefaultValue));
}14、修改了流程分支条件判断数据条件支持子表数据作为条件。
修改文件:\RoadFlow.Service\FlowRun.cs

修改整个方法:
/// <summary>
/// 判断连线条件-数据条件是否满足-单个条件是否满足
/// </summary>
/// <param name="formDataJson"></param>
/// <param name="lineDataCondition">连线数据条件实体</param>
/// <returns></returns>
public static bool GetLineIsPass_DataCondition_Single(JObject? formDataJson, RoadFlow.Model.FlowRunModel.LineDataCondition? lineDataCondition)
{
if (lineDataCondition == null || formDataJson == null
|| string.IsNullOrWhiteSpace(lineDataCondition.Field)
|| string.IsNullOrWhiteSpace(lineDataCondition.Condition)
|| string.IsNullOrWhiteSpace(lineDataCondition.Value))
{
return false;
}
//是否是子表求和
bool isSubtableSum = lineDataCondition.Condition.StartsWith("subtablesum", StringComparison.CurrentCultureIgnoreCase);
string fieldType = string.IsNullOrWhiteSpace(lineDataCondition.FieldType) ? "string" : lineDataCondition.FieldType;//字段数据类型
//string formFieldValue = string.Empty;//表单字段数据
string fieldValue = lineDataCondition.Value.Trim();//条件设置的字段值
decimal subtableSumData = 0;//子表求和数据
decimal subtableSumData1 = 0;//条件设置的字段值数字,是子表会给这里赋值,不用比较时去转换。
List<string> formFieldValueList = new();
//如果是子表求和则要循环子表对应的字段数据。
if (isSubtableSum)
{
//如果要比较的值不是数字则直接返回false
if (!fieldValue.IsDecimal(out subtableSumData1))
{
return false;
}
string[] fieldArray = lineDataCondition.Field.SplitToArray(".");
string subtable = fieldArray.Length > 0 ? fieldArray[0] : string.Empty;
string fieldId = fieldArray.Length > 1 ? fieldArray[1] : string.Empty;
if (!string.IsNullOrWhiteSpace(subtable) && !string.IsNullOrWhiteSpace(fieldId))
{
var subtableJArray = formDataJson.GetJArray(subtable);
foreach (var subtableJ in subtableJArray)
{
subtableSumData += subtableJ.GetDecimal(fieldId);
}
}
}
else
{
if (lineDataCondition.Field.Contains('.'))
{
//如果是子表字段,则要取每行字段数据。
string[] fieldArray = lineDataCondition.Field.SplitToArray(".");
string subtable = fieldArray.Length > 0 ? fieldArray[0] : string.Empty;
string fieldId = fieldArray.Length > 1 ? fieldArray[1] : string.Empty;
if (!string.IsNullOrWhiteSpace(subtable) && !string.IsNullOrWhiteSpace(fieldId))
{
var subtableJArray = formDataJson.GetJArray(subtable);
foreach (var subtableJ in subtableJArray)
{
formFieldValueList.Add(subtableJ.GetString(fieldId));
}
}
}
else
{
string dataKey = lineDataCondition.Field;
//如果formDataJson中没有lineDataCondition.Field则查找以字段为key的json数据。兼容自定义表单,自定义表单key直接是字段名。
if (!formDataJson.ContainsKey(dataKey))
{
string[] dataKeyArray = dataKey.SplitToArray("-");
if (dataKeyArray.Length > 1)
{
dataKey = dataKeyArray[1];
}
}
formFieldValueList.Add(formDataJson.GetString(dataKey).Trim());
}
}
switch (lineDataCondition.Condition)
{
case "=":
if (fieldValue.EqualsIgnoreCase("null"))
{
//如果判断值设置的是null,则是判断字段为空。
foreach (string formFieldValue in formFieldValueList)
{
if (string.IsNullOrWhiteSpace(formFieldValue))
{
return true;
}
}
return false;
}
else
{
switch (fieldType)
{
case "string":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.EqualsIgnoreCase(fieldValue))
{
return true;
}
}
return false;
case "number":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDecimal(out decimal formFieldDecimalValue) && fieldValue.IsDecimal(out decimal fieldDecimalValue) && formFieldDecimalValue.CompareTo(fieldDecimalValue) == 0)
{
return true;
}
}
return false;
case "date":
case "datetime":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDateTime(out DateTime formFieldDateTimeValue) && fieldValue.IsDateTime(out DateTime fieldDateTimeValue) && formFieldDateTimeValue.CompareTo(fieldDateTimeValue) == 0)
{
return true;
}
}
return false;
}
}
break;
case "!=":
if (fieldValue.EqualsIgnoreCase("null"))
{
//如果判断值设置的是null,则是判断字段不为空。
foreach (string formFieldValue in formFieldValueList)
{
if (!string.IsNullOrWhiteSpace(formFieldValue))
{
return true;
}
}
return false;
}
else
{
switch (fieldType)
{
case "string":
foreach (string formFieldValue in formFieldValueList)
{
if (!formFieldValue.EqualsIgnoreCase(fieldValue))
{
return true;
}
}
return false;
case "number":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDecimal(out decimal formFieldDecimalValue) && fieldValue.IsDecimal(out decimal fieldDecimalValue) && formFieldDecimalValue.CompareTo(fieldDecimalValue) != 0)
{
return true;
}
}
return false;
case "date":
case "datetime":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDateTime(out DateTime formFieldDateTimeValue) && fieldValue.IsDateTime(out DateTime fieldDateTimeValue) && formFieldDateTimeValue.CompareTo(fieldDateTimeValue) != 0)
{
return true;
}
}
return false;
}
}
break;
case ">":
switch (fieldType)
{
case "string":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.CompareTo(fieldValue) > 0)
{
return true;
}
}
return false;
case "number":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDecimal(out decimal formFieldDecimalValue) && fieldValue.IsDecimal(out decimal fieldDecimalValue) && formFieldDecimalValue.CompareTo(fieldDecimalValue) > 0)
{
return true;
}
}
return false;
case "date":
case "datetime":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDateTime(out DateTime formFieldDateTimeValue) && fieldValue.IsDateTime(out DateTime fieldDateTimeValue) && formFieldDateTimeValue.CompareTo(fieldDateTimeValue) > 0)
{
return true;
}
}
return false;
}
break;
case ">=":
switch (fieldType)
{
case "string":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.CompareTo(fieldValue) >= 0)
{
return true;
}
}
return false;
case "number":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDecimal(out decimal formFieldDecimalValue) && fieldValue.IsDecimal(out decimal fieldDecimalValue) && formFieldDecimalValue.CompareTo(fieldDecimalValue) >= 0)
{
return true;
}
}
return false;
case "date":
case "datetime":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDateTime(out DateTime formFieldDateTimeValue) && fieldValue.IsDateTime(out DateTime fieldDateTimeValue) && formFieldDateTimeValue.CompareTo(fieldDateTimeValue) >= 0)
{
return true;
}
}
return false;
}
break;
case "<":
switch (fieldType)
{
case "string":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.CompareTo(fieldValue) < 0)
{
return true;
}
}
return false;
case "number":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDecimal(out decimal formFieldDecimalValue) && fieldValue.IsDecimal(out decimal fieldDecimalValue) && formFieldDecimalValue.CompareTo(fieldDecimalValue) < 0)
{
return true;
}
}
return false;
case "date":
case "datetime":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDateTime(out DateTime formFieldDateTimeValue) && fieldValue.IsDateTime(out DateTime fieldDateTimeValue) && formFieldDateTimeValue.CompareTo(fieldDateTimeValue) < 0)
{
return true;
}
}
return false;
}
break;
case "<=":
switch (fieldType)
{
case "string":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.CompareTo(fieldValue) <= 0)
{
return true;
}
}
return false;
case "number":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDecimal(out decimal formFieldDecimalValue) && fieldValue.IsDecimal(out decimal fieldDecimalValue) && formFieldDecimalValue.CompareTo(fieldDecimalValue) <= 0)
{
return true;
}
}
return false;
case "date":
case "datetime":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.IsDateTime(out DateTime formFieldDateTimeValue) && fieldValue.IsDateTime(out DateTime fieldDateTimeValue) && formFieldDateTimeValue.CompareTo(fieldDateTimeValue) <= 0)
{
return true;
}
}
return false;
}
break;
case "like":
foreach (string formFieldValue in formFieldValueList)
{
if (formFieldValue.ContainsIgnoreCase(fieldValue))
{
return true;
}
}
return false;
case "notlike":
foreach (string formFieldValue in formFieldValueList)
{
if (!formFieldValue.ContainsIgnoreCase(fieldValue))
{
return true;
}
}
return false;
case "subtablesum="://子表求和等于
return subtableSumData.CompareTo(subtableSumData1) == 0;
case "subtablesum!="://子表求和不等于
return subtableSumData.CompareTo(subtableSumData1) != 0;
case "subtablesum>"://子表求和大于
return subtableSumData.CompareTo(subtableSumData1) > 0;
case "subtablesum>="://子表求和大于等于
return subtableSumData.CompareTo(subtableSumData1) >= 0;
case "subtablesum<"://子表求和小于
return subtableSumData.CompareTo(subtableSumData1) < 0;
case "subtablesum<="://子表求和小于等于
return subtableSumData.CompareTo(subtableSumData1) <= 0;
}
return false;
}15、升级element-plus到2.4.3
npm install element-plus@2.4.3
|
联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2025 重庆天知软件技术有限公司 版权所有
|