From 7050d041c46fe40f9eadeb59283428391178e5c2 Mon Sep 17 00:00:00 2001 From: adonis Date: Sat, 13 Jun 2026 12:42:10 +0330 Subject: [PATCH] store 4 --- src/api/price.ts | 11 + src/model/priceSyncLog.ts | 23 ++ .../components/PriceSyncDetailModal.vue | 112 +++++++ .../menuPages/pricing/components/table.vue | 90 ++++-- .../pricing/hooks/storePriceColumns.tsx | 63 ++++ src/pages/menuPages/pricing/index.vue | 275 +++++------------- src/router/index.ts | 7 + 7 files changed, 348 insertions(+), 233 deletions(-) create mode 100644 src/model/priceSyncLog.ts create mode 100644 src/pages/menuPages/pricing/components/PriceSyncDetailModal.vue create mode 100644 src/pages/menuPages/pricing/hooks/storePriceColumns.tsx diff --git a/src/api/price.ts b/src/api/price.ts index feb27d0..a240771 100644 --- a/src/api/price.ts +++ b/src/api/price.ts @@ -4,11 +4,22 @@ import type { last, Price } from "@/model/price"; import type { TableInput } from '@core/type/baseTable' import type { MethodePrices } from "@/model/product"; +import type { PriceSyncLog } from '@/model/priceSyncLog' + export const createPrice = async (obj: Price) => await useAxios.post(`/admin/price`, obj) export const getPriceTable = async (params: TableInput) => await useAxios.post>('/admin/price/table', params) +export const getPriceSyncLogTable = async (params: TableInput) => + await useAxios.post>('/admin/price-sync-logs/table', params) + +export const getPriceSyncLogDetail = async (id: number) => + await useAxios.get(`/admin/price-sync-logs/${id}`) + +export const runPriceSync = async () => + await useAxios.post<{ message: string; data: PriceSyncLog | null }>('/admin/price-sync/run') + export const getLastPrice = async () => await useAxios.get(`/api/price/last`) export const methodePrices = async () => await useAxios.get('/admin/p') diff --git a/src/model/priceSyncLog.ts b/src/model/priceSyncLog.ts new file mode 100644 index 0000000..a8ae0eb --- /dev/null +++ b/src/model/priceSyncLog.ts @@ -0,0 +1,23 @@ +export interface PriceSyncLogItem { + id: number + log_id: number + product_id?: number | null + product_title?: string | null + reading_method?: string | null + source_name?: string | null + base_price: number + base_profit: number + offset_percent: number + stored_price: number + previous_price: number +} + +export interface PriceSyncLog { + id: number + source: string + source_url?: string | null + liquid_gold_price: number + products_updated: number + created_at: string + items?: PriceSyncLogItem[] +} diff --git a/src/pages/menuPages/pricing/components/PriceSyncDetailModal.vue b/src/pages/menuPages/pricing/components/PriceSyncDetailModal.vue new file mode 100644 index 0000000..55dd158 --- /dev/null +++ b/src/pages/menuPages/pricing/components/PriceSyncDetailModal.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/pages/menuPages/pricing/components/table.vue b/src/pages/menuPages/pricing/components/table.vue index 4d5ce50..10dd46a 100644 --- a/src/pages/menuPages/pricing/components/table.vue +++ b/src/pages/menuPages/pricing/components/table.vue @@ -1,8 +1,25 @@