From 11bff3e93067768199bab9bfff37e8eae17d8d92 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周一, 05 5月 2025 16:33:45 +0800
Subject: [PATCH] 库存信息页面

---
 HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts                                         |    8 
 HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts                                                |   68 ++--
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceCreateOrUpdateDtoBase.cs |   17 +
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs          |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs                                 |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs                     |   10 
 HIAWms/server/CMS.Plugin.HIAWms.sln                                                                       |    1 
 HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx                                       |  168 ++++++++++
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs                                       |   12 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs                           |   20 +
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs                           |   24 +
 HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts                                          |   13 
 HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss                             |   39 ++
 HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx                                     |   77 ++++
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs          |   16 
 HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx                                     |  259 ++++++++++++++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs             |   51 +++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs                  |    7 
 HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss                               |   37 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs                               |    8 
 HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts                                               |   68 ++--
 21 files changed, 822 insertions(+), 87 deletions(-)

diff --git a/HIAWms/server/CMS.Plugin.HIAWms.sln b/HIAWms/server/CMS.Plugin.HIAWms.sln
index 1762281..1267e29 100644
--- a/HIAWms/server/CMS.Plugin.HIAWms.sln
+++ b/HIAWms/server/CMS.Plugin.HIAWms.sln
@@ -129,6 +129,7 @@
 		{F405C633-8100-49B8-A270-D5340A165742} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C}
 		{D65BB57E-618A-468C-AA28-BD8C9EBF0AF2} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C}
 		{02CB86F3-E614-4193-8B7F-C2FB665C8A5A} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C}
+		{A68B3B6B-DDE8-431E-90F3-A9FEE1D14A53} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C}
 		{33999EE8-73A1-4CF2-BDFD-CE353B05A727} = {5632E2B3-5592-4C6A-9493-768E5B04804D}
 		{C6AFC427-C51D-4BD2-BBA6-8841D3495077} = {5632E2B3-5592-4C6A-9493-768E5B04804D}
 		{74E86B03-F185-47B2-A4C3-04C1CEC84F14} = {5632E2B3-5592-4C6A-9493-768E5B04804D}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs
index 9d5615c..95618f3 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs
@@ -57,6 +57,16 @@
     }
 
     /// <summary>
