mirror of https://github.com/nocodb/nocodb
Wing-Kam Wong
2 years ago
1 changed files with 76 additions and 0 deletions
@ -0,0 +1,76 @@
|
||||
<script setup lang="ts"> |
||||
import type { UploadChangeParam } from 'ant-design-vue' |
||||
import { useI18n } from 'vue-i18n' |
||||
const { t } = useI18n() |
||||
|
||||
interface Props { |
||||
modelValue: boolean |
||||
importType: 'csv' | 'json' | 'excel' |
||||
} |
||||
|
||||
const { modelValue, importType } = defineProps<Props>() |
||||
|
||||
const emit = defineEmits(['update:modelValue']) |
||||
const fileList = ref([]) |
||||
const handleDrop = (e: DragEvent) => { |
||||
console.log(e) |
||||
} |
||||
|
||||
const uploadHint = computed(() => { |
||||
if (importType === 'excel') { |
||||
return t('msg.info.excelSupport') |
||||
} |
||||
}) |
||||
|
||||
const dialogShow = computed({ |
||||
get() { |
||||
return modelValue |
||||
}, |
||||
set(v) { |
||||
emit('update:modelValue', v) |
||||
}, |
||||
}) |
||||
|
||||
const handleChange = (info: UploadChangeParam) => { |
||||
const status = info.file.status |
||||
if (status !== 'uploading') { |
||||
console.log(info.file, info.fileList) |
||||
} |
||||
if (status === 'done') { |
||||
console.log(`${info.file.name} file uploaded successfully.`) |
||||
} else if (status === 'error') { |
||||
console.log(`${info.file.name} file upload failed.`) |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<template> |
||||
<v-dialog |
||||
v-model="dialogShow" |
||||
persistent |
||||
max-width="550" |
||||
@keydown.esc="dialogShow = false" |
||||
@keydown.enter="$emit('create', table)" |
||||
> |
||||
<v-card class=""> |
||||
<a-upload-dragger |
||||
v-model:fileList="fileList" |
||||
name="file" |
||||
:multiple="true" |
||||
action="https://www.mocky.io/v2/5cc8019d300000980a055e76" |
||||
@change="handleChange" |
||||
@drop="handleDrop" |
||||
> |
||||
<p class="ant-upload-drag-icon"> |
||||
<inbox-outlined></inbox-outlined> |
||||
</p> |
||||
<p class="ant-upload-text">Click or drag file to this area to upload</p> |
||||
<p class="ant-upload-hint"> |
||||
{{ uploadHint }} |
||||
</p> |
||||
</a-upload-dragger> |
||||
</v-card> |
||||
</v-dialog> |
||||
</template> |
||||
|
||||
<style scoped lang="scss"></style> |
Loading…
Reference in new issue