|
@@ -15,10 +15,14 @@ import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue'
|
|
|
import styles from '../index.module.less'
|
|
|
import radioCheck from '@/common/images/icon-radio-check.png'
|
|
|
import radioDefault from '@/common/images/icon-radio-default.png'
|
|
|
+import iconGives from '../images/icon-gives.png'
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
import request from '@/helpers/request'
|
|
|
import { moneyFormat } from '@/helpers/utils'
|
|
|
import { CountUp } from 'countup.js'
|
|
|
+import OPopup from '@/components/o-popup'
|
|
|
+import MemberBao from '../../member-bao'
|
|
|
+import GoodsDetail from '../../goods-detail'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'payment',
|
|
@@ -38,7 +42,10 @@ export default defineComponent({
|
|
|
orderInfo: {
|
|
|
needPrice: 0,
|
|
|
originalPrice: 0
|
|
|
- }
|
|
|
+ },
|
|
|
+ memberBaoStatus: false, // 团练宝详情状态
|
|
|
+ goodsStatus: false, //
|
|
|
+ selectGoodsId: null as any
|
|
|
})
|
|
|
|
|
|
// 查询未支付订单
|
|
@@ -316,31 +323,59 @@ export default defineComponent({
|
|
|
),
|
|
|
title: () => (
|
|
|
<div class={styles.section}>
|
|
|
- <Image class={styles.img} src={state.goodsInfo.goodsUrl} />
|
|
|
+ <Image
|
|
|
+ class={styles.img}
|
|
|
+ src={state.goodsInfo.goodsUrl}
|
|
|
+ onClick={(e: any) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ state.selectGoodsId = state.goodsInfo.goodsId
|
|
|
+ state.goodsStatus = true
|
|
|
+ }}
|
|
|
+ />
|
|
|
<div class={styles.sectionContent}>
|
|
|
<h2>{state.goodsInfo.goodsName}</h2>
|
|
|
- <Tag type="primary">{state.goodsInfo.brandName}</Tag>
|
|
|
+ <Tag
|
|
|
+ color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
+ textColor="#fff"
|
|
|
+ class={styles.brandName}
|
|
|
+ >
|
|
|
+ {state.goodsInfo.brandName}
|
|
|
+ </Tag>
|
|
|
<p class={styles.model}>{state.goodsInfo.desciption}</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
)
|
|
|
}}
|
|
|
</Cell>
|
|
|
- <Cell>
|
|
|
+ <Cell border={false}>
|
|
|
{{
|
|
|
title: () => (
|
|
|
<div class={styles.extra}>
|
|
|
<div class={styles.sectionPrice}>
|
|
|
<p class={styles.price}>
|
|
|
- 新团特惠:<span>¥{moneyFormat(state.goodsInfo.currentPrice)}</span>
|
|
|
+ 新团特惠:
|
|
|
+ <span class={styles.numFont}>
|
|
|
+ <span class={styles.numPrefix}>¥</span>
|
|
|
+ {moneyFormat(state.goodsInfo.currentPrice)}
|
|
|
+ </span>
|
|
|
</p>
|
|
|
<p class={styles.originPrice}>
|
|
|
- 原价:<del>¥{moneyFormat(state.goodsInfo.originalPrice)}</del>
|
|
|
+ 原价:
|
|
|
+ <del class={styles.numFont}>
|
|
|
+ ¥{moneyFormat(state.goodsInfo.originalPrice)}
|
|
|
+ </del>
|
|
|
</p>
|
|
|
</div>
|
|
|
- <div class={styles.sectionTips}>
|
|
|
- 赠价值{state.repaireInfo.originalPrice}元乐器维保服务一年
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Cell>
|
|
|
+ <Cell center class={styles.gives}>
|
|
|
+ {{
|
|
|
+ title: () => (
|
|
|
+ <div class={styles.sectionTips}>
|
|
|
+ <Image src={iconGives} class={styles.iconGives} />
|
|
|
+ 赠价值{state.repaireInfo.originalPrice}元乐器维保服务一年
|
|
|
</div>
|
|
|
)
|
|
|
}}
|
|
@@ -384,10 +419,24 @@ export default defineComponent({
|
|
|
),
|
|
|
title: () => (
|
|
|
<div class={styles.section}>
|
|
|
- <Image class={styles.img} src={state.textBookInfo.goodsUrl} />
|
|
|
+ <Image
|
|
|
+ class={styles.img}
|
|
|
+ src={state.textBookInfo.goodsUrl}
|
|
|
+ onClick={(e: any) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ state.selectGoodsId = state.textBookInfo.goodsId
|
|
|
+ state.goodsStatus = true
|
|
|
+ }}
|
|
|
+ />
|
|
|
<div class={styles.sectionContent}>
|
|
|
<h2>{state.textBookInfo.goodsName}</h2>
|
|
|
- <Tag type="primary">{state.textBookInfo.brandName}</Tag>
|
|
|
+ <Tag
|
|
|
+ color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
+ textColor="#fff"
|
|
|
+ class={styles.brandName}
|
|
|
+ >
|
|
|
+ {state.textBookInfo.brandName}
|
|
|
+ </Tag>
|
|
|
<p class={styles.model}>{state.textBookInfo.description}</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -401,14 +450,26 @@ export default defineComponent({
|
|
|
<div class={styles.sectionPrice}>
|
|
|
<p class={styles.price}>
|
|
|
新团特惠:
|
|
|
- <span class={styles.free}>
|
|
|
- {state.textBookInfo.currentPrice > 0
|
|
|
- ? moneyFormat(state.textBookInfo.currentPrice)
|
|
|
- : '免费赠送'}
|
|
|
+ <span
|
|
|
+ class={[
|
|
|
+ state.textBookInfo.currentPrice > 0 ? styles.numFont : styles.free
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ {state.textBookInfo.currentPrice > 0 ? (
|
|
|
+ <>
|
|
|
+ <span class={styles.numPrefix}>¥</span>
|
|
|
+ {moneyFormat(state.textBookInfo.currentPrice)}
|
|
|
+ </>
|
|
|
+ ) : (
|
|
|
+ '免费'
|
|
|
+ )}
|
|
|
</span>
|
|
|
</p>
|
|
|
<p class={styles.originPrice}>
|
|
|
- 原价:<del>¥{moneyFormat(state.textBookInfo.originalPrice)}</del>
|
|
|
+ 原价:
|
|
|
+ <del class={styles.numFont}>
|
|
|
+ ¥{moneyFormat(state.textBookInfo.originalPrice)}
|
|
|
+ </del>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -449,10 +510,23 @@ export default defineComponent({
|
|
|
),
|
|
|
title: () => (
|
|
|
<div class={styles.section}>
|
|
|
- <Image class={styles.img} src={state.vipInfo.goodsUrl} />
|
|
|
+ <Image
|
|
|
+ class={styles.img}
|
|
|
+ src={state.vipInfo.goodsUrl}
|
|
|
+ onClick={(e: any) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ state.memberBaoStatus = true
|
|
|
+ }}
|
|
|
+ />
|
|
|
<div class={styles.sectionContent}>
|
|
|
<h2>{state.vipInfo.goodsName}</h2>
|
|
|
- <Tag type="primary">6个月</Tag>
|
|
|
+ <Tag
|
|
|
+ color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
|
|
|
+ textColor="#fff"
|
|
|
+ class={styles.brandName}
|
|
|
+ >
|
|
|
+ 6个月
|
|
|
+ </Tag>
|
|
|
<p class={styles.model}>{state.vipInfo.description}</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -465,10 +539,17 @@ export default defineComponent({
|
|
|
<div class={styles.extra}>
|
|
|
<div class={styles.sectionPrice}>
|
|
|
<p class={styles.price}>
|
|
|
- 新团特惠:<span>¥{moneyFormat(state.vipInfo.currentPrice)}</span>
|
|
|
+ 新团特惠:
|
|
|
+ <span class={styles.numFont}>
|
|
|
+ <span class={styles.numPrefix}>¥</span>
|
|
|
+ {moneyFormat(state.vipInfo.currentPrice)}
|
|
|
+ </span>
|
|
|
</p>
|
|
|
<p class={styles.originPrice}>
|
|
|
- 原价:<del>¥{moneyFormat(state.vipInfo.originalPrice)}</del>
|
|
|
+ 原价:
|
|
|
+ <del class={styles.numFont}>
|
|
|
+ ¥{moneyFormat(state.vipInfo.originalPrice)}
|
|
|
+ </del>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -485,13 +566,14 @@ export default defineComponent({
|
|
|
<div class={styles.payemntPrice}>
|
|
|
<p class={styles.needPrice}>
|
|
|
支付金额:
|
|
|
- <span>
|
|
|
- ¥<i style="font-style: normal" id="needPrice"></i>
|
|
|
+ <span class={styles.numFont}>
|
|
|
+ <span>¥</span>
|
|
|
+ <i style="font-style: normal" id="needPrice"></i>
|
|
|
</span>
|
|
|
</p>
|
|
|
<p class={styles.allPrice}>
|
|
|
总原价:
|
|
|
- <del>¥{moneyFormat(state.orderInfo.originalPrice)}</del>
|
|
|
+ <del class={styles.numFont}>¥{moneyFormat(state.orderInfo.originalPrice)}</del>
|
|
|
</p>
|
|
|
</div>
|
|
|
<div class={styles.paymentBtn}>
|
|
@@ -505,6 +587,14 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</div>
|
|
|
</OSticky>
|
|
|
+
|
|
|
+ <OPopup v-model:modelValue={state.memberBaoStatus} position="right">
|
|
|
+ <MemberBao />
|
|
|
+ </OPopup>
|
|
|
+
|
|
|
+ <OPopup v-model:modelValue={state.goodsStatus} position="right" destroy>
|
|
|
+ {state.goodsStatus && <GoodsDetail id={state.selectGoodsId} />}
|
|
|
+ </OPopup>
|
|
|
</>
|
|
|
)
|
|
|
}
|