73 lines
1.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<section class="position-panel card">
<el-tabs v-model="tab">
<el-tab-pane label="总持仓" name="total" />
<el-tab-pane label="成交量" name="volume" />
<el-tab-pane label="净持仓" name="net" />
</el-tabs>
<div v-if="tab !== 'total'" class="placeholder-tip">当前为占位数据(结构与总持仓一致)</div>
<div class="cols">
<div class="col">
<h3 class="long-title">多单持仓前20名</h3>
<PositionDonut :list="data.long" />
<PositionTable :list="data.long" qty-label="多单" />
</div>
<div class="col">
<h3 class="short-title">空单持仓前20名</h3>
<PositionDonut :list="data.short" />
<PositionTable :list="data.short" qty-label="空单" />
</div>
</div>
</section>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import type { PositionsData } from '../../types'
import PositionDonut from './PositionDonut.vue'
import PositionTable from './PositionTable.vue'
defineProps<{
data: PositionsData
}>()
const tab = ref('total')
</script>
<style scoped>
.position-panel {
padding: 12px 16px 16px;
margin-top: 16px;
}
.placeholder-tip {
font-size: 12px;
color: var(--text-secondary);
margin: -4px 0 8px;
}
.cols {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.long-title {
margin: 0 0 8px;
color: var(--long);
font-size: 14px;
}
.short-title {
margin: 0 0 8px;
color: var(--short);
font-size: 14px;
}
@media (max-width: 960px) {
.cols {
grid-template-columns: 1fr;
}
}
</style>