Files
FT501-WMS/RuoYi-App-master/pages/mine/index.vue
张怡蓉 3beb3aeb44 手持机
2025-08-11 17:30:56 +08:00

261 lines
6.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="mine-container" :style="{height: `${windowHeight}px`}">
<!--顶部个人信息栏-->
<view class="header-section">
<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">
{{ $t('mine.clickToLogin') }}
</view>
<view v-if="name" @click="handleToInfo" class="user-info">
<view class="u_title">
{{ $t('mine.username') }}:{{ name }}
</view>
</view>
</view>
<view @click="handleToInfo" class="flex align-center info-link">
<text>{{ $t('mine.personalInfo') }}</text>
<view class="iconfont icon-right"></view>
</view>
</view>
</view>
<view class="content-section">
<!-- <view class="mine-actions grid col-4 text-center">
<view class="action-item" @click="handleJiaoLiuQun">
<view class="iconfont icon-friendfill text-pink icon"></view>
<text class="text">交流群</text>
</view>
<view class="action-item" @click="handleBuilding">
<view class="iconfont icon-service text-blue icon"></view>
<text class="text">在线客服</text>
</view>
<view class="action-item" @click="handleBuilding">
<view class="iconfont icon-community text-mauve icon"></view>
<text class="text">反馈社区</text>
</view>
<view class="action-item" @click="handleBuilding">
<view class="iconfont icon-dianzan text-green icon"></view>
<text class="text">点赞我们</text>
</view>
</view> -->
<view class="menu-list">
<!-- <view class="list-cell list-cell-arrow" @click="handleToEditInfo">
<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="handleHelp">
<view class="menu-item-box">
<view class="iconfont icon-help menu-icon"></view>
<view>通知公告</view>
</view>
</view>
<view class="list-cell list-cell-arrow" @click="handleAbout">
<view class="menu-item-box">
<view class="iconfont icon-aixin menu-icon"></view>
<view>关于我们</view>
</view>
</view> -->
<view class="list-cell list-cell-arrow" @click="handleToSetting">
<view class="menu-item-box">
<view class="iconfont icon-setting menu-icon"></view>
<view>{{ $t('mine.appSettings') }}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import storage from '@/utils/storage'
export default {
data() {
return {
name: this.$store.state.user.name,
version: getApp().globalData.config.appInfo.version
}
},
computed: {
avatar() {
return this.$store.state.user.avatar
},
windowHeight() {
return uni.getSystemInfoSync().windowHeight - 50
}
},
methods: {
handleToInfo() {
this.$tab.navigateTo('/pages/mine/info/index')
},
handleToEditInfo() {
this.$tab.navigateTo('/pages/mine/info/edit')
},
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(this.$t('mine.logoutConfirm')).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(Full)、②146013835(Full)、③189091635')
},
handleBuilding() {
this.$modal.showToast(this.$t('mine.moduleBuilding'))
}
}
}
</script>
<style lang="scss">
page {
background-color: #f5f6f7;
}
.mine-container {
width: 100%;
height: 100%;
.header-section {
padding: 20px 15px 45px 15px;
background: linear-gradient(135deg, #4285f4, #34a853);
color: white;
box-shadow: 0 2px 12px rgba(66, 133, 244, 0.2);
.login-tip {
font-size: 18px;
margin-left: 15px;
transition: opacity 0.3s;
&:active {
opacity: 0.8;
}
}
.cu-avatar {
border: 2px solid rgba(255, 255, 255, 0.8);
transition: transform 0.3s;
&:active {
transform: scale(0.95);
}
.icon {
font-size: 40px;
}
}
.user-info {
margin-left: 15px;
transition: opacity 0.3s;
&:active {
opacity: 0.8;
}
.u_title {
font-size: 18px;
line-height: 30px;
}
}
.info-link {
transition: opacity 0.3s;
&:active {
opacity: 0.8;
}
}
}
.content-section {
position: relative;
top: -50px;
.mine-actions {
margin: 15px 15px;
padding: 20px 0px;
border-radius: 12px;
background-color: white;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
.action-item {
transition: transform 0.3s;
&:active {
transform: scale(0.95);
}
.icon {
font-size: 28px;
margin-bottom: 8px;
}
.text {
display: block;
font-size: 14px;
color: #606266;
}
}
}
.menu-list {
margin: 15px;
border-radius: 12px;
background-color: white;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
overflow: hidden;
.list-cell {
padding: 15px;
transition: background-color 0.3s;
&:active {
background-color: #f5f7fa;
}
&:not(:last-child) {
border-bottom: 1px solid #f0f0f0;
}
.menu-item-box {
display: flex;
align-items: center;
.menu-icon {
font-size: 20px;
color: #3c96f3;
margin-right: 10px;
}
view {
font-size: 16px;
color: #303133;
}
}
}
}
}
}
</style>