outstock_nuxt3/components/shop-details/ShopDetailsArea.vue

134 lines
6.3 KiB
Vue
Raw Normal View History

2023-08-01 11:11:43 +00:00
<template>
<section class="shop__area pb-65">
<div class="shop__top grey-bg-6 pt-100 pb-90">
<div class="container">
<div class="row">
<div class="col-xl-6 col-lg-6">
<div class="product__modal-box d-flex">
<div class="product__modal-nav mr-20">
<nav>
<div class="nav nav-tabs" id="product-details" role="tablist">
<button
v-for="(img, i) in item.related_images"
:key="i"
:class="`nav-item nav-link ${ img === active_img ? 'active' : '' }`"
@click="handleActiveImg(img)"
style="margin-bottom: 5px;"
>
<div class="product__nav-img w-img">
<img
:src="img"
alt="image"
style="width: 95px; height: 120px;object-fit: cover;"
/>
</div>
</button>
</div>
</nav>
</div>
<div class="tab-content mb-20" id="product-detailsContent">
<div class="product__modal-img product__thumb w-img">
<img :src="active_img" alt="product_img">
<div class="product__sale ">
<span class="new">new</span>
<span class="percent">-16%</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-6 col-lg-6">
<product-details-content :item="item" :style_2="true"/>
</div>
</div>
</div>
</div>
<div class="shop__bottom">
<div class="container">
<div class="row">
<div class="col-xl-12">
<div class="product__details-tab">
<div class="product__details-tab-nav text-center mb-45">
<nav>
<div class="nav nav-tabs justify-content-start justify-content-sm-center" id="pro-details" role="tablist">
<a class="nav-item nav-link active" id="des-tab" data-bs-toggle="tab" href="#des" role="tab" aria-controls="des" aria-selected="true">Description</a>
<a class="nav-item nav-link" id="add-tab" data-bs-toggle="tab" href="#add" role="tab" aria-controls="add" aria-selected="false">Additional Information</a>
<a class="nav-item nav-link" id="review-tab" data-bs-toggle="tab" href="#review" role="tab" aria-controls="review" aria-selected="false">Reviews (4)</a>
</div>
</nav>
</div>
<div class="tab-content" id="pro-detailsContent">
<div class="tab-pane fade show active" id="des" role="tabpanel">
<div class="product__details-des">
<p>{{item.details.details_text}}</p>
<div class="product__details-des-list mb-20">
<ul>
<li v-for="(list,i) in item.details.details_list" :key="i">
<span>{{list}}</span>
</li>
</ul>
</div>
<p>{{item.details.details_text_2}}</p>
</div>
</div>
<div class="tab-pane fade" id="add" role="tabpanel">
<div class="product__details-add">
<ul>
<li><span>Weight</span></li>
<li><span>.25 KG</span></li>
<li><span>Dimention</span></li>
<li><span>62 × 56 × 12 cm</span></li>
<li><span>Size</span></li>
<li><span>XL, XXL, LG, SM, MD</span></li>
</ul>
</div>
</div>
<div class="tab-pane fade" id="review" role="tabpanel">
<product-details-review :item="item"/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- related products start -->
<related-products :item="item"/>
<!-- related products end -->
</template>
<script lang="ts">
import { defineComponent,PropType } from 'vue';
import ProductType from '~~/types/productType';
import ProductDetailsContent from './ProductDetailsContent.vue';
import ProductDetailsReview from './ProductDetailsReview.vue';
import RelatedProducts from './RelatedProducts.vue';
export default defineComponent({
components: { ProductDetailsContent, ProductDetailsReview, RelatedProducts },
props:{
item:{
type:Object as PropType<ProductType>,
default:{},
required:true
},
},
data () {
return {
active_img:this.item.img
}
},
methods:{
handleActiveImg(img:string){
this.active_img = img
}
},
setup () {
return {}
}
})
</script>