+    /// 浠撳簱鍚嶇О
+    /// </summary>
+    public string? StoreName { get; set; }
+
+    /// <summary>
+    /// 浠撳簱浠g爜
+    /// </summary>
+    public string? StoreCode { get; set; }
+
+    /// <summary>
     /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��
     /// </summary>
     public string RedundantField1 { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs
index 20ae282..11c2d01 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs
@@ -1,3 +1,4 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
 using Volo.Abp.Application.Dtos;
 
 namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
@@ -16,4 +17,54 @@
     /// Gets or sets the name.
     /// </summary>
     public string Name { get; set; }
+
+    /// <summary>
+    /// 缂栧彿
+    /// </summary>
+    public virtual string PlaceNo { get; set; }
+
+    /// <summary>
+    /// 璐т綅绫诲瀷
+    /// </summary>
+    public PlaceTypeEnum? StorageTypeNo { get; set; }
+
+    /// <summary>
+    /// 璐т綅鐘舵��
+    /// </summary>
+    public PlaceStatusEnum? PlaceStatus { get; set; }
+
+    /// <summary>
+    /// 鎵�鍦ㄥ簱鍖�
+    /// </summary>
+    public string AreaCode { get; set; }
+
+    /// <summary>
+    /// 宸烽亾
+    /// </summary>
+    public int? Aisle { get; set; }
+
+    /// <summary>
+    /// 鎺�
+    /// </summary>
+    public int? RowNo { get; set; }
+
+    /// <summary>
+    /// 鍒�
+    /// </summary>
+    public int? ColumnNo { get; set; }
+
+    /// <summary>
+    /// 灞�
+    /// </summary>
+    public int? LayerNo { get; set; }
+
+    /// <summary>
+    /// 鏄惁閿佸畾
+    /// </summary>
+    public YesNoEnum? Islock { get; set; }
+
+    /// <summary>
+    /// 鏄惁绌烘墭
+    /// </summary>
+    public YesNoEnum? EmptyContainer { get; set; }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceCreateOrUpdateDtoBase.cs
index e63a577..1753092 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceCreateOrUpdateDtoBase.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceCreateOrUpdateDtoBase.cs
@@ -84,4 +84,21 @@
     public WmsPlaceCreateOrUpdateDtoBase() : base(false)
     {
     }
+
+
+    /// <summary>
+    /// 宸烽亾鍒楄〃
+    /// </summary>
+    public class PlaceAisleForListOuptut
+    {
+        /// <summary>
+        /// 宸烽亾缂栧彿
+        /// </summary>
+        public int Aisle { get; set; }
+
+        /// <summary>
+        /// 宸烽亾鍚嶇О
+        /// </summary>
+        public string AisleName { get; set; }
+    }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
index 7e6899f..6c9b198 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
@@ -7,6 +7,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase;
+using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlaceCreateOrUpdateDtoBase;
 
 namespace CMS.Plugin.HIAWms.Application.Contracts.Services
 {
@@ -32,5 +33,11 @@
         /// </summary>
         /// <returns></returns>
         Task<List<AreaForListOuptut>> GetAreaListAsync();
+
+        /// <summary>
+        /// 宸烽亾鍒楄〃.
+        /// </summary>
+        /// <returns></returns>
+        Task<List<PlaceAisleForListOuptut>> GetAisleListAsync();
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
index e9c095e..044e7d3 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
@@ -8,6 +8,7 @@
 using Volo.Abp.Data;
 using Volo.Abp.ObjectExtending;
 using CMS.Plugin.HIAWms.Domain.Shared.Util;
+using CMS.Plugin.HIAWms.Domain.WmsStores;
 
 namespace CMS.Plugin.HIAWms.Application.Implements;
 
@@ -15,14 +16,16 @@
 public class WmsAreaAppService : CMSPluginAppService, IWmsAreaAppService
 {
     private readonly IWmsAreaRepository _wmsareaRepository;
+    private readonly IWmsStoreRepository _wmsstoreRepository;
 
     /// <summary>
     /// Initializes a new instance of the <see cref="WmsAreaAppService"/> class.
     /// </summary>
     /// <param name="wmsareaRepository">The task job repository.</param>
-    public WmsAreaAppService(IWmsAreaRepository wmsareaRepository)
+    public WmsAreaAppService(IWmsAreaRepository wmsareaRepository, IWmsStoreRepository wmsstoreRepository)
     {
         _wmsareaRepository = wmsareaRepository;
+        _wmsstoreRepository = wmsstoreRepository;
     }
 
     /// <inheritdoc />
@@ -64,8 +67,14 @@
         var sort = input.Sort ?? maxSort;
         var wmsarea = ObjectMapper.Map<WmsAreaCreateDto, WmsArea>(input);
         wmsarea.Sort = sort;
-        input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None);
+        var store = await _wmsstoreRepository.FindByNameAsync(input.StoreCode);
+        if (store == null)
+        {
+            throw new UserFriendlyException("浠撳簱淇℃伅涓嶅瓨");
+        }
 
+        input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None);
+        wmsarea.StoreName = store.StoreName;
         await _wmsareaRepository.InsertAsync(wmsarea);
 
         if (input.Sort.HasValue && wmsarea.Sort != maxSort)
@@ -90,13 +99,18 @@
 
         wmsarea.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
         input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None);
+        var store = await _wmsstoreRepository.FindByNameAsync(input.StoreCode);
+        if (store == null)
+        {
+            throw new UserFriendlyException("浠撳簱淇℃伅涓嶅瓨");
+        }
 
         wmsarea.AreaName = input.AreaName;
         wmsarea.AreaDesc = input.AreaDesc;
         wmsarea.AreaStatus = input.AreaStatus;
         wmsarea.AreaType = input.AreaType;
         wmsarea.StoreCode = input.StoreCode;
-        wmsarea.StoreName = input.StoreName;
+        wmsarea.StoreName = store.StoreName;
 
         await _wmsareaRepository.UpdateAsync(wmsarea);
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
index 0c133ec..eee9e2f 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
@@ -3,6 +3,7 @@
 using CMS.Plugin.HIAWms.Application.Contracts.Services;
 using CMS.Plugin.HIAWms.Domain.Shared.Util;
 using CMS.Plugin.HIAWms.Domain.WmsAreas;
+using CMS.Plugin.HIAWms.Domain.WmsPlaces;
 using CMS.Plugin.HIAWms.Domain.WmsStores;
 using System;
 using System.Collections.Generic;
