Merge branch 'main' of ssh://18.167.251.121:10002/aidlab/Aida_Purchaser_Front

This commit is contained in:
2026-06-01 15:22:17 +08:00
16 changed files with 167 additions and 102 deletions

View File

@@ -116,7 +116,7 @@ defineExpose({})
<div class="img-list">
<div class="left">
<div class="title">{{ $t('digitalDetail.Sketch') }}</div>
<div class="box sketch">
<div class="box sketch" :class="{'active': sketchList.length == 1}">
<div class="imgBox">
<img :src="item?.imgUrl" v-for="item in sketchList" :key="item" alt="">
</div>
@@ -137,7 +137,7 @@ defineExpose({})
</div>
</div>
</div>
<div class="bottom">
<div class="bottom" v-if="editorialVisualList.length > 0">
<div class="box editorialVisual">
<div class="title">{{ $t('digitalDetail.EditorialVisual') }}</div>
<div class="imgBox">
@@ -254,14 +254,27 @@ defineExpose({})
&.sketch{
.imgBox{
flex-direction: column;
gap: 2rem;
gap: 4rem;
padding: 5rem 0;
img{
height: 20.4rem;
height: 26.4rem;
object-fit: contain;
width: auto;
margin: auto;
}
}
&.active{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
aspect-ratio: 9 / 16;
img{
height: auto;
width: 20.1rem;
aspect-ratio: 9 / 16;
}
}
}
&.illustration{
display: flex;

View File

@@ -114,6 +114,7 @@ const {} = toRefs(data);
position: relative;
display: flex;
flex-direction: column;
margin-top: -1px;
.list{
width: 100%;
flex: 1;

View File

@@ -74,7 +74,7 @@ onUnmounted(()=>{
defineExpose({})
</script>
<template>
<div class="digitalItem" ref="digitalItemRef">
<div class="digitalItem" :class="{'active': commodityListRef?.commodityList?.length > 0}" ref="digitalItemRef">
<div class="header-img">
<img src="@/assets/images/digitalItem/digital_item_banner.png" alt="">
<div class="text">
@@ -130,9 +130,12 @@ defineExpose({})
<style lang="less" scoped>
.digitalItem{
width: 100%;
height: 100%;
height: auto;
position: relative;
overflow-y: auto;
&.active{
height: 100%;
}
.header-img{
width: 100%;
position: relative;
@@ -158,7 +161,7 @@ defineExpose({})
color: #585858;
font-size: 1.6rem;
line-height: 140%;
margin-top: 1.2rem;
margin-top: 2.4rem;
text-align: center;
}
}

View File

@@ -47,7 +47,7 @@ defineExpose({})
</div>
<div class="categories">{{ $t('digitalItem.MerchantInfo.Gender') }}</div>
<div class="line"></div>
<div class="multiple">{{ gender }}
<div class="multiple">
<checked-gender :list="genderList" @change="handleChange" v-model:selected="gender" />
</div>
</div>

View File

@@ -0,0 +1,8 @@
export const UrlList = {
aida: 'https://www.aida.com.hk/',
codeCreate: 'https://www.code-create.com/',
}
export const openView = (url) => {
window.open(url, '_blank')
}

View File

@@ -5,14 +5,14 @@
<div class="aida-logo"><img src="@/assets/images/logos/aida.png" /></div>
<div class="title">{{ $t('Home.AidaTitle') }}</div>
<div class="tip">{{ $t('Home.AidaTip') }}</div>
<button custom @click="openAida">{{ $t('Home.TryNow') }}</button>
<button custom @click="openView(UrlList.aida)">{{ $t('Home.TryNow') }}</button>
</div>
</section>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import { openAida } from '@/utils/tools'
import { UrlList, openView } from './UrlList'
</script>
<style lang="less">

View File

@@ -3,13 +3,21 @@
<div class="content">
<div class="mate">
<div class="logos">
<img src="@/assets/images/logos/code-create-black.png" />
<img
src="@/assets/images/logos/code-create-black.png"
@click="openView(UrlList.codeCreate)"
/>
<img src="@/assets/images/logos/stylish-parade-black.png" />
<img src="@/assets/images/logos/aida-black.png" />
<img
src="@/assets/images/logos/aida-black.png"
@click="openView(UrlList.aida)"
/>
</div>
<div class="tip">{{ $t('Home.FooterTip') }}</div>
<div class="link">
<span class="text" @click="openAida">{{ $t('Home.FooterAidaTip') }}</span>
<span class="text" @click="openView(UrlList.aida)">{{
$t('Home.FooterAidaTip')
}}</span>
<span class="icon"><svg-icon name="arrow_right" size="12" /></span>
</div>
</div>
@@ -35,25 +43,16 @@
<div class="item">{{ $t('Home.JoinWithUs') }}</div>
</div>
</div>
<div class="footer">
<div class="left">© Code-Create 2026</div>
<div class="right">
<img src="@/assets/images/icons/xiaohongshu.png" />
<img src="@/assets/images/icons/linkedin.png" />
<img src="@/assets/images/icons/instagram.png" />
<img src="@/assets/images/icons/facebook.png" />
<img src="@/assets/images/icons/douyin.png" />
<img src="@/assets/images/icons/wechat.png" />
</div>
</div>
<HomeFooter class="footer" isHome />
</section>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import { openAida } from '@/utils/tools'
import { useRouter } from 'vue-router'
const router = useRouter()
import HomeFooter from '@/components/Footer.vue'
import { UrlList, openView } from './UrlList'
</script>
<style lang="less">
@@ -135,24 +134,8 @@
}
}
> .footer {
padding: 0 8rem;
height: 7rem;
display: flex;
align-items: center;
justify-content: space-between;
> .left {
font-family: KaiseiOpti-Regular;
font-size: 1.2rem;
color: #585858;
}
> .right {
display: flex;
> img {
width: 2rem;
height: 2rem;
margin-left: 1.6rem;
}
}
border: none;
width: 100%;
}
}
</style>

View File

@@ -2,7 +2,7 @@
<div class="pay">
<div class="content">
<payment :ids="ids" />
<sc-list title="Order Summary" is-view is-mini :list="list" />
<sc-list :title="$t('Pay.OrderSummary')" is-view is-mini :list="list" />
</div>
<my-footer />
</div>

View File

@@ -2,57 +2,47 @@
<div class="payment">
<div class="header" @click="onBack">
<span class="icon"><svg-icon name="back" size="30" /></span>
<span class="text">Payment Details</span>
<span class="text">{{ $t('Pay.PaymentDetails') }}</span>
</div>
<!-- 未支付 -->
<template v-if="paymentStatus !== ORDER_STATUS.SUCCESS">
<div class="paylist">
<div class="item">
<img src="@/assets/images/pay/stripe.png" alt="" />
<span>Credit / Debit Card</span>
<span>{{ $t('Pay.CreditDebitCard') }}</span>
</div>
</div>
<div class="agreement">
<el-checkbox v-model="agreement">
<div class="text">
I agree to the <span>Terms & Conditions</span> and
<span>Privacy Policy</span>. All digital item sales are final and
non-refundable.
</div></el-checkbox
>
<div class="text" v-html="$t('Pay.AgreementText')"></div
></el-checkbox>
</div>
<div class="title">
<span class="icon"><svg-icon name="card" size="20" /></span>
<span class="text">Pay with Stripe</span>
<span class="text">{{ $t('Pay.PayWithStripe') }}</span>
</div>
<template v-if="!query.paymentId">
<div class="tip">
You'll be redirected to a Stripe popup to log in and confirm. No card details
are shared with Stylish Parade — Stripe handles all payment security.
</div>
<div class="tip">{{ $t('Pay.PayTip1') }}</div>
<div class="buttons">
<button custom="black" @click="onPayWith">
<span class="text">Pay with</span>
<span class="text">{{ $t('Pay.PayWith') }}</span>
<span class="icon pay"><svg-icon name="pay-stripe" /></span>
</button>
</div>
<div class="buttons">
<span class="text" @click="onBack">Cancel</span>
<span class="text" @click="onBack">{{ $t('Pay.Cancel') }}</span>
</div>
</template>
<!-- 已支付等待确认 -->
<template v-if="query.paymentId">
<div class="tip">
Please keep the window open until the payment is completed. If you are to open
the payment window, please check your browser settings to see if pop-ups are
being blocked. Points may be delayed after successful payment. Please wait 1-3
minutes and click the credits refresh button.
<div class="tip">{{ $t('Pay.PayTip2') }}</div>
<div class="buttons">
<button custom="black" @click="getOrderStatus">
{{ $t('Pay.IHaveCompletedPayment') }}
</button>
</div>
<div class="buttons">
<button custom="black" @click="getOrderStatus">I Have Completed payment</button>
</div>
<div class="buttons">
<span class="text" @click="onBack">Back</span>
<span class="text" @click="onBack">{{ $t('Pay.Back') }}</span>
</div>
</template>
</template>
@@ -60,11 +50,8 @@
<template v-if="paymentStatus === ORDER_STATUS.SUCCESS">
<div class="success">
<img src="@/assets/images/pay/success.png" alt="" />
<div class="title">Purchase Successful!</div>
<div class="tip">
Your digital items are now available and have been saved in Personal Center → My
Wardrobe.
</div>
<div class="title">{{ $t('Pay.PurchaseSuccessful') }}</div>
<div class="tip">{{ $t('Pay.PurchaseSuccessfulTip') }}</div>
</div>
<div class="progres" v-if="downloadInfo.status !== DOWNLOAD_STATUS.null">
@@ -81,14 +68,16 @@
</el-progress>
</div>
<div class="buttons">
<button custom="black" @click="handleDownloadAllAssets">download all Assets</button>
<button custom="black" @click="handleDownloadAllAssets">
{{ $t('Pay.DownloadAllAssets') }}
</button>
<button custom="black-box">
<span class="icon"><svg-icon name="order-file" size="18" /></span>
<span class="text">Export Invoice</span>
<span class="text">{{ $t('Pay.ExportInvoice') }}</span>
</button>
</div>
<div class="buttons">
<span class="text" @click="onBack">Continue Shopping</span>
<span class="text" @click="onBack">{{ $t('Pay.ContinueShopping') }}</span>
</div>
</template>
</div>
@@ -195,6 +184,9 @@
}
})
const handleDownloadAllAssets = () => {
if (downloadInfo.value.status === DOWNLOAD_STATUS.dowloading) {
return
}
const ids = props.ids as string[]
downloadInfo.value.status = DOWNLOAD_STATUS.dowloading
downloadInfo.value.progress = 0

View File

@@ -42,7 +42,7 @@ defineExpose({})
const {} = toRefs(data);
</script>
<template>
<el-drawer v-model="isShoppingShow" width="50rem" class="addShoppingDrawer" :close-on-click-modal="false" title="I am the title" :with-header="false">
<el-drawer v-model="isShoppingShow" width="50rem" class="addShoppingDrawer" :close-on-click-modal="true" title="I am the title" :with-header="false">
<div class="addShoppingInfo">
<div class="header">
<div class="title">{{ $t('addShoppingCart.title') }}</div>
@@ -74,7 +74,7 @@ const {} = toRefs(data);
</div>
<div class="statement">
<div class="icon">
<SvgIcon name="statement" size="16.6" />
<SvgIcon name="statement" size="20" />
</div>
{{ $t('addShoppingCart.statement') }}
</div>