|
@@ -15,6 +15,8 @@ import OHeader from '@/components/o-header'
|
|
import member1 from './images/member-1.png'
|
|
import member1 from './images/member-1.png'
|
|
import member2 from './images/member-2.png'
|
|
import member2 from './images/member-2.png'
|
|
import member3 from './images/member-3.png'
|
|
import member3 from './images/member-3.png'
|
|
|
|
+import iconQuestion from './images/icon-question.png'
|
|
|
|
+import ODialog from '@/components/o-dialog'
|
|
|
|
|
|
export const getAssetsHomeFile = (fileName: string) => {
|
|
export const getAssetsHomeFile = (fileName: string) => {
|
|
const path = `./images/${fileName}`
|
|
const path = `./images/${fileName}`
|
|
@@ -29,7 +31,8 @@ export default defineComponent({
|
|
return {
|
|
return {
|
|
functionList: [] as any,
|
|
functionList: [] as any,
|
|
selectMember: {} as any,
|
|
selectMember: {} as any,
|
|
- users: {} as any
|
|
|
|
|
|
+ users: {} as any,
|
|
|
|
+ memberStatus: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -51,40 +54,40 @@ export default defineComponent({
|
|
try {
|
|
try {
|
|
const userInfo = await request.get('/api-student/student/member')
|
|
const userInfo = await request.get('/api-student/student/member')
|
|
this.users = userInfo.data || {}
|
|
this.users = userInfo.data || {}
|
|
- this.functionList = [
|
|
|
|
- {
|
|
|
|
- title: '五线谱<br />跟播',
|
|
|
|
- icon: getAssetsHomeFile(`1.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '演奏指法<br />跟播',
|
|
|
|
- icon: getAssetsHomeFile(`2.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '原声/伴奏<br />切换',
|
|
|
|
- icon: getAssetsHomeFile(`3.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '播放速度<br />调整',
|
|
|
|
- icon: getAssetsHomeFile(`4.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '五线谱选段<br />播放',
|
|
|
|
- icon: getAssetsHomeFile(`5.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '智能评测',
|
|
|
|
- icon: getAssetsHomeFile(`6.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '评测报告',
|
|
|
|
- icon: getAssetsHomeFile(`7.png`)
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '评测音视频<br />云储存',
|
|
|
|
- icon: getAssetsHomeFile(`8.png`)
|
|
|
|
- }
|
|
|
|
- ]
|
|
|
|
|
|
+ // this.functionList = [
|
|
|
|
+ // {
|
|
|
|
+ // title: '五线谱<br />跟播',
|
|
|
|
+ // icon: getAssetsHomeFile(`1.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '演奏指法<br />跟播',
|
|
|
|
+ // icon: getAssetsHomeFile(`2.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '原声/伴奏<br />切换',
|
|
|
|
+ // icon: getAssetsHomeFile(`3.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '播放速度<br />调整',
|
|
|
|
+ // icon: getAssetsHomeFile(`4.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '五线谱选段<br />播放',
|
|
|
|
+ // icon: getAssetsHomeFile(`5.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '智能评测',
|
|
|
|
+ // icon: getAssetsHomeFile(`6.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '评测报告',
|
|
|
|
+ // icon: getAssetsHomeFile(`7.png`)
|
|
|
|
+ // },
|
|
|
|
+ // {
|
|
|
|
+ // title: '评测音视频<br />云储存',
|
|
|
|
+ // icon: getAssetsHomeFile(`8.png`)
|
|
|
|
+ // }
|
|
|
|
+ // ]
|
|
|
|
|
|
const { data } = await request.post(`/api-student/cityFeeSetting/member`)
|
|
const { data } = await request.post(`/api-student/cityFeeSetting/member`)
|
|
this.selectMember = data
|
|
this.selectMember = data
|
|
@@ -188,7 +191,10 @@ export default defineComponent({
|
|
<OHeader background="#ffe5cc" border={false} />
|
|
<OHeader background="#ffe5cc" border={false} />
|
|
<div class={styles.member_container}>
|
|
<div class={styles.member_container}>
|
|
<Cell
|
|
<Cell
|
|
- class={styles.userMember}
|
|
|
|
|
|
+ class={[
|
|
|
|
+ styles.userMember,
|
|
|
|
+ this.users.purchaseMemberRecord ? styles.purchaseMember : ''
|
|
|
|
+ ]}
|
|
labelClass={styles.timeRemaining}
|
|
labelClass={styles.timeRemaining}
|
|
center
|
|
center
|
|
v-slots={{
|
|
v-slots={{
|
|
@@ -217,13 +223,26 @@ export default defineComponent({
|
|
),
|
|
),
|
|
label: () => (
|
|
label: () => (
|
|
<div class={styles.member_time}>
|
|
<div class={styles.member_time}>
|
|
- {this.userInfo.isVip ? (
|
|
|
|
- <div>
|
|
|
|
- 会员权益有效期剩余
|
|
|
|
- <span class={styles.remaining}>{this.userInfo.membershipDays}</span>天
|
|
|
|
- </div>
|
|
|
|
|
|
+ {!this.users.purchaseMemberRecord ? (
|
|
|
|
+ <>
|
|
|
|
+ {this.userInfo.isVip ? (
|
|
|
|
+ <div>
|
|
|
|
+ 会员权益有效期剩余
|
|
|
|
+ <span class={styles.remaining}>{this.userInfo.membershipDays}</span>天
|
|
|
|
+ </div>
|
|
|
|
+ ) : (
|
|
|
|
+ <div>亲,您还不是会员哟</div>
|
|
|
|
+ )}
|
|
|
|
+ </>
|
|
) : (
|
|
) : (
|
|
- <div>亲,您还不是会员哟</div>
|
|
|
|
|
|
+ <div class={styles.beforeQuestion}>
|
|
|
|
+ <Icon
|
|
|
|
+ name={iconQuestion}
|
|
|
|
+ class={styles.iconQeustion}
|
|
|
|
+ onClick={() => (this.memberStatus = true)}
|
|
|
|
+ />
|
|
|
|
+ 您有<span>待激活</span>团练宝
|
|
|
|
+ </div>
|
|
)}
|
|
)}
|
|
</div>
|
|
</div>
|
|
)
|
|
)
|
|
@@ -231,29 +250,38 @@ export default defineComponent({
|
|
></Cell>
|
|
></Cell>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class={styles.memberContainer}>
|
|
|
|
|
|
+ <div
|
|
|
|
+ class={[
|
|
|
|
+ styles.memberContainer,
|
|
|
|
+ this.users.purchaseMemberRecord ? styles.beforMemberContainer : ''
|
|
|
|
+ ]}
|
|
|
|
+ >
|
|
<div class={styles.memberItem}>
|
|
<div class={styles.memberItem}>
|
|
<div class={styles.title}>
|
|
<div class={styles.title}>
|
|
会员<span>VIP</span>
|
|
会员<span>VIP</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class={styles['system-list']}>
|
|
|
|
- <div class={[styles['system-item'], styles.active]}>
|
|
|
|
- <p class={[styles.title, 'van-hairline--bottom']}>
|
|
|
|
- 半年会员
|
|
|
|
- <span>(6个月)</span>
|
|
|
|
- </p>
|
|
|
|
- <div class={styles.priceGroup}>
|
|
|
|
- <p class={styles.price}>
|
|
|
|
- <span>¥</span>
|
|
|
|
- {moneyFormat(this.selectMember.salePrice)}
|
|
|
|
|
|
+ {!this.users.purchaseMemberRecord ? (
|
|
|
|
+ <div class={styles['system-list']}>
|
|
|
|
+ <div class={[styles['system-item'], styles.active]}>
|
|
|
|
+ <p class={[styles.title, 'van-hairline--bottom']}>
|
|
|
|
+ 半年会员
|
|
|
|
+ <span>(6个月)</span>
|
|
</p>
|
|
</p>
|
|
- <del class={styles.originalPrice}>
|
|
|
|
- ¥{moneyFormat(this.selectMember.originalPrice)}
|
|
|
|
- </del>
|
|
|
|
|
|
+ <div class={styles.priceGroup}>
|
|
|
|
+ <p class={styles.price}>
|
|
|
|
+ <span>¥</span>
|
|
|
|
+ {moneyFormat(this.selectMember.salePrice)}
|
|
|
|
+ </p>
|
|
|
|
+ <del class={styles.originalPrice}>
|
|
|
|
+ ¥{moneyFormat(this.selectMember.originalPrice)}
|
|
|
|
+ </del>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ ) : (
|
|
|
|
+ ''
|
|
|
|
+ )}
|
|
</div>
|
|
</div>
|
|
<div class={styles.memberImgs}>
|
|
<div class={styles.memberImgs}>
|
|
<img src={member1} />
|
|
<img src={member1} />
|
|
@@ -280,30 +308,43 @@ export default defineComponent({
|
|
</div>
|
|
</div>
|
|
</div> */}
|
|
</div> */}
|
|
</div>
|
|
</div>
|
|
- <div class={styles.btnGroup}>
|
|
|
|
- <div class={styles.priceSection}>
|
|
|
|
- 支付金额:
|
|
|
|
- <div class={styles.price}>
|
|
|
|
- <span class={styles.priceUnit}>¥</span>
|
|
|
|
- <span class={styles.priceNum}>
|
|
|
|
- {moneyFormat(this.calcSalePrice(this.selectMember) || 0)}
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- {this.selectMember?.discount == 1 && (
|
|
|
|
- <div class={[styles.discountItem, styles.discountBuy]}>
|
|
|
|
- <img src={iconDiscount} />
|
|
|
|
|
|
+ {!this.users.purchaseMemberRecord ? (
|
|
|
|
+ <div class={styles.btnGroup}>
|
|
|
|
+ <div class={styles.priceSection}>
|
|
|
|
+ 支付金额:
|
|
|
|
+ <div class={styles.price}>
|
|
|
|
+ <span class={styles.priceUnit}>¥</span>
|
|
|
|
+ <span class={styles.priceNum}>
|
|
|
|
+ {moneyFormat(this.calcSalePrice(this.selectMember) || 0)}
|
|
|
|
+ </span>
|
|
</div>
|
|
</div>
|
|
- )}
|
|
|
|
|
|
+ {this.selectMember?.discount == 1 && (
|
|
|
|
+ <div class={[styles.discountItem, styles.discountBuy]}>
|
|
|
|
+ <img src={iconDiscount} />
|
|
|
|
+ </div>
|
|
|
|
+ )}
|
|
|
|
+ </div>
|
|
|
|
+ <Button
|
|
|
|
+ color="linear-gradient(220deg, #DFA164 0%, #FAC87E 100%)"
|
|
|
|
+ round
|
|
|
|
+ class={styles.btn}
|
|
|
|
+ onClick={this.onSubmit}
|
|
|
|
+ >
|
|
|
|
+ {this.userInfo.isVip ? '立即续费' : '立即开通'}
|
|
|
|
+ </Button>
|
|
</div>
|
|
</div>
|
|
- <Button
|
|
|
|
- color="linear-gradient(220deg, #DFA164 0%, #FAC87E 100%)"
|
|
|
|
- round
|
|
|
|
- class={styles.btn}
|
|
|
|
- onClick={this.onSubmit}
|
|
|
|
- >
|
|
|
|
- {this.userInfo.isVip ? '立即续费' : '立即开通'}
|
|
|
|
- </Button>
|
|
|
|
- </div>
|
|
|
|
|
|
+ ) : (
|
|
|
|
+ ''
|
|
|
|
+ )}
|
|
|
|
+ {/* */}
|
|
|
|
+
|
|
|
|
+ <ODialog
|
|
|
|
+ v-model:show={this.memberStatus}
|
|
|
|
+ title="待激活团练宝"
|
|
|
|
+ message="为了避免团练宝会员时长浪费,报名乐团时购买的团练宝会员将在乐团首次训练结束后激活,具体训练时间请咨询乐团管理老师。"
|
|
|
|
+ messageAlign="left"
|
|
|
|
+ confirmButtonText="我知道了"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
)
|
|
)
|
|
}
|
|
}
|