|
|
|
|
@@ -6,6 +6,9 @@ import myEvent from '@/utils/myEvent'
|
|
|
|
|
import { getListingDetailApi } from '@/api/listing'
|
|
|
|
|
import { useRoute } from 'vue-router'
|
|
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
|
import { useI18n } from 'vue-i18n'
|
|
|
|
|
import { AddShoppingCart } from '@/api/shoppingCart'
|
|
|
|
|
import { CreateOrder } from '@/api/shoppingCart'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//const props = defineProps({
|
|
|
|
|
@@ -13,6 +16,7 @@ import { ElMessage } from 'element-plus'
|
|
|
|
|
//const emit = defineEmits([
|
|
|
|
|
//])
|
|
|
|
|
const route = useRoute()
|
|
|
|
|
const { t } = useI18n()
|
|
|
|
|
|
|
|
|
|
const router = useRouter()
|
|
|
|
|
let detail:any = ref({
|
|
|
|
|
@@ -28,24 +32,33 @@ const illustrationList = ref([])
|
|
|
|
|
const productList = ref([])
|
|
|
|
|
const editorialVisualList = ref([])
|
|
|
|
|
const addShopping = () => {
|
|
|
|
|
console.log(detail.value)
|
|
|
|
|
if(!detail.value.price) return ElMessage.warning('Please log in first.')
|
|
|
|
|
if(!detail.value.price) return ElMessage.warning(t('brandDetail.addShoppingTip'))
|
|
|
|
|
let data = {
|
|
|
|
|
cover: detail.value.images.cover[0],
|
|
|
|
|
price: detail.value.price,
|
|
|
|
|
shopName: detail.value.shopName,
|
|
|
|
|
title: detail.value.title,
|
|
|
|
|
id: detail.value.id,
|
|
|
|
|
}
|
|
|
|
|
myEvent.emit('addShopping', data)
|
|
|
|
|
AddShoppingCart({listingIds:[detail.value.id]}).then((res)=>{
|
|
|
|
|
myEvent.emit('addShopping', data)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const goShopping = () => {
|
|
|
|
|
if(!detail.value.price) return ElMessage.warning('Please log in first.')
|
|
|
|
|
router.push({path: '/shoppingCart'})
|
|
|
|
|
if(!detail.value.price) return ElMessage.warning(t('brandDetail.addShoppingTip'))
|
|
|
|
|
CreateOrder(
|
|
|
|
|
[detail.value.id],true
|
|
|
|
|
).then((res)=>{
|
|
|
|
|
// if(res)router.push({path: '/shoppingCart')
|
|
|
|
|
})
|
|
|
|
|
// router.push({path: '/shoppingCart'})
|
|
|
|
|
}
|
|
|
|
|
const setImgList = (list)=>{
|
|
|
|
|
sketchList.value = list.apparel.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
illustrationList.value = list.sketch.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
productList.value = list.main_product.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
sketchList.value = list?.apparel?.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
illustrationList.value = list?.sketch?.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
productList.value = list?.main_product?.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
|
|
|
|
|
editorialVisualList.value = list.product.map((item:any) => {return {imgUrl:item}})
|
|
|
|
|
if(list.firstFrame){
|
|
|
|
|
@@ -85,7 +98,7 @@ defineExpose({})
|
|
|
|
|
<div class="center">
|
|
|
|
|
<div class="img-list">
|
|
|
|
|
<div class="left">
|
|
|
|
|
<div class="title">Sketch</div>
|
|
|
|
|
<div class="title">{{ $t('digitalDetail.Sketch') }}</div>
|
|
|
|
|
<div class="box sketch">
|
|
|
|
|
<div class="imgBox">
|
|
|
|
|
<img :src="item?.imgUrl" v-for="item in sketchList" :key="item" alt="">
|
|
|
|
|
@@ -95,13 +108,13 @@ defineExpose({})
|
|
|
|
|
<div class="right">
|
|
|
|
|
<div class="top">
|
|
|
|
|
<div class="box">
|
|
|
|
|
<div class="title">Illustration</div>
|
|
|
|
|
<div class="title">{{ $t('digitalDetail.Illustration') }}</div>
|
|
|
|
|
<div class="imgBox">
|
|
|
|
|
<img :src="item?.imgUrl" v-for="item in illustrationList" :key="item" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box">
|
|
|
|
|
<div class="title">Product</div>
|
|
|
|
|
<div class="title">{{ $t('digitalDetail.Product') }}</div>
|
|
|
|
|
<div class="imgBox">
|
|
|
|
|
<img :src="item?.imgUrl" v-for="item in productList" :key="item" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
@@ -109,7 +122,7 @@ defineExpose({})
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bottom">
|
|
|
|
|
<div class="box aa">
|
|
|
|
|
<div class="title">Editorial Visual</div>
|
|
|
|
|
<div class="title">{{ $t('digitalDetail.EditorialVisual') }}</div>
|
|
|
|
|
<div class="imgBox">
|
|
|
|
|
<img :src="item?.gif||item?.imgUrl" v-for="item in editorialVisualList" :key="item" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
@@ -122,7 +135,7 @@ defineExpose({})
|
|
|
|
|
<div class="icon">
|
|
|
|
|
<svg-icon name="digital-back" size="28"></svg-icon>
|
|
|
|
|
</div>
|
|
|
|
|
<span>Back</span>
|
|
|
|
|
<span>{{ $t('digitalDetail.Back') }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="img-info">
|
|
|
|
|
<div class="img-type">{{ detail.designFor?.toUpperCase() || ''}} / {{ detail.productCategory?.join(',')?.toUpperCase() || '' }}</div>
|
|
|
|
|
@@ -135,7 +148,7 @@ defineExpose({})
|
|
|
|
|
<div class="detail">
|
|
|
|
|
<div class="name">{{ detail.shopName }}</div>
|
|
|
|
|
<div class="release-time">
|
|
|
|
|
<span>Release in {{ detail.updateTime }}</span>
|
|
|
|
|
<span>{{ $t('digitalDetail.ReleaseIn') }} {{ detail.updateTime }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@@ -144,26 +157,26 @@ defineExpose({})
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="notice">
|
|
|
|
|
<div class="title">Copyright & License Notice</div>
|
|
|
|
|
<div class="title">{{ $t('digitalDetail.CopyrightLicenseNotice') }}</div>
|
|
|
|
|
<div class="conter">
|
|
|
|
|
<div class="contet-title">
|
|
|
|
|
<div class="icon">
|
|
|
|
|
<svg-icon name="digital-Info" size="24"></svg-icon>
|
|
|
|
|
</div>
|
|
|
|
|
<span>License Included in Asset</span>
|
|
|
|
|
<span>{{ $t('digitalDetail.LicenseIncludedInAsset') }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info">
|
|
|
|
|
All products on this platform are digital assets, not physical goods. Purchase grants a usage license only; copyright and intellectual property rights remain with the original creator, unless otherwise stated.
|
|
|
|
|
{{ $t('digitalDetail.LicenseIncludedInAssetInfo') }}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="button">
|
|
|
|
|
<div class="buy-now" @click="goShopping">Buy Now</div>
|
|
|
|
|
<div class="buy-now" @click="goShopping">{{ $t('digitalDetail.BuyNow') }}</div>
|
|
|
|
|
<div class="add-cart" @click="addShopping()">
|
|
|
|
|
<div class="icon">
|
|
|
|
|
<svg-icon name="cart_0" size="24"></svg-icon>
|
|
|
|
|
</div>
|
|
|
|
|
Add to Cart
|
|
|
|
|
{{ $t('digitalDetail.AddToCart') }}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|