禅道bug修复

This commit is contained in:
hongchao 2025-04-17 17:53:20 +08:00
parent 529859ce3d
commit b2f43db2d2
4 changed files with 103 additions and 19 deletions

View File

@ -138,6 +138,7 @@
:limit="3"
list-type="picture-card"
accept=".png, .jpg, .jpeg, .pdf"
:before-upload="beforeUpload"
:on-change="handleChangeBusinessList"
:class="{ disabledFbs: uploadDisabled }"
:on-preview="picturePreviewFbs"
@ -147,24 +148,23 @@
<!-- 文件格式下载图片格式预览 -->
<div slot="file" slot-scope="{ file }">
<img
v-if="isImage(file)"
class="el-upload-list__item-thumbnail"
:src="file.url"
alt=""
/>
<div v-else class="picture-card-container">
<!-- <div v-else class="picture-card-container">
<img class="picture-card" :src="urlTemp" alt="" />
<p class="file-name">{{ file.name }}</p>
</div>
</div> -->
<span class="el-upload-list__item-actions">
<span
<!-- <span
v-if="updataIf(file)"
class="el-upload-list__item-delete"
@click="handleDownload(file)"
>
<i class="el-icon-download" />
</span>
<span v-else class="el-upload-list__item-preview" @click="picturePreviewFbs(file)">
</span> -->
<span class="el-upload-list__item-preview" @click="picturePreviewFbs(file)">
<i class="el-icon-zoom-in" />
</span>
<span
@ -285,12 +285,19 @@
</template>
</el-table-column> -->
</el-table>
<!-- 图片查看弹窗 -->
<el-dialog :visible.sync="dialogVisible" width="600px" height="600px">
<img width="100%" height="500px" :src="dialogImageUrl" />
</el-dialog>
</div>
</template>
<script>
import { getMaTypeOpt } from '@/api/ma/base'
import { getListProject, getListUnite, getAgreement } from '@/api/lease/apply'
import { downloadFile, downloadFileData } from '@/utils/download'
import { getUseringData, receiveSubmit, receiveEdit, receiveDetail, getEquipmentThreeTypes } from '@/api/business/index'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
@ -748,9 +755,10 @@ export default {
directApplyInfoDetails: this.multipleSelection
}
let fileList = []
console.log('params2222222222', params)
if (params.directApplyInfo.dirUrls.length > 0) {
fileList = params.directApplyInfo.dirUrls.map(e => {
if (e.response.code === 200) {
if(e.response && e.response.code===200){
return {
name: e.response.data.name,
url: e.response.data.url,
@ -758,8 +766,24 @@ export default {
e.response.data.url.lastIndexOf('.') + 1
)
}
}else{
return {
name: null,
url: e.url,
}
}
// console.log("11111111111",e.response)
// if (e.response.code === 200) {
// return {
// name: e.response.data.name,
// url: e.response.data.url,
// type: e.response.data.url.substring(
// e.response.data.url.lastIndexOf('.') + 1
// )
// }
// }
})
}
params.directApplyInfo.dirUrls = fileList
@ -792,6 +816,8 @@ export default {
},
//
handleChangeBusinessList(file, fileList) {
console.log("iiiiiiiiiiiiiiiiii",file)
console.log("ppppppppp",fileList)
const fileListTemp = fileList.filter(item => {
return item.uid != file.uid
})
@ -853,7 +879,7 @@ export default {
return true
}
} else {
const parts = e.name?.split('.')
const parts = e.url?.split('.')
const extension = parts?.pop().toLowerCase()
if (extension === 'png' || extension === 'jpeg' || extension === 'jpg') {
return false
@ -862,17 +888,45 @@ export default {
}
}
},
beforeUpload(file) {
const validExtensions = ['.png', '.jpg', '.jpeg', '.pdf'];
const fileName = file.name.toLowerCase();
const hasValidExtension = validExtensions.some(ext => fileName.endsWith(ext));
if (!hasValidExtension) {
this.$message.error('仅支持上传 .png, .jpg, .jpeg, .pdf 格式的文件');
return false;
}
// 10MB
const isLt10M = file.size / 1024 / 1024 < 10;
if (!isLt10M) {
this.$message.error('文件大小不能超过 10MB');
return false;
}
// 40
if (file.name.length > 40) {
this.$message.error('文件名长度不能超过 40 个字符');
return false;
}
return true;
},
//-
picturePreviewFbs(file) {
this.dialogImageUrl = file.url.replaceAll('#', '%23')
const parts = file.name?.split('.')
const extension = parts?.pop()
if (extension === 'pdf') {
const windowName = file.name
window.open(file.url, windowName)
} else {
console.log("xxxxxxxxxxxx",file)
this.dialogImageUrl =file.response ? file.response.data.url : file.url.replaceAll('#', '%23')
console.log("zzzzzzzzzz",this.dialogImageUrl)
// const parts = file.name ? file.name:file.url.split('.')
// console.log("yyyyyyyyy",parts)
// const extension = parts?.pop()
// if (extension === 'pdf') {
// const windowName = file.name ? file.name : file.url
// window.open(file.url, windowName)
// } else {
this.dialogVisible = true
}
// }
},
//-
handleRemoveElectricianImgList(file, fileList) {
@ -892,12 +946,12 @@ export default {
console.log(file)
if (file.status === 'ready') {
downloadFile({
fileName: file.name,
fileName: file.name ? file.name : file.url,
fileData: file.raw,
fileType: 'application/vnd.ms-excel;charset=utf-8'
})
} else if (file.status === 'success') {
downloadFileData({ fileName: file.name, fileUrl: file.url })
downloadFileData({ fileName: file.url, fileUrl: file.url })
}
}
}

View File

@ -182,6 +182,7 @@
<el-upload
:action="uploadUrl"
:file-list="dialogAppy.decreaseFile"
:headers="upload.headers"
:show-file-list="true"
:auto-upload="true"
:key="uploadKey"
@ -442,6 +443,10 @@ export default {
// url: process.env.VUE_APP_BASE_API + '/file/upload'
// },
uploadUrl: process.env.VUE_APP_BASE_API + '/file/upload', //
upload: {
//
headers: { Authorization: 'Bearer ' + getToken() },
},
delBusinessFileIdList: [], // id
@ -578,6 +583,8 @@ export default {
this.isView = true
this.title = '查看'
this.uploadKey = Date.now()
//
this.dialogAppy.decreaseFile = []
getDiscountViewList(row.id).then(async response => {
if (response.code == 200) {
@ -606,6 +613,8 @@ export default {
this.isView = false
this.title = '修改'
this.uploadKey = Date.now()
//
this.dialogAppy.decreaseFile = []
getDiscountViewList(row.id).then(async response => {
if (response.code == 200) {

View File

@ -603,6 +603,22 @@ export default {
// this.$message.error(' rar zip ');
// return false;
// }
const validExtensions = ['.pdf', '.doc', '.docx'];
const validTypes = ['image/', 'video/'];
const fileName = file.name.toLowerCase();
const fileType = file.type;
//
const hasValidExtension = validExtensions.some(ext => fileName.endsWith(ext));
// MIME
const hasValidType = validTypes.some(type => fileType.startsWith(type));
if (!hasValidExtension && !hasValidType) {
this.$message.error('仅支持上传图片、视频、PDF、Word格式文件');
return false;
}
const isLt5M = file.size / 1024 / 1024 < 20;
if (!isLt5M) {
this.$message.error('单个文件大小不能超过 20MB');

View File

@ -58,6 +58,7 @@
<el-upload
:action="uploadUrl"
:file-list="maForm.bmFileInfos"
:headers="upload.headers"
:show-file-list="true"
:auto-upload="true"
:key="uploadKey"
@ -320,7 +321,11 @@ export default {
// //
// url: process.env.VUE_APP_BASE_API + '/file/upload'
// },
uploadUrl: process.env.VUE_APP_BASE_API + '/file/upload' //
uploadUrl: process.env.VUE_APP_BASE_API + '/file/upload', //
upload: {
//
headers: { Authorization: 'Bearer ' + getToken() },
}
}
},
computed: {