This commit is contained in:
John
2024-03-24 18:34:57 +08:00
parent b6677f8a49
commit da7f6af6be
9 changed files with 134 additions and 17470 deletions

17491
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -16,6 +16,7 @@ export default {
info: 'Info', info: 'Info',
success: 'Success', success: 'Success',
withdrawalAmount: 'Withdrawal Amount', withdrawalAmount: 'Withdrawal Amount',
withdrawCode: 'Withdrawal Code',
pleaseWithdrawalAmount: 'Please enter the withdrawal amount', pleaseWithdrawalAmount: 'Please enter the withdrawal amount',
submit: 'Submit', submit: 'Submit',
submittedSuccessfully: 'Successfully submitted', submittedSuccessfully: 'Successfully submitted',
@@ -134,6 +135,7 @@ export default {
spouse: 'Spouse', spouse: 'Spouse',
children: 'Children', children: 'Children',
grandparents: 'Grandparents', grandparents: 'Grandparents',
friend: 'friend',
bankOfDeposit: 'Bank of Deposit', bankOfDeposit: 'Bank of Deposit',
bankCard: 'Bank Card Number', bankCard: 'Bank Card Number',
}, },

View File

@@ -16,6 +16,7 @@ export default {
info: 'जानकारी', info: 'जानकारी',
success: 'सफल', success: 'सफल',
withdrawalAmount: 'निकासी राशि', withdrawalAmount: 'निकासी राशि',
withdrawCode: 'विचड्रावेल कोड',
pleaseWithdrawalAmount: 'कृपया निकासी राशि दर्ज करें', pleaseWithdrawalAmount: 'कृपया निकासी राशि दर्ज करें',
submit: 'सबमिट', submit: 'सबमिट',
submittedSuccessfully: 'सफलतापूर्वक सबमिट', submittedSuccessfully: 'सफलतापूर्वक सबमिट',
@@ -134,6 +135,7 @@ export default {
spouse: 'पति/पत्नी', spouse: 'पति/पत्नी',
children: 'बच्चे', children: 'बच्चे',
grandparents: 'दादा-दादी', grandparents: 'दादा-दादी',
friend: 'मित्र',
bankOfDeposit: 'खाता खोलने वाला बैंक', bankOfDeposit: 'खाता खोलने वाला बैंक',
bankCard: 'बैंक कार्ड नंबर', bankCard: 'बैंक कार्ड नंबर',
}, },

View File

@@ -17,6 +17,7 @@ export default {
success: 'Sukses', success: 'Sukses',
withdrawalAmount: 'Jumlah Penarikan', withdrawalAmount: 'Jumlah Penarikan',
pleaseWithdrawalAmount: 'Jumlah Penarikan', pleaseWithdrawalAmount: 'Jumlah Penarikan',
withdrawCode: 'Kode tarik',
submit: 'Kirim', submit: 'Kirim',
submittedSuccessfully: 'Pengiriman Sukses', submittedSuccessfully: 'Pengiriman Sukses',
submitApplication: 'Kirim Aplikasi', submitApplication: 'Kirim Aplikasi',
@@ -134,6 +135,7 @@ export default {
spouse: 'Pasangan', spouse: 'Pasangan',
children: 'Anak', children: 'Anak',
grandparents: 'Kakek-nenek', grandparents: 'Kakek-nenek',
friend: 'teman',
bankOfDeposit: 'Bank tempat rekening', bankOfDeposit: 'Bank tempat rekening',
bankCard: 'Nomor rekening bank', bankCard: 'Nomor rekening bank',
}, },

View File

@@ -17,6 +17,7 @@ export default {
success: '成功', success: '成功',
withdrawalAmount: '提现金额', withdrawalAmount: '提现金额',
pleaseWithdrawalAmount: '提现金额', pleaseWithdrawalAmount: '提现金额',
withdrawCode: '提现码',
submit: '提交', submit: '提交',
submittedSuccessfully: '提交成功', submittedSuccessfully: '提交成功',
submitApplication: '提交申请', submitApplication: '提交申请',
@@ -134,6 +135,7 @@ export default {
spouse: '配偶', spouse: '配偶',
children: '子女', children: '子女',
grandparents: '祖父母', grandparents: '祖父母',
friend: '朋友',
bankOfDeposit: '开户银行', bankOfDeposit: '开户银行',
bankCard: '银行卡号', bankCard: '银行卡号',
}, },

