import { defineComponent } from 'vue' import { Uploader, Button } from 'vant' import request from '@/helpers/request' export default defineComponent({ name: 'Upload', props: { accept: { type: String }, formatFile: { type: Function, default: (file: any) => file }, 'onUpdate:modelValue': { type: Function, default: (val: any) => {} }, disabled: { type: Boolean, default: false } }, data() { return { list: [], uploading: false } }, methods: { async beforeRead(file: File): Promise { console.log('beforeRead', file) return true }, async upload(file: File) { this.uploading = true const form = new FormData() form.append('file', file) try { const res = await request.post('/api-teacher/uploadFile', { data: form }) this.$emit('update:modelValue', res.data.url) } catch (error) {} this.uploading = false } }, render() { return ( { if (val[0]) { await this.upload(val[0].file) this.formatFile(val[0].file) } this.list = val }} onDelete={() => { this.list = [] this.$emit('update:modelValue', null) }} > ) } })