|
@@ -25,20 +25,19 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="flex flex-col md:flex-row items-center md:items-start gap-6">
|
|
<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">
|
|
<div class="flex-1">
|
|
|
<h3 class="text-xl font-bold">{{ personalInfo.name }}</h3>
|
|
<h3 class="text-xl font-bold">{{ personalInfo.name }}</h3>
|
|
|
<p class="text-gray-500 mb-2">{{ personalInfo.title }}</p>
|
|
<p class="text-gray-500 mb-2">{{ personalInfo.title }}</p>
|
|
|
<ElDivider />
|
|
<ElDivider />
|
|
|
- <p class="text-sm mb-4">{{ personalInfo.description }}</p>
|
|
|
|
|
<div class="flex flex-col sm:flex-row gap-4">
|
|
<div class="flex flex-col sm:flex-row gap-4">
|
|
|
<div class="flex items-center">
|
|
<div class="flex items-center">
|
|
|
<i class="el-icon-message mr-2"></i>
|
|
<i class="el-icon-message mr-2"></i>
|
|
|
- <span class="text-sm">{{ personalInfo.email }}</span>
|
|
|
|
|
|
|
+ <span class="text-sm">邮箱:{{ personalInfo.email }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="flex items-center">
|
|
<div class="flex items-center">
|
|
|
<i class="el-icon-phone mr-2"></i>
|
|
<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>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -166,40 +165,31 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { ref, onMounted } from "vue";
|
|
|
|
|
|
|
+import {onMounted, ref} from "vue";
|
|
|
import {
|
|
import {
|
|
|
- ElCard,
|
|
|
|
|
ElAvatar,
|
|
ElAvatar,
|
|
|
- ElDivider,
|
|
|
|
|
ElBadge,
|
|
ElBadge,
|
|
|
|
|
+ ElCard,
|
|
|
|
|
+ ElDivider,
|
|
|
|
|
+ ElMessage,
|
|
|
|
|
+ ElProgress,
|
|
|
ElTable,
|
|
ElTable,
|
|
|
ElTableColumn,
|
|
ElTableColumn,
|
|
|
ElTag,
|
|
ElTag,
|
|
|
- ElProgress,
|
|
|
|
|
} from "element-plus";
|
|
} from "element-plus";
|
|
|
import "element-plus/dist/index.css";
|
|
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 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
|
|
// Personal info data
|
|
|
const personalInfo = ref({
|
|
const personalInfo = ref({
|
|
|
name: "刘昊林",
|
|
name: "刘昊林",
|
|
|
title: "系统管理员",
|
|
title: "系统管理员",
|
|
|
avatar: "https://placeholder.co/150",
|
|
avatar: "https://placeholder.co/150",
|
|
|
- description:
|
|
|
|
|
- "丰富系统管理经验,专注于IoT设备管理和系统维护。熟悉各类传感器和智能设备的部署与维护。",
|
|
|
|
|
email: "guolianfa@500269.com",
|
|
email: "guolianfa@500269.com",
|
|
|
phone: "123-4567-8910",
|
|
phone: "123-4567-8910",
|
|
|
});
|
|
});
|
|
@@ -313,8 +303,6 @@ const fetchWeatherData = async () => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
weathernow.value = response.data;
|
|
weathernow.value = response.data;
|
|
|
-
|
|
|
|
|
- console.log(123321, weathernow.value);
|
|
|
|
|
return response.data;
|
|
return response.data;
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
handleWeatherError(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>
|
|
</script>
|
|
|
|
|
|
|
|
<style>
|
|
<style>
|