From 04db66bdb3d1fb89fb3ff2c3c2893c93a3802230 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周四, 08 5月 2025 19:03:05 +0800 Subject: [PATCH] 10、列表中,所有列需要配置width,建议等于160,如果是时间列,建议是200 --- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterial.ts | 41 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterial.ts | 275 +++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs | 34 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/type/type.d.ts | 45 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterial.ts | 30 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss | 3 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs | 10 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.tsx | 80 + Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx | 71 + Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/config/WmsMaterial.json | 3 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/components.d.ts | 1 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs | 172 ++- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.module.scss | 113 ++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial导出模板.xlsx | 0 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/index.ts | 14 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs | 30 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialDrawer.ts | 34 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs | 72 + Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/config/menu.ts | 14 Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs | 16 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.cs | 52 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialDrawer.ts | 44 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss | 3 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs | 60 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.tsx | 373 +++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Controllers/File.ts | 31 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.module.scss | 7 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs | 31 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialDrawer.tsx | 427 +++++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialQueryDrawer.ts | 35 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialQueryDrawer.ts | 44 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/Config.ts | 132 ++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx | 61 + Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialQueryDrawer.tsx | 427 +++++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/enum.ts | 15 35 files changed, 2,647 insertions(+), 153 deletions(-) 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 086c554..1eef254 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" @@ -2292,6 +2292,22 @@ sb.Append(" field: '" + lowerCaseColumnName + "', \n"); } sb.Append(" title: '" + columnModel.Description + "', \n"); + //鑾峰彇鏁版嵁绫诲瀷 + //璁剧疆瀹藉害 + DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); + switch (enumDT) + { + case DataTypeEnum.dt_datetime: + sb.Append(" width:180, \n"); + break; + case DataTypeEnum.dt_bit: + case DataTypeEnum.dt_tinyint: + sb.Append(" width:80, \n"); + break; + default: + sb.Append(" width:160, \n"); + break; + } sb.Append("}, \n"); } //鍘绘帀鏈�鍚庝竴涓�, 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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs" index b097042..8319228 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs" @@ -234,7 +234,7 @@ public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; /// <summary> - /// + /// 鍒涘缓鏃堕棿 /// </summary> //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� [HighSearchRangeAttribute] @@ -242,17 +242,17 @@ /// <summary> - /// + /// 鍒涘缓浜篒D /// </summary> public string CreatorId { get; set; } /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� + /// 鍒涘缓浜篒D-鏌ヨ鍏崇郴杩愮畻绗� /// </summary> public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; /// <summary> - /// + /// 淇敼鏃堕棿 /// </summary> //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� [HighSearchRangeAttribute] @@ -260,42 +260,92 @@ /// <summary> - /// + /// 淇敼浜篒D /// </summary> public string LastModifierId { get; set; } /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� + /// 淇敼浜篒D-鏌ヨ鍏崇郴杩愮畻绗� /// </summary> public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; /// <summary> - /// + /// 鏄惁鍒犻櫎 /// </summary> public bool? IsDeleted { get; set; } /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� + /// 鏄惁鍒犻櫎-鏌ヨ鍏崇郴杩愮畻绗� /// </summary> public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ; /// <summary> - /// + /// 鍒犻櫎浜篒D /// </summary> public string DeleterId { get; set; } /// <summary> - /// -鏌ヨ鍏崇郴杩愮畻绗� + /// 鍒犻櫎浜篒D-鏌ヨ鍏崇郴杩愮畻绗� /// </summary> public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; /// <summary> - /// + /// 鍒犻櫎鏃堕棿 /// </summary> //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规�� [HighSearchRangeAttribute] public List<string> DeletionTime { get; set; } + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public string CreatorName { get; set; } + + /// <summary> + /// 鍒涘缓浜�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 淇敼浜� + /// </summary> + public string LastModifierName { get; set; } + + /// <summary> + /// 淇敼浜�-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鎵╁睍瀛楁1 + /// </summary> + public string ExtraField1 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁1-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鎵╁睍瀛楁2 + /// </summary> + public string ExtraField2 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁2-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + + /// <summary> + /// 鎵╁睍瀛楁3 + /// </summary> + public string ExtraField3 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁3-鏌ヨ鍏崇郴杩愮畻绗� + /// </summary> + public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ; + } 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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs" index 136291a..9dfd47c 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs" @@ -1,4 +1,5 @@ using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using System; using Volo.Abp.Application.Dtos; namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; @@ -104,15 +105,40 @@ public bool? IsDisabled { get; set; } /// <summary> - /// + /// 鍒涘缓浜篒D /// </summary> public string? CreatorId { get; set; } /// <summary> - /// + /// 淇敼浜篒D /// </summary> public string? LastModifierId { get; set; } + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public string? CreatorName { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public string? LastModifierName { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁1 + /// </summary> + public string? ExtraField1 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁2 + /// </summary> + public string? ExtraField2 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁3 + /// </summary> + public string? ExtraField3 { get; set; } + /// <summary> 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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs" index f67f983..51e0ed7 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs" @@ -1,4 +1,5 @@ using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CmsQueryExtensions; using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Domain.Entities; @@ -127,9 +128,19 @@ public int Sort { get; set; } /// <summary> + /// 鎵╁睍灞炴�� + /// </summary> + public ExtraPropertyDictionary? ExtraProperties { get; set; } + + /// <summary> /// 澶囨敞 /// </summary> public string? Remark { get; set; } + + /// <summary> + /// 骞跺彂鎴� + /// </summary> + public string? ConcurrencyStamp { get; set; } /// <summary> /// 鏄惁绂佺敤 @@ -137,50 +148,65 @@ public bool? IsDisabled { get; set; } /// <summary> - /// - /// </summary> - public ExtraPropertyDictionary? ExtraProperties { get; set; } - - /// <summary> - /// - /// </summary> - public string? ConcurrencyStamp { get; set; } - - /// <summary> - /// + /// 鍒涘缓鏃堕棿 /// </summary> public DateTime CreationTime { get; set; } /// <summary> - /// + /// 鍒涘缓浜篒D /// </summary> public string? CreatorId { get; set; } /// <summary> - /// + /// 淇敼鏃堕棿 /// </summary> public DateTime? LastModificationTime { get; set; } /// <summary> - /// + /// 淇敼浜篒D /// </summary> public string? LastModifierId { get; set; } /// <summary> - /// + /// 鏄惁鍒犻櫎 /// </summary> public bool IsDeleted { get; set; } /// <summary> - /// + /// 鍒犻櫎浜篒D /// </summary> public string? DeleterId { get; set; } /// <summary> - /// + /// 鍒犻櫎鏃堕棿 /// </summary> public DateTime? DeletionTime { get; set; } + /// <summary> + /// 鍒涘缓浜� + /// </summary> + public string? CreatorName { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + public string? LastModifierName { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁1 + /// </summary> + public string? ExtraField1 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁2 + /// </summary> + public string? ExtraField2 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁3 + /// </summary> + public string? ExtraField3 { get; set; } + /// <summary> 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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs" index c75b208..0b08f4d 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.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/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs" @@ -1,5 +1,6 @@ using MiniExcelLibs.Attributes; using System.ComponentModel.DataAnnotations; +using System; using System.ComponentModel; using CMS.Plugin.HIAWms.Domain.Shared.Enums; namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; @@ -123,6 +124,36 @@ [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)] public bool? IsDisabled { get; set; } + /// <summary> + /// 鍒涘缓浜� + /// </summary> + [ExcelColumn(Name = "鍒涘缓浜�", Width = 25)] + public string CreatorName { get; set; } + + /// <summary> + /// 淇敼浜� + /// </summary> + [ExcelColumn(Name = "淇敼浜�", Width = 25)] + public string LastModifierName { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁1 + /// </summary> + [ExcelColumn(Name = "鎵╁睍瀛楁1", Width = 25)] + public string ExtraField1 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁2 + /// </summary> + [ExcelColumn(Name = "鎵╁睍瀛楁2", Width = 25)] + public string ExtraField2 { get; set; } + + /// <summary> + /// 鎵╁睍瀛楁3 + /// </summary> + [ExcelColumn(Name = "鎵╁睍瀛楁3", Width = 25)] + public string ExtraField3 { get; set; } + public Dictionary<string, object> GetExportData() 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/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.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/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" index c51a507..51058cb 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.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/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" @@ -1,8 +1,7 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; using CMS.Plugin.HIAWms.Application.Contracts.Services; using CMS.Plugin.HIAWms.Domain.Shared; -using CMS.Plugin.HIAWms.Domain.Shared.Util; -using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterial; +using CmsQueryExtensions; using CMS.Plugin.HIAWms.Domain.WmsMaterial; using CmsQueryExtensions.Extension; using System.Linq.Expressions; @@ -19,15 +18,15 @@ /// </summary> public class WmsMaterialAppService : CMSPluginAppService, IWmsMaterialAppService { - private readonly IWmsMaterialRepository wmsmaterialsRepository; + private readonly IWmsMaterialRepository wmsMaterialRepository; /// <summary> /// Initializes a new instance of the <see cref="WmsMaterialAppService"/> class. /// </summary> /// <param name="WmsMaterialRepository">The task job repository.</param> - public WmsMaterialAppService(IWmsMaterialRepository WmsMaterialRepository) + public WmsMaterialAppService(IWmsMaterialRepository _WmsMaterialRepository) { - wmsmaterialsRepository = WmsMaterialRepository; + wmsMaterialRepository = _WmsMaterialRepository; } /// <summary> @@ -37,7 +36,7 @@ /// <returns></returns> public virtual async Task<WmsMaterialDto> GetAsync(Guid id) { - return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await wmsmaterialsRepository.GetAsync(id)); + return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await wmsMaterialRepository.GetAsync(id)); } /// <summary> @@ -61,8 +60,8 @@ #endregion - var count = await wmsmaterialsRepository.GetCountAsync(whereConditions); - var list = await wmsmaterialsRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); + var count = await wmsMaterialRepository.GetCountAsync(whereConditions); + var list = await wmsMaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); return new PagedResultDto<WmsMaterialDto>(count, ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list)); } @@ -100,27 +99,25 @@ { await CheckCreateOrUpdateDtoAsync(input); - var exist = await wmsmaterialsRepository.NameExistAsync(input.MaterialCode); + var exist = await wmsMaterialRepository.NameExistAsync(input.MaterialCode); if (exist) { throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); } - var maxSort = await wmsmaterialsRepository.GetMaxSortAsync(); + var maxSort = await wmsMaterialRepository.GetMaxSortAsync(); var sort = input.Sort ?? maxSort; var insertObj = ObjectMapper.Map<WmsMaterialCreateDto, WmsMaterial>(input); insertObj.Sort = sort; input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); - - - await wmsmaterialsRepository.InsertAsync(insertObj); + await wmsMaterialRepository.InsertAsync(insertObj); - if (input.Sort.HasValue && insertObj.Sort != maxSort) - { - await AdjustSortAsync(insertObj.Id, insertObj.Sort); - } + //if (input.Sort.HasValue && insertObj.Sort != maxSort) + //{ + // await AdjustSortAsync(insertObj.Id, insertObj.Sort); + //} return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(insertObj); } @@ -136,8 +133,8 @@ { await CheckCreateOrUpdateDtoAsync(input); - var updateObj = await wmsmaterialsRepository.GetAsync(id); - var exist = await wmsmaterialsRepository.NameExistAsync(input.MaterialCode, updateObj.Id); + var updateObj = await wmsMaterialRepository.GetAsync(id); + var exist = await wmsMaterialRepository.NameExistAsync(input.MaterialCode, updateObj.Id); if (exist) { throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); @@ -164,9 +161,14 @@ updateObj.RedundantField3 = input.RedundantField3; updateObj.Remark = input.Remark; updateObj.IsDisabled = input.IsDisabled; + updateObj.CreatorName = input.CreatorName; + updateObj.LastModifierName = input.LastModifierName; + updateObj.ExtraField1 = input.ExtraField1; + updateObj.ExtraField2 = input.ExtraField2; + updateObj.ExtraField3 = input.ExtraField3; - await wmsmaterialsRepository.UpdateAsync(updateObj); + await wmsMaterialRepository.UpdateAsync(updateObj); return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(updateObj); } @@ -178,21 +180,21 @@ /// <returns></returns> public async Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids) { - //var wmsmaterialss = new List<WmsMaterial>(); + //var wmsMaterials = new List<WmsMaterial>(); //if (ids != null) //{ - // var sort = await wmsmaterialsRepository.GetMaxSortAsync(); + // var sort = await wmsMaterialRepository.GetMaxSortAsync(); // foreach (var id in ids) // { - // var WmsMaterial = await wmsmaterialsRepository.FindAsync(id); + // var WmsMaterial = await wmsMaterialRepository.FindAsync(id); // if (WmsMaterial != null) // { // var name = WmsMaterial.Name + WmsMaterialConsts.CloneTag; // var notExist = false; // while (!notExist) // { - // var exist = await wmsmaterialsRepository.NameExistAsync(name); - // if (exist || wmsmaterialss.Any(x => x.Name == name)) + // var exist = await wmsMaterialRepository.NameExistAsync(name); + // if (exist || wmsMaterials.Any(x => x.Name == name)) // { // name += WmsMaterialConsts.CloneTag; // continue; @@ -201,13 +203,13 @@ // notExist = true; // } - // //WmsMaterial = await wmsmaterialsRepository.InsertAsync(WmsMaterial.Clone(GuidGenerator.Create(), name, sort++)); - // wmsmaterialss.Add(WmsMaterial); + // //WmsMaterial = await wmsMaterialRepository.InsertAsync(WmsMaterial.Clone(GuidGenerator.Create(), name, sort++)); + // wmsMaterials.Add(WmsMaterial); // } // } //} - //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsmaterialss); + //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsMaterials); return new List<WmsMaterialDto>(); } @@ -218,7 +220,7 @@ /// <returns></returns> public virtual Task DeleteAsync(Guid id) { - return wmsmaterialsRepository.DeleteAsync(id); + return wmsMaterialRepository.DeleteAsync(id); } /// <summary> @@ -242,7 +244,7 @@ /// <returns></returns> public virtual async Task AdjustSortAsync(Guid id, int sort) { - var list = await wmsmaterialsRepository.GetListAsync(null, nameof(WmsMaterial.Sort)); + var list = await wmsMaterialRepository.GetListAsync(null, nameof(WmsMaterial.Sort)); if (list != null && list.Any()) { var initSort = 1; @@ -269,7 +271,7 @@ } } - await wmsmaterialsRepository.UpdateManyAsync(list); + await wmsMaterialRepository.UpdateManyAsync(list); } /// <summary> @@ -282,8 +284,8 @@ { Check.NotNull(input, nameof(input)); - var wmsmaterialsCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>(); - var wmsmaterialsUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialUpdateDto Item)>(); + var wmsMaterialCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>(); + var wmsMaterialUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialUpdateDto Item)>(); var importItems = input.WmsMaterials; if (importItems != null && importItems.Any()) @@ -303,7 +305,7 @@ foreach (var impItem in importItems) { - if (impItem.MaterialCode.IsNullOrWhiteSpace() && impItem.MaterialName.IsNullOrWhiteSpace()) + if (impItem.MaterialCode.IsNullOrWhiteSpace()) { continue; } @@ -314,78 +316,98 @@ throw new UserFriendlyException(errorMsg); } - var oldWmsMaterial = await wmsmaterialsRepository.FindByNameAsync(impItem.MaterialCode); + var oldWmsMaterial = await wmsMaterialRepository.FindByNameAsync(impItem.MaterialCode); if (oldWmsMaterial != null) { - var wmsmaterialsUpdateDto = new WmsMaterialUpdateDto + var wmsMaterialUpdateDto = new WmsMaterialUpdateDto { - MaterialCode = impItem.MaterialCode, - MaterialName = impItem.MaterialName, - PurchaseType = impItem.PurchaseType, - MaterialType = impItem.MaterialType, - PrimaryUnit = impItem.PrimaryUnit, - Standard = impItem.Standard, - OuterDiameter = impItem.OuterDiameter, - WallThickness = impItem.WallThickness, - MaterialQuality = impItem.MaterialQuality, - Length = impItem.Length, - IsMainBranch = impItem.IsMainBranch, - Factory = impItem.Factory, - Certification = impItem.Certification, - Remark = impItem.Remark, + MaterialCode = impItem.MaterialCode, +MaterialName = impItem.MaterialName, +PurchaseType = impItem.PurchaseType, +MaterialType = impItem.MaterialType, +PrimaryUnit = impItem.PrimaryUnit, +Standard = impItem.Standard, +OuterDiameter = impItem.OuterDiameter, +WallThickness = impItem.WallThickness, +MaterialQuality = impItem.MaterialQuality, +Length = impItem.Length, +IsMainBranch = impItem.IsMainBranch, +Factory = impItem.Factory, +Certification = impItem.Certification, +RedundantField1 = impItem.RedundantField1, +RedundantField2 = impItem.RedundantField2, +RedundantField3 = impItem.RedundantField3, +Remark = impItem.Remark, +IsDisabled = impItem.IsDisabled, +CreatorName = impItem.CreatorName, +LastModifierName = impItem.LastModifierName, +ExtraField1 = impItem.ExtraField1, +ExtraField2 = impItem.ExtraField2, +ExtraField3 = impItem.ExtraField3, + }; - wmsmaterialsUpdateDtos.Add((impItem.RowIndex, oldWmsMaterial.Id, wmsmaterialsUpdateDto)); + wmsMaterialUpdateDtos.Add((impItem.RowIndex, oldWmsMaterial.Id, wmsMaterialUpdateDto)); } else { - var wmsmaterialsCreateDto = new WmsMaterialCreateDto + var wmsMaterialCreateDto = new WmsMaterialCreateDto { - MaterialCode = impItem.MaterialCode, - MaterialName = impItem.MaterialName, - PurchaseType = impItem.PurchaseType, - MaterialType = impItem.MaterialType, - PrimaryUnit = impItem.PrimaryUnit, - Standard = impItem.Standard, - OuterDiameter = impItem.OuterDiameter, - WallThickness = impItem.WallThickness, - MaterialQuality = impItem.MaterialQuality, - Length = impItem.Length, - IsMainBranch = impItem.IsMainBranch, - Factory = impItem.Factory, - Certification = impItem.Certification, - Remark = impItem.Remark, + MaterialCode = impItem.MaterialCode, +MaterialName = impItem.MaterialName, +PurchaseType = impItem.PurchaseType, +MaterialType = impItem.MaterialType, +PrimaryUnit = impItem.PrimaryUnit, +Standard = impItem.Standard, +OuterDiameter = impItem.OuterDiameter, +WallThickness = impItem.WallThickness, +MaterialQuality = impItem.MaterialQuality, +Length = impItem.Length, +IsMainBranch = impItem.IsMainBranch, +Factory = impItem.Factory, +Certification = impItem.Certification, +RedundantField1 = impItem.RedundantField1, +RedundantField2 = impItem.RedundantField2, +RedundantField3 = impItem.RedundantField3, +Remark = impItem.Remark, +IsDisabled = impItem.IsDisabled, +CreatorName = impItem.CreatorName, +LastModifierName = impItem.LastModifierName, +ExtraField1 = impItem.ExtraField1, +ExtraField2 = impItem.ExtraField2, +ExtraField3 = impItem.ExtraField3, + }; - wmsmaterialsCreateDtos.Add((impItem.RowIndex, wmsmaterialsCreateDto)); + wmsMaterialCreateDtos.Add((impItem.RowIndex, wmsMaterialCreateDto)); } } } // 鏂板 - foreach (var wmsmaterialsDto in wmsmaterialsCreateDtos) + foreach (var wmsMaterialDto in wmsMaterialCreateDtos) { try { - await CreateAsync(wmsmaterialsDto.Item); + await CreateAsync(wmsMaterialDto.Item); } catch (Exception e) { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialsDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsMaterialDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; throw new UserFriendlyException(errorMsg); } } // 鏇存柊 - foreach (var wmsmaterialsDto in wmsmaterialsUpdateDtos) + foreach (var wmsMaterialDto in wmsMaterialUpdateDtos) { try { - await UpdateAsync(wmsmaterialsDto.Id, wmsmaterialsDto.Item); + await UpdateAsync(wmsMaterialDto.Id, wmsMaterialDto.Item); } catch (Exception e) { - var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialsDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; + var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsMaterialDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; throw new UserFriendlyException(errorMsg); } } @@ -413,7 +435,7 @@ #endregion - var list = await wmsmaterialsRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); + var list = await wmsMaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); var result = ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list); var sheets = new Dictionary<string, object> @@ -421,7 +443,7 @@ ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), }; - var fileName = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増"; + var fileName = result.Count > 1 ? "鐗╂枡鍩虹淇℃伅琛ㄥ垪琛�" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増"; return (sheets, fileName); } 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/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.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/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.cs" index a74d8b0..07c29b7 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.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/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialAutoMapperProfile.cs" @@ -1,26 +1,26 @@ -using AutoMapper; -using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; -using CMS.Plugin.HIAWms.Domain.WmsMaterial; -using Volo.Abp.ObjectExtending; - -namespace CMS.Plugin.HIAWms.Application.MapperProfiles; - -/// <summary> -/// AutoMapper閰嶇疆 -/// </summary> -/// <seealso cref="AutoMapper.Profile" /> -public class WmsMaterialAutoMapperProfile : Profile -{ - /// <summary> - /// Initializes a new instance of the <see cref="WmsMaterialAutoMapperProfile"/> class. - /// </summary> - public WmsMaterialAutoMapperProfile() - { - /* You can configure your AutoMapper mapping configuration here. - * Alternatively, you can split your mapping configurations - * into multiple profile classes for a better organization. */ - CreateMap<WmsMaterial, WmsMaterialDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); - CreateMap<WmsMaterialCreateDto, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); - CreateMap<GetWmsMaterialInput, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); - } -} +using AutoMapper; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; +using CMS.Plugin.HIAWms.Domain.WmsMaterial; +using Volo.Abp.ObjectExtending; + +namespace CMS.Plugin.HIAWms.Application.MapperProfiles; + +/// <summary> +/// 鐗╂枡鍩虹淇℃伅琛ˋutoMapper閰嶇疆 +/// </summary> +/// <seealso cref="AutoMapper.Profile" /> +public class WmsMaterialAutoMapperProfile : Profile +{ + /// <summary> + /// Initializes a new instance of the <see cref="WmsMaterialAutoMapperProfile"/> class. + /// </summary> + public WmsMaterialAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + CreateMap<WmsMaterial, WmsMaterialDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); + CreateMap<WmsMaterialCreateDto, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); + CreateMap<GetWmsMaterialInput, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); + } +} 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/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.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/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" index 73cd64c..5ea2588 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.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/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" @@ -35,19 +35,19 @@ return await (await GetDbSetAsync()) .IncludeDetails() .Where(x => !x.IsDeleted) - .OrderBy(t => t.Sort) + .OrderByDescending(x=>x.CreationTime) .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken)); } /// <summary> /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡鍩虹淇℃伅琛� /// </summary> - /// <param name="materialCode"></param> + /// <param name="name">鏍¢獙鍊�</param> /// <param name="id"></param> /// <returns></returns> - public async Task<bool> NameExistAsync(string materialCode, Guid? id = null) + public async Task<bool> NameExistAsync(string name, Guid? id = null) { - return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode); + return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == name); } /// <summary> @@ -84,7 +84,7 @@ .IncludeDetails(includeDetails) .WhereIf(whereConditions != null, whereConditions.data) .Where(x => !x.IsDeleted) - //.OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterial.Sort) : sorting) + .OrderByDescending(x=>x.CreationTime) .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } 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/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.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/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs" index 9060e10..8872c9b 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.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/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialController.cs" @@ -23,15 +23,15 @@ [Route("api/v{version:apiVersion}/HIAWms/[controller]")] public class WmsMaterialController : ControllerBase { - private readonly IWmsMaterialAppService _wmsmaterialsAppService; + private readonly IWmsMaterialAppService _wmsMaterialAppService; /// <summary> /// Initializes a new instance of the <see cref="WmsMaterialController"/> class. /// </summary> - /// <param name="wmsmaterialsAppService">The wmsmaterials application service.</param> - public WmsMaterialController(IWmsMaterialAppService wmsmaterialsAppService) + /// <param name="wmsMaterialAppService">The wmsMaterial application service.</param> + public WmsMaterialController(IWmsMaterialAppService wmsMaterialAppService) { - _wmsmaterialsAppService = wmsmaterialsAppService; + _wmsMaterialAppService = wmsMaterialAppService; } /// <summary> @@ -43,7 +43,7 @@ [Route("{id}")] public virtual Task<WmsMaterialDto> GetAsync(Guid id) { - return _wmsmaterialsAppService.GetAsync(id); + return _wmsMaterialAppService.GetAsync(id); } /// <summary> @@ -55,7 +55,7 @@ [Route("Page")] public virtual Task<PagedResultDto<WmsMaterialDto>> GetListAsync([FromQuery] GetWmsMaterialInput input) { - return _wmsmaterialsAppService.GetListAsync(input); + return _wmsMaterialAppService.GetListAsync(input); } /// <summary> @@ -67,7 +67,7 @@ [HttpPost] public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) { - return _wmsmaterialsAppService.CreateAsync(input); + return _wmsMaterialAppService.CreateAsync(input); } /// <summary> @@ -81,7 +81,7 @@ [Route("{id}")] public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) { - return _wmsmaterialsAppService.UpdateAsync(id, input); + return _wmsMaterialAppService.UpdateAsync(id, input); } /// <summary> @@ -94,7 +94,7 @@ [Route("Clone")] public virtual Task<List<WmsMaterialDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) { - return _wmsmaterialsAppService.CloneAsync(ids); + return _wmsMaterialAppService.CloneAsync(ids); } /// <summary> @@ -107,7 +107,7 @@ [Route("{id}")] public virtual Task DeleteAsync(Guid id) { - return _wmsmaterialsAppService.DeleteAsync(id); + return _wmsMaterialAppService.DeleteAsync(id); } /// <summary> @@ -119,7 +119,7 @@ [HttpDelete] public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) { - return _wmsmaterialsAppService.DeleteManyAsync(ids); + return _wmsMaterialAppService.DeleteManyAsync(ids); } /// <summary> @@ -131,7 +131,7 @@ [Route("{id}/AdjustSort/{sort}")] public virtual Task AdjustSortAsync(Guid id, int sort) { - return _wmsmaterialsAppService.AdjustSortAsync(id, sort); + return _wmsMaterialAppService.AdjustSortAsync(id, sort); } /// <summary> @@ -148,16 +148,16 @@ stream.Seek(0L, SeekOrigin.Begin); var sheetNames = stream.GetSheetNames(); - var wmsmaterialsRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); + var wmsMaterialRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); - if (!wmsmaterialsRows.Any()) + if (!wmsMaterialRows.Any()) { throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); } - await _wmsmaterialsAppService.ImportAsync(new WmsMaterialsImportModel + await _wmsMaterialAppService.ImportAsync(new WmsMaterialsImportModel { - WmsMaterials = wmsmaterialsRows, + WmsMaterials = wmsMaterialRows, }); return Ok(); @@ -172,7 +172,7 @@ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInput input) { input.MaxResultCount = int.MaxValue; - var exportData = await _wmsmaterialsAppService.ExportAsync(input); + var exportData = await _wmsMaterialAppService.ExportAsync(input); var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterial瀵煎嚭妯℃澘.xlsx"); if (!System.IO.File.Exists(templatePath)) { 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/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "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/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" index 16a561b..d0f2d3d 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/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" +++ "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/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterial\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" Binary files differ 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/templatedemo_web/components.d.ts" "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/templatedemo_web/components.d.ts" index d7ad7c9..988c7da 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/Weben_CMS_TemplateDemo/templatedemo_web/components.d.ts" +++ "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/templatedemo_web/components.d.ts" @@ -24,6 +24,7 @@ ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] + ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] ElDrawer: typeof import('element-plus/es')['ElDrawer'] 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/templatedemo_web/src/config/menu.ts" "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/templatedemo_web/src/config/menu.ts" index bb14372..ed2626a 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/Weben_CMS_TemplateDemo/templatedemo_web/src/config/menu.ts" +++ "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/templatedemo_web/src/config/menu.ts" @@ -7,6 +7,13 @@ "notPage": false }, { + "name": "鐗╂枡淇℃伅", + "path": "/information-base/WmsMaterial", + "patchName": "WmsMaterial", + "icon": "p", + "notPage": false + }, + { "name": "鍑哄叆搴撹褰�", "path": "/information-base/WmsInOutStockRecord", "patchName": "WmsInOutStockRecord", @@ -43,6 +50,13 @@ "icon": "p", "notPage": false }, + "WmsMaterial": { + "name": "鐗╂枡淇℃伅", + "path": "/information-base/WmsMaterial", + "patchName": "WmsMaterial", + "icon": "p", + "notPage": false + }, "WmsInOutStockRecord": { "name": "鍑哄叆搴撹褰�", "path": "/information-base/WmsInOutStockRecord", 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/templatedemo_web/src/widgets/WmsMaterial/Controllers/File.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Controllers/File.ts" new file mode 100644 index 0000000..9162fef --- /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/templatedemo_web/src/widgets/WmsMaterial/Controllers/File.ts" @@ -0,0 +1,31 @@ +import { importFileToService, exportFileToClient } from '@/api/file' +import { ElMessage } from 'element-plus' +import { downloadFile } from '@/utils' +import dayjs from 'dayjs' + +export const useFile = () => { + /** + * 瀵煎叆鏂囦欢 + * @param url + */ + const importFile = async (url: string, file: File) => { + const formData = new FormData() + formData.append('file', file) + await importFileToService(url, formData) + ElMessage('瀵煎叆鎴愬姛') + } + /** + * 瀵煎嚭鏂囦欢 + * @param url + */ + const exportFile = async (url: string, params: any, name: string) => { + const res = await exportFileToClient(url, params) + downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`) + ElMessage.success('瀵煎嚭鎴愬姛') + } + + return { + importFile, + exportFile, + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterial.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterial.ts" new file mode 100644 index 0000000..77bd910 --- /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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterial.ts" @@ -0,0 +1,275 @@ +import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterial } from '../Models/WmsMaterial' +import { ElMessage } from 'element-plus' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { useFile } from './File' + +interface CurrentType { + row: any + index: number +} +export const useWmsMaterial = (props: any, ctx?: any) => { + const wmsMaterial = injectModel<WmsMaterial>('wmsMaterial') + const { exportFile } = useFile() + /** + * 澶撮儴閰嶇疆 + */ + const headers = ref({}) + /** + * 鍔ㄦ�佸垪閰嶇疆 + */ + const wmsMaterialColumns = ref<Record<string, any>>([]) + /** + * 鎼滅储鍊� + */ + const search = ref('') + + /** + * 鎺掑簭 + */ + const sort = ref(0) + /** + * 閫夋嫨椤� + */ + const selection = ref([]) + /** + * 褰撳墠閫変腑鐨勮 + */ + const current = ref<any>(null) + /** + * 鏁版嵁婧� + */ + const dataSource: Ref<any[]> = ref([]) + + /** + * 琛ㄦ牸 + */ + const tableRef = ref() + const dialogConfig = reactive({ + visible: false, + title: '', + isAdd: false, + }) + const dialogConfigForQuery = reactive({ + visible: false, + title: '', + isAdd: false, + }) + + + const dialogSettingConfig = reactive({ + visible: false, + title: '', + }) + + /** + * 鍒嗛〉鏁版嵁 + */ + const paginationParams = ref({}) + + /** + * 鎵撳紑璇︽儏 + * @param row + */ + const openDetail = (row: any) => { + current.value = row + dialogConfig.visible = true + dialogConfig.title = row.name + dialogConfig.isAdd = false + sort.value = row.sort + } + + const contextMenu = [ + { + label: '灞曞紑璇︽儏', + fn: (c: CurrentType) => { + current.value = null + sort.value = c.row.sort + nextTick(() => openDetail(c.row)) + }, + divided: true, + icon: 'o', + }, + // { + // label: '鍚戜笂娣诲姞', + // fn: (c: CurrentType, pageNum: number) => { + // current.value = null + // sort.value = c.index + 1 + (pageNum - 1) * 50 + // dialogConfig.visible = true + // dialogConfig.title = '娣诲姞' + // dialogConfig.isAdd = false + // }, + // divided: true, + // icon: 'up', + // }, + // { + // label: '鍚戜笅娣诲姞', + // fn: (c: CurrentType, pageNum: number) => { + // current.value = null + // sort.value = c.index + 2 + (pageNum - 1) * 50 + // dialogConfig.visible = true + // dialogConfig.title = '娣诲姞' + // dialogConfig.isAdd = false + // }, + // divided: true, + // icon: 'down', + // }, + // { + // label: '鍒涘缓鍓湰', + // fn: async ({ row }: CurrentType) => { + // await wmsMaterial.cloneData([row.id]) + // ElMessage.success('鍒涘缓鍓湰鎴愬姛') + // tableRef.value?.getList() + // }, + // divided: true, + // icon: 'copy', + // }, + { + label: '鍒犻櫎', + fn: async (c: CurrentType) => { + const names = selection.value.map((item: { materialCode: string }) => item.materialCode) + ConfirmBox( + `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.materialCode}` + ).then(async () => { + const ids = selection.value.map((item: { id: string }) => item.id) + await wmsMaterial.deleteWmsMaterials(ids.length ? ids : [c.row.id]) + ElMessage.success('鍒犻櫎鎴愬姛') + tableRef.value.getList() + }) + }, + icon: 'close', + }, + ] + + const onCheck = (records: any) => { + selection.value = records + } + + const onAddWmsMaterial = () => { + const params = tableRef.value?.getPaginationParams() + current.value = null + dialogConfig.visible = true + dialogConfig.isAdd = true + dialogConfig.title = '娣诲姞' + sort.value = params.totalCount + 1 + } + + //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€�� + const onAdvancedQuery = () => { + const params = tableRef.value?.getPaginationParams() + current.value = null + dialogConfigForQuery.visible = true + dialogConfigForQuery.isAdd = true + dialogConfigForQuery.title = '楂樼骇鏌ヨ' + } + + const onConfirmWmsMaterial = async () => { + dialogConfig.visible = false + if (dialogConfig.isAdd) { + tableRef.value?.scrollToRow({ + skip: true, + }) + } else { + await tableRef.value?.getList() + } + } + /** + * 琛岀偣鍑绘椂鏇存柊current + */ + const onRowClick = ({ row }: any) => { + if (dialogConfig.visible && current.value) { + current.value = row + } + } + /** + * 瀵煎嚭 + */ + const onExport = (data={}) => { + //const params = tableRef.value?.getParams() + exportFile('/api/v1/HIAWms/wmsMaterial/export', data, 'wmsMaterial') + } + + /** + * 鍏抽敭瀛楁悳绱� + */ + const onSearch = () => { + tableRef.value?.getList({ + Filter: search.value, + }) + } + + /** + * 閲嶇疆琛ㄦ牸鏁版嵁 + */ + const reloadList = () => { + tableRef.value?.getList() + } + /** + * 涓婁紶鎴愬姛 + */ + const onSuccess = () => { + tableRef.value?.getList() + ElMessage.success('瀵煎叆鎴愬姛') + } + /** + * 澶辫触 + * @param err + */ + const onError = (err: any) => { + try { + const message = JSON.parse(err.message) + ElMessage.error(message.msg) + } catch (error) { + ElMessage.error('瀵煎叆澶辫触') + } + } + /** + * 涓婁紶閽╁瓙 + */ + const onBeforeUpload = (file: File) => { + const format = ['xlsx', 'xls', 'csv'] + if (!format.includes(file.name.split('.')[1])) { + ElMessage.error('瀵煎叆鏂囦欢鏍煎紡涓嶆纭紝璇峰鍏�.xlsx/.xls涓�.csv鏍煎紡鐨勬枃浠�') + return false + } + return true + } + + onMounted(() => { + headers.value = { + Authorization: `Bearer ${sessionStorage.getItem('Token')}`, + 'X-Project': sessionStorage.getItem('X-Project'), + } + }) + + ctx.expose({ + reloadList, + }) + + return { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + dialogSettingConfig, + tableRef, + current, + search, + sort, + wmsMaterialColumns, + paginationParams, + headers, + onBeforeUpload, + onError, + onSuccess, + openDetail, + onSearch, + onExport, + onRowClick, + onConfirmWmsMaterial, + onCheck, + onAddWmsMaterial, + onAdvancedQuery + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialDrawer.tsx" "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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialDrawer.tsx" new file mode 100644 index 0000000..9c2a023 --- /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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialDrawer.tsx" @@ -0,0 +1,427 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterialDrawer } from '../Models/WmsMaterialDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsMaterialDrawer = (props: any, ctx?: any) => { + const wmsMaterialDrawer = injectModel<WmsMaterialDrawer>('wmsMaterialDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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 datePicker = (attrs) => { + return ( + <el-date-picker + type="date" + format="YYYY-MM-DD HH:mm:ss" + formatValue="YYYY-MM-DD HH:mm:ss" + {...attrs} + ></el-date-picker> + ) + } + const inputNumber = (attrs) => { + return ( + <el-input-number + min="1" + step="1" + precision="0" + {...attrs} + ></el-input-number> + ) + } + + const dateTimePicker = (attrs) => { + return ( + <el-date-picker + type="datetime" + format="YYYY-MM-DD HH:mm:ss" + formatValue="YYYY-MM-DD HH:mm:ss" + {...attrs} + ></el-date-picker> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�', + prop: 'materialCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮侊紙鍞竴鏍囪瘑锛�', + rules: [{required: true, message: '鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛変笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '鐗╂枡鍚嶇О', + prop: 'materialName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', + rules: [{required: true, message: '鐗╂枡鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '閲囪喘绫诲瀷锛堟灇涓惧�硷級', + prop: 'purchaseType', + el: 'select', + options: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ラ噰璐被鍨嬶紙鏋氫妇鍊硷級', + rules: [{required: true, message: '閲囪喘绫诲瀷锛堟灇涓惧�硷級涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鐗╂枡绫诲瀷锛堟灇涓惧�硷級', + prop: 'materialType', + el: 'select', + options: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欑被鍨嬶紙鏋氫妇鍊硷級', + rules: [{required: true, message: '鐗╂枡绫诲瀷锛堟灇涓惧�硷級涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�', + prop: 'primaryUnit', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ富鍗曚綅锛堝锛歬g銆乵銆佷釜锛�', + }, + { + label: '瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�', + prop: 'standard', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鏍�/鏍囧噯锛堝锛欸B/T 8163-2018锛�', + }, + { + label: '澶栧緞锛堝崟浣嶏細mm锛�', + prop: 'outerDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ寰勶紙鍗曚綅锛歮m锛�', + rules: [{required: true, message: '澶栧緞锛堝崟浣嶏細mm锛変笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '澹佸帤锛堝崟浣嶏細mm锛�', + prop: 'wallThickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍘氾紙鍗曚綅锛歮m锛�', + rules: [{required: true, message: '澹佸帤锛堝崟浣嶏細mm锛変笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '鏉愯川锛堝锛�304涓嶉攬閽級', + prop: 'materialQuality', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潗璐紙濡傦細304涓嶉攬閽級', + }, + { + label: '闀垮害锛堝崟浣嶏細m锛�', + prop: 'length', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ラ暱搴︼紙鍗曚綅锛歮锛�', + rules: [{required: true, message: '闀垮害锛堝崟浣嶏細m锛変笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '鏄惁涓轰富鏀', + prop: 'isMainBranch', + el: 'select', + options: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ユ槸鍚︿负涓绘敮绠�', + rules: [{required: true, message: '鏄惁涓轰富鏀涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鐢熶骇宸ュ巶', + prop: 'factory', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ敓浜у伐鍘�', + }, + { + label: '璇佷功缂栧彿', + prop: 'certification', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ瘉涔︾紪鍙�', + }, + { + label: '鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��', + prop: 'redundantField1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�1 - 棰勭暀鎵╁睍鐢ㄩ��', + }, + { + label: '鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��', + prop: 'redundantField2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�2 - 棰勭暀鎵╁睍鐢ㄩ��', + }, + { + label: '鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��', + prop: 'redundantField3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�3 - 棰勭暀鎵╁睍鐢ㄩ��', + }, + { + label: '鍒涘缓浜�', + prop: 'creatorName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ垱寤轰汉', + }, + { + label: '淇敼浜�', + prop: 'lastModifierName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ慨鏀逛汉', + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + }, + { + label: '鎵╁睍瀛楁1', + prop: 'extraField1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墿灞曞瓧娈�1', + }, + { + label: '鎵╁睍瀛楁2', + prop: 'extraField2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墿灞曞瓧娈�2', + }, + { + label: '鎵╁睍瀛楁3', + prop: 'extraField3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墿灞曞瓧娈�3', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + 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 = { + materialCode: formData.value.materialCode, +materialName: formData.value.materialName, +purchaseType: formData.value.purchaseType, +materialType: formData.value.materialType, +primaryUnit: formData.value.primaryUnit, +standard: formData.value.standard, +outerDiameter: formData.value.outerDiameter, +wallThickness: formData.value.wallThickness, +materialQuality: formData.value.materialQuality, +length: formData.value.length, +isMainBranch: formData.value.isMainBranch, +factory: formData.value.factory, +certification: formData.value.certification, +redundantField1: formData.value.redundantField1, +redundantField2: formData.value.redundantField2, +redundantField3: formData.value.redundantField3, +creatorName: formData.value.creatorName, +lastModifierName: formData.value.lastModifierName, +remark: formData.value.remark, +extraField1: formData.value.extraField1, +extraField2: formData.value.extraField2, +extraField3: formData.value.extraField3, + } + if (!current.value) { + await wmsMaterialDrawer.addWmsMaterial(data) + } else { + const id = current.value.id + await wmsMaterialDrawer.updateWmsMaterial(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 purchaseTypeEnumEnum = await wmsMaterialDrawer.getWmsEnumData({ + EnumName: 'PurchaseTypeEnum', +}) +updateFormItemOptions('purchaseType', purchaseTypeEnumEnum) +const materialTypeEnumEnum = await wmsMaterialDrawer.getWmsEnumData({ + EnumName: 'MaterialTypeEnum', +}) +updateFormItemOptions('materialType', materialTypeEnumEnum) +const yesNoEnumEnum = await wmsMaterialDrawer.getWmsEnumData({ + EnumName: 'YesNoEnum', +}) +updateFormItemOptions('isMainBranch', yesNoEnumEnum) + + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await wmsMaterialDrawer.getWmsMaterialDetail(current.value) + + formData.value = { + materialCode: res.materialCode, +materialName: res.materialName, +purchaseType: res.purchaseType, +materialType: res.materialType, +primaryUnit: res.primaryUnit, +standard: res.standard, +outerDiameter: res.outerDiameter, +wallThickness: res.wallThickness, +materialQuality: res.materialQuality, +length: res.length, +isMainBranch: res.isMainBranch, +factory: res.factory, +certification: res.certification, +redundantField1: res.redundantField1, +redundantField2: res.redundantField2, +redundantField3: res.redundantField3, +creatorName: res.creatorName, +lastModifierName: res.lastModifierName, +remark: res.remark, +extraField1: res.extraField1, +extraField2: res.extraField2, +extraField3: res.extraField3, + 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/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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialQueryDrawer.tsx" "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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialQueryDrawer.tsx" new file mode 100644 index 0000000..e629cb1 --- /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/templatedemo_web/src/widgets/WmsMaterial/Controllers/WmsMaterialQueryDrawer.tsx" @@ -0,0 +1,427 @@ +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsMaterialDrawer } from '../Models/WmsMaterialDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsMaterialQueryDrawer = (props: any, ctx?: any) => { + const wmsMaterialDrawer = injectModel<WmsMaterialDrawer>('WmsMaterialDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + 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 datePickerRange = (attrs) => { + return ( + <el-date-picker + type="daterange" + value-format="YYYY-MM-DD HH:mm:ss" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + {...attrs} + ></el-date-picker> + ) + } + + const dateTimePickerRange = (attrs) => { + return ( + <el-date-picker + type="datetimerange" + value-format="YYYY-MM-DD HH:mm:ss" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + {...attrs} + ></el-date-picker> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�', + prop: 'materialCode', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮侊紙鍞竴鏍囪瘑锛�', + }, + { + label: '鐗╂枡鍚嶇О', + prop: 'materialName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�', + }, + { + label: '閲囪喘绫诲瀷锛堟灇涓惧�硷級', + prop: 'purchaseType', + el: 'select', + option: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ラ噰璐被鍨嬶紙鏋氫妇鍊硷級', + }, + { + label: '鐗╂枡绫诲瀷锛堟灇涓惧�硷級', + prop: 'materialType', + el: 'select', + option: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ョ墿鏂欑被鍨嬶紙鏋氫妇鍊硷級', + }, + { + label: '涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�', + prop: 'primaryUnit', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ富鍗曚綅锛堝锛歬g銆乵銆佷釜锛�', + }, + { + label: '瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�', + prop: 'standard', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ鏍�/鏍囧噯锛堝锛欸B/T 8163-2018锛�', + }, + { + label: '澶栧緞锛堝崟浣嶏細mm锛�', + prop: 'outerDiameter', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ寰勶紙鍗曚綅锛歮m锛�', + }, + { + label: '澹佸帤锛堝崟浣嶏細mm锛�', + prop: 'wallThickness', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ュ鍘氾紙鍗曚綅锛歮m锛�', + }, + { + label: '鏉愯川锛堝锛�304涓嶉攬閽級', + prop: 'materialQuality', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潗璐紙濡傦細304涓嶉攬閽級', + }, + { + label: '闀垮害锛堝崟浣嶏細m锛�', + prop: 'length', + el: (props: any, { attrs }: SetupContext) => { + return h(inputNumber, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + step: 0.01, + precision: 2, + //disabled: disabled, + placeholder: '璇疯緭鍏ラ暱搴︼紙鍗曚綅锛歮锛�', + }, + { + label: '鏄惁涓轰富鏀', + prop: 'isMainBranch', + el: 'select', + option: [], + //disabled: disabled, + placeholder: '璇疯緭鍏ユ槸鍚︿负涓绘敮绠�', + }, + { + label: '鐢熶骇宸ュ巶', + prop: 'factory', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ敓浜у伐鍘�', + }, + { + label: '璇佷功缂栧彿', + prop: 'certification', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ瘉涔︾紪鍙�', + }, + { + label: '鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��', + prop: 'redundantField1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�1 - 棰勭暀鎵╁睍鐢ㄩ��', + }, + { + label: '鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��', + prop: 'redundantField2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�2 - 棰勭暀鎵╁睍鐢ㄩ��', + }, + { + label: '鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��', + prop: 'redundantField3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ啑浣欏瓧娈�3 - 棰勭暀鎵╁睍鐢ㄩ��', + }, + { + label: '鍒涘缓鏃堕棿', + prop: 'creationTime', + el: (props: any, { attrs }: SetupContext) => { + return h(dateTimePickerRange, { + ...props, + clearable: true, + ...attrs, + }) + }, + width: '100%', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ垱寤烘椂闂�', + }, + { + label: '鍒涘缓浜�', + prop: 'creatorName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ垱寤轰汉', + }, + { + label: '淇敼浜�', + prop: 'lastModifierName', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ慨鏀逛汉', + }, + { + label: '澶囨敞', + prop: 'remark', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ娉�', + }, + { + label: '鏄惁绂佺敤', + prop: 'isDisabled', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ槸鍚︾鐢�', + options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] + }, + { + label: '鎵╁睍瀛楁1', + prop: 'extraField1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墿灞曞瓧娈�1', + }, + { + label: '鎵╁睍瀛楁2', + prop: 'extraField2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墿灞曞瓧娈�2', + }, + { + label: '鎵╁睍瀛楁3', + prop: 'extraField3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墿灞曞瓧娈�3', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + const commonGetFormData=()=>{ + const data = { + materialCode: formData.value.materialCode || '', +materialName: formData.value.materialName || '', +purchaseType: formData.value.purchaseType || '', +materialType: formData.value.materialType || '', +primaryUnit: formData.value.primaryUnit || '', +standard: formData.value.standard || '', +outerDiameter: formData.value.outerDiameter || '', +wallThickness: formData.value.wallThickness || '', +materialQuality: formData.value.materialQuality || '', +length: formData.value.length || '', +isMainBranch: formData.value.isMainBranch || '', +factory: formData.value.factory || '', +certification: formData.value.certification || '', +redundantField1: formData.value.redundantField1 || '', +redundantField2: formData.value.redundantField2 || '', +redundantField3: formData.value.redundantField3 || '', +creationTime: formData.value.creationTime || '', +creatorName: formData.value.creatorName || '', +lastModifierName: formData.value.lastModifierName || '', +remark: formData.value.remark || '', +isDisabled: formData.value.isDisabled || '', +extraField1: formData.value.extraField1 || '', +extraField2: formData.value.extraField2 || '', +extraField3: formData.value.extraField3 || '', + } + return data; + } + const onClose = (done: () => void) => { + if (visible.value) { + visible.value = false + const data =commonGetFormData(); + ctx.emit('close', data) + } + } + /** + * 纭鏌ヨ + */ + const onConfirmQuery = async () => { + const data =commonGetFormData(); + ctx.emit('confirmQuery', data) + } + /** + * 閲嶇疆鏌ヨ + */ + const onReset = async () => { + formData.value = {} + formData.value.MaterialCode = '' +formData.value.MaterialName = '' +formData.value.PurchaseType = '' +formData.value.MaterialType = '' +formData.value.PrimaryUnit = '' +formData.value.Standard = '' +formData.value.OuterDiameter = '' +formData.value.WallThickness = '' +formData.value.MaterialQuality = '' +formData.value.Length = '' +formData.value.IsMainBranch = '' +formData.value.Factory = '' +formData.value.Certification = '' +formData.value.RedundantField1 = '' +formData.value.RedundantField2 = '' +formData.value.RedundantField3 = '' +formData.value.CreatorName = '' +formData.value.LastModifierName = '' +formData.value.Remark = '' +formData.value.ExtraField1 = '' +formData.value.ExtraField2 = '' +formData.value.ExtraField3 = '' + //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢 + ctx.emit('restQuery'); + } + + 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 purchaseTypeEnumEnum = await wmsMaterialDrawer.getWmsEnumData({ + EnumName: 'PurchaseTypeEnum', +}) +updateFormItemOptions('purchaseType', purchaseTypeEnumEnum) +const materialTypeEnumEnum = await wmsMaterialDrawer.getWmsEnumData({ + EnumName: 'MaterialTypeEnum', +}) +updateFormItemOptions('materialType', materialTypeEnumEnum) +const yesNoEnumEnum = await wmsMaterialDrawer.getWmsEnumData({ + EnumName: 'YesNoEnum', +}) +updateFormItemOptions('isMainBranch', yesNoEnumEnum) + + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + disabled.value = false + updateCheckData() + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirmQuery, + onReset, + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterial.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterial.ts" new file mode 100644 index 0000000..ee101f4 --- /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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterial.ts" @@ -0,0 +1,30 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterial = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterial', data) +} + +/** + * 鎵归噺鍒犻櫎 + * @returns + */ +export const deleteWmsMaterials = (ids: string[]) => { + return request({ + data: ids, + url: '/api/v1/HIAWms/wmsMaterial', + method: 'delete', + }) +} + +/** + * 鍏嬮殕 + * @returns + */ +export const cloneData = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterial/clone', data) +} 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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialDrawer.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialDrawer.ts" new file mode 100644 index 0000000..2f46cae --- /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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialDrawer.ts" @@ -0,0 +1,34 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterial = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterial', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWmsMaterial = (id: string) => { + return request.get(`/api/v1/HIAWms/wmsMaterial/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWmsMaterial = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/HIAWms/wmsMaterial/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) +} 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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialQueryDrawer.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialQueryDrawer.ts" new file mode 100644 index 0000000..8302c94 --- /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/templatedemo_web/src/widgets/WmsMaterial/Models/Service/WmsMaterialQueryDrawer.ts" @@ -0,0 +1,35 @@ +import { Base } from '@/libs/Base/Base' +const request = Base.request + +/** + * 娣诲姞 + * @returns + */ +export const addWmsMaterial = (data: any) => { + return request.post('/api/v1/HIAWms/wmsMaterial', data) +} + +/** + * 鑾峰彇璇︽儏 + * @returns + */ +export const getWmsMaterial = (id: string) => { + return request.get(`/api/v1/HIAWms/wmsMaterial/${id}`) +} + +/** + * 鏇存柊 + * @returns + */ +export const updateWmsMaterial = (id: string, data: Record<string, any>) => { + return request.put(`/api/v1/HIAWms/wmsMaterial/${id}`, data) +} + +/** + * 鑾峰彇鏋氫妇 + * @returns + */ +export const getWmsEnumData = (data: any) => { + return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) +} + 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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterial.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterial.ts" new file mode 100644 index 0000000..faa9d62 --- /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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterial.ts" @@ -0,0 +1,41 @@ +import { Base } from '@/libs/Base/Base' +import { + deleteWmsMaterials, + addWmsMaterial, + cloneData, +} from './Service/WmsMaterial' + +export class WmsMaterial extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + }) + } + onMounted() {} + /** + * 鍒犻櫎 + * @param id + * @returns + */ + async deleteWmsMaterials(ids: string[]) { + return deleteWmsMaterials(ids) + } + + /** + * 娣诲姞鏁版嵁 + * @param data + * @returns + */ + addWmsMaterial(data: Record<string, any>) { + return addWmsMaterial(data) + } + + /** + * 鍏嬮殕 + * @param ids + * @returns + */ + cloneData(ids: string[]) { + return cloneData(ids) + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialDrawer.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialDrawer.ts" new file mode 100644 index 0000000..2129a69 --- /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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialDrawer.ts" @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWmsMaterial, + getWmsMaterial, + updateWmsMaterial, + getWmsEnumData, +} from './Service/WmsMaterialDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WmsMaterialDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + wmsMaterial: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWmsMaterial(data: Record<string, any>) { + return addWmsMaterial(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWmsMaterial(id: string, data: Record<string, any>) { + return updateWmsMaterial(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWmsMaterialDetail(current: any, id?: string) { + return getWmsMaterial(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialQueryDrawer.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialQueryDrawer.ts" new file mode 100644 index 0000000..ca0ed17 --- /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/templatedemo_web/src/widgets/WmsMaterial/Models/WmsMaterialQueryDrawer.ts" @@ -0,0 +1,44 @@ +import { Base } from '@/libs/Base/Base' +import { + addWmsMaterial, + getWmsMaterial, + updateWmsMaterial, + getWmsEnumData, +} from './Service/WmsMaterialQueryDrawer' +import { useGlobalState } from '@/libs/Store/Store' + +export class WmsMaterialQueryDrawer extends Base<{ [key: string]: any }> { + constructor() { + super({ + data: [], + wmsMaterial: {}, + }) + } + + /** + * 娣诲姞 + * @param data + */ + async addWmsMaterial(data: Record<string, any>) { + return addWmsMaterial(data) + } + /** + * 鏇存柊 + * @param data + */ + async updateWmsMaterial(id: string, data: Record<string, any>) { + return updateWmsMaterial(id, data) + } + + /** + * 鑾峰彇璇︽儏 + */ + async getWmsMaterialDetail(current: any, id?: string) { + return getWmsMaterial(id || current?.id) + } + + // 鑾峰彇鏋氫妇鍊� + async getWmsEnumData(data: Record<string, any>) { + return getWmsEnumData(data) + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss" new file mode 100644 index 0000000..177adca --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss" @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx" new file mode 100644 index 0000000..e24b256 --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx" @@ -0,0 +1,61 @@ +import { SetupContext, defineComponent } from 'vue' +import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' +import styles from './WmsMaterialDrawer.module.scss' +import { useWmsMaterialDrawer } from '../../../../Controllers/WmsMaterialDrawer.tsx' +import DyForm from '@/components/DyForm/DyForm' + +// @ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + name: '寮圭獥', + props: { + modelValue: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + row: { + type: Object, + }, + sort: { + type: Number, + default: 0, + }, + }, + emits: ['update:modelValue', 'close', 'submit', 'confirm'], + setup(props: Record<string, any>, ctx: SetupContext) { + const { + onClose, + onConfirm, + onOpen, + formRef, + visible, + formItems, + formData, + } = useWmsMaterialDrawer(props, ctx) + return () => ( + <BaseDrawer + class={styles.drawer} + size="800px" + title={props.title || '娣诲姞'} + v-model={visible.value} + close-on-click-modal={true} + onConfirm={onConfirm} + onOpen={onOpen} + before-close={onClose} + onClose={onClose} + > + <DyForm + ref={formRef} + formData={formData.value} + labelWidth="106px" + formItemProps={formItems} + ></DyForm> + </BaseDrawer> + ) + }, +}) 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" new file mode 100644 index 0000000..177adca --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss" @@ -0,0 +1,3 @@ +.drawer { + width: 800px; +} 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx" new file mode 100644 index 0000000..df1e463 --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx" @@ -0,0 +1,71 @@ +/* + * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� +*/ +import { SetupContext, defineComponent } from 'vue' +import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' +import styles from './WmsMaterialQueryDrawer.module.scss' +import { useWmsMaterialQueryDrawer } from '../../../../Controllers/WmsMaterialQueryDrawer.tsx' +import DyForm from '@/components/DyForm/DyForm' + +// @ts-ignore +export default defineComponent<{ + [key: string]: any +}>({ + name: '寮圭獥', + props: { + //鏋氫妇绫诲瀷瀛楀吀 + enumListDict:{ + type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 + default: () => [] // 榛樿鍊� + }, + modelValue: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '', + }, + row: { + type: Object, + }, + sort: { + type: Number, + default: 0, + }, + }, + emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], + setup(props: Record<string, any>, ctx: SetupContext) { + const { + onClose, + onConfirmQuery, + onOpen, + onReset, + formRef, + visible, + formItems, + formData, + } = useWmsMaterialQueryDrawer(props, ctx) + return () => ( + <BaseQueryDrawer + class={styles.drawer} + size="800px" + title={props.title || '楂樼骇鏌ヨ'} + v-model={visible.value} + close-on-click-modal={true} + onReset={onReset} + onConfirmQueryForBase={onConfirmQuery} + onOpen={onOpen} + before-close={onClose} + onClose={onClose} + > + <DyForm + ref={formRef} + formData={formData.value} + labelWidth="106px" + formItemProps={formItems} + ></DyForm> + </BaseQueryDrawer> + ) + }, +}) 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/Config.ts" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/Config.ts" new file mode 100644 index 0000000..fc2084a --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/Config.ts" @@ -0,0 +1,132 @@ +export const columns = [ + { + type: 'seq', + width: 60, + title: '搴忓彿', + }, + { + field: 'materialCode', + title: '鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�', + width:160, +}, +{ + field: 'materialName', + title: '鐗╂枡鍚嶇О', + width:160, +}, +{ + field: 'purchaseTypeDesc', + title: '閲囪喘绫诲瀷锛堟灇涓惧�硷級', + width:160, +}, +{ + field: 'materialTypeDesc', + title: '鐗╂枡绫诲瀷锛堟灇涓惧�硷級', + width:160, +}, +{ + field: 'primaryUnit', + title: '涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�', + width:160, +}, +{ + field: 'standard', + title: '瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�', + width:160, +}, +{ + field: 'outerDiameter', + title: '澶栧緞锛堝崟浣嶏細mm锛�', + width:160, +}, +{ + field: 'wallThickness', + title: '澹佸帤锛堝崟浣嶏細mm锛�', + width:160, +}, +{ + field: 'materialQuality', + title: '鏉愯川锛堝锛�304涓嶉攬閽級', + width:160, +}, +{ + field: 'length', + title: '闀垮害锛堝崟浣嶏細m锛�', + width:160, +}, +{ + field: 'isMainBranchDesc', + title: '鏄惁涓轰富鏀', + width:160, +}, +{ + field: 'factory', + title: '鐢熶骇宸ュ巶', + width:160, +}, +{ + field: 'certification', + title: '璇佷功缂栧彿', + width:160, +}, +{ + field: 'redundantField1', + title: '鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��', + width:160, +}, +{ + field: 'redundantField2', + title: '鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��', + width:160, +}, +{ + field: 'redundantField3', + title: '鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��', + width:160, +}, +{ + field: 'creationTime', + title: '鍒涘缓鏃堕棿', + width:180, +}, +{ + field: 'deletionTime', + title: '鍒犻櫎鏃堕棿', + width:180, +}, +{ + field: 'creatorName', + title: '鍒涘缓浜�', + width:160, +}, +{ + field: 'lastModifierName', + title: '淇敼浜�', + width:160, +}, +{ + field: 'sort', + title: '鎺掑簭', + width:160, +}, +{ + field: 'remark', + title: '澶囨敞', + width:160, +}, +{ + field: 'extraField1', + title: '鎵╁睍瀛楁1', + width:160, +}, +{ + field: 'extraField2', + title: '鎵╁睍瀛楁2', + width:160, +}, +{ + field: 'extraField3', + title: '鎵╁睍瀛楁3', + width:160, +}, +] 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.module.scss" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.module.scss" new file mode 100644 index 0000000..019a625 --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.module.scss" @@ -0,0 +1,113 @@ +.wmsMaterialContent { + width: 100%; + height: 100%; + + .wmsMaterialList { + width: 100%; + height: calc(100% - 70px); + } + .headerContent { + display: flex; + justify-content: space-between; + align-items: center; + height: 43px; + } + .header { + margin-bottom: 12px; + display: flex; + justify-content: flex-end; + align-items: center; + } +} + +.tagBox { + width: auto; + min-width: 80px; + height: 24px; + background: #ffffff; + border-radius: 19px 19px 19px 19px; + opacity: 1; + border: 1px dashed #bcc4cc; + width: 50px; + height: 20px; + font-size: 14px; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + color: #5a84ff; + display: flex; + justify-content: center; + align-items: center; + // cursor: pointer; +} + +.group { + display: flex; + justify-content: space-between; + align-items: center; +} + +.groupTable { + width: 100%; +} + +.overBox { + width: 100%; + height: calc(100% - 20px); + overflow: auto; + :global(.cs-collapse-item__header) { + background-color: #f1f1f1; + padding: 0 20px; + height: 35px; + font-size: 16px; + font-family: PingFang SC, PingFang SC; + font-weight: 500; + } + :global(.cs-collapse-item__content) { + padding-bottom: 0px; + } +} +.groupHeader { + width: 100%; + height: 30px; + background: #ccc; +} + +.hideBlock { + display: none; +} +.queryForm { + padding: 10px; + background: #f5f7fa; + margin-bottom: 0px; + border-radius: 4px; + + .el-form-item { + margin-right: 20px; + margin-bottom: 0; + + // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害 + .el-input, .el-select { + width: 200px; // 璁剧疆缁熶竴鐨勫搴� + } + + // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡 + .el-select .el-input__wrapper { + height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷� + padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷� + } + + // 鏃ユ湡閫夋嫨鍣ㄥ搴� + .el-date-editor { + width: 220px; + } + } +} + +// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆 +.formItem { + width: 200px; + + &.el-input, &.el-select { + width: 100%; + } +} 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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.tsx" "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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.tsx" new file mode 100644 index 0000000..b424c28 --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/Pages/WmsMaterial/WmsMaterial.tsx" @@ -0,0 +1,373 @@ +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WmsMaterial.module.scss' +import { useWmsMaterial } from '../../../Controllers/WmsMaterial' +import IconButton from '@/components/IconButton/IconButton' +import WmsMaterialDrawer from '../Dialog/WmsMaterialDrawer/WmsMaterialDrawer' +import WmsMaterialQueryDrawer from '../Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer' +import Search from '@/components/Search/Search' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import { vPermission } from '@/libs/Permission/Permission' +import dayjs from 'dayjs' +import { + getWmsEnumData +} from '@/widgets/WmsMaterial/Models/Service/WmsMaterialDrawer' +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: 'WmsMaterial', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWmsMaterial, + onCheck, + onAddWmsMaterial, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWmsMaterial(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsMaterialQueryDrawerRef=ref(null); + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs:[] + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref([ + 'MaterialCode', 'MaterialName', 'Remark' + ]); + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑紪鐮�/鐗╂枡鍚嶇О/澶囨敞'); + + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + purchaseType: [] as Array<{label: string; value: any }>, +materialType: [] as Array<{label: string; value: any }>, +isMainBranch: [] as Array<{label: string; value: any }>, + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + const purchaseTypeEnumData = await getWmsEnumData({ + EnumName: 'PurchaseTypeEnum', +}) +enumOptions.purchaseType = purchaseTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, +})) +const materialTypeEnumData = await getWmsEnumData({ + EnumName: 'MaterialTypeEnum', +}) +enumOptions.materialType = materialTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, +})) +const yesNoEnumData = await getWmsEnumData({ + EnumName: 'YesNoEnum', +}) +enumOptions.isMainBranch = yesNoEnumData.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.wmsMaterialList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/HIAWms/wmsMaterial/{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={{ + creationTime: ({ row }: any) => { + return ( + <div> + {row.creationTime != null + ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +lastModificationTime: ({ row }: any) => { + return ( + <div> + {row.lastModificationTime != null + ? dayjs(row.lastModificationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +isDeleted: ({ row }: any) => { + return ( + <div> + {row.isDeleted != null ? (row.isDeleted ? '鏄�' : '鍚�') : '-'} + </div> + ) +}, +deletionTime: ({ row }: any) => { + return ( + <div> + {row.deletionTime != null + ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) +}, +isDisabled: ({ row }: any) => { + return ( + <div> + {row.isDisabled != null ? (row.isDisabled ? '鏄�' : '鍚�') : '-'} + </div> + ) +}, + 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.wmsMaterialContent}> + {/* 娣诲姞/缂栬緫 */} + <WmsMaterialDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsMaterial} + /> + {/* 楂樼骇鏌ヨ */} + <WmsMaterialQueryDrawer + ref="wmsMaterialQueryDrawerRef" + 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="wmsMaterial-add" + icon="add-p" + onClick={onAddWmsMaterial} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-divider direction="vertical" /> + <el-upload + v-permission="wmsMaterial-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/wmsMaterial/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> + + <IconButton + v-permission="wmsMaterial-output" + icon="out" + onClick={handleExport} + > + 瀵煎嚭 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="鍏抽敭瀛�"> + <el-tooltip + class="box-item" + effect="dark" + content={searchFormInputAttrs_Placeholder.value} + placement="top-start" + > + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </el-tooltip> + </ElFormItem> + <IconButton type="primary" icon="search" onClick={handleQueryForMain}> + 鏌ヨ + </IconButton> + {/* <IconButton style="" icon="refresh" onClick={resetQuery}> + 閲嶇疆 + </IconButton> */} + <IconButton + v-permission="wmsMaterial-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/HIAWms/wmsMaterial/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/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.module.scss" "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/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.module.scss" new file mode 100644 index 0000000..030c79c --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.module.scss" @@ -0,0 +1,7 @@ +.WmsMaterial { + background-color: #fff; + border-radius: 5px 5px 0 0; + width: 100%; + height: 100%; + border: 1px solid #dbdbdb; +} 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/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.tsx" "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/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.tsx" new file mode 100644 index 0000000..23a203d --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/WmsMaterial.tsx" @@ -0,0 +1,80 @@ +import { + Component, + DefineComponent, + defineComponent, + markRaw, + ref, + SetupContext, + onMounted, +} from 'vue' +import styles from './WmsMaterial.module.scss' +import Tab from '@/components/Tab/Tab' +import { useProvideModels } from '@/libs/Provider/app' +import { usePermission } from '@/libs/Permission/Permission' +import { permissionCodes } from '../enum' +import { ModuleType, TabItem } from '../type/Type' +import { getEntityNames } from '@/hooks/hook' +import TabPane from '@/components/Tab/TabPane' + +const Models: ModuleType = import.meta.glob('./config/*.json', { + eager: true, +}) + +const entityNames = getEntityNames(Models) + +const nameToLabelMap = [{ name: 'WmsMaterial', label: '鐗╂枡淇℃伅' }] + +export default defineComponent({ + name: 'WmsMaterial', + + setup(props, ctx: SetupContext) { + useProvideModels() + usePermission(props, permissionCodes) + + const rf = ref<{ + [key: string]: any + }>({}) + + const tabData = ref<TabItem[]>([]) + + const onTabChange = (v: string) => { + rf.value?.[v]?.reloadList() + } + + const initTableData = async () => { + for (const i in entityNames) { + const name = entityNames[i] + const module = await import(`./Pages/${name}/${name}.tsx`) + const WmsMaterial = markRaw(module.default) + const foundLabel = + nameToLabelMap.find((item) => item.name === name)?.label || name + tabData.value.push({ + label: foundLabel, + name, + component: WmsMaterial, + }) + } + } + + initTableData() + + return () => { + return ( + <div class={styles.WmsMaterial}> + <Tab data={tabData.value} type="list" onTab={onTabChange}> + {tabData.value.map((widgetInfo) => { + const Widget: any = widgetInfo.component + return ( + <TabPane label={widgetInfo.label} name={widgetInfo.name}> + <Widget + ref={(r: any) => (rf.value['WmsMaterial'] = r)} + ></Widget> + </TabPane> + ) + })} + </Tab> + </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/Weben_CMS_TemplateDemo/templatedemo_web/src/widgets/WmsMaterial/Views/config/WmsMaterial.json" "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/templatedemo_web/src/widgets/WmsMaterial/Views/config/WmsMaterial.json" new file mode 100644 index 0000000..bbe1334 --- /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/templatedemo_web/src/widgets/WmsMaterial/Views/config/WmsMaterial.json" @@ -0,0 +1,3 @@ +{ + "name": "WmsMaterial" +} 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/templatedemo_web/src/widgets/WmsMaterial/enum.ts" "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/templatedemo_web/src/widgets/WmsMaterial/enum.ts" new file mode 100644 index 0000000..063ce43 --- /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/templatedemo_web/src/widgets/WmsMaterial/enum.ts" @@ -0,0 +1,15 @@ +export interface TabType { + label: string + name: string + columns?: any[] + data?: any[] + isFooter: boolean + [key: string]: any +} + +export const permissionCodes = { + 'wmsMaterial-list': '鍒楄〃-鍒楄〃', + 'wmsMaterial-add': '鍒楄〃-娣诲姞', + 'wmsMaterial-import': '鍒楄〃-瀵煎叆', + 'wmsMaterial-output': '鍒楄〃-杈撳嚭', +} 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/templatedemo_web/src/widgets/WmsMaterial/index.ts" "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/templatedemo_web/src/widgets/WmsMaterial/index.ts" new file mode 100644 index 0000000..02be14a --- /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/templatedemo_web/src/widgets/WmsMaterial/index.ts" @@ -0,0 +1,14 @@ +import WmsMaterial from './Views/WmsMaterial' +import Setting from '@/components/Setting/Setting' +import { provider } from '@/provider/index' +import p from '../../assets/svg/p.svg' + +export default { + is: 'WmsMaterial', + name: '鐗╂枡淇℃伅', + category: 'run', + icon: p, + authorizationRequired: false, + canvasView: provider(WmsMaterial), + settingsView: Setting, +} 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/templatedemo_web/src/widgets/WmsMaterial/type/type.d.ts" "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/templatedemo_web/src/widgets/WmsMaterial/type/type.d.ts" new file mode 100644 index 0000000..7bd5c03 --- /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/templatedemo_web/src/widgets/WmsMaterial/type/type.d.ts" @@ -0,0 +1,45 @@ +import { Component } from 'vue' + +export interface DataItemType { + id?: string + name?: string + code?: string + description?: string + label?: string + value?: string | number +} + +export interface WmsMaterialBaseType { + id?: string + name?: string + code?: string + value?: number + description?: string + options?: Array<DataItemType> + abilityValue?: number | string + data?: DataItemType + defaultValue?: string | number + flow: string +} + +export interface FlowDefinitionType { + id?: string + name?: string + code?: string + description?: string +} + +export type ModuleType = Record< + string, + { + default: Record<string, string> + name: string + } +> + +export interface TabItem { + name: string + label: string + component: Component + hidden?: boolean +} -- Gitblit v1.9.3