@@ -10,6 +11,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase;
+using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlaceCreateOrUpdateDtoBase;
 
 namespace CMS.Plugin.HIAWms.Application.Implements
 {
@@ -20,11 +22,13 @@
     {
         private readonly IWmsStoreRepository _storeRepository;
         private readonly IWmsAreaRepository _wmsAreaRepository;
+        private readonly IWmsPlaceRepository _wmsPlaceRepository;
 
-        public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository)
+        public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository)
         {
             _storeRepository = storeRepository;
             _wmsAreaRepository = wmsAreaRepository;
+            _wmsPlaceRepository = wmsPlaceRepository;
         }
 
         public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput)
@@ -65,5 +69,23 @@
 
             return result;  
         }
+
+        /// <summary>
+        /// 宸烽亾鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<PlaceAisleForListOuptut>> GetAisleListAsync()
+        {
+            var list = await _wmsPlaceRepository.GetAisleListForSelectAsync();
+            if (list == null || list.Count <= 0) { return new List<PlaceAisleForListOuptut>(); }
+
+            var result = list.Select(x => new PlaceAisleForListOuptut
+            {
+                Aisle = x.Aisle,
+                AisleName = $"绗瑊x.Aisle}宸烽亾",
+            }).ToList();
+
+            return result;
+        }
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs
index caacf37..e72917b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsAreas/IWmsAreaRepository.cs
@@ -42,7 +42,7 @@
     /// <param name="cancellationToken">The cancellation token.</param>
     /// <returns></returns>
     Task<List<WmsArea>> GetListAsync(WmsArea? area, string sorting = null, int maxResultCount = int.MaxValue,  int skipCount = 0, string filter = null, Specification<WmsArea> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
-    
+
     /// <summary>
     /// 鑾峰彇搴撳尯鍒楄〃
     /// </summary>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
index b18102b..15c6f97 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
@@ -1,3 +1,4 @@
+using CMS.Plugin.HIAWms.Domain.WmsAreas;
 using Volo.Abp.Domain.Repositories;
 using Volo.Abp.Specifications;
 
@@ -44,6 +45,13 @@
     Task<List<WmsPlace>> GetListAsync(WmsPlace? place, string sorting = null, int maxResultCount = int.MaxValue,  int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
 
     /// <summary>
+    /// 鑾峰彇宸烽亾鍒楄〃
+    /// </summary>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<List<WmsPlace>> GetAisleListForSelectAsync(CancellationToken cancellationToken = default);
+
+    /// <summary>
     /// Gets the count asynchronous.
     /// </summary>
     /// <param name="filter">The filter.</param>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
index cc36680..3d655e4 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
@@ -1,4 +1,5 @@
 using System.Linq.Dynamic.Core;
+using CMS.Plugin.HIAWms.Domain.WmsAreas;
 using CMS.Plugin.HIAWms.Domain.WmsPlaces;
 using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
 using Microsoft.AspNetCore.Components.Forms;
@@ -60,7 +61,7 @@
             .IncludeDetails(includeDetails)
             .Where(specification.ToExpression())
             .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.PlaceNo.Contains(filter))
-            .WhereIf(!string.IsNullOrEmpty(place.PlaceNo), u => u.PlaceNo == place.PlaceNo)
+            .WhereIf(!string.IsNullOrEmpty(place.PlaceNo), u => u.PlaceNo.Contains(place.PlaceNo))
             .WhereIf(place.PlaceStatus > 0, u => u.PlaceStatus == place.PlaceStatus)
             .WhereIf(place.StorageTypeNo > 0, u => u.StorageTypeNo == place.StorageTypeNo)
             .WhereIf(place.Aisle > 0, u => u.Aisle == place.Aisle)
@@ -75,6 +76,19 @@
             .ToListAsync(GetCancellationToken(cancellationToken));
     }
 
+
+    /// <summary>
+    /// 获取巷道列表
+    /// </summary>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<List<WmsPlace>> GetAisleListForSelectAsync(CancellationToken cancellationToken = default)
+    {
+        return await (await GetDbSetAsync())
+            .ToListAsync(GetCancellationToken(cancellationToken));
+    }
+
+
     /// <inheritdoc />
     public async Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default)
     {
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
index 5895908..54a9be0 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
@@ -21,13 +21,13 @@
     }
 
     /// <inheritdoc />
