From 6756641efd76f16fa6a749b72dfd2f7ae05f6477 Mon Sep 17 00:00:00 2001 From: adonis Date: Mon, 6 Jul 2026 19:06:57 +0330 Subject: [PATCH] added function for trigger in admin --- components.d.ts | 5 + src/api/priceTriggers.ts | 20 +- src/components/AdminFieldHelp.vue | 45 +- src/components/AdminLabelWithHelp.vue | 31 + .../banners/components/BannerImageUpload.vue | 227 ++++++++ src/pages/menuPages/banners/index.vue | 540 ++++++++++++++---- .../components/GiftCardEditorFormBody.vue | 45 +- src/pages/menuPages/giftCards/index.vue | 26 +- .../components/PriceTriggerEditorFormBody.vue | 65 +++ .../priceTriggers/components/table.vue | 125 ++-- .../hooks/priceTriggersColumns.tsx | 23 +- src/pages/menuPages/priceTriggers/index.vue | 343 +++++------ .../menuPages/pricing/components/table.vue | 12 +- src/utils/adminHelpCopy.ts | 7 +- 14 files changed, 1072 insertions(+), 442 deletions(-) create mode 100644 src/components/AdminLabelWithHelp.vue create mode 100644 src/pages/menuPages/banners/components/BannerImageUpload.vue create mode 100644 src/pages/menuPages/priceTriggers/components/PriceTriggerEditorFormBody.vue diff --git a/components.d.ts b/components.d.ts index 6ce7de7..c5c9aa4 100644 --- a/components.d.ts +++ b/components.d.ts @@ -21,6 +21,8 @@ declare module '@vue/runtime-core' { ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADivider: typeof import('ant-design-vue/es')['Divider'] + AdminFieldHelp: typeof import('./src/components/AdminFieldHelp.vue')['default'] + AdminLabelWithHelp: typeof import('./src/components/AdminLabelWithHelp.vue')['default'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] AEmpty: typeof import('ant-design-vue/es')['Empty'] @@ -50,6 +52,9 @@ declare module '@vue/runtime-core' { ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] + ATabPane: typeof import('ant-design-vue/es')['TabPane'] + ATabs: typeof import('ant-design-vue/es')['Tabs'] + ATag: typeof import('ant-design-vue/es')['Tag'] ATextarea: typeof import('ant-design-vue/es')['Textarea'] ATimePicker: typeof import('ant-design-vue/es')['TimePicker'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] diff --git a/src/api/priceTriggers.ts b/src/api/priceTriggers.ts index 7f5b8af..8c19556 100644 --- a/src/api/priceTriggers.ts +++ b/src/api/priceTriggers.ts @@ -1,6 +1,18 @@ -import type {TableInput} from "@core/type/baseTable"; -import useAxios from "@core/utils/useAxios"; -import type {PriceTriggers} from "@/model/priceTriggers"; +import type { TableInput } from '@core/type/baseTable' +import useAxios from '@core/utils/useAxios' +import type { PriceTriggers } from '@/model/priceTriggers' export const getPriceTriggersTable = async (params: TableInput) => - await useAxios.post>('/admin/price_triggers/table', params) \ No newline at end of file + await useAxios.post>('/admin/price_triggers/table', params) + +export const createPriceTrigger = async (payload: Partial) => + await useAxios.post('/admin/price_triggers', payload) + +export const updatePriceTrigger = async (id: number, payload: Partial) => + await useAxios.put(`/admin/price_triggers/${id}`, payload) + +export const togglePriceTriggerActive = async (id: number) => + await useAxios.put<{ is_active: boolean }>(`/admin/price_triggers/${id}/toggle`) + +export const deletePriceTrigger = async (id: number) => + await useAxios.delete(`/admin/price_triggers/${id}`) diff --git a/src/components/AdminFieldHelp.vue b/src/components/AdminFieldHelp.vue index 691fdec..acc2068 100644 --- a/src/components/AdminFieldHelp.vue +++ b/src/components/AdminFieldHelp.vue @@ -1,25 +1,60 @@ + + diff --git a/src/components/AdminLabelWithHelp.vue b/src/components/AdminLabelWithHelp.vue new file mode 100644 index 0000000..3ad5b65 --- /dev/null +++ b/src/components/AdminLabelWithHelp.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/pages/menuPages/banners/components/BannerImageUpload.vue b/src/pages/menuPages/banners/components/BannerImageUpload.vue new file mode 100644 index 0000000..a194664 --- /dev/null +++ b/src/pages/menuPages/banners/components/BannerImageUpload.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/src/pages/menuPages/banners/index.vue b/src/pages/menuPages/banners/index.vue index 91fe980..a70916e 100644 --- a/src/pages/menuPages/banners/index.vue +++ b/src/pages/menuPages/banners/index.vue @@ -1,104 +1,126 @@ - diff --git a/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue b/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue index 506d7ea..fa64588 100644 --- a/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue +++ b/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue @@ -1,46 +1,57 @@