Files
crmeb_java/admin/src/components/Upload/uploadFile.vue
2021-12-31 15:58:40 +08:00

70 lines
1.6 KiB
Vue

<template>
<div class="upload-container">
<el-upload
class="upload-demo mr10 mb15"
action
:http-request="handleUploadForm"
:headers="myHeaders"
:show-file-list="false"
multiple
>
<div v-if="url" class="upLoadPicBox">
<div class="upLoad">
<i class="el-icon-document-checked cameraIconfont" />
</div>
</div>
<el-button v-else size="mini" type="primary" v-hasPermi="['admin:upload:file']">点击上传</el-button>
</el-upload>
</div>
</template>
<script>
import { fileFileApi } from '@/api/systemSetting'
import { getToken } from '@/utils/auth'
export default {
name: 'UploadFile',
props: {
value: {}
},
data() {
return {
myHeaders: { 'X-Token': getToken() },
url: ''
}
},
beforeMount() {
if (this.value) {
this.url = this.value
}
},
methods: {
// 上传
handleUploadForm(param) {
const formData = new FormData()
const data = {
model: this.$route.path.split('/')[1],
pid: 10
}
formData.append('multipart', param.file)
const loading = this.$loading({
lock: true,
text: '上传中,请稍候...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
fileFileApi(formData, data).then(res => {
loading.close()
this.url = res.url
this.$emit('input', this.url)
this.$message.success('上传成功')
}).catch(res => {
loading.close()
})
}
}
}
</script>
<style scoped>
</style>