From b0388b8c120609416f19ccae6d5f9f73f255d623 Mon Sep 17 00:00:00 2001
From: syruan <15555146157@163.com>
Date: Thu, 18 Dec 2025 09:49:57 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E6=94=B6=E5=88=B0iframe=E4=BC=A0?=
=?UTF-8?q?=E8=BE=93=E8=BF=87=E6=9D=A5=E7=9A=84token=E8=B0=83=E7=94=A8?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
index.html | 4 +---
src/App.vue | 15 ++++++++++++++-
src/views/cart/index.vue | 4 ++--
src/views/order/index.vue | 6 +++---
4 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/index.html b/index.html
index e624d5a..1487f6a 100644
--- a/index.html
+++ b/index.html
@@ -4,9 +4,7 @@
-
机具租赁商城
-
-
+ 安徽机械化施工装备管理平台
diff --git a/src/App.vue b/src/App.vue
index 7a60d5e..82e8afc 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -11,7 +11,7 @@ const store = useStore()
const router = useRouter()
// 监听来自A项目的 postMessage
-const handleMessage = (event: MessageEvent) => {
+const handleMessage = async (event: MessageEvent) => {
// 安全检查:验证消息来源
// 在生产环境中,建议验证 event.origin 是否为可信来源
// 例如: if (event.origin !== 'https://your-a-project-domain.com') return
@@ -29,6 +29,19 @@ const handleMessage = (event: MessageEvent) => {
userStore.setToken(token)
console.log('✅ Token已成功保存到localStorage和Pinia store')
+
+ // 3. 获取用户信息(重要!避免页面访问 userInfo.dept 时报错)
+ try {
+ const result: any = await getUserInfoAPI()
+ if (result && result.user) {
+ userStore.setUserInfo(result.user)
+ userStore.setPermissionsInfo(result?.permissions)
+ console.log('✅ 用户信息已成功加载')
+ }
+ } catch (error) {
+ console.error('❌ 获取用户信息失败:', error)
+ }
+
console.log('✅ 后续请求将自动携带Authorization头,路由守卫也会放行')
// 可选:向A项目发送确认消息
diff --git a/src/views/cart/index.vue b/src/views/cart/index.vue
index a7e991a..5e61a0f 100644
--- a/src/views/cart/index.vue
+++ b/src/views/cart/index.vue
@@ -546,8 +546,8 @@ const areaList = ref([]) // 省
const areaCityList = ref([]) // 市
const areaCountyList = ref([]) // 区/县
const queryForm: any = reactive({
- useUnit: store.userInfo.dept.deptId, // 需求单位
- useUnitName: store.userInfo.dept.deptName,
+ useUnit: store.userInfo?.dept?.deptId || '', // 需求单位(使用可选链避免报错)
+ useUnitName: store.userInfo?.dept?.deptName || '', // 需求单位名称(使用可选链避免报错)
proCode: '', // 项目编号
proName: '', // 项目名称
proType: '', // 项目类型
diff --git a/src/views/order/index.vue b/src/views/order/index.vue
index 5ac11f1..b4bcced 100644
--- a/src/views/order/index.vue
+++ b/src/views/order/index.vue
@@ -5,7 +5,7 @@
- 首页
+ 首页
提交订单
@@ -371,8 +371,8 @@ const orderList = ref
([])
const addressTitle = ref('请选择收货地址')
const addressList = ref([])
const queryForm: any = reactive({
- useUnit: store.userInfo.dept.deptId, // 需求单位
- useUnitName: store.userInfo.dept.deptName,
+ useUnit: store.userInfo?.dept?.deptId || '', // 需求单位(使用可选链避免报错)
+ useUnitName: store.userInfo?.dept?.deptName || '', // 需求单位名称(使用可选链避免报错)
proCode: '', // 项目编号
proName: '', // 项目名称
proType: '', // 项目类型