补贴申请

This commit is contained in:
George
2025-10-31 16:54:39 +08:00
parent 878503d685
commit b5e5ff8277
15 changed files with 234 additions and 10 deletions

View File

@ -519,7 +519,8 @@
"successText": "بمجرد الموافقة على المعلومات التي قدمتها، سيتم البدء في دفع الدخول" "successText": "بمجرد الموافقة على المعلومات التي قدمتها، سيتم البدء في دفع الدخول"
}, },
"startNow": "ابدأ الآن" "startNow": "ابدأ الآن"
} },
"subsidy": "طلب الإعانات"
}, },
"notice": { "notice": {
"pageTitle": "الإعلانات", "pageTitle": "الإعلانات",

View File

@ -518,7 +518,8 @@
"successText": "After you submit the information is approved, you can start to deposit" "successText": "After you submit the information is approved, you can start to deposit"
}, },
"startNow": "Start Now" "startNow": "Start Now"
} },
"subsidy": "Subsidy application"
}, },
"notice": { "notice": {
"pageTitle": "Announcements", "pageTitle": "Announcements",

View File

@ -518,7 +518,8 @@
"successText": "El pago de acceso puede comenzar después de la aprobación de los datos enviados" "successText": "El pago de acceso puede comenzar después de la aprobación de los datos enviados"
}, },
"startNow": "Empieza Ahora" "startNow": "Empieza Ahora"
} },
"subsidy": "Solicitud de subvención"
}, },
"notice": { "notice": {
"pageTitle": "Anuncios", "pageTitle": "Anuncios",

View File

@ -518,7 +518,8 @@
"successText": "आपके द्वारा सबमिट की गई जानकारी स्वीकृत होने के बाद, आप धनराशि जमा करना और निकालना शुरू कर सकते हैं" "successText": "आपके द्वारा सबमिट की गई जानकारी स्वीकृत होने के बाद, आप धनराशि जमा करना और निकालना शुरू कर सकते हैं"
}, },
"startNow": "अब शुरू करें" "startNow": "अब शुरू करें"
} },
"subsidy": "सब्सिडी आवेदन"
}, },
"notice": { "notice": {
"pageTitle": "घोषणाएँ", "pageTitle": "घोषणाएँ",

View File

@ -518,7 +518,8 @@
"successText": "Kau boleh mulai masuk dan keluar kim setelah meninjau berkas yang kau ajukan" "successText": "Kau boleh mulai masuk dan keluar kim setelah meninjau berkas yang kau ajukan"
}, },
"startNow": "Mulai Sekarang" "startNow": "Mulai Sekarang"
} },
"subsidy": "Aplikasi subsidi"
}, },
"notice": { "notice": {
"pageTitle": "Pengumuman", "pageTitle": "Pengumuman",

View File

@ -518,7 +518,8 @@
"successText": "귀하께서 제출하신 서류가 통과되면 바로 입출금이 시작됩니다" "successText": "귀하께서 제출하신 서류가 통과되면 바로 입출금이 시작됩니다"
}, },
"startNow": "지금 시작하기" "startNow": "지금 시작하기"
} },
"subsidy": "보조금 신청"
}, },
"notice": { "notice": {
"pageTitle": "공지사항", "pageTitle": "공지사항",

View File

@ -518,7 +518,8 @@
"successText": "หลังจาก ที่คุณส่งข้อมูลผ่านไปคุณก็เริ่มเข้า ๆ ออก ๆ คิง" "successText": "หลังจาก ที่คุณส่งข้อมูลผ่านไปคุณก็เริ่มเข้า ๆ ออก ๆ คิง"
}, },
"startNow": "เริ่มตอนนี้" "startNow": "เริ่มตอนนี้"
} },
"subsidy": "คำขอเงินอุดหนุน"
}, },
"notice": { "notice": {
"pageTitle": "ประกาศ", "pageTitle": "ประกาศ",

View File

@ -518,7 +518,8 @@
"successText": "Bạn gửi thông tin sau khi phê duyệt có thể bắt đầu truy cập vào tiền" "successText": "Bạn gửi thông tin sau khi phê duyệt có thể bắt đầu truy cập vào tiền"
}, },
"startNow": "Bắt đầu ngay" "startNow": "Bắt đầu ngay"
} },
"subsidy": "Đơn xin trợ cấp"
}, },
"notice": { "notice": {
"pageTitle": "Thông Báo", "pageTitle": "Thông Báo",

View File

@ -841,7 +841,8 @@
}, },
"startNow": "现在开始" "startNow": "现在开始"
} },
"subsidy": "补贴申请"
}, },
"notice": { "notice": {
"pageTitle": "通知公告", "pageTitle": "通知公告",

View File

@ -836,7 +836,8 @@
"successText": "您提交的資料審核通過后 即可開始出入金" "successText": "您提交的資料審核通過后 即可開始出入金"
}, },
"startNow": "现在开始" "startNow": "现在开始"
} },
"subsidy": "補貼申請"
}, },
"notice": { "notice": {
"pageTitle": "通知公告", "pageTitle": "通知公告",

View File

@ -359,6 +359,14 @@
} }
} }
}, },
{
"path": "pages/capital/mtSubsidy/index",
"style": {
"app-plus": {
"bounce": "none"
}
}
},
{ {
"path": "pages/capital/ibTransfer/index", "path": "pages/capital/ibTransfer/index",
"style": { "style": {

View File

@ -36,6 +36,10 @@
</view> </view>
</view> </view>
</view> </view>
<view class="recordBtn" @click="() => toTarget('/pages/capital/mtSubsidy/index')">
{{ $t('home.subsidy') }}
<image src="/static/capital/capitalRightArrow.png" mode="aspectFit" style="width: 4px; height: 8px"></image>
</view>
<view class="recordBtn" @click="() => toTarget('/pages/capital/tradeRecord/index')"> <view class="recordBtn" @click="() => toTarget('/pages/capital/tradeRecord/index')">
{{ $t('common.viewTradeRecord') }} {{ $t('common.viewTradeRecord') }}
<image src="/static/capital/capitalRightArrow.png" mode="aspectFit" style="width: 4px; height: 8px"></image> <image src="/static/capital/capitalRightArrow.png" mode="aspectFit" style="width: 4px; height: 8px"></image>

View File

@ -0,0 +1,89 @@
.container {
padding: 0 24px 24px 16px;
.title {
margin: 14px 0 15px;
}
.minAmount {
margin-top: 4px;
color: #14cc9e;
font-size: 10px;
line-height: 14px;
&.unavailable {
color: #ff5733;
}
}
.availableMoneyOut {
display: flex;
align-items: center;
column-gap: 16px;
margin-bottom: 16px;
font-size: 14px;
color: #777777;
.value {
font-size: 18px;
font-weight: 700;
color: #29bbe4;
}
}
.exchangeRate {
display: flex;
justify-content: space-between;
margin-bottom: 12px;
font-size: 14px;
color: #777777;
.value {
font-weight: 700;
}
}
.currency_amount {
display: flex;
justify-content: space-between;
margin-bottom: 12px;
.label {
font-size: 14px;
color: #777777;
}
.value {
font-size: 14px;
color: #29bbe4;
font-weight: 700;
}
}
.detailModal {
position: relative;
width: calc(100vw - 50px);
max-width: 363px;
padding: 32px 29px 42px;
background-color: #fff;
box-sizing: border-box;
.closeIcon {
position: absolute;
top: 18px;
right: 21px;
width: 17px;
height: 17px;
}
.titleWrapper {
display: flex;
flex-direction: column;
align-items: center;
row-gap: 12px;
color: #333333;
padding: 12px;
margin: 24px 0;
box-shadow: -1px 0 5px 1px rgba(0, 0, 0, 0.1);
.title {
margin: 0;
font-size: 24px;
font-weight: 700;
line-height: 34px;
}
.value {
font-size: 36px;
font-weight: 700;
color: #29bbe4;
line-height: 52px;
}
}
}
}

View File

@ -0,0 +1,109 @@
<template>
<view>
<NavBar />
<view class="container">
<view class="title">
<PageTitle :title="$t('home.subsidy')" />
</view>
<view>
<uni-forms ref="withdrawForm" :modelValue="withdrawFormData" :rules="withdrawFormRules">
<uni-forms-item name="mt_login">
<text class="uni-subtitle">{{ $t('form.mtAccount.label') }}</text>
<uni-data-select
:placeholder="$t('form.pleaseSelect')"
:emptyTips="$t('common.empty')"
:localdata="mtLoginOptions"
v-model="withdrawFormData.mt_login"
@change="mtLoginChange"
></uni-data-select>
</uni-forms-item>
</uni-forms>
<button class="primaryButton" :disabled="submitBtnLoading" @click="handleSaveWithdraw">
<image v-show="submitBtnLoading" src="/static/loadingCircle.svg" mode="aspectFit" style="width: 16px; height: 16px"></image>
{{ $t('form.submit') }}
</button>
</view>
</view>
</view>
</template>
<script>
import { getMTAccounts, getIfChargeCommission } from '@/services/home/home.ts';
import { applySubsidy } from '@/services/capital/deposit.ts';
export default {
name: '',
data() {
return {
mtLoginOptions: [],
mtlogins: {},
selectedMtLogin: null,
submitBtnLoading: false,
withdrawFormData: { mt_login: '' },
withdrawFormRules: {
mt_login: {
rules: [
{
required: true,
errorMessage: this.$t('form.mtAccount.required')
}
]
}
},
};
},
methods: {
async getMtLoginData() {
const res = await getMTAccounts({ server_type: 'live' });
if (res && res.code === 0) {
this.mtLoginOptions = res.data?.map((mtAccount) => ({
text: `${mtAccount.mt4_server_name} ${mtAccount.mt4_login}`,
value: mtAccount.mt4_login?.toString()
}));
res.data?.forEach((mtAccount) => {
this.mtlogins[mtAccount.mt4_login] = mtAccount;
});
}
},
async handleSaveWithdraw() {
this.$refs.withdrawForm.validate().then(async (fields) => {
this.submitBtnLoading = true;
const res = await applySubsidy({
...fields,
mt_server: this.selectedMtLogin?.mt4_server
});
this.submitBtnLoading = false;
if (res && res.code === 0) {
this.$nextTick(() => {
this.$cusModal.showModal({
type: 'message',
status: 'success',
contentText: this.$t('activity.dh')
});
})
} else {
this.$nextTick(() => {
this.$cusModal.showModal({
type: 'message',
status: 'warning',
contentText: res.msg ?? this.$t('common.error.sysError')
});
})
}
});
},
mtLoginChange(val) {
this.selectedMtLogin = this.mtlogins[val];
},
back(){
uni.navigateBack();
}
},
onLoad(params) {
this.getMtLoginData();
}
};
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>

View File

@ -58,3 +58,7 @@ export function getPresentedCredit(data: { act_id: string; usd_amount: number })
export function getBankImg(id: number) { export function getBankImg(id: number) {
return request({ url: '/api/app/remittance/getBankImg', method: 'GET', data: { id }, responseType: 'arraybuffer' }); return request({ url: '/api/app/remittance/getBankImg', method: 'GET', data: { id }, responseType: 'arraybuffer' });
} }
export function applySubsidy(data: Record<string, any>) {
return request({ url: '/api/app/subsidy/apply', method: 'POST', data });
}