Merge remote-tracking branch 'getorigin/modular' into modular
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
import useAxios from '@/utils/useAxios'
|
import useAxios from '@/utils/useAxios'
|
||||||
import type { Card, Wallet } from '@/models/wallet'
|
import type { Card, Wallet, WithdrawConfirm } from '@/models/wallet'
|
||||||
import type {Transaction} from '@/models/transaction'
|
import type {Transaction} from '@/models/transaction'
|
||||||
import type {Address} from "@/models/address";
|
import type {Address} from "@/models/address";
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,14 @@ export interface Test {
|
|||||||
percentWallet: number
|
percentWallet: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface WithdrawConfirm {
|
||||||
|
account_number?: string
|
||||||
|
bank_name?: string
|
||||||
|
birth_date?: string
|
||||||
|
cart_number?: string
|
||||||
|
shaba_number?: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface Card {
|
export interface Card {
|
||||||
id?: number
|
id?: number
|
||||||
birth_date: number
|
birth_date: number
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<div class="px-5 pt-26 pb-2">
|
<div class="px-5 pt-26 pb-2">
|
||||||
<a-form :model="form" class="!mt-5" name="basic" @finish="ok()">
|
<a-form :model="form" class="!mt-5" name="basic" @finish="ok()">
|
||||||
<div class="border-gray-200 border-1 rounded-xl p-5 trans h-40 relative">
|
<div class="border-gray-200 border-1 rounded-xl p-5 trans h-40 relative">
|
||||||
<bg_main/>
|
<bg_main />
|
||||||
<div class="z-100 relative">
|
<div class="z-100 relative">
|
||||||
<a-form-item :rules="[required()]">
|
<a-form-item :rules="[required()]">
|
||||||
<BasicInput
|
<BasicInput
|
||||||
@@ -46,6 +46,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
<Transition mode="out-in" name="fade">
|
<Transition mode="out-in" name="fade">
|
||||||
<div v-if="!isDeposit">
|
<div v-if="!isDeposit">
|
||||||
|
<div class="text-red text-xs font-bold mb-2">حداقل برداشت 100 هزار تومان می باشد.</div>
|
||||||
<div class="font-bold text-xs">
|
<div class="font-bold text-xs">
|
||||||
{{
|
{{
|
||||||
`موجودی کیف پول: ${usePriceWithoutType(
|
`موجودی کیف پول: ${usePriceWithoutType(
|
||||||
@@ -87,7 +88,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<a-spin v-if="loading" size="small"/>
|
<a-spin v-if="loading" size="small" />
|
||||||
<div v-else>{{ isDeposit ? 'واریز' : 'برداشت' }}</div>
|
<div v-else>{{ isDeposit ? 'واریز' : 'برداشت' }}</div>
|
||||||
</div>
|
</div>
|
||||||
</BasicButton>
|
</BasicButton>
|
||||||
@@ -106,9 +107,9 @@
|
|||||||
:key="item.id"
|
:key="item.id"
|
||||||
:item="item"
|
:item="item"
|
||||||
/>
|
/>
|
||||||
<TransactionSkeleton v-if="loadingMore" class="mt-1 mb-8"/>
|
<TransactionSkeleton v-if="loadingMore" class="mt-1 mb-8" />
|
||||||
</list-anim>
|
</list-anim>
|
||||||
<TransactionSkeleton v-for="i in 13" v-else :key="i" class="mt-1"/>
|
<TransactionSkeleton v-for="i in 13" v-else :key="i" class="mt-1" />
|
||||||
</div>
|
</div>
|
||||||
<!-- <Slider/>-->
|
<!-- <Slider/>-->
|
||||||
<Transition mode="out-in" name="fade">
|
<Transition mode="out-in" name="fade">
|
||||||
@@ -140,36 +141,36 @@
|
|||||||
@click="showAddCard = true"
|
@click="showAddCard = true"
|
||||||
>
|
>
|
||||||
<div>افزودن کارت جدید</div>
|
<div>افزودن کارت جدید</div>
|
||||||
<BasicIcon icon="vuesax-linear:add"/>
|
<BasicIcon icon="vuesax-linear:add" />
|
||||||
<BasicActionSheet v-model:show="showAddCard" class="!max-h-[95vh]">
|
<BasicActionSheet v-model:show="showAddCard" class="!max-h-[95vh]">
|
||||||
<div class="font-bold text-lg">افزودن کارت</div>
|
<div class="font-bold text-lg">افزودن کارت</div>
|
||||||
<div class="mt-4 text-red-600 font-bold">توجه : حتما شماره کارت صاحب حساب نرم افزار وارد شود.</div>
|
<div class="mt-4 text-red-600 font-bold">توجه : حتما شماره کارت صاحب حساب نرم افزار وارد شود.</div>
|
||||||
<div class="pb-20 mt-5">
|
<div class="pb-20 mt-5">
|
||||||
<a-form :model="cardForm">
|
<a-form :model="cardForm">
|
||||||
<a-form-item
|
<!-- <a-form-item
|
||||||
:rules="required()"
|
:rules="required()"
|
||||||
class="w-full gap-2 !flex-col"
|
class="w-full gap-2 !flex-col"
|
||||||
label="نام بانک"
|
label="نام بانک"
|
||||||
name="bank_name"
|
name="bank_name"
|
||||||
>
|
>
|
||||||
<BasicInput v-model:value="cardForm.bank_name"/>
|
<BasicInput v-model:value="cardForm.bank_name" />
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
<!-- <a-form-item
|
<a-form-item
|
||||||
:rules="cardNumberValidation()"
|
:rules="cardNumberValidation()"
|
||||||
class="w-full gap-2 !flex-col"
|
class="w-full gap-2 !flex-col"
|
||||||
label="شماره کارت"
|
label="شماره کارت"
|
||||||
name="cart_number"
|
name="cart_number"
|
||||||
>
|
>
|
||||||
<BasicInput v-model:value="cardForm.cart_number" type="number" />
|
<BasicInput v-model:value="cardForm.cart_number" type="number" />
|
||||||
</a-form-item>-->
|
</a-form-item>
|
||||||
<!-- <a-form-item
|
<a-form-item
|
||||||
v-if="walletStore.walletInfo"
|
v-if="walletStore.walletInfo"
|
||||||
class="w-full gap-2 !flex-col"
|
class="w-full gap-2 !flex-col"
|
||||||
label="تاریخ تولد"
|
label="تاریخ تولد"
|
||||||
name="cart_number"
|
name="cart_number"
|
||||||
>
|
>
|
||||||
<BaseDatePicker v-model:value="cardForm.birth_date" class="w-full" inputReadOnly/>
|
<BaseDatePicker v-model:value="cardForm.birth_date" class="w-full" inputReadOnly/>
|
||||||
</a-form-item>-->
|
</a-form-item>
|
||||||
<!-- <a-form-item
|
<!-- <a-form-item
|
||||||
:rules="required()"
|
:rules="required()"
|
||||||
class="w-full gap-2 !flex-col"
|
class="w-full gap-2 !flex-col"
|
||||||
@@ -178,21 +179,21 @@
|
|||||||
>
|
>
|
||||||
<BasicInput v-model:value="cardForm.account_number" type="number" />
|
<BasicInput v-model:value="cardForm.account_number" type="number" />
|
||||||
</a-form-item>-->
|
</a-form-item>-->
|
||||||
<a-form-item
|
<!-- <a-form-item
|
||||||
:rules="required()"
|
:rules="required()"
|
||||||
class="w-full gap-2 !flex-col"
|
class="w-full gap-2 !flex-col"
|
||||||
label="شماره شبا"
|
label="شماره شبا"
|
||||||
name="shaba_number"
|
name="shaba_number"
|
||||||
>
|
>
|
||||||
<BasicInput v-model:value="cardForm.shaba_number"/>
|
<BasicInput v-model:value="cardForm.shaba_number"/>
|
||||||
</a-form-item>
|
</a-form-item>-->
|
||||||
<BasicButton
|
<BasicButton
|
||||||
:disabled="loading"
|
:disabled="loading"
|
||||||
class="w-full mt-5 md:mt-10"
|
class="w-full mt-5 md:mt-10"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="addCard"
|
@click="addCard"
|
||||||
>
|
>
|
||||||
<a-spin v-if="loading" size="small"/>
|
<a-spin v-if="loading" size="small" />
|
||||||
<div v-else>ثبت</div>
|
<div v-else>ثبت</div>
|
||||||
</BasicButton>
|
</BasicButton>
|
||||||
<BasicButton class="w-full mt-2" @click="showAddCard = false">بازگشت</BasicButton>
|
<BasicButton class="w-full mt-2" @click="showAddCard = false">بازگشت</BasicButton>
|
||||||
@@ -239,7 +240,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</DialogVant>
|
</DialogVant>
|
||||||
<SkeletonLoading v-model:show="infoVisible"/>
|
<SkeletonLoading v-model:show="infoVisible" />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<transaction mode="out-in" name="fade">
|
<transaction mode="out-in" name="fade">
|
||||||
@@ -302,7 +303,7 @@
|
|||||||
|
|
||||||
<div class="mt-1 text-red-600">در صورت عدم همخوانی کارت ملی و فیش واریزی کیف پول شارژ نمیشود!</div>
|
<div class="mt-1 text-red-600">در صورت عدم همخوانی کارت ملی و فیش واریزی کیف پول شارژ نمیشود!</div>
|
||||||
<div class="mt-4">(سیده زهرا موسوی)</div>
|
<div class="mt-4">(سیده زهرا موسوی)</div>
|
||||||
<div class="mt-1">شماره کارت:6037701900311389 </div>
|
<div class="mt-1">شماره کارت:6037701900311389</div>
|
||||||
<!-- <div>شماره حساب: 0233273609006</div>-->
|
<!-- <div>شماره حساب: 0233273609006</div>-->
|
||||||
<div>شماره شبا: IR 080160000000001143804581</div>
|
<div>شماره شبا: IR 080160000000001143804581</div>
|
||||||
<BasicButton class="mt-4">
|
<BasicButton class="mt-4">
|
||||||
@@ -353,37 +354,37 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {computed, onMounted, ref} from 'vue'
|
import { computed, onMounted, ref } from 'vue'
|
||||||
import {usePriceWithoutType} from '@/utils/usePrice'
|
import { usePriceWithoutType } from '@/utils/usePrice'
|
||||||
import {loading, loadingMore} from '@/utils'
|
import { loading, loadingMore } from '@/utils'
|
||||||
import BasicButton from '@/components/BasicPacks/BasicButton.vue'
|
import BasicButton from '@/components/BasicPacks/BasicButton.vue'
|
||||||
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
|
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
import {useWalletStore} from '@/store/walletStore'
|
import { useWalletStore } from '@/store/walletStore'
|
||||||
import Bg_main from '@/components/bg_main.vue'
|
import Bg_main from '@/components/bg_main.vue'
|
||||||
import type {Transaction} from '@/models/transaction'
|
import type { Transaction } from '@/models/transaction'
|
||||||
import {createCard, deposit, getActivatedCards, withdraw, confirmCode} from '@/api/wallet'
|
import { createCard, deposit, getActivatedCards, withdraw, confirmCode } from '@/api/wallet'
|
||||||
import {useInfiniteScroll} from '@vueuse/core'
|
import { useInfiniteScroll } from '@vueuse/core'
|
||||||
import {message} from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import ListAnim from '@/components/ListAnim.vue'
|
import ListAnim from '@/components/ListAnim.vue'
|
||||||
import TransactionSkeleton from '@/components/TransactionSkeleton.vue'
|
import TransactionSkeleton from '@/components/TransactionSkeleton.vue'
|
||||||
import Item from './components/Item.vue'
|
import Item from './components/Item.vue'
|
||||||
import type {TableEngineInput, TableOutput} from '@/models/table'
|
import type { TableEngineInput, TableOutput } from '@/models/table'
|
||||||
import {getTransactionTable, getTransactionTable2} from '@/api/transaction'
|
import { getTransactionTable, getTransactionTable2 } from '@/api/transaction'
|
||||||
import BasicInput from '@/components/BasicPacks/BasicInput.vue'
|
import BasicInput from '@/components/BasicPacks/BasicInput.vue'
|
||||||
import CardSlider from './components/UISlider/index.vue'
|
import CardSlider from './components/UISlider/index.vue'
|
||||||
import BasicActionSheet from '@/components/BasicPacks/BasicActionSheet.vue'
|
import BasicActionSheet from '@/components/BasicPacks/BasicActionSheet.vue'
|
||||||
import type {Card} from '@/models/wallet'
|
import type { Card } from '@/models/wallet'
|
||||||
import {cardNumberValidation, required} from '@/utils/inputRules'
|
import { cardNumberValidation, required } from '@/utils/inputRules'
|
||||||
import {useUserStore} from '@/store/userStore'
|
import { useUserStore } from '@/store/userStore'
|
||||||
import {DotLottieVue} from '@lottiefiles/dotlottie-vue'
|
import { DotLottieVue } from '@lottiefiles/dotlottie-vue'
|
||||||
import OtpInput from 'vue3-otp-input'
|
import OtpInput from 'vue3-otp-input'
|
||||||
import DialogVant from '@/components/DialogVant.vue'
|
import DialogVant from '@/components/DialogVant.vue'
|
||||||
import SkeletonLoading from './components/SkeletonLoading.vue'
|
import SkeletonLoading from './components/SkeletonLoading.vue'
|
||||||
import BaseDatePicker from "@/components/BasicPacks/BaseDatePicker";
|
import BaseDatePicker from '@/components/BasicPacks/BaseDatePicker'
|
||||||
import img from "@/assets/img/user_ly1.svg";
|
import img from '@/assets/img/user_ly1.svg'
|
||||||
import BasicModal from "@/components/BasicPacks/BasicModal.vue";
|
import BasicModal from '@/components/BasicPacks/BasicModal.vue'
|
||||||
import {useConfigStore} from "@/store/configStore";
|
import { useConfigStore } from '@/store/configStore'
|
||||||
|
|
||||||
const isDeposit = ref<boolean>(true)
|
const isDeposit = ref<boolean>(true)
|
||||||
const walletStore = useWalletStore()
|
const walletStore = useWalletStore()
|
||||||
@@ -524,7 +525,7 @@ async function ok() {
|
|||||||
if (form.value.value !== undefined) {
|
if (form.value.value !== undefined) {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
if (!isDeposit.value) {
|
if (!isDeposit.value) {
|
||||||
await confirmCode({value: form.value.value})
|
await confirmCode({ value: form.value.value })
|
||||||
showConfirmCode.value = await true
|
showConfirmCode.value = await true
|
||||||
}
|
}
|
||||||
if (isDeposit.value) {
|
if (isDeposit.value) {
|
||||||
@@ -616,7 +617,7 @@ if (!userStore.isSingle) {
|
|||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
{distance: 12}
|
{ distance: 12 }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -652,7 +653,7 @@ async function handleOnComplete(value: string) {
|
|||||||
try {
|
try {
|
||||||
infoVisible.value = true
|
infoVisible.value = true
|
||||||
showConfirmCode.value = false
|
showConfirmCode.value = false
|
||||||
await withdraw({...form.value, otp: value})
|
await withdraw({ ...form.value, otp: value })
|
||||||
await walletStore.getMyWallet()
|
await walletStore.getMyWallet()
|
||||||
await message.success('عملیات با موفقیت انجام شد')
|
await message.success('عملیات با موفقیت انجام شد')
|
||||||
withdrawInfModal.value = true
|
withdrawInfModal.value = true
|
||||||
|
|||||||
Reference in New Issue
Block a user