first commit

This commit is contained in:
2026-02-26 09:25:47 +08:00
commit 40665dda67
708 changed files with 100122 additions and 0 deletions
@@ -0,0 +1,143 @@
<script lang="ts" setup>
import {useUserStore} from "@/store";
import {EventEnum} from "@/constant/enums";
import {appUserCardSelectDefaultPost} from "@/service";
const {t} = useI18n();
const userStore = useUserStore();
// 响应式数据
const selectedPayment = ref<1 | 2>(1)
function changePayment(payment: 1 | 2) {
payMethodOptions.value.payMethod = payment
}
onLoad(() => {
// 查询用户默认信用卡
appUserCardSelectDefault()
})
// 支付参数
const payMethodOptions = ref({
cardNumber: '',
cardId: '',
payMethod: 1, // 支付方式 1信用卡 2余额
})
function appUserCardSelectDefault() {
appUserCardSelectDefaultPost({}).then(res => {
console.log('查询用户默认信用卡', res)
payMethodOptions.value.cardId = res.data?.cardId || ''
payMethodOptions.value.cardNumber = res.data?.cardNumber || ''
})
}
const confirmPayment = () => {
if (payMethodOptions.value.payMethod === 1) {
if (!payMethodOptions.value.cardId) {
chooseCard()
} else {
uni.$emit(EventEnum.CHOOSE_PAYMENT_METHOD, payMethodOptions.value)
uni.navigateBack()
}
} else {
uni.$emit(EventEnum.CHOOSE_PAYMENT_METHOD, payMethodOptions.value)
uni.navigateBack()
}
}
function chooseCard() {
uni.navigateTo({
url: '/pages-user/pages/select-credit-card/index',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
selectedCard: function (data) {
if (data) {
payMethodOptions.value.cardId = data.cardId
payMethodOptions.value.cardNumber = data.cardNumber
}
},
},
})
}
function navigateTo(url: string) {
uni.navigateTo({url})
}
</script>
<template>
<view class="">
<navbar/>
<!-- 页面标题 -->
<view class="px-30rpx pt-20rpx mb-88rpx">
<text class="text-46rpx font-bold text-#333 leading-46rpx">{{ t('pages-user.choosePaymethod.title') }}</text>
</view>
<view class="px-30rpx">
<view class="flex-center-sb mb-66rpx" @click="changePayment(2)">
<view class="flex items-center">
<image
class="w-44rpx h-44rpx shrink-0 mr-28rpx"
mode="aspectFill"
src="@img/chef/156.png"
/>
<text class="text-32rpx lh-32rpx text-#333 font-500">{{
t('pages-user.choosePaymethod.wallet')
}}(${{ userStore.currenMerchantInfo?.balance || 0 }})
</text>
</view>
<!-- 单选按钮 -->
<image
:src="
payMethodOptions.payMethod === 2
? '/static/images/chef/133.png'
: '/static/images/chef/134.png'
"
class="w-48rpx h-48rpx shrink-0"
mode="aspectFit"
/>
</view>
<view class="flex-center-sb" @click="changePayment(1)">
<view class="flex items-center">
<image
class="w-44rpx h-44rpx shrink-0 mr-28rpx"
mode="aspectFill"
src="@img/chef/138.png"
/>
<text class="text-32rpx lh-32rpx text-#333 font-500">{{ t('pages-user.member.creditCard') }}</text>
</view>
<!-- 单选按钮 -->
<image
:src="
payMethodOptions.payMethod === 1
? '/static/images/chef/133.png'
: '/static/images/chef/134.png'
"
class="w-48rpx h-48rpx shrink-0"
mode="aspectFit"
/>
</view>
<view v-if="payMethodOptions.cardId"
class="h-98rpx rounded-16rpx bg-#F2F2F2 ml-72rpx mt-30rpx flex-center-sb px-28rpx">
<text class="text-30rpx lh-30rpx text-#9E9E9E">{{ payMethodOptions.cardNumber }}</text>
<view class="h-50rpx rounded-25rpx bg-white center px-20rpx text-24rpx lh-24rpx text-#333" @click="chooseCard">
{{ t('pages-user.choosePaymethod.replace') }}
</view>
</view>
</view>
<!-- 底部确认按钮 -->
<fixed-bottom-large-btn
:text="t('common.confirm')"
class="z-100"
fixed
@click="confirmPayment"
/>
</view>
</template>
<style>
page {
background-color: #fff;
}
</style>