line colors

This commit is contained in:
2023-09-18 11:00:51 +02:00
parent 20defc5b0f
commit 3ac39dcd45
3 changed files with 45 additions and 9 deletions

View File

@@ -8,6 +8,18 @@ import { computed, ref } from 'vue';
import { MarketResult, getHistoryQuartils } from ".";
import { MarketType, MarketTypeLabel } from "./type";
type Result = {
type: MarketType;
typeID: number;
name: string;
buy: number;
sell: number;
q1: number;
mmedian: number;
q3: number;
percent: number;
}
interface Props {
items?: MarketResult[];
}
@@ -24,7 +36,7 @@ defineEmits<Emits>();
const days = useStorage('market-days', 365);
const filter = ref("");
const { sortedArray, headerProps } = useSort(computed(() => props.items
const { sortedArray, headerProps } = useSort<Result>(computed(() => props.items
.filter(r => r.type.name.toLowerCase().includes(filter.value.toLowerCase()))
.map(r => {
const quartils = getHistoryQuartils(r.history, days.value);
@@ -44,6 +56,16 @@ const { sortedArray, headerProps } = useSort(computed(() => props.items
defaultSortKey: 'name',
defaultSortDirection: 'asc'
})
const getLineColor = (result: Result) => {
if (result.percent < 1.1) {
return 'line-red';
} else if (result.sell <= result.q1) {
return 'line-blue';
} else if (result.buy <= result.q1) {
return 'line-green';
}
return '';
}
</script>
<template>
@@ -76,7 +98,7 @@ const { sortedArray, headerProps } = useSort(computed(() => props.items
</tr>
</thead>
<tbody>
<tr v-for="r in sortedArray" :key="r.typeID" class="cursor-pointer" :class="{'bg-emerald-500': r.percent >= 1.1 && r.buy <= r.q1, 'bg-amber-900': r.percent < 1.1 }" @click="copyToClipboard(r.name)">
<tr v-for="r in sortedArray" :key="r.typeID" class="cursor-pointer" :class="getLineColor(r)" @click="copyToClipboard(r.name)">
<td>
<MarketTypeLabel :id="r.typeID" :name="r.name" />
</td>

View File

@@ -49,7 +49,7 @@ const { sortedArray, headerProps } = useSort(computed(() => props.result.map(r =
</tr>
</thead>
<tbody>
<tr v-for="r in sortedArray" :key="r.typeID" class="cursor-pointer" :class="{'bg-emerald-500': (useSellOrder ? r.sell_ratio : r.buy_ratio) >= threshold / 100 }" @click="copyToClipboard(r.name)">
<tr v-for="r in sortedArray" :key="r.typeID" class="cursor-pointer" :class="{'line-green': (useSellOrder ? r.sell_ratio : r.buy_ratio) >= threshold / 100 }" @click="copyToClipboard(r.name)">
<td>
<MarketTypeLabel :id="r.typeID" :name="r.name" />
</td>

View File

@@ -23,12 +23,26 @@
table {
@apply table-auto border-collapse border-slate-500 w-full;
}
th {
@apply border bg-slate-600 px-1;
}
td {
@apply border px-1;
th {
@apply border bg-slate-600 px-1;
}
td {
@apply border px-1;
}
tr {
@apply hover:bg-slate-700;
&.line-red {
@apply bg-amber-900 hover:bg-amber-800;
}
&.line-blue {
@apply bg-sky-600 hover:bg-sky-500;
}
&.line-green {
@apply bg-emerald-500 hover:bg-emerald-400;
}
}
}
::-webkit-scrollbar {