From 517b4a398d9ca06788366f2c4b94d5d8831af5fc Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Mon, 22 Sep 2025 18:29:30 +0800
Subject: [PATCH] 1

---
 src/i18n/Deutsch.js                               |    1 
 src/i18n/Portuguese.js                            |    1 
 src/i18n/korean.js                                |    1 
 src/views/safety/index.vue                        |    2 
 src/views/cryptos/Withdraw/withdrawPage.vue       |  653 +++++++++++++++++++++++++------------------------
 src/views/quotes/components/head.vue              |   12 
 src/i18n/th.js                                    |    1 
 src/i18n/fa.js                                    |    1 
 src/views/homePage/components/head.vue            |   10 
 src/i18n/Italy.js                                 |    1 
 src/views/cryptos/TrendDetails/index.vue          |    8 
 src/i18n/Japanese.js                              |    1 
 src/i18n/vi.js                                    |    1 
 src/components/Transform/trade-head/index.vue     |    5 
 src/views/homePage/index.vue                      |   29 ++
 src/i18n/cn.js                                    |    1 
 src/i18n/en.js                                    |    1 
 src/i18n/zhcn.js                                  |    1 
 src/views/quotes/List.vue                         |   29 ++
 src/components/Transform/list-quotation/index.vue |   14 
 src/views/safety/resetPhoneEmail.vue              |    2 
 src/utils/index.js                                |    4 
 src/i18n/Spanish.js                               |    1 
 23 files changed, 435 insertions(+), 345 deletions(-)

diff --git a/src/components/Transform/list-quotation/index.vue b/src/components/Transform/list-quotation/index.vue
index a31897b..3568206 100644
--- a/src/components/Transform/list-quotation/index.vue
+++ b/src/components/Transform/list-quotation/index.vue
@@ -20,7 +20,7 @@
         </div>
       </van-cell>
       <transition-group :name="type" tag="div">
-        <div v-if="active == 0" :key="active">
+        <div v-if="active == 0">
           <van-cell v-for="item in listData" :key="item.id">
             <ul class="flex justify-between w-full items-center" @click="onItemClick(item)">
               <li class="flex items-center left">
@@ -40,11 +40,11 @@
                 </p>
               </li>
               <li class="flex flex-col items-end mid">
-                <p class="textColor font-32 font-600">{{ item.close || '--' }}</p>
+                <p class="textColor font-32 font-600">{{ item.close.toFixed(4) || '--' }}</p>
                 <p class="font-24 text-grey">{{ currency.currency_symbol }}
                   {{ item.close && item.symbol_data.toUpperCase() == 'SHIB' ? (item.close * currency.rate).toFixed(8) :
                     (item.close *
-                      currency.rate).toFixed(6)/1 || '--' }}</p>
+                      currency.rate).toFixed(4) || '--' }}</p>
               </li>
               <li class="right flex items-center justify-end">
                 <p class="w-153 font-31 h-71 bg-green text-white border-0 text-center btn" v-if="item.change_ratio > 0">
@@ -55,7 +55,7 @@
             </ul>
           </van-cell>
         </div>
-        <div v-else :key="active">
+        <div v-else>
           <van-cell v-for="item in showList" :key="item.id">
             <ul class="flex justify-between w-full items-center" @click="onItemClick(item)">
               <li class="flex items-center left">
@@ -74,10 +74,10 @@
                 </p>
               </li>
               <li class="flex flex-col items-end mid">
-                <p class="textColor font-32 font-600">{{ item.close }}</p>
+                <p class="textColor font-32 font-600">{{ item.close.toFixed(4) }}</p>
                 <p class="font-24 text-grey">{{ currency.currency_symbol }} {{ item.close &&
                   item.symbol_data.toUpperCase() == 'SHIB' ? (item.close * currency.rate).toFixed(8) : (item.close *
-                    currency.rate).toFixed(6) / 1 || '--' }}</p>
+                    currency.rate).toFixed(4) || '--' }}</p>
               </li>
               <li class="right flex items-center justify-end text-right">
                 <div v-if="active == 3" class="textColor w-182 font-700 font-24">
@@ -117,6 +117,7 @@
       fixDate,
       HOST_URL,
       active: 0,
+      showList: [],
       type: 'left' //left 从左往右 right 从有王座
     }
   },
@@ -225,6 +226,7 @@
         this.showList = [...this.listData].sort(this.compare("volume", 'up'))
       }
       this.$forceUpdate()
+      // console.log("aaaaaaaaa", this.showList, this.listData);
     }
   }
 }
