哈嘍巡李,大家好,又到周五啦扶认,有木有期待今天的更新呀~今天要教大家的是制作個人中心界面侨拦,先上效果圖
個人中心.gif
個人中心制作
1. mine.js
// pages/mine/mine.js
var app = getApp()
Page({
data: {
userInfo: {},
motto: 'Hello World',
// orderItems
orderItems: [
{
typeId: 0,
name: '待付款',
url: 'bill',
imageurl: '../../images/person/personal_pay.png',
},
{
typeId: 1,
name: '待發(fā)貨',
url: 'bill',
imageurl: '../../images/person/personal_shipped.png',
},
{
typeId: 2,
name: '待收貨',
url: 'bill',
imageurl: '../../images/person/personal_receipt.png'
},
{
typeId: 3,
name: '待評價',
url: 'bill',
imageurl: '../../images/person/personal_comment.png'
}
],
},
//事件處理函數(shù)
toOrder: function () {
wx.navigateTo({
url: '../order/order'
})
},
onLoad: function () {
console.log('onLoad')
var that = this
//調(diào)用應(yīng)用實(shí)例的方法獲取全局?jǐn)?shù)據(jù)
app.getUserInfo(function (userInfo) {
//更新數(shù)據(jù)
that.setData({
userInfo: userInfo
})
})
}
})
toOrder :事件監(jiān)聽,跳轉(zhuǎn)到我的訂單界面
onLoad:在加載過程中辐宾,獲取用戶的信息
2. mine.wxml
<!--pages/mine/mine.wxml-->
<view class="container">
<view class="userinfo">
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
<image src="../../images/person/account_bg.png" class="account-bg">
</image>
</view>
<view class="separate"></view>
<view class="order" catchtap="toOrder">
<text class="myorder-text">我的訂單</text>
<text class="myorderlook-text">查看全部訂單</text>
<image class="next-image" src="../../images/person/next.png"></image>
</view>
<view class="line"></view>
<view class="navs">
<block wx:for-items="{{orderItems}}" wx:key="name">
<view class="nav-item" catchtap="toOrder" data-type="{{item.name}}" data-typeid="{{item.typeId}}">
<image src="{{item.imageurl}}" class="nav-image" />
<text>{{item.name}}</text>
</view>
</block>
</view>
<view class="separate"></view>
<view class="person-list">
<view class="list-item">
<image class="item-image" src="../../images/person/personal_favorite.png"></image>
<text class="item-text">我的收藏</text>
</view>
<view class="person-line"></view>
<view class="list-item">
<image class="item-image" src="../../images/person/personal_site.png"></image>
<text class="item-text">收貨地址</text>
</view>
<view class="person-line"></view>
<view class="list-item">
<image class="item-image" src="../../images/person/personal_sale_record.png"></image>
<text class="item-text">售后記錄</text>
</view>
<view class="person-line"></view>
<view class="list-item">
<image class="item-image" src="../../images/person/personal_evaluated.png"></image>
<text class="item-text">我的評價</text>
</view>
<view class="person-line"></view>
<view class="list-item">
<image class="item-image" src="../../images/person/personal_share.png"></image>
<text class="item-text">推廣邀請</text>
</view>
</view>
<view class="separate"></view>
</view>
布局分為三個模塊狱从,用戶信息模塊、我的訂單模塊叠纹、功能列表模塊季研,布局不是很難,相信看源碼就可以理解
3. mine.wxss
/* pages/mine/mine.wxss */
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
background: #f0145a;
}
.account-bg {
width: 100%;
height: 150rpx;
}
.userinfo-avatar {
width: 108rpx;
height: 108rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #fff;
}
/* 訂單 */
.order {
display: flex;
flex-direction: row;
align-items: center;
width: 100%;
height: 90rpx;
}
.myorder-text {
font-size: 30rpx;
color: gray;
margin: 20rpx;
width: 40%;
}
.myorderlook-text {
font-size: 30rpx;
color: gray;
position: relative;
right: 20rpx;
width: 60%;
text-align: right;
}
.next-image {
width: 20rpx;
height: 25rpx;
position: relative;
right: 10rpx;
}
.navs {
display: flex;
}
.nav-item {
width: 25%;
display: flex;
align-items: center;
flex-direction: column;
padding: 20rpx;
}
.nav-item .nav-image {
width: 40rpx;
height: 40rpx;
margin: 5rpx;
}
.nav-item text {
margin-top: 20rpx;
font-size: 25rpx;
color: gray;
}
/* 列表 */
.person-list {
display: flex;
flex-direction: column;
align-items: left;
}
.list-item {
display: flex;
flex-direction: row;
align-items: center;
height: 80rpx;
}
.item-image {
width: 40rpx;
height: 40rpx;
margin: 20rpx;
}
.item-text {
color: gray;
font-size: 25rpx;
margin-left: 20rpx;
}
.person-line {
width: 100%;
height: 2rpx;
background: lightgray;
margin-left: 90rpx;
}
樣式列表我重點(diǎn)講解一下 userinfo-avatar 類中的 border-radius 屬性誉察,大家看一下效果就知道他的作用训貌,沒錯設(shè)置圓角圖片,正常我們都是方方正正的圖片冒窍,有了這個屬性递沪,可以輕松實(shí)現(xiàn)圓角圖片了
我的訂單制作
我的訂單,其實(shí)界面的實(shí)現(xiàn)原理和首頁的導(dǎo)航欄是一樣的综液,只不過換了一下內(nèi)容以及導(dǎo)航欄標(biāo)題罷了款慨,所以這里我就不細(xì)講了,不懂的朋友可以看我首頁導(dǎo)航欄是怎么制作的谬莹,模仿寫出來就好
1. order.js
// pages/order/order.js
var Zan = require('../../template/contract.js');
Page(Object.assign({}, Zan.Tab, {
data: {
tab1: {
list: [{
id: 0,
title: '全部'
}, {
id: 1,
title: '待付款'
}, {
id: 2,
title: '待發(fā)貨'
}, {
id: 3,
title: '待收貨'
}, {
id: 4,
title: '待評價'
}],
selectedId: 0,
scroll: false,
},
},
handleZanTabChange(e) {
var componentId = e.componentId;
var selectedId = e.selectedId;
this.setData({
`${componentId}.selectedId`: selectedId
});
}
}));
2. order.wxml
<!--pages/order/order.wxml-->
<import src="/template/tab/tab.wxml" />
<view class="tab">
<template is="zan-tab" data="{{tab: tab1, componentId: 'tab1'}}"></template>
</view>
<view class="tab-content1" >
<image class="tab-image" src="../../images/order/non_cart.png"></image>
<text>您還沒有相關(guān)訂單哦檩奠!</text>
</view>
3. order.wxss
/* pages/order/order.wxss */
.tab-content1
{
display: flex;
flex-direction: column;
align-items: center;
}
.tab-image
{
width: 50%;
margin-top: 130rpx;
margin-bottom: 50rpx;
}
總結(jié)
界面布局差不多就講到這里了,大家也看到了附帽,其實(shí)越到后面埠戳,要講的界面內(nèi)容知識就越少,萬變不離其中吧蕉扮,后續(xù)的話整胃,代碼君打算講一下微信小程序的網(wǎng)絡(luò)請求框架,敬請期待喳钟,最后祝大家周末愉快~