From cce37d33a34e92e4b6091441006c49c59e7fbfb0 Mon Sep 17 00:00:00 2001 From: nquidox Date: Sat, 27 Sep 2025 19:42:35 +0300 Subject: [PATCH] get distinct prices method --- src/api/charts.js | 11 +++++++++ src/views/DetailsView.vue | 48 +++++++++++++++++++++++++++++++++++---- 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/api/charts.js b/src/api/charts.js index 7e537e0..960677c 100644 --- a/src/api/charts.js +++ b/src/api/charts.js @@ -11,7 +11,18 @@ export const useChartsApi = () => { } } + const getDistinctPrices = async (merch_uuid, days) => { + console.log(days) + const response = await apiClient.get(`/prices/${merch_uuid}`, { days: days }) + if (response.status === 200) { + return response + } else { + console.log('Add merch error: ', response) + } + } + return { getChartsPrices, + getDistinctPrices, } } diff --git a/src/views/DetailsView.vue b/src/views/DetailsView.vue index 20242d4..9ccbb19 100644 --- a/src/views/DetailsView.vue +++ b/src/views/DetailsView.vue @@ -2,8 +2,12 @@ import { useMerchApi } from '@/api/merch.js' import { onMounted, ref } from 'vue' import router from '@/router/index.js' +import PeriodSelector from '@/components/PeriodSelector.vue' +import ChartBlock from '@/components/ChartBlock.vue' +import { useChartsApi } from '@/api/charts.js' const { getMerchDetails, deleteMerch } = useMerchApi() +const { getDistinctPrices } = useChartsApi() const props = defineProps({ merch_uuid: { @@ -31,10 +35,6 @@ const fetchMerch = async () => { } } -onMounted(() => { - fetchMerch() -}) - const showModal = ref(false) const onDelete = () => { showModal.value = true @@ -51,6 +51,39 @@ const confirmDelete = async () => { showModal.value = false router.push({ name: 'collection' }) } + +const prices = ref(null) +const loading2 = ref(true) +const error2 = ref(null) + +const fetchPrices = async (days = 7) => { + loading2.value = true + error2.value = null + try { + const response = await getDistinctPrices(props.merch_uuid, days) + + if (response.status === 400) { + router.push({ name: 'collection' }) + return + } + + prices.value = response.data + } catch (err) { + error2.value = err.message || 'Fetch data error' + } finally { + loading2.value = false + } +} + +function handleSelectDays(days) { + fetchPrices(days) +} + + +onMounted(() => { + fetchMerch() + fetchPrices(7) +})