推广小程序前端代码
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.
 
 
 

182 lines
4.4 KiB

<template>
<view class="cart">
<view class="head-box"></view>
<Navbar title="我的订单" :bgColor="bgColor" leftIconSize="0px" height="100rpx" :titleStyle="{color:fontColor}" />
<view class="content contentPosition_">
<uv-sticky offsetTop="220rpx" :bgColor="bgColor">
<uv-tabs :scrollable="false" @click="tabs" :list="tabList" lineWidth="40" :current="tabCurrent"
:lineColor="`url(${lineBg}) 100% 100%`"
:activeStyle="{color: '#FD5C5C', fontWeight: 'bold',transform: 'scale(1.05)'}"
:inactiveStyle="{color: '#999', transform: 'scale(1)'}"
itemStyle="padding-left: 15px; padding-right: 15px; height: 44px;"></uv-tabs>
</uv-sticky>
<cardList :cardListData="cardListData" @btnClick="btnClick" @toOrderDetails="toOrderDetails" />
<uv-load-more :status="status" fontSize="24rpx" dashed line />
</view>
<uv-modal ref="modal" align="center" content='是否取消订单?' @confirm="confirm"></uv-modal>
<signInQrcodePopup ref="signInQrcodePopup"/>
<tabber select="cart" />
</view>
</template>
<script>
import tabber from '@/components/base/tabbar.vue'
import cardList from '@/components/cart/CardList.vue'
import signInQrcodePopup from '@/components/cart/signInQrcodePopup.vue'
import Navbar from '@/pages/components/Navbar.vue'
import {
globalMixin
} from '../mixins/globalMixin';
export default {
mixins: [globalMixin],
components: {
tabber,
cardList,
Navbar,
signInQrcodePopup,
},
data() {
this.orderId = '';
return {
tabCurrent:0,
status: "loading",
params: {
state: '',
pageNo: 1,
pageSize: 10
},
tabList: [{
id: '',
name: '全部'
},
{
id: 0,
name: '未付款'
},
{
id: 1,
name: '待参加'
},
{
id: 2,
name: '已完成'
},
{
id: 3,
name: '已取消'
},
],
lineBg: require('@/static/image/cart/tabIcon.png'),
totalPage: 0,
cardListData: []
}
},
onReachBottom() {
if (this.params.pageNo >= this.totalPage) return
this.params.pageNo++
this.getOrderPageList()
},
onLoad(e) {
if(uni.getStorageSync('currentState')) {
this.tabCurrent = uni.getStorageSync('currentState')
uni.removeStorageSync('currentState')
}
this.params.state = this.tabList[this.tabCurrent].id
this.getOrderPageList()
},
onPullDownRefresh() {
this.params.pageNo = 1
this.cardListData = []
this.getOrderPageList()
},
methods: {
activeList() {
uni.navigateTo({
url: '/pages_my/activeList'
})
},
getOrderPageList() {
this.status = "loading"
this.$api('orderPageList', this.params, res => {
uni.stopPullDownRefresh()
if (res.code == 200) {
this.totalPage = res.result.pages
this.cardListData = [...this.cardListData, ...res.result.records]
if (this.params.pageNo >= this.totalPage) {
this.status = "nomore"
} else {
this.status = "loadmore"
}
}
})
},
tabs(val) {
this.params.state = val.id
this.params.pageNo = 1
this.cardListData = []
this.getOrderPageList()
},
toOrderDetails(val) {
uni.navigateTo({
url: `/pages_order/orderDetails?id=${val.id}`
})
},
btnClick(item, type) { //0取消活动 1活动签到 2评价活动 3开具发票
this.orderId = item.id;
if (type == 0) {
this.$refs.modal.open();
}
if (type == 1) {
this.$refs.signInQrcodePopup.open(item.id)
// this.$api('signIn', {
// orderId: item.id
// }, res => {
// if (res.code == 200) {
// this.cardListData = []
// this.getOrderPageList()
// this.$refs.toast.show({
// type: 'success',
// message: res.result
// })
// }
// })
}
if (type == 2) {
uni.navigateTo({
url: `/pages_order/orderEvaluation?activityId=${this.orderId}`
})
}
if (type == 3) {
uni.navigateTo({
url: `/pages_order/invoiceIssuance?orderId=${this.orderId}`
})
}
if (type == 4) {
uni.navigateTo({
url: `/pages_order/invoiceIssuance?orderId=${this.orderId}`
})
}
},
confirm() {
this.$api('cancelOrder', {
orderId: this.orderId
}, res => {
if (res.code == 200) {
this.cardListData = [];
this.getOrderPageList();
}
})
}
}
}
</script>
<style scoped lang="scss">
.content {
padding-bottom: 200rpx;
}
</style>