parent
92f206495f
commit
0d7b762949
@ -0,0 +1,396 @@ |
|||||||
|
<template> |
||||||
|
<view> |
||||||
|
<!-- 顶部导航 --> |
||||||
|
<view class="topTabBar" :style="{position:headerPosition,top:headerTop}"> |
||||||
|
<view class="grid" v-for="(grid,tbIndex) in orderType" :key="tbIndex" @tap="showType(tbIndex)"> |
||||||
|
<view class="text" :class="[tbIndex==tabbarIndex?'on':'']">{{grid}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<!-- 考虑非APP端长列表和复杂的DOM使用scroll-view会卡顿,所以漂浮顶部选项卡使用page本身的滑动 --> |
||||||
|
<view class="order-list"> |
||||||
|
<view class="list"> |
||||||
|
<view class="onorder" v-if="orderList.length==0"> |
||||||
|
<image :src="imagewxUrl+imgadres"></image> |
||||||
|
</view> |
||||||
|
<view class="row" v-for="(row,index) in orderList" :key="index"> |
||||||
|
<view class="width96 height40"> |
||||||
|
<view class="width50 flleft aliitem fotlt font16"> |
||||||
|
<image src="../../static/img/order1.png" style="width: 50rpx;height: 50rpx;"></image> |
||||||
|
话费充值 |
||||||
|
</view> |
||||||
|
<view class="width50 flright fotrt fcor666 font15"> |
||||||
|
{{row.createTimed | formatDate('-')}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="width96 line1 mart10"></view> |
||||||
|
|
||||||
|
<view class="width96 height60 mart10" @click="jumpDetails(row.id)"> |
||||||
|
<view class="width70 flleft fotlt "> |
||||||
|
<view class="font16 fontwig6 text1 fcor333"> |
||||||
|
{{row.remarks}} |
||||||
|
</view> |
||||||
|
<view class="font15 text1 fcor999 mart5"> |
||||||
|
数量 : 1 |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="width30 flright fotrt fcor666 font15 fotrt"> |
||||||
|
<view class="font16 fontwig6 text1 fcor333" v-if="row.payType == 1 || row.payType == 3"> |
||||||
|
¥{{row.payPrice}} |
||||||
|
</view> |
||||||
|
<view class="font16 fontwig6 text1 fcor333 aliitem" style="justify-content: flex-end;" v-else> |
||||||
|
<image style="width: 15px;height: 15px;" |
||||||
|
src="../../static/img/jfx.png"> |
||||||
|
</image>{{row.payPrice*100}} |
||||||
|
</view> |
||||||
|
<view class="fotrt font15 text1 fcor999 mart5">{{typeText[row.status]}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
</template> |
||||||
|
<script> |
||||||
|
import { |
||||||
|
getUserOrderListhuafei |
||||||
|
} from '../../Utils/Api.js'; |
||||||
|
let app = getApp() |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return { |
||||||
|
headerPosition: "fixed", |
||||||
|
imagewxUrl: app.globalData.imageWxImg, |
||||||
|
imgadres: 'noorder.png', |
||||||
|
imgadres1: 'dhf.png', |
||||||
|
headerTop: "0px", |
||||||
|
typeText: { |
||||||
|
1: '等待付款', |
||||||
|
2: '订单已支付', |
||||||
|
3: '订单已完成', |
||||||
|
5: '订单已取消', |
||||||
|
4: '订单已退款' |
||||||
|
}, |
||||||
|
// 退换货 |
||||||
|
orderType: ['全部', '待支付', '已支付', '已完成', '已取消', '已退款'], |
||||||
|
//订单列表 演示数据 |
||||||
|
orderList: [], |
||||||
|
list: [], |
||||||
|
tabbarIndex: 0, |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
isNoMoreData: false, |
||||||
|
loadingText: '', |
||||||
|
typeId: '', |
||||||
|
imageUrl: app.globalData.imgUrl, |
||||||
|
reFresh: "" |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
onLoad(option) { |
||||||
|
// #ifdef H5 |
||||||
|
this.headerTop = '44px'; |
||||||
|
// #endif |
||||||
|
let tbIndex = parseInt(option.tbIndex) + 1; |
||||||
|
this.list = this.orderList[tbIndex]; |
||||||
|
this.tabbarIndex = tbIndex; |
||||||
|
this.typeId = tbIndex; |
||||||
|
this.getUserOrderListhuafei(); |
||||||
|
}, |
||||||
|
onPageScroll(e) { |
||||||
|
return; |
||||||
|
//兼容iOS端下拉时顶部漂移 |
||||||
|
this.headerPosition = e.scrollTop >= 0 ? "fixed" : "absolute"; |
||||||
|
}, |
||||||
|
onReachBottom() { |
||||||
|
this.getUserOrderListhuafei(); |
||||||
|
}, |
||||||
|
filters: { |
||||||
|
toFixed: function(x) { |
||||||
|
return parseFloat(x).toFixed(2); |
||||||
|
}, |
||||||
|
//过滤器 用于格式化时间 |
||||||
|
formatDate: function(value, spe = '/') { |
||||||
|
let data = new Date(value); |
||||||
|
let year = data.getFullYear(); |
||||||
|
let month = data.getMonth() + 1; |
||||||
|
let day = data.getDate(); |
||||||
|
let h = data.getHours(); |
||||||
|
let mm = data.getMinutes(); |
||||||
|
let s = data.getSeconds(); |
||||||
|
month = month >= 10 ? month : "0" + month; |
||||||
|
day = day >= 10 ? day : "0" + day; |
||||||
|
h = h >= 10 ? h : "0" + h; |
||||||
|
mm = mm >= 10 ? mm : "0" + mm; |
||||||
|
s = s >= 10 ? s : "0" + s; |
||||||
|
return `${year}${spe}${month}${spe}${day} ${h}:${mm}:${s}`; |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
//查询订单列表 |
||||||
|
getUserOrderListhuafei() { |
||||||
|
uni.showLoading({ |
||||||
|
title: '加载中...' |
||||||
|
}) |
||||||
|
if (this.isNoMoreData) { |
||||||
|
uni.hideLoading() |
||||||
|
return false; |
||||||
|
} |
||||||
|
let statusId = this.typeId; |
||||||
|
|
||||||
|
let pagenum = this.pageNum; |
||||||
|
let params = { |
||||||
|
status: statusId, |
||||||
|
pageNum: this.pageNum, |
||||||
|
pageSize: this.pageSize |
||||||
|
} |
||||||
|
|
||||||
|
getUserOrderListhuafei(params).then(res => { |
||||||
|
if (res.return_code == '000000' && res.return_data.list != '') { |
||||||
|
uni.hideLoading(); |
||||||
|
this.isNoMoreData = res.return_data.list.length == this.pageSize ? false : true; |
||||||
|
if (res.return_data.total == (this.pageNum * this.pageSize)) { |
||||||
|
this.isNoMoreData = true; |
||||||
|
} |
||||||
|
this.orderList = this.orderList.concat(res.return_data.list); |
||||||
|
this.pageNum = res.return_data.list.length == this.pageSize ? ++pagenum : pagenum; |
||||||
|
} else { |
||||||
|
this.orderList = []; |
||||||
|
uni.hideLoading() |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
|
||||||
|
}, |
||||||
|
showType(tbIndex) { |
||||||
|
this.tabbarIndex = tbIndex; |
||||||
|
this.pageNum = 1; |
||||||
|
this.orderList = [] |
||||||
|
this.isNoMoreData = false; |
||||||
|
if (tbIndex == 0) { |
||||||
|
this.typeId = ''; |
||||||
|
} else { |
||||||
|
this.typeId = tbIndex; |
||||||
|
} |
||||||
|
this.getUserOrderListhuafei(); |
||||||
|
}, |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss"> |
||||||
|
page { |
||||||
|
background-color: #f3f3f3; |
||||||
|
} |
||||||
|
|
||||||
|
.zspec { |
||||||
|
font-size: 22rpx; |
||||||
|
background-color: #0083f5; |
||||||
|
color: #FFFFFF; |
||||||
|
height: 40rpx; |
||||||
|
display: -webkit-box; |
||||||
|
display: -webkit-flex; |
||||||
|
display: flex; |
||||||
|
width: 44px; |
||||||
|
-webkit-box-align: center; |
||||||
|
-webkit-align-items: center; |
||||||
|
align-items: center; |
||||||
|
padding: 0 15rpx; |
||||||
|
border-radius: 4px; |
||||||
|
margin-bottom: 10px; |
||||||
|
margin-left: 5px; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.loading-text { |
||||||
|
width: 100%; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
height: 60upx; |
||||||
|
color: #979797; |
||||||
|
font-size: 24upx; |
||||||
|
} |
||||||
|
|
||||||
|
.topTabBar { |
||||||
|
width: 100%; |
||||||
|
position: fixed; |
||||||
|
top: 0; |
||||||
|
z-index: 10; |
||||||
|
background-color: #f8f8f8; |
||||||
|
height: 80upx; |
||||||
|
display: flex; |
||||||
|
justify-content: space-around; |
||||||
|
|
||||||
|
.grid { |
||||||
|
width: 20%; |
||||||
|
height: 80upx; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
color: #444; |
||||||
|
font-size: 28upx; |
||||||
|
|
||||||
|
.text { |
||||||
|
height: 76upx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
|
||||||
|
&.on { |
||||||
|
color: #0083f5; |
||||||
|
border-bottom: solid 4upx #0083f5; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.order-list { |
||||||
|
margin-top: 80upx; |
||||||
|
padding-top: 20upx; |
||||||
|
width: 100%; |
||||||
|
|
||||||
|
.list { |
||||||
|
width: 94%; |
||||||
|
margin: 0 auto; |
||||||
|
|
||||||
|
.onorder { |
||||||
|
width: 100%; |
||||||
|
height: 50vw; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-content: center; |
||||||
|
flex-wrap: wrap; |
||||||
|
|
||||||
|
image { |
||||||
|
width: 70vw; |
||||||
|
margin-top: 150px; |
||||||
|
} |
||||||
|
|
||||||
|
.text { |
||||||
|
width: 100%; |
||||||
|
height: 60upx; |
||||||
|
font-size: 28upx; |
||||||
|
color: #444; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.row { |
||||||
|
width: calc(100% - 40upx); |
||||||
|
padding: 10upx 20upx; |
||||||
|
border-radius: 10upx; |
||||||
|
background-color: #fff; |
||||||
|
margin-bottom: 20upx; |
||||||
|
|
||||||
|
.type { |
||||||
|
font-size: 26upx; |
||||||
|
color: #0083f5; |
||||||
|
height: 50upx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
|
||||||
|
.order-info { |
||||||
|
width: 100%; |
||||||
|
display: flex; |
||||||
|
|
||||||
|
.left { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 25vw; |
||||||
|
height: 25vw; |
||||||
|
|
||||||
|
image { |
||||||
|
width: 25vw; |
||||||
|
height: 25vw; |
||||||
|
border-radius: 10upx; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.right { |
||||||
|
width: 100%; |
||||||
|
margin-left: 10upx; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
.name { |
||||||
|
width: 100%; |
||||||
|
font-size: 18px; |
||||||
|
display: -webkit-box; |
||||||
|
-webkit-box-orient: vertical; |
||||||
|
-webkit-line-clamp: 2; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
.spec { |
||||||
|
color: #a7a7a7; |
||||||
|
font-size: 14px; |
||||||
|
} |
||||||
|
|
||||||
|
.price-number { |
||||||
|
width: 100%; |
||||||
|
font-size: 15px; |
||||||
|
display: flex; |
||||||
|
|
||||||
|
.price { |
||||||
|
font-size: 14px; |
||||||
|
margin-right: 5upx; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.detail { |
||||||
|
display: flex; |
||||||
|
justify-content: flex-end; |
||||||
|
align-items: flex-end; |
||||||
|
height: 60upx; |
||||||
|
font-size: 26upx; |
||||||
|
|
||||||
|
.sum { |
||||||
|
padding: 0 8upx; |
||||||
|
display: flex; |
||||||
|
align-items: flex-end; |
||||||
|
|
||||||
|
.price { |
||||||
|
font-size: 30upx; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
.btns { |
||||||
|
height: 80upx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: flex-end; |
||||||
|
|
||||||
|
view { |
||||||
|
min-width: 120upx; |
||||||
|
height: 70rpx; |
||||||
|
padding: 0 20upx; |
||||||
|
border-radius: 50upx; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
font-size: 28upx; |
||||||
|
margin-left: 20upx; |
||||||
|
} |
||||||
|
|
||||||
|
.default { |
||||||
|
border: solid 1upx #ccc; |
||||||
|
color: #666; |
||||||
|
} |
||||||
|
|
||||||
|
.pay { |
||||||
|
background-color: #0083f5; |
||||||
|
color: #FFFFFF; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue