<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>
|