line colors
This commit is contained in:
@@ -8,6 +8,18 @@ import { computed, ref } from 'vue';
|
|||||||
import { MarketResult, getHistoryQuartils } from ".";
|
import { MarketResult, getHistoryQuartils } from ".";
|
||||||
import { MarketType, MarketTypeLabel } from "./type";
|
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 {
|
interface Props {
|
||||||
items?: MarketResult[];
|
items?: MarketResult[];
|
||||||
}
|
}
|
||||||
@@ -24,7 +36,7 @@ defineEmits<Emits>();
|
|||||||
|
|
||||||
const days = useStorage('market-days', 365);
|
const days = useStorage('market-days', 365);
|
||||||
const filter = ref("");
|
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()))
|
.filter(r => r.type.name.toLowerCase().includes(filter.value.toLowerCase()))
|
||||||
.map(r => {
|
.map(r => {
|
||||||
const quartils = getHistoryQuartils(r.history, days.value);
|
const quartils = getHistoryQuartils(r.history, days.value);
|
||||||
@@ -44,6 +56,16 @@ const { sortedArray, headerProps } = useSort(computed(() => props.items
|
|||||||
defaultSortKey: 'name',
|
defaultSortKey: 'name',
|
||||||
defaultSortDirection: 'asc'
|
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>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -76,7 +98,7 @@ const { sortedArray, headerProps } = useSort(computed(() => props.items
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<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>
|
<td>
|
||||||
<MarketTypeLabel :id="r.typeID" :name="r.name" />
|
<MarketTypeLabel :id="r.typeID" :name="r.name" />
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ const { sortedArray, headerProps } = useSort(computed(() => props.result.map(r =
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<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>
|
<td>
|
||||||
<MarketTypeLabel :id="r.typeID" :name="r.name" />
|
<MarketTypeLabel :id="r.typeID" :name="r.name" />
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -23,12 +23,26 @@
|
|||||||
|
|
||||||
table {
|
table {
|
||||||
@apply table-auto border-collapse border-slate-500 w-full;
|
@apply table-auto border-collapse border-slate-500 w-full;
|
||||||
}
|
|
||||||
th {
|
th {
|
||||||
@apply border bg-slate-600 px-1;
|
@apply border bg-slate-600 px-1;
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
@apply border px-1;
|
@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 {
|
::-webkit-scrollbar {
|
||||||
|
|||||||
Reference in New Issue
Block a user