|
@@ -22,11 +22,25 @@ import {
|
|
|
showToast
|
|
|
} from 'vant';
|
|
|
import MProtocol from '@/components/m-protocol';
|
|
|
+import { state as baseState, setLogin } from '@/state';
|
|
|
+import qs from 'query-string';
|
|
|
import MImgCode from '@/components/m-img-code';
|
|
|
-import { checkPhone } from '@/helpers/utils';
|
|
|
+import { browser, checkPhone } from '@/helpers/utils';
|
|
|
import request from '@/helpers/request';
|
|
|
import { useStudentRegisterStore } from '@/store/modules/student-register-store';
|
|
|
import { setLoginInit, state } from '@/state';
|
|
|
+import deepClone from '@/helpers/deep-clone';
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
+import { ACCESS_TOKEN } from '@/store/mutation-types';
|
|
|
+import { storage } from '@/helpers/storage';
|
|
|
+import OWxTip from '@/components/m-wx-tip';
|
|
|
+import MDialog from '@/components/m-dialog';
|
|
|
+import { CurrentTime, useCountDown } from '@vant/use';
|
|
|
+import QrcodePayment from '../qrcode-payment';
|
|
|
+import UserAuth from '../component/user-auth';
|
|
|
+import Payment from '@/views/adapay/payment';
|
|
|
+import { beforeSubmit } from '../order-state';
|
|
|
+import OPopup from '@/components/m-popup';
|
|
|
const studentRegisterStore = useStudentRegisterStore();
|
|
|
const classList: any = [];
|
|
|
for (let i = 1; i <= 40; i++) {
|
|
@@ -35,34 +49,14 @@ for (let i = 1; i <= 40; i++) {
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'register-modal',
|
|
|
- props: {
|
|
|
- schoolId: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- },
|
|
|
- gradeYear: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- },
|
|
|
- schoolType: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- },
|
|
|
- giftVipDay: {
|
|
|
- type: [String, Number],
|
|
|
- default: ''
|
|
|
- },
|
|
|
- registerType: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- }
|
|
|
- },
|
|
|
- emits: ['close', 'submit', 'error'],
|
|
|
- setup(props, { emit }) {
|
|
|
+ setup() {
|
|
|
const studentDetails = sessionStorage.getItem('register-student');
|
|
|
const countDownRef = ref();
|
|
|
+ const route = useRoute();
|
|
|
+ const router = useRouter();
|
|
|
const gradeList = ref([]);
|
|
|
const forms = reactive({
|
|
|
+ schoolId: route.query.schoolId as any,
|
|
|
countDownStatus: true,
|
|
|
countDownTime: 1000 * 120, // 倒计时时间
|
|
|
modelValue: false, // 是否选中协议
|
|
@@ -71,7 +65,34 @@ export default defineComponent({
|
|
|
currentClassText: '',
|
|
|
gradeStatus: false,
|
|
|
classStatus: false,
|
|
|
- loading: false
|
|
|
+ loading: false,
|
|
|
+ schoolType: '', // 学校类型
|
|
|
+ gradeYear: '', // 学制
|
|
|
+ bugGoods: false, // 是否购买AI
|
|
|
+ registerType: '', // 报名类型
|
|
|
+ giftVipDay: 0, // 赠送天数
|
|
|
+ dialogStatus: false,
|
|
|
+ dialogMessage: '',
|
|
|
+ dialogConfirmStatus: false,
|
|
|
+ paymentType: '', // 支付类型
|
|
|
+ contract_sign: false, // 是否实名认证
|
|
|
+ countDownTimePay: 60 * 1000,
|
|
|
+ dialogConfig: {} as any,
|
|
|
+ showMore: true,
|
|
|
+ showTips: false,
|
|
|
+ showButton: false,
|
|
|
+ showMessage: '请使用微信打开'
|
|
|
+ });
|
|
|
+ const state = reactive({
|
|
|
+ showQrcode: false,
|
|
|
+ qrCodeUrl: '',
|
|
|
+ pay_channel: '',
|
|
|
+ orderInfo: {} as any, // 订单信息
|
|
|
+ authShow: false,
|
|
|
+ orderNo: null as any,
|
|
|
+ config: {} as any,
|
|
|
+ paymentStatus: false,
|
|
|
+ orderTimer: null as any
|
|
|
});
|
|
|
const studentInfo = reactive({
|
|
|
autoRegister: true,
|
|
@@ -82,8 +103,8 @@ export default defineComponent({
|
|
|
currentGradeNum: '',
|
|
|
currentClass: '',
|
|
|
gender: 1,
|
|
|
- registerType: props.registerType, // 报名类型
|
|
|
- giftVipDay: props.giftVipDay || 0 // 赠送会员天数
|
|
|
+ registerType: null as any, // 报名类型
|
|
|
+ giftVipDay: 0 // 赠送会员天数
|
|
|
},
|
|
|
grant_type: 'password',
|
|
|
loginType: 'SMS',
|
|
@@ -91,6 +112,19 @@ export default defineComponent({
|
|
|
username: ''
|
|
|
});
|
|
|
|
|
|
+ const countDown = useCountDown({
|
|
|
+ // 倒计时 60 秒
|
|
|
+ time: forms.countDownTimePay,
|
|
|
+ onChange(current: CurrentTime) {
|
|
|
+ forms.dialogMessage = `有待支付订单,请在${Math.ceil(
|
|
|
+ current.total / 1000
|
|
|
+ )}s后重试`;
|
|
|
+ },
|
|
|
+ onFinish() {
|
|
|
+ forms.dialogStatus = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
const onCodeSend = () => {
|
|
|
forms.countDownStatus = false;
|
|
|
nextTick(() => {
|
|
@@ -110,6 +144,10 @@ export default defineComponent({
|
|
|
return checkPhone(studentInfo.username) ? true : false;
|
|
|
});
|
|
|
|
|
|
+ const orderType = computed(() => {
|
|
|
+ return state.orderInfo.orderType;
|
|
|
+ });
|
|
|
+
|
|
|
const onFinished = () => {
|
|
|
forms.countDownStatus = true;
|
|
|
countDownRef.value.reset();
|
|
@@ -121,13 +159,13 @@ export default defineComponent({
|
|
|
forms.loading = true;
|
|
|
const { extra, ...res } = studentInfo;
|
|
|
const result = await request.post('/edu-app/userlogin', {
|
|
|
- hideLoading: false,
|
|
|
+ // hideLoading: false,
|
|
|
requestType: 'form',
|
|
|
data: {
|
|
|
...res,
|
|
|
extra: JSON.stringify({
|
|
|
...extra,
|
|
|
- schoolId: props.schoolId
|
|
|
+ schoolId: forms.schoolId
|
|
|
})
|
|
|
}
|
|
|
});
|
|
@@ -139,24 +177,33 @@ export default defineComponent({
|
|
|
...res,
|
|
|
extra: JSON.stringify({
|
|
|
...extra,
|
|
|
- schoolId: props.schoolId
|
|
|
+ schoolId: forms.schoolId
|
|
|
})
|
|
|
})
|
|
|
);
|
|
|
- emit('close');
|
|
|
- emit('error', {
|
|
|
- code: result.code,
|
|
|
- message: result.message
|
|
|
- });
|
|
|
+
|
|
|
+ if (result.code === 5436) {
|
|
|
+ forms.showTips = true;
|
|
|
+ forms.showMessage = '二维码已经失效,详情请咨询学校老师';
|
|
|
+ forms.showButton = false;
|
|
|
+ } else if (result.code === 5435) {
|
|
|
+ forms.showTips = true;
|
|
|
+ forms.showMessage = result.message;
|
|
|
+ forms.showButton = true;
|
|
|
+ }
|
|
|
} else {
|
|
|
- console.log(111);
|
|
|
studentRegisterStore.setToken(
|
|
|
result.data.token_type + ' ' + result.data.access_token
|
|
|
);
|
|
|
setLoginInit();
|
|
|
|
|
|
- emit('close');
|
|
|
- emit('submit');
|
|
|
+ // 获取用户信息
|
|
|
+ const res = await request.get('/edu-app/user/getUserInfo', {
|
|
|
+ requestType: 'form'
|
|
|
+ });
|
|
|
+ setLogin(res.data);
|
|
|
+
|
|
|
+ await onRegisterSubmit();
|
|
|
}
|
|
|
} catch {
|
|
|
} finally {
|
|
@@ -199,13 +246,13 @@ export default defineComponent({
|
|
|
{ text: '八年级', value: 8 },
|
|
|
{ text: '九年级', value: 9 }
|
|
|
];
|
|
|
- if (props.gradeYear === 'FIVE_YEAR_SYSTEM') {
|
|
|
+ if (forms.gradeYear === 'FIVE_YEAR_SYSTEM') {
|
|
|
tempList.push([...five]);
|
|
|
- } else if (props.gradeYear === 'SIX_YEAR_SYSTEM') {
|
|
|
+ } else if (forms.gradeYear === 'SIX_YEAR_SYSTEM') {
|
|
|
tempList.push([...five, ...one]);
|
|
|
- } else if (props.gradeYear === 'THREE_YEAR_SYSTEM') {
|
|
|
+ } else if (forms.gradeYear === 'THREE_YEAR_SYSTEM') {
|
|
|
tempList.push([...three]);
|
|
|
- } else if (props.gradeYear === 'FORE_YEAR_SYSTEM') {
|
|
|
+ } else if (forms.gradeYear === 'FORE_YEAR_SYSTEM') {
|
|
|
tempList.push([...one, ...three]);
|
|
|
} else {
|
|
|
tempList.push([...five, ...one, ...three]);
|
|
@@ -213,7 +260,344 @@ export default defineComponent({
|
|
|
return tempList;
|
|
|
};
|
|
|
|
|
|
- onMounted(() => {
|
|
|
+ const getRegisterGoods = async () => {
|
|
|
+ try {
|
|
|
+ const { data } = await request.get(
|
|
|
+ '/edu-app/open/userOrder/registerGoods/' + forms.schoolId,
|
|
|
+ {
|
|
|
+ noAuthorization: true // 是否请求接口的时候添加toekn
|
|
|
+ }
|
|
|
+ );
|
|
|
+ // 默认选中商品
|
|
|
+ // studentRegisterStore.setVip(data.details || []);
|
|
|
+ const details = deepClone(data.details || []);
|
|
|
+ if (details.length > 0) {
|
|
|
+ forms.giftVipDay = details[0].membershipDays;
|
|
|
+ }
|
|
|
+ forms.bugGoods = data.bugGoods;
|
|
|
+ forms.schoolType = data.schoolType;
|
|
|
+ forms.gradeYear = data.gradeYear;
|
|
|
+ forms.registerType = data.registerType;
|
|
|
+ studentInfo.extra.giftVipDay = forms.giftVipDay;
|
|
|
+ studentInfo.extra.registerType = forms.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 onRegisterSubmit = async () => {
|
|
|
+ try {
|
|
|
+ // 请求是否有待支付订单,如果有则自动关闭
|
|
|
+ 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) {
|
|
|
+ forms.dialogConfirmStatus = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ await paymentContinue();
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 查询未支付订单
|
|
|
+ const paymentOrderUnpaid = async () => {
|
|
|
+ let result = false;
|
|
|
+ try {
|
|
|
+ const { data } = await request.get('/edu-app/userPaymentOrder/unpaid');
|
|
|
+ // 判断是否有待支付订单
|
|
|
+
|
|
|
+ if (!data.id) return false;
|
|
|
+
|
|
|
+ // 判断是否可以取消订单
|
|
|
+ if (data.cancelPayment) {
|
|
|
+ await request.post(
|
|
|
+ '/edu-app/userPaymentOrder/cancelPayment/' + data.orderNo
|
|
|
+ );
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ forms.countDownTime = data.cancelTimes;
|
|
|
+ countDown.reset(Number(data.cancelTimes));
|
|
|
+ countDown.start();
|
|
|
+ forms.dialogMessage = `有待支付订单,请在${Math.ceil(
|
|
|
+ countDown.current.value.total / 1000
|
|
|
+ )}s后重试`;
|
|
|
+ forms.dialogStatus = true;
|
|
|
+ forms.dialogConfig = data;
|
|
|
+ result = true;
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ };
|
|
|
+
|
|
|
+ const paymentContinue = async () => {
|
|
|
+ try {
|
|
|
+ const vipList = studentRegisterStore.getVip;
|
|
|
+ const goodsList = studentRegisterStore.getGoods;
|
|
|
+ const params: any[] = [];
|
|
|
+ vipList.forEach((vip: any) => {
|
|
|
+ params.push({
|
|
|
+ giftVipDay: vip.membershipDays,
|
|
|
+ goodsId: vip.goodsId,
|
|
|
+ goodsNum: 1,
|
|
|
+ goodsType: vip.goodsType,
|
|
|
+ paymentCashAmount: vip.currentPrice, // 现金支付金额
|
|
|
+ paymentCouponAmount: 0 // 优惠券金额
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ goodsList.forEach((goods: any) => {
|
|
|
+ params.push({
|
|
|
+ goodsId: goods.productId,
|
|
|
+ goodsNum: goods.quantity,
|
|
|
+ goodsType: 'INSTRUMENTS',
|
|
|
+ paymentCashAmount: goods.price, // 现金支付金额
|
|
|
+ paymentCouponAmount: 0, // 优惠券金额
|
|
|
+ goodsSkuId: goods.productSkuId
|
|
|
+ });
|
|
|
+ });
|
|
|
+ // 创建订单
|
|
|
+ const result = await request.post(
|
|
|
+ '/edu-app/userPaymentOrder/executeOrder',
|
|
|
+ {
|
|
|
+ // hideLoading: false,
|
|
|
+ data: {
|
|
|
+ registerType: forms.registerType,
|
|
|
+ paymentType: forms.paymentType,
|
|
|
+ bizId: forms.schoolId, // 乐团编号
|
|
|
+ orderType: 'SCHOOL_REGISTER',
|
|
|
+ paymentCashAmount: calcPrice.value.amount || 0,
|
|
|
+ paymentCouponAmount: 0,
|
|
|
+ goodsInfos: params,
|
|
|
+ orderName: '学生登记',
|
|
|
+ orderDesc: '学生登记'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ if (result.code === 5436) {
|
|
|
+ forms.showTips = true;
|
|
|
+ forms.showMessage = '二维码已经失效,详情请咨询学校老师';
|
|
|
+ forms.showButton = false;
|
|
|
+ } else if (result.code === 5435) {
|
|
|
+ forms.showTips = true;
|
|
|
+ forms.showMessage = result.message;
|
|
|
+ forms.showButton = true;
|
|
|
+ } else {
|
|
|
+ state.config = {
|
|
|
+ ...result.data.paymentConfig,
|
|
|
+ paymentType: result.data.paymentType
|
|
|
+ };
|
|
|
+ state.orderNo = result.data.orderNo;
|
|
|
+
|
|
|
+ const users = baseState.user.data;
|
|
|
+ // 判断是否需要实名认证, 姓名,卡号 - 参数设置可以控制
|
|
|
+ if (
|
|
|
+ forms.contract_sign &&
|
|
|
+ (!users?.account.realName || !users?.account.idCardNo)
|
|
|
+ ) {
|
|
|
+ state.authShow = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const { data } = await request.post(
|
|
|
+ '/edu-app/userPaymentOrder/updateReceiveAddress',
|
|
|
+ {
|
|
|
+ // hideLoading: false,
|
|
|
+ data: {
|
|
|
+ orderNo: state.orderNo,
|
|
|
+ orderType: 'SCHOOL_REGISTER'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ state.pay_channel = data.paymentChannel;
|
|
|
+ if (data.status !== 'WAIT_PAY' && data.status !== 'PAYING') {
|
|
|
+ router.replace({
|
|
|
+ path: '/payment-result',
|
|
|
+ query: {
|
|
|
+ orderNo: state.orderNo
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ onCallback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e: any) {
|
|
|
+ console.log(e, 'any');
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description 回调,判断是否有支付渠道,如果有则直接去支付
|
|
|
+ * @returns void
|
|
|
+ */
|
|
|
+ const onCallback = () => {
|
|
|
+ const pt = state.pay_channel;
|
|
|
+ // 判断是否有支付方式
|
|
|
+ if (pt) {
|
|
|
+ const payCode: string = beforeSubmit(state.pay_channel);
|
|
|
+ onConfirm({
|
|
|
+ payCode,
|
|
|
+ pay_channel: pt
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ if (orderType.value === 'VIP') {
|
|
|
+ state.paymentStatus = true;
|
|
|
+ } else {
|
|
|
+ // 直接去拉取微信支付
|
|
|
+ onConfirm({
|
|
|
+ payCode: 'payResult',
|
|
|
+ pay_channel: 'wx_pub'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const onConfirm = (val: any) => {
|
|
|
+ const config: any = state.config;
|
|
|
+ state.pay_channel = val.pay_channel;
|
|
|
+
|
|
|
+ const params = qs.stringify({
|
|
|
+ pay_channel: val.pay_channel,
|
|
|
+ wxAppId: config.wxAppId,
|
|
|
+ alipayAppId: config.alipayAppId,
|
|
|
+ paymentType: forms.paymentType,
|
|
|
+ body: config.body,
|
|
|
+ price: config.price,
|
|
|
+ orderNo: config.merOrderNo,
|
|
|
+ userId: config.userId
|
|
|
+ });
|
|
|
+ if (val.payCode === 'payResult') {
|
|
|
+ window.location.href =
|
|
|
+ window.location.origin + '/classroom-app/#/payResult?' + params;
|
|
|
+ } else {
|
|
|
+ state.qrCodeUrl =
|
|
|
+ window.location.origin + '/classroom-app/#/payDefine?' + params;
|
|
|
+ state.showQrcode = true;
|
|
|
+ state.paymentStatus = false;
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ getPaymentOrderStatus();
|
|
|
+ }, 300);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 放弃支付时,则取消订单
|
|
|
+ const onBackOut = async () => {
|
|
|
+ try {
|
|
|
+ await request.post(
|
|
|
+ '/edu-app/userPaymentOrder/cancelPayment/' + state.orderNo
|
|
|
+ );
|
|
|
+ // router.back();
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 轮询查询订单状态
|
|
|
+ const getPaymentOrderStatus = async () => {
|
|
|
+ // 循环查询订单
|
|
|
+ // const orderNo = state.orderNo
|
|
|
+ const orderTimer = setInterval(async () => {
|
|
|
+ // 判断是否在当前路由,如果不是则清除定时器
|
|
|
+ if (route.name != 'student-register-form') {
|
|
|
+ clearInterval(orderTimer);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ state.orderTimer = orderTimer;
|
|
|
+ try {
|
|
|
+ const { data } = await request.post(
|
|
|
+ '/edu-app/open/userOrder/paymentStatus/' + state.orderNo,
|
|
|
+ {
|
|
|
+ hideLoading: true
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ if (data.status !== 'WAIT_PAY' && data.status !== 'PAYING') {
|
|
|
+ // 默认关闭支付二维码弹窗
|
|
|
+ state.showQrcode = false;
|
|
|
+ clearInterval(state.orderTimer);
|
|
|
+ setTimeout(() => {
|
|
|
+ router.replace({
|
|
|
+ path: '/payment-result',
|
|
|
+ query: {
|
|
|
+ orderNo: state.orderNo
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }, 100);
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ clearInterval(state.orderTimer);
|
|
|
+ }
|
|
|
+ }, 5000);
|
|
|
+ };
|
|
|
+ // 实名认证成功
|
|
|
+ const onAuthSuccess = () => {
|
|
|
+ //
|
|
|
+ state.authShow = false;
|
|
|
+ paymentContinue(); // 实名成功后自动支付
|
|
|
+ };
|
|
|
+
|
|
|
+ onMounted(async () => {
|
|
|
+ try {
|
|
|
+ // 获取支付类型
|
|
|
+ const { data } = await request.get(
|
|
|
+ '/edu-app/open/paramConfig/queryByParamNameList',
|
|
|
+ {
|
|
|
+ requestType: 'form',
|
|
|
+ params: {
|
|
|
+ paramNames: 'payment_service_provider,contract_sign'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ if (data && Array.isArray(data)) {
|
|
|
+ data.forEach((item: any) => {
|
|
|
+ if (item.paramName === 'contract_sign') {
|
|
|
+ forms.contract_sign = item.paramValue === '1' ? true : false;
|
|
|
+ } else if (item.paramName === 'payment_service_provider') {
|
|
|
+ forms.paymentType = item.paramValue || '';
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ getRegisterGoods();
|
|
|
+ } catch {}
|
|
|
gradeList.value = getGradeList();
|
|
|
if (studentDetails) {
|
|
|
const studentJson = JSON.parse(studentDetails);
|
|
@@ -436,6 +820,63 @@ export default defineComponent({
|
|
|
}}
|
|
|
/>
|
|
|
</Popup>
|
|
|
+
|
|
|
+ {/* 已经购买过样品 */}
|
|
|
+ <MDialog
|
|
|
+ title="提示"
|
|
|
+ v-model:show={forms.dialogConfirmStatus}
|
|
|
+ message={'已购买会员,是否确认购买?'}
|
|
|
+ primaryColor="#FF8057"
|
|
|
+ allowHtml={true}
|
|
|
+ confirmButtonText="确定"
|
|
|
+ showCancelButton
|
|
|
+ onConfirm={async () => {
|
|
|
+ await paymentContinue();
|
|
|
+ }}
|
|
|
+ />
|
|
|
+
|
|
|
+ <Popup
|
|
|
+ show={state.paymentStatus}
|
|
|
+ closeOnClickOverlay={false}
|
|
|
+ position="bottom"
|
|
|
+ round
|
|
|
+ closeOnPopstate
|
|
|
+ safeAreaInsetBottom
|
|
|
+ style={{ minHeight: '30%' }}>
|
|
|
+ <Payment
|
|
|
+ paymentConfig={state.orderInfo}
|
|
|
+ onClose={() => (state.paymentStatus = false)}
|
|
|
+ onBackOut={onBackOut}
|
|
|
+ onConfirm={(val: any) => onConfirm(val)}
|
|
|
+ />
|
|
|
+ </Popup>
|
|
|
+
|
|
|
+ <Popup
|
|
|
+ v-model:show={state.showQrcode}
|
|
|
+ round
|
|
|
+ onClose={() => {
|
|
|
+ // 二维码关闭时清除定时器
|
|
|
+ clearInterval(state.orderTimer);
|
|
|
+ }}>
|
|
|
+ <QrcodePayment
|
|
|
+ url={state.qrCodeUrl}
|
|
|
+ pay_channel={state.pay_channel}
|
|
|
+ orderType={orderType.value}
|
|
|
+ />
|
|
|
+ </Popup>
|
|
|
+
|
|
|
+ <OPopup v-model:modelValue={state.authShow}>
|
|
|
+ <UserAuth onSuccess={onAuthSuccess} hideHeader={!browser().isApp} />
|
|
|
+ </OPopup>
|
|
|
+
|
|
|
+ {/* 是否在微信中打开 */}
|
|
|
+ <OWxTip
|
|
|
+ show={forms.showTips}
|
|
|
+ message={forms.showMessage}
|
|
|
+ showButton={forms.showButton}
|
|
|
+ buttonText="刷新"
|
|
|
+ onConfirm={() => window.location.reload()}
|
|
|
+ />
|
|
|
</div>
|
|
|
);
|
|
|
}
|