133 lines
3.1 KiB
Vue
133 lines
3.1 KiB
Vue
<script setup>
|
|
import AddressContent from '@/views/wizard-examples/checkout/Address.vue'
|
|
import CartContent from '@/views/wizard-examples/checkout/Cart.vue'
|
|
import ConfirmationContent from '@/views/wizard-examples/checkout/Confirmation.vue'
|
|
import PaymentContent from '@/views/wizard-examples/checkout/Payment.vue'
|
|
import googleHome from '@images/pages/google-home.png'
|
|
import iphone11 from '@images/pages/iphone-11.png'
|
|
import customAddress from '@images/svg/address.svg'
|
|
import customCart from '@images/svg/cart.svg'
|
|
import customPayment from '@images/svg/payment.svg'
|
|
import customTrending from '@images/svg/trending.svg'
|
|
|
|
const checkoutSteps = [
|
|
{
|
|
title: 'Cart',
|
|
icon: customCart,
|
|
},
|
|
{
|
|
title: 'Address',
|
|
icon: customAddress,
|
|
},
|
|
{
|
|
title: 'Payment',
|
|
icon: customPayment,
|
|
},
|
|
{
|
|
title: 'Confirmation',
|
|
icon: customTrending,
|
|
},
|
|
]
|
|
|
|
const checkoutData = ref({
|
|
cartItems: [
|
|
{
|
|
id: 1,
|
|
name: 'Google - Google Home - White',
|
|
seller: 'Google',
|
|
inStock: true,
|
|
rating: 4,
|
|
price: 299,
|
|
discountPrice: 359,
|
|
image: googleHome,
|
|
quantity: 1,
|
|
estimatedDelivery: '18th Nov 2021',
|
|
},
|
|
{
|
|
id: 2,
|
|
name: 'Apple iPhone 11 (64GB, Black)',
|
|
seller: 'Apple',
|
|
inStock: true,
|
|
rating: 4,
|
|
price: 899,
|
|
discountPrice: 999,
|
|
image: iphone11,
|
|
quantity: 1,
|
|
estimatedDelivery: '20th Nov 2021',
|
|
},
|
|
],
|
|
promoCode: '',
|
|
orderAmount: 1198,
|
|
deliveryAddress: 'home',
|
|
deliverySpeed: 'free',
|
|
deliveryCharges: 0,
|
|
addresses: [
|
|
{
|
|
title: 'John Doe (Default)',
|
|
desc: '4135 Parkway Street, Los Angeles, CA, 90017',
|
|
subtitle: '1234567890',
|
|
value: 'home',
|
|
},
|
|
{
|
|
title: 'ACME Inc.',
|
|
desc: '87 Hoffman Avenue, New York, NY, 10016',
|
|
subtitle: '1234567890',
|
|
value: 'office',
|
|
},
|
|
],
|
|
})
|
|
|
|
const currentStep = ref(0)
|
|
</script>
|
|
|
|
<template>
|
|
<VCard>
|
|
<VCardText>
|
|
<!-- 👉 Stepper -->
|
|
<AppStepper
|
|
v-model:current-step="currentStep"
|
|
class="checkout-stepper"
|
|
:items="checkoutSteps"
|
|
:direction="$vuetify.display.mdAndUp ? 'horizontal' : 'vertical'"
|
|
align="center"
|
|
/>
|
|
</VCardText>
|
|
|
|
<VDivider />
|
|
|
|
<VCardText>
|
|
<!-- 👉 stepper content -->
|
|
<VWindow
|
|
v-model="currentStep"
|
|
class="disable-tab-transition"
|
|
:touch="false"
|
|
>
|
|
<VWindowItem>
|
|
<CartContent
|
|
v-model:current-step="currentStep"
|
|
v-model:checkout-data="checkoutData"
|
|
/>
|
|
</VWindowItem>
|
|
|
|
<VWindowItem>
|
|
<AddressContent
|
|
v-model:current-step="currentStep"
|
|
v-model:checkout-data="checkoutData"
|
|
/>
|
|
</VWindowItem>
|
|
|
|
<VWindowItem>
|
|
<PaymentContent
|
|
v-model:current-step="currentStep"
|
|
v-model:checkout-data="checkoutData"
|
|
/>
|
|
</VWindowItem>
|
|
|
|
<VWindowItem>
|
|
<ConfirmationContent v-model:checkout-data="checkoutData" />
|
|
</VWindowItem>
|
|
</VWindow>
|
|
</VCardText>
|
|
</VCard>
|
|
</template>
|