refactor(material-center): 添加提交加载状态并优化删除按钮样式

- 在 `add-raw-material-drawer` 中添加了 `submitLoading` 状态,确保在提交过程中显示加载状态
- 在 `delete-file-modal` 中添加了 `loading` 状态,并更新了删除按钮的样式以显示加载状态
This commit is contained in:
rd
2025-09-22 11:26:28 +08:00
parent d4f82dbc3e
commit fcacd6fc1c
2 changed files with 36 additions and 24 deletions

View File

@ -259,23 +259,28 @@ export default defineComponent({
}; };
const onConfirm = async () => { const onConfirm = async () => {
const hasUploading = uploadData.value.some((item) => item.uploadStatus === EnumUploadStatus.uploading); try {
if (hasUploading) { submitLoading.value = true;
modalRef.value = Modal.warning({ const hasUploading = uploadData.value.some((item) => item.uploadStatus === EnumUploadStatus.uploading);
title: '上传未完成', if (hasUploading) {
content: <p>当前原料正在上传中关闭弹窗将导致上传失败请等待上传完成后再点击确定</p>, modalRef.value = Modal.warning({
okText: '我知道了', title: '上传未完成',
centered: true, content: <p>当前原料正在上传中关闭弹窗将导致上传失败请等待上传完成后再点击确定</p>,
}); okText: '我知道了',
return; centered: true,
} });
return;
}
const raw_materials = uploadData.value.filter((item) => item.uploadStatus !== EnumUploadStatus.error); const raw_materials = uploadData.value.filter((item) => item.uploadStatus !== EnumUploadStatus.error);
const { code } = await postBatchRawMaterial({ raw_materials }); const { code } = await postBatchRawMaterial({ raw_materials });
if (code === 200) { if (code === 200) {
message.success('上传成功'); message.success('上传成功');
emit('update'); emit('update');
onClose(); onClose();
}
} finally {
submitLoading.value = false;
} }
}; };
const openDeleteModal = (file) => { const openDeleteModal = (file) => {

View File

@ -6,7 +6,7 @@
</div> </div>
<template #footer> <template #footer>
<Button size="medium" @click="onClose">取消</Button> <Button size="medium" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="medium" @click="onDelete">确认删除</Button> <Button :loading="loading" class="ml-16px" danger size="medium" type="primary" @click="onDelete">确认删除</Button>
</template> </template>
</Modal> </Modal>
</template> </template>
@ -24,12 +24,14 @@ const emits = defineEmits(['update', 'batchUpdate']);
const visible = ref(false); const visible = ref(false);
const fileId = ref(null); const fileId = ref(null);
const fileName = ref(''); const fileName = ref('');
const loading = ref(false);
const isBatch = computed(() => Array.isArray(fileId.value)); const isBatch = computed(() => Array.isArray(fileId.value));
function onClose() { function onClose() {
visible.value = false; visible.value = false;
fileId.value = null; fileId.value = null;
loading.value = false;
fileName.value = ''; fileName.value = '';
} }
@ -42,14 +44,19 @@ const open = (record) => {
}; };
async function onDelete() { async function onDelete() {
const _fn = isBatch.value ? batchDeleteRawMaterials : deleteRawMaterial; try {
const _params = isBatch.value ? { ids: fileId.value } : fileId.value; loading.value = true;
const { code } = await _fn(_params); const _fn = isBatch.value ? batchDeleteRawMaterials : deleteRawMaterial;
if (code === 200) { const _params = isBatch.value ? { ids: fileId.value } : fileId.value;
message.success('删除成功'); const { code } = await _fn(_params);
isBatch.value ? emits('batchUpdate') : emits('update'); if (code === 200) {
message.success('删除成功');
isBatch.value ? emits('batchUpdate') : emits('update');
onClose(); onClose();
}
} finally {
loading.value = false;
} }
} }