<template>
|
<PhoneBillRechargeStep1 v-if="current === 'step1'" />
|
<PhoneBillRechargeStep2
|
v-else-if="current === 'step2'"
|
v-bind="props"
|
@go-pay="emit('goPay', $event)"
|
@paySuccess="emit('paySuccess', $event)"
|
@missName="emit('missName', $event)"
|
/>
|
</template>
|
|
<script setup lang="ts">
|
import { computed, provide, useAttrs } from 'vue';
|
import { useStepper } from 'senin-mini/hooks';
|
import { PhoneBillRechargeContextKey } from './context';
|
import PhoneBillRechargeStep1 from './PhoneBillRechargeStep1.vue';
|
import PhoneBillRechargeStep2 from './PhoneBillRechargeStep2.vue';
|
import { RechargeProps } from './types';
|
|
defineOptions({
|
name: 'PhoneBillRecharge',
|
});
|
|
const props = withDefaults(defineProps<RechargeProps>(), {
|
isDev: false,
|
});
|
|
const stepperInfo = useStepper(['step1', 'step2'], 'step2');
|
const current = computed(() => stepperInfo.current.value);
|
|
const emit = defineEmits<{
|
(e: 'goPay', orderNo: string): void;
|
(e: 'paySuccess', orderNo: string): void;
|
(e: 'missName', userAccountId: string): void;
|
}>();
|
|
provide(PhoneBillRechargeContextKey, {
|
...stepperInfo,
|
});
|
</script>
|