From b46c7394ad29a9ac937b56b2605b347020f68695 Mon Sep 17 00:00:00 2001
From: zzzz <690498789@qq.com>
Date: Thu, 18 Apr 2024 11:30:54 +0800
Subject: [PATCH] language
---
src/page/list/tradingList/tabs.vue | 2
src/page/home/home.vue | 102 +----------------
src/page/list/tradingList/data.list.vue | 16 +-
src/page/newUser/setting.vue | 64 +---------
src/components/Language/index.vue | 123 ++++++++++++++++++++
5 files changed, 145 insertions(+), 162 deletions(-)
diff --git a/src/components/Language/index.vue b/src/components/Language/index.vue
new file mode 100644
index 0000000..e85284d
--- /dev/null
+++ b/src/components/Language/index.vue
@@ -0,0 +1,123 @@
+<template>
+ <div>
+ <van-popup
+ v-model="settingDialog"
+ position="bottom"
+ :style="{ height: '35%' }"
+ @close="popClose"
+ >
+ <div
+ class="lang_box"
+ v-for="(item, index) in actions"
+ :key="index"
+ @click="qkclick(item)"
+ >
+ <div
+ :class="$i18n.locale == item.lang ? 'lang_box_txt' : 'lang_box_txta'"
+ >
+ {{ item.text }}
+ </div>
+ </div>
+ </van-popup>
+ </div>
+</template>
+
+<script>
+/*
+ *name onChange
+ *回应外面
+ *
+ * */
+export default {
+ data() {
+ return {
+ settingDialog: false,
+ language: "",
+ // 多语言配置
+ actions: [
+ {
+ text: "English",
+ icon: require("@/assets/ico/english.png"),
+ lang: "en",
+ },
+ {
+ text: "繁体中文",
+ icon: require("@/assets/ico/tw.png"),
+ lang: "zh-TW",
+ },
+ { text: "हिंदी", icon: require("@/assets/ico/india.png"), lang: "hi" },
+ { text: "한국인", icon: require("@/assets/ico/india.png"), lang: "ko" },
+ {
+ text: "ภาษาไทย",
+ icon: require("@/assets/ico/india.png"),
+ lang: "th",
+ },
+ {
+ text: "日本語にほんご",
+ icon: require("@/assets/ico/india.png"),
+ lang: "ja",
+ },
+ ],
+ };
+ },
+ mounted() {
+ this.$emit(
+ "onChange",
+ this.getText(window.localStorage.getItem("language") || "zh-CN")
+ );
+ },
+ methods: {
+ getText(val) {
+ let arr = this.actions.filter((item) => item.lang === val);
+ return arr[0].text;
+ },
+ qkclick(e) {
+ this.settingDialog = false;
+ window.localStorage.setItem("language", e.lang);
+ this.$i18n.locale = e.lang;
+ this.$emit("onChange", e.text);
+ },
+ popClose() {
+ this.settingDialog = false;
+ },
+ },
+};
+</script>
+
+<style>
+.lang_box_txta {
+ width: 100%;
+ height: 100px;
+ text-align: center;
+ line-height: 100px;
+ border-bottom: 1px solid #ecf5ff;
+}
+.lang_box_txt {
+ width: 100%;
+ height: 100px;
+ text-align: center;
+ line-height: 100px;
+ border-bottom: 1px solid #ecf5ff;
+ color: #2196f3;
+}
+.lang_box {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+}
+.btn_s_box {
+ border: none;
+ background: #409eff;
+ color: #fff;
+ height: 70px;
+ width: 100%;
+ line-height: 70px;
+ font-size: 16px;
+ text-align: center;
+ border-radius: 15px;
+ font-weight: 600;
+ margin: 40px 20px 0 20px;
+}
+</style>
\ No newline at end of file
diff --git a/src/page/home/home.vue b/src/page/home/home.vue
index 55115ee..4c72742 100644
--- a/src/page/home/home.vue
+++ b/src/page/home/home.vue
@@ -111,7 +111,7 @@
<div class="name">{{ $t("hj245") }}</div>
</div>
</li>
- <li @click="settingDialog = true">
+ <li @click="$refs.language.settingDialog = true">
<div class="links">
<div class="icon">
<img
@@ -127,27 +127,7 @@
</li>
</ul>
<!-- 多语言弹框 -->
- <van-popup
- v-model="settingDialog"
- position="bottom"
- :style="{ height: '35%' }"
- @close="popClose"
- >
- <div
- class="lang_box"
- v-for="(item, index) in actions"
- :key="index"
- @click="qkclick(item)"
- >
- <div
- :class="
- $i18n.locale == item.lang ? 'lang_box_txt' : 'lang_box_txta'
- "
- >
- {{ item.text }}
- </div>
- </div>
- </van-popup>
+ <Language ref="language" />
</div>
<div class="fg"></div>
<div class="new-stock">
@@ -269,12 +249,14 @@
import xiazai from "@/assets/img/xiazai.png";
import GoToLogin from "@/page/home/components/GoLogin.vue";
import { MessageBox } from "mint-ui";
+import Language from "@/components/Language/index.vue";
export default {
components: {
HomeList,
AllList,
GoToLogin,
Echart,
+ Language,
},
// onlineService
props: {},
@@ -297,28 +279,7 @@
type: 2,
},
],
- settingDialog: false,
- // 多语言配置
- actions: [
- {
- text: "English",
- icon: require("@/assets/ico/english.png"),
- lang: "en",
- },
- { text: "繁体中文", icon: require("@/assets/ico/tw.png"), lang: "zh-TW" },
- { text: "हिंदी", icon: require("@/assets/ico/india.png"), lang: "hi" },
- { text: "한국인", icon: require("@/assets/ico/india.png"), lang: "ko" },
- {
- text: "ภาษาไทย",
- icon: require("@/assets/ico/india.png"),
- lang: "th",
- },
- {
- text: "日本語にほんご",
- icon: require("@/assets/ico/india.png"),
- lang: "ja",
- },
- ],
+
// 公告 icon 地址
Announcement,
close: true,
@@ -369,15 +330,7 @@
aRouter() {
window.open(this.onlineService);
},
- qkclick(e) {
- this.settingDialog = false;
- window.localStorage.setItem("language", e.lang);
- this.$i18n.locale = e.lang;
- this.language = e.text;
- },
- popClose() {
- this.settingDialog = false;
- },
+
getdialog() {
MessageBox.confirm(this.$t("hj252"), this.$t("hj165"), {
confirmButtonText: this.$t("hj161"),
@@ -385,14 +338,6 @@
})
.then(async () => {})
.catch(() => {});
- // MessageBox.confirm('老号被盗请勿转账,请认准新tg:@BEINL2', this.$t('hj165'), {
- // confirmButtonText: this.$t('hj161'),
- // cancelButtonText: this.$t('hj106'),
- // }).then(async () => {
-
- // }).catch(() => {
-
- // });
},
onSelect(e) {
this.$i18n.locale = e.lang;
@@ -1348,41 +1293,6 @@
font-weight: 500;
line-height: 0.64rem;
}
-}
-.lang_box_txta {
- width: 100%;
- height: 100px;
- text-align: center;
- line-height: 100px;
- border-bottom: 1px solid #ecf5ff;
-}
-.lang_box_txt {
- width: 100%;
- height: 100px;
- text-align: center;
- line-height: 100px;
- border-bottom: 1px solid #ecf5ff;
- color: #2196f3;
-}
-.lang_box {
- width: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
-}
-.btn_s_box {
- border: none;
- background: #409eff;
- color: #fff;
- height: 70px;
- width: 100%;
- line-height: 70px;
- font-size: 16px;
- text-align: center;
- border-radius: 15px;
- font-weight: 600;
- margin: 40px 20px 0 20px;
}
// /deep/ .van-popup {
// overflow-y: auto;
diff --git a/src/page/list/tradingList/data.list.vue b/src/page/list/tradingList/data.list.vue
index 5fd2a73..a6c3d7c 100644
--- a/src/page/list/tradingList/data.list.vue
+++ b/src/page/list/tradingList/data.list.vue
@@ -5,18 +5,18 @@
<van-col span="8">
<div>
{{ $t("hj313") }}
- </div></van-col
- >
- <van-col span="10"
- ><div style="text-align: right">
+ </div>
+ </van-col>
+ <van-col span="10">
+ <div style="text-align: right">
{{ $t("hj314") }}
- </div></van-col
- >
+ </div>
+ </van-col>
<van-col span="6">
<div style="text-align: right">
{{ $t("hj315") }}
- </div></van-col
- >
+ </div>
+ </van-col>
</van-row>
</div>
diff --git a/src/page/list/tradingList/tabs.vue b/src/page/list/tradingList/tabs.vue
index c05c8c6..6852fe7 100644
--- a/src/page/list/tradingList/tabs.vue
+++ b/src/page/list/tradingList/tabs.vue
@@ -51,7 +51,7 @@
return {
tabsList: [
{ title: this.$t("hj61"), key: "" },
- { title: this.$t("hj61"), key: "" },
+ // { title: this.$t("hj61"), key: "" },
// { title: this.$t("数字货币"), key: "1", name: "SZHB" },
{ title: this.$t("马股"), key: "MAS", name: "MAS" },
{ title: this.$t("美股"), key: "US", name: "US" },
diff --git a/src/page/newUser/setting.vue b/src/page/newUser/setting.vue
index 3d72f89..4dbbb3e 100644
--- a/src/page/newUser/setting.vue
+++ b/src/page/newUser/setting.vue
@@ -65,25 +65,8 @@
<div style="margin-right: 10px">{{ language }}</div>
</div>
</div>
- <van-popup
- v-model="settingDialog"
- position="bottom"
- :style="{ height: '35%' }"
- @close="popClose"
- >
- <div
- class="lang_box"
- v-for="(item, index) in actions"
- :key="index"
- @click="qkclick(item)"
- >
- <div
- :class="$i18n.locale == item.lang ? 'lang_box_txt' : 'lang_box_txta'"
- >
- {{ item.text }}
- </div>
- </div>
- </van-popup>
+ <Language ref="language" @onChange="onChange" />
+
<van-popup v-model="pswDialog" position="bottom" :style="{ height: '40%' }">
<div class="setting_content">
<div class="old_password">
@@ -129,6 +112,7 @@
import { isNull, pwdReg } from "@/utils/utils";
import { mapMutations } from "vuex";
import { Notify } from "vant";
+import Language from "@/components/Language/index.vue";
export default {
name: "newUser",
@@ -144,53 +128,19 @@
userInfo: [],
onlineService: "",
language: "",
- actions: [
- {
- text: "English",
- icon: require("@/assets/ico/english.png"),
- lang: "en",
- },
- {
- text: "繁体中文",
- icon: require("@/assets/ico/tw.png"),
- lang: "zh-TW",
- },
- { text: "हिंदी", icon: require("@/assets/ico/india.png"), lang: "hi" },
- { text: "한국인", icon: require("@/assets/ico/india.png"), lang: "ko" },
- {
- text: "ภาษาไทย",
- icon: require("@/assets/ico/india.png"),
- lang: "th",
- },
- {
- text: "日本語にほんご",
- icon: require("@/assets/ico/india.png"),
- lang: "ja",
- },
- ],
};
},
- components: {},
+ components: { Language },
created() {
this.getUserInfo();
- this.language = window.localStorage.getItem("language") || "zh-CN";
- let arr = this.actions.filter((item) => item.lang === this.language);
- this.language = arr[0].text;
},
methods: {
...mapMutations(["undataToken"]),
-
- popClose() {
- this.settingDialog = false;
- },
- qkclick(e) {
- this.settingDialog = false;
- window.localStorage.setItem("language", e.lang);
- this.$i18n.locale = e.lang;
- this.language = e.text;
+ onChange(e) {
+ this.language = e;
},
clicklang() {
- this.settingDialog = true;
+ this.$refs.language.settingDialog = true;
},
yebclick() {
this.$router.push("/yeb");
--
Gitblit v1.9.3