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.

254 lines
5.4 KiB

1 week ago
<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>
1 week ago
</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 (window.plus) window.plus.runtime.openURL(urlAndorid)
// 更新版本
else window.open(urlAndorid)
}
}
})
}
},
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('模块建设中~')
}
}
}
1 week ago
</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>