-    public virtual async Task<WmsStore> FindByNameAsync(string name, CancellationToken cancellationToken = default)
+    public virtual async Task<WmsStore> FindByNameAsync(string storeCode, CancellationToken cancellationToken = default)
     {
         return await (await GetDbSetAsync())
             .IncludeDetails()
             .Where(x => !x.IsDeleted)
             .OrderBy(t => t.Sort)
-            .FirstOrDefaultAsync(t => t.StoreCode == name, GetCancellationToken(cancellationToken));
+            .FirstOrDefaultAsync(t => t.StoreCode == storeCode, GetCancellationToken(cancellationToken));
     }
 
     /// <inheritdoc />
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
index 021aa9d..0305a60 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
@@ -7,6 +7,7 @@
 using System;
 using System.Web;
 using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase;
+using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlaceCreateOrUpdateDtoBase;
 
 namespace CMS.Plugin.HIAWms.Controller
 {
@@ -65,5 +66,16 @@
         {
             return await _wmsEnumAppService.GetAreaListAsync();
         }
+
+        /// <summary>
+        /// 宸烽亾鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("AisleList")]
+        public async Task<List<PlaceAisleForListOuptut>> GetAisleListAsync()
+        {
+            return await _wmsEnumAppService.GetAisleListAsync();
+        }
     }
 }
diff --git a/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts b/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
index a31f0fa..bcf4aa3 100644
--- a/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
+++ b/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
@@ -56,3 +56,11 @@
 export const getAreaAreaDataList = () => {
   return request.get('/api/v1/hIAWms/WmsEnum/AreaList')
 }
+
+/**
+ * 鑾峰彇宸烽亾鍒楄〃
+ * @returns
+ */
+export const getAisleDataList = () => {
+  return request.get('/api/v1/hIAWms/WmsEnum/AisleList')
+}
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts
index 8e9ed99..47b0f94 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts
@@ -85,40 +85,40 @@
       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 wmsArea.cloneData([row.id])
