1
This commit is contained in:
@@ -405,6 +405,26 @@ export default {
|
|||||||
// 设置默认日期为今天
|
// 设置默认日期为今天
|
||||||
this.setDefaultDateRange()
|
this.setDefaultDateRange()
|
||||||
this.getListWithFallback()
|
this.getListWithFallback()
|
||||||
|
|
||||||
|
// 监听腾讯文档授权回调消息
|
||||||
|
this.handleOAuthMessage = (event) => {
|
||||||
|
if (event.data && event.data.type === 'tendoc_oauth_callback') {
|
||||||
|
if (event.data.success) {
|
||||||
|
this.$message.success(event.data.message || '授权成功!')
|
||||||
|
// 刷新token状态
|
||||||
|
this.checkTokenStatus()
|
||||||
|
} else {
|
||||||
|
this.$message.error(event.data.message || '授权失败')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.addEventListener('message', this.handleOAuthMessage)
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
// 移除消息监听器
|
||||||
|
if (this.handleOAuthMessage) {
|
||||||
|
window.removeEventListener('message', this.handleOAuthMessage)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 设置默认日期范围为今天 */
|
/** 设置默认日期范围为今天 */
|
||||||
@@ -691,22 +711,22 @@ export default {
|
|||||||
`width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes`
|
`width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes`
|
||||||
)
|
)
|
||||||
|
|
||||||
// 轮询检查授权是否完成(通过检查token状态)
|
// 监听窗口关闭事件(备用方案,如果postMessage失效)
|
||||||
const checkAuth = setInterval(async () => {
|
const checkWindowClosed = setInterval(() => {
|
||||||
if (authWindow.closed) {
|
if (authWindow.closed) {
|
||||||
clearInterval(checkAuth)
|
clearInterval(checkWindowClosed)
|
||||||
|
// 等待1秒后检查token状态(作为备用验证)
|
||||||
// 等待1秒后检查token状态
|
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
try {
|
try {
|
||||||
const tokenStatusRes = await getTokenStatus()
|
const tokenStatusRes = await getTokenStatus()
|
||||||
if (tokenStatusRes.data && tokenStatusRes.data.hasToken) {
|
if (tokenStatusRes.data && tokenStatusRes.data.hasToken) {
|
||||||
this.$message.success('授权成功!')
|
// 如果已经通过postMessage收到成功消息,这里不再重复提示
|
||||||
} else {
|
} else {
|
||||||
|
// 如果没有收到postMessage,可能是授权失败
|
||||||
this.$message.warning('授权未完成,请重新尝试')
|
this.$message.warning('授权未完成,请重新尝试')
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.$message.warning('无法验证授权状态')
|
// 静默处理,避免重复提示
|
||||||
}
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user