微信小程序开发培训指南:我的订单页面设计
创作时间:
作者:
@小白创作中心
微信小程序开发培训指南:我的订单页面设计
01
1.1 任务描述及实现思路
任务目标
实现包含用户信息展示和订单导航功能的"我的"页面,具备以下功能:
- 用户头像和昵称展示
- 订单状态导航(全部/待付款/待收货等)
- 优惠券数量展示
- 页面样式统一规范
功能流程图
graph TD
A[我的页面] --> B[用户信息模块]
A --> C[订单导航模块]
B --> B1(用户头像)
B --> B2(用户昵称)
B --> B3(账号信息)
C --> C1(全部订单)
C --> C2(待付款)
C --> C3(待收货)
C --> C4(售后订单)
C --> C5(优惠券)
技术路线
- 使用
flex
布局实现导航列表 - 通过
wx.getUserInfo
获取用户信息 - 使用
绝对定位
实现右侧箭头布局 - 通过
setNavigationBarColor
动态修改导航栏样式
02
1.2 对应知识点准备
1.2.1 列表式导航实现技巧
<!-- 典型导航项结构 -->
<view class="item">
<view class="img">
<image src="/images/icon.png"/>
</view>
<view class="name">菜单名称</view>
<view class="detail">
<text class="count">状态数量</text>
<text>></text>
</view>
</view>
1.2.2 用户授权流程
// 获取用户信息完整流程
wx.getSetting({
success(res) {
if (!res['scope.userInfo']) {
wx.authorize({
scope: 'scope.userInfo',
success() {
wx.getUserInfo({
success: function(res) {
// 更新页面数据
this.setData({userInfo: res.userInfo})
}
})
}
})
}
}
})
1.2.3 样式设计要点
/* 导航项通用样式 */
.item {
display: flex;
align-items: center;
padding: 15rpx 20rpx;
background-color: #fff;
position: relative;
}
/* 右侧箭头定位技巧 */
.detail {
position: absolute;
right: 20rpx;
display: flex;
align-items: center;
}
知识点拓展:小程序授权策略演进
- 2021年后需使用
button
组件触发授权 - 建议使用
open-type="getUserInfo"
的按钮 - 需处理用户拒绝授权的场景
03
1.3 案例实现
1.3.1 页面结构(me.wxml)
<!-- 用户信息模块 -->
<view class="user-section">
<image class="avatar" src="{{userInfo.avatarUrl}}"/>
<view class="info">
<text class="name">{{userInfo.nickName}}</text>
<text class="account">账号:356725727_k</text>
</view>
</view>
<!-- 订单导航模块 -->
<view class="nav-list">
<view class="nav-item" wx:for="{{navList}}" wx:key="index">
<image class="nav-icon" src="{{item.icon}}"/>
<text class="nav-text">{{item.title}}</text>
<view class="nav-extra">
<text wx:if="{{item.count}}" class="count">{{item.count}}</text>
<text class="arrow">></text>
</view>
</view>
</view>
1.3.2 页面样式(me.wxss)
/* 用户信息模块样式 */
.user-section {
display: flex;
align-items: center;
padding: 30rpx;
background: #F54844;
}
.avatar {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
margin-right: 30rpx;
}
.info {
display: flex;
flex-direction: column;
}
.name {
color: #fff;
font-size: 36rpx;
margin-bottom: 10rpx;
}
/* 导航项样式 */
.nav-list {
margin-top: 20rpx;
background: #fff;
}
.nav-item {
display: flex;
align-items: center;
padding: 25rpx 30rpx;
border-bottom: 1rpx solid #eee;
}
.nav-icon {
width: 40rpx;
height: 40rpx;
margin-right: 20rpx;
}
.nav-extra {
margin-left: auto;
display: flex;
align-items: center;
}
.count {
color: #E4393C;
margin-right: 15rpx;
}
1.3.3 业务逻辑(me.js)
Page({
data: {
userInfo: {},
navList: [
{icon: '/images/icon/all.png', title: '全部订单'},
{icon: '/images/icon/pending.png', title: '待付款', count: 2},
{icon: '/images/icon/receiving.png', title: '待收货'},
{icon: '/images/icon/after-sale.png', title: '售后订单'},
{icon: '/images/icon/coupon.png', title: '优惠券', count: 4}
]
},
onLoad() {
this.checkAuth()
},
// 检查用户授权状态
checkAuth() {
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
this.getUserInfo()
}
}
})
},
// 获取用户信息
getUserInfo() {
wx.getUserInfo({
success: res => {
this.setData({
userInfo: res.userInfo
})
wx.setNavigationBarTitle({ title: '我的' })
}
})
}
})
关键代码解析:
margin-left: auto
实现右侧元素自动靠右wx.getSetting
和wx.authorize
的配合使用wx:for
循环渲染导航列表数据
04
1.4 习题与实训
基础题
- 为导航项添加点击跳转功能,跳转到对应订单列表页
- 修改导航栏背景色为渐变色(#FF6B6B 到 #FF8E53)
提高题
- 实现用户信息未登录时的默认展示样式
- 添加下拉刷新功能更新订单数量
实训项目
- 实现订单数量红点提示功能
- 开发订单状态筛选组件
- 集成微信支付功能到订单页面
附录:常见问题解决方案
- 授权弹窗不显示:检查按钮是否使用
<button open-type="getUserInfo">
- 图片显示异常:使用在线图片或确保本地图片路径正确
- 样式兼容问题:使用
rpx
单位适配不同屏幕 - 数据更新延迟:在
setData
回调中执行后续操作
教学建议:
- 使用真实订单数据进行演示
- 对比不同导航实现方式的优缺点
- 演示微信开发者工具的调试功能
- 强调用户隐私保护规范
需要完整可运行的项目源码或特定功能扩展说明,可以进一步补充具体需求。
热门推荐
探秘Android APK文件:结构解析与关键信息提取
汉内贱如草,出塞成“良相”——聊聊史上首个汉奸中行说
河南桐柏:生态甘泉润香茗
js如何获取表格列数据
CRM新客户需要获取哪些信息
抗氧化的食物有哪些?这些常见食材助你轻松获取抗氧化营养
刀鱼是海鱼还是淡水鱼,刀鱼是淡水鱼
个税专项附加扣除填报月底结束!夫妻间如何分配?
什么是焦点效应?如何克服社交中的过度关注?
“浇给”是什么梗?来源揭秘
我们报年龄为何要多报一岁?中国人为何使用虚岁来计算年龄?
掌握拼音打字技巧:提升输入能力与交流效率的实用指南
套中170万玛莎拉蒂后想折现,摊主这波营销稳赚不赔?
健康美味,焦香多汁的空气炸锅烤鸡翅法
李玫瑾:你处理“坏情绪”的方式,决定了孩子的性格(附应对方案)
犯罪故事写作指南:如何创作引人入胜的犯罪小说
网约车抽成“套路”多:订单倒卖、高速费抽佣,如何保障司机收入?
家里宽带升级了,如何找到真正的网络速度提升?
偏瘫的康复之路
传统文化如何赋能中国式奇幻创作?
IDC技术专员如何管理大规模网络流量并避免拥塞?
肝硬化患者必知:四个关键指标关乎生存
制定外贸管理制度,提升企业竞争力:公司外贸管理制度
一周应该做几次有氧运动?
说说那些被捏脊伤害过的孩子……
使用 Perspective 为 AI 艺术添加真实世界的深度
头部受伤肿起来可以消下去吗
天使综合征(AS)通过ASO疗法获得沟通、认知和运动功能的改善!
家庭教育 | 孩子情绪稳定,离不开家长正确地做到三件事
初次见面请多关照的日语表达及文化内涵