-        ElMessage.success('鍒涘缓鍓湰鎴愬姛')
-        tableRef.value?.getList()
-      },
-      divided: true,
-      icon: 'copy',
-    },
+    // {
+    //   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 wmsArea.cloneData([row.id])
+    //     ElMessage.success('鍒涘缓鍓湰鎴愬姛')
+    //     tableRef.value?.getList()
+    //   },
+    //   divided: true,
+    //   icon: 'copy',
+    // },
     {
       label: '鍒犻櫎',
       fn: async (c: CurrentType) => {
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
index 4dec2af..ffae795 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
@@ -82,6 +82,7 @@
       prop: 'storeCode',
       el: 'select',
       options: [],
+      // storeValueAndLabel: true,
       placeholder: '璇疯緭鍏ヤ粨搴撲唬鐮�',
     },
     {
@@ -145,6 +146,7 @@
    */
   const onConfirm = async () => {
     await formRef.value?.validate()
+    console.log(formData.value)
     const data = {
       areaNo: formData.value.areaNo, // 搴撳尯缂栧彿
       areaName: formData.value.areaName, // 搴撳尯鍚嶇О
@@ -152,9 +154,10 @@
       areaStatus: formData.value.areaStatus, // 搴撳尯鐘舵��
       areaType: formData.value.areaType, // 搴撳尯绫诲瀷
       storeCode: formData.value.storeCode, // 浠撳簱浠g爜
-      storeName: formData.value.storeName, // 浠撳簱鍚嶇О
+      // storeName: formData.value.storeName, // 浠撳簱鍚嶇О
       remark: formData.value.remark, // 澶囨敞
     }
+    console.log(data)
     if (!current.value) {
       await wmsAreaDrawer.addWmsArea(data)
     } else {
@@ -185,8 +188,8 @@
     const item = formItems.find((item) => item.prop === propName)
     if (item && enumData) {
       item.options = enumData.map((item) => ({
-        label: item.StoreCode,
-        value: item.StoreName,
+        label: item.storeName,
+        value: item.storeCode,
       }))
     }
   }
@@ -205,7 +208,7 @@
     updateFormItemOptions('areaType', areaTypeEnum)
 
     const storeList = await getStoreDataList()
-    updateFormItemOptions('storeCode', storeList)
+    updateFormStoreOptions('storeCode', storeList)
     if (current.value) {
       const res = await wmsAreaDrawer.getWmsAreaDetail(current.value)
 
@@ -216,7 +219,7 @@
         areaStatus: res.areaStatus, // 搴撳尯鐘舵��
         areaType: res.areaType, // 搴撳尯绫诲瀷
         storeCode: res.storeCode, // 浠撳簱浠g爜
-        storeName: res.storeName, // 浠撳簱鍚嶇О
+        // storeName: res.storeName, // 浠撳簱鍚嶇О
         remark: res.remark, // 澶囨敞
         id: res.id,
       }
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts
index 1555ee5..1a7c9ec 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts
@@ -85,40 +85,40 @@
       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 wmsStore.cloneData([row.id])
-        ElMessage.success('鍒涘缓鍓湰鎴愬姛')
-        tableRef.value?.getList()
-      },
-      divided: true,
-      icon: 'copy',
-    },
+    // {
+    //   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 wmsStore.cloneData([row.id])
+    //     ElMessage.success('鍒涘缓鍓湰鎴愬姛')
+    //     tableRef.value?.getList()
+    //   },
+    //   divided: true,
+    //   icon: 'copy',
+    // },
     {
       label: '鍒犻櫎',
       fn: async (c: CurrentType) => {
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss
index cf5330a..0f0933b 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss
@@ -75,3 +75,40 @@
 .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%;
+  }
+}
\ No newline at end of file
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx
index 7f74561..0ff3d54 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx
@@ -1,4 +1,4 @@
-import { defineComponent } from 'vue'
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue'
 import type { Ref } from 'vue'
 import BaseTable from '@/components/Table/Table'
 import styles from './WmsArea.module.scss'
@@ -9,6 +9,11 @@
 import { columns } from './Config'
 import TdButton from '@/components/TdButton/TdButton'
 import { vPermission } from '@/libs/Permission/Permission'
+import { ElForm, ElFormItem, ElInput, ElOption, ElSelect } from 'element-plus'
+import {
+  getWmsEnumData,
+  getStoreDataList,
+} from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
 
 interface RenderTableType {
   url?: string
@@ -46,6 +51,74 @@
       onSuccess,
       onBeforeUpload,
     } = useWmsArea(props, ctx)
+
+    // 鏂板鐨勬煡璇㈡潯浠�
+    const queryForm = ref({
+      areaNo: '',
+      areaName: '',
+      areaType: '',
+      areaStatus: '',
+      filter: '',
+    })
+
+    const queryParams = computed(() => ({
+      ...queryForm.value,
+      areaType: queryForm.value.areaType || '', // 澶勭悊涓嬫媺
+      areaStatus: queryForm.value.areaStatus || '',
+    }))
+
+    // 鍔ㄦ�佹灇涓鹃�夐」
+    const enumOptions = reactive({
+      areaType: [] as Array<{ label: string; value: any }>,
+      areaStatus: [] as Array<{ label: string; value: any }>,
+    })
+
+    // 鑾峰彇鏋氫妇鏁版嵁
+    const fetchEnumData = async () => {
+      try {
+        // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
+        const areaTypeData = await getWmsEnumData({
+          EnumName: 'AreaTypeEnum',
+        })
+        enumOptions.areaType = areaTypeData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+
+        // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
+        const areaStatusData = await getWmsEnumData({
+          EnumName: 'AreaStatusEnum',
+        })
+        enumOptions.areaStatus = areaStatusData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+      } catch (error) {
+        console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+      }
+    }
+
+    // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+    onMounted(() => {
+      fetchEnumData()
+    })
+
+    // 鏂板鐨勬煡璇㈡柟娉�
+    const handleQuery = async () => {
+      // tableRef.value.getTableList()
+      tableRef.value.getList(queryParams.value)
+    }
+
+    // 閲嶇疆鏌ヨ鏉′欢
+    const resetQuery = () => {
+      queryForm.value = {
+        areaNo: '',
+        areaName: '',
+        areaType: '',
+        areaStatus: '',
+        filter: '',
+      }
+    }
 
     /**
      * @returns 琛ㄦ牸
@@ -114,6 +187,95 @@
             sort={sort.value}
             onConfirm={onConfirmWmsArea}
           />
+          {/* 鏂板鐨勬煡璇㈣〃鍗� */}
+          <ElForm
+            inline
+            model={queryForm.value}
+            class={styles.queryForm}
+            label-width="80px"
+          >
+            <ElFormItem label="鍏抽敭瀛�">
+              <ElInput
+                v-model={queryForm.value.filter}
+                placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="搴撳尯缂栫爜">
+              <ElInput
+                v-model={queryForm.value.areaNo}
+                placeholder="璇疯緭鍏ュ簱鍖虹紪鐮�"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="搴撳尯鍚嶇О">
+              <ElInput
+                v-model={queryForm.value.areaName}
+                placeholder="璇疯緭鍏ュ簱鍖哄悕绉�"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="搴撲綅绫诲瀷">
+              <ElSelect
+                v-model={queryForm.value.areaType}
+                placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
+                clearable
+                loading={enumOptions.areaType.length === 0}
+                class={styles.formItem}
+              >
+                {enumOptions.areaType.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem label="搴撳尯鐘舵��">
+              <ElSelect
+                v-model={queryForm.value.areaStatus}
+                placeholder="璇烽�夋嫨鎵樼洏鐘舵��"
+                clearable
+                loading={enumOptions.areaStatus.length === 0}
+                class={styles.formItem}
+              >
+                {enumOptions.areaStatus.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            {/* <ElFormItem label="鏃ユ湡鑼冨洿">
+              <ElDatePicker
+                v-model={queryForm.value.dateRange}
+                type="daterange"
+                range-separator="鑷�"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+                value-format="YYYY-MM-DD"
+              />
+            </ElFormItem> */}
+            <ElFormItem>
+              <IconButton type="primary" icon="search" onClick={handleQuery}>
+                鏌ヨ
+              </IconButton>
+              <IconButton
+                style="margin-left: 10px;"
+                icon="refresh"
+                onClick={resetQuery}
+              >
+                閲嶇疆
+              </IconButton>
+            </ElFormItem>
+          </ElForm>
+
           <div class={styles.headerContent}>
             <div class={styles.header}>
               <IconButton
@@ -147,12 +309,12 @@
                 瀵煎嚭
               </IconButton>
             </div>
-            <Search
+            {/* <Search
               placeholder="璇疯緭鍏ュ叧閿瓧"
               v-model={search.value}
               onConfirm={onSearch}
               style={{ marginTop: '-1px' }}
-            />
+            /> */}
           </div>
           <RenderBaseTable
             url="/api/v1/HIAWms/wmsArea"
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss
index 0dd1ecb..4f1b9ec 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss
@@ -1,6 +1,6 @@
 .wmsPlaceContent {
   width: 100%;
-  height: 90%;
+  height: 85%;
 
   .wmsPlaceList {
     width: 100%;
@@ -75,3 +75,40 @@
 .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%;
+  }
+}
\ No newline at end of file
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
index b90811a..e99ba47 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
@@ -1,4 +1,4 @@
-import { defineComponent } from 'vue'
+import { defineComponent, onMounted, ref, computed, reactive } from 'vue'
 import type { Ref } from 'vue'
 import BaseTable from '@/components/Table/Table'
 import styles from './WmsPlace.module.scss'
@@ -9,6 +9,12 @@
 import { columns } from './Config'
 import TdButton from '@/components/TdButton/TdButton'
 import { vPermission } from '@/libs/Permission/Permission'
+import { ElForm, ElFormItem, ElInput, ElOption, ElSelect } from 'element-plus'
+import {
+  getWmsEnumData,
+  getAreaAreaDataList,
+  getAisleDataList,
+} from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
 
 interface RenderTableType {
   url?: string
@@ -46,6 +52,118 @@
       onSuccess,
       onBeforeUpload,
     } = useWmsPlace(props, ctx)
+
+    // 鏂板鐨勬煡璇㈡潯浠�
+    const queryForm = ref({
+      placeNo: '',
+      storageTypeNo: '',
+      placeStatus: '',
+      areaCode: '',
+      aisle: '',
+      islock: '',
+      emptyContainer: '',
+      filter: '',
+    })
+
+    const queryParams = computed(() => ({
+      ...queryForm.value,
+      storageTypeNo: queryForm.value.storageTypeNo || '', // 澶勭悊涓嬫媺
+      placeStatus: queryForm.value.placeStatus || '',
+    }))
+
+    // 鍔ㄦ�佹灇涓鹃�夐」
+    const enumOptions = reactive({
+      storageTypeNo: [] as Array<{ label: string; value: any }>,
+      placeStatus: [] as Array<{ label: string; value: any }>,
+      yesOrNo: [] as Array<{ label: string; value: any }>,
+    })
+
+    let areaTypelist = [] as Array<{ label: string; value: any }>
+    let aisleTypelist = [] as Array<{ label: string; value: any }>
+
+    // 鑾峰彇鏋氫妇鏁版嵁
+    const fetchEnumData = async () => {
+      try {
+        // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
+        const storageTypeNoData = await getWmsEnumData({
+          EnumName: 'PlaceTypeEnum',
+        })
+        enumOptions.storageTypeNo = storageTypeNoData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+
+        // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
+        const placeStatusData = await getWmsEnumData({
+          EnumName: 'PlaceStatusEnum',
+        })
+        enumOptions.placeStatus = placeStatusData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+
+        const yesNoData = await getWmsEnumData({
+          EnumName: 'YesNoEnum',
+        })
+        enumOptions.yesOrNo = yesNoData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+      } catch (error) {
+        console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+      }
+    }
+    const getAreaType = async () => {
+      try {
+        const areaListData = await getAreaAreaDataList()
+        areaTypelist = areaListData.map((item) => ({
+          label: item.areaName || '',
+          value: item.areaNo || '', // 鍚屼笂
+        }))
+      } catch (error) {
+        areaTypelist = [] // 澶辫触鏃堕噸缃负绌烘暟缁�
+      }
+    }
+
+    const getAisleList = async () => {
+      try {
+        const aisleListData = await getAisleDataList()
+        aisleTypelist = aisleListData.map((item) => ({
+          label: item.aisleName || '',
+          value: item.aisle || '',
+        }))
+      } catch (error) {
+        console.error('鑾峰彇宸烽亾鍒楄〃澶辫触:', error)
+        aisleTypelist = [] // 澶辫触鏃堕噸缃负绌烘暟缁�
+      }
+    }
+    // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+    onMounted(() => {
+      fetchEnumData()
+      getAreaType()
+      getAisleList()
+    })
+
+    // 鏂板鐨勬煡璇㈡柟娉�
+    const handleQuery = async () => {
+      console.log('鏌ヨ鏉′欢:', queryParams.value)
+      // tableRef.value.getTableList()
+      tableRef.value.getList(queryParams.value)
+    }
+
+    // 閲嶇疆鏌ヨ鏉′欢
+    const resetQuery = () => {
+      queryForm.value = {
+        placeNo: '',
+        storageTypeNo: '',
+        placeStatus: '',
+        aisle: '',
+        areaCode: '',
+        islock: '',
+        emptyContainer: '',
+        filter: '',
+      }
+    }
 
     /**
      * @returns 琛ㄦ牸
@@ -114,6 +232,145 @@
             sort={sort.value}
             onConfirm={onConfirmWmsPlace}
           />
+          {/* 鏂板鐨勬煡璇㈣〃鍗� */}
+          <ElForm
+            inline
+            model={queryForm.value}
+            class={styles.queryForm}
+            label-width="80px"
+          >
+            <ElFormItem label="鍏抽敭瀛�">
+              <ElInput
+                v-model={queryForm.value.filter}
+                placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="搴撲綅缂栫爜">
+              <ElInput
+                v-model={queryForm.value.placeNo}
+                placeholder="璇疯緭鍏ュ簱浣嶇紪鐮�"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="搴撲綅绫诲瀷">
+              <ElSelect
+                v-model={queryForm.value.storageTypeNo}
+                placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
+                clearable
+                loading={enumOptions.storageTypeNo.length === 0}
+                class={styles.formItem}
+              >
+                {enumOptions.storageTypeNo.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem label="搴撲綅鐘舵��">
+              <ElSelect
+                v-model={queryForm.value.placeStatus}
+                placeholder="璇烽�夋嫨鎵樼洏鐘舵��"
+                clearable
+                loading={enumOptions.placeStatus.length === 0}
+                class={styles.formItem}
+              >
+                {enumOptions.placeStatus.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem label="搴撳尯">
+              <ElSelect
+                v-model={queryForm.value.areaCode}
+                placeholder="璇烽�夋嫨搴撳尯"
+                clearable
+                loading={areaTypelist.length === 0}
+                class={styles.formItem}
+              >
+                {areaTypelist.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem label="宸烽亾">
+              <ElSelect
+                v-model={queryForm.value.aisle}
+                placeholder="璇烽�夋嫨搴撳尯"
+                clearable
+                loading={aisleTypelist.length === 0}
+                class={styles.formItem}
+              >
+                {aisleTypelist.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem label="鏄惁閿佸畾">
+              <ElSelect
+                v-model={queryForm.value.islock}
+                placeholder="璇烽�夋嫨鏄惁閿佸畾"
+                clearable
+                loading={enumOptions.yesOrNo.length === 0}
+                class={styles.formItem}
+              >
+                {enumOptions.yesOrNo.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem label="鏄惁绌烘墭">
+              <ElSelect
+                v-model={queryForm.value.emptyContainer}
+                placeholder="璇烽�夋嫨鏄惁绌烘墭"
+                clearable
+                loading={enumOptions.yesOrNo.length === 0}
+                class={styles.formItem}
+              >
+                {enumOptions.yesOrNo.map((option) => (
+                  <ElOption
+                    key={option.value}
+                    label={option.label}
+                    value={option.value}
+                  />
+                ))}
+              </ElSelect>
+            </ElFormItem>
+            <ElFormItem>
+              <IconButton type="primary" icon="search" onClick={handleQuery}>
+                鏌ヨ
+              </IconButton>
+              <IconButton
+                style="margin-left: 10px;"
+                icon="refresh"
+                onClick={resetQuery}
+              >
+                閲嶇疆
+              </IconButton>
+            </ElFormItem>
+          </ElForm>
+
           <div class={styles.headerContent}>
             <div class={styles.header}>
               <IconButton
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx
index 13db32c..02708d2 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx
@@ -1,4 +1,4 @@
-import { defineComponent } from 'vue'
+import { defineComponent, reactive, ref, computed } from 'vue'
 import type { Ref } from 'vue'
 import BaseTable from '@/components/Table/Table'
 import styles from './WmsStore.module.scss'
@@ -9,6 +9,8 @@
 import { columns } from './Config'
 import TdButton from '@/components/TdButton/TdButton'
 import { vPermission } from '@/libs/Permission/Permission'
+import { ElForm, ElFormItem, ElInput } from 'element-plus'
+import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
 
 interface RenderTableType {
   url?: string
@@ -46,6 +48,33 @@
       onSuccess,
       onBeforeUpload,
     } = useWmsStore(props, ctx)
+
+    // 鏂板鐨勬煡璇㈡潯浠�
+    const queryForm = ref({
+      storeCode: '',
+      storeName: '',
+      filter: '',
+    })
+
+    const queryParams = computed(() => ({
+      ...queryForm.value,
+    }))
+
+    // 鏂板鐨勬煡璇㈡柟娉�
+    const handleQuery = async () => {
+      console.log('鏌ヨ鏉′欢:', queryParams.value)
+      // tableRef.value.getTableList()
+      tableRef.value.getList(queryParams.value)
+    }
+
+    // 閲嶇疆鏌ヨ鏉′欢
+    const resetQuery = () => {
+      queryForm.value = {
+        storeCode: '',
+        storeName: '',
+        filter: '',
+      }
+    }
 
     /**
      * @returns 琛ㄦ牸
@@ -114,6 +143,52 @@
             sort={sort.value}
             onConfirm={onConfirmWmsStore}
           />
+
+          {/* 鏂板鐨勬煡璇㈣〃鍗� */}
+          <ElForm
+            inline
+            model={queryForm.value}
+            class={styles.queryForm}
+            label-width="80px"
+          >
+            <ElFormItem label="鍏抽敭瀛�">
+              <ElInput
+                v-model={queryForm.value.filter}
+                placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="浠撳簱缂栫爜">
+              <ElInput
+                v-model={queryForm.value.storeCode}
+                placeholder="璇疯緭鍏ヤ粨搴撶紪鐮�"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem label="浠撳簱鍚嶇О">
+              <ElInput
+                v-model={queryForm.value.storeName}
+                placeholder="璇疯緭鍏ヤ粨搴撳悕绉�"
+                clearable
+                class={styles.formItem}
+              />
+            </ElFormItem>
+            <ElFormItem>
+              <IconButton type="primary" icon="search" onClick={handleQuery}>
+                鏌ヨ
+              </IconButton>
+              <IconButton
+                style="margin-left: 10px;"
+                icon="refresh"
+                onClick={resetQuery}
+              >
+                閲嶇疆
+              </IconButton>
+            </ElFormItem>
+          </ElForm>
+
           <div class={styles.headerContent}>
             <div class={styles.header}>
               <IconButton

--
Gitblit v1.9.3