import { Button, Cell, CellGroup, Icon, RadioGroup, Radio, showConfirmDialog } from 'vant' import { defineComponent, reactive } from 'vue' import styles from './index.module.less' import { browser, moneyFormat } from '@/helpers/utils' export default defineComponent({ name: 'payment', props: { paymentConfig: { type: Object, default: {} } }, emits: ['backOut', 'close', 'confirm'], setup(props, { slots, attrs, emit }) { const state = reactive({ payType: 'wx', pay_channel: '' }) const onClose = () => { // 继续支付则直接关闭弹窗就可 showConfirmDialog({ message: '是否放弃本次付款', confirmButtonText: '继续付款', cancelButtonText: '放弃', showCancelButton: true }).catch(async () => { await onCancel() emit('backOut') emit('close') }) } // 需要关闭订单 const onCancel = async (noBack?: boolean) => {} const onSubmit = async () => { // 支付... const pt = state.payType // 判断当前浏览器 if (browser().weixin) { // 微信浏览器 if (pt == 'zfb') { state.pay_channel = 'alipay_qr' getCodePay('qrCode') } else if (pt == 'wx') { state.pay_channel = 'wx_pub' getCodePay('pay') } } else if (browser().alipay) { // 支付宝浏览器 if (pt == 'zfb') { state.pay_channel = 'alipay_wap' // 支付宝 H5 支付 getCodePay('pay') } else if (pt == 'wx') { state.pay_channel = 'wx_pub' getCodePay('qrCode') } } else { if (pt == 'zfb') { state.pay_channel = 'alipay_qr' } else if (pt == 'wx') { state.pay_channel = 'wx_pub' } getCodePay('qrCode') } } const getCodePay = (code) => { // 二维码页面, 唤起支付页面 const payCode = code == 'qrCode' ? 'payCenter' : 'payResult' emit('confirm', { payCode, pay_channel: state.pay_channel }) } return () => (
应付金额