1、Editor组件的editorConfig参数合并未使用深度合并,外部的props如何传入的话,会导致二级参数都丢失,改为深度合并。

2、在后台删除token、refreshtoken后,前台仍缓存token的情况下,如果直接访问login页面会卡死打不开。在需要登出的判断处强制删除本地token并重走路由守卫。

(cherry picked from commit 877734639d665b38f4c4b554c74545060c923f34)
pull/840/head
panda 2025-12-08 15:24:44 +08:00
parent 3d07ebcbe8
commit b85e91c210
2 changed files with 10 additions and 2 deletions

View File

@ -8,6 +8,7 @@ import { ElMessage } from 'element-plus'
import { useLocaleStore } from '@/store/modules/locale'
import { getRefreshToken, getTenantId } from '@/utils/auth'
import { getUploadUrl } from '@/components/UploadFile/src/useUpload'
import merge from 'lodash-es/merge'
defineOptions({ name: 'Editor' })
@ -75,7 +76,7 @@ const handleCreated = (editor: IDomEditor) => {
//
const editorConfig = computed((): IEditorConfig => {
return Object.assign(
return merge(
{
placeholder: '请输入内容...',
readOnly: props.readonly,

View File

@ -161,6 +161,8 @@ service.interceptors.response.use(
}
// 2. 进行刷新访问令牌
try {
// 刷新令牌时,需要将 isRelogin.show 设置为 false解决在后台失效token前端缓存token,登录页卡死的问题
isRelogin.show = false
const refreshTokenRes = await refreshToken()
// 2.1 刷新成功,则回放队列的请求 + 当前请求
setToken((await refreshTokenRes).data.data)
@ -246,7 +248,12 @@ const handleAuthorized = () => {
if (!isRelogin.show) {
// 如果已经到登录页面则不进行弹窗提示
if (window.location.href.includes('login')) {
return
// 后台refreshtoken失效前台缓存token存在直接访问Login页面会卡死。
// 清除掉token重新走路由守卫确保本地即使缓存了token也是能正常加载登录页前提是要确保isRelogin.show为false
// https://wx.zsxq.com/group/88858522214142/topic/45811881251414188
removeToken()
window.location.href = window.location.href
// return
}
isRelogin.show = true
ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), {