diff --git a/src/components/Transform/trade-head/index.vue b/src/components/Transform/trade-head/index.vue
index 71499ab..45a680c 100644
--- a/src/components/Transform/trade-head/index.vue
+++ b/src/components/Transform/trade-head/index.vue
@@ -188,7 +188,7 @@
   watch: {
     symbol(val) {
       console.log("symbol", val);
-      
+
       this.getIsItemHasAddGlobal()
       if (this.islevel) {
         this.$emit('changeLine', true)
@@ -218,7 +218,8 @@
     onRoute(item) {
       if (this.islevel) {
         if (this.$route.params.symbol !== item.symbol) {
-          this.$router.push(`/cryptos/trendDetails/${item.symbol}?type=${this.$route.query.type}`)
+          if (this.kineType) this.$router.push(`/cryptos/trendDetails/${item.symbol}?type=${this.$route.query.type}&kineType=${this.kineType}`)
+          else this.$router.push(`/cryptos/trendDetails/${item.symbol}?type=${this.$route.query.type}`)
           // alert(this.kineType)
           if (this.kineType) {
             setStorage('tradeSymbol', item.symbol)
diff --git a/src/i18n/Deutsch.js b/src/i18n/Deutsch.js
index 2f883f1..51267eb 100644
--- a/src/i18n/Deutsch.js
+++ b/src/i18n/Deutsch.js
@@ -2841,4 +2841,5 @@
     "最低认购": "Mindestzeichnung",
     "币种数量": "Menge der währung",
     "进度": "Fortschritt",
+    "更换绑定": "Ersetzen sie die bindung",
 }
\ No newline at end of file
diff --git a/src/i18n/Italy.js b/src/i18n/Italy.js
index 854e456..42a3a8a 100644
--- a/src/i18n/Italy.js
+++ b/src/i18n/Italy.js
@@ -2931,4 +2931,5 @@
     "最低认购": "Sottoscrizione minima",
     "币种数量": "Menge der Währung",
     "进度": "Fortschritt",
+    "更换绑定": "Cambio di legame",
 }
\ No newline at end of file
diff --git a/src/i18n/Japanese.js b/src/i18n/Japanese.js
index 2e584bc..7c6c2c0 100644
--- a/src/i18n/Japanese.js
+++ b/src/i18n/Japanese.js
@@ -2699,4 +2699,5 @@
     "最低认购": "最低申込",
     "币种数量": "通貨数量",
     "进度": "進捗",
+    "更换绑定": "バインドを変更します",
 }
\ No newline at end of file
diff --git a/src/i18n/Portuguese.js b/src/i18n/Portuguese.js
index 98fc45c..fd66c01 100644
--- a/src/i18n/Portuguese.js
+++ b/src/i18n/Portuguese.js
@@ -651,4 +651,5 @@
     "最低认购": "Subscrição mínima",
     "币种数量": "Quantidade de moeda",
     "进度": "Progresso",
+    "更换绑定": "Trocar de ligação",
 }
\ No newline at end of file
diff --git a/src/i18n/Spanish.js b/src/i18n/Spanish.js
index c2d9456..8010e76 100644
--- a/src/i18n/Spanish.js
+++ b/src/i18n/Spanish.js
@@ -2614,4 +2614,5 @@
     "最低认购": "Suscripción mínima",
     "币种数量": "Cantidad de moneda",
     "进度": "Progreso",
+    "更换绑定": "Cambiar enlace",
 }
\ No newline at end of file
diff --git a/src/i18n/cn.js b/src/i18n/cn.js
index db84cb5..819959e 100644
--- a/src/i18n/cn.js
+++ b/src/i18n/cn.js
@@ -2820,4 +2820,5 @@
     "最低认购": "最低認購",
     "币种数量": "幣種數量",
     "进度": "進度",
+    "更换绑定": "更換綁定",
 }
diff --git a/src/i18n/en.js b/src/i18n/en.js
index 66c502b..3e4930d 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -2795,4 +2795,5 @@
     "最低认购": "Minimum subscription",
     "币种数量": "Currency quantity",
     "进度": "Progress",
+    "更换绑定": "Change binding",
 }
\ No newline at end of file
diff --git a/src/i18n/fa.js b/src/i18n/fa.js
index 60b1ee5..b773b4c 100644
--- a/src/i18n/fa.js
+++ b/src/i18n/fa.js
@@ -2738,4 +2738,5 @@
     "最低认购": "Souscription minimale",
     "币种数量": "Menge der Währung",
     "进度": "Fortschritt",
+    "更换绑定": "Changer de liaison",
 }
\ No newline at end of file
diff --git a/src/i18n/korean.js b/src/i18n/korean.js
index c632db7..8f8cd28 100644
--- a/src/i18n/korean.js
+++ b/src/i18n/korean.js
@@ -2835,4 +2835,5 @@
     "最低认购": "최소 구독",
     "币种数量": "통화 수량",
     "进度": "진행 상황",
+    "更换绑定": "바인딩 변경",
 }
\ No newline at end of file
diff --git a/src/i18n/th.js b/src/i18n/th.js
index 67f6317..358895c 100644
--- a/src/i18n/th.js
+++ b/src/i18n/th.js
@@ -2806,4 +2806,5 @@
     "最低认购": "การจองซื้อขั้นต่ำ",
     "币种数量": "จำนวนเงินตรา",
     "进度": "ความก้าวหน้า",
+    "更换绑定": "เปลี่ยนการเชื่อมโยง",
 }
\ No newline at end of file
diff --git a/src/i18n/vi.js b/src/i18n/vi.js
index c02257b..f80276d 100644
--- a/src/i18n/vi.js
+++ b/src/i18n/vi.js
@@ -2785,4 +2785,5 @@
     "最低认购": "Đăng ký tối thiểu",
     "币种数量": "Số lượng tiền tệ",
     "进度": "Tiến độ",
+    "更换绑定": "Thay đổi liên kết",
 }
\ No newline at end of file
diff --git a/src/i18n/zhcn.js b/src/i18n/zhcn.js
index ddafd11..5ad2e0c 100644
--- a/src/i18n/zhcn.js
+++ b/src/i18n/zhcn.js
@@ -2800,4 +2800,5 @@
     "最低认购": "最低认购",
     "币种数量": "币种数量",
     "进度": "进度",
