127 lines
3.9 KiB
Vue
127 lines
3.9 KiB
Vue
<template>
|
||
<view class="paymethod-content">
|
||
<text class="payment-header u-border-bottom">{{$t('payMethodGroup.paymentMode')}}</text>
|
||
<u-checkbox-group v-model="props.modelValue" class="payment-group" iconPlacement="right" size="32" @change="checkboxGroupChange" activeColor="#0129D3">
|
||
<u-checkbox shape="circle" class="item-radio radio0" :name="0" :value="0">
|
||
<view class="flex-row">
|
||
<image src="../../../static/icons/payment/integral.png" class="group-icon"></image>
|
||
<text class="u-font-28">{{$t('payMethodGroup.integral')}}:{{ data.integral }}</text>
|
||
<text style="margin-left: 40rpx" class="u-font-24">({{$t('payMethodGroup.maximumDiscount')}}:{{ props.max }})</text>
|
||
</view>
|
||
</u-checkbox>
|
||
<u-checkbox shape="circle" class="item-radio radio1" :name="1" :value="1">
|
||
<view class="flex-row">
|
||
<image src="../../../static/icons/payment/integral.png" class="group-icon"></image>
|
||
<text class="u-font-28">{{$t('payMethodGroup.balance')}}:{{ data.balanceMoney }}</text>
|
||
</view>
|
||
</u-checkbox>
|
||
<u-checkbox shape="circle" class="item-radio radio1" :name="2" :value="2">
|
||
<view class="flex-row">
|
||
<image src="../../../static/icons/payment/alipay.png" class="group-icon"></image>
|
||
<text class="u-font-28">{{$t('AlipayPay')}}</text>
|
||
</view>
|
||
</u-checkbox>
|
||
<!-- <u-checkbox shape="circle" class="item-radio radio1" :name="2" :value="2">-->
|
||
<!-- <view class="flex-row">-->
|
||
<!-- <image src="../../../static/icons/payment/alipay.png" class="group-icon"></image>-->
|
||
<!-- <text class="u-font-28">{{$t('payMethodGroup.balance')}}:{{ data.balanceMoney }}</text>-->
|
||
<!-- </view>-->
|
||
<!-- </u-checkbox>-->
|
||
<!-- <u-radio class="item-radio radio1" :name="1">-->
|
||
<!-- <view class="flex-row">-->
|
||
<!-- <image src="../../../static/icons/payment/payPay.png" class="group-icon"></image>-->
|
||
<!-- <text class="u-font-28">PayPay支付</text>-->
|
||
<!-- </view>-->
|
||
<!-- </u-radio>-->
|
||
<!-- <u-radio class="item-radio radio2" :name="2">-->
|
||
<!-- <view class="flex-row">-->
|
||
<!-- <image src="../../../static/icons/payment/wechat.png" class="group-icon"></image>-->
|
||
<!-- <text class="u-font-28">微信</text>-->
|
||
<!-- </view>-->
|
||
<!-- </u-radio>-->
|
||
<!-- <u-radio class="item-radio radio3" :name="3">
|
||
<view class="flex-row">
|
||
<image src="../../../static/icons/payment/alipay.png" class="group-icon"></image>
|
||
<text class="u-font-28">支付宝</text>
|
||
</view>
|
||
</u-radio> -->
|
||
</u-checkbox-group>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup lang="ts">
|
||
import { defineProps, onMounted, reactive, defineEmits } from 'vue'
|
||
import { findUserWallet } from "../../../common/request/api/api";
|
||
const emits = defineEmits(['change'])
|
||
const props = defineProps({
|
||
modelValue: {
|
||
type: Array,
|
||
default: []
|
||
},
|
||
coursePrice: Number,
|
||
max: Number
|
||
})
|
||
const data = reactive({
|
||
modelValue: [],
|
||
balanceMoney: '',
|
||
integral: ''
|
||
})
|
||
|
||
onMounted(() => {
|
||
findUserWallet().then((res) => {
|
||
if (res.code === 200) {
|
||
data.balanceMoney = res.data.balanceMoney;
|
||
data.integral = res.data.integral;
|
||
}
|
||
})
|
||
})
|
||
const checkboxGroupChange = (e) => {
|
||
data.modelValue = e
|
||
emits('change', e)
|
||
// if()
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.paymethod-content {
|
||
display: flex;
|
||
flex-direction: column;
|
||
background-color: #fff;
|
||
|
||
.payment-header {
|
||
padding: 32rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
}
|
||
|
||
.payment-group {
|
||
padding: 32rpx;
|
||
|
||
.item-radio {
|
||
width: 100%;
|
||
margin-bottom: 48rpx;
|
||
|
||
@for $i from 0 through 3 {
|
||
&.radio#{$i} {
|
||
opacity: 0;
|
||
animation-name: slide-in-left;
|
||
animation-duration: 0.5s;
|
||
animation-fill-mode: forwards;
|
||
animation-delay: calc($i/10) + s;
|
||
}
|
||
}
|
||
|
||
&:last-child {
|
||
margin-bottom: unset;
|
||
}
|
||
}
|
||
|
||
.group-icon {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
margin-right: 16rpx;
|
||
}
|
||
}
|
||
}
|
||
</style> |