diff --git a/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs b/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs index 6f585106..b8ad9c42 100644 --- a/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs +++ b/visualdev/Tnb.VisualDev.Engine/Core/FormDataParsing.cs @@ -1,4 +1,5 @@ -using JNPF.Common.Const; +using System.Text.RegularExpressions; +using JNPF.Common.Const; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos; using JNPF.Common.Extension; @@ -307,7 +308,18 @@ public class FormDataParsing : ITransient else conversionData = data; break; default: - conversionData = data.ToString().ToObject>(); + //modify by ly on 20230327 + var temp = data.ToString(); + Regex re = new Regex("(?<=\").*?(?=\")", RegexOptions.None); + if (!re.IsMatch(temp)) + { + temp = $"\"{data}\""; + } + if (!temp.StartsWith("[") && !temp.EndsWith("]")) + { + temp = $"[{temp}]"; + } + conversionData = temp.ToObject>(); break; } } @@ -1412,7 +1424,7 @@ public class FormDataParsing : ITransient var flowTaskList = await _db.AsSugarClient().Queryable().Where(x => ids.Contains(x.Id)).Select(x => new FlowTaskEntity() { Id = x.Id, Status = x.Status }).ToListAsync(); list.ForEach(item => { - if(flowTaskList.Any(x => x.Id.Equals(item[primaryKey].ToString()))) + if (flowTaskList.Any(x => x.Id.Equals(item[primaryKey].ToString()))) { var flowTask = flowTaskList.Where(x => x.Id.Equals(item[primaryKey].ToString())).FirstOrDefault(); item["flowState"] = flowTask.Status; @@ -1443,6 +1455,7 @@ public class FormDataParsing : ITransient if (!(dataMap[strKey[i]] is null)) { FieldsModel? form = formData.Where(f => f.__vModel__ == strKey[i]).FirstOrDefault(); + if (form != null) { if (form.__vModel__.Contains(form.__config__.jnpfKey + "Field")) dataMap[strKey[i]] = TemplateControlsDataConversion(dataMap[strKey[i]], form); @@ -1876,7 +1889,7 @@ public class FormDataParsing : ITransient _cacheManager.Set(redisName, res.list.ToList(), TimeSpan.FromMinutes(10)); // 缓存10分钟 }); var cacheStr = _cacheManager.Get(redisName); - if(cacheStr.IsNotEmptyOrNull()) relationFormDataList = _cacheManager.Get(redisName).ToObject>>(); + if (cacheStr.IsNotEmptyOrNull()) relationFormDataList = _cacheManager.Get(redisName).ToObject>>(); } var relationFormRealData = relationFormDataList.Where(it => it["id"].Equals(dataMap[key])).FirstOrDefault(); @@ -1976,7 +1989,7 @@ public class FormDataParsing : ITransient }); _databaseService.ChangeDataBase(_databaseService.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName)); var res = _dataInterfaceService.GetResponseByType(form.__config__.propsUrl, 0, string.Empty, new Common.Dtos.VisualDev.VisualDevDataFieldDataListInput() { paramList = form.__config__.templateJson.Adapt>(), pageSize = 500, currentPage = 1 }).Result; - var resList = res.ToObject>>(); + var resList = res.ToObject>>(); if (resList != null && resList.list.Any()) { foreach (object? item in mValue)