+    "更换绑定": "更换绑定",
 }
\ No newline at end of file
diff --git a/src/utils/index.js b/src/utils/index.js
index 49b2e1a..b4f1894 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -78,7 +78,6 @@
   }
 }
 
-
 // 小数展示,保留五位小数
 export const formatNumber = (num) => {
   if (typeof (num) !== 'number') {
@@ -99,7 +98,6 @@
   }
 
 }
-
 
 // 保留五位小数
 export const formatNumberToFixedFive = (num) => {
@@ -137,7 +135,6 @@
   }
 }
 
-
 export const formatMoney = (val) => {
   if(val === 0){
     return 0
@@ -160,7 +157,6 @@
   }
   return (val / Math.pow(num, 4)).toFixed(2) + "T"; //T  
 }
-
 
 export  const formatNews = (str) => {
   if(!str) {
diff --git a/src/views/cryptos/TrendDetails/index.vue b/src/views/cryptos/TrendDetails/index.vue
index a44a0e0..f52d691 100644
--- a/src/views/cryptos/TrendDetails/index.vue
+++ b/src/views/cryptos/TrendDetails/index.vue
@@ -20,7 +20,7 @@
               <p class="font-70 font-600" :class="quote.change_ratio > 0 ? 'text-green' : 'text-red'">
                 {{ quote.close || '--' }}</p>
               <p class="font-22 mt-10">≈ {{ currency.currency_symbol }}{{ quote.close ? (quote.close *
-                currency.rate).toFixed(2) : '--' }}
+                currency.rate).toFixed(6) : '--' }}
                 <span :class="quote.change_ratio > 0 ? 'text-green' : 'text-red'">{{ quote.change_ratio
                   ||
                   '--' }}%</span>
@@ -68,7 +68,7 @@
                     <p>{{ $t('买入') }}</p>
                     <p class="flex  justify-between  font-22">
                       <span style="margin-right: -10px;">{{ $t('价格') }}{{ queryType == 'cryptos' ? '(USDT)' : '(USD)'
-                        }}</span>
+                      }}</span>
                       <span class="buy-title">{{ $t('数量') }}({{ symbolData.toUpperCase() }})</span>
                     </p>
                   </li>
@@ -111,7 +111,7 @@
                   <span class="flex-1">{{ $t('方向') }}</span>
                   <span class="flex-1">{{ $t('价格') }}{{ queryType == 'cryptos' ? '(USDT)' : '(USD)' }}</span>
                   <span class="flex-1 flex justify-center buy-title">{{ $t('数量') }}({{ symbolData.toUpperCase()
-                    }})</span>
+                  }})</span>
                 </li>
                 <li v-for="(item, index) in deals" :key="item.ts + item.price + item.amount || index"
                   class="flex  justify-between mt-30">
