From c1993d27b28600dbbeedea76946a52b014c7ade0 Mon Sep 17 00:00:00 2001 From: Sirttas Date: Mon, 22 Jun 2026 17:31:49 +0200 Subject: [PATCH] trends filter --- src/market/history/TrendFilter.vue | 53 +++++++++++++++++++++++++++++ src/market/history/index.ts | 1 + src/market/scan/ScanResultTable.vue | 11 +++++- 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/market/history/TrendFilter.vue diff --git a/src/market/history/TrendFilter.vue b/src/market/history/TrendFilter.vue new file mode 100644 index 0000000..e5a492f --- /dev/null +++ b/src/market/history/TrendFilter.vue @@ -0,0 +1,53 @@ + + + + + \ No newline at end of file diff --git a/src/market/history/index.ts b/src/market/history/index.ts index 327f707..657e45d 100644 --- a/src/market/history/index.ts +++ b/src/market/history/index.ts @@ -1,3 +1,4 @@ export * from './history.ts'; export { default as MarketTrendIcon } from './MarketTrendIcon.vue'; +export { default as TrendFilter } from './TrendFilter.vue'; diff --git a/src/market/scan/ScanResultTable.vue b/src/market/scan/ScanResultTable.vue index 5f77303..99cdd47 100644 --- a/src/market/scan/ScanResultTable.vue +++ b/src/market/scan/ScanResultTable.vue @@ -2,7 +2,7 @@ import {SliderCheckbox} from '@/components'; import {SortableHeader, useSort, VirtualScrollTable} from '@/components/table'; import {formatIsk, percentFormater} from "@/formaters"; -import {MarketTrend, MarketTrendIcon, MarketType, MarketTypeLabel} from "@/market"; +import {MarketTrend, MarketTrendIcon, MarketTrends, MarketType, MarketTypeLabel, TrendFilter} from "@/market"; import {ShoppingCartIcon} from '@heroicons/vue/24/outline'; import {useStorage} from '@vueuse/core'; import {computed, ref} from 'vue'; @@ -54,6 +54,11 @@ const acquiredTypesStore = useAcquiredTypesStore(); const threshold = useStorage('market-scan-threshold', 10); const filter = ref(""); const onlyCheap = ref(false); +const trackedTrends = useStorage('market-scan-trends', [ + MarketTrends.Up, + MarketTrends.Flat, + MarketTrends.Down, +]); const columnsToIgnore = computed(() => { const ic = typeof props.ignoredColums === 'string' ? [props.ignoredColums] : props.ignoredColums; @@ -64,6 +69,7 @@ const columnsToIgnore = computed(() => { }); const { sortedArray, headerProps, showColumn } = useSort(computed(() => props.items .filter(r => r.type.name.toLowerCase().includes(filter.value.toLowerCase())) + .filter(r => trackedTrends.value.includes(r.trend)) .map(r => { const acquisitions = columnsToIgnore.value.includes('acquisitions') ? 0 : acquiredTypesStore.acquiredTypes .filter(t => t.type === r.type.id) @@ -113,6 +119,9 @@ const getLineColor = (result: Result) => {
Show only cheap items
+
+ +
Filter: