uni-app:登录与支付--用户信息
创始人
2025-05-31 08:23:47

 用户信息

实现用户头像昵称区域的基本布局

  1. 在 my-userinfo 组件中,定义如下的 UI 结构:

美化当前组件的样式:

.my-userinfo-container {height: 100%;// 为整个组件的结构添加浅灰色的背景background-color: #f4f4f4;.top-box {height: 400rpx;background-color: #c00000;display: flex;flex-direction: column;align-items: center;justify-content: center;.avatar {display: block;width: 90px;height: 90px;border-radius: 45px;border: 2px solid white;box-shadow: 0 1px 5px black;}.nickname {color: white;font-weight: bold;font-size: 16px;margin-top: 10px;}}
}

在 my.vue 页面中,为最外层包裹性质的 view 容器,添加 class="my-container" 的类名,并美化样式如下:

page,
.my-container {height: 100%;
}

 

 

 

渲染用户的头像和昵称

  1. 在 my-userinfo 组件中,通过 mapState 辅助函数,将需要的成员映射到当前组件中使用:

// 按需导入 mapState 辅助函数
import { mapState } from 'vuex'export default {computed: {// 将 m_user 模块中的 userinfo 映射到当前页面中使用...mapState('m_user', ['userinfo']),},data() {return {}},
}

将用户的头像和昵称渲染到页面中:


{{userinfo.nickName}}

 

 渲染第一个面板区域

在 my-userinfo 组件中,定义如下的 UI 结构:


8收藏的店铺14收藏的商品18关注的商品84足迹

美化第一个面板的样式:

.panel-list {padding: 0 10px;position: relative;top: -10px;.panel {background-color: white;border-radius: 3px;margin-bottom: 8px;.panel-body {display: flex;justify-content: space-around;.panel-item {display: flex;flex-direction: column;align-items: center;justify-content: space-around;font-size: 13px;padding: 10px 0;}}}
}

 

 

渲染第二个面板区域

  1. 定义第二个面板区域的 UI 结构:


我的订单待付款待收货退款/退货全部订单

对之前的 SCSS 样式进行改造,从而美化第二个面板的样式:

.panel-list {padding: 0 10px;position: relative;top: -10px;.panel {background-color: white;border-radius: 3px;margin-bottom: 8px;.panel-title {line-height: 45px;padding-left: 10px;font-size: 15px;border-bottom: 1px solid #f4f4f4;}.panel-body {display: flex;justify-content: space-around;.panel-item {display: flex;flex-direction: column;align-items: center;justify-content: space-around;font-size: 13px;padding: 10px 0;.icon {width: 35px;height: 35px;}}}}
}

   

 渲染第三个面板区域

定义第三个面板区域的 UI 结构:


收货地址联系客服退出登录

美化第三个面板区域的样式:

.panel-list-item {height: 45px;display: flex;justify-content: space-between;align-items: center;font-size: 15px;padding: 0 10px;
}

 

 实现退出登录的功能

为第三个面板区域中的 退出登录 项绑定 click 点击事件处理函数:

退出登录

在 my-userinfo 组件的 methods 节点中定义 logout 事件处理函数:

// 退出登录
async logout() {// 询问用户是否退出登录const [err, succ] = await uni.showModal({title: '提示',content: '确认退出登录吗?'}).catch(err => err)if (succ && succ.confirm) {// 用户确认了退出登录的操作// 需要清空 vuex 中的 userinfo、token 和 addressthis.updateUserInfo({})this.updateToken('')this.updateAddress({})}
}

使用 mapMutations 辅助方法,将需要用到的 mutations 方法映射到当前组件中:

// 按需导入辅助函数
import { mapState, mapMutations } from 'vuex'export default {methods: {...mapMutations('m_user', ['updateUserInfo', 'updateToken', 'updateAddress']),},
}

  

 

上一篇:C语言实现队列

下一篇:mysql常用语句

相关内容

热门资讯

冬至北海御苑暖意浓 非遗手作圈... 12月21日正值冬至节气,北海公园在快雪堂景区举办“冬日金石文化雅集”活动,宋锦手作、绒花梅花冰箱贴...
知名奶茶道歉 针对网友发帖吐槽新品“苹果糖”问题多多一事,12月20日,知名奶茶品牌乐乐茶官方发布致歉声明表示,第...
寻味故事:一口家常菜,如何串起... 承载着的食物,远不是仅仅只有味道,它有着更丰富多元的内涵。它可以是童年时,灶台旁那一幕幕让人难以忘怀...
红烧肉与胡同小吃:家常菜里的家... 对于美食,我一直都认为它绝不是只是味觉方面的那种单纯体验 。在每一道用心烹制好的菜肴背后 ,都藏着一...
一道家常红烧肉,背后藏着怎样的... 紧密相连于记忆的总是好的食物,它绝非只是简单味道,更是承载丰富故事、深厚情感的独特容器。我常这般觉得...