add header show SMSpanel
This commit is contained in:
@@ -323,6 +323,50 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sms-panel-subcard sms-panel-subcard--sky rounded-xl p-3 shadow-sm md:p-5">
|
||||
<div class="mb-3 flex items-center gap-2 md:mb-4">
|
||||
<span class="sms-stat-icon sms-stat-icon--sky flex h-8 w-8 items-center justify-center rounded-lg">
|
||||
<Icon icon="vuesax-linear:card" Size="18px" />
|
||||
</span>
|
||||
<div>
|
||||
<p class="sms-subcard-title text-sm font-semibold">اطلاعات واریز شارژ پیامک</p>
|
||||
<p class="sms-panel-subtitle hidden text-xs md:block">
|
||||
برای همه مشتریها یکسان است و در پاپآپ «شارژ» هدر نمایش داده میشود.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-3 md:grid-cols-2 md:gap-4">
|
||||
<a-form-item label="شماره کارت" class="sms-compact-field !mb-0">
|
||||
<BasicInput v-model:value="depositForm.card_number" place-holder="شماره کارت" />
|
||||
</a-form-item>
|
||||
<a-form-item label="شماره شبا" class="sms-compact-field !mb-0">
|
||||
<BasicInput v-model:value="depositForm.sheba" place-holder="IR..." />
|
||||
</a-form-item>
|
||||
<a-form-item label="نام صاحب حساب" class="sms-compact-field !mb-0 md:col-span-2">
|
||||
<BasicInput v-model:value="depositForm.account_holder" place-holder="نام صاحب حساب" />
|
||||
</a-form-item>
|
||||
<a-form-item label="متن راهنما" class="sms-compact-field !mb-0 md:col-span-2">
|
||||
<a-textarea
|
||||
v-model:value="depositForm.note"
|
||||
:auto-size="{ minRows: 2, maxRows: 5 }"
|
||||
placeholder="متن راهنمای واریز"
|
||||
/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div class="mt-3 flex justify-end md:mt-4">
|
||||
<BaseButton
|
||||
type="primary"
|
||||
size="large"
|
||||
class="!w-auto shrink-0 whitespace-nowrap"
|
||||
:loading="depositLoading"
|
||||
@click="submitDepositInfo"
|
||||
>
|
||||
ذخیره اطلاعات واریز
|
||||
</BaseButton>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -592,14 +636,18 @@ import {
|
||||
getSmsPanelOverview,
|
||||
getSmsPanelReport,
|
||||
updateSmsBlock,
|
||||
updateSmsDepositInfo,
|
||||
updateSmsPrice,
|
||||
type SmsPanelChargeReport,
|
||||
type SmsPanelOverview,
|
||||
type SmsPanelReport
|
||||
} from '@/api/smsPanel'
|
||||
import { useSmsWalletStore } from '@/store/smsWalletStore'
|
||||
import { toJalaliNoTime } from '@core/utils/useDataTime'
|
||||
import { message } from 'ant-design-vue'
|
||||
|
||||
const smsWalletStore = useSmsWalletStore()
|
||||
|
||||
const pageLoading = ref(true)
|
||||
const actionLoading = ref(false)
|
||||
const blockLoading = ref(false)
|
||||
@@ -615,6 +663,14 @@ const chargeNote = ref('')
|
||||
const pricePerPart = ref<number | null>(null)
|
||||
const chargeModalVisible = ref(false)
|
||||
|
||||
const depositLoading = ref(false)
|
||||
const depositForm = reactive({
|
||||
card_number: '',
|
||||
sheba: '',
|
||||
account_holder: '',
|
||||
note: ''
|
||||
})
|
||||
|
||||
const reportFrom = ref('')
|
||||
const reportTo = ref('')
|
||||
const chargeReportFrom = ref('')
|
||||
@@ -690,6 +746,12 @@ async function loadOverview() {
|
||||
overview.value = await getSmsPanelOverview()
|
||||
pricePerPart.value = overview.value.wallet.price_per_part || null
|
||||
isBlocked.value = overview.value.wallet.is_blocked
|
||||
if (overview.value.deposit) {
|
||||
depositForm.card_number = overview.value.deposit.card_number ?? ''
|
||||
depositForm.sheba = overview.value.deposit.sheba ?? ''
|
||||
depositForm.account_holder = overview.value.deposit.account_holder ?? ''
|
||||
depositForm.note = overview.value.deposit.note ?? ''
|
||||
}
|
||||
} catch {
|
||||
message.error('خطا در بارگذاری پنل پیامک')
|
||||
} finally {
|
||||
@@ -732,6 +794,30 @@ async function submitCharge() {
|
||||
}
|
||||
}
|
||||
|
||||
async function submitDepositInfo() {
|
||||
depositLoading.value = true
|
||||
try {
|
||||
const res = await updateSmsDepositInfo({
|
||||
card_number: depositForm.card_number.trim(),
|
||||
sheba: depositForm.sheba.trim(),
|
||||
account_holder: depositForm.account_holder.trim(),
|
||||
note: depositForm.note.trim()
|
||||
})
|
||||
message.success(res.message || 'اطلاعات واریز ذخیره شد')
|
||||
if (res.deposit) {
|
||||
depositForm.card_number = res.deposit.card_number ?? ''
|
||||
depositForm.sheba = res.deposit.sheba ?? ''
|
||||
depositForm.account_holder = res.deposit.account_holder ?? ''
|
||||
depositForm.note = res.deposit.note ?? ''
|
||||
}
|
||||
await smsWalletStore.refresh()
|
||||
} catch (e: any) {
|
||||
message.error(e?.response?.data?.message || 'خطا در ذخیره اطلاعات واریز')
|
||||
} finally {
|
||||
depositLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function submitPrice() {
|
||||
const price = Number(pricePerPart.value ?? 0)
|
||||
if (Number.isNaN(price) || price < 0) {
|
||||
|
||||
Reference in New Issue
Block a user