From 2599cb802f48e69d32fe4a2ab1f7945710b811f2 Mon Sep 17 00:00:00 2001
From: lichunn <269031597@qq.com>
Date: Fri, 6 Feb 2026 15:26:35 +0800
Subject: [PATCH 01/19] =?UTF-8?q?fix=EF=BC=9ARefresh=20the=20page=20after?=
=?UTF-8?q?=20logging=20in?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/composable/defaultGlobalService.ts | 36 +++++++++++--------
packages/common/composable/http/index.ts | 10 ++++++
packages/common/js/canvas.ts | 4 +--
3 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/packages/common/composable/defaultGlobalService.ts b/packages/common/composable/defaultGlobalService.ts
index 29a448fc4f..04838b7b29 100644
--- a/packages/common/composable/defaultGlobalService.ts
+++ b/packages/common/composable/defaultGlobalService.ts
@@ -1,4 +1,11 @@
-import { useMessage, defineService, getMetaApi, META_SERVICE } from '@opentiny/tiny-engine-meta-register'
+import {
+ useCanvas,
+ useResource,
+ useMessage,
+ defineService,
+ getMetaApi,
+ META_SERVICE
+} from '@opentiny/tiny-engine-meta-register'
import { reactive, watch } from 'vue'
const getBaseInfo = () => {
@@ -55,24 +62,25 @@ const userState = reactive({
needToLogin: false
})
+const { subscribe, publish } = useMessage()
+
const getLoginStatus = () => userState.needToLogin
const setNeedToLogin = (value: boolean) => {
userState.needToLogin = value
+
if (!value) {
- const defaultTenantId = userState.userInfo.tenant?.[0]?.id
- if (defaultTenantId) {
- const currentUrl = new URL(window.location.href)
- const currentTenant = getBaseInfo().tenantId
-
- const filterList = userState.userInfo.tenant.filter((item) => item.id === currentTenant) || []
- // 只有当tenant值不存在时才更新
- if (!filterList?.length) {
- currentUrl.searchParams.set('tenant', String(defaultTenantId))
- window.history.replaceState(window.history.state, '', currentUrl.href)
+ watch(
+ useCanvas().isCanvasApiReady,
+ (ready) => {
+ if (ready) {
+ useResource().fetchResource()
+ }
+ },
+ {
+ immediate: true
}
- }
- window.location.reload()
+ )
}
}
@@ -104,8 +112,6 @@ const fetchAppInfo = (appId: string) => getMetaApi(META_SERVICE.Http).get(`/app-
const fetchAppList = (platformId: string) =>
getMetaApi(META_SERVICE.Http).get(`/app-center/api/apps/list/${platformId}`)
-const { subscribe, publish } = useMessage()
-
const postLocationHistoryChanged = (data: any) => publish({ topic: 'locationHistoryChanged', data })
/**
diff --git a/packages/common/composable/http/index.ts b/packages/common/composable/http/index.ts
index c67165a2e7..5ac9e39cf1 100644
--- a/packages/common/composable/http/index.ts
+++ b/packages/common/composable/http/index.ts
@@ -108,6 +108,12 @@ const whiteList = [
const notAuthList = ['app-center/api/chat/completions', 'app-center/api/ai/chat', 'app-center/api/ai/search']
const LoginErrorCode = ['CM004', 'CM005', 'CM006', 'CM007', 'CM336', 'CM339']
+// 新增:重置认证状态的函数
+const resetAuthState = () => {
+ isUnauthorized = false
+ abortControllers.clear()
+}
+
// 创建 AbortController 并关联到请求
const createAbortController = (config) => {
const controller = new AbortController()
@@ -191,6 +197,10 @@ const requestHandler = (config) => {
return new Promise(() => {})
}
} else {
+ // 有 token 时重置认证状态
+ if (isUnauthorized) {
+ resetAuthState()
+ }
if (!notAuthList.some((url) => config.url.includes(url))) {
config.headers.Authorization = `Bearer ${token}`
}
diff --git a/packages/common/js/canvas.ts b/packages/common/js/canvas.ts
index 4fb1ddd19f..cb69c3f655 100644
--- a/packages/common/js/canvas.ts
+++ b/packages/common/js/canvas.ts
@@ -26,7 +26,7 @@ interface CanvasStatus {
}
export const getCanvasStatus = (data: Occupier | undefined): CanvasStatus => {
- const globalState = getMetaApi(META_SERVICE.GlobalService).getState()
+ const userInfo = getMetaApi(META_SERVICE.GlobalService).getUserInfo()
const isDemo = useResource().appSchemaState.isDemo
let state = ''
@@ -35,7 +35,7 @@ export const getCanvasStatus = (data: Occupier | undefined): CanvasStatus => {
} else if (!data) {
state = PAGE_STATUS.Release
} else {
- state = globalState.userInfo.id === data.id ? PAGE_STATUS.Occupy : PAGE_STATUS.Lock
+ state = userInfo.id === data.id ? PAGE_STATUS.Occupy : PAGE_STATUS.Lock
}
return {
From c0b4a9e73d169df3f6e1f234775e1848cb5e1c51 Mon Sep 17 00:00:00 2001
From: lichunn <269031597@qq.com>
Date: Mon, 9 Feb 2026 10:20:25 +0800
Subject: [PATCH 02/19] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0userinfo=E7=9A=84id?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/plugins/materials/src/composable/useResource.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/plugins/materials/src/composable/useResource.ts b/packages/plugins/materials/src/composable/useResource.ts
index d8a57ebb45..f70a78714c 100644
--- a/packages/plugins/materials/src/composable/useResource.ts
+++ b/packages/plugins/materials/src/composable/useResource.ts
@@ -119,7 +119,7 @@ const initBlock = async (blockId: string) => {
const initPageOrBlock = async () => {
const { pageId, blockId } = getMetaApi(META_SERVICE.GlobalService).getBaseInfo()
const pagePluginApi = getMetaApi(META_APP.AppManage)
- const globalState = getMetaApi(META_SERVICE.GlobalService).getState()
+ const userInfo = getMetaApi(META_SERVICE.GlobalService).getUserInfo()
if (pageId) {
const data = await pagePluginApi.getPageById(pageId)
@@ -137,7 +137,7 @@ const initPageOrBlock = async () => {
const getPageInfo = () => {
// 页面是否被他人锁定 (被锁定 且 非当前用户锁定)
const isPageOccupierdByOthers = (page) => {
- return page.meta?.occupier && page.meta.occupier.id !== globalState.userInfo.id
+ return page.meta?.occupier && page.meta.occupier.id !== userInfo.id
}
// 首页
const homePage = appSchemaState.pageTree.find((page) => page?.meta?.isHome)
From 2e31c9b72f8dfd852c67ecb4fdc95f4feb6c4d26 Mon Sep 17 00:00:00 2001
From: lichunn <269031597@qq.com>
Date: Mon, 9 Feb 2026 14:50:53 +0800
Subject: [PATCH 03/19] test:
---
packages/toolbars/user/src/Main.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/toolbars/user/src/Main.vue b/packages/toolbars/user/src/Main.vue
index a1b98748ea..f2603fb069 100644
--- a/packages/toolbars/user/src/Main.vue
+++ b/packages/toolbars/user/src/Main.vue
@@ -13,7 +13,7 @@