Files
frontend-app/pages/rwa_package/account/withdraw.vue
T

698 lines
20 KiB
Vue
Raw Normal View History

2025-12-16 09:13:48 +08:00
<template>
<view class="content">
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
<Header :title="topText" bgColor="rgba(0,0,0,0)" />
<view class="setting-view">
<view class="top-view">
<view class="top-left">
<text class="text-bold text-52 text-white">
2026-07-23 13:56:21 +08:00
{{ amount }}
2025-12-16 09:13:48 +08:00
</text>
<text class="text-20 text-white" style="font-weight: 100;">可用余额</text>
</view>
<view class="top-right">
<text class="text-bold text-36 text-white">
2026-07-23 13:56:21 +08:00
{{ noAmount }}
2025-12-16 09:13:48 +08:00
</text>
<text class="text-20 text-white" style="font-weight: 100;">不可用余额</text>
</view>
</view>
<view class="mid-view">
2026-07-23 13:56:21 +08:00
<text class="text-gray text-32">{{ type == 0 ? '提现' : '充值' }}方式</text>
2026-01-15 19:01:25 +08:00
<!-- #ifdef MP-WEIXIN -->
<view class="item-view" @click="onSelect('0')" style="border-bottom: 0;">
<image src="https://static.tbmall.xin/static/new/wx.png"></image>
<text class="text-gray text-32 " style="margin-left:20rpx;">微信</text>
<view class="right-icon-view" v-if="type == 1">
<u-radio-group v-model="curSelect">
<u-radio name="0" activeColor="#7934F6"></u-radio>
</u-radio-group>
</view>
<view class="right-icon-view" v-else>
<text class="text-32 text-gray" style="margin-right:12rpx"
v-if="selectVal && curSelect == '0'">{{ selectVal.name + '/' + selectVal.account }}</text>
<u-icon size="14" name="arrow-right" color="#333"></u-icon>
</view>
</view>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
2025-12-16 09:13:48 +08:00
<view class="item-view" @click="onSelect('0')" v-if="!isWeb || type != 0">
2026-01-31 12:03:26 +08:00
<image src="https://static.tbmall.xin/static/new/wx.png"></image>
2026-05-22 11:03:04 +08:00
<text class="text-gray text-32 " style="margin-left:20rpx;">微信</text>
2025-12-16 09:13:48 +08:00
<view class="right-icon-view" v-if="type == 1">
<u-radio-group v-model="curSelect">
2026-07-23 13:56:21 +08:00
<u-radio name="0" activeColor="#7934F6"></u-radio>
2025-12-16 09:13:48 +08:00
</u-radio-group>
</view>
<view class="right-icon-view" v-else>
2026-07-23 13:56:21 +08:00
<text class="text-32 text-gray" style="margin-right:12rpx"
v-if="selectVal && curSelect == '0'">{{ selectVal.name + '/' + selectVal.account }}</text>
<u-icon size="14" name="arrow-right" color="#333"></u-icon>
2025-12-16 09:13:48 +08:00
</view>
</view>
2026-07-23 13:56:21 +08:00
<view class="item-view" @click="onSelect('1')" style="border-width: 0;">
2026-01-31 12:03:26 +08:00
<image src="https://static.tbmall.xin/static/new/zfb.png"></image>
2026-05-22 11:03:04 +08:00
<text class="text-gray text-32 " style="margin-left:20rpx;">支付宝</text>
2025-12-16 09:13:48 +08:00
<view class="right-icon-view" v-if="type == 1">
<u-radio-group v-model="curSelect">
2026-07-23 13:56:21 +08:00
<u-radio name="1" activeColor="#7934F6"></u-radio>
2025-12-16 09:13:48 +08:00
</u-radio-group>
</view>
<view class="right-icon-view" v-else>
2026-07-23 13:56:21 +08:00
<text class="text-32 text-gray" style="margin-right:12rpx"
v-if="selectVal && curSelect == '1'">{{ selectVal.name + '/' + selectVal.account }}</text>
<u-icon size="14" name="arrow-right" color="#333"></u-icon>
2025-12-16 09:13:48 +08:00
</view>
</view>
2026-01-15 19:01:25 +08:00
<!-- #endif -->
2025-12-16 09:13:48 +08:00
</view>
<view class="mid-view">
<view class="flex-r-lr">
2026-07-23 13:56:21 +08:00
<text class="text-gray text-32">{{ type == 0 ? '提现' : '充值' }}金额</text>
2025-12-16 09:13:48 +08:00
<text class="text-fu1 text-28" v-if="type == 0" style="font-weight:400">每日仅限提现1次</text>
</view>
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
<view class="input-view">
<text class="text-52 text-zu text-bold">¥</text>
2026-01-15 19:01:25 +08:00
<input style="background: #fff;margin-top:10rpx;width: 400rpx;"
2026-07-23 13:56:21 +08:00
:placeholder="type == 0 ? '请输入提现金额(0.3-2000)' : '输入充值金额'"
placeholder-style="color:#999;font-weight:400" @input="onInput" border="0" v-model="money"
:customStyle="inputCss"></input>
2025-12-16 09:13:48 +08:00
</view>
</view>
2026-01-15 19:01:25 +08:00
<view class="mid-view">
<view class="flex-r-lr" style="border-bottom: 2rpx solid #F6F6F6; padding-bottom: 20rpx;">
<text class="text-gray text-32 text-bold">提现说明</text>
</view>
<view class="instructions-container">
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>一、可提现额度说明</text>
</view>
<view class="instruction-content">
<view class="sub-item">1. 单笔提现最低限额为<text class="text-highlight">0.3元</text>,单笔最高限额为<text
class="text-highlight">200元</text>;</view>
<view class="sub-item">2. 单个账户单日累计提现最高限额为<text class="text-highlight">2000元</text>。</view>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>二、提现次数限制</text>
</view>
<view class="instruction-content">
<text>每个自然日,单个用户账户最多可发起<text class="text-highlight">10次</text>提现申请;</text>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>三、提现受理与处理时间</text>
</view>
<view class="instruction-content">
<text>本平台提现功能支持<text class="text-highlight">7×24小时</text>全天候提交申请,无工作日 /
节假日限制,提交时间以系统记录为准。</text>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>四、到账时间说明</text>
</view>
<view class="instruction-content">
<text>1. 提现申请提交后,资金将在<text
class="text-highlight">3~5天</text>内直接划转至您绑定的账户;(正常情况下资金实时到账,您理解并同意如遇支付渠道维护、网络延迟或系统异常,到账时间可能顺延)</text>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>五、提现渠道说明</text>
</view>
<view class="instruction-content">
<text>仅支持提现至绑定的零钱账户,暂不支持提现至银行卡或其他账户。</text>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>六、提现手续费说明</text>
</view>
<view class="instruction-content">
<text>本平台每笔提现将按提现金额的<text class="text-highlight">0.6%</text>收取手续费,手续费直接从提现金额中扣除,实际到账金额 =
申请提现金额 - 提现手续费。</text>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>七、提现失败说明</text>
</view>
<view class="instruction-content">
<view class="sub-item" style="margin-bottom: 8rpx; color: #333; font-weight: 500;">
出现以下情形时,提现将失败,资金将原路退回至您的账户余额:</view>
<view class="sub-item">1. 绑定的收款账户信息有误、账户已注销或处于异常状态;</view>
<view class="sub-item">2. 提现金额未达到最低限额,或超出当日 / 当月累计提现额度;</view>
<view class="sub-item">3. 账户未完成实名认证,或存在异常交易、违规操作被系统限制提现。</view>
</view>
</view>
<view class="instruction-item">
<view class="instruction-title">
<view class="title-dot"></view>
<text>八、其他注意事项</text>
</view>
<view class="instruction-content">
<view class="sub-item">1. 发起提现前请确保账户已完成实名认证,未实名账户无法发起提现;</view>
<view class="sub-item">2. 请绑定本人实名的微信零钱 / 银行卡账户,否则可能导致提现失败或资金风险;</view>
<view class="sub-item">3. 如有疑问,可通过小程序内「联系客服」入口咨询在线客服。</view>
</view>
</view>
</view>
2026-07-23 13:56:21 +08:00
</view>
2026-01-15 19:01:25 +08:00
<view class="zhu-view" v-if="selectVal">
<u-icon size="12" style="margin-top:5rpx;margin-right:12rpx" name="error-circle"
color="#7934F6"></u-icon>
<text class="text-24 text-zi" style="font-weight: 400;">通过支付宝或微信提现时,将由微信官方收取0.6%的费用,本平台不收取任何费用。</text>
</view>
2025-12-16 09:13:48 +08:00
</view>
<view class="bottom-btn">
<MyBtn :text="bottomText" @ok="onAdd"></MyBtn>
</view>
2026-07-23 13:56:21 +08:00
<SelectItem :itemData="dataList" @close="onClose" @ok="onOk" @add="onAddBack" :type="curSelect"
:itemShow="selectShow"></SelectItem>
<CodeItem @ti="onTi" @close="onClose" :codeShow="codeShow" :phone="userInfo ? userInfo.mobile : ''"></CodeItem>
2025-12-16 09:13:48 +08:00
<up-toast ref="uToastRef"></up-toast>
</view>
</template>
<script>
2026-07-23 13:56:21 +08:00
import { getWithdraw, sendWithdraw } from '@/api/common.js';
import { getUserInfo, updateName, deleteAccount } from '@/api/auth.js';
2025-12-16 09:13:48 +08:00
import Header from '@/components/common/header.vue';
import TopSafe from '@/components/common/top-safe.nvue'
import MyBtn from '@/components/common/my-btn.vue'
import func from '@/utils/func.js';
import SelectItem from './components/select-item.vue'
import CodeItem from './components/code-item.vue'
2026-07-23 13:56:21 +08:00
import { uniPlatform } from '@/components/common/global.js'
import { recharge, getAcctBalance } from '@/api/finance.js';
2025-12-16 09:13:48 +08:00
import { appWxpayFun, zfbPayFun } from '@/utils/payUtils.js'
// #ifdef APP-PLUS
2026-07-23 13:56:21 +08:00
import { requestMerchantTransfer } from "@/uni_modules/uni-requestMerchantTransfer"
// #endif
2025-12-16 09:13:48 +08:00
export default {
2026-07-23 13:56:21 +08:00
components: { Header, TopSafe, MyBtn, SelectItem, CodeItem },
2025-12-16 09:13:48 +08:00
data() {
return {
2026-07-23 13:56:21 +08:00
isWeb: false,
topText: '',
type: 0,
amount: '',
money: '',
noAmount: '',
account: '',
bottomText: '',
curSelect: '0',
selectShow: false,
codeShow: false,
name: '',
2025-12-16 09:13:48 +08:00
inputCss: {
"height": '80rpx',
"background": "#F3F3F3FF",
"border-radius": "30rpx",
"border": "0rpx",
"padding-left": "12rpx",
2026-01-15 19:01:25 +08:00
"width": "320rpx"
2025-12-16 09:13:48 +08:00
},
2026-07-23 13:56:21 +08:00
dataList: [
2025-12-16 09:13:48 +08:00
],
2026-07-23 13:56:21 +08:00
selectVal: null,
userInfo: null,
2025-12-16 09:13:48 +08:00
};
},
2026-07-23 13:56:21 +08:00
onShow() {
if (uniPlatform == 'web') {
2025-12-16 09:13:48 +08:00
this.isWeb = true;
2026-07-23 13:56:21 +08:00
} else {
2025-12-16 09:13:48 +08:00
this.isWeb = false;
}
},
onLoad(option) {
2026-07-23 13:56:21 +08:00
if (option && option.type) {
2025-12-16 09:13:48 +08:00
this.type = Number(option.type);
this.init();
}
},
methods: {
userinfo() {
getUserInfo().then(res => {
if (res.bizcode == 100) {
this.userInfo = res.data;
}
})
},
2026-07-23 13:56:21 +08:00
onInput(e) {
2025-12-16 09:13:48 +08:00
this.$nextTick(() => {
this.money = func.checkInputPrice(e.detail.value);
})
},
2026-07-23 13:56:21 +08:00
onOk(val) {
this.selectVal = this.dataList.filter(i => i.id == val)[0];
2025-12-16 09:13:48 +08:00
this.onClose();
},
2026-07-23 13:56:21 +08:00
onAddBack() {
2025-12-16 09:13:48 +08:00
this.onClose();
uni.navigateTo({
2026-07-23 13:56:21 +08:00
url: '/pages/rwa_package/account/index?id=' + this.curSelect
2025-12-16 09:13:48 +08:00
})
},
2026-07-23 13:56:21 +08:00
onClose() {
2025-12-16 09:13:48 +08:00
this.selectShow = false;
this.codeShow = false;
},
2026-07-23 13:56:21 +08:00
getList(val) {
2025-12-16 09:13:48 +08:00
let params = {
2026-07-23 13:56:21 +08:00
platform: this.curSelect == '0' ? 2 : 1
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
getWithdraw(params).then(res => {
2025-12-16 09:13:48 +08:00
if (res.bizcode === 100) {
this.dataList = res.data;
2026-07-23 13:56:21 +08:00
this.dataList.forEach(item => {
2025-12-16 09:13:48 +08:00
item.name = item.accountName;
item.account = item.accountNumber;
})
this.selectShow = true;
} else {
this.$refs.uToastRef.show({
type: 'error',
message: res.msg,
});
return null;
}
})
},
2026-07-23 13:56:21 +08:00
onSelect(val) {
2025-12-16 09:13:48 +08:00
this.curSelect = val;
2026-07-23 13:56:21 +08:00
if (this.type == 0) {
2025-12-16 09:13:48 +08:00
this.selectVal = null;
this.getList();
}
},
async getAcctBalance() {
this.balanceLoading = true;
const resp = await getAcctBalance();
let data = [];
if (resp && resp.bizcode === 100) {
data = resp.data || [];
2026-07-23 13:56:21 +08:00
data.forEach(item => {
if ("balance" == item.categoty) {
2025-12-16 09:13:48 +08:00
this.noAmount = item.lockAmount;
this.amount = item.curAmount;
}
})
}
this.balanceList = data;
this.balanceLoading = false;
},
init() {
2026-07-23 13:56:21 +08:00
if (this.type == 0) {
2025-12-16 09:13:48 +08:00
this.topText = '现金余额提现';
this.bottomText = '提现';
2026-07-23 13:56:21 +08:00
} else if (this.type == 1) {
2025-12-16 09:13:48 +08:00
this.topText = '现金余额充值';
this.bottomText = '充值';
}
this.userinfo();
this.getAcctBalance();
},
2026-07-23 13:56:21 +08:00
onAdd() {
if (this.type == 0) {
if (!this.money) {
2025-12-16 09:13:48 +08:00
this.$refs.uToastRef.show({
2026-07-23 13:56:21 +08:00
type: "error",
message: "请输入金额",
2025-12-16 09:13:48 +08:00
});
return;
}
2026-07-23 13:56:21 +08:00
if (Number(this.money) < 0.3) {
2025-12-16 09:13:48 +08:00
this.$refs.uToastRef.show({
2026-07-23 13:56:21 +08:00
type: "error",
message: "提现金额不能低于0.3元",
2025-12-16 09:13:48 +08:00
});
return;
}
2026-07-23 13:56:21 +08:00
if (Number(this.money) > 2000) {
2025-12-16 09:13:48 +08:00
this.$refs.uToastRef.show({
2026-07-23 13:56:21 +08:00
type: "error",
message: "提现金额不能大于2000元",
2025-12-16 09:13:48 +08:00
});
return;
}
2026-07-23 13:56:21 +08:00
if (Number(this.money) > Number(this.amount)) {
2025-12-16 09:13:48 +08:00
this.$refs.uToastRef.show({
2026-07-23 13:56:21 +08:00
type: "error",
message: "输入金额大于可用余额",
2025-12-16 09:13:48 +08:00
});
return;
}
2026-07-23 13:56:21 +08:00
if (this.type == 0 && !this.selectVal) {
2025-12-16 09:13:48 +08:00
this.$refs.uToastRef.show({
2026-07-23 13:56:21 +08:00
type: "error",
message: "请选择提现方式",
2025-12-16 09:13:48 +08:00
});
return;
}
2026-07-23 13:56:21 +08:00
console.log('onAdd', this.curSelect)
2025-12-16 09:13:48 +08:00
this.codeShow = true;
2026-07-23 13:56:21 +08:00
} else {
if (!this.money) {
2025-12-16 09:13:48 +08:00
this.$refs.uToastRef.show({
2026-07-23 13:56:21 +08:00
type: "error",
message: "请输入金额",
2025-12-16 09:13:48 +08:00
});
return;
}
let params = {
2026-07-23 13:56:21 +08:00
amount: this.money,
category: 'balance',
payway: this.curSelect == '0' ? 'wechat' : 'alipay'
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
recharge(params).then(result => {
2025-12-16 09:13:48 +08:00
if (result && result.bizcode === 100) {
const item = result.data;
if (item.wechat && Object.keys(item.wechat).length !== 0) {
this.appWxpay(item.wechat, item.orderId, item.orderNum);
} else if (item.alipay && Object.keys(item.alipay).length !== 0 && item.alipay) {
this.zfbPay(item.alipay, item.orderId, item.orderNum);
} else {
this.$refs.uToastRef.show({
type: 'error',
message: "充值失败",
});
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
}
}
})
}
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
},
async appWxpay(alipay, orderId, orderNum) {
try {
const result = await appWxpayFun(alipay, orderId, orderNum);
console.log('支付成功', result);
// 处理支付成功后的逻辑,如更新订单状态等
} catch (error) {
console.error('支付失败', error);
// 处理支付失败后的逻辑,如提示用户等
}
},
// 支付宝支付
async zfbPay(alipay, orderId, orderNum) {
try {
const result = await zfbPayFun(alipay, orderId, orderNum);
console.log('支付成功', result);
// 处理支付成功后的逻辑,如更新订单状态等
} catch (error) {
console.error('支付失败', error);
// 处理支付失败后的逻辑,如提示用户等
}
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
},
2026-07-23 13:56:21 +08:00
onTi(code) {
2025-12-16 09:13:48 +08:00
let params = {
2026-07-23 13:56:21 +08:00
verificationCode: code,
bindId: this.selectVal.id,
amount: Number(this.money),
accountType: this.curSelect == '0' ? 1 : 2
2025-12-16 09:13:48 +08:00
}
let _this = this;
2026-07-23 13:56:21 +08:00
sendWithdraw(params).then(res => {
console.log('absc', res)
2025-12-16 09:13:48 +08:00
if (res && res.bizcode == 100) {
2026-07-23 13:56:21 +08:00
console.log('absc1111111111', res, this.curSelect)
2025-12-16 09:13:48 +08:00
// data = resp.data || [];
2026-07-23 13:56:21 +08:00
if (this.curSelect == '1') {
this.qing();
if (res.data.alResponse.msg == 'Success') {
2025-12-16 09:13:48 +08:00
uni.navigateTo({
2026-07-23 13:56:21 +08:00
url: '/pages/rwa_package/account/success?money=' + params.amount
2025-12-16 09:13:48 +08:00
})
2026-07-23 13:56:21 +08:00
} else {
setTimeout(() => {
2025-12-16 09:13:48 +08:00
_this.$refs.uToastRef.show({
type: 'error',
message: res.data.alResponse.subMsg,
});
2026-07-23 13:56:21 +08:00
}, 400)
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
} else {
console.log('开始提现', res, this.curSelect)
2026-07-23 14:21:17 +08:00
// #ifdef APP-PLUS
requestMerchantTransfer({
// uni.requestMerchantTransfer({
"mchId": "1725999656",
"appId": "wx7a5902cd556d9396",
"package": res.data.wxResponse.packageInfo,
success: (res) => {
this.qing();
uni.navigateTo({
url: '/pages/rwa_package/account/success?money=' + params.amount
})
},
fail: (res) => {
_this.$refs.uToastRef.show({
type: 'error',
message: '提现失败',
});
},
})
// #endif
2026-01-15 19:01:25 +08:00
// #ifdef MP-WEIXIN
wx.requestMerchantTransfer({
2025-12-16 09:13:48 +08:00
"mchId": "1725999656",
"appId": "wx7a5902cd556d9396",
"package": res.data.wxResponse.packageInfo,
success: (res) => {
this.qing();
uni.navigateTo({
2026-07-23 13:56:21 +08:00
url: '/pages/rwa_package/account/success?money=' + params.amount
2025-12-16 09:13:48 +08:00
})
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
},
fail: (res) => {
_this.$refs.uToastRef.show({
type: 'error',
message: '提现失败',
});
},
2026-07-23 13:56:21 +08:00
2026-01-31 12:03:26 +08:00
})
// #endif
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
})
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
},
2026-07-23 13:56:21 +08:00
qing() {
2025-12-16 09:13:48 +08:00
this.money = '';
this.curSelect = '0';
this.selectVal = null;
this.onClose();
}
}
}
</script>
<style lang="scss" scoped>
2026-07-23 13:56:21 +08:00
.bottom-btn {
2025-12-16 09:13:48 +08:00
width: 100%;
2026-07-23 13:56:21 +08:00
margin-bottom: 92rpx;
2025-12-16 09:13:48 +08:00
display: flex;
flex-direction: column;
align-items: center;
padding: 0 32rpx;
box-sizing: border-box;
position: relative;
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
.setting-view {
width: 100%;
height: calc(100% - 88rpx - 92rpx - 88rpx - var(--status-bar-height));
display: flex;
flex-direction: column;
align-items: center;
overflow-y: auto;
padding: 0 32rpx;
box-sizing: border-box;
position: relative;
2026-07-23 13:56:21 +08:00
.top-view {
width: 100%;
margin-top: 40rpx;
height: 188rpx;
min-height: 188rpx;
2025-12-16 09:13:48 +08:00
display: flex;
2026-07-23 13:56:21 +08:00
background: linear-gradient(270deg, #B164FB 0%, #7934F6 100%);
2025-12-16 09:13:48 +08:00
padding: 36rpx 32rpx;
box-sizing: border-box;
flex-direction: row;
justify-content: space-between;
align-items: center;
border-radius: 16rpx;
2026-07-23 13:56:21 +08:00
.top-left {
2025-12-16 09:13:48 +08:00
display: flex;
flex-direction: column;
justify-content: space-between;
2026-07-23 13:56:21 +08:00
height: 108rpx;
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
.top-right {
2025-12-16 09:13:48 +08:00
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-end;
2026-07-23 13:56:21 +08:00
height: 108rpx;
2025-12-16 09:13:48 +08:00
}
}
2026-07-23 13:56:21 +08:00
.zhu-view {
width: 100%;
2025-12-16 09:13:48 +08:00
display: flex;
2026-07-23 13:56:21 +08:00
margin-top: 32rpx;
2025-12-16 09:13:48 +08:00
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
padding: 16rpx;
box-sizing: border-box;
background: rgba(121, 52, 246, 0.05);
2026-07-23 13:56:21 +08:00
border-radius: 8rpx;
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
.mid-view {
width: 100%;
2025-12-16 09:13:48 +08:00
display: flex;
flex-direction: column;
box-sizing: border-box;
background-color: #fff;
border-radius: 16rpx;
padding: 32rpx;
2026-07-23 13:56:21 +08:00
padding-bottom: 0;
margin-top: 24rpx;
.item-view {
width: 100%;
height: 110rpx;
min-height: 110rpx;
2025-12-16 09:13:48 +08:00
display: flex;
flex-direction: row;
position: relative;
align-items: center;
border-bottom: 2rpx solid #ececec;
2026-07-23 13:56:21 +08:00
.right-icon-view {
2025-12-16 09:13:48 +08:00
position: absolute;
2026-07-23 13:56:21 +08:00
right: 0;
2025-12-16 09:13:48 +08:00
display: flex;
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
image {
width: 48rpx;
height: 48rpx;
2025-12-16 09:13:48 +08:00
}
}
2026-07-23 13:56:21 +08:00
.input-view {
width: 100%;
height: 100rpx;
2025-12-16 09:13:48 +08:00
border-radius: 20rpx;
2026-07-23 13:56:21 +08:00
margin: 32rpx 0;
2025-12-16 09:13:48 +08:00
display: flex;
flex-direction: row;
align-items: center;
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
}
2026-01-15 19:01:25 +08:00
.instructions-container {
margin-top: 16rpx;
padding-bottom: 32rpx;
.instruction-item {
margin-top: 28rpx;
.instruction-title {
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 12rpx;
.title-dot {
width: 6rpx;
height: 24rpx;
background: linear-gradient(180deg, #B164FB 0%, #7934F6 100%);
border-radius: 4rpx;
margin-right: 12rpx;
}
text {
font-size: 28rpx;
font-weight: bold;
color: #333333;
}
}
.instruction-content {
font-size: 24rpx;
color: #666666;
line-height: 1.6;
padding-left: 18rpx;
.text-highlight {
color: #7934F6;
font-weight: bold;
margin: 0 4rpx;
}
.sub-item {
margin-bottom: 8rpx;
&:last-child {
margin-bottom: 0;
}
}
}
}
}
2025-12-16 09:13:48 +08:00
}
2026-07-23 13:56:21 +08:00
2025-12-16 09:13:48 +08:00
}
</style>