|
|
- <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();
- uni.showModal({
- title: '是否取消订单?',
- success : res => {
- if(res.confirm){
- this.confirm()
- }
- }
- })
- }
- if (type == 1) {
- this.$refs.signInQrcodePopup.open(this.orderId)
-
- // 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.params.pageNo = 1
- this.cardListData = [];
- this.getOrderPageList();
- }
- })
- }
- }
- }
- </script>
-
- <style scoped lang="scss">
- .content {
- padding-bottom: 200rpx;
- }
- </style>
|