<div class="upload-img p-t-10 p-l-20 spe-field bgc-fff m-t-10"> <div class="m-b-16">请上传简历(word,pdf,图片,最大5M)</div> <van-uploader :after-read="afterReadwed" accept=".pdf,image/*,.doc,.docx" upload-icon="plus" :max-count="1" v-model="fileList.list" :before-read="uploadBefore" @click-preview="previewFile" @delete="delFile" /> </div> let fileList = reactive<any>({ list: [] })
// 简历文件上传 const afterReadwed= async (file: any) => { const toastId = toast({ type: 'loading', message: '正在上传...', duration: 0, forbidClick: true, }) var formData = new FormData() formData.append('file', file.file) formData.append("businessType", 'JobResumeRecommend'); const data = await api.commonOss.storage(formData) details.attResumeUrl = data.data[0] toast.clear(toastId) }
// 查看上传简历 const previewFile = async () => { const extension = details.attResumeUrl.split('.')[1] // 后缀名 if (isWx() && ['pdf', 'doc', 'docx'].includes(extension)) { // 图片不弹出弹窗 // 弹窗打开 state.maskShow = true return false } if (extension === 'pdf') { window.open('/previewer/web/viewer.html?file=' + state.prefix + details.attResumeUrl) } else if (['doc', 'docx'].includes(extension)) { // word window.open(state.preWordFix + state.prefix + details.attResumeUrl) } } // 删除简历 const delFile = () => { fileList.list = [] } // 简历上传之前 const uploadBefore = (file: File) => { const size: number = Math.floor(file.size / 1024 / 1024) if (size > 5) { // 文件大于5M,提醒用户不能上传 toast.fail('文件不能超过5M') return false } return true }