chore: 优化文件上传判断是否刷新列表

This commit is contained in:
AN 2025-05-11 11:44:03 +08:00
parent bd1a26eb4f
commit 2940a3fcce
2 changed files with 7 additions and 6 deletions

View File

@ -40,7 +40,9 @@ const fileList = ref<UploadFileInfo[]>([]);
const needRelaodData = defineModel<boolean>('needRelaodData', { const needRelaodData = defineModel<boolean>('needRelaodData', {
default: false default: false
}); });
defineExpose({
refreshList: needRelaodData
});
watch( watch(
() => fileList.value, () => fileList.value,
newValue => { newValue => {

View File

@ -1,10 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref, watch } from 'vue'; import { computed, ref, watch } from 'vue';
import FileUpload from '@/components/custom/file-upload.vue';
defineOptions({ defineOptions({
name: 'OssUploadModal' name: 'OssUploadModal'
}); });
const fileUploadRef = ref<InstanceType<typeof FileUpload> | null>(null);
interface Props { interface Props {
uploadType: 'file' | 'image'; uploadType: 'file' | 'image';
} }
@ -21,8 +22,6 @@ const visible = defineModel<boolean>('visible', {
default: false default: false
}); });
const needRelaodData = ref<boolean>(false);
const accept = computed(() => { const accept = computed(() => {
return props.uploadType === 'file' ? '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.pdf' : '.jpg,.jpeg,.png,.gif,.bmp,.webp'; return props.uploadType === 'file' ? '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.pdf' : '.jpg,.jpeg,.png,.gif,.bmp,.webp';
}); });
@ -35,7 +34,7 @@ function closeDrawer() {
function handleClose() { function handleClose() {
closeDrawer(); closeDrawer();
if (needRelaodData.value) { if (fileUploadRef.value?.refreshList) {
emit('close'); emit('close');
} }
} }
@ -57,7 +56,7 @@ watch(visible, () => {
:bordered="false" :bordered="false"
@after-leave="handleClose" @after-leave="handleClose"
> >
<FileUpload v-model:need-relaod-data="needRelaodData" :upload-type="uploadType" :accept="accept" /> <FileUpload ref="fileUploadRef" :upload-type="uploadType" :accept="accept" />
</NModal> </NModal>
</template> </template>