|
@@ -1,7 +1,6 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import OrderRenderer from './components/OrderRenderer.vue'
|
|
import OrderRenderer from './components/OrderRenderer.vue'
|
|
|
import { navTabTypeList, orderStatusList } from './order-data'
|
|
import { navTabTypeList, orderStatusList } from './order-data'
|
|
|
-import { createGlobalLoadingMiddleware } from '@/api/core/middleware'
|
|
|
|
|
|
|
|
|
|
definePage({
|
|
definePage({
|
|
|
name: 'smqjh-order',
|
|
name: 'smqjh-order',
|
|
@@ -10,11 +9,12 @@ definePage({
|
|
|
navigationBarTitleText: '订单列表',
|
|
navigationBarTitleText: '订单列表',
|
|
|
},
|
|
},
|
|
|
})
|
|
})
|
|
|
|
|
+const skelet = ref(true)
|
|
|
|
|
|
|
|
const navActiveTab = ref('all')
|
|
const navActiveTab = ref('all')
|
|
|
const scrollViewId = ref()
|
|
const scrollViewId = ref()
|
|
|
const orderStatusActive = ref('all')
|
|
const orderStatusActive = ref('all')
|
|
|
-const { data: orderList, refresh, isLastPage, page, reload } = usePagination((pageNum, pageSize) => Apis.xsb.orderList({
|
|
|
|
|
|
|
+const { data: orderList, isLastPage, page, reload } = usePagination((pageNum, pageSize) => Apis.xsb.orderList({
|
|
|
data: {
|
|
data: {
|
|
|
businessType: unref(navActiveTab) === 'all' ? '' : unref(navActiveTab),
|
|
businessType: unref(navActiveTab) === 'all' ? '' : unref(navActiveTab),
|
|
|
orderStatus: unref(orderStatusActive),
|
|
orderStatus: unref(orderStatusActive),
|
|
@@ -28,10 +28,10 @@ const { data: orderList, refresh, isLastPage, page, reload } = usePagination((pa
|
|
|
initialData: [],
|
|
initialData: [],
|
|
|
data: res => res.data?.list,
|
|
data: res => res.data?.list,
|
|
|
append: true,
|
|
append: true,
|
|
|
- middleware: createGlobalLoadingMiddleware(),
|
|
|
|
|
-})
|
|
|
|
|
|
|
+}).onSuccess(() => skelet.value = false)
|
|
|
|
|
|
|
|
function handleChangeTypeNav(value: string) {
|
|
function handleChangeTypeNav(value: string) {
|
|
|
|
|
+ skelet.value = true
|
|
|
navActiveTab.value = value
|
|
navActiveTab.value = value
|
|
|
scrollViewId.value = null
|
|
scrollViewId.value = null
|
|
|
orderList.value = []
|
|
orderList.value = []
|
|
@@ -39,8 +39,8 @@ function handleChangeTypeNav(value: string) {
|
|
|
reload()
|
|
reload()
|
|
|
}
|
|
}
|
|
|
onShow(() => {
|
|
onShow(() => {
|
|
|
- orderList.value = []
|
|
|
|
|
- refresh()
|
|
|
|
|
|
|
+ // orderList.value = []
|
|
|
|
|
+ reload()
|
|
|
})
|
|
})
|
|
|
onReachBottom(() => {
|
|
onReachBottom(() => {
|
|
|
if (!isLastPage.value) {
|
|
if (!isLastPage.value) {
|
|
@@ -48,6 +48,7 @@ onReachBottom(() => {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
function handleChangeStatus(value: string) {
|
|
function handleChangeStatus(value: string) {
|
|
|
|
|
+ skelet.value = true
|
|
|
orderStatusActive.value = value
|
|
orderStatusActive.value = value
|
|
|
orderList.value = []
|
|
orderList.value = []
|
|
|
reload()
|
|
reload()
|
|
@@ -88,13 +89,56 @@ function handleChangeStatus(value: string) {
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="p-24rpx">
|
|
<view class="p-24rpx">
|
|
|
- <template v-for="item in orderList" :key="item.orderNumber">
|
|
|
|
|
- <OrderRenderer
|
|
|
|
|
- :order-list="item"
|
|
|
|
|
- @refresh="reload"
|
|
|
|
|
- />
|
|
|
|
|
- </template>
|
|
|
|
|
- <StatusTip v-if="!orderList.length" tip="暂无内容" />
|
|
|
|
|
|
|
+ <templat v-if="skelet">
|
|
|
|
|
+ <view v-for="item in 10" :key="item" class="mb20rpx rounded-16rpx bg-white p24rpx">
|
|
|
|
|
+ <wd-skeleton
|
|
|
|
|
+ animation="gradient"
|
|
|
|
|
+ theme="text"
|
|
|
|
|
+ :row-col="[{ width: '100%' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <view class="mt20rpx flex">
|
|
|
|
|
+ <wd-skeleton
|
|
|
|
|
+ animation="gradient"
|
|
|
|
|
+ theme="image"
|
|
|
|
|
+ :row-col="[{ width: '160rpx', height: '160rpx' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <view class="ml20rpx flex-1">
|
|
|
|
|
+ <wd-skeleton
|
|
|
|
|
+ animation="gradient"
|
|
|
|
|
+ theme="text"
|
|
|
|
|
+ :row-col="[{ width: '100%' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <wd-skeleton
|
|
|
|
|
+ animation="gradient"
|
|
|
|
|
+ theme="text"
|
|
|
|
|
+ :row-col="[{ width: '90%' }]"
|
|
|
|
|
+ :custom-style="{ marginTop: '20rpx' }"
|
|
|
|
|
+ />
|
|
|
|
|
+ <wd-skeleton
|
|
|
|
|
+ animation="gradient"
|
|
|
|
|
+ theme="text"
|
|
|
|
|
+ :row-col="[{ width: '80%' }]"
|
|
|
|
|
+ :custom-style="{ marginTop: '20rpx' }"
|
|
|
|
|
+ />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <wd-skeleton
|
|
|
|
|
+ animation="gradient"
|
|
|
|
|
+ theme="text"
|
|
|
|
|
+ :custom-style="{ marginTop: '20rpx' }"
|
|
|
|
|
+ :row-col="[{ width: '100%', height: '60rpx' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </templat>
|
|
|
|
|
+ <view v-else>
|
|
|
|
|
+ <template v-for="item in orderList" :key="item.orderNumber">
|
|
|
|
|
+ <OrderRenderer
|
|
|
|
|
+ :order-list="item"
|
|
|
|
|
+ @refresh="reload"
|
|
|
|
|
+ />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <StatusTip v-if="!orderList.length" tip="暂无内容" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="h-20rpx" />
|
|
<view class="h-20rpx" />
|
|
|
</view>
|
|
</view>
|