TraceabilityAPP/pages/index/personal.vue

162 lines
2.9 KiB
Vue
Raw Normal View History

2023-11-21 18:54:33 +08:00
<template>
<view class="head">
<view class="avater">
<u--image @click="previewImageFn" :src="userinfo.avatar" width="130.28rpx" height="130.28rpx"
shape="circle"></u--image>
2023-11-21 18:54:33 +08:00
</view>
2023-11-27 18:23:17 +08:00
<view class="" v-if="Object.keys(userinfo).length>0">
2023-11-21 18:54:33 +08:00
<view class="head-li">
姓名: {{userinfo.nickname}}
2023-11-21 18:54:33 +08:00
</view>
<view class="head-li">
电话: {{userinfo.mobile}}
2023-11-21 18:54:33 +08:00
</view>
<!-- <view class="head-li">
2023-11-21 18:54:33 +08:00
公司: 里海弄农业科技有限公司
</view> -->
2023-11-21 18:54:33 +08:00
</view>
2023-11-27 18:23:17 +08:00
<view class="" v-else @click="revto('/pages/Login/login')">
2023-11-25 16:18:54 +08:00
请登录
</view>
2023-11-21 18:54:33 +08:00
</view>
<view class="content">
<view class="card" style="border-radius: 20rpx;">
<view class="card-li" v-for="(item,index) in cardLiList" :key="index" @click="navto(item.nav)">
<view class="" style="display: flex;align-items: center;">
<view class="" style="margin-right: 20rpx;">
<u-icon size="20" :name="url"></u-icon>
</view>
<view class="">
{{item.text}}
</view>
</view>
<view class="">
<u-icon name="arrow-right" size="16"></u-icon>
</view>
</view>
</view>
<view class="out-btn">
<up-button @click="loginOutFn" type="primary" customStyle="border:none;height:90rpx" color="#34D190"
2023-11-27 18:23:17 +08:00
text="退出登录" v-if="Object.keys(userinfo).length>0"></up-button>
2023-11-21 18:54:33 +08:00
</view>
</view>
</template>
<script setup lang="ts">
import {
reactive,
ref
} from 'vue';
import { logout } from '@/api/api.js'
2023-11-27 18:23:17 +08:00
import store from "@/store/index.js"
2023-11-27 18:23:17 +08:00
const userinfo = reactive({})
if (store.state.userInfo !=null) {
Object.assign(userinfo,store.state.userInfo)
2023-11-27 18:23:17 +08:00
}
2023-11-21 18:54:33 +08:00
const previewImageFn = () => {
uni.previewImage({
urls: [
userinfo.avatar
2023-11-21 18:54:33 +08:00
]
});
}
2023-11-27 18:23:17 +08:00
const cardLiList = reactive([
{
text: "安全设置",
nav: "/pages/updatePassword/updatePassword"
},
2023-11-21 18:54:33 +08:00
])
const loginOutFn = () => {
2023-11-27 18:23:17 +08:00
if (store.state.userInfo) {
logout().then((res) => {
if (res.code == 1) {
uni.$u.toast('退出登录');
uni.navigateTo({
url: "/pages/Login/login"
})
uni.clearStorageSync()
}
})
} else {
uni.navigateTo({
url: "/pages/Login/login"
})
}
2023-11-21 18:54:33 +08:00
}
const navto = (url) => {
uni.navigateTo({
url
})
}
2023-11-25 16:18:54 +08:00
const revto = (url) => {
2023-11-27 18:23:17 +08:00
2023-11-25 16:18:54 +08:00
uni.redirectTo({
url
})
}
2023-11-21 18:54:33 +08:00
</script>
<style lang="scss" >
page{
background-color: $theme-bg-color;
}
2023-11-21 18:54:33 +08:00
.head {
height: 25vh;
background-color: $theme-main-color;
color: white;
display: flex;
align-items: center;
.head-li {
margin: 10rpx 0;
}
.avater {
margin: 0 40rpx;
}
}
.content {
2023-11-21 18:54:33 +08:00
padding-top: 30rpx;
.card {
background-color: white;
border-radius: 10rpx;
.card-li {
height: 80rpx;
line-height: 80rpx;
// background-color: red;
border-bottom: 1px solid #F5F5F5;
display: flex;
justify-content: space-between;
align-items: center;
}
}
.out-btn {
width: 693.93rpx;
margin: auto;
}
}
</style>