禅道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" :limit="3"
list-type="picture-card" list-type="picture-card"
accept=".png, .jpg, .jpeg, .pdf" accept=".png, .jpg, .jpeg, .pdf"
:before-upload="beforeUpload"
:on-change="handleChangeBusinessList" :on-change="handleChangeBusinessList"
:class="{ disabledFbs: uploadDisabled }" :class="{ disabledFbs: uploadDisabled }"
:on-preview="picturePreviewFbs" :on-preview="picturePreviewFbs"
@ -147,24 +148,23 @@
<!-- 文件格式下载图片格式预览 --> <!-- 文件格式下载图片格式预览 -->
<div slot="file" slot-scope="{ file }"> <div slot="file" slot-scope="{ file }">
<img <img
v-if="isImage(file)"
class="el-upload-list__item-thumbnail" class="el-upload-list__item-thumbnail"
:src="file.url" :src="file.url"
alt="" alt=""
/> />
<div v-else class="picture-card-container"> <!-- <div v-else class="picture-card-container">
<img class="picture-card" :src="urlTemp" alt="" /> <img class="picture-card" :src="urlTemp" alt="" />
<p class="file-name">{{ file.name }}</p> <p class="file-name">{{ file.name }}</p>
</div> </div> -->
<span class="el-upload-list__item-actions"> <span class="el-upload-list__item-actions">
<span <!-- <span
v-if="updataIf(file)" v-if="updataIf(file)"
class="el-upload-list__item-delete" class="el-upload-list__item-delete"
@click="handleDownload(file)" @click="handleDownload(file)"
> >
<i class="el-icon-download" /> <i class="el-icon-download" />
</span> </span> -->
<span v-else class="el-upload-list__item-preview" @click="picturePreviewFbs(file)"> <span class="el-upload-list__item-preview" @click="picturePreviewFbs(file)">
<i class="el-icon-zoom-in" /> <i class="el-icon-zoom-in" />
</span> </span>
<span <span
@ -285,12 +285,19 @@
</template> </template>
</el-table-column> --> </el-table-column> -->
</el-table> </el-table>
<!-- 图片查看弹窗 -->
<el-dialog :visible.sync="dialogVisible" width="600px" height="600px">
<img width="100%" height="500px" :src="dialogImageUrl" />
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getMaTypeOpt } from '@/api/ma/base' import { getMaTypeOpt } from '@/api/ma/base'
import { getListProject, getListUnite, getAgreement } from '@/api/lease/apply' 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 { getUseringData, receiveSubmit, receiveEdit, receiveDetail, getEquipmentThreeTypes } from '@/api/business/index'
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
@ -748,18 +755,35 @@ export default {
directApplyInfoDetails: this.multipleSelection directApplyInfoDetails: this.multipleSelection
} }
let fileList = [] let fileList = []
console.log('params2222222222', params)
if (params.directApplyInfo.dirUrls.length > 0) { if (params.directApplyInfo.dirUrls.length > 0) {
fileList = params.directApplyInfo.dirUrls.map(e => { fileList = params.directApplyInfo.dirUrls.map(e => {
if (e.response.code === 200) { if(e.response && e.response.code===200){
return { return {
name: e.response.data.name, name: e.response.data.name,
url: e.response.data.url, url: e.response.data.url,
type: e.response.data.url.substring( type: e.response.data.url.substring(
e.response.data.url.lastIndexOf('.') + 1 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 params.directApplyInfo.dirUrls = fileList
@ -792,6 +816,8 @@ export default {
}, },
// //
handleChangeBusinessList(file, fileList) { handleChangeBusinessList(file, fileList) {
console.log("iiiiiiiiiiiiiiiiii",file)
console.log("ppppppppp",fileList)
const fileListTemp = fileList.filter(item => { const fileListTemp = fileList.filter(item => {
return item.uid != file.uid return item.uid != file.uid
}) })
@ -853,7 +879,7 @@ export default {
return true return true
} }
} else { } else {
const parts = e.name?.split('.') const parts = e.url?.split('.')
const extension = parts?.pop().toLowerCase() const extension = parts?.pop().toLowerCase()
if (extension === 'png' || extension === 'jpeg' || extension === 'jpg') { if (extension === 'png' || extension === 'jpeg' || extension === 'jpg') {
return false 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) { picturePreviewFbs(file) {
this.dialogImageUrl = file.url.replaceAll('#', '%23') console.log("xxxxxxxxxxxx",file)
const parts = file.name?.split('.') this.dialogImageUrl =file.response ? file.response.data.url : file.url.replaceAll('#', '%23')
const extension = parts?.pop() console.log("zzzzzzzzzz",this.dialogImageUrl)
if (extension === 'pdf') { // const parts = file.name ? file.name:file.url.split('.')
const windowName = file.name // console.log("yyyyyyyyy",parts)
window.open(file.url, windowName) // const extension = parts?.pop()
} else { // if (extension === 'pdf') {
// const windowName = file.name ? file.name : file.url
// window.open(file.url, windowName)
// } else {
this.dialogVisible = true this.dialogVisible = true
} // }
}, },
//- //-
handleRemoveElectricianImgList(file, fileList) { handleRemoveElectricianImgList(file, fileList) {
@ -892,12 +946,12 @@ export default {
console.log(file) console.log(file)
if (file.status === 'ready') { if (file.status === 'ready') {
downloadFile({ downloadFile({
fileName: file.name, fileName: file.name ? file.name : file.url,
fileData: file.raw, fileData: file.raw,
fileType: 'application/vnd.ms-excel;charset=utf-8' fileType: 'application/vnd.ms-excel;charset=utf-8'
}) })
} else if (file.status === 'success') { } 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 <el-upload
:action="uploadUrl" :action="uploadUrl"
:file-list="dialogAppy.decreaseFile" :file-list="dialogAppy.decreaseFile"
:headers="upload.headers"
:show-file-list="true" :show-file-list="true"
:auto-upload="true" :auto-upload="true"
:key="uploadKey" :key="uploadKey"
@ -442,6 +443,10 @@ export default {
// url: process.env.VUE_APP_BASE_API + '/file/upload' // 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() },
},
delBusinessFileIdList: [], // id delBusinessFileIdList: [], // id
@ -578,6 +583,8 @@ export default {
this.isView = true this.isView = true
this.title = '查看' this.title = '查看'
this.uploadKey = Date.now() this.uploadKey = Date.now()
//
this.dialogAppy.decreaseFile = []
getDiscountViewList(row.id).then(async response => { getDiscountViewList(row.id).then(async response => {
if (response.code == 200) { if (response.code == 200) {
@ -606,6 +613,8 @@ export default {
this.isView = false this.isView = false
this.title = '修改' this.title = '修改'
this.uploadKey = Date.now() this.uploadKey = Date.now()
//
this.dialogAppy.decreaseFile = []
getDiscountViewList(row.id).then(async response => { getDiscountViewList(row.id).then(async response => {
if (response.code == 200) { if (response.code == 200) {

View File

@ -603,6 +603,22 @@ export default {
// this.$message.error(' rar zip '); // this.$message.error(' rar zip ');
// return false; // 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; const isLt5M = file.size / 1024 / 1024 < 20;
if (!isLt5M) { if (!isLt5M) {
this.$message.error('单个文件大小不能超过 20MB'); this.$message.error('单个文件大小不能超过 20MB');

View File

@ -58,6 +58,7 @@
<el-upload <el-upload
:action="uploadUrl" :action="uploadUrl"
:file-list="maForm.bmFileInfos" :file-list="maForm.bmFileInfos"
:headers="upload.headers"
:show-file-list="true" :show-file-list="true"
:auto-upload="true" :auto-upload="true"
:key="uploadKey" :key="uploadKey"
@ -320,7 +321,11 @@ export default {
// // // //
// url: process.env.VUE_APP_BASE_API + '/file/upload' // 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: { computed: {