|
@@ -8,7 +8,16 @@ import {
|
|
|
watch,
|
|
|
onBeforeMount
|
|
|
} from 'vue'
|
|
|
-import { Card, Cell, CellGroup, Popup, SubmitBar, Toast } from 'vant'
|
|
|
+import {
|
|
|
+ Card,
|
|
|
+ Cell,
|
|
|
+ CellGroup,
|
|
|
+ Checkbox,
|
|
|
+ Popup,
|
|
|
+ Radio,
|
|
|
+ SubmitBar,
|
|
|
+ Toast
|
|
|
+} from 'vant'
|
|
|
import { addressType, cartConfirm, formateAttr } from '../cart'
|
|
|
import styles from '../index.module.less'
|
|
|
import Address from '../components/address'
|
|
@@ -36,8 +45,15 @@ export default defineComponent({
|
|
|
const loading = ref(true)
|
|
|
const route = useRoute()
|
|
|
const address = ref<addressType>()
|
|
|
+ const cartUseAmount = ref<any>({
|
|
|
+ useBalance: false,
|
|
|
+ balance: 0,
|
|
|
+ couponId: ''
|
|
|
+ })
|
|
|
onMounted(async () => {
|
|
|
loading.value = true
|
|
|
+ // 获取用户余额
|
|
|
+ await getUserBalance()
|
|
|
if (route.query.cartIds) {
|
|
|
try {
|
|
|
let { code, data } = await request.post(
|
|
@@ -70,6 +86,15 @@ export default defineComponent({
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ // 获取用户余额
|
|
|
+ const getUserBalance = async () => {
|
|
|
+ try {
|
|
|
+ // 获取用户余额
|
|
|
+ const { data } = await request.get('/api-student/userCashAccount/get')
|
|
|
+ cartUseAmount.value.balance = data.balance || 0
|
|
|
+ } catch {}
|
|
|
+ }
|
|
|
+
|
|
|
const setAddress = (result: addressType) => {
|
|
|
address.value = result
|
|
|
}
|
|
@@ -123,8 +148,9 @@ export default defineComponent({
|
|
|
orderAmount: (
|
|
|
cartConfirm.calcAmount.payAmount -
|
|
|
cartConfirm.calcAmount.promotionAmount
|
|
|
- ).toFixed(2)
|
|
|
- // couponId: orderInfo.couponId
|
|
|
+ ).toFixed(2),
|
|
|
+ couponId: cartUseAmount.value.couponId,
|
|
|
+ useBalance: cartUseAmount.value.useBalance // 是否使用余额
|
|
|
}
|
|
|
try {
|
|
|
const { code, data } = await request.post(
|
|
@@ -156,6 +182,30 @@ export default defineComponent({
|
|
|
console.log(state.user.data)
|
|
|
onSubmit() // 实名成功后自动支付
|
|
|
}
|
|
|
+
|
|
|
+ // {
|
|
|
+ // moneyFormat(
|
|
|
+ // cartConfirm.calcAmount.payAmount -
|
|
|
+ // cartConfirm.calcAmount.promotionAmount
|
|
|
+ // )
|
|
|
+ // }
|
|
|
+ const needPayPrice = () => {
|
|
|
+ let price = Number(
|
|
|
+ (
|
|
|
+ cartConfirm.calcAmount.payAmount -
|
|
|
+ cartConfirm.calcAmount.promotionAmount
|
|
|
+ ).toFixed(2)
|
|
|
+ )
|
|
|
+ console.log(price)
|
|
|
+ if (cartUseAmount.value.useBalance) {
|
|
|
+ price =
|
|
|
+ price - cartUseAmount.value.balance <= 0
|
|
|
+ ? 0
|
|
|
+ : Number((price - cartUseAmount.value.balance).toFixed(2))
|
|
|
+ }
|
|
|
+
|
|
|
+ return price
|
|
|
+ }
|
|
|
return () => (
|
|
|
<>
|
|
|
<ColHeader />
|
|
@@ -187,22 +237,45 @@ export default defineComponent({
|
|
|
))}
|
|
|
</div>
|
|
|
<CellGroup border={true}>
|
|
|
- {/* <UseCoupons
|
|
|
- orderType="GOODS"
|
|
|
+ <UseCoupons
|
|
|
+ useSystem="MALL"
|
|
|
+ typeDetail="MALLCOUPON"
|
|
|
orderAmount={cartConfirm.calcAmount.totalAmount}
|
|
|
onCouponSelect={coupon => {
|
|
|
+ console.log(coupon, 'coupon')
|
|
|
const discountPrice = coupon
|
|
|
- .map(n => n.discountPrice)
|
|
|
+ .map(n => n.faceValue)
|
|
|
.reduce((total, n) => {
|
|
|
return total + n
|
|
|
}, 0)
|
|
|
const couponId = coupon
|
|
|
- .map(n => n.couponIssueId)
|
|
|
+ .map(n => n.couponCodeId)
|
|
|
.join(',')
|
|
|
cartConfirm.calcAmount.promotionAmount = discountPrice
|
|
|
- orderInfo.couponId = couponId
|
|
|
+ cartUseAmount.value.couponId = couponId
|
|
|
+
|
|
|
+ console.log(cartUseAmount, 'coupon')
|
|
|
+ // orderInfo.couponId = couponId
|
|
|
+ }}
|
|
|
+ />
|
|
|
+
|
|
|
+ <Cell
|
|
|
+ v-slots={{
|
|
|
+ title: `余额支付(剩余:¥${moneyFormat(
|
|
|
+ cartUseAmount.value.balance
|
|
|
+ )})`,
|
|
|
+ 'right-icon': () => (
|
|
|
+ <Checkbox
|
|
|
+ modelValue={cartUseAmount.value.useBalance}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ onClick={() => {
|
|
|
+ console.log(true, '111')
|
|
|
+ cartUseAmount.value.useBalance =
|
|
|
+ !cartUseAmount.value.useBalance
|
|
|
}}
|
|
|
- /> */}
|
|
|
+ />
|
|
|
|
|
|
<Cell
|
|
|
border={false}
|
|
@@ -228,11 +301,7 @@ export default defineComponent({
|
|
|
<div class={styles.confirmBottom}>
|
|
|
合计{' '}
|
|
|
<span class={styles['price-des']}>
|
|
|
- ¥
|
|
|
- {moneyFormat(
|
|
|
- cartConfirm.calcAmount.payAmount -
|
|
|
- cartConfirm.calcAmount.promotionAmount
|
|
|
- )}
|
|
|
+ ¥{moneyFormat(needPayPrice())}
|
|
|
</span>
|
|
|
</div>
|
|
|
</SubmitBar>
|