From e7fea323bd85bac4b7123e9856971fdc6faa89d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?= <188633308@qq.com> Date: Thu, 20 May 2021 17:49:52 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AD=97=E5=85=B8=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=89=A9=E5=B1=95=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Entity/SysDictData.cs | 3 ++ Api/Ewide.Core/Ewide.Core.xml | 5 +++ .../Service/Dict/Dto/DictDataInput.cs | 5 +++ .../Service/Dict/SysDictDataService.cs | 41 +++++++++++++++---- Web/src/pages/system/dict/dictdata/index.vue | 10 +++++ 5 files changed, 56 insertions(+), 8 deletions(-) diff --git a/Api/Ewide.Core/Entity/SysDictData.cs b/Api/Ewide.Core/Entity/SysDictData.cs index c1ec86c..cd4d698 100644 --- a/Api/Ewide.Core/Entity/SysDictData.cs +++ b/Api/Ewide.Core/Entity/SysDictData.cs @@ -30,6 +30,9 @@ namespace Ewide.Core [Comment("编码")] public string Code { get; set; } + [Comment("扩展编码,以json形式存储")] + public string ExtCode { get; set; } + /// /// 排序 /// diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml index 6d76c63..fcb21db 100644 --- a/Api/Ewide.Core/Ewide.Core.xml +++ b/Api/Ewide.Core/Ewide.Core.xml @@ -3889,6 +3889,11 @@ 编码 + + + 扩展编码 + + 排序 diff --git a/Api/Ewide.Core/Service/Dict/Dto/DictDataInput.cs b/Api/Ewide.Core/Service/Dict/Dto/DictDataInput.cs index c0b2191..fbc092b 100644 --- a/Api/Ewide.Core/Service/Dict/Dto/DictDataInput.cs +++ b/Api/Ewide.Core/Service/Dict/Dto/DictDataInput.cs @@ -23,6 +23,11 @@ namespace Ewide.Core.Service /// public virtual string Code { get; set; } + /// + /// 扩展编码 + /// + public virtual string ExtCode { get; set; } + /// /// 排序 /// diff --git a/Api/Ewide.Core/Service/Dict/SysDictDataService.cs b/Api/Ewide.Core/Service/Dict/SysDictDataService.cs index d7c7568..8e756ad 100644 --- a/Api/Ewide.Core/Service/Dict/SysDictDataService.cs +++ b/Api/Ewide.Core/Service/Dict/SysDictDataService.cs @@ -71,7 +71,10 @@ namespace Ewide.Core.Service if (isExist) throw Oops.Oh(ErrorCode.D3003); //datatype 的code 为null 则不能添加 var dataType = _sysDictTypeRep.Where(s => s.Id == input.TypeId).FirstOrDefault(); - if (string.IsNullOrEmpty(dataType.Code)) throw new Exception("此处类型不能添加数据"); + if (string.IsNullOrEmpty(dataType.Code)) throw Oops.Oh("此处类型不能添加数据"); + + input.ExtCode = CheckExtCode(input.ExtCode); + var dictData = input.Adapt(); await _sysDictDataRep.InsertAsync(dictData); } @@ -119,6 +122,8 @@ namespace Ewide.Core.Service isExist = await _sysDictDataRep.AnyAsync(u => (u.Value == input.Value || u.Code == input.Code) && u.TypeId == input.TypeId && u.Id != input.Id, false); if (isExist) throw Oops.Oh(ErrorCode.D3003); + input.ExtCode = CheckExtCode(input.ExtCode); + var dictData = input.Adapt(); await _sysDictDataRep.UpdateAsync(dictData, ignoreNullValues: true); } @@ -159,13 +164,14 @@ namespace Ewide.Core.Service public async Task GetDictDataListByDictTypeId(string dictTypeId) { return await _sysDictDataRep.DetachedEntities.Where(u => u.SysDictType.Id == dictTypeId) - .Where(u => u.Status != CommonStatus.DELETED).OrderBy(u => u.Sort) - .Select(u => new - { - u.Code, - u.Value, - u.Remark - }).ToListAsync(); + .Where(u => u.Status != CommonStatus.DELETED).OrderBy(u => u.Sort) + .Select(u => new + { + u.Code, + u.Value, + ExtCode = String.IsNullOrEmpty(u.ExtCode) ? null : Newtonsoft.Json.JsonConvert.DeserializeObject(u.ExtCode), + u.Remark + }).ToListAsync(); } [NonAction] @@ -183,6 +189,7 @@ namespace Ewide.Core.Service { u.Code, u.Value, + ExtCode = String.IsNullOrEmpty(u.ExtCode) ? null : Newtonsoft.Json.JsonConvert.DeserializeObject(u.ExtCode), u.Remark })); } @@ -202,5 +209,23 @@ namespace Ewide.Core.Service u.Delete(); }); } + + [NonAction] + private string CheckExtCode(string extCode) + { + if (!string.IsNullOrEmpty(extCode)) + { + try + { + if (extCode.StartsWith('{') && extCode.EndsWith('}')) + { + return Newtonsoft.Json.JsonConvert.SerializeObject(Newtonsoft.Json.JsonConvert.DeserializeObject(extCode)); + } + } + catch { } + } + + return null; + } } } diff --git a/Web/src/pages/system/dict/dictdata/index.vue b/Web/src/pages/system/dict/dictdata/index.vue index 25be091..6b2b7bb 100644 --- a/Web/src/pages/system/dict/dictdata/index.vue +++ b/Web/src/pages/system/dict/dictdata/index.vue @@ -28,6 +28,9 @@ + + +