You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

188 lines
4.1 KiB

<template>
<view class="page-usercenter">
<view class="user-wrapper" v-if="uinfo">
<view class="change-account">
<img :src="cssUrl+'switch.svg'">
切换账号
<button class="getphone-box" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"></button>
</view>
<view class="user-info-box flex">
<view class="user-left">
<img :src="uinfo.user_avatar" class="avator" v-if="uinfo.user_avatar">
<img :src="cssUrl+'user_grey.svg'" class="avator" v-else>
<view class="ucode PfScMedium over2" v-if="uinfo.user_code">{{uinfo.user_code}}</view>
</view>
<view class="user-right">
<view class="realname PfScMedium">{{uinfo.realname ? uinfo.realname : '未设置真实姓名'}}</view>
<view class="phone">{{uinfo.phone ? '手机号:'+uinfo.phone : '未设置手机号'}}</view>
</view>
</view>
</view>
<view class="menu">
<view class="item" @click="toVisitors">
<img :src="cssUrl+'user_icon.svg'" alt="">
<view>预约人</view>
</view>
<view class="item" @click="toPrebookList">
<img :src="cssUrl+'message.svg'" alt="">
<view>就诊记录</view>
</view>
</view>
<tabbar current="2" leftButtonText="预约"></tabbar>
</view>
</template>
<script>
import tabbar from '@/components/tabbar.vue';
export default {
data() {
return {
cssUrl:this.cssUrl,
uinfo:false
}
},
components:{
tabbar:tabbar
},
onShow() {
this.getUser()
},
methods: {
getUser(){
this.$http.req('api/user/get_user_info', {}, 'POST').then(data=>{
if(data == -1) return
this.uinfo = data
});
},
toVisitors(){
this.$nav.navToPath('/pages/visitors_new/visitors_new?type=2')
},
toPrebookList(){
this.$nav.navToPath('/pages/prebook_list/prebook_list')
},
toUserModify(){
this.$nav.navToPath('/pages/user_modify/user_modify')
},
getPhoneNumber(e) {
if (e.detail.errMsg === 'getPhoneNumber:ok') {
this.$http.req('api/user/bind_phone', {phonecode:e.detail.code}, 'POST').then(data=>{
if(data == -1) return
this.getUser()
uni.showToast({
title: '切换成功',
icon: 'none',
mask: true
})
});
} else {
}
},
}
}
</script>
<style lang="scss" scoped>
.page-usercenter{
width: 100%;
height: 100vh;
overflow-y: auto;
background: #F8F8F8;
.user-wrapper{
margin: 24rpx 36rpx;
.change-account{
display: flex;
align-items: center;
font-size: 28rpx;
color: #333333;
column-gap: 12rpx;
height: 39rpx;
width: 100%;
position: relative;
justify-content: flex-end;
.getphone-box{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
opacity: 0;
}
img{
width: 32rpx;
height: 32rpx;
}
}
.user-info-box{
align-items: center;
column-gap: 42rpx;
.realname{
font-size: 38rpx;
font-weight: 500;
color: #333333;
}
.phone{
font-size: 26rpx;
color: #666666;
margin-top: 24rpx;
}
}
}
.avator{
display: block;
width: 160rpx;
height: 160rpx;
border-radius: 100%;
}
.ucode{
width: 80%;
text-align: center;
margin: 0 auto;
min-height: 56rpx;
line-height: 56rpx;
font-size: 40rpx;
color: #000000;
letter-spacing: 1rpx;
word-break: break-all;
}
.menu{
width: 714rpx;
margin: 35rpx auto 0;
height: 206rpx;
background: #FFFFFF;
display: flex;
align-items: center;
justify-content: space-between;
box-shadow: 0rpx 2rpx 24rpx 0rpx rgba(0,0,0,0.03);
border-radius: 0rpx 0rpx 8rpx 8rpx;
padding: 0 130rpx;
box-sizing: border-box;
.item{
width: 116rpx;
img{
width: 70rpx;
height: 70rpx;
margin: 0 auto;
display: block;
margin-bottom: 30rpx;
}
view{
width: 100%;
text-align: center;
height: 40rpx;
line-height: 40rpx;
font-size: 28rpx;
color: #666666;
}
}
}
}
</style>