2025-08-06 20:25:41 +08:00
|
|
|
|
<template>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
<view class="purse_warp">
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<header-component :leftTitle="$t('purse.title')" left-path-type="switchTab" left-path="/pages/mine/mine" />
|
2026-01-15 19:23:35 +08:00
|
|
|
|
<view class="purse_content_warp">
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<view v-for="(item, vIndex) in balanceList" :key="item.id" class="purse_warp_item" @click="jumpBonus(item)">
|
2026-01-15 19:23:35 +08:00
|
|
|
|
<view class="purse_item_title">
|
|
|
|
|
|
<view class="purse_item_title-left">
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<up-image :src="`https://static.tbmall.xin/static/mine-purse/${item.categoty}.png`" width="22" height="22"
|
|
|
|
|
|
bgColor="#f1f6ff00" class="purse_amount"></up-image>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
<view class="title">{{ item.name }}</view>
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<up-image src="/static/common/right_soild.png" width="10" height="10" bgColor="#fff"
|
|
|
|
|
|
class="right_soild"></up-image>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
</view>
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-17 20:56:34 +08:00
|
|
|
|
<view class="purse_item_title-right">
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<!-- <view class="button exchange_button" @click.stop="jumpInfo(item, 'withdraw')" v-if="vIndex == 4">
|
2025-10-10 13:41:42 +08:00
|
|
|
|
提现
|
2026-05-21 15:38:19 +08:00
|
|
|
|
</view> -->
|
|
|
|
|
|
<view v-for="(btn, index) in getOperationButtons(item)" :key="index" :type="btn.code"
|
|
|
|
|
|
class="button exchange_button" @click.stop="jumpInfo(item, btn.code)">{{ btn.memo }}</view>
|
|
|
|
|
|
</view>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
</view>
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
<!-- 下 -->
|
|
|
|
|
|
<view class="purse_item_bottom">
|
|
|
|
|
|
<view class="bottom_item">
|
|
|
|
|
|
<view class="bottom_item_amount">{{ item.curAmount || 0 }}</view>
|
|
|
|
|
|
<view class="bottom_item_title">{{
|
|
|
|
|
|
item.categoty === "raffle" ? "可用次数" : "可用余额"
|
|
|
|
|
|
}}</view>
|
|
|
|
|
|
</view>
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
2026-05-22 11:03:04 +08:00
|
|
|
|
<view class="bottom_item" v-if="item.categoty == 'vcoin'">
|
|
|
|
|
|
<view class="bottom_item_amount">{{ item.bonusAmount || 0 }}</view>
|
|
|
|
|
|
<view class="bottom_item_title">分红余额</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
<view class="bottom_item" @click.stop="onTip(vIndex)">
|
|
|
|
|
|
<view class="bottom_item_lock">{{ item.lockAmount || 0 }}</view>
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<view class="bottom_item_title">{{ item.categoty === "raffle" ? "不可用次数" : "不可用余额" }}
|
|
|
|
|
|
<up-image src="/static/common/tips.png" width="12" height="12" bgColor="#fff"
|
|
|
|
|
|
style="margin-left: 8rpx; margin-top: 4rpx" v-if="item.categoty == 'balance'" />
|
|
|
|
|
|
</view>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<view class="bottom_item_tip" v-if="item.categoty == 'balance' && activeTip == vIndex">抽奖7天后释放到可用余额中</view>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
2026-05-21 15:38:19 +08:00
|
|
|
|
<!-- 归集弹窗 -->
|
|
|
|
|
|
<up-popup :show="collectShow" @close="closeCollect" position="bottom" :round="24">
|
|
|
|
|
|
<view class="popup_content">
|
|
|
|
|
|
<view class="popup_header">
|
|
|
|
|
|
<view class="popup_title">归集数字积分</view>
|
|
|
|
|
|
<view class="popup_close" @click="closeCollect">
|
|
|
|
|
|
<u-icon name="close" style="margin-left:32rpx" size="24"></u-icon>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- 表单界面 -->
|
|
|
|
|
|
<view class="popup_form" v-if="!collectSuccess">
|
|
|
|
|
|
<view class="form_item">
|
|
|
|
|
|
<view class="form_icon">
|
|
|
|
|
|
<up-image src="/static/common/phone-1.png" width="24" height="24" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<input class="form_input" v-model="collectForm.mobile" placeholder="请输入省代理手机号" type="number" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="form_item">
|
|
|
|
|
|
<view class="form_icon">
|
|
|
|
|
|
<up-image src="/static/common/amount-1.png" width="24" height="24" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<input class="form_input" v-model="collectForm.amount" placeholder="请输入数量" type="digit" />
|
|
|
|
|
|
<view class="form_all" @click="fillAllAmount">全部</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="form_tip">可用数量:{{ availableAmount }}</view>
|
|
|
|
|
|
<view class="form_item">
|
|
|
|
|
|
<view class="form_icon">
|
|
|
|
|
|
<up-image src="/static/common/password-1.png" width="24" height="24" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<input class="form_input" v-model="collectForm.password" placeholder="请输入支付密码"
|
|
|
|
|
|
:type="collectForm.showPassword ? 'text' : 'password'" />
|
|
|
|
|
|
<view class="form_eye" @click="togglePassword">
|
|
|
|
|
|
<up-image :src="collectForm.showPassword ? '/static/login/show.png' : '/static/login/hidden.png'"
|
|
|
|
|
|
width="24" height="24" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="popup_confirm" @click="collectConfirm">确定归集</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- 成功界面 -->
|
|
|
|
|
|
<view class="popup_success" v-else>
|
|
|
|
|
|
<view class="success_icon">
|
|
|
|
|
|
<up-image src="/static/common/success-1.png" width="64" height="64" bgColor="#fff" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="success_title">归集成功</view>
|
|
|
|
|
|
<view class="success_amount">{{ collectForm.amount }}</view>
|
|
|
|
|
|
<view class="popup_confirm" @click="closeCollect">好的</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</up-popup>
|
2026-01-15 19:23:35 +08:00
|
|
|
|
</view>
|
2025-08-06 20:25:41 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2026-05-21 15:38:19 +08:00
|
|
|
|
import CryptoJS from 'crypto-js';
|
2026-01-15 19:23:35 +08:00
|
|
|
|
import Header from "@/components/header.vue";
|
2026-05-21 15:38:19 +08:00
|
|
|
|
import { getAcctBalance, collectQuery } from "@/api/finance.js";
|
2026-01-15 19:23:35 +08:00
|
|
|
|
import { getValue } from "@/utils/enumUtils.js";
|
|
|
|
|
|
import { formatDate, handleAmount } from "@/utils/index.js";
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
|
|
|
|
|
export default {
|
2026-01-15 19:23:35 +08:00
|
|
|
|
components: { headerComponent: Header },
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
balanceLoading: false,
|
|
|
|
|
|
balanceList: [],
|
|
|
|
|
|
activeTip: -1,
|
2026-05-21 15:38:19 +08:00
|
|
|
|
collectShow: false,
|
|
|
|
|
|
collectSuccess: false,
|
|
|
|
|
|
availableAmount: 0,
|
|
|
|
|
|
collectForm: {
|
|
|
|
|
|
mobile: "",
|
|
|
|
|
|
amount: "",
|
|
|
|
|
|
password: "",
|
|
|
|
|
|
showPassword: false,
|
|
|
|
|
|
},
|
2026-01-15 19:23:35 +08:00
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad() {
|
|
|
|
|
|
this.getAcctBalance();
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
getValue,
|
|
|
|
|
|
formatDate,
|
|
|
|
|
|
handleAmount,
|
|
|
|
|
|
getOperationButtons(item) {
|
2026-05-21 15:38:19 +08:00
|
|
|
|
// return [
|
|
|
|
|
|
// { type: 'recharge', text: '充值', show: item.isRecharge },
|
|
|
|
|
|
// { type: "withdraw", text: "提现", show: item.isWithdrawal },
|
|
|
|
|
|
//{ type: "exchange", text: "兑换", show: item.isExchange },
|
|
|
|
|
|
//].filter((btn) => btn.show);
|
|
|
|
|
|
let buttons = [];
|
|
|
|
|
|
const functionConfig = JSON.parse(item.functionConfig);
|
|
|
|
|
|
console.log("functionConfig---", functionConfig);
|
|
|
|
|
|
if (functionConfig && functionConfig.length > 0) {
|
|
|
|
|
|
buttons = functionConfig.filter((btn) => btn.status);
|
|
|
|
|
|
}
|
|
|
|
|
|
return buttons
|
2026-01-15 19:23:35 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 跳转到详情
|
|
|
|
|
|
jumpBonus(item) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url:
|
|
|
|
|
|
"/pages/mine_package/mine_purse_log/mine_purse_log?category=" +
|
|
|
|
|
|
item.categoty +
|
|
|
|
|
|
"&lockId=" +
|
|
|
|
|
|
item.lockId +
|
|
|
|
|
|
"&curId=" +
|
|
|
|
|
|
item.curId +
|
|
|
|
|
|
"&preId=" +
|
2026-05-22 11:03:04 +08:00
|
|
|
|
item.preId + "&bonusId=" + item.bonusId,
|
2026-01-15 19:23:35 +08:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
// 查询余额
|
|
|
|
|
|
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) {
|
2026-05-21 15:38:19 +08:00
|
|
|
|
console.log("row", row, type);
|
2026-01-15 19:23:35 +08:00
|
|
|
|
if (type === "withdraw") {
|
|
|
|
|
|
// 提现
|
|
|
|
|
|
// uni.navigateTo({
|
|
|
|
|
|
// url: "/pages/mine_package/mine_purse_bonus_withdraw/mine_purse_bonus_withdraw?amount=" + row.curAmount + "&category=" + row.categoty,
|
2025-08-14 20:44:00 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
// })
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/rwa_package/account/withdraw?type=0",
|
|
|
|
|
|
});
|
|
|
|
|
|
} else if (type === "recharge") {
|
|
|
|
|
|
// 充值
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/rwa_package/account/withdraw?type=1",
|
|
|
|
|
|
});
|
|
|
|
|
|
// uni.navigateTo({
|
|
|
|
|
|
// url: "/pages/mine_package/mine_purse_recharge/mine_purse_recharge?amount=" + row.curAmount + "&category=" + row.categoty,
|
|
|
|
|
|
// })
|
|
|
|
|
|
} else if (type === "exchange") {
|
|
|
|
|
|
// 兑换
|
|
|
|
|
|
// uni.navigateTo({
|
|
|
|
|
|
// url: "/pages/mine_package/mine_purse_exchange/mine_purse_exchange?amount=" + row.curAmount + "&category=" + row.categoty,
|
|
|
|
|
|
// })
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/rwa_package/shop/fen-shop",
|
|
|
|
|
|
});
|
|
|
|
|
|
} else if (type === "transfer") {
|
|
|
|
|
|
console.log("transfer转出...");
|
2026-05-21 15:38:19 +08:00
|
|
|
|
} else if (type === "collect") {
|
|
|
|
|
|
// 归集
|
|
|
|
|
|
console.log("collect归集...");
|
|
|
|
|
|
this.availableAmount = row ? (row.curAmount || 0) : 0;
|
|
|
|
|
|
this.collectSuccess = false;
|
|
|
|
|
|
this.collectShow = true;
|
2026-01-15 19:23:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onTip(index) {
|
|
|
|
|
|
if (index == this.activeTip) {
|
|
|
|
|
|
this.activeTip = -1;
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.activeTip = index;
|
|
|
|
|
|
},
|
2026-05-21 15:38:19 +08:00
|
|
|
|
// 填充全部数量
|
|
|
|
|
|
fillAllAmount() {
|
|
|
|
|
|
this.collectForm.amount = String(this.availableAmount);
|
|
|
|
|
|
},
|
|
|
|
|
|
// 切换密码显示
|
|
|
|
|
|
togglePassword() {
|
|
|
|
|
|
this.collectForm.showPassword = !this.collectForm.showPassword;
|
|
|
|
|
|
},
|
|
|
|
|
|
// 关闭弹窗
|
|
|
|
|
|
closeCollect() {
|
|
|
|
|
|
this.collectShow = false;
|
|
|
|
|
|
this.collectSuccess = false;
|
|
|
|
|
|
this.collectForm = { mobile: "", amount: "", password: "", showPassword: false };
|
|
|
|
|
|
},
|
|
|
|
|
|
// 归集确认
|
|
|
|
|
|
async collectConfirm() {
|
|
|
|
|
|
const { mobile, amount, password } = this.collectForm;
|
|
|
|
|
|
if (!mobile) {
|
|
|
|
|
|
uni.showToast({ title: '请输入省代理手机号', icon: 'none' });
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!/^1[3-9]\d{9}$/.test(mobile)) {
|
|
|
|
|
|
uni.showToast({ title: '请输入正确的手机号', icon: 'none' });
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!amount || parseFloat(amount) <= 0) {
|
|
|
|
|
|
uni.showToast({ title: '请输入有效数量', icon: 'none' });
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (parseFloat(amount) > parseFloat(this.availableAmount)) {
|
|
|
|
|
|
uni.showToast({ title: '数量不能超过可用数量', icon: 'none' });
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!password) {
|
|
|
|
|
|
uni.showToast({ title: '请输入支付密码', icon: 'none' });
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 调用归集接口
|
|
|
|
|
|
const resp = await collectQuery({ mobile, amount, password: CryptoJS.MD5(password).toString() });
|
|
|
|
|
|
if (resp && resp.bizcode === 100) {
|
|
|
|
|
|
uni.showToast({ title: '归集成功', icon: 'success' });
|
|
|
|
|
|
this.collectSuccess = true;
|
|
|
|
|
|
this.getAcctBalance();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.showToast({ title: resp.msg || '归集失败', icon: 'none' });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
},
|
2026-01-15 19:23:35 +08:00
|
|
|
|
},
|
|
|
|
|
|
};
|
2025-08-06 20:25:41 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.purse_warp {
|
2026-01-15 19:23:35 +08:00
|
|
|
|
height: 100%;
|
|
|
|
|
|
overflow-y: hidden;
|
|
|
|
|
|
background-color: $app-bj;
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_content_warp {
|
|
|
|
|
|
padding: 30rpx 30rpx 10rpx;
|
|
|
|
|
|
height: calc(100vh - 218rpx);
|
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
|
}
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_warp_item {
|
|
|
|
|
|
margin-bottom: 30rpx;
|
|
|
|
|
|
background: #ffffff;
|
|
|
|
|
|
border-radius: 16rpx;
|
|
|
|
|
|
padding: 32rpx;
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_item_title {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_item_title-left {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.title {
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_amount {
|
|
|
|
|
|
margin-right: 15rpx;
|
|
|
|
|
|
margin-top: 6rpx;
|
|
|
|
|
|
}
|
2025-08-16 20:59:19 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.right_soild {
|
|
|
|
|
|
margin-left: 12rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_item_title-right {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
|
align-items: center;
|
2026-05-21 15:38:19 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.button {
|
|
|
|
|
|
border-radius: 12rpx;
|
|
|
|
|
|
width: 120rpx;
|
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.exchange_button {
|
|
|
|
|
|
background: #ffffff;
|
|
|
|
|
|
color: #7934f6;
|
|
|
|
|
|
border: 2rpx solid #7934f6;
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.recharge_button {
|
|
|
|
|
|
background: linear-gradient(270deg, #b164fb 0%, #7934f6 100%);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.purse_item_bottom {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.bottom_item {
|
|
|
|
|
|
margin-top: 16rpx;
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.bottom_item_amount {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.bottom_item_lock {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
|
color: #999999;
|
|
|
|
|
|
text-align: end;
|
|
|
|
|
|
}
|
2025-08-08 00:08:12 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.bottom_item_title {
|
|
|
|
|
|
margin-top: 16rpx;
|
|
|
|
|
|
font-size: 20rpx;
|
|
|
|
|
|
color: #999999;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-06 20:25:41 +08:00
|
|
|
|
|
2026-01-15 19:23:35 +08:00
|
|
|
|
.bottom_item_tip {
|
|
|
|
|
|
font-size: 20rpx;
|
|
|
|
|
|
color: #999999;
|
|
|
|
|
|
text-align: end;
|
|
|
|
|
|
margin-top: 5rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-05-21 15:38:19 +08:00
|
|
|
|
|
|
|
|
|
|
.popup_content {
|
|
|
|
|
|
background: #ffffff;
|
|
|
|
|
|
border-radius: 48rpx 48rpx 0 0;
|
|
|
|
|
|
padding: 30rpx 32rpx;
|
|
|
|
|
|
padding-bottom: calc(60rpx + env(safe-area-inset-bottom));
|
|
|
|
|
|
|
|
|
|
|
|
.popup_header {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
margin-bottom: 48rpx;
|
|
|
|
|
|
|
|
|
|
|
|
.popup_title {
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
color: #71737C;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.popup_close {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
width: 48rpx;
|
|
|
|
|
|
height: 48rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.popup_form {
|
|
|
|
|
|
.form_item {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
background: #f7f7f7;
|
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
|
padding: 0 28rpx;
|
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
|
margin-bottom: 28rpx;
|
|
|
|
|
|
|
|
|
|
|
|
.form_icon {
|
|
|
|
|
|
width: 48rpx;
|
|
|
|
|
|
height: 48rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.form_input {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.form_all {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
color: #7934f6;
|
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.form_eye {
|
|
|
|
|
|
width: 48rpx;
|
|
|
|
|
|
height: 48rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.form_tip {
|
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
|
color: #999999;
|
|
|
|
|
|
text-align: right;
|
|
|
|
|
|
margin-bottom: 28rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.popup_confirm {
|
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
|
background: linear-gradient(270deg, #b164fb 0%, #7934f6 100%);
|
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.popup_success {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 60rpx 0;
|
|
|
|
|
|
|
|
|
|
|
|
.success_icon {
|
|
|
|
|
|
width: 160rpx;
|
|
|
|
|
|
height: 160rpx;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
margin-bottom: 32rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.success_title {
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
margin-bottom: 16rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.success_amount {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
font-size: 48rpx;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
margin-bottom: 48rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.popup_confirm {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
background: linear-gradient(270deg, #b164fb 0%, #7934f6 100%);
|
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-06 20:25:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
</style>
|