2026-05-31 11:51:52 +03:30
|
|
|
<template>
|
|
|
|
|
<a-form :model="form" ref="formRef" autocomplete="off">
|
|
|
|
|
<div class="space-y-3">
|
2026-07-06 19:06:57 +03:30
|
|
|
<a-form-item name="mobile" :rules="inputLenRules(11)">
|
|
|
|
|
<template #label>
|
|
|
|
|
<AdminLabelWithHelp label="شماره موبایل مشتری" :help="giftCardMobileHelp" />
|
|
|
|
|
</template>
|
2026-05-31 11:51:52 +03:30
|
|
|
<BasicInput v-model:value="form.mobile" type="tel" placeholder="09123456789" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
2026-07-06 19:06:57 +03:30
|
|
|
<a-form-item name="name" :rules="inputRules()">
|
|
|
|
|
<template #label>
|
|
|
|
|
<AdminLabelWithHelp label="نام مشتری" :help="giftCardNameHelp" />
|
|
|
|
|
</template>
|
2026-05-31 11:51:52 +03:30
|
|
|
<BasicInput v-model:value="form.name" placeholder="نام و نام خانوادگی مشتری" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
2026-07-06 19:06:57 +03:30
|
|
|
<a-form-item name="unit" :rules="inputRules()">
|
|
|
|
|
<template #label>
|
|
|
|
|
<AdminLabelWithHelp label="نوع کارت هدیه" :help="giftCardUnitHelp" />
|
|
|
|
|
</template>
|
2026-05-31 11:51:52 +03:30
|
|
|
<a-radio-group v-model:value="form.unit" button-style="solid">
|
|
|
|
|
<a-radio-button value="1">ریالی</a-radio-button>
|
2026-06-23 22:31:07 +03:30
|
|
|
<a-radio-button value="2">{{ metalLabel.goldWalletShort() }}</a-radio-button>
|
2026-05-31 11:51:52 +03:30
|
|
|
</a-radio-group>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
2026-07-06 19:06:57 +03:30
|
|
|
<a-form-item name="count" :rules="inputRulesNumber()">
|
|
|
|
|
<template #label>
|
|
|
|
|
<AdminLabelWithHelp label="تعداد کدها" :help="giftCardCountHelp" />
|
|
|
|
|
</template>
|
2026-05-31 11:51:52 +03:30
|
|
|
<BasicInput v-model:value="form.count" type="tel" placeholder="تعداد کدهای کارت هدیه" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
2026-07-06 19:06:57 +03:30
|
|
|
<a-form-item name="amount" :rules="inputRulesNumber()">
|
|
|
|
|
<template #label>
|
|
|
|
|
<AdminLabelWithHelp
|
|
|
|
|
:label="`مقدار ${form.unit === '2' ? '(گرم)' : '(ریال)'}`"
|
|
|
|
|
:help="giftCardAmountHelp"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
2026-05-31 11:51:52 +03:30
|
|
|
<BasicInput
|
|
|
|
|
v-model:value="form.amount"
|
|
|
|
|
:addon-before="form.unit === '2' ? 'گرم' : 'ریال'"
|
|
|
|
|
type="tel"
|
|
|
|
|
placeholder="مقدار کارت هدیه"
|
|
|
|
|
/>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
2026-07-06 19:06:57 +03:30
|
|
|
<a-form-item name="expiry_date" :rules="inputRules()">
|
|
|
|
|
<template #label>
|
|
|
|
|
<AdminLabelWithHelp label="تاریخ انقضا" :help="giftCardExpiryHelp" />
|
|
|
|
|
</template>
|
2026-05-31 11:51:52 +03:30
|
|
|
<BaseDatePicker v-model:value="form.expiry_date" format="YYYY-MM-DD" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
|
|
<a-form-item label="توضیحات" name="description" class="mb-0">
|
2026-07-06 18:30:21 +03:30
|
|
|
<BasicTextArea v-model:value="form.description" place-holder="توضیحات اختیاری — فقط برای یادداشت شما در پنل" />
|
2026-05-31 11:51:52 +03:30
|
|
|
</a-form-item>
|
|
|
|
|
</div>
|
|
|
|
|
</a-form>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
import type { FormInstance } from 'ant-design-vue'
|
|
|
|
|
import type { GiftcardInput } from '@/model/giftCard'
|
2026-07-06 19:06:57 +03:30
|
|
|
import AdminLabelWithHelp from '@/components/AdminLabelWithHelp.vue'
|
2026-07-06 18:30:21 +03:30
|
|
|
import {
|
|
|
|
|
giftCardAmountHelp,
|
|
|
|
|
giftCardCountHelp,
|
|
|
|
|
giftCardExpiryHelp,
|
|
|
|
|
giftCardMobileHelp,
|
|
|
|
|
giftCardNameHelp,
|
|
|
|
|
giftCardUnitHelp,
|
|
|
|
|
} from '@/utils/adminHelpCopy'
|
2026-05-31 11:51:52 +03:30
|
|
|
import { inputLenRules, inputRules, inputRulesNumber } from '@/utils/inputRules'
|
2026-06-23 22:31:07 +03:30
|
|
|
import { metalLabel } from '@/utils/adminMetalLabels'
|
2026-05-31 11:51:52 +03:30
|
|
|
|
|
|
|
|
defineProps<{
|
|
|
|
|
form: GiftcardInput
|
|
|
|
|
}>()
|
|
|
|
|
|
|
|
|
|
const formRef = ref<FormInstance>()
|
|
|
|
|
|
|
|
|
|
defineExpose({
|
|
|
|
|
validateFields: () => formRef.value?.validateFields(),
|
2026-07-06 18:30:21 +03:30
|
|
|
resetFields: () => formRef.value?.resetFields(),
|
2026-05-31 11:51:52 +03:30
|
|
|
})
|
|
|
|
|
</script>
|