|
@@ -9,7 +9,7 @@ import { useRoute, useRouter } from 'vue-router'
|
|
|
import OQrcode from '@/components/o-qrcode'
|
|
|
import request from '../request-music'
|
|
|
import item from '@/student/coupons/item'
|
|
|
-import { moneyFormat } from '@/helpers/utils'
|
|
|
+import { browser, moneyFormat } from '@/helpers/utils'
|
|
|
import { state as baseState } from '@/state'
|
|
|
|
|
|
export default defineComponent({
|
|
@@ -23,7 +23,8 @@ export default defineComponent({
|
|
|
qrCodeUrl: '',
|
|
|
orderNo: route.query.orderNo,
|
|
|
orderInfo: {} as any, // 订单信息
|
|
|
- goodsInfos: [] as any // 订单信息列表
|
|
|
+ goodsInfos: [] as any, // 订单信息列表
|
|
|
+ config: route.query.config ? JSON.parse(route.query.config as any) : {}
|
|
|
})
|
|
|
|
|
|
const getOrderDetails = async () => {
|
|
@@ -42,8 +43,77 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const onConfirm = (val: any) => {
|
|
|
+ const config: any = state.config
|
|
|
+ if (val.payCode === 'payResult') {
|
|
|
+ router.push({
|
|
|
+ path: '/payResult',
|
|
|
+ query: {
|
|
|
+ pay_channel: val.pay_channel,
|
|
|
+ wxAppId: config.wxAppId,
|
|
|
+ body: config.body,
|
|
|
+ price: config.price
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ console.log(baseState.user)
|
|
|
+ state.qrCodeUrl =
|
|
|
+ window.location.origin +
|
|
|
+ '/orchestra-student/#/payDefine?pay_channel=' +
|
|
|
+ val.pay_channel +
|
|
|
+ '&wxAppId=' +
|
|
|
+ config.wxAppId +
|
|
|
+ '&body=' +
|
|
|
+ config.body +
|
|
|
+ '&price=' +
|
|
|
+ config.price +
|
|
|
+ '&orderNo=' +
|
|
|
+ config.merOrderNo +
|
|
|
+ '&userId=' +
|
|
|
+ config.userId
|
|
|
+ console.log(state.qrCodeUrl, 'qrCodeUrl')
|
|
|
+ state.showQrcode = true
|
|
|
+ state.paymentStatus = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const beforeSubmit = () => {
|
|
|
+ const pt = state.config.paymentChannel
|
|
|
+ let payCode = 'qrCode'
|
|
|
+ // 判断当前浏览器
|
|
|
+ if (browser().weixin) {
|
|
|
+ // 微信浏览器
|
|
|
+ if (pt == 'alipay_qr' || pt == 'alipay_wap') {
|
|
|
+ payCode = 'qrCode'
|
|
|
+ } else if (pt == 'wx_pub') {
|
|
|
+ payCode = 'pay'
|
|
|
+ }
|
|
|
+ } else if (browser().alipay) {
|
|
|
+ // 支付宝浏览器
|
|
|
+ if (pt == 'alipay_wap') {
|
|
|
+ // 支付宝 H5 支付
|
|
|
+ payCode = 'pay'
|
|
|
+ } else {
|
|
|
+ payCode = 'qrCode'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ payCode = 'qrCode'
|
|
|
+ }
|
|
|
+
|
|
|
+ onConfirm({
|
|
|
+ payCode: payCode == 'qrCode' ? 'payDefine' : 'payResult',
|
|
|
+ pay_channel: pt
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const onSubmit = () => {
|
|
|
- state.paymentStatus = true
|
|
|
+ const pt = state.config.paymentChannel
|
|
|
+ // 判断是否有支付方式
|
|
|
+ if (pt) {
|
|
|
+ beforeSubmit()
|
|
|
+ } else {
|
|
|
+ state.paymentStatus = true
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
@@ -114,41 +184,8 @@ export default defineComponent({
|
|
|
onClose={() => (state.paymentStatus = false)}
|
|
|
onBackOut={() => {
|
|
|
console.log('back')
|
|
|
- // router.back()
|
|
|
- }}
|
|
|
- onConfirm={(val: any) => {
|
|
|
- const config: any = route.query.config ? JSON.parse(route.query.config as any) : {}
|
|
|
- if (val.payCode === 'payResult') {
|
|
|
- router.push({
|
|
|
- path: '/payResult',
|
|
|
- query: {
|
|
|
- pay_channel: val.pay_channel,
|
|
|
- wxAppId: config.wxAppId,
|
|
|
- body: config.body,
|
|
|
- price: config.price
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- console.log(baseState.user)
|
|
|
- state.qrCodeUrl =
|
|
|
- window.location.origin +
|
|
|
- '/orchestra-student/#/payCenter?pay_channel=' +
|
|
|
- val.pay_channel +
|
|
|
- '&wxAppId=' +
|
|
|
- config.wxAppId +
|
|
|
- '&body=' +
|
|
|
- config.body +
|
|
|
- '&price=' +
|
|
|
- config.price +
|
|
|
- '&orderNo=' +
|
|
|
- config.merOrderNo +
|
|
|
- '&userId=' +
|
|
|
- config.userId
|
|
|
- console.log(state.qrCodeUrl, 'qrCodeUrl')
|
|
|
- state.showQrcode = true
|
|
|
- state.paymentStatus = false
|
|
|
- }
|
|
|
}}
|
|
|
+ onConfirm={(val: any) => onConfirm(val)}
|
|
|
/>
|
|
|
</Popup>
|
|
|
|