Files
frontend-app/pages/mine_package/mine_purse/mine_purse.vue
T

183 lines
168 KiB
Vue
Raw Normal View History

2025-08-06 20:25:41 +08:00
<template>
<view class="purse_warp">
<Header :leftTitle="$t('purse.title')" left-path-type="switchTab" left-path="/pages/mine/mine" />
<view class="purse_content_warp">
<view v-for="item in balanceList" :key="item.id" class="purse_warp_item">
<view class="purse_item_top">
<view class="amount_warp">
<view class="name_" @click="jumpBonus(item)">
<view style="margin-top: 10rpx;"><up-image src="/static/mine/purse_amount.png" width="16" height="16"
bgColor="#f1f6ff00"></up-image></view>
<view class="msg_">{{ item.name }}</view>
<view style="margin-top: 10rpx;"><up-image src="/static/common/right_b.png" width="16" height="16"
bgColor="#f1f6ff00"></up-image></view>
</view>
<view>
<view class="cur_amount">{{ item.curAmount || 0 }}</view>
<view class="lock_amount">不可用余额:{{ item.lockAmount || 0 }}</view>
</view>
<!-- <view class="save_info" @click="jumpBonus(item)">查看详情</view> -->
</view>
<view class="operate_warp" v-if="item.isRecharge || item.isWithdrawal || item.isTransfer || item.isExchange">
<view v-if="item.isRecharge" @click="jumpInfo(item, 'recharge')" class="operate_item operate_item1">充值
</view>
<view v-if="item.isWithdrawal" @click="jumpInfo(item, 'withdraw')" class="operate_item operate_item2">提现
</view>
<view v-if="item.isExchange" @click="jumpInfo(item, 'exchange')" class="operate_item operate_item2">兑换
</view>
<!-- <view v-if="item.isTransfer" @click="jumpInfo(item,'transfer')" class="operate_item">转让</view> -->
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import Header from '@/components/header.vue';
import { getAcctBalance } from '@/api/finance.js';
import { getValue } from '@/utils/enumUtils.js';
import { formatDate, handleAmount } from '@/utils/index.js';
export default {
components: { Header },
data() {
return {
balanceLoading: false,
balanceList: [],
}
},
onLoad() {
this.getAcctBalance();
},
methods: {
getValue,
formatDate,
handleAmount,
// 跳转到详情
jumpBonus(item) {
uni.navigateTo({
url: "/pages/mine/mine_purse_log/mine_purse_log?category=" + item.categoty + "&lockId=" + item.lockId + "&curId=" + item.curId,
})
},
// 查询余额
async getAcctBalance() {
this.balanceLoading = true;
const resp = await getAcctBalance();
let data = [];
if (resp && resp.bizcode === 100) {
data = resp.data || [];
}
this.balanceList = data;
this.balanceLoading = false;
},
// 提现
jumpInfo(row, type) {
console.log("row", row);
if (type === "withdraw") {// 提现
uni.navigateTo({
url: "/pages/mine/mine_purse_bonus_withdraw/mine_purse_bonus_withdraw?amount=" + row.curAmount + "&category=" + row.categoty,
})
} else if (type === "recharge") {// 充值
uni.navigateTo({
url: "/pages/mine/mine_purse_recharge/mine_purse_recharge?amount=" + row.curAmount + "&category=" + row.categoty,
})
} else if (type === "exchange") {// 兑换
uni.navigateTo({
url: "/pages/mine/mine_purse_exchange/mine_purse_exchange?amount=" + row.curAmount + "&category=" + row.categoty,
})
} else if (type === "transfer") {
console.log("transfer转出...")
}
}
}
}
</script>
<style lang="scss" scoped>
.purse_warp {
height: 100%;
overflow-y: hidden;
background-color: $app-bj;
.purse_content_warp {
padding: 30rpx;
height: calc(100vh - 258rpx);
overflow-y: auto;
}
.purse_warp_item {
background-size: 100% 100%;
background-position: center;
/* 将图片居中显示 */
background-image: url("data:image/png;base64,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
margin-bottom: 30rpx;
padding: 30rpx;
}
.name_ {
display: flex;
align-items: center;
font-size: 31rpx;
color: rgba(255, 255, 255, 0.9);
.msg_ {
margin: 0 10rpx
}
}
.purse_item_top {
display: flex;
justify-content: space-between;
align-items: center;
}
.amount_warp {
.cur_amount {
font-size: 46rpx;
color: rgba(255, 255, 255, 0.9);
line-height: 63rpx;
font-weight: 600;
}
.lock_amount {
font-size: 27rpx;
color: rgba(255, 255, 255, 0.6);
line-height: 38rpx;
}
}
.operate_warp {
display: flex;
.operate_item {
border-radius: 12rpx;
border: 2rpx solid $app-zt-color;
font-size: 30rpx;
color: $app-zt-color;
line-height: 42rpx;
text-align: center;
padding: 10rpx 20rpx;
margin-right: 10rpx;
}
.operate_item1 {
border-radius: 12rpx;
border: 2rpx solid #FFFFFF;
font-size: 31rpx;
color: #FFFFFF;
}
.operate_item2 {
background: #FFFFFF;
border-radius: 12rpx;
font-size: 31rpx;
color: $app-zt-color ;
}
}
}
</style>