added function for trigger in admin

This commit is contained in:
2026-07-06 19:06:57 +03:30
parent c380fc89d3
commit 6756641efd
14 changed files with 1072 additions and 442 deletions
@@ -1,46 +1,57 @@
<template>
<a-form :model="form" ref="formRef" autocomplete="off">
<div class="space-y-3">
<a-form-item label="شماره موبایل مشتری" name="mobile" :rules="inputLenRules(11)">
<a-form-item name="mobile" :rules="inputLenRules(11)">
<template #label>
<AdminLabelWithHelp label="شماره موبایل مشتری" :help="giftCardMobileHelp" />
</template>
<BasicInput v-model:value="form.mobile" type="tel" placeholder="09123456789" />
<AdminFieldHelp :text="giftCardMobileHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="نام مشتری" name="name" :rules="inputRules()">
<a-form-item name="name" :rules="inputRules()">
<template #label>
<AdminLabelWithHelp label="نام مشتری" :help="giftCardNameHelp" />
</template>
<BasicInput v-model:value="form.name" placeholder="نام و نام خانوادگی مشتری" />
<AdminFieldHelp :text="giftCardNameHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="نوع کارت هدیه" name="unit" :rules="inputRules()">
<a-form-item name="unit" :rules="inputRules()">
<template #label>
<AdminLabelWithHelp label="نوع کارت هدیه" :help="giftCardUnitHelp" />
</template>
<a-radio-group v-model:value="form.unit" button-style="solid">
<a-radio-button value="1">ریالی</a-radio-button>
<a-radio-button value="2">{{ metalLabel.goldWalletShort() }}</a-radio-button>
</a-radio-group>
<AdminFieldHelp :text="giftCardUnitHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="تعداد کدها" name="count" :rules="inputRulesNumber()">
<a-form-item name="count" :rules="inputRulesNumber()">
<template #label>
<AdminLabelWithHelp label="تعداد کدها" :help="giftCardCountHelp" />
</template>
<BasicInput v-model:value="form.count" type="tel" placeholder="تعداد کدهای کارت هدیه" />
<AdminFieldHelp :text="giftCardCountHelp" root-class="mt-1" />
</a-form-item>
<a-form-item
:label="`مقدار ${form.unit === '2' ? '(گرم)' : '(ریال)'}`"
name="amount"
:rules="inputRulesNumber()"
>
<a-form-item name="amount" :rules="inputRulesNumber()">
<template #label>
<AdminLabelWithHelp
:label="`مقدار ${form.unit === '2' ? '(گرم)' : '(ریال)'}`"
:help="giftCardAmountHelp"
/>
</template>
<BasicInput
v-model:value="form.amount"
:addon-before="form.unit === '2' ? 'گرم' : 'ریال'"
type="tel"
placeholder="مقدار کارت هدیه"
/>
<AdminFieldHelp :text="giftCardAmountHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="تاریخ انقضا" name="expiry_date" :rules="inputRules()">
<a-form-item name="expiry_date" :rules="inputRules()">
<template #label>
<AdminLabelWithHelp label="تاریخ انقضا" :help="giftCardExpiryHelp" />
</template>
<BaseDatePicker v-model:value="form.expiry_date" format="YYYY-MM-DD" />
<AdminFieldHelp :text="giftCardExpiryHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="توضیحات" name="description" class="mb-0">
@@ -53,7 +64,7 @@
<script setup lang="ts">
import type { FormInstance } from 'ant-design-vue'
import type { GiftcardInput } from '@/model/giftCard'
import AdminFieldHelp from '@/components/AdminFieldHelp.vue'
import AdminLabelWithHelp from '@/components/AdminLabelWithHelp.vue'
import {
giftCardAmountHelp,
giftCardCountHelp,
+17 -9
View File
@@ -34,21 +34,29 @@
>
<div v-if="isMobile" class="mb-3 text-base font-700">{{ discountSheetTitle }}</div>
<a-form :model="discountForm" ref="discountFormRef" autocomplete="off" layout="vertical">
<a-form-item label="نام پویش" name="name" :rules="inputRules()">
<a-form-item name="name" :rules="inputRules()">
<template #label>
<AdminLabelWithHelp label="نام پویش" :help="discountNameHelp" />
</template>
<BasicInput v-model:value="discountForm.name" placeholder="نام پویش" />
<AdminFieldHelp :text="discountNameHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="درصد تخفیف" name="amount" :rules="inputRulesNumber()">
<a-form-item name="amount" :rules="inputRulesNumber()">
<template #label>
<AdminLabelWithHelp label="درصد تخفیف" :help="discountPercentHelp" />
</template>
<BasicInput v-model:value="discountForm.amount" type="tel" placeholder="مثلاً 10" addon-before="%" />
<AdminFieldHelp :text="discountPercentHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="تعداد کدها" name="count" :rules="inputRulesNumber()">
<a-form-item name="count" :rules="inputRulesNumber()">
<template #label>
<AdminLabelWithHelp label="تعداد کدها" :help="discountCountHelp" />
</template>
<BasicInput v-model:value="discountForm.count" type="tel" />
<AdminFieldHelp :text="discountCountHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="تاریخ انقضا" name="expiry_date" :rules="inputRules()">
<a-form-item name="expiry_date" :rules="inputRules()">
<template #label>
<AdminLabelWithHelp label="تاریخ انقضا" :help="discountExpiryHelp" />
</template>
<BaseDatePicker v-model:value="discountForm.expiry_date" format="YYYY-MM-DD" />
<AdminFieldHelp :text="discountExpiryHelp" root-class="mt-1" />
</a-form-item>
<a-form-item label="توضیحات" name="description">
<BasicTextArea v-model:value="discountForm.description" place-holder="توضیحات اختیاری — فقط برای یادداشت شما" />
@@ -115,7 +123,7 @@ import { isStoreApp } from '@/utils/config'
import { inputRules, inputRulesNumber } from '@/utils/inputRules'
import BasicInput from '@/components/BasicInput.vue'
import BasicTextArea from '@/components/BasicTextArea.vue'
import AdminFieldHelp from '@/components/AdminFieldHelp.vue'
import AdminLabelWithHelp from '@/components/AdminLabelWithHelp.vue'
import {
discountCountHelp,
discountExpiryHelp,