From d40d81aa421c7cdb959556fedffef71fc62cde80 Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期三, 16 四月 2025 10:07:22 +0800 Subject: [PATCH] 完成备件模块 --- eims-ui/apps/web-antd/src/views/eims/components/spare-modal.vue | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/eims-ui/apps/web-antd/src/views/eims/components/spare-modal.vue b/eims-ui/apps/web-antd/src/views/eims/components/spare-modal.vue new file mode 100644 index 0000000..e282745 --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/components/spare-modal.vue @@ -0,0 +1,54 @@ +<script setup lang="ts"> +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { ref } from 'vue'; + +import { useVbenModal } from '@vben/common-ui'; +import { DictEnum } from '@vben/constants'; + +import { message } from 'ant-design-vue'; + +import { renderDict } from '#/utils/render'; +import InnerView from '#/views/eims/spare/index.vue'; + +const emit = defineEmits<{ updateSelect: [any] }>(); + +const [BasicModal, modalApi] = useVbenModal({ + fullscreenButton: false, + draggable: true, + onCancel: handleCancel, + onConfirm: handleConfirm +}); +const innerView = ref(); + +async function handleConfirm() { + try { + modalApi.modalLoading(true); + const tableSelect = innerView.value.tableSelect(); + const eList = tableSelect.filter((item: any) => !item.actualStock && item.actualStock <= 0); + // 妫�娴嬮�夋嫨鐨勫浠跺簱瀛樻槸鍚︽甯� + if (eList.length > 0) { + message.error('瀛樺湪搴撳瓨涓嶈冻澶囦欢锛岃閲嶆柊閫夋嫨'); + return false; + } + emit('updateSelect', tableSelect); + await handleCancel(); + } catch (error) { + console.error(error); + } finally { + modalApi.modalLoading(false); + } +} + +async function handleCancel() { + modalApi.close(); +} +</script> + +<template> + <BasicModal :fullscreen-button="true" class="w-[800px]"> + <InnerView ref="innerView" /> + </BasicModal> +</template> + +<style scoped></style> -- Gitblit v1.9.3