|
|
@@ -100,16 +100,15 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <!-- 加载更多 -->
|
|
|
+ <!-- 加载更多指示器 -->
|
|
|
<view class="load-more-container">
|
|
|
- <view
|
|
|
- class="load-more"
|
|
|
+ <view
|
|
|
+ class="load-more"
|
|
|
v-if="orderList.length > 0"
|
|
|
- @click="loadMore"
|
|
|
>
|
|
|
<text v-if="loadMoreStatus === 'loading'">正在加载...</text>
|
|
|
- <text v-else-if="loadMoreStatus === 'noMore'">没有更多数据了</text>
|
|
|
- <text v-else>点击加载更多</text>
|
|
|
+ <text v-else-if="loadMoreStatus === 'noMore'">— 没有更多数据了 —</text>
|
|
|
+ <text v-else>上拉加载更多</text>
|
|
|
</view>
|
|
|
|
|
|
<!-- 空状态 -->
|
|
|
@@ -133,6 +132,7 @@
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, onMounted, reactive } from 'vue'
|
|
|
+import { onReachBottom } from '@dcloudio/uni-app'
|
|
|
import { getOrderList, handleRefund as refundApi } from '../../api/order.js'
|
|
|
import { formatTime, showToast, formatAmount, fmtDictName, getDictColor } from '../../utils/index.js'
|
|
|
import dictUtil, { loadDicts } from '../../utils/dict.js'
|
|
|
@@ -240,12 +240,17 @@ const loadOrderList = async (isLoadMore = false) => {
|
|
|
}
|
|
|
|
|
|
const loadMore = () => {
|
|
|
- if (hasMore.value && !loading.value) {
|
|
|
+ if (hasMore.value && !loading.value && loadMoreStatus.value !== 'loading') {
|
|
|
loadMoreStatus.value = 'loading'
|
|
|
loadOrderList(true)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 滚动到底部自动加载
|
|
|
+onReachBottom(() => {
|
|
|
+ loadMore()
|
|
|
+})
|
|
|
+
|
|
|
const handleSearch = () => {
|
|
|
loadOrderList()
|
|
|
}
|
|
|
@@ -571,20 +576,12 @@ const onPullDownRefresh = () => {
|
|
|
margin-top: 30rpx;
|
|
|
}
|
|
|
|
|
|
-/* 加载更多 */
|
|
|
+/* 加载更多指示器 */
|
|
|
.load-more {
|
|
|
text-align: center;
|
|
|
padding: 40rpx;
|
|
|
- color: #666666;
|
|
|
+ color: #999999;
|
|
|
font-size: 28rpx;
|
|
|
- background-color: #FFFFFF;
|
|
|
- border-radius: 48rpx;
|
|
|
- transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
|
-}
|
|
|
-
|
|
|
-.load-more:active {
|
|
|
- transform: translateY(-2px);
|
|
|
- box-shadow: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06);
|
|
|
}
|
|
|
|
|
|
/* 空状态 */
|