From 2fd8242a14241beba63e71c6f4222b702f0e2f30 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周二, 06 5月 2025 16:54:44 +0800 Subject: [PATCH] wwww --- HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx | 646 ++++++++++++------------ HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs | 18 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs | 77 ++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs | 30 + HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs | 11 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs | 1 HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj | 10 CommonDLL/CmsQueryExtensions.dll | 0 HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs | 22 Weben_CMS专用代码生成器/Code/Templete/Entity/Dto模板.txt | 1 HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx | 665 ++++++++++++------------ HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs | 2 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs | 1 Weben_CMS专用代码生成器/Code/Templete/AppService/AppService模板.txt | 2 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs | 53 ++ 15 files changed, 854 insertions(+), 685 deletions(-) diff --git a/CommonDLL/CmsQueryExtensions.dll b/CommonDLL/CmsQueryExtensions.dll index 0bf4b5e..479f29e 100644 --- a/CommonDLL/CmsQueryExtensions.dll +++ b/CommonDLL/CmsQueryExtensions.dll Binary files differ diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs index 95618f3..4434b11 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsAreas/WmsAreaDto.cs @@ -1,4 +1,5 @@ using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CmsQueryExtensions; using Volo.Abp.Application.Dtos; using Volo.Abp.Domain.Entities; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs index 6c9b198..47a7daa 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs @@ -1,6 +1,7 @@ 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; using CMS.Plugin.HIAWms.Domain.Shared.Util; +using CmsQueryExtensions; using System; using System.Collections.Generic; using System.Linq; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs index eee9e2f..8fdf80d 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs @@ -1,10 +1,10 @@ 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.Shared.Util; using CMS.Plugin.HIAWms.Domain.WmsAreas; using CMS.Plugin.HIAWms.Domain.WmsPlaces; using CMS.Plugin.HIAWms.Domain.WmsStores; +using CmsQueryExtensions; using System; using System.Collections.Generic; using System.Linq; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs index 7aace56..98eb755 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs @@ -1,21 +1,19 @@ using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; -using CMS.Plugin.HIAWms.Domain.Shared; using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialStocks; +using CMS.Plugin.HIAWms.Domain.WmsAreas; +using CMS.Plugin.HIAWms.Domain.WmsContainers; +using CMS.Plugin.HIAWms.Domain.WmsMaterials; +using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks; +using CMS.Plugin.HIAWms.Domain.WmsPlaces; +using CmsQueryExtensions; +using Microsoft.Extensions.DependencyInjection; +using System.Text.Json; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.ObjectExtending; -using CMS.Plugin.HIAWms.Domain.Shared.Util; -using CMS.Plugin.HIAWms.Domain.WmsMaterials; -using CMS.Plugin.HIAWms.Domain.WmsContainers; -using CMS.Plugin.HIAWms.Domain.WmsPlaces; -using CMS.Plugin.HIAWms.Domain.WmsAreas; using Volo.Abp.Uow; -using Microsoft.Extensions.DependencyInjection; -using NPOI.POIFS.Storage; -using System.Text.Json; namespace CMS.Plugin.HIAWms.Application.Implements; diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj index c95efe0..ebf1596 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/CMS.Plugin.HIAWms.Domain.Shared.csproj @@ -21,8 +21,18 @@ </ItemGroup> <ItemGroup> + <Compile Remove="Util\EnumHelper.cs" /> + <Compile Remove="Util\ExportHelper.cs" /> + <Compile Remove="Util\GetEnumDescriptionUtil.cs" /> + </ItemGroup> + + <ItemGroup> <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="6.0.20" /> </ItemGroup> + <ItemGroup> + <Folder Include="Util\" /> + </ItemGroup> + </Project> diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs index 74e48fe..bf8d7ba 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/YesNoEnum.cs @@ -14,15 +14,16 @@ public enum YesNoEnum { /// <summary> + /// 鍚� + /// </summary> + [Description("鍚�")] + N = 0, + + /// <summary> /// 鏄� /// </summary> [Description("鏄�")] Y = 1, - /// <summary> - /// 鍚� - /// </summary> - [Description("鍚�")] - N = 2 } } diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs index b0f8e3b..71f2537 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Util/ExportHelper.cs @@ -12,6 +12,14 @@ /// </summary> public static class ExportHelper { + + + // 鎵归噺杞崲鏂规硶 + public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) + { + return list.Select(ConvertToExportData).ToList(); + } + // 閫氱敤杞崲鏂规硶锛堝吋瀹� Func<T, Dictionary<string, object>>锛� public static Dictionary<string, object> ConvertToExportData<T>(T entity) { @@ -24,12 +32,6 @@ dict[prop.Name] = FormatValue(value); } return dict; - } - - // 鎵归噺杞崲鏂规硶 - public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) - { - return list.Select(ConvertToExportData).ToList(); } private static object FormatValue(object value) @@ -47,13 +49,5 @@ return value; } - private static string GetEnumDescription(Enum value) - { - var fieldInfo = value.GetType().GetField(value.ToString()); - var description = fieldInfo? - .GetCustomAttributes(typeof(DescriptionAttribute), false) - .FirstOrDefault() as DescriptionAttribute; - return description?.Description ?? value.ToString(); - } } } diff --git a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx index 959fe29..386618d 100644 --- a/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Controllers/WmsTaskDrawer.tsx @@ -1,332 +1,333 @@ -import { - ref, - onMounted, - reactive, - computed, - Ref, - watch, - SetupContext, - h, -} from 'vue' -import { injectModel } from '@/libs/Provider/Provider' -import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' -import { ElMessage } from 'element-plus' -import isEqual from 'lodash/isEqual' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' -import { cloneDeep } from 'lodash' - -export const useWmsTaskDrawer = (props: any, ctx?: any) => { - const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') - /** - * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 - */ - const initiateData: Ref<Record<string, any>> = ref({}) - const formData = ref<Record<string, any>>({}) - // ref - const formRef = ref() - - const disabled = ref(false) - - const current = computed(() => { - return props.row || null - }) - - const inputNumber = (attrs) => { - return ( - <el-input-number - min="1" - step="1" - precision="0" - {...attrs} - ></el-input-number> - ) - } - - const visible = computed({ - get() { - return props.modelValue - }, - set(val) { - ctx.emit('update:modelValue', val) - }, - }) - /** - * 娣诲姞鐨刦orm瀛楁 - */ - const formItems = reactive([ - { - label: '宸烽亾', - prop: 'aisle', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ贩閬�', - }, - { - label: '鎵樼洏缂栧彿', - prop: 'containerNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', - }, - { - label: '鍫嗗灈鏈篒D', - prop: 'dodeviceId', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ爢鍨涙満ID', - }, - { - label: '璁惧绫诲瀷', - prop: 'dodevicetype', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ澶囩被鍨�', - rules: [{required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛', - prop: 'isNextTask', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', - }, - { - label: 'WCS鏄惁鍙互璇诲彇', - prop: 'isRead', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', - rules: [{required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '鍙彉鍙橀噺1', - prop: 'mutableParam1', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', - }, - { - label: '鍙彉鍙橀噺2', - prop: 'mutableParam2', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', - }, - { - label: '鍙彉鍙橀噺3', - prop: 'mutableParam3', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', - }, - { - label: '瀛愪换鍔$被鍨�', - prop: 'sonTaskType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', - }, - { - label: '鏉ユ簮鍗曟嵁鍙�', - prop: 'sourceOrderNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', - }, - { - label: '璧峰搴撲綅', - prop: 'sourcePlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', - }, - { - label: '璁惧浠诲姟鐘舵��', - prop: 'taskDodeviceStatus', - //disabled: disabled, - placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', - rules: [{required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟绛夌骇', - prop: 'taskLevel', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', - rules: [{required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '浠诲姟鍙�', - prop: 'taskNo', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔″彿', - rules: [{required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟鐘舵��', - prop: 'taskStatus', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', - rules: [{required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], - }, - { - label: '浠诲姟绫诲瀷', - prop: 'taskType', - el: 'select', - //disabled: disabled, - placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', - rules: [{required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], - }, - { - label: '鐩爣搴撲綅', - prop: 'toPlace', - el: 'input', - //disabled: disabled, - placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', - }, - ]) - /** - * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� - */ - const checkIsEqualObject = () => { - const data = { - formData: formData.value, - } - const check = isEqual(initiateData.value, data) - return check - } - - const onClose = (done: () => void) => { - if (visible.value) { - if (checkIsEqualObject()) { - visible.value = false - done && done() - } else { - ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') - .then(() => { - onConfirm() - }) - .catch(() => { - visible.value = false - done && done() - }) - } - } - } - /** - * 淇濆瓨 - */ - const onConfirm = async () => { - await formRef.value?.validate() - const data = { - aisle: formData.value.aisle, -containerNo: formData.value.containerNo, -dodeviceId: formData.value.dodeviceId, -dodevicetype: formData.value.dodevicetype, -isNextTask: formData.value.isNextTask, -isRead: formData.value.isRead, -mutableParam1: formData.value.mutableParam1, -mutableParam2: formData.value.mutableParam2, -mutableParam3: formData.value.mutableParam3, -sonTaskType: formData.value.sonTaskType, -sourceOrderNo: formData.value.sourceOrderNo, -sourcePlace: formData.value.sourcePlace, -taskDodeviceStatus: formData.value.taskDodeviceStatus, -taskLevel: formData.value.taskLevel, -taskNo: formData.value.taskNo, -taskStatus: formData.value.taskStatus, -taskType: formData.value.taskType, -toPlace: formData.value.toPlace, - } - if (!current.value) { - await wmsTaskDrawer.addWmsTask(data) - } else { - const id = current.value.id - await wmsTaskDrawer.updateWmsTask(id, data) - } - ElMessage.success('淇濆瓨鎴愬姛') - ctx.emit('confirm') - } - - const updateCheckData = () => { - initiateData.value = { - formData: { - ...formData.value, - }, - } - } - const updateFormItemOptions = (propName: string, enumData: any[]) => { - const item = formItems.find((item) => item.prop === propName) - if (item && enumData) { - item.options = enumData.map((item) => ({ - label: item.description, - value: item.value, - })) - } - } - /** - * 閫氱敤鏌ヨ鏋氫妇 - */ - const commonQueryEnumForFrom = async () => { - const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'TaskTypeEnum', -}) -updateFormItemOptions('taskType', taskTypeEnumEnum) -const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'WmsTaskStatus', -}) -updateFormItemOptions('taskStatus', wmsTaskStatusEnum) -const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ - EnumName: 'SonTaskTypeEnum', -}) -updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) - - } - commonQueryEnumForFrom() - /** - * 寮圭獥鎵撳紑鑾峰彇璇︽儏 - */ - const onOpen = async () => { - if (current.value) { - const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) - - formData.value = { - aisle: res.aisle, -containerNo: res.containerNo, -dodeviceId: res.dodeviceId, -dodevicetype: res.dodevicetype, -isNextTask: res.isNextTask, -isRead: res.isRead, -mutableParam1: res.mutableParam1, -mutableParam2: res.mutableParam2, -mutableParam3: res.mutableParam3, -sonTaskType: res.sonTaskType, -sourceOrderNo: res.sourceOrderNo, -sourcePlace: res.sourcePlace, -taskDodeviceStatus: res.taskDodeviceStatus, -taskLevel: res.taskLevel, -taskNo: res.taskNo, -taskStatus: res.taskStatus, -taskType: res.taskType, -toPlace: res.toPlace, - id: res.id, - } - disabled.value = true - updateCheckData() - } else { - formData.value = {} - - disabled.value = false - updateCheckData() - } - } - - watch(() => current.value, onOpen) - - return { - formItems, - formData, - visible, - formRef, - onOpen, - onClose, - onConfirm, - } -} +import { + ref, + onMounted, + reactive, + computed, + Ref, + watch, + SetupContext, + h, +} from 'vue' +import { injectModel } from '@/libs/Provider/Provider' +import { WmsTaskDrawer } from '../Models/WmsTaskDrawer' +import { ElMessage } from 'element-plus' +import isEqual from 'lodash/isEqual' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { cloneDeep } from 'lodash' + +export const useWmsTaskDrawer = (props: any, ctx?: any) => { + const wmsTaskDrawer = injectModel<WmsTaskDrawer>('wmsTaskDrawer') + /** + * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 + */ + const initiateData: Ref<Record<string, any>> = ref({}) + const formData = ref<Record<string, any>>({}) + // ref + const formRef = ref() + + const disabled = ref(false) + + const current = computed(() => { + return props.row || null + }) + + const inputNumber = (attrs) => { + return ( + <el-input-number + min="1" + step="1" + precision="0" + {...attrs} + ></el-input-number> + ) + } + + const visible = computed({ + get() { + return props.modelValue + }, + set(val) { + ctx.emit('update:modelValue', val) + }, + }) + /** + * 娣诲姞鐨刦orm瀛楁 + */ + const formItems = reactive([ + { + label: '宸烽亾', + prop: 'aisle', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ贩閬�', + }, + { + label: '鎵樼洏缂栧彿', + prop: 'containerNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�', + }, + { + label: '鍫嗗灈鏈篒D', + prop: 'dodeviceId', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ爢鍨涙満ID', + }, + { + label: '璁惧绫诲瀷', + prop: 'dodevicetype', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囩被鍨�', + rules: [{ required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛', + prop: 'isNextTask', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ笅涓换鍔℃槸鍚︾敓鎴愭垚鍔�', + }, + // { + // label: 'WCS鏄惁鍙互璇诲彇', + // prop: 'isRead', + // el: 'select', + // //disabled: disabled, + // placeholder: '璇疯緭鍏CS鏄惁鍙互璇诲彇', + // rules: [{required: true, message: 'WCS鏄惁鍙互璇诲彇涓嶈兘涓虹┖', trigger: 'blur' }], + // }, + { + label: '鍙彉鍙橀噺1', + prop: 'mutableParam1', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�1', + }, + { + label: '鍙彉鍙橀噺2', + prop: 'mutableParam2', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�2', + }, + { + label: '鍙彉鍙橀噺3', + prop: 'mutableParam3', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ彲鍙樺彉閲�3', + }, + { + label: '瀛愪换鍔$被鍨�', + prop: 'sonTaskType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ュ瓙浠诲姟绫诲瀷', + }, + { + label: '鏉ユ簮鍗曟嵁鍙�', + prop: 'sourceOrderNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ユ潵婧愬崟鎹彿', + }, + { + label: '璧峰搴撲綅', + prop: 'sourcePlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ捣濮嬪簱浣�', + }, + { + label: '璁惧浠诲姟鐘舵��', + prop: 'taskDodeviceStatus', + //disabled: disabled, + placeholder: '璇疯緭鍏ヨ澶囦换鍔$姸鎬�', + rules: [ + { required: true, message: '璁惧浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }, + ], + }, + { + label: '浠诲姟绛夌骇', + prop: 'taskLevel', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$瓑绾�', + rules: [{ required: true, message: '浠诲姟绛夌骇涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '浠诲姟鍙�', + prop: 'taskNo', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔″彿', + rules: [{ required: true, message: '浠诲姟鍙蜂笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '浠诲姟鐘舵��', + prop: 'taskStatus', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$姸鎬�', + rules: [{ required: true, message: '浠诲姟鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }], + }, + { + label: '浠诲姟绫诲瀷', + prop: 'taskType', + el: 'select', + //disabled: disabled, + placeholder: '璇疯緭鍏ヤ换鍔$被鍨�', + rules: [{ required: true, message: '浠诲姟绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }], + }, + { + label: '鐩爣搴撲綅', + prop: 'toPlace', + el: 'input', + //disabled: disabled, + placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�', + }, + ]) + /** + * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� + */ + const checkIsEqualObject = () => { + const data = { + formData: formData.value, + } + const check = isEqual(initiateData.value, data) + return check + } + + const onClose = (done: () => void) => { + if (visible.value) { + if (checkIsEqualObject()) { + visible.value = false + done && done() + } else { + ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') + .then(() => { + onConfirm() + }) + .catch(() => { + visible.value = false + done && done() + }) + } + } + } + /** + * 淇濆瓨 + */ + const onConfirm = async () => { + await formRef.value?.validate() + const data = { + aisle: formData.value.aisle, + containerNo: formData.value.containerNo, + dodeviceId: formData.value.dodeviceId, + dodevicetype: formData.value.dodevicetype, + isNextTask: formData.value.isNextTask, + isRead: formData.value.isRead, + mutableParam1: formData.value.mutableParam1, + mutableParam2: formData.value.mutableParam2, + mutableParam3: formData.value.mutableParam3, + sonTaskType: formData.value.sonTaskType, + sourceOrderNo: formData.value.sourceOrderNo, + sourcePlace: formData.value.sourcePlace, + taskDodeviceStatus: formData.value.taskDodeviceStatus, + taskLevel: formData.value.taskLevel, + taskNo: formData.value.taskNo, + taskStatus: formData.value.taskStatus, + taskType: formData.value.taskType, + toPlace: formData.value.toPlace, + } + if (!current.value) { + await wmsTaskDrawer.addWmsTask(data) + } else { + const id = current.value.id + await wmsTaskDrawer.updateWmsTask(id, data) + } + ElMessage.success('淇濆瓨鎴愬姛') + ctx.emit('confirm') + } + + const updateCheckData = () => { + initiateData.value = { + formData: { + ...formData.value, + }, + } + } + const updateFormItemOptions = (propName: string, enumData: any[]) => { + const item = formItems.find((item) => item.prop === propName) + if (item && enumData) { + item.options = enumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } + } + /** + * 閫氱敤鏌ヨ鏋氫妇 + */ + const commonQueryEnumForFrom = async () => { + const taskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'TaskTypeEnum', + }) + updateFormItemOptions('taskType', taskTypeEnumEnum) + const wmsTaskStatusEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'WmsTaskStatus', + }) + updateFormItemOptions('taskStatus', wmsTaskStatusEnum) + const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({ + EnumName: 'SonTaskTypeEnum', + }) + updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) + } + commonQueryEnumForFrom() + /** + * 寮圭獥鎵撳紑鑾峰彇璇︽儏 + */ + const onOpen = async () => { + if (current.value) { + const res = await wmsTaskDrawer.getWmsTaskDetail(current.value) + + formData.value = { + aisle: res.aisle, + containerNo: res.containerNo, + dodeviceId: res.dodeviceId, + dodevicetype: res.dodevicetype, + isNextTask: res.isNextTask, + isRead: res.isRead, + mutableParam1: res.mutableParam1, + mutableParam2: res.mutableParam2, + mutableParam3: res.mutableParam3, + sonTaskType: res.sonTaskType, + sourceOrderNo: res.sourceOrderNo, + sourcePlace: res.sourcePlace, + taskDodeviceStatus: res.taskDodeviceStatus, + taskLevel: res.taskLevel, + taskNo: res.taskNo, + taskStatus: res.taskStatus, + taskType: res.taskType, + toPlace: res.toPlace, + id: res.id, + } + disabled.value = true + updateCheckData() + } else { + formData.value = {} + + disabled.value = false + updateCheckData() + } + } + + watch(() => current.value, onOpen) + + return { + formItems, + formData, + visible, + formRef, + onOpen, + onClose, + onConfirm, + } +} diff --git a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx index a299cd0..ccc7860 100644 --- a/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx +++ b/HIAWms/web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx @@ -1,324 +1,326 @@ -import { computed, defineComponent, onMounted, reactive, ref } from 'vue' -import type { Ref } from 'vue' -import BaseTable from '@/components/Table/Table' -import styles from './WmsTask.module.scss' -import { useWmsTask } from '../../../Controllers/WmsTask' -import IconButton from '@/components/IconButton/IconButton' -import WmsTaskDrawer from '../Dialog/WmsTaskDrawer/WmsTaskDrawer' -import WmsTaskQueryDrawer from '../Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer' -import Search from '@/components/Search/Search' -import { columns } from './Config' -import TdButton from '@/components/TdButton/TdButton' -import { vPermission } from '@/libs/Permission/Permission' -import { - getWmsEnumData -} from '@/widgets/WmsTask/Models/Service/WmsTaskDrawer' -import { - ElInput, - ElSelect, - ElOption, - ElDatePicker, - ElForm, - ElFormItem, -} from 'element-plus' -import { injectModel } from '@/libs/Provider/Provider' - -interface RenderTableType { - url?: string - dataSource: Ref<any[]> - isDrag?: boolean - isChecked?: boolean - isHidePagination?: boolean - params?: Record<string, any> - autoHeight?: boolean -} - -export default defineComponent({ - name: 'WmsTask', - directives: { - permission: vPermission, - }, - setup(props, ctx) { - const { - dataSource, - contextMenu, - dialogConfig, - dialogConfigForQuery, - tableRef, - current, - search, - sort, - headers, - onError, - onSearch, - onRowClick, - onConfirmWmsTask, - onCheck, - onAddWmsTask, - onAdvancedQuery, - onExport, - openDetail, - onSuccess, - onBeforeUpload, - } = useWmsTask(props, ctx) - - //瀹氫箟楂樼骇鏌ヨ寮曠敤 - const wmsTaskQueryDrawerRef=ref(null); - // 鏂板鐨勬煡璇㈡潯浠� - const queryForm = ref({ - searchVal: '', - str_searchFormInputAttrs:[] - }) - //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) - const _searchFormInputAttrs = ref([ - 'TaskNo', 'ContainerNo' - ]); - const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ヤ换鍔$紪鐮�/鎵樼洏缂栫爜'); - - - // 鍔ㄦ�佹灇涓鹃�夐」 - const enumOptions = reactive({ - taskType: [] as Array<{label: string; value: any }>, -taskStatus: [] as Array<{label: string; value: any }>, -sonTaskType: [] as Array<{label: string; value: any }>, - }) - - // 鑾峰彇鏋氫妇鏁版嵁 - const fetchEnumData = async () => { - try { - const taskTypeEnumData = await getWmsEnumData({ - EnumName: 'TaskTypeEnum', -}) -enumOptions.taskType = taskTypeEnumData.map((item) => ({ - label: item.description, - value: item.value, -})) -const wmsTaskStatusData = await getWmsEnumData({ - EnumName: 'WmsTaskStatus', -}) -enumOptions.taskStatus = wmsTaskStatusData.map((item) => ({ - label: item.description, - value: item.value, -})) -const sonTaskTypeEnumData = await getWmsEnumData({ - EnumName: 'SonTaskTypeEnum', -}) -enumOptions.sonTaskType = sonTaskTypeEnumData.map((item) => ({ - label: item.description, - value: item.value, -})) - - } catch (error) { - console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) - } - } - - // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� - onMounted(() => { - fetchEnumData() - }) - - // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� - const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[] }); - // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 - const handleQueryForMain = async () => { - _curHighQueryData.value.searchVal = queryForm.value.searchVal; - _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; - tableRef.value.getList(_curHighQueryData.value) - } - // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 - const handleQuery = async (extraParams = {}) => { - let filteredData = commonGetHighQueryForm(extraParams); - commonSaveCurHighQueryData(filteredData); - tableRef.value.getList(filteredData) - } - // 鏂扮増鐨勬煡璇㈤噸缃� - const resetQuery = () => { - queryForm.value.searchVal = '' - queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; - } - //鏂扮増鐨勫鍑烘柟娉� - const handleExport=()=>{ - onExport(_curHighQueryData.value); - } - // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 - const closeQuery = (extraParams={}) => { - let filteredData = commonGetHighQueryForm(extraParams); - console.log("closeQuery鏂规硶"); - console.log(filteredData); - commonSaveCurHighQueryData(filteredData); - } - //淇濆瓨鏌ヨ鍊� - const commonSaveCurHighQueryData=(filteredData={})=>{ - _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; - _curHighQueryData.value.searchVal = queryForm.value.searchVal - _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; - } - //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� - const commonGetHighQueryForm=(extraParams={})=>{ - // 杩囨护鎺� undefined 鐨勫�� - let filteredData = Object.assign( - {}, - ...Object.entries(extraParams).map(([key, value]) => - value !== undefined ? { [key]: value } : {} - ) - ) - //缁勫悎妯$硦鏌ヨ - filteredData.searchVal = queryForm.value.searchVal - filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; - return filteredData; - } - - - /** - * @returns 琛ㄦ牸 - */ - const RenderBaseTable = (props: RenderTableType) => { - const { - url, - dataSource, - isDrag, - isChecked, - isHidePagination, - params, - autoHeight, - } = props - - return ( - <div - class={{ - [styles.wmsTaskList]: true, - }} - > - <BaseTable - ref={tableRef} - url={url} - sortUrlTpl="/api/v1/HIAWms/wmsTask/{id}/adjustsort/{sort}" - v-model:dataSource={dataSource.value} - columns={columns} - contextMenu={contextMenu} - params={params} - isDrag={isDrag} - isChecked={isChecked} - autoHeight={autoHeight} - onCheck={onCheck} - onRowClick={onRowClick} - isHidePagination={isHidePagination} - pageSize={20} - v-slots={{ - name: ({ row }: any) => { - return row?.name ? ( - <TdButton - onClick={() => openDetail(row)} - text={<span style="color:#5a84ff">璇︽儏</span>} - icon="scale" - tip={row?.name} - hover - > - {row?.name} - </TdButton> - ) : ( - '-' - ) - }, - }} - ></BaseTable> - </div> - ) - } - - return () => { - return ( - <div class={styles.wmsTaskContent}> - {/* 娣诲姞/缂栬緫 */} - <WmsTaskDrawer - v-model={dialogConfig.visible} - title={dialogConfig.title} - row={current.value} - sort={sort.value} - onConfirm={onConfirmWmsTask} - /> - {/* 楂樼骇鏌ヨ */} - <WmsTaskQueryDrawer - ref="wmsTaskQueryDrawerRef" - v-model={dialogConfigForQuery.visible} - title={dialogConfigForQuery.title} - row={current.value} - sort={sort.value} - onConfirmQuery={handleQuery} - onRestQuery={resetQuery} - onClose={closeQuery} - /> - - <div class={styles.headerContent}> - <div class={styles.header}> - <IconButton - v-permission="wmsTask-add" - icon="add-p" - onClick={onAddWmsTask} - type="primary" - > - 娣诲姞 - </IconButton> - <el-divider direction="vertical" /> - - <el-divider direction="vertical" /> - <el-upload - v-permission="wmsTask-import" - name="file" - accept=".xlsx,.xls,.csv" - show-file-list={false} - onError={onError} - onSuccess={onSuccess} - before-upload={onBeforeUpload} - headers={headers.value} - action="/api/v1/HIAWms/wmsTask/import" - > - <IconButton icon="in">瀵煎叆</IconButton> - </el-upload> - - <IconButton - v-permission="wmsTask-output" - icon="out" - onClick={handleExport} - > - 瀵煎嚭 - </IconButton> - </div> - <ElFormItem style={{ marginTop: '15px' }}> - <ElFormItem label="鍏抽敭瀛�"> - <ElInput - v-model={queryForm.value.searchVal} - placeholder={searchFormInputAttrs_Placeholder.value} - clearable - class={styles.formItem} - /> - </ElFormItem> - <IconButton type="primary" icon="search" onClick={handleQueryForMain}> - 鏌ヨ - </IconButton> +import { computed, defineComponent, onMounted, reactive, ref } from 'vue' +import type { Ref } from 'vue' +import BaseTable from '@/components/Table/Table' +import styles from './WmsTask.module.scss' +import { useWmsTask } from '../../../Controllers/WmsTask' +import IconButton from '@/components/IconButton/IconButton' +import WmsTaskDrawer from '../Dialog/WmsTaskDrawer/WmsTaskDrawer' +import WmsTaskQueryDrawer from '../Dialog/WmsTaskQueryDrawer/WmsTaskQueryDrawer' +import Search from '@/components/Search/Search' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import { vPermission } from '@/libs/Permission/Permission' +import { getWmsEnumData } from '@/widgets/WmsTask/Models/Service/WmsTaskDrawer' +import { + ElInput, + ElSelect, + ElOption, + ElDatePicker, + ElForm, + ElFormItem, +} from 'element-plus' +import { injectModel } from '@/libs/Provider/Provider' + +interface RenderTableType { + url?: string + dataSource: Ref<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + autoHeight?: boolean +} + +export default defineComponent({ + name: 'WmsTask', + directives: { + permission: vPermission, + }, + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + onConfirmWmsTask, + onCheck, + onAddWmsTask, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + } = useWmsTask(props, ctx) + + //瀹氫箟楂樼骇鏌ヨ寮曠敤 + const wmsTaskQueryDrawerRef = ref(null) + // 鏂板鐨勬煡璇㈡潯浠� + const queryForm = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) + const _searchFormInputAttrs = ref(['TaskNo', 'ContainerNo']) + const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ヤ换鍔$紪鐮�/鎵樼洏缂栫爜') + + // 鍔ㄦ�佹灇涓鹃�夐」 + const enumOptions = reactive({ + taskType: [] as Array<{ label: string; value: any }>, + taskStatus: [] as Array<{ label: string; value: any }>, + sonTaskType: [] as Array<{ label: string; value: any }>, + }) + + // 鑾峰彇鏋氫妇鏁版嵁 + const fetchEnumData = async () => { + try { + const taskTypeEnumData = await getWmsEnumData({ + EnumName: 'TaskTypeEnum', + }) + enumOptions.taskType = taskTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + const wmsTaskStatusData = await getWmsEnumData({ + EnumName: 'WmsTaskStatus', + }) + enumOptions.taskStatus = wmsTaskStatusData.map((item) => ({ + label: item.description, + value: item.value, + })) + const sonTaskTypeEnumData = await getWmsEnumData({ + EnumName: 'SonTaskTypeEnum', + }) + enumOptions.sonTaskType = sonTaskTypeEnumData.map((item) => ({ + label: item.description, + value: item.value, + })) + } catch (error) { + console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) + } + } + + // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹� + onMounted(() => { + fetchEnumData() + }) + + // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹� + const _curHighQueryData = ref({ + searchVal: '', + str_searchFormInputAttrs: [], + }) + // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 + const handleQueryForMain = async () => { + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _curHighQueryData.value.str_searchFormInputAttrs = + _searchFormInputAttrs.value + tableRef.value.getList(_curHighQueryData.value) + } + // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 + const handleQuery = async (extraParams = {}) => { + let filteredData = commonGetHighQueryForm(extraParams) + commonSaveCurHighQueryData(filteredData) + tableRef.value.getList(filteredData) + } + // 鏂扮増鐨勬煡璇㈤噸缃� + const resetQuery = () => { + queryForm.value.searchVal = '' + queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value + } + //鏂扮増鐨勫鍑烘柟娉� + const handleExport = () => { + onExport(_curHighQueryData.value) + } + // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 + const closeQuery = (extraParams = {}) => { + let filteredData = commonGetHighQueryForm(extraParams) + console.log('closeQuery鏂规硶') + console.log(filteredData) + commonSaveCurHighQueryData(filteredData) + } + //淇濆瓨鏌ヨ鍊� + const commonSaveCurHighQueryData = (filteredData = {}) => { + _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData } + _curHighQueryData.value.searchVal = queryForm.value.searchVal + _curHighQueryData.value.str_searchFormInputAttrs = + _searchFormInputAttrs.value + } + //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� + const commonGetHighQueryForm = (extraParams = {}) => { + // 杩囨护鎺� undefined 鐨勫�� + let filteredData = Object.assign( + {}, + ...Object.entries(extraParams).map(([key, value]) => + value !== undefined ? { [key]: value } : {} + ) + ) + //缁勫悎妯$硦鏌ヨ + filteredData.searchVal = queryForm.value.searchVal + filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value + return filteredData + } + + /** + * @returns 琛ㄦ牸 + */ + const RenderBaseTable = (props: RenderTableType) => { + const { + url, + dataSource, + isDrag, + isChecked, + isHidePagination, + params, + autoHeight, + } = props + + return ( + <div + class={{ + [styles.wmsTaskList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/HIAWms/wmsTask/{id}/adjustsort/{sort}" + v-model:dataSource={dataSource.value} + columns={columns} + contextMenu={contextMenu} + params={params} + isDrag={isDrag} + isChecked={isChecked} + autoHeight={autoHeight} + onCheck={onCheck} + onRowClick={onRowClick} + isHidePagination={isHidePagination} + pageSize={20} + v-slots={{ + name: ({ row }: any) => { + return row?.name ? ( + <TdButton + onClick={() => openDetail(row)} + text={<span style="color:#5a84ff">璇︽儏</span>} + icon="scale" + tip={row?.name} + hover + > + {row?.name} + </TdButton> + ) : ( + '-' + ) + }, + }} + ></BaseTable> + </div> + ) + } + + return () => { + return ( + <div class={styles.wmsTaskContent}> + {/* 娣诲姞/缂栬緫 */} + <WmsTaskDrawer + v-model={dialogConfig.visible} + title={dialogConfig.title} + row={current.value} + sort={sort.value} + onConfirm={onConfirmWmsTask} + /> + {/* 楂樼骇鏌ヨ */} + <WmsTaskQueryDrawer + ref="wmsTaskQueryDrawerRef" + v-model={dialogConfigForQuery.visible} + title={dialogConfigForQuery.title} + row={current.value} + sort={sort.value} + onConfirmQuery={handleQuery} + onRestQuery={resetQuery} + onClose={closeQuery} + /> + + <div class={styles.headerContent}> + <div class={styles.header}> + <IconButton + v-permission="wmsTask-add" + icon="add-p" + onClick={onAddWmsTask} + type="primary" + > + 娣诲姞 + </IconButton> + <el-divider direction="vertical" /> + + <el-divider direction="vertical" /> + <el-upload + v-permission="wmsTask-import" + name="file" + accept=".xlsx,.xls,.csv" + show-file-list={false} + onError={onError} + onSuccess={onSuccess} + before-upload={onBeforeUpload} + headers={headers.value} + action="/api/v1/HIAWms/wmsTask/import" + > + <IconButton icon="in">瀵煎叆</IconButton> + </el-upload> + + <IconButton + v-permission="wmsTask-output" + icon="out" + onClick={handleExport} + > + 瀵煎嚭 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="鍏抽敭瀛�"> + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </ElFormItem> + <IconButton + type="primary" + icon="search" + onClick={handleQueryForMain} + > + 鏌ヨ + </IconButton> {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 閲嶇疆 - </IconButton> */} - <IconButton - v-permission="wmsTask-add" - icon="search" - onClick={onAdvancedQuery} - type="primary" - > - 楂樼骇鏌ヨ - </IconButton> - </ElFormItem> - </div> - - <RenderBaseTable - url="/api/v1/HIAWms/wmsTask/page" - dataSource={dataSource} - isChecked={true} - isDrag={true} - /> - </div> - ) - } - }, -}) + </IconButton> */} + <IconButton + v-permission="wmsTask-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 楂樼骇鏌ヨ + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/HIAWms/wmsTask/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" index 3f5faca..0d1d5bb 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/AppService/AppService\346\250\241\346\235\277.txt" @@ -1,7 +1,7 @@ using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; using CMS.Plugin.$NameSpacePath$.Domain.Shared; -using CMS.Plugin.$NameSpacePath$.Domain.Shared.Util; +using CmsQueryExtensions; using CMS.Plugin.$NameSpacePath$.Domain.$EntityName$; using CmsQueryExtensions.Extension; using System.Linq.Expressions; diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" index da3d4ab..c35e1d6 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Entity/Dto\346\250\241\346\235\277.txt" @@ -1,4 +1,5 @@ using CMS.Plugin.$NameSpacePath$.Domain.Shared.Enums; +using CmsQueryExtensions; using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Domain.Entities; diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs" new file mode 100644 index 0000000..4f22808 --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/EnumHelper.cs" @@ -0,0 +1,77 @@ +锘縰sing System.ComponentModel; + +namespace CmsQueryExtensions +{ + /// <summary> + /// 鏋氫妇甯姪绫�. + /// </summary> + public static class EnumHelper + { + /// <summary> + /// 鑾峰彇鏋氫妇. + /// </summary> + /// <param name="enumName"> </param> + /// <returns></returns> + /// <exception cref="ArgumentException"></exception> + public static List<EnumItem> GetEnumItems(string enumName) + { + // 鑾峰彇褰撳墠绋嬪簭闆嗕腑鐨勬墍鏈夌被鍨� + var enumType = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(a => a.GetTypes()) + .FirstOrDefault(t => t.Name == enumName && t.IsEnum); + + if (enumType == null) + { + throw new Exception($"鏋氫妇绫诲瀷 {enumName} 涓嶅瓨鍦�"); + } + + return GetEnumItems(enumType); + } + + /// <summary> + /// 鑾峰彇鏋氫妇绫诲瀷. + /// </summary> + /// <param name="enumType"></param> + /// <returns></returns> + /// <exception cref="ArgumentException"></exception> + public static List<EnumItem> GetEnumItems(Type enumType) + { + if (!enumType.IsEnum) + { + throw new Exception("鎻愪緵鐨勭被鍨嬩笉鏄灇涓剧被鍨�"); + } + + var result = new List<EnumItem>(); + var values = Enum.GetValues(enumType); + + foreach (var value in values) + { + var fieldInfo = enumType.GetField(value.ToString()); + var description = fieldInfo? + .GetCustomAttributes(typeof(DescriptionAttribute), false) + .FirstOrDefault() as DescriptionAttribute; + + result.Add(new EnumItem + { + Value = (int)value, + Name = value.ToString(), + Description = description?.Description ?? value.ToString(), + }); + } + + return result; + } + } + + /// <summary> + /// 鏋氫妇鎻忚堪. + /// </summary> + public class EnumItem + { + public int Value { get; set; } + + public string Name { get; set; } + + public string Description { get; set; } + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs" new file mode 100644 index 0000000..5514f47 --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/ExportHelper.cs" @@ -0,0 +1,53 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Collections.Generic; +using System.ComponentModel; +using System.Reflection; +using System.Threading.Tasks; + +namespace CmsQueryExtensions +{ + /// <summary> + /// 瀵煎嚭甯姪绫�. + /// </summary> + public static class ExportHelper + { + + + // 鎵归噺杞崲鏂规硶 + public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) + { + return list.Select(ConvertToExportData).ToList(); + } + + // 閫氱敤杞崲鏂规硶锛堝吋瀹� Func<T, Dictionary<string, object>>锛� + public static Dictionary<string, object> ConvertToExportData<T>(T entity) + { + var dict = new Dictionary<string, object>(); + if (entity == null) return dict; + + foreach (var prop in typeof(T).GetProperties()) + { + var value = prop.GetValue(entity); + dict[prop.Name] = FormatValue(value); + } + return dict; + } + + private static object FormatValue(object value) + { + if (value == null) return string.Empty; + + // 澶勭悊鏋氫妇 + if (value is Enum enumValue) + return GetEnumDescriptionUtil.GetEnumDescription(enumValue); + + // 澶勭悊甯冨皵 + if (value is bool boolValue) + return boolValue ? "鏄�" : "鍚�"; + + return value; + } + + } +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs" new file mode 100644 index 0000000..bcf3c5b --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/queryExtensions/CmsQueryExtensions/Utils/GetEnumDescriptionUtil.cs" @@ -0,0 +1,30 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace CmsQueryExtensions +{ + public class GetEnumDescriptionUtil + { + /// <summary> + /// 鑾峰彇鏋氫妇鐨勬弿杩� + /// </summary> + /// <param name="enumValue"></param> + /// <returns></returns> + public static string GetEnumDescription(Enum enumValue) + { + string value = enumValue.ToString(); + if (string.IsNullOrWhiteSpace(value) || value == "0") return ""; + FieldInfo field = enumValue.GetType().GetField(value); + object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //鑾峰彇鎻忚堪灞炴�� + if (objs == null || objs.Length == 0) //褰撴弿杩板睘鎬ф病鏈夋椂锛岀洿鎺ヨ繑鍥炲悕绉� + return value; + DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; + return descriptionAttribute.Description; + } + } +} -- Gitblit v1.9.3