知识付费微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

261 lines
4.9 KiB

<template>
<view class="">
<uni-nav-bar dark :fixed="true" background-color="#00aaff" :border="false" status-bar title="个人中心" />
<view class="content">
<view class="topBox">
<view class="users">
<view class="u-top"
@click="$utils.navigateTo('/login/wxUserInfo')"
v-if="userInfo.appletOpenid">
<image class="img" :src="userInfo.headImage" mode="widthFix"></image>
<view class="tit">
{{ userInfo.nickName }}
</view>
</view>
<view class="u-top"
v-else
@click="$utils.navigateTo('/login/login')">
<image class="img"
src="https://img2.baidu.com/it/u=2953585264,744730101&fm=253&fmt=auto&app=138&f=JPEG?w=360&h=360"
mode="widthFix"></image>
<view class="tit">
登录 / 注册
</view>
</view>
</view>
</view>
<view class="listBox">
<view class="lists">
<uni-section title="我的订单" type="line" titleFontSize="34rpx"
style="border-radius: 10rpx;"></uni-section>
<view class="order-list">
<view v-for="(item,index) in orderList" :key="item.id" class="order-item">
<view class="order-item-top">
<view class="order-id">{{ item.id }}</view>
<view class="time">{{ item.createTime }}</view>
</view>
<div class="order-item-main">
<div class="title">付款金额</div>
<view class="money-detail">
<view class="unie">¥</view>
<view class="number">{{ item.price }}</view>
</view>
</div>
<view class="title"
style="padding: 20rpx;">
{{ item.title }}
</view>
</view>
</view>
<view v-if="orderList.length == 0" class="no-data">
<image src="@/static/empty/noData.png" mode=""></image>
<view class="">
空空如也
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
mapState
} from 'vuex'
export default {
name: 'Center',
computed: {
...mapState(['userInfo']),
},
data() {
return {
queryParams: {
pageNo: 1,
pageSize: 10
},
orderList: [],
total : 0
}
},
onShow() {
if (uni.getStorageSync('token')) {
this.$store.commit('getUserInfo')
this.getOrderList()
}
},
//滚动到屏幕底部
onReachBottom() {
if(this.queryParams.pageSize < this.total){
this.queryParams.pageSize += 10
this.getOrderList()
}
},
methods: {
//获取订单列表
getOrderList() {
this.$api('getPayOrderPage', this.queryParams, res => {
this.orderList = res.result.records
this.total = res.result.total
})
},
}
}
</script>
<style scoped>
.content {
background: #F1F5F8;
min-height: 100vh;
}
/* 弧形背景 */
.topBox {
width: 100%;
position: relative;
z-index: 1;
overflow: hidden;
padding: 60rpx 20rpx 20rpx;
box-sizing: border-box;
}
.topBox::after {
content: "";
width: 140%;
height: 100px;
position: absolute;
left: -20%;
top: 0;
z-index: -1;
border-radius: 0 0 30% 50%;
/* background: #00aaff; */
background: #000;
}
.txt {
color: #fff;
font-size: 30rpx;
}
.set-right .uni-icons {
margin-right: 10rpx;
}
.users {
display: flex;
align-items: center;
margin-top: 0rpx;
padding: 0rpx 30rpx;
box-sizing: border-box;
height: 200rpx;
background-color: #fff;
box-shadow: 1px 10rpx 20rpx #ececec;
border-radius: 12rpx;
}
.u-top {
display: flex;
justify-content: flex-start;
align-items: center;
}
.users .u-top .img {
width: 130rpx;
height: 130rpx;
border-radius: 50%;
margin-right: 20rpx;
}
.u-top .tit {
font-size: 30rpx;
font-weight: 700;
color: #333;
}
.u-item {
text-align: center;
}
.u-item .u-tit {
color: #757575;
font-size: 26rpx;
margin-top: 10rpx;
}
.u-item .num {
color: #000000;
font-size: 33rpx;
font-weight: 700;
}
.bottomBox {
padding: 20rpx;
box-sizing: border-box;
}
.order-list {
padding-top: 20rpx;
}
.order-item {
width: 100%;
background: white;
border-radius: 20rpx;
margin-bottom: 20rpx;
overflow: hidden;
}
.order-item .order-item-top {
display: flex;
align-items: center;
justify-content: space-between;
height: 80rpx;
font-size: 24rpx;
box-sizing: border-box;
padding: 0rpx 20rpx;
}
.order-item .order-item-main {
padding: 60rpx 0rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.order-item-main .title {
color: #5a5a5a;
}
.order-item-main .money-detail {
display: flex;
align-items: center;
margin-top: 20rpx;
}
.money-detail .unit {
font-size: 34rpx;
}
.money-detail .number {
font-size: 60rpx;
}
.no-data {
padding: 30rpx;
box-sizing: border-box;
background-color: #fff;
display: flex;
justify-content: space-around;
align-items: center;
flex-direction: column;
color: #757575;
}
.listBox {
margin: -10rpx auto 0;
padding: 20rpx;
box-sizing: border-box;
border-radius: 20rpx;
}
</style>