From f8e9af35a267b7b9a2bf605187a11536889a6e38 Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Mon, 20 May 2024 11:00:10 +0800
Subject: [PATCH] 修改:绑定银行卡 多语言
---
src/page/user/ransferIndex.vue | 191 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 154 insertions(+), 37 deletions(-)
diff --git a/src/page/user/ransferIndex.vue b/src/page/user/ransferIndex.vue
index be51638..6be49dd 100644
--- a/src/page/user/ransferIndex.vue
+++ b/src/page/user/ransferIndex.vue
@@ -1,18 +1,26 @@
<template>
- <div>
+ <div style="height: 100vh">
<van-nav-bar
:placeholder="true"
:safe-area-inset-top="true"
- title="劃轉"
+ :title="$t('劃轉')"
left-arrow
@click-left="onClickLeft"
- />
+ >
+ <template #right>
+ <van-icon
+ @click="$router.push('/transferindex-list')"
+ name="orders-o"
+ size="20"
+ />
+ </template>
+ </van-nav-bar>
<main>
<div>
<div class="main-header">
- <div class="main-li">
- <span class="li-left">從</span
- ><span class="li-center">馬股賬戶</span>
+ <div class="main-li" @click="show = true">
+ <span class="li-left">{{ $t("从") }}</span
+ ><span class="li-center">{{ from.name }}</span>
<div class="img-con">
<img
class="main-li-img"
@@ -21,16 +29,23 @@
/>
</div>
</div>
- <div class="main-img">
+ <van-action-sheet
+ v-model="show"
+ :actions="actions"
+ :cancel-text="$t('hj106')"
+ close-on-click-action
+ @select="fromSelect"
+ />
+ <div class="main-img" @click="zh">
<img
class="img"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAjCAYAAAD17ghaAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADASURBVHgB7dZBCgMhDAXQONjuvaaXGHsJr+m+LbQjlEJbdUwxP7PwL1wIwgNNoqFGTj49Svu36Exp3/oU7tEFYmShgdlUa0ZwzgwF/IMYDuAiRAAchBigFyEK6EGIA/YQEEALAQPUEFBACQEHfCMsKeWFwABqwytH5QomYAIm4FAAe/Zp3b6+gZSyXKO7GE1AXjQR7zeghfh4hBqInypAI4pliERU+wAK0WxECMRuJ5RGdLViSUT3LJBCsIaRBOIJOvdIzG7h9ekAAAAASUVORK5CYII="
alt="转换"
/>
</div>
- <div class="main-li">
- <span class="li-left">到</span
- ><span class="li-center">美股賬戶</span>
+ <div class="main-li" @click="toShow = true">
+ <span class="li-left">{{ $t("到") }}</span
+ ><span class="li-center">{{ to.name }}</span>
<div class="img-con">
<img
class="main-li-img"
@@ -39,6 +54,13 @@
/>
</div>
</div>
+ <van-action-sheet
+ v-model="toShow"
+ :actions="actions"
+ :cancel-text="$t('hj106')"
+ close-on-click-action
+ @select="toSelect"
+ />
</div>
<van-row style="margin-top: 15px; position: relative">
<van-col span="12">
@@ -49,29 +71,30 @@
color: rgb(140, 159, 173);
"
>
- 輸入金額
+ {{ $t("輸入金額") }}
</div>
<div
class="van-cell van-field white-input"
modelmodifiers="[object Object]"
>
- <!----><!---->
<div class="van-cell__value van-field__value">
<div class="van-field__body">
<input
+ :value="formValue"
type="text"
inputmode="decimal"
id="van-field-47-input"
class="van-field__control"
- placeholder="請選擇"
- /><!----><!---->
+ :placeholder="$t('請選擇')"
+ @input="inputValue"
+ />
<div class="van-field__button" style="margin-right: 10px">
- <span style="color: rgb(79, 82, 87)">MYR</span>
+ <span style="color: rgb(79, 82, 87)">{{
+ from.symbolCode
+ }}</span>
</div>
</div>
- <!----><!---->
</div>
- <!----><!---->
</div>
</van-col>
<div class="huazhuan">
@@ -88,53 +111,147 @@
color: rgb(140, 159, 173);
"
>
- 轉換得到金額
+ {{ $t("轉換得到金額") }}
</div>
<div class="van-cell van-field van-field--disabled white-input">
- <!----><!---->
<div class="van-cell__value van-field__value">
<div class="van-field__body">
- <input
- type="text"
- id="van-field-48-input"
- class="van-field__control"
- disabled=""
- placeholder="請選擇"
- style="padding-left: 10px"
- /><!----><!---->
+ <div class="van-field__control" style="padding-left: 10px">
+ {{ (formValue * rate).toFixed(2) }}
+ </div>
<div class="van-field__button" style="">
- <span style="color: rgb(79, 82, 87)">USD</span>
+ <span style="color: rgb(79, 82, 87)">{{
+ to.symbolCode
+ }}</span>
</div>
</div>
- <!----><!---->
</div>
- <!----><!---->
</div>
</van-col>
</van-row>
<div
- style="color: rgb(5, 106, 239); text-align: right; font-size: 16px"
+ @click="formValue = from.availableBalance"
+ style="
+ color: rgb(5, 106, 239);
+ text-align: right;
+ font-size: 16px;
+ margin-top: 5px;
+ "
>
- 最大
+ {{ $t("最大") }}
</div>
<div class="balance">
- <div>可用餘額</div>
- <div class="balance-text">22799.0000 MYR</div>
+ <div>{{ $t("可用餘額") }}</div>
+ <div class="balance-text">
+ {{ from.availableBalance || "0.0000" }} {{ from.symbolCode }}
+ </div>
</div>
</div>
- <van-button type="primary" class="but">確認劃轉</van-button>
+ <van-button type="primary" @click="transferIndex" class="but">{{
+ $t("確認劃轉")
+ }}</van-button>
</main>
</div>
</template>
<script>
+import * as api from "@/axios/api";
+import { Notify } from "vant";
+import { transfer } from "../../axios/api";
+
export default {
+ created() {
+ this.getMoneyData();
+ },
+
components: {},
data() {
- return {};
+ return {
+ // 马股和美元的汇率
+ exchangeRate: 4.59,
+ // 划转的金额
+ formValue: "",
+ from: {},
+ to: {},
+ show: false,
+ toShow: false,
+ // 后端返回的数据列表比较多。在这里前端配置需要展示的
+ filterActions: ["US", "MAS", "HK"],
+ // 选择的列表
+ actions: [],
+ // 汇率
+ rate: "",
+ };
},
methods: {
+ inputValue(e) {
+ this.formValue = e.target.value;
+ },
+ async transferIndex() {
+ const res = await transfer({
+ fromType: this.from.accectType,
+ toType: this.to.accectType,
+ amt: this.formValue,
+ });
+ if (res.status === 0) {
+ Notify({ type: "success", message: this.$t("划转成功") });
+ setTimeout(() => {
+ this.$router.push("/transferindex-list");
+ }, 500);
+ } else {
+ Notify({ type: "warning", message: res.msg });
+ }
+ },
+ zh() {
+ const obj = { ...this.from };
+ this.from = { ...this.to };
+ this.to = { ...obj };
+ this.formValue = "";
+ this.geCurrencyRate();
+ },
+ fromSelect(e) {
+ if (e.accectType === this.to.accectType) {
+ return Notify({ type: "warning", message: this.$t("不能选择一样的") });
+ }
+ this.from = e;
+ this.formValue = "";
+ this.geCurrencyRate();
+ },
+ toSelect(e) {
+ if (e.accectType === this.from.accectType) {
+ return Notify({ type: "warning", message: this.$t("不能选择一样的") });
+ }
+
+ this.to = e;
+ this.formValue = "";
+ this.geCurrencyRate();
+ },
+ // 获取账号余额
+ async getMoneyData() {
+ let res = await api.getMoney();
+ if (res.status === 0) {
+ let array = res.data.filter(
+ (item) => this.filterActions.indexOf(item.accectType) !== -1
+ );
+ array.map((item) => {
+ item.name = this.$t(item.accectType);
+ });
+ this.actions = array;
+ }
+ },
+ // 获取汇率
+ async geCurrencyRate() {
+ if (this.from.accectType && this.to.accectType) {
+ let res = await api.currencyRate({
+ fromType: this.from.accectType,
+ toType: this.to.accectType,
+ });
+ if (res.status === 0) {
+ this.rate = res.data;
+ }
+ }
+ },
onClickLeft() {
this.$router.push("/user");
},
@@ -247,7 +364,7 @@
padding: 0;
height: 60px;
color: var(--van-field-input-text-color);
- line-height: inherit;
+ line-height: 60px;
text-align: left;
background-color: transparent;
border: 0;
--
Gitblit v1.9.3