fix: 修复分享链接里的文件没有使用预览配置打开的问题
This commit is contained in:
parent
b832e4fd7d
commit
b36e2b8231
@ -4342,7 +4342,7 @@ export default {
|
|||||||
this.$emit('selectedFile', selectFile)
|
this.$emit('selectedFile', selectFile)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const fileHandler = this.hasIframePreview(row.suffix, this.$store.getters.iframePreviewConfig)
|
const fileHandler = fileConfig.hasIframePreview(row.suffix, this.$store.getters.iframePreviewConfig)
|
||||||
if (fileHandler !== null) {
|
if (fileHandler !== null) {
|
||||||
// iframe 预览
|
// iframe 预览
|
||||||
this.iframePreviewVisible = true
|
this.iframePreviewVisible = true
|
||||||
@ -4425,18 +4425,6 @@ export default {
|
|||||||
}
|
}
|
||||||
return this.notPreviewDialogVisible;
|
return this.notPreviewDialogVisible;
|
||||||
},
|
},
|
||||||
hasIframePreview(suffix, fileHandlers) {
|
|
||||||
// 将 suffix 转换为小写
|
|
||||||
const lowerCaseSuffix = suffix.toLowerCase();
|
|
||||||
for (let key in fileHandlers) {
|
|
||||||
// 将 key 中的扩展名全部转换为小写
|
|
||||||
const extensions = key.split(',').map(extension => extension.toLowerCase());
|
|
||||||
if (extensions.includes(lowerCaseSuffix)) {
|
|
||||||
return fileHandlers[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
determineDownload(file) {
|
determineDownload(file) {
|
||||||
this.download(file)
|
this.download(file)
|
||||||
this.notPreviewDialogVisible = false
|
this.notPreviewDialogVisible = false
|
||||||
|
|||||||
@ -117,4 +117,22 @@ export default {
|
|||||||
const queryShareToken = shareToken ? `?share-token=${shareToken}` : ''
|
const queryShareToken = shareToken ? `?share-token=${shareToken}` : ''
|
||||||
return window.location.origin + `${this.baseUrl}/public/s/${fileId}/packageDownload/${downloadName}${queryShareToken}`
|
return window.location.origin + `${this.baseUrl}/public/s/${fileId}/packageDownload/${downloadName}${queryShareToken}`
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 判断是否有iframe预览
|
||||||
|
* @param suffix 文件后缀
|
||||||
|
* @param fileHandlers 文件处理器
|
||||||
|
* @returns {*|null} 文件处理器
|
||||||
|
*/
|
||||||
|
hasIframePreview: function(suffix, fileHandlers) {
|
||||||
|
// 将 suffix 转换为小写
|
||||||
|
const lowerCaseSuffix = suffix.toLowerCase();
|
||||||
|
for (let key in fileHandlers) {
|
||||||
|
// 将 key 中的扩展名全部转换为小写
|
||||||
|
const extensions = key.split(',').map(extension => extension.toLowerCase());
|
||||||
|
if (extensions.includes(lowerCaseSuffix)) {
|
||||||
|
return fileHandlers[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -263,7 +263,13 @@
|
|||||||
<image-viewer :fileList="fileList" :shareId="shareId" :file="imagePreviewRow"
|
<image-viewer :fileList="fileList" :shareId="shareId" :file="imagePreviewRow"
|
||||||
:status.sync="imagePreviewVisible"></image-viewer>
|
:status.sync="imagePreviewVisible"></image-viewer>
|
||||||
<video-preview :file="videoPreviewRow" :shareId="shareId" :status.sync="videoPreviewVisible"></video-preview>
|
<video-preview :file="videoPreviewRow" :shareId="shareId" :status.sync="videoPreviewVisible"></video-preview>
|
||||||
<iframe-preview :file="officePreviewRow" :shareId="shareId" :sharer="sharerUsername" :status.sync="officePreviewVisible"></iframe-preview>
|
<iframe-preview
|
||||||
|
:file="iframePreviewRow"
|
||||||
|
:fileHandler="fileHandler"
|
||||||
|
:shareId="shareId"
|
||||||
|
:sharer="sharerUsername"
|
||||||
|
:status.sync="iframePreviewVisible"
|
||||||
|
></iframe-preview>
|
||||||
<el-divider v-if="!linkFailed && !showShareCode" class="grid-divider" content-position="center"><i
|
<el-divider v-if="!linkFailed && !showShareCode" class="grid-divider" content-position="center"><i
|
||||||
class="el-icon-folder-opened"></i> {{ summaries }}
|
class="el-icon-folder-opened"></i> {{ summaries }}
|
||||||
</el-divider>
|
</el-divider>
|
||||||
@ -419,8 +425,9 @@ export default {
|
|||||||
imagePreviewVisible: false,
|
imagePreviewVisible: false,
|
||||||
videoPreviewRow: {},
|
videoPreviewRow: {},
|
||||||
videoPreviewVisible: false,
|
videoPreviewVisible: false,
|
||||||
officePreviewRow: {},
|
iframePreviewRow: {},
|
||||||
officePreviewVisible: false,
|
iframePreviewVisible: false,
|
||||||
|
fileHandler: {},
|
||||||
audioPreviewRow: {},
|
audioPreviewRow: {},
|
||||||
audioPreviewVisible: false,
|
audioPreviewVisible: false,
|
||||||
showUpdateDateItem: this.$pc,// 列表模式下是否显示修改时间
|
showUpdateDateItem: this.$pc,// 列表模式下是否显示修改时间
|
||||||
@ -431,6 +438,7 @@ export default {
|
|||||||
sharerAvatarUrl: '',
|
sharerAvatarUrl: '',
|
||||||
netdiskName: 'JmalCloud',
|
netdiskName: 'JmalCloud',
|
||||||
netdiskLogo: '',
|
netdiskLogo: '',
|
||||||
|
iframePreviewConfig: '',
|
||||||
showShareCode: false,
|
showShareCode: false,
|
||||||
shareData: {},
|
shareData: {},
|
||||||
extractionCode: '',
|
extractionCode: '',
|
||||||
@ -707,6 +715,9 @@ export default {
|
|||||||
if (this.sharer.netdiskName) {
|
if (this.sharer.netdiskName) {
|
||||||
this.netdiskName = this.sharer.netdiskName
|
this.netdiskName = this.sharer.netdiskName
|
||||||
}
|
}
|
||||||
|
if (this.sharer.iframe) {
|
||||||
|
this.iframePreviewConfig = JSON.parse(this.sharer.iframe)
|
||||||
|
}
|
||||||
this.sharerUsername = this.sharer.username
|
this.sharerUsername = this.sharer.username
|
||||||
if (this.sharer.netdiskLogo) {
|
if (this.sharer.netdiskLogo) {
|
||||||
this.netdiskLogo = this.sharer.netdiskLogo
|
this.netdiskLogo = this.sharer.netdiskLogo
|
||||||
@ -1074,6 +1085,15 @@ export default {
|
|||||||
this.pushRouter()
|
this.pushRouter()
|
||||||
this.accessShareOpenDir(row.id)
|
this.accessShareOpenDir(row.id)
|
||||||
} else {
|
} else {
|
||||||
|
const fileHandler = fileConfig.hasIframePreview(row.suffix, this.iframePreviewConfig)
|
||||||
|
console.log(fileHandler, this.iframePreviewConfig)
|
||||||
|
if (fileHandler !== null) {
|
||||||
|
// iframe 预览
|
||||||
|
this.iframePreviewVisible = true
|
||||||
|
this.iframePreviewRow = row
|
||||||
|
this.fileHandler = fileHandler
|
||||||
|
return
|
||||||
|
}
|
||||||
if (row.contentType.startsWith('image')) {
|
if (row.contentType.startsWith('image')) {
|
||||||
// 图片
|
// 图片
|
||||||
this.imagePreviewVisible = true
|
this.imagePreviewVisible = true
|
||||||
@ -1100,8 +1120,8 @@ export default {
|
|||||||
// office文件
|
// office文件
|
||||||
if (row.contentType.indexOf('office') > -1 || suffix.iframePreviewFile.includes(row.suffix)) {
|
if (row.contentType.indexOf('office') > -1 || suffix.iframePreviewFile.includes(row.suffix)) {
|
||||||
// office文件
|
// office文件
|
||||||
this.officePreviewVisible = true
|
this.iframePreviewVisible = true
|
||||||
this.officePreviewRow = row
|
this.iframePreviewRow = row
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 打开文件
|
// 打开文件
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user