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