|
|
@@ -1,24 +1,17 @@
|
|
|
<template>
|
|
|
<app-view class="swap-detail">
|
|
|
<template #header>
|
|
|
- <app-navbar :title="item.goodsgroupname + '/' + item.goodscode">
|
|
|
+ <app-navbar :title="item.goodscode + '/' + item.goodsname">
|
|
|
<template #right>
|
|
|
<div class="button-more" @click="onListing">
|
|
|
<span>挂牌</span>
|
|
|
</div>
|
|
|
</template>
|
|
|
+ <template #footer>
|
|
|
+ <app-quote :goodscode="item.refgoodscode" />
|
|
|
+ </template>
|
|
|
</app-navbar>
|
|
|
</template>
|
|
|
- <div class="swap-detail__quote" v-if="quote">
|
|
|
- <ul class="price">
|
|
|
- <li :class="quote.lastColor">{{ quote.last }}</li>
|
|
|
- <li :class="quote.lastColor">{{ handleNumberValue(quote.rise.toFixed(quote.decimalplace)) }}</li>
|
|
|
- <li :class="quote.lastColor">{{ parsePercent(quote.change) }}</li>
|
|
|
- </ul>
|
|
|
- <ul class="time">
|
|
|
- <li>{{ formatDate(quote.lasttime, 'MM-DD HH:mm:ss') }}</li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
<app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
|
|
|
:page-count="pageCount" @refresh="onTabChange">
|
|
|
<Tabs v-model:active="tabIndex" @click="onChange">
|
|
|
@@ -43,20 +36,16 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { shallowRef, onMounted, onUnmounted, defineAsyncComponent } from 'vue'
|
|
|
+import { shallowRef, defineAsyncComponent } from 'vue'
|
|
|
import { Tab, Tabs, Button, showToast } from 'vant'
|
|
|
import { useRequest } from '@/hooks/request'
|
|
|
import { useNavigation } from '@/hooks/navigation'
|
|
|
import { useComponent } from '@/hooks/component'
|
|
|
import { queryTjmdTradeOrderDetail } from '@/services/api/swap'
|
|
|
import { useLoginStore } from '@/stores'
|
|
|
-import { useFuturesStore } from '@/stores'
|
|
|
-import { parsePercent, handleNumberValue, formatDate } from '@/filters'
|
|
|
-
|
|
|
-import quoteSocket from '@/services/websocket/quote'
|
|
|
-
|
|
|
import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
|
|
|
import AppList from '@mobile/components/base/list/index.vue'
|
|
|
+import AppQuote from '@mobile/components/modules/quote/index.vue'
|
|
|
|
|
|
const componentMap = new Map<string, unknown>([
|
|
|
['delisting', defineAsyncComponent(() => import('./components/delisting/Index.vue'))],
|
|
|
@@ -69,15 +58,12 @@ const { getParamString } = useNavigation()
|
|
|
const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
|
|
|
pullRefreshRef.value?.refresh()
|
|
|
})
|
|
|
-const futuresStore = useFuturesStore()
|
|
|
+
|
|
|
const item: Model.QuoteGoodsListRsp = JSON.parse(getParamString('item')?.toString() || '{}')
|
|
|
const tabIndex = shallowRef(0)
|
|
|
const selectedRow = shallowRef<Model.TjmdTradeOrderDetailRsp>()
|
|
|
const error = shallowRef(false)
|
|
|
const dataList = shallowRef<Model.TjmdTradeOrderDetailRsp[]>([])
|
|
|
-const quote = futuresStore.getQuoteInfo(item.refgoodscode)
|
|
|
-
|
|
|
-const subscribe = quoteSocket.addSubscribe([item.refgoodscode])
|
|
|
|
|
|
const { pageIndex, loading, run, pageCount } = useRequest(queryTjmdTradeOrderDetail, {
|
|
|
params: {
|
|
|
@@ -131,13 +117,4 @@ const onDelisting = (row: Model.TjmdTradeOrderDetailRsp) => {
|
|
|
const onListing = () => {
|
|
|
openComponent('listing')
|
|
|
}
|
|
|
-
|
|
|
-onMounted(() => subscribe.start())
|
|
|
-
|
|
|
-onUnmounted(() => subscribe.stop())
|
|
|
-
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="less">
|
|
|
-@import './index.less';
|
|
|
-</style>
|
|
|
+</script>
|