|
|
@@ -1,10 +1,11 @@
|
|
|
<template>
|
|
|
- <div class="g-detail-table">
|
|
|
+ <app-pull-refresh ref="pullRefreshRef" class="g-detail-table" v-model:loading="loading"
|
|
|
+ v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="onRefresh">
|
|
|
<table cellspacing="0" cellpadding="0" v-if="showDatePicker">
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td>
|
|
|
- <app-date-picker v-model="date" />
|
|
|
+ <app-date-picker v-model="dateValue" @confirm="pullRefreshRef.refresh()" />
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
@@ -59,7 +60,7 @@
|
|
|
</table>
|
|
|
<component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
|
|
|
@closed="closeComponent" v-if="componentId" />
|
|
|
- </div>
|
|
|
+ </app-pull-refresh>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
@@ -71,12 +72,13 @@ import { useRequest } from '@/hooks/request'
|
|
|
import { getBuyOrSellName, getOrderStatusName } from '@/constants/order'
|
|
|
import { queryDigitalTradeOrderDetails } from '@/services/api/digital'
|
|
|
import { useFuturesStore } from '@/stores'
|
|
|
+import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
|
|
|
import AppDatePicker from '@mobile/components/base/datepicker/index.vue'
|
|
|
|
|
|
const props = defineProps({
|
|
|
params: {
|
|
|
- type: Object as PropType<Partial<Model.DigitalTradeOrderDetailsReq>>,
|
|
|
- default: () => ({})
|
|
|
+ type: Object as PropType<Model.DigitalTradeOrderDetailsReq>,
|
|
|
+ required: true
|
|
|
},
|
|
|
showDatePicker: {
|
|
|
type: Boolean,
|
|
|
@@ -89,13 +91,23 @@ const componentMap = new Map<string, unknown>([
|
|
|
])
|
|
|
|
|
|
const futuresStore = useFuturesStore()
|
|
|
-const date = shallowRef('')
|
|
|
const selectedRow = shallowRef<Model.DigitalTradeOrderDetailsRsp>()
|
|
|
|
|
|
+const pullRefreshRef = shallowRef()
|
|
|
+const dataList = shallowRef<Model.DigitalTradeOrderDetailsRsp[]>([])
|
|
|
+const dateValue = shallowRef(props.params.tradedate?.split('-') ?? [])
|
|
|
+
|
|
|
const { componentRef, componentId, openComponent, closeComponent } = useComponent()
|
|
|
|
|
|
-const { dataList } = useRequest(queryDigitalTradeOrderDetails, {
|
|
|
- defaultParams: props.params
|
|
|
+const { loading, pageIndex, pageCount, run } = useRequest(queryDigitalTradeOrderDetails, {
|
|
|
+ manual: props.showDatePicker,
|
|
|
+ defaultParams: props.params,
|
|
|
+ onSuccess: (res) => {
|
|
|
+ if (pageIndex.value === 1) {
|
|
|
+ dataList.value = []
|
|
|
+ }
|
|
|
+ dataList.value.push(...res.data)
|
|
|
+ }
|
|
|
})
|
|
|
|
|
|
const tableList = computed(() => dataList.value.map((e) => {
|
|
|
@@ -109,6 +121,12 @@ const tableList = computed(() => dataList.value.map((e) => {
|
|
|
}
|
|
|
}))
|
|
|
|
|
|
+const onRefresh = () => {
|
|
|
+ run({
|
|
|
+ tradedate: dateValue.value.join('')
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
// 撤销
|
|
|
const cancelOrder = (item: Model.DigitalTradeOrderDetailsRsp) => {
|
|
|
selectedRow.value = item
|