feat: 私密分享添加右键"复制下载链接"的选项
This commit is contained in:
parent
9fc67f6eb0
commit
3aeb9dd5d3
@ -189,6 +189,14 @@ export default {
|
||||
data: data
|
||||
})
|
||||
},
|
||||
// 生成shareToken
|
||||
generateShareToken: function(params) {
|
||||
return request({
|
||||
url: '/share/generate/share-token',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
},
|
||||
// 取消分享
|
||||
cancelShareLink: function(params) {
|
||||
return request({
|
||||
|
||||
@ -1056,6 +1056,7 @@ export default {
|
||||
isJustHideMenus: false,
|
||||
menusIsMultiple: false,
|
||||
menus: [],
|
||||
shareToken: undefined,
|
||||
contextmenuDisabled: false,
|
||||
rowContextData: {},
|
||||
tableLoading: true,
|
||||
@ -3336,27 +3337,43 @@ export default {
|
||||
this.menus.splice(index, 1)
|
||||
}
|
||||
}
|
||||
if (row.isShare && !row.isPrivacy) {
|
||||
// 添加复制下载链接选项
|
||||
this.menus.splice(-2, 0, {
|
||||
iconClass: 'menu-fuzhi',
|
||||
label: '复制下载链接',
|
||||
operation: 'copyDownloadLink',
|
||||
})
|
||||
}
|
||||
this.setMenusCopyDownLoadLinks(row)
|
||||
}
|
||||
this.preliminaryRowData(row)
|
||||
},
|
||||
setMenusCopyDownLoadLinks(row) {
|
||||
if (row.isShare) {
|
||||
// 获取this.menus中download的索引
|
||||
const downloadIndex = this.menus.findIndex(
|
||||
item => item.operation === 'download'
|
||||
)
|
||||
this.shareToken = undefined
|
||||
// 在download之前添加复制下载链接选项
|
||||
if (row.isPrivacy) {
|
||||
// 如果是私密分享需要先获取shareToken
|
||||
api.generateShareToken({fileId: row.id}).then(res => {
|
||||
this.shareToken = res.data
|
||||
this.addMenusCopyDownLoadLinks(downloadIndex)
|
||||
})
|
||||
} else {
|
||||
this.addMenusCopyDownLoadLinks(downloadIndex)
|
||||
}
|
||||
}
|
||||
},
|
||||
addMenusCopyDownLoadLinks(index) {
|
||||
this.menus.splice(index, 0, {
|
||||
iconClass: 'menu-fuzhi',
|
||||
label: '复制下载链接',
|
||||
operation: 'copyDownloadLink',
|
||||
})
|
||||
},
|
||||
setMenusByPermission(file) {
|
||||
const reservations = ['open', 'download']
|
||||
// 删除this.menus中不要的菜单, 仅保留reservations中的菜单
|
||||
this.menus = this.menus.filter(item =>
|
||||
reservations.includes(item.operation)
|
||||
)
|
||||
if (
|
||||
file.operationPermissionList &&
|
||||
file.operationPermissionList.length > 0
|
||||
) {
|
||||
if (file.operationPermissionList && file.operationPermissionList.length > 0) {
|
||||
if (file.operationPermissionList.indexOf('PUT') > -1) {
|
||||
this.menus.splice(this.menus.length - 1, 0, {
|
||||
iconClass: 'menu-rename',
|
||||
@ -3382,6 +3399,7 @@ export default {
|
||||
})
|
||||
}
|
||||
}
|
||||
this.setMenusCopyDownLoadLinks(file)
|
||||
},
|
||||
// 更多操作(单选)
|
||||
moreClick(row, event) {
|
||||
@ -3961,16 +3979,9 @@ export default {
|
||||
},
|
||||
// 复制下载链接
|
||||
copyDownloadLink(row) {
|
||||
let url =
|
||||
window.location.origin +
|
||||
fileConfig.previewUrl(
|
||||
this.$store.getters.name,
|
||||
row,
|
||||
undefined,
|
||||
undefined
|
||||
)
|
||||
let url = window.location.origin + fileConfig.previewUrl(this.$store.getters.name, row, undefined, this.shareToken)
|
||||
if (row.isFolder) {
|
||||
url = fileConfig.packageDownloadUrl(row.id, row.name + '.zip')
|
||||
url = fileConfig.packageDownloadUrl(row.id, row.name + '.zip', this.shareToken)
|
||||
}
|
||||
let clipboard = new Clipboard('.newFileMenu', {
|
||||
text: function() {
|
||||
|
||||
1
src/icons/svg/file-glb.svg
Normal file
1
src/icons/svg/file-glb.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1718450747239" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6336" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M263.68 337.9712h572.5696v562.8416H302.4896a38.8096 38.8096 0 0 1-38.8096-38.8096z" fill="#2F68CB" p-id="6337"></path><path d="M184.32 255.3856l137.6768-71.68v519.2192L184.32 774.5536z" fill="#93BBFF" p-id="6338"></path><path d="M321.9456 183.7056h417.28a38.8096 38.8096 0 0 1 38.8096 38.8096v479.5392H321.9456z" fill="#478BFF" p-id="6339"></path><path d="M482.56 877.1584c27.0336 0 44.2368-13.2096 44.2368-29.4912 0-14.4384-10.24-20.48-30.4128-20.48h-15.36c-10.9056-0.1024-14.2848-3.328-14.2848-8.448a11.2128 11.2128 0 0 1 4.608-8.9088 29.3888 29.3888 0 0 0 11.8272 2.6112 28.8768 28.8768 0 0 0 31.6416-29.0304 22.8352 22.8352 0 0 0-5.5296-15.36h16.128v-13.312h-29.952a35.2256 35.2256 0 0 0-12.288-2.1504 30.72 30.72 0 0 0-32.6144 30.3104 28.928 28.928 0 0 0 10.9568 22.528v0.6144a20.8384 20.8384 0 0 0-9.3696 15.6672 15.36 15.36 0 0 0 7.68 13.9776v0.768a22.3232 22.3232 0 0 0-12.288 18.432c0 14.7456 14.7456 22.272 35.0208 22.272z m0.6144-76.032a16.4864 16.4864 0 0 1-15.9744-18.2272 16.0768 16.0768 0 0 1 15.9744-17.9712 16.1792 16.1792 0 0 1 15.9744 17.9712 16.4864 16.4864 0 0 1-15.9744 18.2272z m1.9968 64.3584c-14.1312 0-22.5792-4.9152-22.5792-13.2096a15.36 15.36 0 0 1 7.2192-12.288 53.7088 53.7088 0 0 0 11.4688 1.2288h12.7488c10.24 0 15.8208 2.1504 15.8208 9.216s-9.9328 15.0528-24.6784 15.0528z m78.4896-24.2688a28.3648 28.3648 0 0 0 9.7792-1.3824l-2.56-13.3632a12.288 12.288 0 0 1-2.9184 0.3072c-2.1504 0-4.3008-1.6896-4.3008-6.4512V716.8h-17.5104v102.4c0 13.8752 4.7616 22.016 17.5104 22.016z m71.2192 0c19.0464 0 36.4032-16.5888 36.4032-45.6192 0-25.9584-12.1344-43.008-33.4848-43.008a40.3456 40.3456 0 0 0-25.1904 11.0592l0.4608-14.4384V716.8h-17.4592v122.4192h13.6704l1.6896-8.7552h0.4608a35.072 35.072 0 0 0 23.4496 10.752z m-3.328-14.592a28.3136 28.3136 0 0 1-18.432-7.68v-41.1648a29.3888 29.3888 0 0 1 20.1216-10.24c14.1312 0 19.8144 10.9056 19.8144 28.5696 0 19.6096-9.216 30.5152-21.504 30.5152z" fill="#FFFFFF" p-id="6340"></path><path d="M498.2784 401.3056h23.04v90.4704h-23.04z" fill="#FFFFFF" p-id="6341"></path><path d="M498.2784 401.3056h23.04v90.4704h-23.04z" fill="#FFFFFF" p-id="6342"></path><path d="M477.8496 426.9056c-5.12 0-10.9056 7.424-10.9056 17.3568s5.7856 17.3568 10.9056 17.3568 10.9568-7.424 10.9568-17.3568-5.7856-17.3568-10.9568-17.3568m0-25.6a40.1408 40.1408 0 0 1 36.5056 42.9568 40.1408 40.1408 0 0 1-36.5056 42.9568 40.1408 40.1408 0 0 1-36.5056-42.9568 40.1408 40.1408 0 0 1 36.5056-42.9568z" fill="#FFFFFF" p-id="6343"></path><path d="M665.088 499.9168a318.3104 318.3104 0 0 1-59.904 18.5344 324.608 324.608 0 0 1-63.744 5.12 47.9744 47.9744 0 0 1-15.0528 11.9296 192.256 192.256 0 0 1-28.2112 10.752 263.9872 263.9872 0 0 0 92.16-4.2496 205.5168 205.5168 0 0 0 74.752-42.0864z" fill="#FFFFFF" p-id="6344"></path><path d="M647.168 382.6176a197.0176 197.0176 0 0 0-231.2192-22.8352c-114.8416 76.8 6.656 208.0768 77.7216 171.6736a53.4528 53.4528 0 0 0 27.4432-41.7792l-16.4352-14.0288s-8.8576 32-26.3168 34.9696a56.7808 56.7808 0 0 1-49.664-24.1152 78.9504 78.9504 0 0 1-10.24-71.9872c14.2848-37.888 52.8896-49.8688 93.6448-54.784a293.2224 293.2224 0 0 1 135.0656 22.8864z" fill="#FFFFFF" p-id="6345"></path><path d="M539.2896 401.8688h23.04v92.16h-23.04z" fill="#FFFFFF" p-id="6346"></path><path d="M599.1936 401.8688h23.04v92.16h-23.04z" fill="#FFFFFF" p-id="6347"></path><path d="M659.1488 401.8688h23.04v92.16h-23.04z" fill="#FFFFFF" p-id="6348"></path><path d="M576.1536 401.8688h69.1712v23.04h-69.1712z" fill="#FFFFFF" p-id="6349"></path><path d="M659.1488 401.8688h69.1712v23.04h-69.1712z" fill="#FFFFFF" p-id="6350"></path><path d="M659.1488 436.48h58.88v23.04h-58.88z" fill="#FFFFFF" p-id="6351"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@ -10,7 +10,10 @@ const uuid = generateUUID();
|
||||
|
||||
const throttledConnectSSE = _.throttle((username) => {
|
||||
if (typeof EventSource !== 'undefined') {
|
||||
connectToSSE(username);
|
||||
// 判断cookie中是否有token
|
||||
if (store.getters.name) {
|
||||
connectToSSE(username);
|
||||
}
|
||||
} else {
|
||||
console.error('EventSource is not supported by the browser');
|
||||
}
|
||||
|
||||
@ -112,7 +112,8 @@ export default {
|
||||
return window.location.origin + `${this.baseUrl}/public/s/packageDownload?fileIds=${fileIds}${queryShareId}${queryShareToken}`
|
||||
},
|
||||
// 文件打包下载Url
|
||||
packageDownloadUrl: function(fileId, downloadName) {
|
||||
return window.location.origin + `${this.baseUrl}/public/s/${fileId}/packageDownload/${downloadName}`
|
||||
packageDownloadUrl: function(fileId, downloadName, shareToken) {
|
||||
const queryShareToken = shareToken ? `?share-token=${shareToken}` : ''
|
||||
return window.location.origin + `${this.baseUrl}/public/s/${fileId}/packageDownload/${downloadName}${queryShareToken}`
|
||||
},
|
||||
}
|
||||
|
||||
@ -88,5 +88,5 @@ iconClass.set('yml','file-yml')
|
||||
iconClass.set('yaml','file-yml')
|
||||
iconClass.set('plist','file-plist')
|
||||
iconClass.set('iso','file-iso')
|
||||
iconClass.set('glb','glb')
|
||||
iconClass.set('gltf','glb')
|
||||
iconClass.set('glb','file-glb')
|
||||
iconClass.set('gltf','file-glb')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user