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

229 lines
5.5 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="containter">
<!-- 一级页面 无返回按钮 -->
<mHeader :title="title" :isBackShow="false" class="m-header"></mHeader>
<div class="main">
<div class="info-cart">
<image src="../../static/images/my/default-picture.png" class="user-picture"></image>
<div class="info-warp">
<div class="name-warp">{{ userInfo.userName }}</div>
<div class="company-warp">{{ userInfo.orgList[0].oname }}</div>
<div class="phone-warp">
<span class="label"> </span>
<span class="phone">{{ myInfo.phone }}</span>
<image src="../../static/images/my/open-eye.png" class="open-eye"
v-if="phoneFlag"
@click="handlerPhoneStatus"></image>
<image src="../../static/images/my/close-eye.png" class="close-eye"
v-else
@click="handlerPhoneStatus"></image>
</div>
<div class="cartId-warp">
<span class="label">身份证</span>
<span class="cartId-warp">{{ myInfo.cartId }}</span>
<image src="../../static/images/my/open-eye.png" class="open-eye"
v-if="cardIdFlag"
@click="handlerCartIdStatus"></image>
<image src="../../static/images/my/close-eye.png" class="close-eye"
v-else
@click="handlerCartIdStatus"></image>
</div>
</div>
</div>
<ul class="list-warp">
<li class="list"
v-for="(item, index) in listArray"
:key="index"
@click="handlerTo(item.linkHref)">
<div class="left">
<image :src="item.icon" class="icon"></image>
<span>{{ item.title }}</span>
</div>
<image src="../../static/images/my/more.png" class="more"></image>
</li>
</ul>
</div>
</div>
</template>
<script>
import mHeader from '../components/mHeader/index'
import { formatIdcard, formatPhone } from '../../libs/utils.js'
import { clearCookie } from '../../libs/cookie.js'
import Api from '../../api/api.js'
export default {
data () {
return {
title: '我的',
myInfo: {
phone: '13800008888',
cartId: '230202199000010097'
},
userInfo: {},
phoneFlag: true,
cardIdFlag: true,
listArray: [{
icon: '../../static/images/my/my-medal-icon.png',
title: '我的证书',
linkHref: '/pages/myMedal/index'
},{
icon: '../../static/images/my/study-record-icon.png',
title: '选调培训记录',
linkHref: '/pages/studyRecord/index'
},{
icon: '../../static/images/my/logout-icon.png',
title: '退出当前帐号'
}],
phone: '',
cartId: ''
}
},
components: {
mHeader
},
created() {
this._getUserInfo()
},
methods: {
// 从仓库拿个人信息
_getUserInfo () {
this.userInfo = this.$store.state.userInfo
},
// 手机号改变状态
handlerPhoneStatus () {
this.phoneFlag = !this.phoneFlag
if (this.phoneFlag) {
this.myInfo.phone = this.phone
} else {
this.phone = this.myInfo.phone
this.myInfo.phone = formatPhone(this.myInfo.phone)
}
},
// 身份证号改变状态
handlerCartIdStatus () {
this.cardIdFlag = !this.cardIdFlag
if (this.cardIdFlag) {
this.myInfo.cartId = this.cartId
} else {
this.cartId = this.myInfo.cartId
this.myInfo.cartId = formatIdcard(this.myInfo.cartId)
}
},
// 列表跳转
handlerTo (href) {
if (href) {
uni.navigateTo({
url: href
})
} else {
this.logout()
}
},
// 退出
logout () {
uni.showModal({
title: '提示',
content: '确定要退出吗?',
success: (res) => {
if (res.confirm) {
this.$store.commit('GET_TOKEN', '')
this.$store.commit('GET_USER_INFO', {})
uni.clearStorage()
uni.reLaunch({
url: '/pages/login/index'
})
}
}
})
}
}
}
</script>
<style lang="scss">
.containter {
.m-header {
background-color: #fff;
}
.main {
padding: calc(100rpx + 30rpx + var(--status-bar-height)) 32rpx 0;
.info-cart {
width: 686rpx;
height: 278rpx;
background: #4BADFF url('../../static/images/my/info-bg.png') no-repeat center/cover;
margin: 0 0 46rpx;
padding: 40rpx 0 0 40rpx;
box-sizing: border-box;
display: flex;
border-radius: 40rpx;
box-shadow: 0 6rpx 28rpx 2rpx rgba(209,233,253,1);
.user-picture {
flex-shrink: 0;
width: 132rpx;
height: 132rpx;
border-radius: 50%;
margin-right: 40rpx;
}
.info-warp {
color: #fff;
.name-warp {
font-size: 36rpx;
font-weight: 600;
line-height: 50rpx;
}
.company-warp {
font-size: 26rpx;
margin: 8rpx 0 20rpx;
}
.phone-warp {
margin-bottom: 12rpx;
}
.phone-warp, .cartId-warp {
font-size: 22rpx;
.label {
width: 88rpx;
display: inline-block;
text-align: justify;
text-align-last: justify;
}
.open-eye {
width: 26rpx;
height: 18rpx;
margin-left: 14rpx;
}
.close-eye {
width: 26rpx;
height: 12rpx;
margin-left: 32rpx;
}
}
}
}
.list-warp {
.list {
height: 104rpx;
border-bottom: 2rpx solid $uni-bg-color-grey;
display: flex;
align-items: center;
justify-content: space-between;
color: $uni-text-color;
font-size: 26rpx;
.left {
image {
width: 38rpx;
height: 38rpx;
margin-right: 26rpx;
position: relative;
top: -2rpx;
}
}
.more {
width: 12rpx;
height: 22rpx;
}
}
}
}
}
</style>