From b58620f062b0d6083d60af68d5bdcc61e145b08a Mon Sep 17 00:00:00 2001 From: Mahdi Date: Tue, 7 Jul 2026 20:27:51 +0330 Subject: [PATCH] add header show SMSpanel --- components.d.ts | 4 +- src/api/smsPanel.ts | 24 ++ src/components/BasicMobileHeader.vue | 55 ++-- src/components/SmsCreditWidget.vue | 368 +++++++++++++++++++++++++ src/core/layouts/BasicHeader.vue | 6 +- src/pages/menuPages/smsPanel/index.vue | 86 ++++++ src/store/smsWalletStore.ts | 55 ++++ 7 files changed, 558 insertions(+), 40 deletions(-) create mode 100644 src/components/SmsCreditWidget.vue create mode 100644 src/store/smsWalletStore.ts diff --git a/components.d.ts b/components.d.ts index c5c9aa4..86af292 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,7 +10,6 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { _index: typeof import('./src/core/components/_sample/_index.vue')['default'] - AAlert: typeof import('ant-design-vue/es')['Alert'] AAvatar: typeof import('ant-design-vue/es')['Avatar'] ABadge: typeof import('ant-design-vue/es')['Badge'] AButton: typeof import('ant-design-vue/es')['Button'] @@ -42,7 +41,6 @@ declare module '@vue/runtime-core' { APagination: typeof import('ant-design-vue/es')['Pagination'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] APopover: typeof import('ant-design-vue/es')['Popover'] - ARadio: typeof import('ant-design-vue/es')['Radio'] ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARow: typeof import('ant-design-vue/es')['Row'] @@ -58,7 +56,6 @@ declare module '@vue/runtime-core' { ATextarea: typeof import('ant-design-vue/es')['Textarea'] ATimePicker: typeof import('ant-design-vue/es')['TimePicker'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] - AUpload: typeof import('ant-design-vue/es')['Upload'] BaseButton: typeof import('./src/core/components/BaseButton/index.ts')['default'] BaseCard: typeof import('./src/core/components/BaseCard/index.ts')['default'] BaseCollapse: typeof import('./src/components/BaseCollapse.vue')['default'] @@ -89,6 +86,7 @@ declare module '@vue/runtime-core' { PargarRetryModal: typeof import('./src/components/PargarRetryModal.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SmsCreditWidget: typeof import('./src/components/SmsCreditWidget.vue')['default'] TahesabRetryModal: typeof import('./src/components/TahesabRetryModal.vue')['default'] ThemeMenuSection: typeof import('./src/core/components/ThemeMenuSection.vue')['default'] ThemeToggle: typeof import('./src/core/components/ThemeToggle.vue')['default'] diff --git a/src/api/smsPanel.ts b/src/api/smsPanel.ts index 9e3a07e..8d6c5bf 100644 --- a/src/api/smsPanel.ts +++ b/src/api/smsPanel.ts @@ -1,6 +1,13 @@ import useAxios from '@core/utils/useAxios' import type { TableInput } from '@core/type/baseTable' +export type SmsDepositInfo = { + card_number: string + sheba: string + account_holder: string + note: string +} + export type SmsPanelOverview = { wallet: { balance: number @@ -9,12 +16,20 @@ export type SmsPanelOverview = { alert_days_sent: number last_alert_date: string | null } + deposit: SmsDepositInfo stats: { today: { parts: number; amount: number; messages: number } month: { parts: number; amount: number; messages: number } } } +export type SmsWalletSummary = { + enabled: boolean + balance: number + is_blocked: boolean + deposit: SmsDepositInfo +} + export type SmsPanelReport = { from_date: string to_date: string @@ -46,6 +61,15 @@ export type SmsPanelChargeReport = { export const getSmsPanelOverview = () => useAxios.get('/admin/sms-panel/overview') +export const getSmsWalletSummary = () => + useAxios.get('/admin/sms-wallet/summary') + +export const updateSmsDepositInfo = (payload: Partial) => + useAxios.put<{ message: string; deposit: SmsDepositInfo }>( + '/admin/sms-panel/deposit-info', + payload + ) + export const chargeSmsWallet = (payload: { amount: number; note?: string }) => useAxios.post<{ message: string; balance: number }>('/admin/sms-panel/charge', payload) diff --git a/src/components/BasicMobileHeader.vue b/src/components/BasicMobileHeader.vue index 106f98f..4fcdaad 100644 --- a/src/components/BasicMobileHeader.vue +++ b/src/components/BasicMobileHeader.vue @@ -1,10 +1,12 @@