Files
hellogithub-vue/src/components/User/UserInfo.vue
2023-07-10 22:04:49 +08:00

180 lines
6.7 KiB
Vue

<template>
<div style="display: flex;flex-direction: column;flex-wrap: nowrap" v-show="this.$cookie.get('username')!=null">
<div style="display: flex;flex-direction: row;align-items: center;width: 11vw;justify-content: space-between">
<div @click="toUserPage" style="display: flex;flex-direction: row;align-items: center">
<!-- <el-avatar v-if="imageUrl===''" shape="square" style=" cursor: pointer;box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)" size="large"></el-avatar>-->
<el-avatar v-if="this.$cookie.get('username')!==null" shape="square" style=" cursor: pointer;box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)" :src="'http://localhost:8082/helloGithub_war_exploded/retUserAv?username='+this.$cookie.get('username')" size="large">{{this.$cookie.get('username')}}</el-avatar>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: space-evenly">
<span style="cursor: pointer;font-weight: bold">{{this.$cookie.get('username')}}</span>
<span style="display: flex;justify-content: flex-start;cursor: pointer;font-weight: 800;font-size: 13px;color: #3b82f6">Lv.{{userLevel}}</span>
</div>
</div>
<el-switch v-model="switchValue" style="">
</el-switch>
</div>
<div style="display: flex;flex-direction: row;margin-top: 10px;justify-content: space-between;align-items: center">
<span style="font-size: 10px;color: #9ca3af">贡献值</span>
<span style="font-weight: bold;color: #59A3A4;font-size: 20px">{{ContributionValue}}/100</span>
</div>
<div style="margin-top: 10px">
<el-progress :text-inside="true" :stroke-width="15" :percentage="ContributionValue"></el-progress>
</div>
<el-divider></el-divider>
<div style="display: flex;align-items: center;justify-content: space-between;flex-direction: row;flex-wrap: nowrap;">
<el-link style="color: #9ca3af;font-size: 13px" icon="el-icon-s-custom" class="link" @click="toUserPage">我的主页</el-link>
<el-link style="color: #9ca3af;font-size: 13px" icon="el-icon-switch-button" class="link" @click="signOut">退出登录</el-link>
</div>
</div>
</template>
<script>
import axios from "axios";
import Vue from "vue";
export default {
name: "UserInfo",
data(){
return{
switchValue:false,
ContributionValue:0,
imageUrl:'',
userLevel:null,
}
},
created() {
this.updateUserLevel();
this.getUserInfo();
},
mounted() {
this.getContributionValue();
this.getUserInfo();
setTimeout(()=>{
this.updateUserLevel();
this.getUserInfo();
},1000)
},
methods: {
signOut() {
this.$cookie.delete('username');
// deletecookie
axios({
method: 'get',
// 请求的地址
url: 'http://localhost:8082/helloGithub_war_exploded/deletesession',
// URL 中的查询参数
params: {}
});
if (this.$cookie.get('username') === null) {
Vue.prototype.$notify({
title: '成功',
message: ('i', {style: 'color: teal'}, "退出成功!"),
type: 'success',
offset: 50
});
if (this.$route.path !== '/home') {
setTimeout(() => {
this.$router.push({
path: '/home'
})
}, 800)
} else {
window.location.reload();
}
} else {
Vue.prototype.$notify.error({
title: '错误',
message: ('i', {style: 'color: teal'}, "退出失败!"),
type: 'success',
offset: 50
});
}
},
toUserPage() {
this.$router.push({
path: '/UserInfoPage',
query: {
name: this.$cookie.get('username'),
refresh: true
}
})
},
getContributionValue() {
var that = this;
axios({
method: 'post',
// 请求的地址
url: 'http://localhost:8082/helloGithub_war_exploded/contributionValue',
// URL 中的查询参数
params: {}
}).then((res) => {
// console.log(res);
if (res.data.code === 500) {
return;
} else {
that.ContributionValue = res.data;
}
});
},
getUserInfo() {
var that = this;
if(this.$cookie.get("username")!=null){
axios({
method: 'post',
// 请求的地址
url: 'http://localhost:8082/helloGithub_war_exploded/retUser',
// URL 中的查询参数
params: {
username: this.$cookie.get("username")
}
}).then(function (res) {
that.userLevel=res.data.userLevel;
// that.imageUrl = res.data.userAvatar;
// console.log(res);
});
}else{
return;
}
},
updateUserLevel(){
if(this.$cookie.get("username")!=null){
axios({
method: 'post',
// 请求的地址
url: 'http://localhost:8082/helloGithub_war_exploded/levelup',
// URL 中的查询参数
params: {
}
});
}else{
return;
}
},
// changeAvatarByLocal(){
// var that=this;
// axios({
// method: 'post',
// // 请求的地址
// url: '/api/retUserAv',
// // URL 中的查询参数
// params:{
// username:this.$cookie.get('username'),
// },
// responseType:'blob'
// }).then((res)=>{
// that.imageUrl = window.URL.createObjectURL(res.data)//这里也是关键,调用window的这个方法URL方法
// })
// },
}
}
</script>
<style>
</style>