限制上传文件类型

master
Harry Yang 2023-01-04 17:28:05 +08:00
parent 505abb0332
commit c7a0425f09
4 changed files with 52 additions and 26 deletions

View File

@ -96,7 +96,7 @@
</el-popover>
</template>
</el-table-column>
<el-table-column prop="contractNo" label="合同编号" width="80">
<el-table-column prop="contractNo" label="合同编号" width="120">
<template slot-scope="scope">
<el-popover placement="top-end" title="合同编号" width="200" trigger="hover">
<span slot="reference">{{scope.row.contractNo|ellipsis}}</span>
@ -104,23 +104,23 @@
</el-popover>
</template>
</el-table-column>
<el-table-column prop="processType" label="流程类型" width="100">
<el-table-column prop="processType" label="流程类型" width="110">
<template slot-scope="scope">
<span>{{scope.row.processType | processType}}</span>
</template>
</el-table-column>
<el-table-column prop="applyPersonName" label="申请人" width="120"></el-table-column>
<el-table-column prop="applyPersonName" label="申请人" width="130"></el-table-column>
<el-table-column prop="status" label="审核状态" width="100">
<template slot-scope="scope">
<span>{{scope.row.status | processStatus}}</span>
</template>
</el-table-column>
<el-table-column prop="currentAudit" label="当前审核人" width="100">
<el-table-column prop="currentAudit" label="当前审核人">
<template slot-scope="scope">
<span v-if="scope.row.status!=='audit_passed' && scope.row.status!=='audit_not_passed'">{{scope.row.currentAudit}}</span>
</template>
</el-table-column>
<el-table-column prop="lastUpdateAt" label="最后更新时间" width="170"></el-table-column>
<el-table-column prop="lastUpdateAt" label="最后更新时间" width="180"></el-table-column>
<el-table-column label="操作" fixed="right" width="230">
<template slot-scope="scope">

View File

