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.

257 lines
5.5 KiB

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>
<view class="mine-container" :style="{height: `${windowHeight}px`}">
<!--顶部个人信息栏-->
<view class="header-section" :style="{paddingTop:boxTop + 'px'}">
<view class="flex padding justify-between">
<view class="flex align-center">
<view v-if="!avatar" class="cu-avatar xl round bg-white">
<view class="iconfont icon-people text-gray icon"></view>
</view>
<image v-if="avatar" @click="handleToAvatar" :src="avatar" class="cu-avatar xl round"
mode="widthFix">
</image>
<view v-if="!name" @click="handleToLogin" class="login-tip">
点击登录
</view>
<view v-if="name" @click="handleToInfo" class="user-info">
<view class="u_title">
用户名:{{ name }}
</view>
</view>
</view>
</view>
</view>
<view class="menu-list">
<view class="list-cell list-cell-arrow" @click="handleToEditInfo">
<view class="menu-item-box">
<view class="iconfont icon-password menu-icon"></view>
<view>修改密码</view>
</view>
</view>
<view class="list-cell list-cell-arrow" @click="handleToInfo">
<view class="menu-item-box">
<view class="iconfont icon-user menu-icon"></view>
<view>个人信息</view>
</view>
</view>
<view class="list-cell list-cell-arrow" @click="updateVersion">
<view class="menu-item-box">
<view class="iconfont icon-version menu-icon"></view>
<view>版本更新</view>
<view class="version-box">发现新版本</view>
</view>
</view>
</view>
<view class="outLogin">
<u-button type="primary" @click="handleLogout">退出登录</u-button>
</view>
</view>
</view>
</template>
<script>
import storage from '@/utils/storage'
import {
getVersions
} from '@/utils/handlerColor.js'
export default {
data() {
return {
version: '',
showVersion: false,
localityVersion: '',
boxTop: 0,
name: this.$store.state.user.name,
// version: getApp().globalData.config.appInfo.version
}
},
onLoad() {
const systemData = this.$u.sys()
this.localityVersion = systemData.appVersion
this.boxTop = systemData.statusBarHeight
this.getVersion()
},
computed: {
avatar() {
return this.$store.state.user.avatar
},
windowHeight() {
return uni.getSystemInfoSync().windowHeight - 50
}
},
methods: {
updateVersion() {
if (this.showVersion) {
uni.showModal({
title: '发现新版本',
content: '版本V ' + this.version,
cancelText: '暂不更新',
confirmText: '立即更新',
success: (res) => {
if (res.confirm) {
const urlAndorid = 'https://www.pgyer.com/9B4d'
if (plus) plus.runtime.openURL(urlAndorid)
// 更新版本
else window.open(urlAndorid)
}
}
})
} else {
uni.showToast({
title: '已是最新版本',
icon: 'none'
})
}
},
async getVersion() {
this.version = await getVersions()
if (this.localityVersion != this.version) {
this.showVersion = true
// console.log(version, '版本', this.localityVersion)
} else {
this.showVersion = false
}
},
handleLogout() {
this.$modal.confirm('确定注销并退出系统吗?').then(() => {
this.$store.dispatch('LogOut').then(() => {
this.$tab.reLaunch('/pages/index')
})
})
},
handleToInfo() {
this.$tab.navigateTo('/pages/mine/info/index')
},
handleToEditInfo() {
this.$tab.navigateTo('/pages/mine/pwd/index')
},
handleToSetting() {
this.$tab.navigateTo('/pages/mine/setting/index')
},
handleToLogin() {
this.$tab.reLaunch('/pages/login')
},
handleToAvatar() {
this.$tab.navigateTo('/pages/mine/avatar/index')
},
handleLogout() {
this.$modal.confirm('确定注销并退出系统吗?').then(() => {
this.$store.dispatch('LogOut').then(() => {
this.$tab.reLaunch('/pages/index')
})
})
},
handleHelp() {
this.$tab.navigateTo('/pages/mine/help/index')
},
handleAbout() {
this.$tab.navigateTo('/pages/mine/about/index')
},
handleJiaoLiuQun() {
this.$modal.showToast('QQ群①133713780、②146013835')
},
handleBuilding() {
this.$modal.showToast('模块建设中~')
}
}
}
</script>
<style lang="scss">
page {
background-color: #f5f6f7;
}
.mine-container {
width: 100%;
height: 100%;
.header-section {
display: flex;
align-items: center;
height: 300rpx;
background-color: #3c96f3;
color: white;
.login-tip {
font-size: 18px;
margin-left: 10px;
}
.cu-avatar {
border: 2px solid #eaeaea;
.icon {
font-size: 40px;
}
}
.user-info {
margin-left: 15px;
.u_title {
font-size: 18px;
line-height: 30px;
}
}
}
.content-section {
position: relative;
top: -50px;
.mine-actions {
margin: 15px 15px;
padding: 20px 0px;
border-radius: 8px;
background-color: white;
.action-item {
.icon {
font-size: 28px;
}
.text {
display: block;
font-size: 13px;
margin: 8px 0px;
}
}
}
}
}
.outLogin {
position: fixed;
bottom: 20%;
left: 50%;
transform: translateX(-50%);
width: 90%;
margin-top: 30rpx;
}
.menu-item-box {
position: relative;
.version-box {
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 30rpx;
background-color: red;
color: #fff;
font-size: 28rpx;
box-sizing: border-box;
padding: 0 10rpx;
}
}
</style>