@@ -298,7 +298,7 @@
     ...mapGetters({ currency: 'home/currency', userInfo: 'user/userInfo' })
   },
   mounted() {
-    console.log('sss')
+    console.log('sss', this.$route.query)
     //this.continueOrder()
     this.kineType = this.$route.query.kineType
     if (this.$route.query.type) {
diff --git a/src/views/cryptos/Withdraw/withdrawPage.vue b/src/views/cryptos/Withdraw/withdrawPage.vue
index 07f458e..8fe9396 100644
--- a/src/views/cryptos/Withdraw/withdrawPage.vue
+++ b/src/views/cryptos/Withdraw/withdrawPage.vue
@@ -60,9 +60,16 @@
 					<span class="font-32 ml-5 text-grey">{{ value }}</span>
 				</div>
 				<p class="text-grey mt-22 font-28">{{ $t('提现费用') }}:{{ fee || '0.00' }} {{ value }}</p>
-				<p class="text-white mt-46 textColor font-28">{{ $t('提币说明') }}:
+				<p class="text-grey mt-10 textColor font-28">{{ $t('提币说明') }}:
 				</p>
-				<div class="text-grey mt-10 font-28" v-html="tip"></div>
+				<div class="text-grey mt-20 font-28" v-html="tip"></div>
+
+				<p class="font-35 mt-2 textColor">{{ $t('fundsPassword') }}</p>
+				<div class="inputBackground flex items-center justify-between h-96 rounded mt-22">
+					<input :placeholder="$t('fundsPasswordContTips')" maxlength="6"
+						class="h-full flex-1 border-none bg-none px-16 font-22 textColor" v-model="safeword" />
+				</div>
+
 				<van-button
 					class="w-768 h-100 rounded flex justify-center items-center mt-56  text-white btnMain border-none"
 					@click="showDetail">
@@ -124,344 +131,352 @@
 </template>
 
 <script>
-	import {
-		Popup,
-		ActionSheet,
-		showToast
-	} from "vant"
-	import Axios from "@/service/recharge.js"
-	import {
-		_withdrawFee,
-		_withdrawApply
-	} from "@/service/withdraw.api.js"
-	import assetsHead from "@/components/Transform/assets-head/index.vue";
-	import BarScan from '@/components/Transform/scan/scan.vue';
-	import {
-		_getAllWallet
-	} from "@/service/fund.api";
-	export default {
-		name: "withdrawPage",
-		components: {
-			assetsHead,
-			[Popup.name]: Popup,
-			[ActionSheet.name]: ActionSheet,
-			BarScan
+import {
+	Popup,
+	ActionSheet,
+	showToast
+} from "vant"
+import Axios from "@/service/recharge.js"
+import {
+	_withdrawFee,
+	_withdrawApply
+} from "@/service/withdraw.api.js"
+import assetsHead from "@/components/Transform/assets-head/index.vue";
+import BarScan from '@/components/Transform/scan/scan.vue';
+import {
+	_getAllWallet
+} from "@/service/fund.api";
+import { throttle } from "@/utils/index.js";
+export default {
+	name: "withdrawPage",
+	components: {
+		assetsHead,
+		[Popup.name]: Popup,
+		[ActionSheet.name]: ActionSheet,
+		BarScan
+	},
+	data() {
+		return {
+			tip: '',
+			value: 'USDT', //选中的币种
+			show: false,
+			showSymbol: false,
+			actions: [{
+				name: 'USDT'
+			}, {
+				name: 'BTC'
+			}, {
+				name: 'ETH'
+			}, {
+				name: 'USDC'
+			}],
+			blockList: [],
+			blockchainIndex: "",
+			usdtBalance: "", //余额
+			amount: "", //提现金额
+			fee: "", //手续费
+			volume_last: "", //到账金额
+			blockName: "", //当前链名称
+			address: "", // 二维码扫描结果
+			scancode: false, //控制是否使用扫一扫功能
+			withdraw_fee_type: '',
+			percent: 0,
+			numLenth: 3,
+			safeword: '' //资金密码
+		}
+	},
+	created() {
+		this.getBlock(this.value);
+		this.getAvailable(this.actions[0].name);
+
+
+		Axios.getRechargeTips({
+			language: this.$i18n.locale,
+			token: this.$store.state.user.userInfo.token,
+			content_code: '003',
+		}).then(res => {
+			this.tip = res.content
+		}).catch(err => {
+			if (err.code === 'ECONNABORTED') {
+				showToast(this.$t('网络超时!'));
+			} else if (err.msg !== undefined) {
+				showToast(this.$t(err.msg));
+			}
+		})
+		_withdrawFee({
+			amount: 1,
+			channel: this.value + '_' + this.blockName
+		}).then((res) => {
+			this.withdraw_fee_type = res.withdraw_fee_type
+			if (this.withdraw_fee_type == 'rate') {
+				this.percent = res.fee
+			} else {
+				this.fee = res.fee;
+			}
+		});
+	},
+	methods: {
+		getwei(value, numLenth) {
+			console.log(numLenth)
+			let str = value.toString();
+			let strIndex = str.indexOf('.');
+			if (strIndex === -1) return str;
+			str = str.substring(0, strIndex + numLenth);
+			console.log(str, numLenth)
+			return str;
 		},
-		data() {
-			return {
-				tip: '',
-				value: 'USDT', //选中的币种
-				show: false,
-				showSymbol: false,
-				actions: [{
-					name: 'USDT'
-				}, {
-					name: 'BTC'
-				}, {
-					name: 'ETH'
-				}, {
-					name: 'USDC'
-				}],
-				blockList: [],
-				blockchainIndex: "",
-				usdtBalance: "", //余额
-				amount: "", //提现金额
-				fee: "", //手续费
-				volume_last: "", //到账金额
-				blockName: "", //当前链名称
-				address: "", // 二维码扫描结果
-				scancode: false, //控制是否使用扫一扫功能
-				withdraw_fee_type: '',
-				percent: 0,
-				numLenth: 3
+		// 打开相机
+		clickCode() {
+			this.scancode = true;
+		},
+		//返回扫描结果并关闭摄像头
+		getResult(result) {
+			this.address = result;
+			if (result !== "") {
+				this.scancode = false;
 			}
 		},
-		created() {
-			this.getBlock(this.value);
-			this.getAvailable(this.actions[0].name);
-
-
-			Axios.getRechargeTips({
-				language: this.$i18n.locale,
-				token: this.$store.state.user.userInfo.token,
-				content_code: '003',
-			}).then(res => {
-				this.tip = res.content
-			}).catch(err => {
-				if (err.code === 'ECONNABORTED') {
-					showToast(this.$t('网络超时!'));
-				} else if (err.msg !== undefined) {
-					showToast(this.$t(err.msg));
-				}
-			})
-			_withdrawFee({
-				amount: 1,
-				channel: this.value + '_' + this.blockName
-			}).then((res) => {
-				this.withdraw_fee_type = res.withdraw_fee_type
-				if (this.withdraw_fee_type == 'rate') {
-					this.percent = res.fee
-				} else {
-					this.fee = res.fee;
+		showDetail() {
+			if (this.address.length > 63 || this.address.length == 0) {
+				showToast(this.$t('提现地址格式错误'))
+				return
+			}
+			if (!this.amount) {
+				showToast(this.$t('请输入正确数量'))
+				return
+			}
+			if (this.amount / 1 > this.usdtBalance / 1) {
+				showToast(this.$t('金额不足'))
+				return
+			}
+			this.show = true;
+		},
+		goRouter(params) {
+			this.$router.push({
+				path: params,
+				query: {
+					type: '2',
+					back: "1"
 				}
 			});
 		},
-		methods: {
-			getwei(value, numLenth) {
-				console.log(numLenth)
-				let str = value.toString();
-				let strIndex = str.indexOf('.');
-				if (strIndex === -1) return str;
-				str = str.substring(0, strIndex + numLenth);
-				console.log(str, numLenth)
-				return str;
-			},
-			// 打开相机
-			clickCode() {
-				this.scancode = true;
-			},
-			//返回扫描结果并关闭摄像头
-			getResult(result) {
-				this.address = result;
-				if (result !== "") {
-					this.scancode = false;
-				}
-			},
-			showDetail() {
-				if (this.address.length > 63 || this.address.length == 0) {
-					showToast(this.$t('提现地址格式错误'))
-					return
-				}
-				if (!this.amount) {
-					showToast(this.$t('请输入正确数量'))
-					return
-				}
-				if (this.amount / 1 > this.usdtBalance / 1) {
-					showToast(this.$t('金额不足'))
-					return
-				}
-				this.show = true;
-			},
-			goRouter(params) {
-				this.$router.push({
-					path: params,
-					query: {
-						type: '2',
-						back: "1"
-					}
-				});
-			},
-			// onConfirm() {
-			//     this.$router.push('/withdraw/withdrawSumbit')
-			// },
-			//选中币种
-			onSelect(item) {
-				this.amount = ''
-				this.volume_last = ''
-				this.fee = ''
-				this.showSymbol = false;
-				this.value = item.name;
-				this.withdraw_fee_type = ''
-				this.getBlock(item.name);
-				this.getAvailable(item.name)
-				if (item.name == 'BTC' || item.name == 'ETH') {
-					this.numLenth = 7
-					_withdrawFee({
-						amount: 1,
-						channel: this.value + '_' + this.blockName
-					}).then((res) => {
-						this.withdraw_fee_type = res.withdraw_fee_type
-						if (this.withdraw_fee_type == 'fixed') {
-							this.fee = res.fee;
-						} else {
-							this.percent = res.fee
-						}
-					});
-				} else {
-					this.numLenth = 3
-				}
-			},
-			//根据币种获取链地址
-			getBlock(symbol) {
-				Axios.getBlock({
-					coin: symbol
+		// onConfirm() {
+		//     this.$router.push('/withdraw/withdrawSumbit')
+		// },
+		//选中币种
+		onSelect(item) {
+			this.amount = ''
+			this.volume_last = ''
+			this.fee = ''
+			this.showSymbol = false;
+			this.value = item.name;
+			this.withdraw_fee_type = ''
+			this.getBlock(item.name);
+			this.getAvailable(item.name)
+			if (item.name == 'BTC' || item.name == 'ETH') {
+				this.numLenth = 7
+				_withdrawFee({
+					amount: 1,
+					channel: this.value + '_' + this.blockName
 				}).then((res) => {
-					this.blockList = res;
-					this.blockName = res[0].blockchain_name;
-				});
-			},
-			//选中链名称
-			changeBlockchain(item, index) {
-				this.blockchainIndex = index;
-				this.blockName = item.blockchain_name;
-			},
-			//获取钱包余额
-			getAvailable(symbol) {
-				_getAllWallet().then((res) => {
-					let walletList = res.extends;
-					let initObj = walletList.find(item => {
-						return item.symbol_data.toLowerCase() == symbol.toLowerCase()
-					})
-					this.usdtBalance = initObj.volume
-				});
-			},
-			//点全部
-			allBtn() {
-				this.amount = this.getwei(this.usdtBalance, this.numLenth);
-				this.changeInput()
-			},
-			//输入改变
-			changeInput() {
-				if (this.amount === '') {
-					this.volume_last = '0.00'
-					return
-				}
-				if (this.amount.length > 11) {
-					this.amount = this.amount.slice(0, 11)
-				}
-
-				if (this.withdraw_fee_type == 'part') {
-					_withdrawFee({
-						amount: this.amount,
-						channel: this.value + '_' + this.blockName
-					}).then((res) => {
-						console.log(res)
+					this.withdraw_fee_type = res.withdraw_fee_type
+					if (this.withdraw_fee_type == 'fixed') {
 						this.fee = res.fee;
-						this.volume_last = res.volume_last;
-					});
-				} else if (this.withdraw_fee_type == 'rate') {
-					if (this.amount == '') {
-						this.volume_last = 0
 					} else {
-						this.fee = this.getwei(this.percent * this.amount, this.numLenth)
-						this.volume_last = this.getwei(this.amount * 1 - this.percent * this.amount, this.numLenth)
+						this.percent = res.fee
 					}
-				} else {
-					if (this.amount * 1 < this.fee * 1) {
-						console.log('a')
-						this.volume_last = 0
-					} else {
-						this.volume_last = this.getwei(this.amount * 1 - this.fee * 1, this.numLenth)
-					}
-				}
-
-			},
-			//提币提交
-			onConfirm() {
-				if (!this.amount) {
-					showToast(this.$t('请输入数量'));
-					return;
-				}
-
-				let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
-				if (!numReg.test(this.amount)) {
-					showToast(this.$t('请输入数字'));
-					return;
-				}
-
-				if (!this.address) {
-					showToast(this.$t('请输入提现地址'));
-					return;
-				}
-
-				if (this.amount && this.address) {
-					// this.$router.push({
-					//   path: '/cryptos/withdraw/securityVerification',
-					//   query: {
-					//     amount: this.amount,
-					//     from: this.address,
-					//     channel: this.value + '_' + this.blockName
-					//   }
-					// })
-					//       _withdrawApply({
-					//         session_token:this.sessionToken,
-					//         amount:this.amount,
-					//         from:this.address,
-					//         channel:this.value+'_'+ this.blockName
-					//     }).then((res)=> {
-					//         if(res.code==0) {
-					//             this.$router.push({
-					//                 path:"/withdraw/withdrawSumbit"
-					//             });
-					//         }else{
-					// showToast(this.$t(res.msg));
-					//         }
-					//     });
-					_withdrawApply({
-					        session_token:this.sessionToken,
-					        amount:this.amount,
-					        from:this.address,
-					        channel:this.value+'_'+ this.blockName
-					}).then((res) => {
-
-						this.$router.push({
-							path: "/cryptos/withdraw/withdrawSumbit"
-						});
-
-					}).catch(err => {
-						//console.log(err)
-						if (err.code == 105) {
-							showToast(this.$t('当前还需交易%s,才可提币', {
-								'MONEY': err.msg
-							}));
-						} else if (err.code === 'ECONNABORTED') {
-							showToast(this.$t('网络超时!'))
-						} else if (err.msg !== undefined) {
-							showToast(this.$t(err.msg))
-						}
-						// this.getToken()
-					})
-				} else {
-					showToast(this.$t('请输入提币数量'));
-				}
-			},
-			async pastCont() {
-				this.address = await navigator.clipboard.readText();
+				});
+			} else {
+				this.numLenth = 3
 			}
+		},
+		//根据币种获取链地址
+		getBlock(symbol) {
+			Axios.getBlock({
+				coin: symbol
+			}).then((res) => {
+				this.blockList = res;
+				this.blockName = res[0].blockchain_name;
+			});
+		},
+		//选中链名称
+		changeBlockchain(item, index) {
+			this.blockchainIndex = index;
+			this.blockName = item.blockchain_name;
+		},
+		//获取钱包余额
+		getAvailable(symbol) {
+			_getAllWallet().then((res) => {
+				let walletList = res.extends;
+				let initObj = walletList.find(item => {
+					return item.symbol_data.toLowerCase() == symbol.toLowerCase()
+				})
+				this.usdtBalance = initObj.volume
+			});
+		},
+		//点全部
+		allBtn() {
+			this.amount = this.getwei(this.usdtBalance, this.numLenth);
+			this.changeInput()
+		},
+		//输入改变
+		changeInput() {
+			if (this.amount === '') {
+				this.volume_last = '0.00'
+				return
+			}
+			if (this.amount.length > 11) {
+				this.amount = this.amount.slice(0, 11)
+			}
+
+			if (this.withdraw_fee_type == 'part') {
+				_withdrawFee({
+					amount: this.amount,
+					channel: this.value + '_' + this.blockName
+				}).then((res) => {
+					console.log(res)
+					this.fee = res.fee;
+					this.volume_last = res.volume_last;
+				});
+			} else if (this.withdraw_fee_type == 'rate') {
+				if (this.amount == '') {
+					this.volume_last = 0
+				} else {
+					this.fee = this.getwei(this.percent * this.amount, this.numLenth)
+					this.volume_last = this.getwei(this.amount * 1 - this.percent * this.amount, this.numLenth)
+				}
+			} else {
+				if (this.amount * 1 < this.fee * 1) {
+					console.log('a')
+					this.volume_last = 0
+				} else {
+					this.volume_last = this.getwei(this.amount * 1 - this.fee * 1, this.numLenth)
+				}
+			}
+
+		},
+		//提币提交
+		onConfirm: throttle(function () {
+			if (!this.amount) {
+				showToast(this.$t('请输入数量'));
+				return;
+			}
+
+			let numReg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
+			if (!numReg.test(this.amount)) {
+				showToast(this.$t('请输入数字'));
+				return;
+			}
+
+			if (!this.address) {
+				showToast(this.$t('请输入提现地址'));
+				return;
+			}
+
+			if (!this.safeword) {
+				showToast(this.$t('fundsPasswordContTips'));
+				return;
+			}
+
+			if (this.amount && this.address) {
+				// this.$router.push({
+				//   path: '/cryptos/withdraw/securityVerification',
+				//   query: {
+				//     amount: this.amount,
+				//     from: this.address,
+				//     channel: this.value + '_' + this.blockName
+				//   }
+				// })
+				//       _withdrawApply({
+				//         session_token:this.sessionToken,
+				//         amount:this.amount,
+				//         from:this.address,
+				//         channel:this.value+'_'+ this.blockName
+				//     }).then((res)=> {
+				//         if(res.code==0) {
+				//             this.$router.push({
+				//                 path:"/withdraw/withdrawSumbit"
+				//             });
+				//         }else{
+				// showToast(this.$t(res.msg));
+				//         }
+				//     });
+				_withdrawApply({
+					session_token: this.sessionToken,
+					amount: this.amount,
+					safeword: this.safeword,
+					from: this.address,
+					channel: this.value + '_' + this.blockName
+				}).then((res) => {
+
+					this.$router.push({
+						path: "/cryptos/withdraw/withdrawSumbit"
+					});
+
+				}).catch(err => {
+					//console.log(err)
+					if (err.code == 105) {
+						showToast(this.$t('当前还需交易%s,才可提币', {
+							'MONEY': err.msg
+						}));
+					} else if (err.code === 'ECONNABORTED') {
+						showToast(this.$t('网络超时!'))
+					} else if (err.msg !== undefined) {
+						showToast(this.$t(err.msg))
+					}
+					// this.getToken()
+				})
+			} else {
+				showToast(this.$t('请输入提币数量'));
+			}
+		}, 1000),
+		async pastCont() {
+			this.address = await navigator.clipboard.readText();
 		}
 	}
+}
 </script>
 <style lang="scss" scoped>
-	@import "@/assets/init.scss";
+@import "@/assets/init.scss";
 
-	#cryptos {
-		.withdrawl-page {
-			width: 100%;
-			box-sizing: border-box;
-			font-size: 26px;
-		}
+#cryptos {
+	.withdrawl-page {
+		width: 100%;
+		box-sizing: border-box;
+		font-size: 26px;
+	}
 
-		.van-popup.van-popup--bottom {
-			border-top-left-radius: 30px;
-			border-top-right-radius: 30px;
-		}
+	.van-popup.van-popup--bottom {
+		border-top-left-radius: 30px;
+		border-top-right-radius: 30px;
+	}
 
-		.pop-box {
-			border-top-left-radius: 30px;
-			border-top-right-radius: 30px;
-		}
+	.pop-box {
+		border-top-left-radius: 30px;
+		border-top-right-radius: 30px;
+	}
 
-		.color-blue {
-			color: $btn_main;
-		}
+	.color-blue {
+		color: $btn_main;
+	}
 
-		.bg-grey-light {
-			background: $light-grey;
-		}
+	.bg-grey-light {
+		background: $light-grey;
+	}
 
-		li {
-			&.active {
-				border-color: $color_main;
-				color: $color_main;
-			}
-		}
-
-		.van-button--default {
-			color: $text_color;
-		}
-
-		.btnMain {
-			background: $btn_main;
+	li {
+		&.active {
+			border-color: $color_main;
+			color: $color_main;
 		}
 	}
+
+	.van-button--default {
+		color: $text_color;
+	}
+
+	.btnMain {
+		background: $btn_main;
+	}
+}
 </style>
\ No newline at end of file
diff --git a/src/views/homePage/components/head.vue b/src/views/homePage/components/head.vue
index ca5361e..24c36e9 100644
--- a/src/views/homePage/components/head.vue
+++ b/src/views/homePage/components/head.vue
@@ -1,9 +1,11 @@
 <template>
     <div class="head flex justify-between items-center pl-5 pr-5">
         <div class="more mr-5"><img src="@/assets/imgs/home/more.png" alt="" @click="onRoute('/my')"></div>
-        <div class="more_input pl-5 pr-5 flex items-center justify-start mr-5 pt-2" @click="onRoute('/optional/search')">
+        <div class="more_input pl-5 pr-5 flex items-center justify-start mr-5 pt-2">
             <img src="@/assets/imgs/quotes/search.png" alt="">
-            <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span>
+            <!-- <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span> -->
+            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="background-color: #F7F7F7;padding: 0 1rem;"
+                @input="emit('search', iValue)" />
         </div>
         <div class="scan"><img src="@/assets/image/assets-center/language.png" alt="" @click="onRoute('/language')"></div>
         <!-- <div class="gift"><img src="@/assets/imgs/home/gift.png" alt=""></div>
@@ -15,6 +17,7 @@
 <script setup>
 import { useRouter } from 'vue-router';
 import { useI18n } from "vue-i18n";
+import { ref } from 'vue';
 
 const { t } = useI18n()
 const router = useRouter()
@@ -22,6 +25,9 @@
 const onRoute = (path) => {
     router.push(path)
 }
+
+const iValue = ref('')
+const emit = defineEmits(['search'])
 </script>
 
 
diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue
index 36e40c6..db02613 100644
--- a/src/views/homePage/index.vue
+++ b/src/views/homePage/index.vue
@@ -1,7 +1,7 @@
 <template>
     <div class="home_page">
 
-        <Head></Head>
+        <Head @search="onSearch"></Head>
         <!-- <div class="home_logo flex justify-center"><img src="@/assets/imgs/home/home_logo.png" alt=""></div> -->
         <!-- <van-swipe class="home_logo" :autoplay="3000" indicator-color="white">
             <van-swipe-item><img src="@/assets/imgs/home/Slider-1.jpg" alt=""></van-swipe-item>
@@ -171,6 +171,8 @@
 
 //#region 行情数据----------------------------------------
 let qList = ref([])
+let qListCope = ref([]) // 备份数据
+let key = ref('') // 搜索关键词
 let timeout = ref(null)
 const coinArr = computed(() => store.getters['home/coinArr']);
 
@@ -181,7 +183,16 @@
     if (!(list instanceof Array)) {
         return
     }
-    qList.value = list;
+
+    // 通过关键字进行筛选
+    if (key.value) {
+        qList.value = list.filter(item => {
+            return item.symbol_data.toLowerCase().includes(key.value.toLowerCase()) || item.name.toLowerCase().includes(key.value.toLowerCase())
+        })
+    } else {
+        qList.value = list
+    }
+    qListCope.value = list; // 备份数据
 
     if (timeout.value) {
         clearTimeout(timeout.value)
@@ -192,6 +203,20 @@
 }
 fetchQList()
 
+// 搜索
+const onSearch = (val) => {
+    key.value = val
+
+    if (!val) {
+        qList.value = qListCope.value
+        return
+    }
+    let newList = qListCope.value.filter(item => {
+        return item.symbol_data.toLowerCase().includes(val.toLowerCase()) || item.name.toLowerCase().includes(val.toLowerCase())
+    })
+    qList.value = newList
+}
+
 onBeforeUnmount(() => {
     if (timeout.value) {
         clearTimeout(timeout.value)
diff --git a/src/views/quotes/List.vue b/src/views/quotes/List.vue
index 55bed5d..2e8010a 100644
--- a/src/views/quotes/List.vue
+++ b/src/views/quotes/List.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="quotes-list pt-5 pb-60 pl-5 pr-5" id="cryptos">
 
-    <Head></Head>
+    <Head @search="onSearch"></Head>
     <list-quatation :listData="qList" :tabActive="2" />
   </div>
 </template>
@@ -18,6 +18,8 @@
 
 //#region 行情数据----------------------------------------
 let qList = ref([])
+let qListCope = ref([]) // 备份数据
+let key = ref('') // 搜索关键词
 let timeout = ref(null)
 const coinArr = computed(() => store.getters['home/coinArr']);
 
@@ -28,7 +30,16 @@
   if (!(list instanceof Array)) {
     return
   }
-  qList.value = list;
+
+  // 通过关键字进行筛选
+  if (key.value) {
+    qList.value = list.filter(item => {
+      return item.symbol_data.toLowerCase().includes(key.value.toLowerCase()) || item.name.toLowerCase().includes(key.value.toLowerCase())
+    })
+  } else {
+    qList.value = list
+  }
+  qListCope.value = list; // 备份数据
 
   if (timeout.value) {
     clearTimeout(timeout.value)
@@ -45,6 +56,20 @@
   }
 })
 //#endregion----------------------------------------------
+
+// 搜索
+const onSearch = (val) => {
+  key.value = val
+
+  if (!val) {
+    qList.value = qListCope.value
+    return
+  }
+  let newList = qListCope.value.filter(item => {
+    return item.symbol_data.toLowerCase().includes(val.toLowerCase()) || item.name.toLowerCase().includes(val.toLowerCase())
+  })
+  qList.value = newList
+}
 </script>
 <style lang="scss" scoped>
 .quotes-list {
diff --git a/src/views/quotes/components/head.vue b/src/views/quotes/components/head.vue
index bd47298..5532f01 100644
--- a/src/views/quotes/components/head.vue
+++ b/src/views/quotes/components/head.vue
@@ -1,8 +1,11 @@
 <template>
     <div class="head flex justify-between items-center pl-5 pr-5">
-        <div class="more_input pl-20 pr-5 flex items-center justify-start mr-5 pt-2" @click="onRoute('/optional/search')">
+        <!-- <div class="more_input pl-20 pr-5 flex items-center justify-start mr-5 pt-2" @click="onRoute('/optional/search')"> -->
+        <div class="more_input pl-20 pr-5 flex items-center justify-start mr-5 pt-2">
             <img src="@/assets/imgs/quotes/search.png" alt="">
-            <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span>
+            <!-- <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span> -->
+            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="background-color: #F7F7F7;"
+                @input="emit('search', iValue)" />
         </div>
     </div>
 </template>
@@ -10,6 +13,7 @@
 <script setup>
 import { useRouter } from 'vue-router';
 import { useI18n } from "vue-i18n";
+import { ref } from 'vue';
 
 const { t } = useI18n()
 const router = useRouter()
@@ -17,6 +21,9 @@
 const onRoute = (path) => {
     router.push(path)
 }
+
+const iValue = ref('')
+const emit = defineEmits(['search'])
 </script>
 
 
@@ -44,6 +51,7 @@
 
         img {
             width: 2.5rem;
+            margin-right: .5rem;
         }
     }
 }
diff --git a/src/views/safety/index.vue b/src/views/safety/index.vue
index 043df3a..f1a9e08 100644
--- a/src/views/safety/index.vue
+++ b/src/views/safety/index.vue
@@ -93,7 +93,7 @@
     url: "/resetVerify?type=0"
   },
   {
-    name: `${t('resetPhone')}/${t('resetEmail')}`,
+    name: `${t('更换绑定')}`,
     url: "/resetPhoneEmail"
   },
 ])
diff --git a/src/views/safety/resetPhoneEmail.vue b/src/views/safety/resetPhoneEmail.vue
index ddb8d7d..6544f04 100644
--- a/src/views/safety/resetPhoneEmail.vue
+++ b/src/views/safety/resetPhoneEmail.vue
@@ -4,7 +4,7 @@
             <img src="../../assets/image/icon-close.png" alt="" @click="router.go(-1)">
             <div @click="onRoute('/customerService')">{{ $t('onLineService') }}</div>
         </div>
-        <div class="title textColor">{{ $t('重置') }}</div>
+        <div class="title textColor">{{ $t('更换绑定') }}</div>
         <div class="flex re-tab">
             <!-- <div class="textColor1" :class="activeIndex == 0 ? 'active' : ''" @click="changeIndex(0)">{{
                 $t('account')

--
Gitblit v1.9.3