@ecomplus/storefront-app
Version:
Vue.js ecommerce app with cart, checkout and account pages
159 lines (145 loc) • 4.04 kB
HTML
<article class="summary">
<h5 class="summary__title">
{{ i19summary }}
</h5>
<slot name="list">
<div
v-if="items"
class="summary__list"
>
<div
class="summary__item"
v-for="item in items"
v-if="item.quantity > 0"
:key="item._id"
>
<a-picture
v-if="getImg(item)"
:src="getImg(item).url"
:alt="getImg(item).alt || item.name"
/>
<div>
<span class="badge badge-secondary">
{{ item.quantity }}
</span>
<template v-if="Array.isArray(item.flags) && item.flags.includes('freebie')">
<s>{{ formatMoney(getPrice(item)) }}</s>
<small class="text-muted">
<i class="i-gift ml-2 mr-1"></i>
{{ i19freebie }}
</small>
</template>
<template v-else>
{{ formatMoney(getPrice(item)) }}
</template>
<br>
<a-link
v-if="item.slug"
:href="`/${item.slug}`"
target="_blank"
>
<small>{{ getName(item) }}</small>
</a-link>
<small v-else>
{{ getName(item) }}
</small>
<item-customizations :item="item"/>
</div>
</div>
</div>
</slot>
<slot name="more-offers"/>
<slot name="amount">
<div class="summary__amount">
<div
class="summary__amount__row"
:data-subtotal="amount.subtotal.toFixed(2)"
>
<span>{{ i19subtotal }}</span>
<div>{{ formatMoney(amount.subtotal) }}</div>
</div>
<div
class="summary__amount__row"
:data-freight="amount.freight.toFixed(2)"
>
<span>
{{ i19freight }}
<small v-if="shippingAddress">
{{ shippingAddress.street }}
<template v-if="shippingAddress.number">
{{ shippingAddress.number }}
</template>
{{ shippingAddress.city }}
{{ shippingAddress.province_code }}
</small>
</span>
<div>{{ formatMoney(amount.freight) }}</div>
</div>
<div
v-if="amount.discount"
class="summary__amount__row"
:data-discount="amount.discount.toFixed(2)"
>
<span>{{ i19discount }}</span>
<div>{{ formatMoney(amount.discount) }}</div>
</div>
<div
v-if="amount.balance"
class="summary__amount__row"
:data-balance="amount.balance.toFixed(2)"
>
<span>{{ i19balanceOrPoints }}</span>
<div>{{ formatMoney(amount.balance) }}</div>
</div>
<div
v-if="paidInAdvance > 0"
class="summary__amount__row"
>
<span>{{ i19total }}</span>
<div>{{ formatMoney(amount.total) }}</div>
</div>
<slot name="amount-custom"/>
<div
class="summary__amount__row summary__amount__row--total"
:data-total="amountToPay.toFixed(2)"
>
<span>{{ paidInAdvance ? i19toPay : i19total }}</span>
<a-prices
:product="{ price: amountToPay }"
:discount-option="{ value: amount.discount }"
:is-literal="true"
:is-amount-total="true"
:can-show-price-options="canShowPriceOptions"
/>
</div>
</div>
</slot>
<slot/>
<slot name="buyer">
<div
v-if="buyer"
class="summary__buyer"
>
<h5>{{ i19buyer }}</h5>
<p>
{{ buyerName }}
<br>
<small>{{ i19docNumber }}:</small>
<span>{{ buyer.doc_number }}</span>
<br>
<small>{{ i19contactPhone }}:</small>
<span>{{ buyerPhone }}</span>
<br>
<small>{{ buyer.main_email }}</small>
</p>
<button
class="btn btn-sm btn-outline-secondary"
type="button"
@click="$emit('click:account')"
>
<i class="i-pencil mr-1"></i>
{{ i19myAccount }}
</button>
</div>
</slot>
</article>