94 lines
2.0 KiB
Vue
94 lines
2.0 KiB
Vue
<template>
|
|
<layout>
|
|
<uv-sticky
|
|
bgColor="#fff"
|
|
customNavHeight="0"
|
|
>
|
|
<uv-navbar
|
|
:fixed="false"
|
|
title="售后订单"
|
|
@leftClick="goBack"
|
|
/>
|
|
<uv-tabs
|
|
:scrollable="false"
|
|
:list="navList"
|
|
@click="click"
|
|
lineColor="#f56c6c"
|
|
></uv-tabs>
|
|
</uv-sticky>
|
|
<view
|
|
class="orderList"
|
|
v-if="!listEmpty"
|
|
>
|
|
<refund-order
|
|
:data="item"
|
|
v-for="(item) in dataList"
|
|
:key="`${type}_${item.id}`"
|
|
@refresh="refresh"
|
|
/>
|
|
</view>
|
|
<Empty
|
|
v-else
|
|
:iconSrc="emptyOrderIcon"
|
|
></Empty>
|
|
<!-- 加载中 -->
|
|
<ListLoadLoading v-if="loading" />
|
|
<!-- 加载完毕-->
|
|
<ListLoadOver v-if="loadend" />
|
|
</layout>
|
|
|
|
<ReturnTop :scroll-top="scrollTop" />
|
|
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref } from 'vue'
|
|
import { onShow } from '@dcloudio/uni-app'
|
|
import { storeAfterSalesList } from '@/api/order'
|
|
import { useRouter } from "@/hooks/useRouter";
|
|
import { emptyOrderIcon } from "@/utils/images";
|
|
import Empty from "@/components/Empty/index.vue"
|
|
import { usePage } from "@/hooks";
|
|
import ReturnTop from "@/components/ReturnTop/index.vue";
|
|
import ListLoadOver from "@/components/ListLoadOver/index.vue"
|
|
import ListLoadLoading from "@/components/ListLoadLoading/index.vue"
|
|
import { useScroll } from "@/hooks/useScroll";
|
|
|
|
const {scrollTop} = useScroll()
|
|
|
|
const {type, refresh, dataList, loadend, loading, listEmpty} = usePage(storeAfterSalesList)
|
|
|
|
const {goBack, getUrlParams} = useRouter();
|
|
|
|
|
|
const navList = ref([
|
|
{name: "全部", value: -1,},
|
|
{name: "售后中", value: 1,},
|
|
{name: "已完成", value: 2,},
|
|
])
|
|
|
|
|
|
const click = (data) => {
|
|
type.value = data.value
|
|
refresh()
|
|
}
|
|
|
|
onShow(() => {
|
|
const params = getUrlParams()
|
|
if (params.type < 0 || !params.type) {
|
|
type.value = -1
|
|
} else {
|
|
type.value = params.type
|
|
}
|
|
refresh()
|
|
})
|
|
|
|
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.orderList {
|
|
padding: 20rpx 0;
|
|
}
|
|
</style>
|