From d09d3222db154ccc1a75036a558920793f44f0df Mon Sep 17 00:00:00 2001 From: jmal Date: Sat, 11 Mar 2023 01:07:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=87=AA=E5=8A=A8=E7=BB=ADtoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Icon/IconFile.vue | 2 +- src/components/ShareDialog/index.vue | 4 +- src/components/ShowFile/ShowFile.vue | 6 +- .../SimpleUploader/globalUploader.vue | 3 +- src/components/input/UploadImageInput.vue | 1 + src/components/office/OnlyOfficeEditor.vue | 2 +- src/components/preview/AudioPreview.vue | 269 +++++++++--------- src/components/preview/ImageViewer.vue | 6 +- src/layout/components/Navbar.vue | 2 +- src/store/modules/user.js | 5 +- src/utils/file-config.js | 10 +- src/views/home/mobile/index.vue | 7 +- src/views/markdown/index.vue | 1 + src/views/public/share/shareList.vue | 37 ++- src/views/setting/cloudManager.vue | 2 +- src/views/setting/sys/cusomerInfo.vue | 2 +- src/views/share/index.vue | 4 +- src/websocket/sockJS.js | 1 + 18 files changed, 196 insertions(+), 168 deletions(-) diff --git a/src/components/Icon/IconFile.vue b/src/components/Icon/IconFile.vue index 3e7c109..4757abf 100644 --- a/src/components/Icon/IconFile.vue +++ b/src/components/Icon/IconFile.vue @@ -28,7 +28,7 @@
- +
1 || this.rowContextData.isFolder) { - fileConfig.packageDownload(fileIds, this.$store.state.user.token) + fileConfig.packageDownload(fileIds, this.$store.state.user.token, this.$store.state.user.name) return } fileConfig.download(this.$store.state.user.name, this.rowContextData, this.$store.getters.token) diff --git a/src/components/SimpleUploader/globalUploader.vue b/src/components/SimpleUploader/globalUploader.vue index 705f9c0..0a13374 100755 --- a/src/components/SimpleUploader/globalUploader.vue +++ b/src/components/SimpleUploader/globalUploader.vue @@ -128,7 +128,8 @@ export default { .replace(/\sseconds?/, '秒') }, headers: { - 'jmal-token': this.$store.state.user.token + 'jmal-token': this.$store.state.user.token, + 'name': this.$store.state.user.name }, query() { } diff --git a/src/components/input/UploadImageInput.vue b/src/components/input/UploadImageInput.vue index 03abbf8..1bf533e 100644 --- a/src/components/input/UploadImageInput.vue +++ b/src/components/input/UploadImageInput.vue @@ -108,6 +108,7 @@ export default { return { headers: { 'jmal-token': this.$store.state.user.token, + 'name': this.$store.state.user.name, 'username': this.$store.state.user.name, 'userId': this.$store.state.user.userId }, diff --git a/src/components/office/OnlyOfficeEditor.vue b/src/components/office/OnlyOfficeEditor.vue index d6a24b9..b71aafe 100644 --- a/src/components/office/OnlyOfficeEditor.vue +++ b/src/components/office/OnlyOfficeEditor.vue @@ -126,7 +126,7 @@ export default { } let fileKey = `${new Date(this.file.updateDate).getTime()}-${this.file.id}` - let callbackUrl = fileConfig.officeCallBackUrl(this.$store.getters.token, this.file.id) + let callbackUrl = fileConfig.officeCallBackUrl(this.$store.getters.token, this.$store.getters.name, this.file.id) const config = { "document": { diff --git a/src/components/preview/AudioPreview.vue b/src/components/preview/AudioPreview.vue index fa25136..cf90309 100644 --- a/src/components/preview/AudioPreview.vue +++ b/src/components/preview/AudioPreview.vue @@ -1,117 +1,117 @@ @@ -119,31 +119,33 @@ export default { .aplayer { /* position: relative; */ width: 460px; - margin: 0!important; + margin: 0 !important; /* -webkit-filter: blur(15px); */ /* filter: blur(20px); */ -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); - background: #ffffff45!important; + background: #ffffff45 !important; /* background-color: rgba(255,255,255,0.72); */ } + .aplayer .aplayer-lrc:before { - background: transparent!important; + background: transparent !important; } + .aplayer .aplayer-lrc:after { - background: transparent!important; + background: transparent !important; } .aplayer .aplayer-list li.aplayer-list-light { - background: #d4d4d475!important; + background: #d4d4d475 !important; } .aplayer .aplayer-list li { - border-top: .5px solid #d4d4d475!important; + border-top: .5px solid #d4d4d475 !important; } .aplayer .aplayer-list li:hover { - background: #d4d4d475!important; + background: #d4d4d475 !important; } .audio-player { @@ -152,33 +154,37 @@ export default { left: 0; top: 0; } + .close-bar { - z-index: 2006; - position: absolute; - top: -36px; - right: -36px; - width: 0; - height: 0; - border-radius: 36px; - border-width: 36px; - border-style: solid; - border-color: transparent transparent transparent #d4d4d475; - line-height: 36px; - transform: rotate(-45deg); + z-index: 2006; + position: absolute; + top: -36px; + right: -36px; + width: 0; + height: 0; + border-radius: 36px; + border-width: 36px; + border-style: solid; + border-color: transparent transparent transparent #d4d4d475; + line-height: 36px; + transform: rotate(-45deg); } + .close-bar:hover { - cursor: pointer; - border-color: transparent transparent transparent #69696975; + cursor: pointer; + border-color: transparent transparent transparent #69696975; } + .audio-player-close { - transform: rotate(-45deg); - z-index: 2009; - position: absolute; - top: -8px; - right: 13px; + transform: rotate(-45deg); + z-index: 2009; + position: absolute; + top: -8px; + right: 13px; } + @media screen and (max-width: 768px) { - >>>.aplayer { + > > > .aplayer { z-index: 2; } .close-bar { @@ -189,7 +195,8 @@ export default { z-index: 1; transform: rotate(135deg); border-color: #ff000075; - >>>.audio-player-close { + + > > > .audio-player-close { top: -7px; right: -7px; } diff --git a/src/components/preview/ImageViewer.vue b/src/components/preview/ImageViewer.vue index 58b48fa..cb30f85 100644 --- a/src/components/preview/ImageViewer.vue +++ b/src/components/preview/ImageViewer.vue @@ -48,7 +48,8 @@ export default { computed: {}, data() { return { - imageThumbnailUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', + imageThumbnailUrl: `${process.env.VUE_APP_BASE_API}/view/thumbnail?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, + shareImageThumbnailUrl: `${process.env.VUE_APP_BASE_API}/public/s/view/thumbnail?share-token=${this.$store.getters.shareToken}&id=`, publicImageThumbnailUrl: process.env.VUE_APP_BASE_API + '/public/s/view/thumbnail?id=', currentSrc: '', images: [], @@ -124,6 +125,9 @@ export default { if (this.$store.getters.token){ return this.imageThumbnailUrl + fileId } else { + if (this.$store.getters.shareToken) { + return this.shareImageThumbnailUrl + fileId + } return this.publicImageThumbnailUrl + fileId } }, diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 5fdf48c..9f54af1 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -60,7 +60,7 @@ export default { return { isShow: true, activeIndex: '1', - imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', + imageUrl: `${process.env.VUE_APP_BASE_API}/view/thumbnail?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, defaultAvatar: require('../../assets/img/default-avatar.png') } }, diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 82d5ffd..c5bcc95 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -97,9 +97,10 @@ const actions = { return new Promise((resolve, reject) => { login({ username: username.trim(), password: password }).then(response => { const { data } = response - commit('SET_TOKEN', data.token) - setToken(data.token) + commit('SET_TOKEN', data.jmalToken) + setToken(data.jmalToken) setUsername(username.trim()) + commit('SET_NAME', username.trim()) commit('SET_USERID', data.userId) setConsumerId(data.userId) if(rememberMe){ diff --git a/src/utils/file-config.js b/src/utils/file-config.js index 57cb8e4..a14a78f 100644 --- a/src/utils/file-config.js +++ b/src/utils/file-config.js @@ -15,14 +15,14 @@ export default { return `${window.location.origin}/office/web-apps/apps/api/documents/api.js` }, // office回调url - officeCallBackUrl: function(token, fileId) { - return `${window.location.origin}${this.baseUrl}/office/track?jmal-token=${token}&fileId=${fileId}` + officeCallBackUrl: function(token, username, fileId) { + return `${window.location.origin}${this.baseUrl}/office/track?jmal-token=${token}&name=${username}&fileId=${fileId}` }, // 预览文件的url previewUrl: function(username, file, token, shareToken) { let fileUrl = `${this.baseUrl}/file/${username}${encodeURI(file.path)}${encodeURI(file.name)}` if (token) { - return `${fileUrl}?jmal-token=${token}` + return `${fileUrl}?jmal-token=${token}&name=${username}` } if (shareToken) { return `${fileUrl}?share-token=${shareToken}` @@ -46,9 +46,9 @@ export default { }) }, // 打包下载文件 - packageDownload: function(fileIds, token, shareToken) { + packageDownload: function(fileIds, token, username) { fileApi.isAllowDownload().then(() => { - window.open(`${this.baseUrl}/packageDownload?fileIds=${fileIds}&jmal-token=${token}`, '_self') + window.open(`${this.baseUrl}/packageDownload?fileIds=${fileIds}&jmal-token=${token}&name=${username}`, '_self') }) }, // 共享文件下载 diff --git a/src/views/home/mobile/index.vue b/src/views/home/mobile/index.vue index 65f081e..9232276 100644 --- a/src/views/home/mobile/index.vue +++ b/src/views/home/mobile/index.vue @@ -307,8 +307,8 @@ export default { lastTabbarOffsetTop: 0,// 底部tabbar与上边框 上次的距离 diffTabbarTop: 0,// 底部tabbar与上边框的变化距离 isiPhoneX: 0, - imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', - audioCoverUrl: process.env.VUE_APP_BASE_API + '/view/cover?jmal-token=' + this.$store.state.user.token + '&id=', + imageUrl: `${process.env.VUE_APP_BASE_API}/view/thumbnail?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, + audioCoverUrl: `${process.env.VUE_APP_BASE_API}/view/cover?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, tabActive: 0, path: this.$route.query.path, fileList: [], @@ -618,7 +618,7 @@ export default { fileIds.push(this.rowContextData.id) } if (fileIds.length > 1 || this.rowContextData.isFolder) { - fileConfig.packageDownload(fileIds, this.$store.state.user.token) + fileConfig.packageDownload(fileIds, this.$store.state.user.token, this.$store.state.user.name) return } fileConfig.download(this.$store.state.user.name, this.rowContextData, this.$store.state.user.token) @@ -634,7 +634,6 @@ export default { this.rowContextData.isFavorite = isFavorite this.highlightFavorite(isFavorite, true) api.favoriteUrl({ - token: this.$store.state.user.token, fileIds: this.rowContextData.id, isFavorite: isFavorite }).then(res => { diff --git a/src/views/markdown/index.vue b/src/views/markdown/index.vue index 2c02761..4e86ec8 100644 --- a/src/views/markdown/index.vue +++ b/src/views/markdown/index.vue @@ -376,6 +376,7 @@ export default { accept: 'image/*,.mp3, .wav, .rar', headers: { 'jmal-token': this.$store.state.user.token, + 'name': this.$store.state.user.name, 'username': this.$store.state.user.name, 'userId': this.$store.state.user.userId }, diff --git a/src/views/public/share/shareList.vue b/src/views/public/share/shareList.vue index f06abd5..7e2542d 100644 --- a/src/views/public/share/shareList.vue +++ b/src/views/public/share/shareList.vue @@ -220,16 +220,20 @@ @@ -276,7 +280,6 @@ import fileConfig from "@/utils/file-config"; import Clipboard from "clipboard"; import OfficePreview from "@/components/preview/OfficePreview"; import Logo from "@/components/Logo"; -import getPageTitle from "@/utils/get-page-title"; import store from "@/store"; export default { @@ -289,7 +292,7 @@ export default { return { prompt: '文件分享已被撤销',// 文件分享已被撤销 isLoading: true, - imageUrl: process.env.VUE_APP_BASE_API + '/public/s/view/thumbnail?id=', + //imageUrl: this.$store.getters.shareToken ? `${process.env.VUE_APP_BASE_API}/public/s/view/thumbnail?id=` : `${process.env.VUE_APP_BASE_API}/public/s/view/thumbnail?share-token=${this.$store.getters.shareToken}&id=`, fileMenuActive: '', path: this.$route.query.path, showNewFolder: false, @@ -417,6 +420,12 @@ export default { return this.$store.state.user.netdiskLogo } return '' + }, + imageUrl() { + console.log('this.$store.getters.shareToken', this.$store.getters.shareToken) + return this.$store.getters.shareToken === undefined ? + `${process.env.VUE_APP_BASE_API}/public/s/view/thumbnail?id=` : + `${process.env.VUE_APP_BASE_API}/public/s/view/thumbnail?share-token=${this.$store.getters.shareToken}&id=` } }, created() { @@ -949,7 +958,7 @@ export default { } if (copy) { if (this.rowContextData.isShare) { - this.copyDownloadLink(window.location.origin + fileConfig.previewUrl(this.sharer.username, this.rowContextData,undefined, this.$store.getters.shareToken)) + this.copyDownloadLink(window.location.origin + fileConfig.previewUrl(this.sharer.username, this.rowContextData, undefined, this.$store.getters.shareToken)) } else { this.copyDownloadLink(fileConfig.publicPackageDownloadUrl(this.shareId, fileIds, this.$store.getters.shareToken)) } @@ -1035,7 +1044,7 @@ export default { * @param shareCode 提取码 */ validShareCode(shareCode) { - this.$store.dispatch('user/validShareCode', {shareId: this.shareId, shareCode: shareCode}).then(()=> { + this.$store.dispatch('user/validShareCode', {shareId: this.shareId, shareCode: shareCode}).then(() => { this.showShareCode = false // 验证成功 this.getFileList() @@ -1142,13 +1151,16 @@ export default { .share-icon { margin: 20px 0 20px 0; - >>> .icon-favorite { + + > > > .icon-favorite { display: none; } - >>> .icon-share { + + > > > .icon-share { display: none; } - .share-icon-font >>> .svg-icon { + + .share-icon-font > > > .svg-icon { font-size: 8rem; } } @@ -1158,14 +1170,15 @@ export default { } .share-code { - >>> .el-input { + > > > .el-input { width: 200px; } } .share-code-valid { margin-top: 20px; - >>> .el-button { + + > > > .el-button { width: 200px; } } diff --git a/src/views/setting/cloudManager.vue b/src/views/setting/cloudManager.vue index 87c8743..a06f9ee 100644 --- a/src/views/setting/cloudManager.vue +++ b/src/views/setting/cloudManager.vue @@ -65,7 +65,7 @@ export default { components: {Logo}, data() { return { - uploadUrl: process.env.VUE_APP_BASE_API + '/user/setting/upload_logo?jmal-token=' + this.$store.state.user.token, + uploadUrl: `${process.env.VUE_APP_BASE_API}/user/setting/upload_logo?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}`, title: '网盘管理', syncLoading: false, resetLoading: false, diff --git a/src/views/setting/sys/cusomerInfo.vue b/src/views/setting/sys/cusomerInfo.vue index 54cac07..299a9e5 100644 --- a/src/views/setting/sys/cusomerInfo.vue +++ b/src/views/setting/sys/cusomerInfo.vue @@ -87,7 +87,7 @@ } }; return { - imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', + imageUrl: `${process.env.VUE_APP_BASE_API}/view/thumbnail?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, title: "个人信息", userUpdateLoading: false, dialogAvatar: false, diff --git a/src/views/share/index.vue b/src/views/share/index.vue index eacf34d..075142c 100644 --- a/src/views/share/index.vue +++ b/src/views/share/index.vue @@ -201,8 +201,8 @@ }, data() { return { - imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', - audioCoverUrl: process.env.VUE_APP_BASE_API + '/view/cover?jmal-token=' + this.$store.state.user.token + '&id=', + imageUrl: `${process.env.VUE_APP_BASE_API}/view/thumbnail?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, + audioCoverUrl: `${process.env.VUE_APP_BASE_API}/view/cover?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, fileMenuActive: '', path: this.$route.query.path, showNewFolder: false, diff --git a/src/websocket/sockJS.js b/src/websocket/sockJS.js index 6216bf2..f48ed77 100644 --- a/src/websocket/sockJS.js +++ b/src/websocket/sockJS.js @@ -9,6 +9,7 @@ export function toConnection(username,token) { ws.timer = setInterval(() => { try { if(ws.isConnected){ + console.log('isConnected', ws.isConnected) ws.stompClient.send("test"); }else{ connect(username, token);