From 358e8f30447f8ba05af42b66d45ddf1a93878b6d Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周二, 06 5月 2025 17:38:09 +0800 Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo --- HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx | 646 +++++++------- HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs | 18 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs | 77 + HIAWms/web/src/components/DyForm/DyForm.tsx | 2 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs | 30 HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs | 11 HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx | 553 ++++++------ Weben_CMS专用代码生成器/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs | 1 Weben_CMS专用代码生成器/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass_module模板.txt | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj | 10 CommonDLL/CmsQueryExtensions.dll | 0 HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs | 22 Weben_CMS专用代码生成器/Code/Templete/Entity/Dto模板.txt | 1 Weben_CMS专用代码生成器/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs | 4 HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx | 665 +++++++------- Weben_CMS专用代码生成器/Code/Model/ColumnModell.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs | 350 ++++---- HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs | 1 HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss | 2 Weben_CMS专用代码生成器/Code/Templete/AppService/AppService模板.txt | 2 Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs | 8 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs | 53 + 24 files changed, 1,318 insertions(+), 1,146 deletions(-) diff --git a/CommonDLL/CmsQueryExtensions.dll b/CommonDLL/CmsQueryExtensions.dll index 0bf4b5e..479f29e 100644 --- a/CommonDLL/CmsQueryExtensions.dll +++ b/CommonDLL/CmsQueryExtensions.dll Binary files differ diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs index 95618f3..4434b11 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs @@ -1,4 +1,5 @@ using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CmsQueryExtensions; using Volo.Abp.Application.Dtos; using Volo.Abp.Domain.Entities; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs index 1b07245..a511331 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockRecord/GetWmsInOutStockRecordInput.cs @@ -1,229 +1,229 @@ -using CmsQueryExtensions.Extension; -using Volo.Abp.Application.Dtos; - -namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; - +using CmsQueryExtensions.Extension; +using Volo.Abp.Application.Dtos; + +namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord; + /// <summary> /// 鍑哄叆搴撹褰曡〃鏌ヨ鍙傛暟 /// </summary> -public class GetWmsInOutStockRecordInput : ExtensiblePagedAndSortedResultRequestDto -{ - +public class GetWmsInOutStockRecordInput : ExtensiblePagedAndSortedResultRequestDto +{ + #region 鍏抽敭瀛楁煡璇� - + /// <summary> /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛� /// </summary> - public string searchVal { get; set; } - + public string searchVal { get; set; } + /// <summary> /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級 /// </summary> - public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - + public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 /// </summary> - [NoAutoQuery] - public string str_searchFormInputAttrs { get; set; } + [NoAutoQuery] + public string str_searchFormInputAttrs { get; set; } /// <summary> /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 /// </summary> - public List<string> searchFormInputAttrs - { - get - { - if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) - { - return str_searchFormInputAttrs.Split(',').ToList(); - } - return new List<string>(); - } - } - - #endregion - - /// <summary> - /// 鍗曟嵁缂栧彿 - /// </summary> - public string OrderNo { get; set; } + public List<string> searchFormInputAttrs + { + get + { + if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) + { + return str_searchFormInputAttrs.Split(',').ToList(); + } + return new List<string>(); + } + } - /// <summary> - /// 鍗曟嵁缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum OrderNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + #endregion - /// <summary> - /// 鐗╂枡鍚嶇О - /// </summary> - public string MaterialName { get; set; } + /// <summary> + /// 鍗曟嵁缂栧彿 + /// </summary> + public string OrderNo { get; set; } - /// <summary> - /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鍗曟嵁缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum OrderNo_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鐗╂枡浠跺彿 - /// </summary> - public string MaterialNo { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string MaterialName { get; set; } - /// <summary> - /// 鐗╂枡浠跺彿-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鎿嶄綔绫诲瀷 - /// </summary> - public int? StockType { get; set; } + /// <summary> + /// 鐗╂枡浠跺彿 + /// </summary> + public string MaterialNo { get; set; } - /// <summary> - /// 鎿嶄綔绫诲瀷-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum StockType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// 鐗╂枡浠跺彿-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialNo_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 瀹瑰櫒缂栧彿 - /// </summary> - public string ContainerNo { get; set; } + /// <summary> + /// 鎿嶄綔绫诲瀷 + /// </summary> + public int? StockType { get; set; } - /// <summary> - /// 瀹瑰櫒缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鎿嶄綔绫诲瀷-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum StockType_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// 鏈哄瀷 - /// </summary> - public string MaterialModel { get; set; } + /// <summary> + /// 瀹瑰櫒缂栧彿 + /// </summary> + public string ContainerNo { get; set; } - /// <summary> - /// 鏈哄瀷-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialModel_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 瀹瑰櫒缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ContainerNo_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鎿嶄綔鏃堕棿 - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> OperateTime { get; set; } + /// <summary> + /// 鏈哄瀷 + /// </summary> + public string MaterialModel { get; set; } + + /// <summary> + /// 鏈哄瀷-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialModel_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鎿嶄綔鏃堕棿 + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> OperateTime { get; set; } - /// <summary> - /// 澶囨敞 - /// </summary> - public string Remark { get; set; } + /// <summary> + /// 澶囨敞 + /// </summary> + public string Remark { get; set; } - /// <summary> - /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鐗╂枡ID - /// </summary> - public string MaterialId { get; set; } + /// <summary> + /// 鐗╂枡ID + /// </summary> + public string MaterialId { get; set; } - /// <summary> - /// 鐗╂枡ID-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum MaterialId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鐗╂枡ID-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum MaterialId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 浠诲姟鍙� - /// </summary> - public string TaskNo { get; set; } + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string TaskNo { get; set; } - /// <summary> - /// 浠诲姟鍙�-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum TaskNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 浠诲姟鍙�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum TaskNo_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 璧峰搴撲綅 - /// </summary> - public string SourcePlace { get; set; } + /// <summary> + /// 璧峰搴撲綅 + /// </summary> + public string SourcePlace { get; set; } - /// <summary> - /// 璧峰搴撲綅-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum SourcePlace_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 璧峰搴撲綅-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum SourcePlace_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// 鐩爣搴撲綅 - /// </summary> - public string ToPlace { get; set; } + /// <summary> + /// 鐩爣搴撲綅 + /// </summary> + public string ToPlace { get; set; } - /// <summary> - /// 鐩爣搴撲綅-鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum ToPlace_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// 鐩爣搴撲綅-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ToPlace_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> CreationTime { get; set; } + /// <summary> + /// + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> CreationTime { get; set; } - /// <summary> - /// - /// </summary> - public string CreatorId { get; set; } + /// <summary> + /// + /// </summary> + public string CreatorId { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> LastModificationTime { get; set; } + /// <summary> + /// + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> LastModificationTime { get; set; } - /// <summary> - /// - /// </summary> - public string LastModifierId { get; set; } + /// <summary> + /// + /// </summary> + public string LastModifierId { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - public bool? IsDeleted { get; set; } + /// <summary> + /// + /// </summary> + public bool? IsDeleted { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.绮惧噯鏌ヨ; - /// <summary> - /// - /// </summary> - public string DeleterId { get; set; } + /// <summary> + /// + /// </summary> + public string DeleterId { get; set; } - /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� - /// </summary> - public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + /// <summary> + /// -鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; - /// <summary> - /// - /// </summary> - //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� - [HighSearchRangeAttribute] - public List<string> DeletionTime { get; set; } + /// <summary> + /// + /// </summary> + //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� + [HighSearchRangeAttribute] + public List<string> DeletionTime { get; set; } - -} + +} diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs index 6c9b198..47a7daa 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs @@ -1,6 +1,7 @@ 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; using CMS.Plugin.HIAWms.Domain.Shared.Util; +using CmsQueryExtensions; using System; using System.Collections.Generic; using System.Linq; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs index eee9e2f..8fdf80d 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs @@ -1,10 +1,10 @@ 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.Shared.Util; using CMS.Plugin.HIAWms.Domain.WmsAreas; using CMS.Plugin.HIAWms.Domain.WmsPlaces; using CMS.Plugin.HIAWms.Domain.WmsStores; +using CmsQueryExtensions; using System; using System.Collections.Generic; using System.Linq; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs index 7aace56..98eb755 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs @@ -1,21 +1,19 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; -using CMS.Plugin.HIAWms.Domain.Shared; using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialStocks; +using CMS.Plugin.HIAWms.Domain.WmsAreas; +using CMS.Plugin.HIAWms.Domain.WmsContainers; +using CMS.Plugin.HIAWms.Domain.WmsMaterials; +using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; +using CMS.Plugin.HIAWms.Domain.WmsPlaces; +using CmsQueryExtensions; +using Microsoft.Extensions.DependencyInjection; +using System.Text.Json; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.ObjectExtending; -using CMS.Plugin.HIAWms.Domain.Shared.Util; -using CMS.Plugin.HIAWms.Domain.WmsMaterials; -using CMS.Plugin.HIAWms.Domain.WmsContainers; -using CMS.Plugin.HIAWms.Domain.WmsPlaces; -using CMS.Plugin.HIAWms.Domain.WmsAreas; using Volo.Abp.Uow; -using Microsoft.Extensions.DependencyInjection; -using NPOI.POIFS.Storage; -using System.Text.Json; namespace CMS.Plugin.HIAWms.Application.Implements; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj index c95efe0..ebf1596 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj @@ -21,8 +21,18 @@ </ItemGroup> <ItemGroup> + <Compile Remove="Util\EnumHelper.cs" /> + <Compile Remove="Util\ExportHelper.cs" /> + <Compile Remove="Util\GetEnumDescriptionUtil.cs" /> + </ItemGroup> + + <ItemGroup> <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="6.0.20" /> </ItemGroup> + <ItemGroup> + <Folder Include="Util\" /> + </ItemGroup> + </Project> diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs index 74e48fe..bf8d7ba 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs @@ -14,15 +14,16 @@ public enum YesNoEnum { /// <summary> + /// 鍚� + /// </summary> + [Description("鍚�")] + N = 0, + + /// <summary> /// 鏄� /// </summary> [Description("鏄�")] Y = 1, - /// <summary> - /// 鍚� - /// </summary> - [Description("鍚�")] - N = 2 } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs index b0f8e3b..71f2537 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs @@ -12,6 +12,14 @@ /// </summary> public static class ExportHelper { + + + // 鎵归噺杞崲鏂规硶 + public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) + { + return list.Select(ConvertToExportData).ToList(); + } + // 閫氱敤杞崲鏂规硶锛堝吋瀹� Func<T, Dictionary<string, object>>锛� public static Dictionary<string, object> ConvertToExportData<T>(T entity) { @@ -24,12 +32,6 @@ dict[prop.Name] = FormatValue(value); } return dict; - } - - // 鎵归噺杞崲鏂规硶 - public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) - { - return list.Select(ConvertToExportData).ToList(); } private static object FormatValue(object value) @@ -47,13 +49,5 @@ return value; } - private static string GetEnumDescription(Enum value) - { - var fieldInfo = value.GetType().GetField(value.ToString()); - var description = fieldInfo? - .GetCustomAttributes(typeof(DescriptionAttribute), false) - .FirstOrDefault() as DescriptionAttribute; - return description?.Description ?? value.ToString(); - } } } diff --git a/HIAWms/web/src/components/DyForm/DyForm.tsx b/HIAWms/web/src/components/DyForm/DyForm.tsx index 1468161..98a4cfc 100644 --- a/HIAWms/web/src/components/DyForm/DyForm.tsx +++ b/HIAWms/web/src/components/DyForm/DyForm.tsx @@ -50,7 +50,7 @@ }, labelPosition: { type: String, - default: 'left', + default: 'right', }, formData: { type: Object as PropType<{ [key: string]: any }>, diff --git a/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx b/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx index 4e6176f..275c9ad 100644 --- a/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx @@ -1,275 +1,278 @@ -import { - ref, - onMounted, - reactive, - computed, - Ref, - watch, - SetupContext, - h, -} from 'vue' -import { injectModel } from '@/libs/Provider/Provider' -import { WmsInOutStockRecordDrawer } from '../Models/WmsInOutStockRecordDrawer' -import { ElMessage } from 'element-plus' -import isEqual from 'lodash/isEqual' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' -import { cloneDeep } from 'lodash' - -export const useWmsInOutStockRecordDrawer = (props: any, ctx?: any) => { - const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>('wmsInOutStockRecordDrawer') - /** - * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 - */ - const initiateData: Ref<Record<string, any>> = ref({}) - const formData = ref<Record<string, any>>({}) - // ref - const formRef = ref() - - const disabled = ref(false) - - const current = computed(() => { - return props.row || null - }) - - const inputNumber = (attrs) => { - return ( - <el-input-number - min="1" - step="1" - precision="0" - {...attrs} - ></el-input-number> - ) - } - - const visible = computed({ - get() { - return props.modelValue - }, - set(val) { - ctx.emit('update:modelValue', val) - }, - }) - /** - * 娣诲姞鐨刦orm瀛楁 - */ - const formItems = reactive([ - { - label: '鍗曟嵁缂栧彿', - prop: 'orderNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ崟鎹紪鍙�', - rules: [{required: true, message: '鍗曟嵁缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '鐗╂枡鍚嶇О', - prop: 'materialName', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', - }, - { - label: '鐗╂枡浠跺彿', - prop: 'materialNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�', - rules: [{required: true, message: '鐗╂枡浠跺彿涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '鎿嶄綔绫诲瀷', - prop: 'stockType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ搷浣滅被鍨�', - rules: [{required: true, message: '鎿嶄綔绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '瀹瑰櫒缂栧彿', - prop: 'containerNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�', - }, - { - label: '鏈哄瀷', - prop: 'materialModel', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ満鍨�', - }, - { - label: '鎿嶄綔鏃堕棿', - prop: 'operateTime', - type: 'datetimerange', - el: 'date-picker', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ搷浣滄椂闂�', - }, - { - label: '澶囨敞', - prop: 'remark', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ娉�', - }, - { - label: '鐗╂枡ID', - prop: 'materialId', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ墿鏂橧D', - rules: [{required: true, message: '鐗╂枡ID涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '浠诲姟鍙�', - prop: 'taskNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔″彿', - rules: [{required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '璧峰搴撲綅', - prop: 'sourcePlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', - }, - { - label: '鐩爣搴撲綅', - prop: 'toPlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', - }, - ]) - /** - * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� - */ - const checkIsEqualObject = () => { - const data = { - formData: formData.value, - } - const check = isEqual(initiateData.value, data) - return check - } - - const onClose = (done: () => void) => { - if (visible.value) { - if (checkIsEqualObject()) { - visible.value = false - done && done() - } else { - ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') - .then(() => { - onConfirm() - }) - .catch(() => { - visible.value = false - done && done() - }) - } - } - } - /** - * 淇濆瓨 - */ - const onConfirm = async () => { - await formRef.value?.validate() - const data = { - orderNo: formData.value.orderNo, -materialName: formData.value.materialName, -materialNo: formData.value.materialNo, -stockType: formData.value.stockType, -containerNo: formData.value.containerNo, -materialModel: formData.value.materialModel, -operateTime: formData.value.operateTime, -remark: formData.value.remark, -materialId: formData.value.materialId, -taskNo: formData.value.taskNo, -sourcePlace: formData.value.sourcePlace, -toPlace: formData.value.toPlace, - } - if (!current.value) { - await wmsInOutStockRecordDrawer.addWmsInOutStockRecord(data) - } else { - const id = current.value.id - await wmsInOutStockRecordDrawer.updateWmsInOutStockRecord(id, data) - } - ElMessage.success('淇濆瓨鎴愬姛') - ctx.emit('confirm') - } - - const updateCheckData = () => { - initiateData.value = { - formData: { - ...formData.value, - }, - } - } - const updateFormItemOptions = (propName: string, enumData: any[]) => { - const item = formItems.find((item) => item.prop === propName) - if (item && enumData) { - item.options = enumData.map((item) => ({ - label: item.description, - value: item.value, - })) - } - } - /** - * 閫氱敤鏌ヨ鏋氫妇 - */ - const commonQueryEnumForFrom = async () => { - const stockTypeEnumEnum = await wmsInOutStockRecordDrawer.getWmsEnumData({ - EnumName: 'StockTypeEnum', -}) -updateFormItemOptions('stockType', stockTypeEnumEnum) - - } - commonQueryEnumForFrom() - /** - * 寮圭獥鎵撳紑鑾峰彇璇︽儏 - */ - const onOpen = async () => { - if (current.value) { - const res = await wmsInOutStockRecordDrawer.getWmsInOutStockRecordDetail(current.value) - - formData.value = { - orderNo: res.orderNo, -materialName: res.materialName, -materialNo: res.materialNo, -stockType: res.stockType, -containerNo: res.containerNo, -materialModel: res.materialModel, -operateTime: res.operateTime, -remark: res.remark, -materialId: res.materialId, -taskNo: res.taskNo, -sourcePlace: res.sourcePlace, -toPlace: res.toPlace, - id: res.id, - } - disabled.value = true - updateCheckData() - } else { - formData.value = {} - - disabled.value = false - updateCheckData() - } - } - - watch(() => current.value, onOpen) - - return { - formItems, - formData, - visible, - formRef, - onOpen, - onClose, - onConfirm, - } -} +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsInOutStockRecordDrawer } from '../Models/WmsInOutStockRecordDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsInOutStockRecordDrawer = (props: any, ctx?: any) => { + const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>( + 'wmsInOutStockRecordDrawer' + ) + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + const initiateData: Ref<Record<string, any>> = ref({}) + const formData = ref<Record<string, any>>({}) + // ref + const formRef = ref() + + const disabled = ref(false) + + const current = computed(() => { + return props.row || null + }) + + const inputNumber = (attrs) => { + return ( + <el-input-number + min="1" + step="1" + precision="0" + {...attrs} + ></el-input-number> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '鍗曟嵁缂栧彿', + prop: 'orderNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ崟鎹紪鍙�', + rules: [{ required: true, message: '鍗曟嵁缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鐗╂枡鍚嶇О', + prop: 'materialName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', + }, + { + label: '鐗╂枡浠跺彿', + prop: 'materialNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�', + rules: [{ required: true, message: '鐗╂枡浠跺彿涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鎿嶄綔绫诲瀷', + prop: 'stockType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ搷浣滅被鍨�', + rules: [{ required: true, message: '鎿嶄綔绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '瀹瑰櫒缂栧彿', + prop: 'containerNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�', + }, + { + label: '鏈哄瀷', + prop: 'materialModel', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ満鍨�', + }, + { + label: '鎿嶄綔鏃堕棿', + prop: 'operateTime', + type: 'datetimerange', + el: 'date-picker', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ搷浣滄椂闂�', + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + }, + { + label: '鐗╂枡ID', + prop: 'materialId', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂橧D', + rules: [{ required: true, message: '鐗╂枡ID涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '浠诲姟鍙�', + prop: 'taskNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔″彿', + rules: [{ required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '璧峰搴撲綅', + prop: 'sourcePlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', + }, + { + label: '鐩爣搴撲綅', + prop: 'toPlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + + const onClose = (done: () => void) => { + if (visible.value) { + if (checkIsEqualObject()) { + visible.value = false + done && done() + } else { + ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') + .then(() => { + onConfirm() + }) + .catch(() => { + visible.value = false + done && done() + }) + } + } + } + /** + * 淇濆瓨 + */ + const onConfirm = async () => { + await formRef.value?.validate() + const data = { + orderNo: formData.value.orderNo, + materialName: formData.value.materialName, + materialNo: formData.value.materialNo, + stockType: formData.value.stockType, + containerNo: formData.value.containerNo, + materialModel: formData.value.materialModel, + operateTime: formData.value.operateTime, + remark: formData.value.remark, + materialId: formData.value.materialId, + taskNo: formData.value.taskNo, + sourcePlace: formData.value.sourcePlace, + toPlace: formData.value.toPlace, + } + if (!current.value) { + await wmsInOutStockRecordDrawer.addWmsInOutStockRecord(data) + } else { + const id = current.value.id + await wmsInOutStockRecordDrawer.updateWmsInOutStockRecord(id, data) + } + ElMessage.success('淇濆瓨鎴愬姛') + ctx.emit('confirm') + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const stockTypeEnumEnum = await wmsInOutStockRecordDrawer.getWmsEnumData({ + EnumName: 'StockTypeEnum', + }) + updateFormItemOptions('stockType', stockTypeEnumEnum) + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await wmsInOutStockRecordDrawer.getWmsInOutStockRecordDetail( + current.value + ) + + formData.value = { + orderNo: res.orderNo, + materialName: res.materialName, + materialNo: res.materialNo, + stockType: res.stockType, + containerNo: res.containerNo, + materialModel: res.materialModel, + operateTime: res.operateTime, + remark: res.remark, + materialId: res.materialId, + taskNo: res.taskNo, + sourcePlace: res.sourcePlace, + toPlace: res.toPlace, + id: res.id, + } + disabled.value = true + updateCheckData() + } else { + formData.value = {} + + disabled.value = false + updateCheckData() + } + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirm, + } +} diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss index 0f0933b..e7aa407 100644 --- a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss +++ b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss @@ -15,7 +15,7 @@ .header { margin-bottom: 12px; display: flex; - justify-content: flex-start; + justify-content: flex-start !important; align-items: center; } } diff --git a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx index 959fe29..386618d 100644 --- a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx @@ -1,332 +1,333 @@ -import { - ref, - onMounted, - reactive, - computed, - Ref, - watch, - SetupContext, - h, -} from 'vue' -import { injectModel } from '@/libs/Provider/Provider' -import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' -import { ElMessage } from 'element-plus' -import isEqual from 'lodash/isEqual' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' -import { cloneDeep } from 'lodash' - -export const useWmsTaskDrawer = (props: any, ctx?: any) => { - const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') - /** - * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 - */ - const initiateData: Ref<Record<string, any>> = ref({}) - const formData = ref<Record<string, any>>({}) - // ref - const formRef = ref() - - const disabled = ref(false) - - const current = computed(() => { - return props.row || null - }) - - const inputNumber = (attrs) => { - return ( - <el-input-number - min="1" - step="1" - precision="0" - {...attrs} - ></el-input-number> - ) - } - - const visible = computed({ - get() { - return props.modelValue - }, - set(val) { - ctx.emit('update:modelValue', val) - }, - }) - /** - * 娣诲姞鐨刦orm瀛楁 - */ - const formItems = reactive([ - { - label: '宸烽亾', - prop: 'aisle', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ贩閬�', - }, - { - label: '鎵樼洏缂栧彿', - prop: 'containerNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', - }, - { - label: '鍫嗗灈鏈篒D', - prop: 'dodeviceId', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ爢鍨涙満ID', - }, - { - label: '璁惧绫诲瀷', - prop: 'dodevicetype', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ澶囩被鍨�', - rules: [{required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛', - prop: 'isNextTask', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', - }, - { - label: 'WCS鏄惁鍙互璇诲彇', - prop: 'isRead', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', - rules: [{required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '鍙彉鍙橀噺1', - prop: 'mutableParam1', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', - }, - { - label: '鍙彉鍙橀噺2', - prop: 'mutableParam2', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', - }, - { - label: '鍙彉鍙橀噺3', - prop: 'mutableParam3', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', - }, - { - label: '瀛愪换鍔$被鍨�', - prop: 'sonTaskType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', - }, - { - label: '鏉ユ簮鍗曟嵁鍙�', - prop: 'sourceOrderNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', - }, - { - label: '璧峰搴撲綅', - prop: 'sourcePlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', - }, - { - label: '璁惧浠诲姟鐘舵��', - prop: 'taskDodeviceStatus', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', - rules: [{required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟绛夌骇', - prop: 'taskLevel', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', - rules: [{required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '浠诲姟鍙�', - prop: 'taskNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔″彿', - rules: [{required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟鐘舵��', - prop: 'taskStatus', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', - rules: [{required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟绫诲瀷', - prop: 'taskType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', - rules: [{required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '鐩爣搴撲綅', - prop: 'toPlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', - }, - ]) - /** - * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� - */ - const checkIsEqualObject = () => { - const data = { - formData: formData.value, - } - const check = isEqual(initiateData.value, data) - return check - } - - const onClose = (done: () => void) => { - if (visible.value) { - if (checkIsEqualObject()) { - visible.value = false - done && done() - } else { - ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') - .then(() => { - onConfirm() - }) - .catch(() => { - visible.value = false - done && done() - }) - } - } - } - /** - * 淇濆瓨 - */ - const onConfirm = async () => { - await formRef.value?.validate() - const data = { - aisle: formData.value.aisle, -containerNo: formData.value.containerNo, -dodeviceId: formData.value.dodeviceId, -dodevicetype: formData.value.dodevicetype, -isNextTask: formData.value.isNextTask, -isRead: formData.value.isRead, -mutableParam1: formData.value.mutableParam1, -mutableParam2: formData.value.mutableParam2, -mutableParam3: formData.value.mutableParam3, -sonTaskType: formData.value.sonTaskType, -sourceOrderNo: formData.value.sourceOrderNo, -sourcePlace: formData.value.sourcePlace, -taskDodeviceStatus: formData.value.taskDodeviceStatus, -taskLevel: formData.value.taskLevel, -taskNo: formData.value.taskNo, -taskStatus: formData.value.taskStatus, -taskType: formData.value.taskType, -toPlace: formData.value.toPlace, - } - if (!current.value) { - await wmsTaskDrawer.addWmsTask(data) - } else { - const id = current.value.id - await wmsTaskDrawer.updateWmsTask(id, data) - } - ElMessage.success('淇濆瓨鎴愬姛') - ctx.emit('confirm') - } - - const updateCheckData = () => { - initiateData.value = { - formData: { - ...formData.value, - }, - } - } - const updateFormItemOptions = (propName: string, enumData: any[]) => { - const item = formItems.find((item) => item.prop === propName) - if (item && enumData) { - item.options = enumData.map((item) => ({ - label: item.description, - value: item.value, - })) - } - } - /** - * 閫氱敤鏌ヨ鏋氫妇 - */ - const commonQueryEnumForFrom = async () => { - const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'TaskTypeEnum', -}) -updateFormItemOptions('taskType', taskTypeEnumEnum) -const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'WmsTaskStatus', -}) -updateFormItemOptions('taskStatus', wmsTaskStatusEnum) -const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'SonTaskTypeEnum', -}) -updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) - - } - commonQueryEnumForFrom() - /** - * 寮圭獥鎵撳紑鑾峰彇璇︽儏 - */ - const onOpen = async () => { - if (current.value) { - const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) - - formData.value = { - aisle: res.aisle, -containerNo: res.containerNo, -dodeviceId: res.dodeviceId, -dodevicetype: res.dodevicetype, -isNextTask: res.isNextTask, -isRead: res.isRead, -mutableParam1: res.mutableParam1, -mutableParam2: res.mutableParam2, -mutableParam3: res.mutableParam3, -sonTaskType: res.sonTaskType, -sourceOrderNo: res.sourceOrderNo, -sourcePlace: res.sourcePlace, -taskDodeviceStatus: res.taskDodeviceStatus, -taskLevel: res.taskLevel, -taskNo: res.taskNo, -taskStatus: res.taskStatus, -taskType: res.taskType, -toPlace: res.toPlace, - id: res.id, - } - disabled.value = true - updateCheckData() - } else { - formData.value = {} - - disabled.value = false - updateCheckData() - } - } - - watch(() => current.value, onOpen) - - return { - formItems, - formData, - visible, - formRef, - onOpen, - onClose, - onConfirm, - } -} +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsTaskDrawer = (props: any, ctx?: any) => { + const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + const initiateData: Ref<Record<string, any>> = ref({}) + const formData = ref<Record<string, any>>({}) + // ref + const formRef = ref() + + const disabled = ref(false) + + const current = computed(() => { + return props.row || null + }) + + const inputNumber = (attrs) => { + return ( + <el-input-number + min="1" + step="1" + precision="0" + {...attrs} + ></el-input-number> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '宸烽亾', + prop: 'aisle', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ贩閬�', + }, + { + label: '鎵樼洏缂栧彿', + prop: 'containerNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', + }, + { + label: '鍫嗗灈鏈篒D', + prop: 'dodeviceId', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ爢鍨涙満ID', + }, + { + label: '璁惧绫诲瀷', + prop: 'dodevicetype', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囩被鍨�', + rules: [{ required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛', + prop: 'isNextTask', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', + }, + // { + // label: 'WCS鏄惁鍙互璇诲彇', + // prop: 'isRead', + // el: 'select', + // //disabled: disabled, + // placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', + // rules: [{required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }], + // }, + { + label: '鍙彉鍙橀噺1', + prop: 'mutableParam1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', + }, + { + label: '鍙彉鍙橀噺2', + prop: 'mutableParam2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', + }, + { + label: '鍙彉鍙橀噺3', + prop: 'mutableParam3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', + }, + { + label: '瀛愪换鍔$被鍨�', + prop: 'sonTaskType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', + }, + { + label: '鏉ユ簮鍗曟嵁鍙�', + prop: 'sourceOrderNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', + }, + { + label: '璧峰搴撲綅', + prop: 'sourcePlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', + }, + { + label: '璁惧浠诲姟鐘舵��', + prop: 'taskDodeviceStatus', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', + rules: [ + { required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }, + ], + }, + { + label: '浠诲姟绛夌骇', + prop: 'taskLevel', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', + rules: [{ required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '浠诲姟鍙�', + prop: 'taskNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔″彿', + rules: [{ required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '浠诲姟鐘舵��', + prop: 'taskStatus', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', + rules: [{ required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '浠诲姟绫诲瀷', + prop: 'taskType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', + rules: [{ required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鐩爣搴撲綅', + prop: 'toPlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + + const onClose = (done: () => void) => { + if (visible.value) { + if (checkIsEqualObject()) { + visible.value = false + done && done() + } else { + ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') + .then(() => { + onConfirm() + }) + .catch(() => { + visible.value = false + done && done() + }) + } + } + } + /** + * 淇濆瓨 + */ + const onConfirm = async () => { + await formRef.value?.validate() + const data = { + aisle: formData.value.aisle, + containerNo: formData.value.containerNo, + dodeviceId: formData.value.dodeviceId, + dodevicetype: formData.value.dodevicetype, + isNextTask: formData.value.isNextTask, + isRead: formData.value.isRead, + mutableParam1: formData.value.mutableParam1, + mutableParam2: formData.value.mutableParam2, + mutableParam3: formData.value.mutableParam3, + sonTaskType: formData.value.sonTaskType, + sourceOrderNo: formData.value.sourceOrderNo, + sourcePlace: formData.value.sourcePlace, + taskDodeviceStatus: formData.value.taskDodeviceStatus, + taskLevel: formData.value.taskLevel, + taskNo: formData.value.taskNo, + taskStatus: formData.value.taskStatus, + taskType: formData.value.taskType, + toPlace: formData.value.toPlace, + } + if (!current.value) { + await wmsTaskDrawer.addWmsTask(data) + } else { + const id = current.value.id + await wmsTaskDrawer.updateWmsTask(id, data) + } + ElMessage.success('淇濆瓨鎴愬姛') + ctx.emit('confirm') + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'TaskTypeEnum', + }) + updateFormItemOptions('taskType', taskTypeEnumEnum) + const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'WmsTaskStatus', + }) + updateFormItemOptions('taskStatus', wmsTaskStatusEnum) + const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'SonTaskTypeEnum', + }) + updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) + + formData.value = { + aisle: res.aisle, + containerNo: res.containerNo, + dodeviceId: res.dodeviceId, + dodevicetype: res.dodevicetype, + isNextTask: res.isNextTask, + isRead: res.isRead, + mutableParam1: res.mutableParam1, + mutableParam2: res.mutableParam2, + mutableParam3: res.mutableParam3, + sonTaskType: res.sonTaskType, + sourceOrderNo: res.sourceOrderNo, + sourcePlace: res.sourcePlace, + taskDodeviceStatus: res.taskDodeviceStatus, + taskLevel: res.taskLevel, + taskNo: res.taskNo, + taskStatus: res.taskStatus, + taskType: res.taskType, + toPlace: res.toPlace, + id: res.id, + } + disabled.value = true + updateCheckData() + } else { + formData.value = {} + + disabled.value = false + updateCheckData() + } + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirm, + } +} diff --git a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx index a299cd0..ccc7860 100644 --- a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx @@ -1,324 +1,326 @@ -import { computed, defineComponent, onMounted, reactive, ref } from 'vue' -import type { Ref } from 'vue' -import BaseTable from '@/components/Table/Table' -import styles from './WmsTask.module.scss' -import { useWmsTask } from '../../../Controllers/WmsTask' -import IconButton from '@/components/IconButton/IconButton' -import WmsTaskDrawer from '../Dialog/WmsTaskDrawer/WmsTaskDrawer' -import WmsTaskQueryDrawer from '../Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer' -import Search from '@/components/Search/Search' -import { columns } from './Config' -import TdButton from '@/components/TdButton/TdButton' -import { vPermission } from '@/libs/Permission/Permission' -import { - getWmsEnumData -} from '@/widgets/WmsTask/Models/Service/WmsTaskDrawer' -import { - ElInput, - ElSelect, - ElOption, - ElDatePicker, - ElForm, - ElFormItem, -} from 'element-plus' -import { injectModel } from '@/libs/Provider/Provider' - -interface RenderTableType { - url?: string - dataSource: Ref<any[]> - isDrag?: boolean - isChecked?: boolean - isHidePagination?: boolean - params?: Record<string, any> - autoHeight?: boolean -} - -export default defineComponent({ - name: 'WmsTask', - directives: { - permission: vPermission, - }, - setup(props, ctx) { - const { - dataSource, - contextMenu, - dialogConfig, - dialogConfigForQuery, - tableRef, - current, - search, - sort, - headers, - onError, - onSearch, - onRowClick, - onConfirmWmsTask, - onCheck, - onAddWmsTask, - onAdvancedQuery, - onExport, - openDetail, - onSuccess, - onBeforeUpload, - } = useWmsTask(props, ctx) - - //瀹氫箟楂樼骇鏌ヨ寮曠敤 - const wmsTaskQueryDrawerRef=ref(null); - // 鏂板鐨勬煡璇㈡潯浠� - const queryForm = ref({ - searchVal: '', - str_searchFormInputAttrs:[] - }) - //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) - const _searchFormInputAttrs = ref([ - 'TaskNo', 'ContainerNo' - ]); - const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ヤ换鍔$紪鐮�/鎵樼洏缂栫爜'); - - - // 鍔ㄦ�佹灇涓鹃�夐」 - const enumOptions = reactive({ - taskType: [] as Array<{label: string; value: any }>, -taskStatus: [] as Array<{label: string; value: any }>, -sonTaskType: [] as Array<{label: string; value: any }>, - }) - - // 鑾峰彇鏋氫妇鏁版嵁 - const fetchEnumData = async () => { - try { - const taskTypeEnumData = await getWmsEnumData({ - EnumName: 'TaskTypeEnum', -}) -enumOptions.taskType = taskTypeEnumData.map((item) => ({ - label: item.description, - value: item.value, -})) -const wmsTaskStatusData = await getWmsEnumData({ - EnumName: 'WmsTaskStatus', -}) -enumOptions.taskStatus = wmsTaskStatusData.map((item) => ({ - label: item.description, - value: item.value, -})) -const sonTaskTypeEnumData = await getWmsEnumData({ - EnumName: 'SonTaskTypeEnum', -}) -enumOptions.sonTaskType = sonTaskTypeEnumData.map((item) => ({ - label: item.description, - value: item.value, -})) - - } catch (error) { - console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) - } - } - - // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� - onMounted(() => { - fetchEnumData() - }) - - // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� - const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[] }); - // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 - const handleQueryForMain = async () => { - _curHighQueryData.value.searchVal = queryForm.value.searchVal; - _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; - tableRef.value.getList(_curHighQueryData.value) - } - // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 - const handleQuery = async (extraParams = {}) => { - let filteredData = commonGetHighQueryForm(extraParams); - commonSaveCurHighQueryData(filteredData); - tableRef.value.getList(filteredData) - } - // 鏂扮増鐨勬煡璇㈤噸缃� - const resetQuery = () => { - queryForm.value.searchVal = '' - queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; - } - //鏂扮増鐨勫鍑烘柟娉� - const handleExport=()=>{ - onExport(_curHighQueryData.value); - } - // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 - const closeQuery = (extraParams={}) => { - let filteredData = commonGetHighQueryForm(extraParams); - console.log("closeQuery鏂规硶"); - console.log(filteredData); - commonSaveCurHighQueryData(filteredData); - } - //淇濆瓨鏌ヨ鍊� - const commonSaveCurHighQueryData=(filteredData={})=>{ - _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; - _curHighQueryData.value.searchVal = queryForm.value.searchVal - _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; - } - //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� - const commonGetHighQueryForm=(extraParams={})=>{ - // 杩囨护鎺� undefined 鐨勫�� - let filteredData = Object.assign( - {}, - ...Object.entries(extraParams).map(([key, value]) => - value !== undefined ? { [key]: value } : {} - ) - ) - //缁勫悎妯$硦鏌ヨ - filteredData.searchVal = queryForm.value.searchVal - filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; - return filteredData; - } - - - /** - * @returns 琛ㄦ牸 - */ - const RenderBaseTable = (props: RenderTableType) => { - const { - url, - dataSource, - isDrag, - isChecked, - isHidePagination, - params, - autoHeight, - } = props - - return ( - <div - class={{ - [styles.wmsTaskList]: true, - }} - > - <BaseTable - ref={tableRef} - url={url} - sortUrlTpl="/api/v1/HIAWms/wmsTask/{id}/adjustsort/{sort}" - v-model:dataSource={dataSource.value} - columns={columns} - contextMenu={contextMenu} - params={params} - isDrag={isDrag} - isChecked={isChecked} - autoHeight={autoHeight} - onCheck={onCheck} - onRowClick={onRowClick} - isHidePagination={isHidePagination} - pageSize={20} - v-slots={{ - name: ({ row }: any) => { - return row?.name ? ( - <TdButton - onClick={() => openDetail(row)} - text={<span style="color:#5a84ff">璇︽儏</span>} - icon="scale" - tip={row?.name} - hover - > - {row?.name} - </TdButton> - ) : ( - '-' - ) - }, - }} - ></BaseTable> - </div> - ) - } - - return () => { - return ( - <div class={styles.wmsTaskContent}> - {/* 娣诲姞/缂栬緫 */} - <WmsTaskDrawer - v-model={dialogConfig.visible} - title={dialogConfig.title} - row={current.value} - sort={sort.value} - onConfirm={onConfirmWmsTask} - /> - {/* 楂樼骇鏌ヨ */} - <WmsTaskQueryDrawer - ref="wmsTaskQueryDrawerRef" - v-model={dialogConfigForQuery.visible} - title={dialogConfigForQuery.title} - row={current.value} - sort={sort.value} - onConfirmQuery={handleQuery} - onRestQuery={resetQuery} - onClose={closeQuery} - /> - - <div class={styles.headerContent}> - <div class={styles.header}> - <IconButton - v-permission="wmsTask-add" - icon="add-p" - onClick={onAddWmsTask} - type="primary" - > - 娣诲姞 - </IconButton> - <el-divider direction="vertical" /> - - <el-divider direction="vertical" /> - <el-upload - v-permission="wmsTask-import" - name="file" - accept=".xlsx,.xls,.csv" - show-file-list={false} - onError={onError} - onSuccess={onSuccess} - before-upload={onBeforeUpload} - headers={headers.value} - action="/api/v1/HIAWms/wmsTask/import" - > - <IconButton icon="in">瀵煎叆</IconButton> - </el-upload> - - <IconButton - v-permission="wmsTask-output" - icon="out" - onClick={handleExport} - > - 瀵煎嚭 - </IconButton> - </div> - <ElFormItem style={{ marginTop: '15px' }}> - <ElFormItem label="鍏抽敭瀛�"> - <ElInput - v-model={queryForm.value.searchVal} - placeholder={searchFormInputAttrs_Placeholder.value} - clearable - class={styles.formItem} - /> - </ElFormItem> - <IconButton type="primary" icon="search" onClick={handleQueryForMain}> - 鏌ヨ - </IconButton> +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WmsTask.module.scss' +import { useWmsTask } from '../../../Controllers/WmsTask' +import IconButton from '@/components/IconButton/IconButton' +import WmsTaskDrawer from '../Dialog/WmsTaskDrawer/WmsTaskDrawer' +import WmsTaskQueryDrawer from '../Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer' +import Search from '@/components/Search/Search' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import { vPermission } from '@/libs/Permission/Permission' +import { getWmsEnumData } from '@/widgets/WmsTask/Models/Service/WmsTaskDrawer' +import { + ElInput, + ElSelect, + ElOption, + ElDatePicker, + ElForm, + ElFormItem, +} from 'element-plus' +import { injectModel } from '@/libs/Provider/Provider' + +interface RenderTableType { + url?: string + dataSource: Ref<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + autoHeight?: boolean +} + +export default defineComponent({ + name: 'WmsTask', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWmsTask, + onCheck, + onAddWmsTask, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWmsTask(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsTaskQueryDrawerRef = ref(null) + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref(['TaskNo', 'ContainerNo']) + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ヤ换鍔$紪鐮�/鎵樼洏缂栫爜') + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + taskType: [] as Array<{ label: string; value: any }>, + taskStatus: [] as Array<{ label: string; value: any }>, + sonTaskType: [] as Array<{ label: string; value: any }>, + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + const taskTypeEnumData = await getWmsEnumData({ + EnumName: 'TaskTypeEnum', + }) + enumOptions.taskType = taskTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + const wmsTaskStatusData = await getWmsEnumData({ + EnumName: 'WmsTaskStatus', + }) + enumOptions.taskStatus = wmsTaskStatusData.map((item) => ({ + label: item.description, + value: item.value, + })) + const sonTaskTypeEnumData = await getWmsEnumData({ + EnumName: 'SonTaskTypeEnum', + }) + enumOptions.sonTaskType = sonTaskTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } catch (error) { + console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) + } + } + + // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� + onMounted(() => { + fetchEnumData() + }) + + // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� + const _curHighQueryData = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 + const handleQueryForMain = async () => { + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _curHighQueryData.value.str_searchFormInputAttrs = + _searchFormInputAttrs.value + tableRef.value.getList(_curHighQueryData.value) + } + // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 + const handleQuery = async (extraParams = {}) => { + let filteredData = commonGetHighQueryForm(extraParams) + commonSaveCurHighQueryData(filteredData) + tableRef.value.getList(filteredData) + } + // 鏂扮増鐨勬煡璇㈤噸缃� + const resetQuery = () => { + queryForm.value.searchVal = '' + queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value + } + //鏂扮増鐨勫鍑烘柟娉� + const handleExport = () => { + onExport(_curHighQueryData.value) + } + // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 + const closeQuery = (extraParams = {}) => { + let filteredData = commonGetHighQueryForm(extraParams) + console.log('closeQuery鏂规硶') + console.log(filteredData) + commonSaveCurHighQueryData(filteredData) + } + //淇濆瓨鏌ヨ鍊� + const commonSaveCurHighQueryData = (filteredData = {}) => { + _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData } + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _curHighQueryData.value.str_searchFormInputAttrs = + _searchFormInputAttrs.value + } + //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� + const commonGetHighQueryForm = (extraParams = {}) => { + // 杩囨护鎺� undefined 鐨勫�� + let filteredData = Object.assign( + {}, + ...Object.entries(extraParams).map(([key, value]) => + value !== undefined ? { [key]: value } : {} + ) + ) + //缁勫悎妯$硦鏌ヨ + filteredData.searchVal = queryForm.value.searchVal + filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value + return filteredData + } + + /** + * @returns 琛ㄦ牸 + */ + const RenderBaseTable = (props: RenderTableType) => { + const { + url, + dataSource, + isDrag, + isChecked, + isHidePagination, + params, + autoHeight, + } = props + + return ( + <div + class={{ + [styles.wmsTaskList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/HIAWms/wmsTask/{id}/adjustsort/{sort}" + v-model:dataSource={dataSource.value} + columns={columns} + contextMenu={contextMenu} + params={params} + isDrag={isDrag} + isChecked={isChecked} + autoHeight={autoHeight} + onCheck={onCheck} + onRowClick={onRowClick} + isHidePagination={isHidePagination} + pageSize={20} + v-slots={{ + name: ({ row }: any) => { + return row?.name ? ( + <TdButton + onClick={() => openDetail(row)} + text={<span style="color:#5a84ff">璇︽儏</span>} + icon="scale" + tip={row?.name} + hover + > + {row?.name} + </TdButton> + ) : ( + '-' + ) + }, + }} + ></BaseTable> + </div> + ) + } + + return () => { + return ( + <div class={styles.wmsTaskContent}> + {/* 娣诲姞/缂栬緫 */} + <WmsTaskDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsTask} + /> + {/* 楂樼骇鏌ヨ */} + <WmsTaskQueryDrawer + ref="wmsTaskQueryDrawerRef" + v-model={dialogConfigForQuery.visible} + title={dialogConfigForQuery.title} + row={current.value} + sort={sort.value} + onConfirmQuery={handleQuery} + onRestQuery={resetQuery} + onClose={closeQuery} + /> + + <div class={styles.headerContent}> + <div class={styles.header}> + <IconButton + v-permission="wmsTask-add" + icon="add-p" + onClick={onAddWmsTask} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-divider direction="vertical" /> + <el-upload + v-permission="wmsTask-import" + name="file" + accept=".xlsx,.xls,.csv" + show-file-list={false} + onError={onError} + onSuccess={onSuccess} + before-upload={onBeforeUpload} + headers={headers.value} + action="/api/v1/HIAWms/wmsTask/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> + + <IconButton + v-permission="wmsTask-output" + icon="out" + onClick={handleExport} + > + 瀵煎嚭 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="鍏抽敭瀛�"> + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </ElFormItem> + <IconButton + type="primary" + icon="search" + onClick={handleQueryForMain} + > + 鏌ヨ + </IconButton> {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 閲嶇疆 - </IconButton> */} - <IconButton - v-permission="wmsTask-add" - icon="search" - onClick={onAdvancedQuery} - type="primary" - > - 楂樼骇鏌ヨ - </IconButton> - </ElFormItem> - </div> - - <RenderBaseTable - url="/api/v1/HIAWms/wmsTask/page" - dataSource={dataSource} - isChecked={true} - isDrag={true} - /> - </div> - ) - } - }, -}) + </IconButton> */} + <IconButton + v-permission="wmsTask-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/HIAWms/wmsTask/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs" index eb8df21..b16eca7 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/MySqlDataBaseServiceHandle.cs" @@ -15,7 +15,7 @@ //string strSql = $"SELECT COLUMN_NAME as ColumnName, COLUMN_TYPE as DataType, IS_NULLABLE as IsNullable, CHARACTER_MAXIMUM_LENGTH as DataLength,COLUMN_COMMENT as Description " + // $"FROM INFORMATION_SCHEMA.COLUMNS " + // $"WHERE TABLE_NAME = '{tableName}'"; - string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.DATA_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description, " + + string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.DATA_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description,c.NUMERIC_SCALE as MyPrecision, " + $"CASE WHEN kcu.COLUMN_NAME IS NOT NULL THEN 'true' ELSE 'false' END AS IsPrimaryKey " + $"FROM INFORMATION_SCHEMA.COLUMNS c " + $"LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu " + diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs" index 8483fe7..0691546 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/DataBaseFactory/Default/SqlServerDataBaseServiceHandle.cs" @@ -28,7 +28,7 @@ where ic.object_id=obj.object_id and ic.column_id=col.column_id ) as IsPrimaryKey, -col.Precision, +col.Precision as MyPrecision, col.Scale from sys.objects obj inner join sys.columns col @@ -72,7 +72,7 @@ model = new ColumnModel(); if (dt.Rows[n]["Precision"].ToString() != "") { - model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString()); + model.MyPrecision = int.Parse(dt.Rows[n]["Precision"].ToString()); } if (dt.Rows[n]["Scale"].ToString() != "") { diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Model/ColumnModell.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Model/ColumnModell.cs" index 8911f5e..adce15b 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Model/ColumnModell.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Model/ColumnModell.cs" @@ -40,7 +40,7 @@ /// </summary> public bool IsPrimaryKey { get; set; } - public int Precision { get; set; } + public int? MyPrecision { get; set; } public int Scale { get; set; } } diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" index 3f5faca..0d1d5bb 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" @@ -1,7 +1,7 @@ using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; using CMS.Plugin.$NameSpacePath$.Domain.Shared; -using CMS.Plugin.$NameSpacePath$.Domain.Shared.Util; +using CmsQueryExtensions; using CMS.Plugin.$NameSpacePath$.Domain.$EntityName$; using CmsQueryExtensions.Extension; using System.Linq.Expressions; diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" index da3d4ab..c35e1d6 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" @@ -1,4 +1,5 @@ using CMS.Plugin.$NameSpacePath$.Domain.Shared.Enums; +using CmsQueryExtensions; using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Domain.Entities; diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass_module\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass_module\346\250\241\346\235\277.txt" index 55b8936..a71ab02 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass_module\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass_module\346\250\241\346\235\277.txt" @@ -15,7 +15,7 @@ .header { margin-bottom: 12px; display: flex; - justify-content: flex-start; + justify-content: flex-end; align-items: center; } } diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" index 3cd0592..6b8983f 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" @@ -85,7 +85,7 @@ model = new ColumnModel(); if (dt.Rows[n]["Precision"].ToString() != "") { - model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString()); + model.MyPrecision = int.Parse(dt.Rows[n]["Precision"].ToString()); } if (dt.Rows[n]["Scale"].ToString() != "") { @@ -887,7 +887,7 @@ case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sql.Append("@" + attrColumnName + " " + columnModel.DataType - + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); + + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); break; default: break; @@ -949,7 +949,7 @@ case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sql.Append("@" + attrColumnName + " " + columnModel.DataType - + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); + + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); break; default: break; @@ -1010,7 +1010,7 @@ case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sql.Append("@" + attrColumnName + " " + columnModel.DataType - + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao); + + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao); break; default: break; diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs" new file mode 100644 index 0000000..4f22808 --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs" @@ -0,0 +1,77 @@ +锘縰sing System.ComponentModel; + +namespace CmsQueryExtensions +{ + /// <summary> + /// 鏋氫妇甯姪绫�. + /// </summary> + public static class EnumHelper + { + /// <summary> + /// 鑾峰彇鏋氫妇. + /// </summary> + /// <param name="enumName"> </param> + /// <returns></returns> + /// <exception cref="ArgumentException"></exception> + public static List<EnumItem> GetEnumItems(string enumName) + { + // 鑾峰彇褰撳墠绋嬪簭闆嗕腑鐨勬墍鏈夌被鍨� + var enumType = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(a => a.GetTypes()) + .FirstOrDefault(t => t.Name == enumName && t.IsEnum); + + if (enumType == null) + { + throw new Exception($"鏋氫妇绫诲瀷 {enumName} 涓嶅瓨鍦�"); + } + + return GetEnumItems(enumType); + } + + /// <summary> + /// 鑾峰彇鏋氫妇绫诲瀷. + /// </summary> + /// <param name="enumType"></param> + /// <returns></returns> + /// <exception cref="ArgumentException"></exception> + public static List<EnumItem> GetEnumItems(Type enumType) + { + if (!enumType.IsEnum) + { + throw new Exception("鎻愪緵鐨勭被鍨嬩笉鏄灇涓剧被鍨�"); + } + + var result = new List<EnumItem>(); + var values = Enum.GetValues(enumType); + + foreach (var value in values) + { + var fieldInfo = enumType.GetField(value.ToString()); + var description = fieldInfo? + .GetCustomAttributes(typeof(DescriptionAttribute), false) + .FirstOrDefault() as DescriptionAttribute; + + result.Add(new EnumItem + { + Value = (int)value, + Name = value.ToString(), + Description = description?.Description ?? value.ToString(), + }); + } + + return result; + } + } + + /// <summary> + /// 鏋氫妇鎻忚堪. + /// </summary> + public class EnumItem + { + public int Value { get; set; } + + public string Name { get; set; } + + public string Description { get; set; } + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs" new file mode 100644 index 0000000..5514f47 --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs" @@ -0,0 +1,53 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Collections.Generic; +using System.ComponentModel; +using System.Reflection; +using System.Threading.Tasks; + +namespace CmsQueryExtensions +{ + /// <summary> + /// 瀵煎嚭甯姪绫�. + /// </summary> + public static class ExportHelper + { + + + // 鎵归噺杞崲鏂规硶 + public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) + { + return list.Select(ConvertToExportData).ToList(); + } + + // 閫氱敤杞崲鏂规硶锛堝吋瀹� Func<T, Dictionary<string, object>>锛� + public static Dictionary<string, object> ConvertToExportData<T>(T entity) + { + var dict = new Dictionary<string, object>(); + if (entity == null) return dict; + + foreach (var prop in typeof(T).GetProperties()) + { + var value = prop.GetValue(entity); + dict[prop.Name] = FormatValue(value); + } + return dict; + } + + private static object FormatValue(object value) + { + if (value == null) return string.Empty; + + // 澶勭悊鏋氫妇 + if (value is Enum enumValue) + return GetEnumDescriptionUtil.GetEnumDescription(enumValue); + + // 澶勭悊甯冨皵 + if (value is bool boolValue) + return boolValue ? "鏄�" : "鍚�"; + + return value; + } + + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs" new file mode 100644 index 0000000..bcf3c5b --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs" @@ -0,0 +1,30 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace CmsQueryExtensions +{ + public class GetEnumDescriptionUtil + { + /// <summary> + /// 鑾峰彇鏋氫妇鐨勬弿杩� + /// </summary> + /// <param name="enumValue"></param> + /// <returns></returns> + public static string GetEnumDescription(Enum enumValue) + { + string value = enumValue.ToString(); + if (string.IsNullOrWhiteSpace(value) || value == "0") return ""; + FieldInfo field = enumValue.GetType().GetField(value); + object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //鑾峰彇鎻忚堪灞炴�� + if (objs == null || objs.Length == 0) //褰撴弿杩板睘鎬ф病鏈夋椂锛岀洿鎺ヨ繑鍥炲悕绉� + return value; + DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; + return descriptionAttribute.Description; + } + } +} -- Gitblit v1.9.3