|
@@ -35,6 +35,7 @@ import MSticky from '@/components/m-sticky';
|
|
|
import { useRoute, useRouter } from 'vue-router';
|
|
|
import { useStudentRegisterStore } from '@/store/modules/student-register-store';
|
|
|
import request from '@/helpers/request';
|
|
|
+import requestStudent from './request';
|
|
|
import { browser, checkPhone, getUrlCode, moneyFormat } from '@/helpers/utils';
|
|
|
import deepClone from '@/helpers/deep-clone';
|
|
|
import OWxTip from '@/components/m-wx-tip';
|
|
@@ -142,8 +143,15 @@ export default defineComponent({
|
|
|
gradeStatus: false,
|
|
|
classStatus: false,
|
|
|
loading: false,
|
|
|
+ // dialogStatusVisible: false,
|
|
|
+ // dialogStatusMessage: '',
|
|
|
+
|
|
|
dialogStatus: false,
|
|
|
dialogMessage: '',
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ messageAlign: 'center' as 'left' | 'center' | 'right',
|
|
|
+
|
|
|
dialogConfirmStatus: false,
|
|
|
contract_sign: false, // 是否实名认证
|
|
|
countDownTimePay: 60 * 1000,
|
|
@@ -198,18 +206,18 @@ export default defineComponent({
|
|
|
const pageTimer = useInterval(1000, { controls: true });
|
|
|
pageTimer.pause();
|
|
|
|
|
|
- const countDown = useCountDown({
|
|
|
- // 倒计时 60 秒
|
|
|
- time: forms.countDownTimePay,
|
|
|
- onChange(current: CurrentTime) {
|
|
|
- forms.dialogMessage = `有待支付订单,请在${Math.ceil(
|
|
|
- current.total / 1000
|
|
|
- )}s后重试`;
|
|
|
- },
|
|
|
- onFinish() {
|
|
|
- forms.dialogStatus = false;
|
|
|
- }
|
|
|
- });
|
|
|
+ // const countDown = useCountDown({
|
|
|
+ // // 倒计时 60 秒
|
|
|
+ // time: forms.countDownTimePay,
|
|
|
+ // onChange(current: CurrentTime) {
|
|
|
+ // forms.dialogStatusMessage = `有待支付订单,请在${Math.ceil(
|
|
|
+ // current.total / 1000
|
|
|
+ // )}s后重试`;
|
|
|
+ // },
|
|
|
+ // onFinish() {
|
|
|
+ // forms.dialogStatusVisible = false;
|
|
|
+ // }
|
|
|
+ // });
|
|
|
|
|
|
const overCountDown = useCountDown({
|
|
|
time: forms.activeOverTime,
|
|
@@ -591,27 +599,99 @@ export default defineComponent({
|
|
|
const paymentOrderUnpaid = async () => {
|
|
|
let result = false;
|
|
|
try {
|
|
|
- const { data } = await request.get('/edu-app/userPaymentOrder/unpaid');
|
|
|
+ const { data } = await request.get(
|
|
|
+ '/edu-app/userPaymentOrder/schoolRegisterOrder?schoolId=' +
|
|
|
+ forms.schoolId
|
|
|
+ );
|
|
|
// 判断是否有待支付订单
|
|
|
|
|
|
- if (!data.id) return false;
|
|
|
+ if (data && data.length > 0) {
|
|
|
+ let isPadding = false; // 是否有待支付订单
|
|
|
+ let paddingConfig = {} as any;
|
|
|
+ let paddingData = {} as any;
|
|
|
+ let isFinal = false; // 是否有完成订单
|
|
|
+ let finalConfig = {} as any;
|
|
|
+ data.forEach((element: any) => {
|
|
|
+ // 判断是否待支付
|
|
|
+ if (element.status === 'PAYING' || element.status === 'WAIT_PAY') {
|
|
|
+ isPadding = true;
|
|
|
+ paddingConfig = element.paymentConfig;
|
|
|
+ paddingData = element;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (
|
|
|
+ element.status === 'PAID' ||
|
|
|
+ element.status === 'PART_REFUNDED' ||
|
|
|
+ element.status === 'REFUNDED'
|
|
|
+ ) {
|
|
|
+ isFinal = true;
|
|
|
+ finalConfig = element.paymentConfig;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 判断是否有完成订单 并且选择 自备
|
|
|
+ if (isFinal && forms.joinType === 'tradition') {
|
|
|
+ setTimeout(() => {
|
|
|
+ showToast('您已通过数字化方式报名成功');
|
|
|
+ }, 100);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提交报名信息时,判断该手机号是否存在待支付订单,若存则判断本次提交的报名方式,若本次提交的是团购则提示【您有待支付的报名订单,是否继续支付 重新下单/继续支付】,点击重新下单时,关闭老订单,创建新订单;若本次提交的是自备,则提示 【您有数字化方式报名的待支付订单,请关闭订单后重新报名 取消/关闭】取消则停留在当前界面,关闭则关闭订单,并停留在当前界面,用户需要再次点击报名按钮提交信息
|
|
|
+ if (isPadding && forms.joinType === 'tradition') {
|
|
|
+ forms.dialogStatus = true;
|
|
|
+ forms.dialogMessage =
|
|
|
+ '您有数字化方式报名的待支付订单,请关闭订单后重新报名';
|
|
|
+ forms.cancelButtonText = '取消';
|
|
|
+ forms.confirmButtonText = '关闭';
|
|
|
+ forms.dialogConfig = paddingConfig;
|
|
|
+ forms.messageAlign = 'left';
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if (isPadding && forms.joinType === 'digitalize') {
|
|
|
+ // 会选判断逻辑 -
|
|
|
+ await request.get(
|
|
|
+ '/edu-app/userPaymentOrder/registerStatus/' + forms.schoolId
|
|
|
+ );
|
|
|
+ // const vipList = studentRegisterStore.getVip;
|
|
|
+
|
|
|
+ // if (schoolInfo.data.hasBuyCourse && vipList.length > 0) {
|
|
|
+ // forms.dialogConfirmStatus = true;
|
|
|
+ // return true;
|
|
|
+ // }
|
|
|
+ // 最终确认,有待支付订单直接去支付,没有则才会创建订单
|
|
|
+ state.config = paddingConfig?.paymentConfig;
|
|
|
+ state.orderNo = paddingConfig?.orderNo;
|
|
|
+ await lastSubmit();
|
|
|
+ return true;
|
|
|
+ // 判断是否可以取消订单
|
|
|
+ // if (paddingData.cancelPayment) {
|
|
|
+ // await request.post(
|
|
|
+ // '/edu-app/userPaymentOrder/cancelPayment/' +
|
|
|
+ // paddingConfig.orderNo
|
|
|
+ // );
|
|
|
+ // return false;
|
|
|
+ // } else {
|
|
|
+ // // forms.countDownTime = paddingData.cancelTimes;
|
|
|
+ // // countDown.reset(Number(paddingData.cancelTimes));
|
|
|
+ // // countDown.start();
|
|
|
+ // // forms.dialogStatusMessage = `有待支付订单,请在${Math.ceil(
|
|
|
+ // // countDown.current.value.total / 1000
|
|
|
+ // // )}s后重试`;
|
|
|
+ // // forms.dialogStatusVisible = true;
|
|
|
+ // // forms.dialogConfig = paddingData;
|
|
|
+ // // 继续支付
|
|
|
+ // // const paymentConfig = forms.dialogConfig;
|
|
|
+ // state.config = paddingConfig?.paymentConfig;
|
|
|
+ // state.orderNo = paddingConfig?.orderNo;
|
|
|
+ // await lastSubmit();
|
|
|
+ // return true;
|
|
|
+ // }
|
|
|
+ }
|
|
|
|
|
|
- // 判断是否可以取消订单
|
|
|
- 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;
|
|
|
+ return false;
|
|
|
}
|
|
|
} catch {
|
|
|
//
|
|
@@ -619,6 +699,31 @@ export default defineComponent({
|
|
|
return result;
|
|
|
};
|
|
|
|
|
|
+ // 重新下单
|
|
|
+ const resetOrderPayment = async () => {
|
|
|
+ try {
|
|
|
+ const orderNo = forms.dialogConfig?.orderNo;
|
|
|
+ if (!orderNo) return;
|
|
|
+ await request.post(
|
|
|
+ '/edu-app/userPaymentOrder/cancelPayment/' + orderNo
|
|
|
+ );
|
|
|
+
|
|
|
+ await onRegisterSubmit();
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+ // 取消订单
|
|
|
+ const cancelPaymentOrder = async () => {
|
|
|
+ try {
|
|
|
+ const orderNo = forms.dialogConfig?.orderNo;
|
|
|
+ if (!orderNo) return;
|
|
|
+ await request.post(
|
|
|
+ '/edu-app/userPaymentOrder/cancelPayment/' + orderNo
|
|
|
+ );
|
|
|
+ } catch {}
|
|
|
+ };
|
|
|
+
|
|
|
const paymentContinue = async () => {
|
|
|
try {
|
|
|
const vipList = studentRegisterStore.getVip;
|
|
@@ -853,7 +958,7 @@ export default defineComponent({
|
|
|
schoolId?: string
|
|
|
) => {
|
|
|
try {
|
|
|
- const { data } = await request.post(
|
|
|
+ const { data } = await requestStudent.post(
|
|
|
'/edu-app/open/studentRegisterPointRecord/update',
|
|
|
{
|
|
|
data: {
|
|
@@ -1468,10 +1573,10 @@ export default defineComponent({
|
|
|
}}
|
|
|
/>
|
|
|
|
|
|
- <MDialog
|
|
|
+ {/* <MDialog
|
|
|
title="提示"
|
|
|
- v-model:show={forms.dialogStatus}
|
|
|
- message={forms.dialogMessage}
|
|
|
+ v-model:show={forms.dialogStatusVisible}
|
|
|
+ message={forms.dialogStatusMessage}
|
|
|
allowHtml={true}
|
|
|
primaryColor="#FF8057"
|
|
|
confirmButtonText="继续支付"
|
|
@@ -1489,6 +1594,52 @@ export default defineComponent({
|
|
|
applyOver();
|
|
|
}
|
|
|
}}
|
|
|
+ /> */}
|
|
|
+
|
|
|
+ <MDialog
|
|
|
+ title="提示"
|
|
|
+ v-model:show={forms.dialogStatus}
|
|
|
+ message={forms.dialogMessage}
|
|
|
+ allowHtml={true}
|
|
|
+ primaryColor="#FF8057"
|
|
|
+ showCancelButton={true}
|
|
|
+ messageAlign={forms.messageAlign}
|
|
|
+ confirmButtonText={forms.confirmButtonText}
|
|
|
+ cancelButtonText={forms.cancelButtonText}
|
|
|
+ onConfirm={async () => {
|
|
|
+ if (forms.joinType === 'tradition') {
|
|
|
+ //
|
|
|
+ await cancelPaymentOrder();
|
|
|
+ //取消支付,判断是否有结束时间,是否已经结束
|
|
|
+ if (forms.registerExpireTime && forms.activeOverStatus) {
|
|
|
+ applyOver();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (forms.joinType === 'digitalize') {
|
|
|
+ // 继续支付
|
|
|
+ const paymentConfig = forms.dialogConfig;
|
|
|
+ state.config = paymentConfig?.paymentConfig;
|
|
|
+ state.orderNo = paymentConfig?.orderNo;
|
|
|
+ await lastSubmit();
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ onCancel={(val: any) => {
|
|
|
+ // countDown.pause();
|
|
|
+
|
|
|
+ if (forms.joinType === 'tradition') {
|
|
|
+ forms.dialogStatus = false;
|
|
|
+
|
|
|
+ //取消支付,判断是否有结束时间,是否已经结束
|
|
|
+ if (forms.registerExpireTime && forms.activeOverStatus) {
|
|
|
+ applyOver();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (forms.joinType === 'digitalize') {
|
|
|
+ // 重新下单 - 先关闭订单
|
|
|
+ resetOrderPayment();
|
|
|
+ }
|
|
|
+ }}
|
|
|
/>
|
|
|
|
|
|
<Popup
|