View File

@@ -75,12 +75,22 @@ export function toThousand(value) {
// ¥6,285.00 // ¥6,285.00
export function toRoundMark(value: number | string) { export function toRoundMark(value: number | string) {
value = value || 0 const money = value || 0
const options = { const lang = localStorage.getItem('lang')
style: 'currency', // 'zh_CN'
currency: 'CNY', // 'hi_IN'
}; // 'id_ID'
return value.toLocaleString('zh-CN', options) // 'en_US'
// 根据语言设置不同的格式
if (lang === 'zh_CN') {
return money.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' })
} else if (lang === 'hi_IN'){
return money.toLocaleString('hi-IN', { style: 'currency', currency: 'INR' })
} else if (lang === 'id_ID'){
return money.toLocaleString('id-ID', { style: 'currency', currency: 'IDR' })
} else {
return money.toLocaleString('en-US', { style: 'currency', currency: 'USD' })
}
} }
// 6285.00 // 6285.00

View File

@@ -21,7 +21,7 @@
</div> </div>
<div class="product-content-label"> <div class="product-content-label">
<div>{{$t('home.borrowingLimit')}}</div> <div>{{$t('home.borrowingLimit')}}</div>
<div><span>¥{{ loans.loansMinAccount }}-{{ loans.loansMaxAccount }}</span></div> <div><span>{{ loans.defaultCoinUnit }}{{ loans.loansMinAccount }}-{{ loans.loansMaxAccount }}</span></div>
</div> </div>
<div class="product-content-label"> <div class="product-content-label">
<div>{{$t('home.installmentPeriod')}}</div> <div>{{$t('home.installmentPeriod')}}</div>
@@ -64,8 +64,8 @@
<div class="apply-mqhk"> <div class="apply-mqhk">
<div>{{ $t('home.repaymentPerInstallment') }}</div> <div>{{ $t('home.repaymentPerInstallment') }}</div>
<div>¥{{ calLoan.avgRepayment }}</div> <div>{{ calLoan.defaultCoinUnit }}{{ calLoan.avgRepayment }}</div>
<div>({{ $t('home.dailyInterestRate') }}{{ calLoan.loanRateDay*100 }}% {{ $t('home.totalInterest') }}¥{{ calLoan.totalInterest }})</div> <div>({{ $t('home.dailyInterestRate') }}{{ calLoan.loanRateDay*100 }}% {{ $t('home.totalInterest') }}{{ calLoan.defaultCoinUnit }}{{ calLoan.totalInterest }})</div>
</div> </div>
</div> </div>
@@ -76,7 +76,7 @@
<div>{{ loansUser.time }}</div> <div>{{ loansUser.time }}</div>
<div style="color: #ec6401">{{ loansUser.phone }}</div> <div style="color: #ec6401">{{ loansUser.phone }}</div>
<div>{{ $t('home.successfulBorrowing') }}</div> <div>{{ $t('home.successfulBorrowing') }}</div>
<div style="color: #BC7C1C; font-weight: 600;">¥{{ loansUser.amount }}</div> <div style="color: #BC7C1C; font-weight: 600;">{{ loansUser.defaultCoinUnit }}{{ loansUser.amount }}</div>
</div> </div>
@@ -182,6 +182,7 @@ const loans = reactive({
loansMonthList: [], loansMonthList: [],
serviceRate: "", serviceRate: "",
serviceRateList: [], serviceRateList: [],
defaultCoinUnit: "$"
}) })
const _getLoansInfo = () => { const _getLoansInfo = () => {
getLoansInfo().then(res => { getLoansInfo().then(res => {
@@ -217,7 +218,8 @@ const calLoan = reactive({
"totalLoanMoney": 0, "totalLoanMoney": 0,
"totalMonth": 0, "totalMonth": 0,
"totalRepayment": 0, "totalRepayment": 0,
"loanRateDay": 0 "loanRateDay": 0,
defaultCoinUnit: "$"
}) })
const params = computed(() => { const params = computed(() => {
@@ -243,7 +245,8 @@ const _getCalLoan = debounce(() => {
const loansUser = reactive({ const loansUser = reactive({
amount : "48000", amount : "48000",
phone : "153****0552", phone : "153****0552",
time : "2023/11/27" time : "2023/11/27",
defaultCoinUnit : "$"
}) })
const timer = ref(0) const timer = ref(0)

View File

@@ -51,8 +51,24 @@
</view> </view>
</view> </view>
</div> </div>
<van-dialog :width="px2vw(650)" v-model:show="withdrawalShow" :title="$t('app.withdrawalAmount')" show-cancel-button @confirm="saveUserInfoBtn"> <van-dialog
<van-field v-model="withdrawAmount" type="number" :label="$t('app.withdrawalAmount')" :placeholder="$t('app.pleaseWithdrawalAmount')"/> :width="px2vw(650)"
v-model:show="withdrawalShow"
:title="$t('app.withdrawalAmount')"
show-cancel-button
@confirm="saveUserInfoBtn"
>
<van-field
v-model="withdrawAmount"
type="number"
:label="$t('app.withdrawalAmount')"
:placeholder="$t('app.pleaseWithdrawalAmount')"
/>
<van-field
v-model="withdrawCode"
:label="$t('app.withdrawCode')"
:placeholder="$t('app.withdrawCode')"
/>
</van-dialog> </van-dialog>
</template> </template>
@@ -65,6 +81,7 @@ import {getBorrowWithdraw, getCustomerInfo, getStepBorrow} from "@/api";
import {resetData} from "@/utils/dataUtil"; import {resetData} from "@/utils/dataUtil";
import {getAssetsImages, px2vw, toRoundMark} from "../../../utils"; import {getAssetsImages, px2vw, toRoundMark} from "../../../utils";
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { isNull, isNullOrUnDef } from '@/utils/is';
const router = useRouter() const router = useRouter()
@@ -73,6 +90,7 @@ const { t } = useI18n()
const withdrawalShow = ref(false); const withdrawalShow = ref(false);
const withdrawAmount = ref(0); const withdrawAmount = ref(0);
const withdrawCode = ref('');
const active = ref(0); const active = ref(0);
const headerImage = ref('https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg') const headerImage = ref('https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg')
@@ -152,18 +170,25 @@ const withdrawalBtn = () => {
const saveUserInfoBtn = () => { const saveUserInfoBtn = () => {
if (withdrawCode.value) {
getBorrowWithdraw({
withdrawAmount: withdrawAmount.value,
withdrawCode: withdrawCode.value,
}).then(res => {
showToast(t('app.withdrawal') + t('app.success'))
router.push({
path: '/serveList'
})
})
} else {
showToast(t('app.enter') + t('app.withdrawCode'))
}
// showConfirmDialog({ // showConfirmDialog({
// title: '提示', // title: '提示',
// message: '您确定要提现吗', // message: '您确定要提现吗',
// width: '500px' // width: '500px'
// }) // })
// .then(() => { // .then(() => {
getBorrowWithdraw({withdrawAmount: withdrawAmount.value}).then(res => {
showToast(t('app.withdrawal') + t('app.success'))
router.push({
path: '/serveList'
})
})
// }) // })
// .catch(() => { // .catch(() => {
// // on cancel // // on cancel

View File

@@ -46,7 +46,9 @@
:placeholder="$t('app.enter') + $t('userInfo.monthlyPay')" :placeholder="$t('app.enter') + $t('userInfo.monthlyPay')"
:rules="[{ required: true, message: $t('app.enter') + $t('userInfo.monthlyPay') }]" :rules="[{ required: true, message: $t('app.enter') + $t('userInfo.monthlyPay') }]"
/> />
<van-field <van-field
v-if="lang === 'zh_CN'"
v-model="userInfo.companyAddress" v-model="userInfo.companyAddress"
is-link is-link
required required
@@ -56,6 +58,14 @@
:rules="[{ required: true, message: $t('app.select') + $t('userInfo.unitAddress') }]" :rules="[{ required: true, message: $t('app.select') + $t('userInfo.unitAddress') }]"
@click="companyAddressShow = true" @click="companyAddressShow = true"
/> />
<van-field
v-else
v-model="userInfo.companyAddress"
required
:label="$t('userInfo.unitAddress')"
:placeholder="$t('app.enter') + $t('userInfo.unitAddress')"
:rules="[{ required: true, message: $t('app.enter') + $t('userInfo.unitAddress') }]"
/>
<van-popup v-model:show="companyAddressShow" round position="bottom"> <van-popup v-model:show="companyAddressShow" round position="bottom">
<van-cascader <van-cascader
v-model="cascaderValue" v-model="cascaderValue"
@@ -65,6 +75,7 @@
@finish="onFinish" @finish="onFinish"
/> />
</van-popup> </van-popup>
<van-field <van-field
required required
v-model="userInfo.companyAddressInfo" v-model="userInfo.companyAddressInfo"
@@ -76,6 +87,7 @@
<van-field <van-field
v-if="lang === 'zh_CN'"
v-model="userInfo.customerAddress" v-model="userInfo.customerAddress"
is-link is-link
required required
@@ -85,6 +97,14 @@
:rules="[{ required: true, message: $t('app.select') + $t('userInfo.currentResidentialAddress') }]" :rules="[{ required: true, message: $t('app.select') + $t('userInfo.currentResidentialAddress') }]"
@click="customerAddressShow = true" @click="customerAddressShow = true"
/> />
<van-field
v-else
v-model="userInfo.customerAddress"
required
:label="$t('userInfo.currentResidentialAddress')"
:placeholder="$t('app.enter') + $t('userInfo.currentResidentialAddress')"
:rules="[{ required: true, message: $t('app.enter') + $t('userInfo.currentResidentialAddress') }]"
/>
<van-popup v-model:show="customerAddressShow" round position="bottom"> <van-popup v-model:show="customerAddressShow" round position="bottom">
<van-cascader <van-cascader
v-model="customerAddressValue" v-model="customerAddressValue"
@@ -94,6 +114,7 @@
@finish="onCustomerAddressFinish" @finish="onCustomerAddressFinish"
/> />
</van-popup> </van-popup>
<van-field <van-field
required required
v-model="userInfo.customerAddressInfo" v-model="userInfo.customerAddressInfo"
@@ -114,7 +135,7 @@
v-model="userInfo.kinsfolkName" v-model="userInfo.kinsfolkName"
type="text" type="text"
:label="$t('userInfo.name')" :label="$t('userInfo.name')"
:placeholder="$t('userInfo.enter') + $t('userInfo.name')" :placeholder="$t('app.enter') + $t('userInfo.name')"
:rules="[{ required: true, message: $t('userInfo.enter') + $t('userInfo.name') }]" :rules="[{ required: true, message: $t('userInfo.enter') + $t('userInfo.name') }]"
/> />
<van-field <van-field
@@ -172,13 +193,15 @@ const { t } = useI18n()
const companyAddressShow = ref(false); const companyAddressShow = ref(false);
const customerAddressShow = ref(false); const customerAddressShow = ref(false);
const lang = localStorage.getItem('lang')
const cascaderValue = ref(''); const cascaderValue = ref('');
const customerAddressValue = ref(''); const customerAddressValue = ref('');
const columns = [ const columns = [
{ text: t('userInfo.parents'), value: '1' }, { text: t('userInfo.parents'), value: '1' },
{ text: t('userInfo.spouse'), value: '2' }, { text: t('userInfo.spouse'), value: '2' },
{ text: t('userInfo.children'), value: '3' }, { text: t('userInfo.children'), value: '3' },
{ text: t('userInfo.grandparents'), value: '4' } { text: t('userInfo.grandparents'), value: '4' },
{ text: t('userInfo.friend'), value: '5' }
]; ];
const userInfo = reactive({ const userInfo = reactive({
backCardNum: '', backCardNum: '',