108 lines
2.7 KiB
Plaintext
108 lines
2.7 KiB
Plaintext
<template>
|
|
<el-form
|
|
ref="uploadExcel"
|
|
class="upload-excel-file"
|
|
>
|
|
<!-- 文件 -->
|
|
<el-form-item :label="$t('trials:consistencyCheck:label:file')">
|
|
<div class="upload-container">
|
|
<el-upload
|
|
class="upload-demo"
|
|
action
|
|
accept=".xlsx,.xls,.csv"
|
|
:before-upload="beforeUpload"
|
|
:http-request="handleUploadFile"
|
|
:on-preview="handlePreview"
|
|
:show-file-list="true"
|
|
:limit="1"
|
|
:on-exceed="handleExceed"
|
|
>
|
|
<el-button size="small" type="primary" :loading="btnLoading">
|
|
{{ $t('trials:consistencyCheck:dialogButton:upload') }}
|
|
</el-button>
|
|
<span
|
|
slot="tip"
|
|
style="margin-left:10px;"
|
|
class="el-upload__tip"
|
|
>
|
|
({{ $t('trials:consistencyCheck:message:excelFileOnly') }})
|
|
</span>
|
|
</el-upload>
|
|
</div>
|
|
</el-form-item>
|
|
</el-form>
|
|
</template>
|
|
<script>
|
|
import { uploadVisitCheckExcel } from '@/api/trials'
|
|
export default {
|
|
data() {
|
|
return {
|
|
btnLoading: false,
|
|
trialId: this.$route.query.trialId
|
|
}
|
|
},
|
|
methods: {
|
|
beforeUpload(file) {
|
|
// 检测文件类型是否符合要求
|
|
if (this.checkFileSuffix(file.name)) {
|
|
return true
|
|
} else {
|
|
// Must be xls or xlsx format
|
|
this.$message.error(this.$t('trials:consistencyCheck:message:xlsx'))
|
|
|
|
return false
|
|
}
|
|
},
|
|
handleUploadFile(param) {
|
|
this.btnLoading = true
|
|
uploadVisitCheckExcel(this.trialId, param.file).then(res => {
|
|
this.btnLoading = false
|
|
this.$emit('refreshTable')
|
|
}).catch(() => {
|
|
this.btnLoading = false
|
|
})
|
|
},
|
|
handlePreview(file) {
|
|
if (file.fullPath) {
|
|
window.open(file.fullPath, '_blank')
|
|
}
|
|
},
|
|
handleExceed(files, fileList) {
|
|
// Upload is currently limited to 1 file
|
|
this.$message.warning(this.$t('trials:consistencyCheck:message:onlyOneFile'))
|
|
},
|
|
checkFileSuffix(fileName) {
|
|
var typeArr = ['xls', 'xlsx', 'csv']
|
|
var extendName = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
|
|
if (typeArr.indexOf(extendName) !== -1) {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.upload-excel-file{
|
|
.upload-container .el-upload--text {
|
|
border: none;
|
|
width: 80px;
|
|
height: 40px;
|
|
}
|
|
.upload-container .el-input--small {
|
|
margin-bottom: 5px;
|
|
}
|
|
.upload-container .el-icon-circle-check {
|
|
color: #00d1b2;
|
|
font-size: 13px;
|
|
}
|
|
.account_item_clear{
|
|
.el-tag__close{
|
|
display: none !important;
|
|
}
|
|
}
|
|
}
|
|
</style>
|