From 03426aefbf891aa1fe3064d4301d17d5de869114 Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期二, 22 四月 2025 17:20:20 +0800
Subject: [PATCH] fix: 修复用户信息无法及时响应

---
 src/pages/production/list/index.vue          |    7 +++----
 src/store/modules/user.ts                    |    3 ++-
 src/components/worker-calling-card/index.vue |   21 ++++-----------------
 src/pages/production/index.vue               |   22 ++++++++++++++++------
 4 files changed, 25 insertions(+), 28 deletions(-)

diff --git a/src/components/worker-calling-card/index.vue b/src/components/worker-calling-card/index.vue
index 8a0ee70..3ea106d 100644
--- a/src/components/worker-calling-card/index.vue
+++ b/src/components/worker-calling-card/index.vue
@@ -3,12 +3,12 @@
     <template #title>
       <view>
         <text class="font-medium">
-          {{ user.nickName }}
-          <text class="text-[#0D867F] text-xs">路{{ user.roleName }}</text>
+          {{ userInfo?.nickName }}
+          <text class="text-[#0D867F] text-xs">路{{ userInfo?.roles[0].roleName }}</text>
         </text>
       </view>
       <view>
-        <text class="font-medium text-[#3D3D3D] text-sm">宸ュ彿: {{ user.userName }}</text>
+        <text class="font-medium text-[#3D3D3D] text-sm">宸ュ彿: {{ userInfo?.userName }}</text>
       </view>
     </template>
     <view class="mt-2">
@@ -18,21 +18,8 @@
 </template>
 <script setup lang="ts">
 import { useUserStore } from "@/store/modules/user";
-import { nextTick } from "vue";
 const userStore = useUserStore();
-const userInfo: any = computed(() => userStore.userInfo);
-const user = reactive({
-  nickName: "",
-  userName: "",
-  roleName: "",
-});
-
-onLoad(() => {
-  nextTick();
-  user.nickName = userInfo.value.user?.nickName;
-  user.userName = userInfo.value.user?.userName;
-  user.roleName = userInfo.value.user?.roles[0].roleName;
-});
+const userInfo = computed(() => userStore.userInfo);
 </script>
 <style lang="scss" scoped>
 .calling_card {
diff --git a/src/pages/production/index.vue b/src/pages/production/index.vue
index 16dc0c3..a55a50a 100644
--- a/src/pages/production/index.vue
+++ b/src/pages/production/index.vue
@@ -12,10 +12,20 @@
     </wd-row>
     <wd-tabs v-model="tab" auto-line-width>
       <wd-tab :title="`寰呯敓浜�(${total.wait})`" class="tab_bg">
-        <ProductList :api="ManageApi.getProductList" state="寰呭畬鎴�" @ok="changeWait" />
+        <ProductList
+          ref="waitRef"
+          :api="ManageApi.getProductList"
+          state="寰呭畬鎴�"
+          @ok="changeWait"
+        />
       </wd-tab>
       <wd-tab :title="`宸茬敓浜�(${total.already})`" class="tab_bg">
-        <ProductList :api="ManageApi.getProductList" state="宸插畬鎴�" @ok="changeAlready" />
+        <ProductList
+          ref="alreadyRef"
+          :api="ManageApi.getProductList"
+          state="宸插畬鎴�"
+          @ok="changeAlready"
+        />
       </wd-tab>
     </wd-tabs>
   </view>
@@ -23,9 +33,11 @@
 
 <script lang="ts" setup>
 import ManageApi from "@/api/product/manage";
-import { onMounted, ref } from "vue";
+import { ref } from "vue";
 import ProductList from "./list/index.vue";
 
+const waitRef = ref();
+const alreadyRef = ref();
 const tab = ref<number>(0);
 const total = reactive({
   wait: 0,
@@ -39,8 +51,6 @@
 const changeAlready = (num: number) => {
   total.already = num;
 };
-
-onMounted(() => {});
 </script>
 
 <style lang="scss" scoped>
@@ -48,12 +58,12 @@
   border-radius: unset;
 }
 .scan_box {
-  padding: 6px;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 38px;
   height: 38px;
+  padding: 6px;
   background: #fff;
 }
 ::v-deep .wd-tabs__line {
diff --git a/src/pages/production/list/index.vue b/src/pages/production/list/index.vue
index 2fb4362..eb7adaa 100644
--- a/src/pages/production/list/index.vue
+++ b/src/pages/production/list/index.vue
@@ -25,7 +25,8 @@
 import ProductCard from "@/components/product_card/index.vue";
 import { useUserStore } from "@/store/modules/user";
 import zPaging from "@/components/z-paging/z-paging.vue";
-
+const userStore = useUserStore();
+const userInfo: any = computed(() => userStore.userInfo);
 const pagingRef = ref();
 const props = defineProps({
   api: {
@@ -54,10 +55,8 @@
 };
 
 const getList = async (pageNo: number, pageSize: number) => {
-  const userStore = useUserStore();
-  const userInfo: any = computed(() => userStore.userInfo);
   const { code, data } = await props.api({
-    userName: userInfo.value.user?.userName,
+    userName: userInfo.value.userName,
     state: props.state,
     current: pageNo,
     size: pageSize,
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index b3dba33..335e2d0 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -41,7 +41,8 @@
     return new Promise((resolve, reject) => {
       UserAPI.getUserInfo()
         .then((data: any) => {
-          setUserInfo(data.data);
+          console.log("鑾峰彇鐢ㄦ埛淇℃伅鎴愬姛", data.data.user);
+          setUserInfo(data.data.user);
           userInfo.value = data.data.user;
           resolve(data.data);
         })

--
Gitblit v1.9.3