|
@@ -1,4 +1,11 @@
|
|
|
-import { computed, defineComponent, onMounted, reactive, shallowRef } from 'vue'
|
|
|
+import {
|
|
|
+ computed,
|
|
|
+ defineComponent,
|
|
|
+ nextTick,
|
|
|
+ onMounted,
|
|
|
+ reactive,
|
|
|
+ shallowRef
|
|
|
+} from 'vue'
|
|
|
import styles from './index.module.less'
|
|
|
import ColHeader from '@/components/col-header'
|
|
|
import { Button, Image, NoticeBar, Popup, Toast } from 'vant'
|
|
@@ -20,6 +27,7 @@ import { memberSimpleType, memberType } from '@/constant'
|
|
|
import dayjs from 'dayjs'
|
|
|
import { orderStatus } from '../order-detail/orderStatus'
|
|
|
import TheNoticeBar from '@/components/the-noticeBar'
|
|
|
+import { tradeOrder } from '@/student/trade/tradeOrder'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'member-center',
|
|
@@ -34,6 +42,8 @@ export default defineComponent({
|
|
|
titleOpacity: 0,
|
|
|
shareStatus: false, // 分享
|
|
|
dialogVisiable: false,
|
|
|
+ orderVisiable: false,
|
|
|
+ orderDetail: {} as any,
|
|
|
shareUrl: '',
|
|
|
shareDiscount: 0,
|
|
|
discountTeacher: {
|
|
@@ -174,6 +184,10 @@ export default defineComponent({
|
|
|
state.selectMember = state.memberShowList[0]
|
|
|
}
|
|
|
state.tabActive = type
|
|
|
+
|
|
|
+ nextTick(() => {
|
|
|
+ document.querySelector('.system-list')?.scroll(0, 0)
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const calcSalePrice = (item: any) => {
|
|
@@ -212,6 +226,20 @@ export default defineComponent({
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 判断是否有待支付订单
|
|
|
+ const resPadding = await request.post(
|
|
|
+ `${state.apiSuffix}/userOrder/getPendingOrder`,
|
|
|
+ {
|
|
|
+ data: { goodType: state.tabActive }
|
|
|
+ }
|
|
|
+ )
|
|
|
+ console.log(resPadding, 'resPadding')
|
|
|
+ if (resPadding?.data?.id) {
|
|
|
+ state.orderVisiable = true
|
|
|
+ state.orderDetail = resPadding.data || {}
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
const member: any = state.selectMember
|
|
|
// 判断是否有会员
|
|
|
let startTime = new Date()
|
|
@@ -280,6 +308,30 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 取消支付
|
|
|
+ const onCancelOrder = async () => {
|
|
|
+ try {
|
|
|
+ await request.post(`${state.apiSuffix}/userOrder/orderCancel`, {
|
|
|
+ data: { orderNo: state.orderDetail.orderNo }
|
|
|
+ })
|
|
|
+ state.orderVisiable = false
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 继续支付
|
|
|
+ const onContinueOrder = async () => {
|
|
|
+ const orderDetail = state.orderDetail || {}
|
|
|
+ tradeOrder(orderDetail, () => {
|
|
|
+ router.push({
|
|
|
+ path: '/orderDetail',
|
|
|
+ query: {
|
|
|
+ orderType: orderDetail.orderType
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
/** 格式化分类信息 */
|
|
|
const formatMemberList = () => {
|
|
|
// console.log(vipList.value, svipList.value, 'vipList.value')
|
|
@@ -540,6 +592,7 @@ export default defineComponent({
|
|
|
<div class={styles.system_list_section}>
|
|
|
<div
|
|
|
class={[
|
|
|
+ 'system-list',
|
|
|
styles['system-list'],
|
|
|
state.tabActive === 'VIP' ? styles.system_list_vip : '',
|
|
|
memberInfos.value.memberLength === 2
|
|
@@ -554,6 +607,7 @@ export default defineComponent({
|
|
|
<>
|
|
|
{state.memberShowList.map((member: any) => (
|
|
|
<div
|
|
|
+ key={member.id}
|
|
|
class={[
|
|
|
styles['system-item'],
|
|
|
member.id === state.selectMember.id
|
|
@@ -739,6 +793,34 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</div>
|
|
|
</Popup>
|
|
|
+
|
|
|
+ <Popup
|
|
|
+ v-model:show={state.orderVisiable}
|
|
|
+ style={{ background: 'transparent' }}
|
|
|
+ closeOnClickOverlay={false}
|
|
|
+ >
|
|
|
+ <div class={styles.dialogContainer}>
|
|
|
+ <div class={styles.dialogTitle}>提示</div>
|
|
|
+ <div class={styles.dialogContent}>
|
|
|
+ 您有待支付的订单,是否继续支付
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class={[styles.dialogBtnGroup, styles.orderGroup]}>
|
|
|
+ <Button round type="default" plain block onClick={onCancelOrder}>
|
|
|
+ 取消
|
|
|
+ </Button>
|
|
|
+ <Button
|
|
|
+ round
|
|
|
+ type="primary"
|
|
|
+ block
|
|
|
+ class={styles.dialogBtn}
|
|
|
+ onClick={onContinueOrder}
|
|
|
+ >
|
|
|
+ 继续支付
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Popup>
|
|
|
</div>
|
|
|
)
|
|
|
}
|