<template> <view class="content"> <scroll-view scroll-y class="scroll-box" @scrolltolower="handleLoadMore" :refresher-enabled="true" :refresher-triggered="triggered" :refresher-threshold="100" refresher-background="white" @refresherrefresh="onRefresh" @refresherrestore="onRestore"> <u-card :head-border-bottom="false" :foot-border-top="false" padding="0px" margin="10px" borderRadius="40" v-for="(item, index) in tableList" :key="index" class="class-card"> <view class="class-content" slot="head" style="padding-top: 10px;"> <view class="class-name">{{item.className}}</view> </view> <view class="class-content" slot="body"> <view class="class-info-text"> <u-icon name="order"></u-icon> 订单号:{{item.orderNumber}} </view> <view class="class-info-text"> <u-icon name="clock"></u-icon> 支付时间:{{item.payTime}} </view> <view class="class-info-text"> <u-icon name="rmb-circle"></u-icon> 支付金额:{{item.factPrices}} </view> </view> </u-card> <u-divider v-if="isOver" bg-color="transparent">没有更多了</u-divider> </scroll-view> <u-top-tips ref="uTips"></u-top-tips> </view> </template> <script> import { mapGetters } from 'vuex' const NET = require('@/utils/request') const API = require('@/config/api') export default { computed: { ...mapGetters([]) }, data() { return { triggered: false, isOver: false, pageIndex: 1, tableList: [], } }, onLoad() { this.getTableList() }, onReady() {}, methods: { // 下拉刷新 onRefresh() { this.triggered = true this.isOver = false this.pageIndex = 1 this.tableList = [] this.getTableList() }, // 重置下拉刷新状态 onRestore() { this.triggered = 'restore' this.triggered = false }, // 懒加载 handleLoadMore() { if (!this.isOver) { this.pageIndex++ this.getTableList() } }, // 获取列表数据 getTableList() { NET.request(API.getOrderList, { page: this.pageIndex, size: 10, }, 'POST').then(res => { this.triggered = false this.tableList = this.tableList.concat(res.data.row) this.isOver = res.data.row.length != 10 }).catch(error => { this.triggered = false this.$refs.uTips.show({ title: error.message, type: 'warning', }) }) } }, } </script> <style> page { width: 100%; height: 100%; background-color: #f7f7f7; } </style> <style lang="scss" scoped> @import "@/static/css/themes.scss"; .content { width: 100%; float: left; .scroll-box { width: 100%; height: 100vh; padding-bottom: 10px; box-sizing: border-box; .class-card { .class-content { padding: 5px 15px; } .class-name { height: 20px; display: inline-block; font-weight: bold; font-size: 14px; line-height: 20px; } .class-info-text { color: #999999; margin-bottom: 5px; /deep/.u-icon { margin-right: 5px; font-size: 14px; color: #000000; } } } } } </style>