factor out origins colors

This commit is contained in:
nquidox 2025-12-06 19:13:22 +03:00
parent 504f215c5a
commit d42e21bae7
3 changed files with 19 additions and 68 deletions

View file

@ -13,6 +13,7 @@ import {
} from 'chart.js' } from 'chart.js'
import { Line } from 'vue-chartjs' import { Line } from 'vue-chartjs'
import 'chartjs-adapter-date-fns' import 'chartjs-adapter-date-fns'
import { originColors } from '@/services/colors.js'
ChartJS.register( ChartJS.register(
Title, Title,
@ -33,11 +34,6 @@ const props = defineProps({
}, },
}) })
const originColors = {
surugaya: '#2d3081',
mandarake: '#924646',
}
const chartData = ref({ const chartData = ref({
datasets: [], datasets: [],
}) })

4
src/services/colors.js Normal file
View file

@ -0,0 +1,4 @@
export const originColors = {
surugaya: '#2d3081',
mandarake: '#924646',
};

View file

@ -1,69 +1,20 @@
<script setup> <script setup>
import { onMounted, ref } from 'vue' import ScrollToTopButton from '@/components/ScrollToTopButton.vue'
import { useZeroPrices } from '@/api/zeroPrices.js' import TargetZeroesTab from '@/views/ZeroPricesView/TargetZeroesTab.vue'
import ZeroPriceCard from '@/views/ZeroPricesView/ZeroPriceCard.vue' import PeriodSelectTab from '@/views/ZeroPricesView/PeriodSelectTab.vue'
import ZeroPricesToolbar from '@/views/ZeroPricesView/ZeroPricesToolbar.vue'
const { getZeroPrices } = useZeroPrices()
const zeroPrices = ref([])
const toDelete = ref([])
const handleToggle = ({ id, merch_uuid, checked }) => {
if (checked) {
toDelete.value.push({ id, merch_uuid });
} else {
toDelete.value = toDelete.value.filter(item => item.id !== id);
}
}
const handleSelectAll = () => {
toDelete.value = zeroPrices.value.map(item => ({
id: item.id,
merch_uuid: item.merch_uuid
}))
}
const fetchZeroPrices = async () => {
try {
const response = await getZeroPrices()
zeroPrices.value = Array.isArray(response.data) ? response.data : []
} catch (error) {
console.error(error)
}
}
const handleDeleted = () => {
toDelete.value = []
fetchZeroPrices()
}
onMounted(() => {
fetchZeroPrices()
})
</script> </script>
<template> <template>
<div v-if="zeroPrices.length === 0"> <n-tabs type="line" animated>
<n-h2 class="text-center">Zero prices</n-h2> <n-tab-pane name="Target zeroes" tab="Target zeroes">
<n-h3 class="text-center">No data</n-h3> <TargetZeroesTab />
</div> </n-tab-pane>
<div v-else> <n-tab-pane name="Period select" tab="Period select">
<div class="sticky-search-container"> <PeriodSelectTab />
<ZeroPricesToolbar </n-tab-pane>
:selected="toDelete" </n-tabs>
@deleted="handleDeleted" <ScrollToTopButton />
@selectAll="handleSelectAll"
/>
</div>
<div v-for="item in zeroPrices" :key="item.created_at">
<ZeroPriceCard
:zero-price="item"
@toggle="handleToggle"
:checked="toDelete.some(t => t.id === item.id)"
/>
</div>
</div>
</template> </template>
<style scoped></style> <style scoped>
</style>