## 删除的死代码脚本
- scripts/i18n_class_c.py (脚本自承'新架构下永远输出 0',纯防御性)
- scripts/full_migrate_i18n.py (其产出违反 CLAUDE.md 1.2 中文 key 铁律,已标 DEPRECATED)
- scripts/__pycache__/ (Python 缓存)
## 删除的旧 per-page lang 文件
- lang/zh-cn/<page>/<file>.js (140 个)
- lang/en-us/<page>/<file>.js (139 个)
- 共 279 个文件,运行时不再加载,0 个 key 被 .vue 调用(经 diagnose_keys.py 验证)
## 删除的备份和迁移表
- lang/_backup/ (git 已跟踪原文件)
- lang/_migration_map.json / lang/_migration-map.json (运行时不用)
## 删除的中间产物 JSON
- docs/i18n-rename-*.json (smart_rename 中间产物,已用完)
- docs/i18n-ambiguous.json / i18n-audit.json / i18n-call-rewrite.log /
i18n-clean-dead.log / i18n-file-texts.json / i18n-page-titles.json /
i18n-vue-extract.json (前一会话残留,无引用方)
- docs/i18n-{naming,shadow,strict}-audit.json (脚本会自动重新生成)
## 删除的 modular lang 文件
- lang/zh-cn/*.js / lang/en-us/*.js (20 个模块文件,内容是上一会话产生的死代码)
- lang/zh-cn/index.js / lang/en-us/index.js (聚合入口)
- lang/DEPRECATED.md (已不再相关)
## 删除的不成熟脚本
- scripts/check_perpage.py (诊断用,已完成)
- scripts/diagnose_keys.py (诊断用,已完成)
- scripts/smart_rename_i18n.py (v1-v3 都 bug,未修完)
## 现状
- lang/ 现在只有 zh-cn.js + en-us.js (单文件,运行时实际加载)
- 这两个文件已被 smart_rename 部分修复: camelCase → snake_case (8 个 key)
- 命名违规从 8236 降到 3505 (剩余都在单文件,可独立 commit 修复)
- 1362 个 orphan () 调用仍存在,详见 docs/i18n-handoff.md
424 lines
11 KiB
Vue
424 lines
11 KiB
Vue
<template>
|
||
<view class="container" :style="themeColor">
|
||
<view class="bank-account-wrap" @click="goAccount()">
|
||
<view class="tx-wrap" v-if="bankAccountInfo.withdraw_type">
|
||
<text class="tx-to">{{ $lang("fenxiao.withdraw_apply.l5") }}</text>
|
||
<view class="tx-bank" v-if="bankAccountInfo.withdraw_type == 'wechatpay'">{{ $lang("fenxiao.withdraw_apply.l6") }}</view>
|
||
<view class="tx-bank" v-else>{{ bankAccountInfo.bank_account }}</view>
|
||
<view class="tx-img" v-if="bankAccountInfo.withdraw_type == 'alipay'">
|
||
<image :src="$util.img('public/uniapp/member/apply_withdrawal/alipay.png')" mode="widthFix" show-menu-by-longpress></image>
|
||
</view>
|
||
<view class="tx-img" v-else-if="bankAccountInfo.withdraw_type == 'bank'">
|
||
<image :src="$util.img('public/uniapp/member/apply_withdrawal/bank.png')" mode="widthFix" show-menu-by-longpress></image>
|
||
</view>
|
||
<view class="tx-img" v-else-if="bankAccountInfo.withdraw_type == 'wechatpay'">
|
||
<image :src="$util.img('public/uniapp/member/apply_withdrawal/wechatpay.png')" mode="widthFix" show-menu-by-longpress>
|
||
</image>
|
||
</view>
|
||
</view>
|
||
<text class="tx-to" v-else>{{ $lang("member.apply_withdrawal.l19") }}</text>
|
||
<view class="iconfont icon-right"></view>
|
||
</view>
|
||
<view class="empty-box"></view>
|
||
<view class="withdraw-wrap">
|
||
<view class="withdraw-wrap-title">{{ $lang("member.apply_withdrawal.l24") }}</view>
|
||
<view class="money-wrap">
|
||
<text class="unit">{{ $lang('common.currency_symbol') }}</text>
|
||
<input type="digit" class="withdraw-money" v-model="withdrawMoney" />
|
||
<view class="delete" @click="remove" v-if="withdrawMoney">
|
||
<image :src="$util.img('public/uniapp/member/apply_withdrawal/close.png')" mode="widthFix" show-menu-by-longpress></image>
|
||
</view>
|
||
</view>
|
||
<view class="bootom">
|
||
<view>
|
||
<text class="color-tip">{ $lang("member.apply_withdrawal.l34") } $lang('common.currency_symbol') }}{{ withdrawInfo.member_info.balance_money | moneyFormat }}</text>
|
||
<text class="all-tx color-base-text" @click="allTx">{{ $lang("fenxiao.withdraw_apply.l42") }}</text>
|
||
</view>
|
||
</view>
|
||
<view class="desc">
|
||
<text>{ $lang("fenxiao.withdraw_apply.l46") } $lang('common.currency_symbol') }}{{ withdrawInfo.config.min | moneyFormat }}</text>
|
||
<text>{ $lang("member.apply_withdrawal.l40") } withdrawInfo.config.rate + '%' }}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="btn color-base-border ns-gradient-otherpages-member-widthdrawal-withdrawal" :class="{ disabled: withdrawMoney == '' || withdrawMoney == 0 }" @click="withdraw">
|
||
提现
|
||
</view>
|
||
|
||
<view class="recoend" @click="toWithdrawal">
|
||
<view class="recoend-con">{{ $lang("fenxiao.withdraw_apply.l64") }}</view>
|
||
</view>
|
||
<loading-cover ref="loadingCover"></loading-cover>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
withdrawInfo: {
|
||
config: {
|
||
is_use: 0,
|
||
min: 1,
|
||
rate: 0
|
||
},
|
||
member_info: {
|
||
balance_money: 0,
|
||
balance_withdraw: 0,
|
||
balance_withdraw_apply: 0
|
||
}
|
||
},
|
||
bankAccountInfo: {},
|
||
withdrawMoney: '',
|
||
isSub: false
|
||
};
|
||
},
|
||
onShow() {
|
||
if (this.storeToken) {
|
||
this.getWithdrawInfo();
|
||
this.getBankAccountInfo();
|
||
} else {
|
||
this.$util.redirectTo(this.$util.LOGIN_PAGE_URL, {
|
||
back: '/pages_tool/member/apply_withdrawal'
|
||
});
|
||
}
|
||
},
|
||
methods: {
|
||
toWithdrawal() {
|
||
this.$util.redirectTo('/pages_tool/member/withdrawal');
|
||
},
|
||
//全部提现
|
||
allTx() {
|
||
this.withdrawMoney = this.withdrawInfo.member_info.balance_money;
|
||
},
|
||
// 删除提现金额
|
||
remove() {
|
||
this.withdrawMoney = '';
|
||
},
|
||
/**
|
||
* 获取提现信息
|
||
*/
|
||
getWithdrawInfo() {
|
||
this.$api.sendRequest({
|
||
url: '/api/memberwithdraw/info',
|
||
success: res => {
|
||
if (res.code >= 0 && res.data) {
|
||
this.withdrawInfo = res.data;
|
||
if (this.withdrawInfo.config.is_use == 0) {
|
||
this.$util.showToast({
|
||
title: $lang('member.apply_withdrawal.l109')
|
||
});
|
||
setTimeout(() => {
|
||
this.$util.redirectTo(this.$util.MEMBER_PAGE_URL);
|
||
}, 1500);
|
||
}
|
||
}
|
||
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
||
},
|
||
fail: res => {
|
||
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
||
}
|
||
});
|
||
},
|
||
/**
|
||
* 银行账号信息
|
||
*/
|
||
getBankAccountInfo() {
|
||
this.$api.sendRequest({
|
||
url: '/api/memberbankaccount/defaultinfo',
|
||
success: res => {
|
||
if (res.code >= 0 && res.data) {
|
||
this.bankAccountInfo = res.data;
|
||
}
|
||
}
|
||
});
|
||
},
|
||
verify() {
|
||
if (this.withdrawMoney == '' || this.withdrawMoney == 0 || isNaN(parseFloat(this.withdrawMoney))) {
|
||
this.$util.showToast({
|
||
title: $lang('fenxiao.withdraw_apply.l178')
|
||
});
|
||
return false;
|
||
}
|
||
if (parseFloat(this.withdrawMoney) > parseFloat(this.withdrawInfo.member_info.balance_money)) {
|
||
this.$util.showToast({
|
||
title: $lang('fenxiao.withdraw_apply.l189')
|
||
});
|
||
return false;
|
||
}
|
||
if (parseFloat(this.withdrawMoney) < parseFloat(this.withdrawInfo.config.min)) {
|
||
this.$util.showToast({
|
||
title: $lang('fenxiao.withdraw_apply.l196')
|
||
});
|
||
return false;
|
||
}
|
||
return true;
|
||
},
|
||
withdraw() {
|
||
if (!this.bankAccountInfo.withdraw_type) {
|
||
this.$util.showToast({
|
||
title: $lang('fenxiao.withdraw_apply.l205')
|
||
});
|
||
return;
|
||
}
|
||
if (this.verify()) {
|
||
if (this.isSub) return;
|
||
this.isSub = true;
|
||
|
||
var applet_type = 0;
|
||
if (this.bankAccountInfo.withdraw_type == 'wechatpay') {
|
||
// #ifdef MP
|
||
applet_type = 1;
|
||
// #endif
|
||
}
|
||
|
||
// #ifdef MP
|
||
this.subscribeMessage(() => {
|
||
this.$api.sendRequest({
|
||
url: '/api/memberwithdraw/apply',
|
||
data: {
|
||
apply_money: this.withdrawMoney,
|
||
transfer_type: this.bankAccountInfo.withdraw_type, //转账提现类型
|
||
realname: this.bankAccountInfo.realname,
|
||
mobile: this.bankAccountInfo.mobile,
|
||
bank_name: this.bankAccountInfo.branch_bank_name,
|
||
account_number: this.bankAccountInfo.bank_account,
|
||
applet_type: applet_type
|
||
},
|
||
success: res => {
|
||
if (res.code >= 0) {
|
||
this.$util.showToast({
|
||
title: $lang('fenxiao.withdraw_apply.l238')
|
||
});
|
||
setTimeout(() => {
|
||
this.$util.redirectTo(
|
||
'/pages_tool/member/withdrawal', {},
|
||
'redirectTo');
|
||
}, 1500);
|
||
} else {
|
||
this.isSub = false;
|
||
this.$util.showToast({
|
||
title: res.message
|
||
});
|
||
}
|
||
},
|
||
fail: res => {
|
||
this.isSub = false;
|
||
}
|
||
});
|
||
});
|
||
// #endif
|
||
|
||
// #ifndef MP-WEIXIN
|
||
this.$api.sendRequest({
|
||
url: '/api/memberwithdraw/apply',
|
||
data: {
|
||
apply_money: this.withdrawMoney,
|
||
transfer_type: this.bankAccountInfo.withdraw_type, //转账提现类型
|
||
realname: this.bankAccountInfo.realname,
|
||
mobile: this.bankAccountInfo.mobile,
|
||
bank_name: this.bankAccountInfo.branch_bank_name,
|
||
account_number: this.bankAccountInfo.bank_account,
|
||
applet_type: applet_type
|
||
},
|
||
success: res => {
|
||
if (res.code >= 0) {
|
||
this.$util.showToast({
|
||
title: $lang('fenxiao.withdraw_apply.l238')
|
||
});
|
||
setTimeout(() => {
|
||
this.$util.redirectTo('/pages_tool/member/withdrawal', {},
|
||
'redirectTo');
|
||
}, 1500);
|
||
} else {
|
||
this.isSub = false;
|
||
this.$util.showToast({
|
||
title: res.message
|
||
});
|
||
}
|
||
},
|
||
fail: res => {
|
||
this.isSub = false;
|
||
}
|
||
});
|
||
// #endif
|
||
}
|
||
},
|
||
goAccount() {
|
||
this.$util.redirectTo(
|
||
'/pages_tool/member/account', {
|
||
back: '/pages_tool/member/apply_withdrawal'
|
||
},
|
||
'redirectTo'
|
||
);
|
||
},
|
||
/**
|
||
* 微信订阅消息
|
||
*/
|
||
subscribeMessage(callback) {
|
||
this.$api.sendRequest({
|
||
url: '/weapp/api/weapp/messagetmplids',
|
||
data: {
|
||
keywords: 'USER_WITHDRAWAL_SUCCESS'
|
||
},
|
||
success: res => {
|
||
if (res.code == 0 && res.data.length) {
|
||
uni.requestSubscribeMessage({
|
||
tmplIds: res.data,
|
||
fail: res => {
|
||
},
|
||
complete: () => {
|
||
callback();
|
||
}
|
||
});
|
||
} else {
|
||
callback();
|
||
}
|
||
},
|
||
fail: res => {
|
||
callback();
|
||
}
|
||
});
|
||
}
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.container {
|
||
width: 100vw;
|
||
height: 100vh;
|
||
background: #fff;
|
||
}
|
||
|
||
.empty-box {
|
||
height: 20rpx;
|
||
}
|
||
|
||
.bank-account-wrap {
|
||
margin: 0 20rpx;
|
||
padding: 20rpx 30rpx;
|
||
border-bottom: 2rpx solid #f7f7f7;
|
||
position: relative;
|
||
|
||
.tx-wrap {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
margin-right: 60rpx;
|
||
|
||
.tx-bank {
|
||
margin-right: 60rpx;
|
||
flex: 1;
|
||
margin-left: 10rpx;
|
||
text-align: right;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.tx-img {
|
||
position: absolute;
|
||
right: 100rpx;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
}
|
||
|
||
.iconfont {
|
||
position: absolute;
|
||
right: 40rpx;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
}
|
||
}
|
||
|
||
.withdraw-wrap {
|
||
margin: 0 20rpx;
|
||
padding: 30rpx;
|
||
border-radius: 16rpx;
|
||
box-shadow: rgba(110, 110, 110, 0.09) 0 0 20rpx 0;
|
||
|
||
.money-wrap {
|
||
padding: 20rpx 0;
|
||
border-bottom: 2rpx solid #eee;
|
||
display: flex;
|
||
align-items: baseline;
|
||
|
||
.unit {
|
||
font-size: 60rpx;
|
||
line-height: 1.3;
|
||
}
|
||
|
||
.withdraw-money {
|
||
height: 70rpx;
|
||
line-height: 70rpx;
|
||
min-height: 70rpx;
|
||
padding-left: 20rpx;
|
||
font-size: 60rpx;
|
||
flex: 1;
|
||
font-weight: bolder;
|
||
}
|
||
|
||
.delete {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
}
|
||
|
||
.bootom {
|
||
display: flex;
|
||
padding-top: 20rpx;
|
||
|
||
text {
|
||
line-height: 1;
|
||
flex: 2;
|
||
}
|
||
|
||
.all-tx {
|
||
padding-left: 10rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
margin: 0 30rpx;
|
||
margin-top: 60rpx;
|
||
height: 80rpx;
|
||
line-height: 80rpx;
|
||
border-radius: $border-radius;
|
||
color: #fff;
|
||
text-align: center;
|
||
background-color: var(--main-color);
|
||
|
||
&.disabled {
|
||
background: #ccc;
|
||
border-color: #ccc;
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.recoend {
|
||
margin-top: 40rpx;
|
||
|
||
.recoend-con {
|
||
text-align: center;
|
||
}
|
||
}
|
||
|
||
.desc {
|
||
font-size: $font-size-tag;
|
||
color: #999;
|
||
}
|
||
</style> |