Files
anmo/business_uniapp/src/pages/income/components/list.vue
2025-08-19 14:16:51 +08:00

116 lines
3.1 KiB
Vue

<template>
<view class="flex flex-col min-h-0 h-full">
<option-com
v-model:startDate="startDate"
v-model:endDate="endDate"
:orderAmount="orderAmount"
:type="type"
@change="paging?.reload()"
/>
<view class="h-full">
<z-paging
auto-show-back-to-top
:auto="i == index"
ref="paging"
v-model="dataList"
:data-key="i"
@query="queryList"
:fixed="false"
height="100%"
>
<view
v-for="(item, index) in dataList"
:key="index"
class="px-[30rpx] pb-3"
@click="goToOrder(item.id)"
>
<card
:sn="item.sn"
:order_status_desc="item.order_status_desc"
:order_goods="item.order_goods"
:order_amount="item.order_amount"
:true_server_finish_time="item.true_server_finish_time"
:order_status="item.order_status"
:settle_info="item.settle_info"
:type="type"
:total_num="item.total_num"
:is_settle="item.is_settle"
></card>
</view>
</z-paging>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, watch, nextTick, shallowRef } from 'vue'
import cashOutIcon from '../../../static/images/cashOutIcon.png'
import card from './card.vue'
import optionCom from './option.vue'
import { getInComeLists } from '@/api/order'
const props = withDefaults(
defineProps<{
type: number
i: number
index: number
}>(),
{
type: 0
}
)
const paging = shallowRef<any>(null)
const dataList = ref<any>([])
const isFirst = ref<boolean>(true)
const startDate = ref('')
const endDate = ref('')
const orderAmount = ref(0)
watch(
() => props.index,
async () => {
await nextTick()
if (props.i == props.index && isFirst.value) {
isFirst.value = false
paging.value?.reload()
}
},
{ immediate: true }
)
// watch(
// () => [startDate.value, endDate.value],
// () => {
// paging.value?.reload()
// }
// )
// 去到订单详情页面
const goToOrder = (id: number) => {
uni.navigateTo({
url: `/packages/pages/order_detail/order_detail?id=${id}`
})
}
const queryList = async (page_no: number, page_size: number) => {
try {
const { lists, extend } = await getInComeLists({
type: props.type,
start_time: startDate.value,
end_time: endDate.value,
page_no,
page_size
})
orderAmount.value = extend.settle_amount
paging.value.complete(lists)
} catch (e) {
console.log('报错=>', e)
//TODO handle the exception
paging.value.complete(false)
}
}
</script>
<style scoped></style>