import { Image, Cell, CellGroup, Tag, Button, Stepper, Icon, Popup, showConfirmDialog, showToast } from 'vant'; import { computed, defineComponent, onMounted, reactive } from 'vue'; import styles from './index.module.less'; import iconGift from './images/icon-gift.png'; import shopEmpty from './images/shop-empty.png'; import iconDateMember from './images/icon-date-member.png'; import MSticky from '@/components/m-sticky'; import MVideo from '@/components/m-video'; import { useRoute, useRouter } from 'vue-router'; import RegisterModal from './register-modal'; import { useStudentRegisterStore } from '@/store/modules/student-register-store'; import request from '@/helpers/request'; import { browser, moneyFormat } from '@/helpers/utils'; import deepClone from '@/helpers/deep-clone'; import OWxTip from '@/components/m-wx-tip'; import MDialog from '@/components/m-dialog'; export default defineComponent({ name: 'student-register', setup() { const route = useRoute(); const studentRegisterStore = useStudentRegisterStore(); const router = useRouter(); // 初始化学校编号 studentRegisterStore.setShoolId(route.query.sId as any); const forms = reactive({ schoolId: route.query.sId as any, paymentType: '', // 支付类型 popupShow: false, details: [] as any[], schoolType: '', // 学校类型 gradeYear: '', // 学制 bugGoods: false, // 是否购买AI registerType: '', // 报名类型 giftVipDay: 0, // 赠送天数 submitLoading: false, showMore: true, showTips: false, showButton: false, showMessage: '请使用微信扫描二维码' }); const getRegisterGoods = async () => { try { const { data } = await request.get( '/edu-app/open/userOrder/registerGoods/' + forms.schoolId, { noAuthorization: true // 是否请求接口的时候添加toekn } ); // 默认选中商品 studentRegisterStore.setVip(data.details || []); forms.details = deepClone(data.details || []); if (forms.details.length > 0) { forms.giftVipDay = forms.details[0].membershipDays; } forms.bugGoods = data.bugGoods; forms.schoolType = data.schoolType; forms.gradeYear = data.gradeYear; forms.registerType = data.registerType; if (browser().weixin) { if (data.registerType !== 'BUG_GOODS' || data.schoolStatus === 0) { forms.showTips = true; forms.showMessage = '二维码已经失效,详情请咨询学校老师'; forms.showButton = false; } } else { forms.showTips = true; } } catch {} }; // 计算金额 const calcPrice = computed(() => { let amount: number = 0; //现价 let originAmount: number = 0; // 原价 const vipList: any[] = studentRegisterStore.getVip; vipList.forEach((vip: any) => { amount += Number(vip.currentPrice); originAmount += Number(vip.originalPrice); }); const goodsList: any[] = studentRegisterStore.getGoods; goodsList.forEach((good: any) => { amount += Number(good.price) * good.quantity; originAmount += Number(good.originalPrice) * good.quantity; }); return { amount, originAmount }; }); // 删除商品 const onGoodsRemove = (item: any) => { showConfirmDialog({ message: '是否删除该商品', confirmButtonColor: '#FF8633' }).then(() => { studentRegisterStore.deleteGoods(item.productSkuId); }); }; // 登记成功之后购买 const onRegisterSubmit = async () => { try { forms.submitLoading = true; // 检测token是否失效 // const Authorization = storage.get(ACCESS_TOKEN) || ''; // const authInfo = await request.post('/edu-app/open/user/verification', { // noAuthorization: true, // data: { token: Authorization } // }); // // 判断当前token是否失效 // if (!authInfo.data) { // storage.remove(ACCESS_TOKEN); // studentRegisterStore.deleteToken(); // forms.popupRegister = true; // return; // } // // 请求是否有待支付订单,如果有则自动关闭 // const status = await paymentOrderUnpaid(); // if (status) return; // const schoolInfo = await request.get( // '/edu-app/userPaymentOrder/registerStatus/' + forms.schoolId // ); // const vipList = studentRegisterStore.getVip; // if (schoolInfo.data.hasBuyCourse && vipList.length > 0) { // // setTimeout(() => { // // showToast('您已购买乐器AI学练工具,请勿重复购买'); // // }, 100); // forms.dialogConfirmStatus = true; // return; // } // await paymentContinue(); router.push({ path: '/student-register-form', query: { schoolId: forms.schoolId } }); } finally { forms.submitLoading = false; } }; onMounted(async () => { try { getRegisterGoods(); } catch {} }); return () => (
{forms.details.map((item: any) => ( { if (studentRegisterStore.selectedVip(item.goodsId)) { studentRegisterStore.deleteVip(item.goodsId); } else { studentRegisterStore.setVip([item]); } }}> {{ icon: () => , title: () => (

{item.description}

{item.description && item.description.length >= 36 && forms.showMore ? ( { e.stopPropagation(); forms.showMore = false; }}> 查看更多 ) : ( '' )} {/*
{ e.stopPropagation(); router.push('/student-digital-tools'); }}> 查看详情 { e.stopPropagation(); forms.popupShow = true; }}> 介绍视频
*/}
) }}
{{ title: () => (
团购价: ¥ {moneyFormat(item.currentPrice)}
{item.currentPrice < item.originalPrice && ( ¥{moneyFormat(item.originalPrice)} )}
) }}
{item.membershipDays > 0 && ( {{ title: () => (
现在购买赠送 {item.membershipDays || 0} 天有效期
) }}
)}
))}
{forms.bugGoods && ( <>
{studentRegisterStore.getGoods && studentRegisterStore.getGoods.length <= 0 ? (

为你的音乐之旅做好准备

快去选购乐器吧~

) : ( studentRegisterStore.getGoods.map((goods: any) => ( {{ icon: () => ( ), title: () => (

{goods.name} {goods.brandName}

规格:{goods.spDataJson}

{goods.productSn}

onGoodsRemove(goods)}>
) }}
{{ title: () => (
团购价: ¥ {moneyFormat(goods.price)}
{goods.price < goods.originalPrice && ( ¥{moneyFormat(goods.originalPrice)} )}
) }}
)) )}
{studentRegisterStore.getGoods && studentRegisterStore.getGoods.length > 0 && ( )} )}
¥ {moneyFormat(calcPrice.value.amount)} {calcPrice.value.originAmount > calcPrice.value.amount ? ( ¥ {moneyFormat(calcPrice.value.originAmount)} ) : ( '' )}
{ const vipList = studentRegisterStore.getVip; const goodsList = studentRegisterStore.getGoods; if (vipList.length <= 0 && goodsList.length <= 0) { setTimeout(() => { showToast('请选择需要购买的商品'); }, 100); return; } onRegisterSubmit(); }}>
{forms.popupShow && ( )} {/* 是否在微信中打开 */} window.location.reload()} />
); } });