Преглед изворни кода

fix(device): 修复电表数据接口适配问题

- 将 API 响应中的 records 字段改为 result 字段
- 优化了获取最新电表数据和电表数据列表的逻辑
-移除了不必要的 console.log 语句
nahida пре 1 година
родитељ
комит
4435e484d1
2 измењених фајлова са 34 додато и 28 уклоњено
  1. 3 3
      src/layout/components/Navbar.vue
  2. 31 25
      src/views/index.vue

+ 3 - 3
src/layout/components/Navbar.vue

@@ -50,8 +50,8 @@
           trigger="click"
         >
           <div class="avatar-wrapper">
-            <!-- <img :src="userStore.avatar" class="user-avatar" /> -->
-            <img src="" class="user-avatar" />
+             <img :src="userStore.avatar" class="user-avatar" />
+<!--            <img src="" class="user-avatar" />-->
             <el-icon><caret-bottom /></el-icon>
           </div>
           <template #dropdown>
@@ -74,7 +74,7 @@
 </template>
 
 <script setup>
-import { ElMessageBox } from "element-plus";
+import {ElMessageBox} from "element-plus";
 import Breadcrumb from "@/components/Breadcrumb";
 import TopNav from "@/components/TopNav";
 import Hamburger from "@/components/Hamburger";

+ 31 - 25
src/views/index.vue

@@ -25,20 +25,19 @@
             </div>
           </template>
           <div class="flex flex-col md:flex-row items-center md:items-start gap-6">
-            <ElAvatar :src="personalInfo.avatar" :size="100" />
+            <ElAvatar :src="personalInfo.avatar" :size="100" :style="{ backgroundColor: 'white' }" />
             <div class="flex-1">
               <h3 class="text-xl font-bold">{{ personalInfo.name }}</h3>
               <p class="text-gray-500 mb-2">{{ personalInfo.title }}</p>
               <ElDivider />
-              <p class="text-sm mb-4">{{ personalInfo.description }}</p>
               <div class="flex flex-col sm:flex-row gap-4">
                 <div class="flex items-center">
                   <i class="el-icon-message mr-2"></i>
-                  <span class="text-sm">{{ personalInfo.email }}</span>
+                  <span class="text-sm">邮箱:{{ personalInfo.email }}</span>
                 </div>
                 <div class="flex items-center">
                   <i class="el-icon-phone mr-2"></i>
-                  <span class="text-sm">{{ personalInfo.phone }}</span>
+                  <span class="text-sm">电话:{{ personalInfo.phone }}</span>
                 </div>
               </div>
             </div>
@@ -166,40 +165,31 @@
 </template>
 
 <script setup>
-import { ref, onMounted } from "vue";
+import {onMounted, ref} from "vue";
 import {
-  ElCard,
   ElAvatar,
-  ElDivider,
   ElBadge,
+  ElCard,
+  ElDivider,
+  ElMessage,
+  ElProgress,
   ElTable,
   ElTableColumn,
   ElTag,
-  ElProgress,
 } from "element-plus";
 import "element-plus/dist/index.css";
-import {
-  Calendar,
-  Location,
-  User,
-  Sunny,
-  Cloudy,
-  Monitor,
-  Connection,
-  WarningFilled,
-  Bell,
-} from "@element-plus/icons-vue";
+import {Bell, Cloudy, Connection, Location, Monitor, Sunny, User,} from "@element-plus/icons-vue";
 import request from "@/utils/request.js";
+import {getUserProfile} from "@/api/system/user.js";
+import useUserStore from "@/store/modules/user.js";
 
-import { ElMessage } from "element-plus";
 
+const userStore = useUserStore();
 // Personal info data
 const personalInfo = ref({
   name: "刘昊林",
   title: "系统管理员",
   avatar: "https://placeholder.co/150",
-  description:
-    "丰富系统管理经验,专注于IoT设备管理和系统维护。熟悉各类传感器和智能设备的部署与维护。",
   email: "guolianfa@500269.com",
   phone: "123-4567-8910",
 });
@@ -313,8 +303,6 @@ const fetchWeatherData = async () => {
     }
 
     weathernow.value = response.data;
-
-    console.log(123321, weathernow.value);
     return response.data;
   } catch (error) {
     handleWeatherError(error);
@@ -340,7 +328,25 @@ const handleWeatherError = (error) => {
   }
 };
 
-fetchWeatherData();
+const getUserInfo = async () => {
+  const res = await getUserProfile();
+  if(res.code !== 200){
+    ElMessage.error(res.msg)
+  }
+  console.log(res);
+  personalInfo.value.name = res.data.nickName;
+  personalInfo.value.email = res.data.email;
+  personalInfo.value.phone = res.data.phonenumber;
+  personalInfo.value.title = res.roleGroup;
+  personalInfo.value.avatar = userStore.avatar;
+}
+
+onMounted(()=>{
+  console.log(userStore);
+  //获取用户信息
+  getUserInfo();
+  fetchWeatherData();
+})
 </script>
 
 <style>