From 98749f73549cbbb1eb1db0916f3f2073e006384e Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周三, 30 4月 2025 19:47:32 +0800
Subject: [PATCH] 托盘管理
---
HIAWms/web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts | 8 +
HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts | 20 +-
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs | 13 +
HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx | 140 +++++++++++++++-
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/GetWmsContainersInput.cs | 16 ++
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs | 32 +++
HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx | 153 +++++++++++++++++++
HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs | 1
HIAWms/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs | 22 ++
HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss | 39 ++++
12 files changed, 411 insertions(+), 39 deletions(-)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/GetWmsContainersInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/GetWmsContainersInput.cs
index f7ae976..0380c5e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/GetWmsContainersInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/GetWmsContainersInput.cs
@@ -1,3 +1,4 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using Volo.Abp.Application.Dtos;
namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers;
@@ -16,4 +17,19 @@
/// Gets or sets the name.
/// </summary>
public string Name { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏缂栧彿
+ /// </summary>
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏绫诲瀷
+ /// </summary>
+ public ContainerTypeEnum ContainerType { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鐘舵��
+ /// </summary>
+ public ContainerStatusEnum ContainerStatus { get; set; }
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs
index 2268c18..38c5b68 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainers/WmsContainerDto.cs
@@ -21,11 +21,33 @@
public ContainerTypeEnum ContainerType { get; set; }
/// <summary>
+ /// 鎵樼洏绫诲瀷
+ /// </summary>
+ public string ContainerTypeDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(ContainerType);
+ }
+ }
+
+ /// <summary>
/// 鎵樼洏鐘舵��
/// </summary>
public ContainerStatusEnum ContainerStatus { get; set; }
/// <summary>
+ /// 鎵樼洏鐘舵��
+ /// </summary>
+ public string ContainerStatusDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(ContainerStatus);
+ }
+ }
+
+ /// <summary>
/// 闀垮害
/// </summary>
public decimal? SpecLength { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs
index 7328599..eba8903 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs
@@ -7,6 +7,7 @@
using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;
using Volo.Abp.ObjectExtending;
+using CMS.Plugin.HIAWms.Domain.Shared.Util;
namespace CMS.Plugin.HIAWms.Application.Implements;
@@ -41,8 +42,9 @@
}
var specification = new WmsContainerSpecification(input.Name);
- var count = await _wmscontainerRepository.GetCountAsync(input.Filter, specification);
- var list = await _wmscontainerRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification);
+ var container = ObjectMapper.Map < GetWmsContainersInput, WmsContainer>(input);
+ var count = await _wmscontainerRepository.GetCountAsync(container,input.Filter, specification);
+ var list = await _wmscontainerRepository.GetListAsync(container,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification);
return new PagedResultDto<WmsContainerDto>(count, ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list));
}
@@ -158,7 +160,7 @@
/// <inheritdoc />
public virtual async Task AdjustSortAsync(Guid id, int sort)
{
- var list = await _wmscontainerRepository.GetListAsync(nameof(WmsContainer.Sort));
+ var list = await _wmscontainerRepository.GetListAsync(null,nameof(WmsContainer.Sort));
if (list != null && list.Any())
{
var initSort = 1;
@@ -307,12 +309,13 @@
}
var specification = new WmsContainerSpecification(input.Name);
- var list = await _wmscontainerRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true);
+ var container = ObjectMapper.Map<GetWmsContainersInput, WmsContainer>(input);
+ var list = await _wmscontainerRepository.GetListAsync(container,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true);
var result = ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list);
var sheets = new Dictionary<string, object>
{
- ["閰嶇疆"] = result.Select(x => x.GetExportData()).ToList(),
+ ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
};
var fileName = result.Count > 1 ? "WmsContainer鍒楄〃" : result.Count == 1 ? result.First()?.ContainerNo : "WmsContainer妯$増";
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs
index 9cf32b5..672037e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerAutoMapperProfile.cs
@@ -21,5 +21,6 @@
* into multiple profile classes for a better organization. */
CreateMap<WmsContainer, WmsContainerDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
CreateMap<WmsContainerCreateDto, WmsContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<GetWmsContainersInput, WmsContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs
index 56c006e..50b4374 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainers/IWmsContainerRepository.cs
@@ -41,7 +41,7 @@
/// <param name="includeDetails">if set to <c>true</c> [include details].</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns></returns>
- Task<List<WmsContainer>> GetListAsync(string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsContainer> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
+ Task<List<WmsContainer>> GetListAsync(WmsContainer? container, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsContainer> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
/// <summary>
/// Gets the count asynchronous.
@@ -50,5 +50,5 @@
/// <param name="specification">The specification.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns></returns>
- Task<long> GetCountAsync(string filter = null, Specification<WmsContainer> specification = null, CancellationToken cancellationToken = default);
+ Task<long> GetCountAsync(WmsContainer? container, string filter = null, Specification<WmsContainer> specification = null, CancellationToken cancellationToken = default);
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs
index dc4e77a..f42bc56 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerRepository.cs
@@ -50,8 +50,19 @@
return sort + 1;
}
- /// <inheritdoc />
- public async Task<List<WmsContainer>> GetListAsync(string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsContainer> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default)
+ /// <summary>
+ /// 查询列表
+ /// </summary>
+ /// <param name="container"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="filter"></param>
+ /// <param name="specification"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<WmsContainer>> GetListAsync(WmsContainer? container,string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsContainer> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default)
{
specification ??= new WmsContainerSpecification();
return await (await GetDbSetAsync())
@@ -59,18 +70,31 @@
.Where(specification.ToExpression())
.Where(x => !x.IsDeleted)
.WhereIf(!filter.IsNullOrWhiteSpace(), u => u.ContainerNo.Contains(filter))
+ .WhereIf(!string.IsNullOrEmpty(container.ContainerNo),u=>u.ContainerNo.Contains(container.ContainerNo))
+ .WhereIf(container.ContainerStatus>0, u=>u.ContainerStatus == u.ContainerStatus)
+ .WhereIf(container.ContainerType>0, u=>u.ContainerType == u.ContainerType)
.OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsContainer.Sort) : sorting)
.PageBy(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
}
- /// <inheritdoc />
- public async Task<long> GetCountAsync(string filter = null, Specification<WmsContainer> specification = null, CancellationToken cancellationToken = default)
+ /// <summary>
+ /// 查询数量
+ /// </summary>
+ /// <param name="container"></param>
+ /// <param name="filter"></param>
+ /// <param name="specification"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<long> GetCountAsync(WmsContainer? container, string filter = null, Specification<WmsContainer> specification = null, CancellationToken cancellationToken = default)
{
specification ??= new WmsContainerSpecification();
return await (await GetQueryableAsync())
.Where(specification.ToExpression())
.Where(x => !x.IsDeleted)
+ .WhereIf(!string.IsNullOrEmpty(container.ContainerNo), u => u.ContainerNo.Contains(container.ContainerNo))
+ .WhereIf(container.ContainerStatus > 0, u => u.ContainerStatus == u.ContainerStatus)
+ .WhereIf(container.ContainerType > 0, u => u.ContainerType == u.ContainerType)
.WhereIf(!filter.IsNullOrWhiteSpace(), u => u.ContainerNo.Contains(filter))
.CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
}
diff --git a/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.ts b/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
similarity index 62%
rename from HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.ts
rename to HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
index 54066ec..f7f5228 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.ts
+++ b/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
@@ -1,10 +1,20 @@
-import { ref, onMounted, reactive, computed, Ref, watch } from 'vue'
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
import { injectModel } from '@/libs/Provider/Provider'
import { WmsContainerDrawer } from '../Models/WmsContainerDrawer'
import { ElMessage } from 'element-plus'
import isEqual from 'lodash/isEqual'
import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
import { cloneDeep } from 'lodash'
+import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
export const useWmsContainerDrawer = (props: any, ctx?: any) => {
const wmsContainerDrawer =
@@ -16,6 +26,18 @@
const formData = ref<Record<string, any>>({})
// ref
const formRef = ref()
+ const disabled = ref(false)
+
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min="1"
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
const current = computed(() => {
return props.row || null
@@ -44,11 +66,7 @@
prop: 'containerType',
el: 'select',
placeholder: '璇烽�夋嫨鎵樼洏绫诲瀷',
- options: [
- { label: '绫诲瀷1', value: 0 },
- { label: '绫诲瀷2', value: 1 },
- // 娣诲姞鎵�鏈夋灇涓惧��
- ],
+ options: [],
rules: [{ required: true, message: '璇烽�夋嫨鎵樼洏绫诲瀷', trigger: 'change' }],
},
{
@@ -56,17 +74,20 @@
prop: 'containerStatus',
el: 'select',
placeholder: '璇烽�夋嫨鎵樼洏鐘舵��',
- options: [
- { label: '鐘舵��1', value: 0 },
- { label: '鐘舵��2', value: 1 },
- // 娣诲姞鎵�鏈夋灇涓惧��
- ],
+ options: [],
rules: [{ required: true, message: '璇烽�夋嫨鎵樼洏鐘舵��', trigger: 'change' }],
},
{
label: '闀垮害(mm)',
prop: 'specLength',
- el: 'input',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
placeholder: '璇疯緭鍏ラ暱搴�',
step: 0.01,
precision: 2,
@@ -74,7 +95,14 @@
{
label: '瀹藉害(mm)',
prop: 'specWidth',
- el: 'input',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
placeholder: '璇疯緭鍏ュ搴�',
step: 0.01,
precision: 2,
@@ -82,15 +110,74 @@
{
label: '楂樺害(mm)',
prop: 'specHeight',
- el: 'input',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
placeholder: '璇疯緭鍏ラ珮搴�',
step: 0.01,
precision: 2,
},
{
+ label: '闄愰暱(mm)',
+ prop: 'limitLength',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ placeholder: '璇疯緭鍏ヨ浇閲嶄笂闄�',
+ step: 0.1,
+ precision: 2,
+ },
+ {
+ label: '闄愬(mm)',
+ prop: 'limitWidth',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ placeholder: '璇疯緭鍏ヨ浇閲嶄笂闄�',
+ step: 0.1,
+ precision: 2,
+ },
+ {
+ label: '闄愰珮(mm)',
+ prop: 'limitHeight',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ placeholder: '璇疯緭鍏ヨ浇閲嶄笂闄�',
+ step: 0.1,
+ precision: 2,
+ },
+ {
label: '杞介噸涓婇檺(kg)',
prop: 'maxWeight',
- el: 'input',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
placeholder: '璇疯緭鍏ヨ浇閲嶄笂闄�',
step: 0.1,
precision: 2,
@@ -168,10 +255,31 @@
},
}
}
+
+ 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 onOpen = async () => {
+ const containerTypeEnum = await getWmsEnumData({
+ EnumName: 'ContainerTypeEnum',
+ })
+ updateFormItemOptions('containerType', containerTypeEnum)
+
+ const containerStatusEnum = await getWmsEnumData({
+ EnumName: 'ContainerStatusEnum',
+ })
+ updateFormItemOptions('containerStatus', containerStatusEnum)
+
if (current.value) {
const res = await wmsContainerDrawer.getWmsContainerDetail(current.value)
@@ -190,8 +298,10 @@
id: res.id,
}
updateCheckData()
+ disabled.value = true
} else {
formData.value = {}
+ disabled.value = false
updateCheckData()
}
}
diff --git a/HIAWms/web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts b/HIAWms/web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts
index 6fbadfb..af31ea3 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts
+++ b/HIAWms/web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts
@@ -24,3 +24,11 @@
export const updateWmsContainer = (id: string, data: Record<string, any>) => {
return request.put(`/api/v1/HIAWms/wmsContainer/${id}`, data)
}
+
+/**
+ * 鑾峰彇鏋氫妇
+ * @returns
+ */
+export const getWmsEnumData = (data: any) => {
+ return request.post('/api/v1/hIAWms/WmsEnum', data)
+}
diff --git a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx
index a808dc9..007ea00 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx
+++ b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx
@@ -1,7 +1,7 @@
import { SetupContext, defineComponent } from 'vue'
import BaseDrawer from '@/components/BaseDrawer/BaseDrawer'
import styles from './WmsContainerDrawer.module.scss'
-import { useWmsContainerDrawer } from '../../../../Controllers/WmsContainerDrawer'
+import { useWmsContainerDrawer } from '../../../../Controllers/WmsContainerDrawer.tsx'
import DyForm from '@/components/DyForm/DyForm'
// @ts-ignore
diff --git a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts
index e533c6f..0689813 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts
+++ b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts
@@ -9,11 +9,11 @@
title: '鎵樼洏缂栧彿',
},
{
- field: 'containerType',
+ field: 'containerTypeDesc',
title: '鎵樼洏绫诲瀷',
},
{
- field: 'containerStatus',
+ field: 'containerStatusDesc',
title: '鎵樼洏鐘舵��',
},
{
@@ -44,14 +44,14 @@
field: 'maxWeight',
title: '杞介噸涓婇檺',
},
- {
- field: 'exceptionNumber',
- title: '寮傚父鏁伴噺',
- },
- {
- field: 'materialNumber',
- title: '鐗╂枡鏁伴噺',
- },
+ // {
+ // field: 'exceptionNumber',
+ // title: '寮傚父鏁伴噺',
+ // },
+ // {
+ // field: 'materialNumber',
+ // title: '鐗╂枡鏁伴噺',
+ // },
{
field: 'remark',
title: '澶囨敞',
diff --git a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss
index 7bc2c27..a3049f6 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss
+++ b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss
@@ -1,6 +1,6 @@
.wmsContainerContent {
width: 100%;
- height: 100%;
+ height: 90%;
.wmsContainerList {
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/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx
index 3ae58c2..62624bf 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx
+++ b/HIAWms/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.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 './WmsContainer.module.scss'
@@ -9,6 +9,8 @@
import { columns } from './Config'
import TdButton from '@/components/TdButton/TdButton'
import { vPermission } from '@/libs/Permission/Permission'
+import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
+import { ElForm, ElFormItem, ElInput, ElOption, ElSelect } from 'element-plus'
interface RenderTableType {
url?: string
@@ -46,6 +48,73 @@
onSuccess,
onBeforeUpload,
} = useWmsContainer(props, ctx)
+
+ // 鏂板鐨勬煡璇㈡潯浠�
+ const queryForm = ref({
+ containerNo: '',
+ containerType: '',
+ containerStatus: '',
+ filter: '',
+ })
+
+ const queryParams = computed(() => ({
+ ...queryForm.value,
+ containerType: queryForm.value.containerType || '', // 澶勭悊涓嬫媺
+ containerStatus: queryForm.value.containerStatus || '',
+ }))
+
+ // 鍔ㄦ�佹灇涓鹃�夐」
+ const enumOptions = reactive({
+ containerType: [] as Array<{ label: string; value: any }>,
+ containerStatus: [] as Array<{ label: string; value: any }>,
+ })
+
+ // 鑾峰彇鏋氫妇鏁版嵁
+ const fetchEnumData = async () => {
+ try {
+ // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
+ const containerTypeData = await getWmsEnumData({
+ EnumName: 'ContainerTypeEnum',
+ })
+ enumOptions.containerType = containerTypeData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+
+ // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
+ const containerStatusData = await getWmsEnumData({
+ EnumName: 'ContainerStatusEnum',
+ })
+ enumOptions.containerStatus = containerStatusData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ } catch (error) {
+ console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+ }
+ }
+
+ // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+ onMounted(() => {
+ fetchEnumData()
+ })
+
+ // 鏂板鐨勬煡璇㈡柟娉�
+ const handleQuery = async () => {
+ console.log('鏌ヨ鏉′欢:', queryParams.value)
+ // tableRef.value.getTableList()
+ tableRef.value.getList(queryParams.value)
+ }
+
+ // 閲嶇疆鏌ヨ鏉′欢
+ const resetQuery = () => {
+ queryForm.value = {
+ containerNo: '',
+ containerType: '',
+ containerStatus: '',
+ filter: '',
+ }
+ }
/**
* @returns 琛ㄦ牸
@@ -114,6 +183,88 @@
sort={sort.value}
onConfirm={onConfirmWmsContainer}
/>
+
+ {/* 鏂板鐨勬煡璇㈣〃鍗� */}
+ <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.containerNo}
+ placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�"
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <ElFormItem label="鐗╂枡绫诲瀷">
+ <ElSelect
+ v-model={queryForm.value.containerType}
+ placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
+ clearable
+ loading={enumOptions.containerType.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.containerType.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="鎵樼洏鐘舵��">
+ <ElSelect
+ v-model={queryForm.value.containerStatus}
+ placeholder="璇烽�夋嫨鎵樼洏鐘舵��"
+ clearable
+ loading={enumOptions.containerStatus.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.containerStatus.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
--
Gitblit v1.9.3