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