文件上传
This commit is contained in:
parent
099d042536
commit
2256a3233c
|
|
@ -22,4 +22,28 @@ export function uploadLargeFileByOcr(data) {
|
|||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 上传小文件---5M以内
|
||||
export function uploadSmallFile(data) {
|
||||
return request({
|
||||
url: '/smartBid/commonUpload/uploadSmallFile',
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 上传大文件---5M以上
|
||||
export function uploadLargeFile(data) {
|
||||
return request({
|
||||
url: '/smartBid/commonUpload/uploadLargeFile',
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<div v-else class="upload-text">
|
||||
<div class="main-text"> + 点击或将文件拖拽到这里上传</div>
|
||||
<div class="tip-text">
|
||||
<div>文件大小上限 {{ maxFileTips }},</div>
|
||||
<div>单份文件大小上限 {{ maxFileTips }},</div>
|
||||
<div>支持文件类型:{{ uploadType }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { uploadSmallFileByOcr, uploadLargeFileByOcr } from '@/api/common/uploadFile.js'
|
||||
import { uploadSmallFileByOcr, uploadLargeFileByOcr, uploadSmallFile, uploadLargeFile } from '@/api/common/uploadFile.js'
|
||||
export default {
|
||||
name: 'UploadFile',
|
||||
props: {
|
||||
|
|
@ -89,6 +89,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
beforeUpload(file) {
|
||||
alert(file.size);
|
||||
// 如果正在上传中,阻止新的上传
|
||||
if (this.isUploading) {
|
||||
return false;
|
||||
|
|
@ -103,7 +104,6 @@ export default {
|
|||
|
||||
// 验证文件大小
|
||||
const isLtMaxSize = file.size / 1024 / 1024 < this.maxSizeMB;
|
||||
|
||||
if (!isAllowedType || !isAllowedMimeType) {
|
||||
this.$message.error(`只能上传 ${this.uploadType} 格式的文件!`);
|
||||
return false;
|
||||
|
|
@ -142,6 +142,7 @@ export default {
|
|||
|
||||
// 如果启用自动上传且文件验证通过,触发上传
|
||||
if (this.autoUpload && file.status === 'ready' && !this.isUploading) {
|
||||
alert(this.fileUploadRule.fields_json);
|
||||
if (this.fileUploadRule.fields_json) {
|
||||
// 文件需要ocr识别
|
||||
this.uploadFile(file, '识别中');
|
||||
|
|
@ -199,7 +200,20 @@ export default {
|
|||
this.updateFileStatus(file.uid, 'uploading', text, null, 0);
|
||||
try {
|
||||
this.$bus.$emit('startUpload', text);
|
||||
const res = this.defaultFileSize < file.size ? await uploadLargeFileByOcr(formData) : await uploadSmallFileByOcr(formData);
|
||||
let res = null;
|
||||
if (this.defaultFileSize < file.size) {
|
||||
if (this.fileUploadRule.fields_json) {
|
||||
res = await uploadLargeFileByOcr(formData);
|
||||
} else {
|
||||
res = await uploadLargeFile(formData);
|
||||
}
|
||||
} else {
|
||||
if (this.fileUploadRule.fields_json) {
|
||||
res = await uploadSmallFileByOcr(formData);
|
||||
} else {
|
||||
res = await uploadSmallFile(formData);
|
||||
}
|
||||
}
|
||||
console.log('上传成功:', res);
|
||||
this.$bus.$emit('endUpload');
|
||||
// 上传成功,更新文件状态,设置进度为 100
|
||||
|
|
|
|||
|
|
@ -9,24 +9,24 @@
|
|||
<el-form-item label="文件上传" prop="fileList">
|
||||
<UploadFile :fileList="form.fileList" @file-change="handleFileChange" @del-file="handleDelFile"
|
||||
type="business_license" :uploadType="uploadType" :maxFileTips="maxFileTips"
|
||||
:fileUploadRule="fileUploadRule" />
|
||||
:fileUploadRule="fileUploadRule" :limitUploadNum="limitUploadNum" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// 技术方案
|
||||
const fileType = 'technical_solution';
|
||||
// 技术方案上传类型
|
||||
const uploadType = 'pdf、doc、docx';
|
||||
// 技术方案上传文件大小限制
|
||||
const maxFileTips = '500MB';
|
||||
// 技术方案上传文件上传规则
|
||||
const fileUploadRule = {
|
||||
fileUploadType: 'technical_solution',
|
||||
fields_json: '',
|
||||
suffix: 'technical_solution_database'
|
||||
// 默认参数
|
||||
const defaultParams = {
|
||||
fileType: 'technical_solution',
|
||||
uploadType: 'pdf、doc、docx',
|
||||
maxFileTips: '1MB',
|
||||
fileUploadRule: {
|
||||
fileUploadType: 'technical_solution',
|
||||
fields_json: '',
|
||||
suffix: 'technical_solution_database'
|
||||
},
|
||||
limitUploadNum: 10
|
||||
};
|
||||
import UploadFile from '@/views/common/UploadFile.vue'
|
||||
export default {
|
||||
|
|
@ -42,10 +42,11 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
fileType: fileType,
|
||||
uploadType: uploadType,
|
||||
maxFileTips: maxFileTips,
|
||||
fileUploadRule: fileUploadRule,
|
||||
fileType: defaultParams.fileType,
|
||||
uploadType: defaultParams.uploadType,
|
||||
maxFileTips: defaultParams.maxFileTips,
|
||||
fileUploadRule: defaultParams.fileUploadRule,
|
||||
limitUploadNum: defaultParams.limitUploadNum,
|
||||
form: {
|
||||
fileList: [],
|
||||
delFileList: []
|
||||
|
|
|
|||
Loading…
Reference in New Issue