1
李凌
2025-09-22 517b4a398d9ca06788366f2c4b94d5d8831af5fc
1
23 files modified
146 ■■■■ changed files
src/components/Transform/list-quotation/index.vue 14 ●●●●● patch | view | raw | blame | history
src/components/Transform/trade-head/index.vue 3 ●●●● patch | view | raw | blame | history
src/i18n/Deutsch.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Italy.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Japanese.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Portuguese.js 1 ●●●● patch | view | raw | blame | history
src/i18n/Spanish.js 1 ●●●● patch | view | raw | blame | history
src/i18n/cn.js 1 ●●●● patch | view | raw | blame | history
src/i18n/en.js 1 ●●●● patch | view | raw | blame | history
src/i18n/fa.js 1 ●●●● patch | view | raw | blame | history
src/i18n/korean.js 1 ●●●● patch | view | raw | blame | history
src/i18n/th.js 1 ●●●● patch | view | raw | blame | history
src/i18n/vi.js 1 ●●●● patch | view | raw | blame | history
src/i18n/zhcn.js 1 ●●●● patch | view | raw | blame | history
src/utils/index.js 4 ●●●● patch | view | raw | blame | history
src/views/cryptos/TrendDetails/index.vue 4 ●●●● patch | view | raw | blame | history
src/views/cryptos/Withdraw/withdrawPage.vue 25 ●●●● patch | view | raw | blame | history
src/views/homePage/components/head.vue 10 ●●●● patch | view | raw | blame | history
src/views/homePage/index.vue 29 ●●●●● patch | view | raw | blame | history
src/views/quotes/List.vue 29 ●●●●● patch | view | raw | blame | history
src/views/quotes/components/head.vue 12 ●●●● patch | view | raw | blame | history
src/views/safety/index.vue 2 ●●● patch | view | raw | blame | history
src/views/safety/resetPhoneEmail.vue 2 ●●● patch | view | raw | blame | history
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);
    }
  }
}
src/components/Transform/trade-head/index.vue
@@ -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)
src/i18n/Deutsch.js
@@ -2841,4 +2841,5 @@
    "最低认购": "Mindestzeichnung",
    "币种数量": "Menge der währung",
    "进度": "Fortschritt",
    "更换绑定": "Ersetzen sie die bindung",
}
src/i18n/Italy.js
@@ -2931,4 +2931,5 @@
    "最低认购": "Sottoscrizione minima",
    "币种数量": "Menge der Währung",
    "进度": "Fortschritt",
    "更换绑定": "Cambio di legame",
}
src/i18n/Japanese.js
@@ -2699,4 +2699,5 @@
    "最低认购": "最低申込",
    "币种数量": "通貨数量",
    "进度": "進捗",
    "更换绑定": "バインドを変更します",
}
src/i18n/Portuguese.js
@@ -651,4 +651,5 @@
    "最低认购": "Subscrição mínima",
    "币种数量": "Quantidade de moeda",
    "进度": "Progresso",
    "更换绑定": "Trocar de ligação",
}
src/i18n/Spanish.js
@@ -2614,4 +2614,5 @@
    "最低认购": "Suscripción mínima",
    "币种数量": "Cantidad de moneda",
    "进度": "Progreso",
    "更换绑定": "Cambiar enlace",
}
src/i18n/cn.js
@@ -2820,4 +2820,5 @@
    "最低认购": "最低認購",
    "币种数量": "幣種數量",
    "进度": "進度",
    "更换绑定": "更換綁定",
}
src/i18n/en.js
@@ -2795,4 +2795,5 @@
    "最低认购": "Minimum subscription",
    "币种数量": "Currency quantity",
    "进度": "Progress",
    "更换绑定": "Change binding",
}
src/i18n/fa.js
@@ -2738,4 +2738,5 @@
    "最低认购": "Souscription minimale",
    "币种数量": "Menge der Währung",
    "进度": "Fortschritt",
    "更换绑定": "Changer de liaison",
}
src/i18n/korean.js
@@ -2835,4 +2835,5 @@
    "最低认购": "최소 구독",
    "币种数量": "통화 수량",
    "进度": "진행 상황",
    "更换绑定": "바인딩 변경",
}
src/i18n/th.js
@@ -2806,4 +2806,5 @@
    "最低认购": "การจองซื้อขั้นต่ำ",
    "币种数量": "จำนวนเงินตรา",
    "进度": "ความก้าวหน้า",
    "更换绑定": "เปลี่ยนการเชื่อมโยง",
}
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",
}
src/i18n/zhcn.js
@@ -2800,4 +2800,5 @@
    "最低认购": "最低认购",
    "币种数量": "币种数量",
    "进度": "进度",
    "更换绑定": "更换绑定",
}
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) {
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>
@@ -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) {
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">
@@ -139,6 +146,7 @@
    import {
        _getAllWallet
    } from "@/service/fund.api";
import { throttle } from "@/utils/index.js";
    export default {
        name: "withdrawPage",
        components: {
@@ -173,7 +181,8 @@
                scancode: false, //控制是否使用扫一扫功能
                withdraw_fee_type: '',
                percent: 0,
                numLenth: 3
            numLenth: 3,
            safeword: '' //资金密码
            }
        },
        created() {
@@ -347,7 +356,7 @@
            },
            //提币提交
            onConfirm() {
        onConfirm: throttle(function () {
                if (!this.amount) {
                    showToast(this.$t('请输入数量'));
                    return;
@@ -361,6 +370,11 @@
                if (!this.address) {
                    showToast(this.$t('请输入提现地址'));
                return;
            }
            if (!this.safeword) {
                showToast(this.$t('fundsPasswordContTips'));
                    return;
                }
@@ -390,6 +404,7 @@
                    _withdrawApply({
                            session_token:this.sessionToken,
                            amount:this.amount,
                    safeword: this.safeword,
                            from:this.address,
                            channel:this.value+'_'+ this.blockName
                    }).then((res) => {
@@ -414,7 +429,7 @@
                } else {
                    showToast(this.$t('请输入提币数量'));
                }
            },
        }, 1000),
            async pastCont() {
                this.address = await navigator.clipboard.readText();
            }
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>
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)
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 {
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;
        }
    }
}
src/views/safety/index.vue
@@ -93,7 +93,7 @@
    url: "/resetVerify?type=0"
  },
  {
    name: `${t('resetPhone')}/${t('resetEmail')}`,
    name: `${t('更换绑定')}`,
    url: "/resetPhoneEmail"
  },
])
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')