|
@@ -1,7 +1,7 @@
|
|
import { computed, defineComponent, onMounted, reactive, shallowRef } from 'vue'
|
|
import { computed, defineComponent, onMounted, reactive, shallowRef } from 'vue'
|
|
import styles from './index.module.less'
|
|
import styles from './index.module.less'
|
|
import ColHeader from '@/components/col-header'
|
|
import ColHeader from '@/components/col-header'
|
|
-import { Button, Image, Popup, Toast } from 'vant'
|
|
|
|
|
|
+import { Button, Image, NoticeBar, Popup, Toast } from 'vant'
|
|
import { state as baseState, setLogin } from '@/state'
|
|
import { state as baseState, setLogin } from '@/state'
|
|
import iconShare from './new-images/icon-share.png'
|
|
import iconShare from './new-images/icon-share.png'
|
|
import { useEventListener } from '@vant/use'
|
|
import { useEventListener } from '@vant/use'
|
|
@@ -19,6 +19,7 @@ import deepClone from '@/helpers/deep-clone'
|
|
import { memberSimpleType, memberType } from '@/constant'
|
|
import { memberSimpleType, memberType } from '@/constant'
|
|
import dayjs from 'dayjs'
|
|
import dayjs from 'dayjs'
|
|
import { orderStatus } from '../order-detail/orderStatus'
|
|
import { orderStatus } from '../order-detail/orderStatus'
|
|
|
|
+import TheNoticeBar from '@/components/the-noticeBar'
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
name: 'member-center',
|
|
name: 'member-center',
|
|
@@ -160,7 +161,7 @@ export default defineComponent({
|
|
window.scrollY ||
|
|
window.scrollY ||
|
|
window.pageYOffset ||
|
|
window.pageYOffset ||
|
|
document.documentElement.scrollTop
|
|
document.documentElement.scrollTop
|
|
- state.titleOpacity = height > 100 ? 1 : height / 100
|
|
|
|
|
|
+ state.titleOpacity = height > 80 ? 1 : 0
|
|
})
|
|
})
|
|
|
|
|
|
/** 切换购买类型 */
|
|
/** 切换购买类型 */
|
|
@@ -221,8 +222,11 @@ export default defineComponent({
|
|
userInfo.value.userVip.svipEndDate || new Date()
|
|
userInfo.value.userVip.svipEndDate || new Date()
|
|
).toDate()
|
|
).toDate()
|
|
} else if (userInfo.value.userVip.vipType === 'VIP') {
|
|
} else if (userInfo.value.userVip.vipType === 'VIP') {
|
|
|
|
+ // 购买Vip时,先有vip的有效时间,如果没有则取SVIP有效时间,都没有默认当前
|
|
startTime = dayjs(
|
|
startTime = dayjs(
|
|
- userInfo.value.userVip.vipEndDate || new Date()
|
|
|
|
|
|
+ userInfo.value.userVip.vipEndDate ||
|
|
|
|
+ userInfo.value.userVip.svipEndDate ||
|
|
|
|
+ new Date()
|
|
).toDate()
|
|
).toDate()
|
|
} else if (userInfo.value.userVip.vipType === 'PERMANENT_SVIP') {
|
|
} else if (userInfo.value.userVip.vipType === 'PERMANENT_SVIP') {
|
|
Toast('您已是永久SVIP会员')
|
|
Toast('您已是永久SVIP会员')
|
|
@@ -366,6 +370,7 @@ export default defineComponent({
|
|
color={`rgba(0,0,0, ${state.titleOpacity})`}
|
|
color={`rgba(0,0,0, ${state.titleOpacity})`}
|
|
backIconColor="black"
|
|
backIconColor="black"
|
|
hideHeader={false}
|
|
hideHeader={false}
|
|
|
|
+ border={false}
|
|
v-slots={{
|
|
v-slots={{
|
|
right: () => (
|
|
right: () => (
|
|
<Image
|
|
<Image
|
|
@@ -400,7 +405,7 @@ export default defineComponent({
|
|
</div>
|
|
</div>
|
|
<div class={styles.userInfo}>
|
|
<div class={styles.userInfo}>
|
|
<div class={styles.userName}>
|
|
<div class={styles.userName}>
|
|
- <span class={styles.name}>{userInfo.value.username}</span>
|
|
|
|
|
|
+ <span class={styles.name}>{userInfo.value.username}测试</span>
|
|
{userInfo.value.phone && (
|
|
{userInfo.value.phone && (
|
|
<span class={styles.phone}>({userInfo.value.phone})</span>
|
|
<span class={styles.phone}>({userInfo.value.phone})</span>
|
|
)}
|
|
)}
|
|
@@ -523,11 +528,11 @@ export default defineComponent({
|
|
src={state.discountTeacher.avatar || iconTeacher}
|
|
src={state.discountTeacher.avatar || iconTeacher}
|
|
class={styles.discountAvatar}
|
|
class={styles.discountAvatar}
|
|
/>
|
|
/>
|
|
-
|
|
|
|
- <span class={styles.discountName}>
|
|
|
|
- {state.discountTeacher.username}老师的
|
|
|
|
|
|
+ <TheNoticeBar class={styles.discountName} isAnimation>
|
|
|
|
+ {state.discountTeacher.username}
|
|
|
|
+ 老师的
|
|
<span>专属优惠~</span>
|
|
<span>专属优惠~</span>
|
|
- </span>
|
|
|
|
|
|
+ </TheNoticeBar>
|
|
|
|
|
|
<Image src={iconGift} class={styles.discountGift} />
|
|
<Image src={iconGift} class={styles.discountGift} />
|
|
</div>
|
|
</div>
|
|
@@ -553,8 +558,7 @@ export default defineComponent({
|
|
styles['system-item'],
|
|
styles['system-item'],
|
|
member.id === state.selectMember.id
|
|
member.id === state.selectMember.id
|
|
? styles.active
|
|
? styles.active
|
|
- : '',
|
|
|
|
- member.discount === 1 ? styles.discountItem : ''
|
|
|
|
|
|
+ : ''
|
|
]}
|
|
]}
|
|
onClick={() => {
|
|
onClick={() => {
|
|
state.selectMember = member
|
|
state.selectMember = member
|
|
@@ -565,10 +569,13 @@ export default defineComponent({
|
|
<span class={[styles.iconPermanent]}></span>
|
|
<span class={[styles.iconPermanent]}></span>
|
|
)}
|
|
)}
|
|
|
|
|
|
- <p class={styles.s_title}>{member.title}</p>
|
|
|
|
- {member.discount === 1 && (
|
|
|
|
- <span class={styles.discountTag}></span>
|
|
|
|
- )}
|
|
|
|
|
|
+ <p class={styles.s_title}>
|
|
|
|
+ {member.title}
|
|
|
|
+ {/* 优惠标识 */}
|
|
|
|
+ {member.discount === 1 && (
|
|
|
|
+ <span class={styles.discountTag}></span>
|
|
|
|
+ )}
|
|
|
|
+ </p>
|
|
<p class={styles.price}>
|
|
<p class={styles.price}>
|
|
<span>¥</span>
|
|
<span>¥</span>
|
|
{moneyFormat(calcSalePrice(member), '0,0[.]00')}
|
|
{moneyFormat(calcSalePrice(member), '0,0[.]00')}
|
|
@@ -615,19 +622,14 @@ export default defineComponent({
|
|
</p>
|
|
</p>
|
|
<p class={styles.s_title}>{member.title}</p>
|
|
<p class={styles.s_title}>{member.title}</p>
|
|
</div>
|
|
</div>
|
|
- {/* 只有永久才会有数量提示 */}
|
|
|
|
- {member.period === 'PERPETUAL' ? (
|
|
|
|
- <div class={styles.oneMaxNum}>限量1000份</div>
|
|
|
|
- ) : (
|
|
|
|
- <div
|
|
|
|
- class={[
|
|
|
|
- styles.oneMaxNum,
|
|
|
|
- styles.oneMaxNumPrice
|
|
|
|
- ]}
|
|
|
|
- >
|
|
|
|
- ¥{member.originalPrice}
|
|
|
|
- </div>
|
|
|
|
- )}
|
|
|
|
|
|
+ <div
|
|
|
|
+ class={[
|
|
|
|
+ styles.oneMaxNum,
|
|
|
|
+ styles.oneMaxNumPrice
|
|
|
|
+ ]}
|
|
|
|
+ >
|
|
|
|
+ ¥{member.originalPrice}
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<span
|
|
<span
|
|
class={[
|
|
class={[
|