From 7ff90b05d03b5c77818ed056a39499d3740b3e0f Mon Sep 17 00:00:00 2001 From: safavimohadeseh78 Date: Sat, 12 Sep 2026 10:12:21 +0330 Subject: [PATCH] changes of giftcard --- .../components/GiftCardEditorFormBody.vue | 23 ++++++++++++++++++- src/pages/menuPages/giftCards/index.vue | 4 ++-- src/utils/adminHelpCopy.ts | 8 +++---- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue b/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue index fa64588..ea7ff8a 100644 --- a/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue +++ b/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue @@ -47,7 +47,7 @@ /> - + @@ -75,6 +75,7 @@ import { } from '@/utils/adminHelpCopy' import { inputLenRules, inputRules, inputRulesNumber } from '@/utils/inputRules' import { metalLabel } from '@/utils/adminMetalLabels' +import dayjs from 'dayjs' defineProps<{ form: GiftcardInput @@ -82,6 +83,26 @@ defineProps<{ const formRef = ref() +const expiryDateRules = [ + ...inputRules(), + { + validator(_rule: unknown, value: unknown) { + if (value === undefined || value === null || value === '') { + return Promise.reject('پر کردن مورد بالا الزامی است') + } + const day = dayjs(value as string | number | Date) + if (!day.isValid()) { + return Promise.reject('تاریخ انقضا نامعتبر است') + } + if (day.startOf('day').isBefore(dayjs().startOf('day'))) { + return Promise.reject('تاریخ انقضا نمی‌تواند قبل از امروز باشد') + } + return Promise.resolve() + }, + trigger: ['change', 'blur'], + }, +] + defineExpose({ validateFields: () => formRef.value?.validateFields(), resetFields: () => formRef.value?.resetFields(), diff --git a/src/pages/menuPages/giftCards/index.vue b/src/pages/menuPages/giftCards/index.vue index a532789..1978ff7 100644 --- a/src/pages/menuPages/giftCards/index.vue +++ b/src/pages/menuPages/giftCards/index.vue @@ -358,9 +358,9 @@ async function ok() { addGiftCardVisible.value = false resetData() refreshTable() - } catch (e) { + } catch (e: any) { console.error(e) - message.error('خطا در ثبت کارت هدیه') + message.error(e?.response?.data?.message || 'خطا در ثبت کارت هدیه') } finally { loading.value = false } diff --git a/src/utils/adminHelpCopy.ts b/src/utils/adminHelpCopy.ts index fd7ca09..4ee9a8c 100644 --- a/src/utils/adminHelpCopy.ts +++ b/src/utils/adminHelpCopy.ts @@ -48,16 +48,16 @@ export const giftCardNameHelp = 'نام مشتری فقط برای شناسایی در پنل شماست؛ روی اپ مشتری تأثیر مستقیم ندارد.' export const giftCardUnitHelp = - 'ریالی = اعتبار کیف پول (ریال). طلا = وزن طلا به گرم که به کیف مشتری واریز می‌شود.' + 'ریالی = اعتبار کیف پول (ریال). مس = وزن مس که به کیف فلزی مشتری واریز می‌شود.' export const giftCardCountHelp = - 'چند کد یکتا ساخته شود. هر کد فقط یک‌بار قابل استفاده است.' + 'چند کد یکتا ساخته شود. مثلاً ۳ → سه کارت هدیه جدا، هر کدام یک کد و یک شارژ کامل با همان مبلغ.' export const giftCardAmountHelp = - 'مقدار هر کد: اگر ریالی انتخاب کردید مبلغ به ریال؛ اگر طلا انتخاب کردید وزن به گرم.' + 'مقدار هر کد: اگر ریالی انتخاب کردید مبلغ به ریال؛ اگر مس انتخاب کردید وزن به واحد معامله.' export const giftCardExpiryHelp = - 'بعد از این تاریخ کدها دیگر قابل استفاده نیستند. تاریخ را با دقت انتخاب کنید.' + 'بعد از این تاریخ کدها دیگر قابل استفاده نیستند. تاریخ انقضا نمی‌تواند قبل از امروز باشد.' export const discountNameHelp = 'نامی که در لیست پویش‌های تخفیف در پنل می‌بینید؛ فقط برای مدیریت داخلی است.'