@ -120,13 +120,13 @@
<span>{{processForm.applyPersonName}}</span>
</el-form-item>
<el-form-item label="申请部门领导">
<el-form-item label="申请部门领导">
<span>{{processForm.applyDeptLeaderName}}</span>
</el-form-item>
<el-form-item v-if="isSalesContractMode" label="申请人电话" prop="applyPersonPhone"
:rules="[{ required: true, message: '申请人电话不能为空'}]">
<el-input placeholder="请输入内容" v-model="processForm.applyPersonPhone" maxlength="11"></el-input>
<el-input placeholder="请输入内容" v-model="processForm.applyPersonPhone" maxlength="13"></el-input>
</el-form-item>
</div>
@ -1023,19 +1023,28 @@
},
beforeRemove(file, fileList) {
if (this.checkUploadFileSize(file)) {
if (this.isExtensionFailed(file) || this.isUploadFileSizeExceed(file)) {
// beforeUpload 阻断上传后 会调用该方法 上传文件大小不能超过 50MB
return true;
}
return this.$confirm("确定移除 " + file.name + "");
},
checkUploadFileSize(file) {
isUploadFileSizeExceed(file) {
return file.size > 50 * 1024 * 1024
},
isExtensionFailed(file) {
const { name } = file
return isEmpty(fileUploadSuffix.filter(suffix => name.endsWith(suffix)))
},
beforeUpload(file) {
if (this.checkUploadFileSize(file)) {
if (this.isExtensionFailed(file)) {
this.$message.warning("只能上传PDF、Excel、Word、图片、压缩包");
return false;
}
if (this.isUploadFileSizeExceed(file)) {
this.$message.warning("上传文件大小不能超过 50MB");
return false;
}
@ -1070,7 +1079,7 @@
},
beforeSupplierMaterialRemove(scope, file, fileList) {
if (this.checkUploadFileSize(file)) {
if (this.isExtensionFailed(file) || this.isUploadFileSizeExceed(file)) {
// beforeUpload 阻断上传后 会调用该方法 上传文件大小不能超过 50MB
return true;
}

View File

@ -121,12 +121,12 @@
<el-table-column prop="amount" label="数量"></el-table-column>
<el-table-column prop="unit" label="单位"></el-table-column>
<el-table-column prop="price" label="预算单价" width="100"></el-table-column>
<el-table-column prop="taxRate" label="税率(%"></el-table-column>
<el-table-column prop="totalTaxInclude_" label="含税总金额(元)" width="120"></el-table-column>
<el-table-column prop="totalTaxExclude" label="不含税金额(元)" width="120"></el-table-column>
<el-table-column prop="taxRate" label="税率(%" width="100"></el-table-column>
<el-table-column prop="totalTaxInclude_" label="含税总金额(元)" width="140"></el-table-column>
<el-table-column prop="totalTaxExclude" label="不含税金额(元)" width="140"></el-table-column>
<el-table-column prop="totalTax" label="税金(元)" width="110"></el-table-column>
<el-table-column prop="isUnderwritten" label="是否垫资"></el-table-column>
<el-table-column prop="payTime" label="支出时间" width="160"></el-table-column>
<el-table-column prop="payTime" label="支出时间" width="180"></el-table-column>
<el-table-column prop="payAmount" label="支出金额(元)" width="120"></el-table-column>
<el-table-column prop="amountAlready" label="已采购数量" width="100"></el-table-column>
<el-table-column prop="amountCurrent" label="本次采购数量" width="180">
@ -225,7 +225,7 @@
<span v-else>未选择项目</span>
</el-form-item>
<el-form-item label="申请部门领导">
<el-form-item label="申请部门领导">
<span v-if="processForm.applyDeptLeaderName">{{processForm.applyDeptLeaderName}}</span>
<span v-else>未选择部门</span>
</el-form-item>
@ -233,7 +233,7 @@
<el-form-item v-if="isSalesContractMode" label="申请人电话" prop="applyPersonPhone"
:rules="[{ required: true, message: '申请人电话不能为空'},
{ pattern:/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: '请输入合法手机号', trigger: 'blur' }]">
<el-input placeholder="请输入内容" v-model="processForm.applyPersonPhone" maxlength="11"></el-input>
<el-input placeholder="请输入内容" v-model="processForm.applyPersonPhone" maxlength="13"></el-input>
</el-form-item>
</div>
@ -614,6 +614,14 @@
"procurementAmount"
]
const fileUploadSuffix = [
".pdf",
".doc", ".docx",
".xls", ".xlsx",
".rar", ".zip", ".7z",
".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp"
]
const isEmpty = (obj) => {
if (!obj) {
return true
@ -1202,12 +1210,17 @@
this.fileList = fileList
},
checkUploadFileSize(file) {
isUploadFileSizeExceed(file) {
return file.size > 50 * 1024 * 1024
},
isExtensionFailed(file) {
const { name } = file
return isEmpty(fileUploadSuffix.filter(suffix => name.endsWith(suffix)))
},
beforeRemove(file, fileList) {
if (this.checkUploadFileSize(file)) {
if (this.isExtensionFailed(file) || this.isUploadFileSizeExceed(file)) {
// beforeUpload 阻断上传后 会调用该方法 上传文件大小不能超过 50MB
return true;
}
@ -1215,7 +1228,11 @@
},
beforeUpload(file) {
if (this.checkUploadFileSize(file)) {
if (this.isExtensionFailed(file)) {
this.$message.warning("只能上传PDF、Excel、Word、图片、压缩包");
return false;
}
if (this.isUploadFileSizeExceed(file)) {
this.$message.warning("上传文件大小不能超过 50MB");
return false;
}
@ -1250,7 +1267,7 @@
},
beforeSupplierMaterialRemove(scope, file, fileList) {
if (this.checkUploadFileSize(file)) {
if (this.isExtensionFailed(file) || this.isUploadFileSizeExceed(file)) {
// beforeUpload 阻断上传后 会调用该方法 上传文件大小不能超过 50MB
return true;
}

View File

@ -87,7 +87,7 @@
</template>
</el-table-column>
<el-table-column prop="contractNo" label="合同编号" width="80">
<el-table-column prop="contractNo" label="合同编号" width="120">
<template slot-scope="scope">
<el-popover placement="top-end" title="合同编号" width="200" trigger="hover">
<span slot="reference">{{scope.row.contractNo|ellipsis}}</span>
@ -96,19 +96,19 @@
</template>
</el-table-column>
<el-table-column prop="processType" label="流程类型" width="100">
<el-table-column prop="processType" label="流程类型" width="110">
<template slot-scope="scope">
<span>{{scope.row.processType | processType}}</span>
</template>
</el-table-column>
<el-table-column prop="applyPersonName" label="申请人" width="120"></el-table-column>
<el-table-column prop="applyPersonName" label="申请人" width="130"></el-table-column>
<el-table-column prop="status" label="审核状态" width="100">
<template slot-scope="scope">
<span>{{scope.row.status | processStatus}}</span>
</template>
</el-table-column>
<el-table-column prop="currentAudit" label="当前审核人" width="100"></el-table-column>
<el-table-column prop="lastUpdateAt" label="最后更新时间" width="170"></el-table-column>
<el-table-column prop="currentAudit" label="当前审核人"></el-table-column>
<el-table-column prop="lastUpdateAt" label="最后更新时间" width="180"></el-table-column>
<el-table-column label="操作" fixed="right" width="140">
<template slot-scope="scope">