diff --git a/OpenAuth.App/Flow/FlowLine.cs b/OpenAuth.App/Flow/FlowLine.cs
index 5f1c5ab3..7f778693 100644
--- a/OpenAuth.App/Flow/FlowLine.cs
+++ b/OpenAuth.App/Flow/FlowLine.cs
@@ -1,98 +1,118 @@
-//
-// Copyright (c) 2019 openauth.net.cn. All rights reserved.
-//
-// www.cnblogs.com/yubaolee
-// 2019-03-05
-// 流程中的连线
-
-using System.Collections.Generic;
-using Infrastructure.Extensions;
-using Newtonsoft.Json.Linq;
-
-namespace OpenAuth.App.Flow
-{
- ///
- /// 流程连线
- ///
- public class FlowLine
- {
- public string id { get; set; }
- public string label { get; set; }
- public string type { get; set; }
- public string from { get; set; }
- public string to { get; set; }
- public string name { get; set; }
- public bool dash { get; set; }
-
- /// 分支条件
- public List Compares { get; set; }
-
- public bool Compare(JObject frmDataJson)
- {
- bool result = true;
- foreach (var compare in Compares)
- {
-
- bool isDecimal = decimal.TryParse(compare.Value, out decimal value);
- var fieldVal = frmDataJson.GetValue(compare.FieldName.ToLower()).ToString();
-
- if (isDecimal) //如果是数字或小数
- {
- decimal frmvalue = decimal.Parse(fieldVal); //表单中填写的值
-
- switch (compare.Operation)
- {
- case DataCompare.Equal:
- result &= compare.Value == fieldVal;
- break;
- case DataCompare.Larger:
- result &= frmvalue > value;
- break;
- case DataCompare.Less:
- result &= frmvalue < value;
- break;
- case DataCompare.LargerEqual:
- result &= frmvalue >= value;
- break;
- case DataCompare.LessEqual:
- result &= frmvalue <= value;
- break;
- }
- }
- else //如果只是字符串,只判断相等
- {
- result &= compare.Value == fieldVal;
- }
-
-
- }
-
- return result;
- }
- }
-
- ///
- /// 分支条件
- ///
- public class DataCompare
- {
- public const string Larger = ">";
- public const string Less = "<";
- public const string LargerEqual = ">=";
- public const string LessEqual = "<=";
- public const string NotEqual = "!=";
- public const string Equal = "=";
-
- /// 操作类型比如大于/等于/小于
- public string Operation { get; set; }
-
- /// form种的字段名称
- public string FieldName { get; set; }
-
- /// 字段类型:"form":为表单中的字段,后期扩展系统表等.
- public string FieldType { get; set; }
-
- /// 比较的值
- public string Value { get; set; }
- }
-}
+//
+// Copyright (c) 2019 openauth.net.cn. All rights reserved.
+//
+// www.cnblogs.com/yubaolee
+// 2019-03-05
+// 流程中的连线
+
+using System.Collections.Generic;
+using System.Linq;
+using Infrastructure;
+using Infrastructure.Extensions;
+using Newtonsoft.Json.Linq;
+
+namespace OpenAuth.App.Flow
+{
+ ///
+ /// 流程连线
+ ///
+ public class FlowLine
+ {
+ public string id { get; set; }
+ public string label { get; set; }
+ public string type { get; set; }
+ public string from { get; set; }
+ public string to { get; set; }
+ public string name { get; set; }
+ public bool dash { get; set; }
+
+ /// 分支条件
+ public List Compares { get; set; }
+
+ public bool Compare(JObject frmDataJson)
+ {
+ bool result = true;
+ foreach (var compare in Compares)
+ {
+
+ bool isDecimal = decimal.TryParse(compare.Value, out decimal value);
+ var fieldVal = frmDataJson.GetValue(compare.FieldName.ToLower()).ToString();
+
+ if (isDecimal) //如果是数字或小数
+ {
+ decimal frmvalue = 0;
+ if (fieldVal.Contains("["))//表单中的数据包含[],为数组,一般是checkbox的值
+ {
+ var tempvals = JsonHelper.Instance.Deserialize>(fieldVal);
+ frmvalue = tempvals.Max();
+ }
+ else
+ {
+ frmvalue = decimal.Parse(fieldVal); //表单中填写的值
+ }
+
+ switch (compare.Operation)
+ {
+ case DataCompare.Equal:
+ result &= compare.Value == fieldVal;
+ break;
+ case DataCompare.Larger:
+ result &= frmvalue > value;
+ break;
+ case DataCompare.Less:
+ result &= frmvalue < value;
+ break;
+ case DataCompare.LargerEqual:
+ result &= frmvalue >= value;
+ break;
+ case DataCompare.LessEqual:
+ result &= frmvalue <= value;
+ break;
+ }
+ }
+ else //如果只是字符串,只判断相等
+ {
+ if (fieldVal.Contains("["))//表单中的数据包含[],为数组,一般是checkbox的值
+ {
+ var tempvals = JsonHelper.Instance.Deserialize>(fieldVal);
+ result &= tempvals.Contains(compare.Value);
+ }
+ else
+ {
+ result &= compare.Value == fieldVal;
+ }
+
+ }
+
+
+ }
+
+ return result;
+ }
+ }
+
+ ///
+ /// 分支条件
+ ///
+ public class DataCompare
+ {
+ public const string Larger = ">";
+ public const string Less = "<";
+ public const string LargerEqual = ">=";
+ public const string LessEqual = "<=";
+ public const string NotEqual = "!=";
+ public const string Equal = "=";
+
+ /// 操作类型比如大于/等于/小于
+ public string Operation { get; set; }
+
+ /// form种的字段名称
+ public string FieldName { get; set; }
+
+ /// 字段类型:"form":为表单中的字段,后期扩展系统表等.
+ public string FieldType { get; set; }
+
+ /// 比较的值
+ public string Value { get; set; }
+ }
+}