Files
boursecu_admin/src/pages/menuPages/giftCards/components/GiftCardEditorFormBody.vue
T

79 lines
3.0 KiB
Vue
Raw Normal View History

2026-05-31 11:51:52 +03:30
<template>
<a-form :model="form" ref="formRef" autocomplete="off">
<div class="space-y-3">
<a-form-item label="شماره موبایل مشتری" name="mobile" :rules="inputLenRules(11)">
<BasicInput v-model:value="form.mobile" type="tel" placeholder="09123456789" />
2026-07-06 18:30:21 +03:30
<AdminFieldHelp :text="giftCardMobileHelp" root-class="mt-1" />
2026-05-31 11:51:52 +03:30
</a-form-item>
<a-form-item label="نام مشتری" name="name" :rules="inputRules()">
<BasicInput v-model:value="form.name" placeholder="نام و نام خانوادگی مشتری" />
2026-07-06 18:30:21 +03:30
<AdminFieldHelp :text="giftCardNameHelp" root-class="mt-1" />
2026-05-31 11:51:52 +03:30
</a-form-item>
<a-form-item label="نوع کارت هدیه" name="unit" :rules="inputRules()">
<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>
2026-07-06 18:30:21 +03:30
<AdminFieldHelp :text="giftCardUnitHelp" root-class="mt-1" />
2026-05-31 11:51:52 +03:30
</a-form-item>
<a-form-item label="تعداد کدها" name="count" :rules="inputRulesNumber()">
<BasicInput v-model:value="form.count" type="tel" placeholder="تعداد کدهای کارت هدیه" />
2026-07-06 18:30:21 +03:30
<AdminFieldHelp :text="giftCardCountHelp" root-class="mt-1" />
2026-05-31 11:51:52 +03:30
</a-form-item>
<a-form-item
:label="`مقدار ${form.unit === '2' ? '(گرم)' : '(ریال)'}`"
name="amount"
:rules="inputRulesNumber()"
>
<BasicInput
v-model:value="form.amount"
:addon-before="form.unit === '2' ? 'گرم' : 'ریال'"
type="tel"
placeholder="مقدار کارت هدیه"
/>
2026-07-06 18:30:21 +03:30
<AdminFieldHelp :text="giftCardAmountHelp" root-class="mt-1" />
2026-05-31 11:51:52 +03:30
</a-form-item>
<a-form-item label="تاریخ انقضا" name="expiry_date" :rules="inputRules()">
<BaseDatePicker v-model:value="form.expiry_date" format="YYYY-MM-DD" />
2026-07-06 18:30:21 +03:30
<AdminFieldHelp :text="giftCardExpiryHelp" root-class="mt-1" />
2026-05-31 11:51:52 +03:30
</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 18:30:21 +03:30
import AdminFieldHelp from '@/components/AdminFieldHelp.vue'
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>