Add sort trades by profit

This commit is contained in:
Meng Xiangzhuo 2024-10-15 16:08:53 +08:00
parent 6bc0562ec0
commit c724abd655
No known key found for this signature in database
GPG Key ID: 7A1735AB4A5A3594

View File

@ -11,7 +11,12 @@ const emit = defineEmits<{ 'trade-select': [trade: Trade] }>();
const botStore = useBotStore(); const botStore = useBotStore();
const selectedTrade = ref({} as Trade); const selectedTrade = ref({} as Trade);
const sortNewestFirst = ref(true); const sortDescendingOrder = ref(true)
const sortMethod = ref('openDate')
const sortMethodOptions = [
{text: 'Open date', value: 'openDate'},
{text: 'Profit', value: 'profit'},
]
const onTradeSelect = (trade: Trade) => { const onTradeSelect = (trade: Trade) => {
selectedTrade.value = trade; selectedTrade.value = trade;
@ -19,13 +24,23 @@ const onTradeSelect = (trade: Trade) => {
}; };
const sortedTrades = computed(() => { const sortedTrades = computed(() => {
return props.trades if (sortMethod.value === 'profit') {
.slice() return props.trades
.sort((a, b) => .slice()
sortNewestFirst.value .sort((a, b) =>
? b.open_timestamp - a.open_timestamp sortDescendingOrder.value
: a.open_timestamp - b.open_timestamp, ? b.profit_ratio - a.profit_ratio
); : a.profit_ratio - b.profit_ratio,
)
} else {
return props.trades
.slice()
.sort((a, b) =>
sortDescendingOrder.value
? b.open_timestamp - a.open_timestamp
: a.open_timestamp - b.open_timestamp,
);
}
}); });
const ordersVisible = ref(sortedTrades.value.map(() => false)); const ordersVisible = ref(sortedTrades.value.map(() => false));
@ -40,13 +55,21 @@ watch(
<template> <template>
<div> <div>
<div class="d-flex justify-content-center">
<span class="me-2">Sort by:</span>
<BFormRadioGroup
v-model="sortMethod"
:options="sortMethodOptions"
name="radio-options"
/>
</div>
<BListGroup> <BListGroup>
<BListGroupItem <BListGroupItem
button button
class="d-flex flex-wrap justify-content-center align-items-center" class="d-flex flex-wrap justify-content-center align-items-center"
:title="'Trade Navigation'" :title="'Trade Navigation'"
@click="sortNewestFirst = !sortNewestFirst" @click="sortDescendingOrder = !sortDescendingOrder"
>Trade Navigation {{ sortNewestFirst ? '&#8595;' : '&#8593;' }} >Trade Navigation {{ sortDescendingOrder ? '&#8595;' : '&#8593;' }}
</BListGroupItem> </BListGroupItem>
<BListGroupItem <BListGroupItem
v-for="(trade, i) in sortedTrades" v-for="(trade, i) in sortedTrades"