| | |
| | | </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"> |
| | |
| | | </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"> |
| | |
| | | </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"> |
| | |
| | | </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"> |
| | |
| | | fixDate, |
| | | HOST_URL, |
| | | active: 0, |
| | | showList: [], |
| | | type: 'left' //left 从左往右 right 从有王座 |
| | | } |
| | | }, |
| | |
| | | this.showList = [...this.listData].sort(this.compare("volume", 'up')) |
| | | } |
| | | this.$forceUpdate() |
| | | // console.log("aaaaaaaaa", this.showList, this.listData); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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) |
| | |
| | | "最低认购": "Mindestzeichnung", |
| | | "币种数量": "Menge der währung", |
| | | "进度": "Fortschritt", |
| | | "更换绑定": "Ersetzen sie die bindung", |
| | | } |
| | |
| | | "最低认购": "Sottoscrizione minima", |
| | | "币种数量": "Menge der Währung", |
| | | "进度": "Fortschritt", |
| | | "更换绑定": "Cambio di legame", |
| | | } |
| | |
| | | "最低认购": "最低申込", |
| | | "币种数量": "通貨数量", |
| | | "进度": "進捗", |
| | | "更换绑定": "バインドを変更します", |
| | | } |
| | |
| | | "最低认购": "Subscrição mínima", |
| | | "币种数量": "Quantidade de moeda", |
| | | "进度": "Progresso", |
| | | "更换绑定": "Trocar de ligação", |
| | | } |
| | |
| | | "最低认购": "Suscripción mínima", |
| | | "币种数量": "Cantidad de moneda", |
| | | "进度": "Progreso", |
| | | "更换绑定": "Cambiar enlace", |
| | | } |
| | |
| | | "最低认购": "最低認購", |
| | | "币种数量": "幣種數量", |
| | | "进度": "進度", |
| | | "更换绑定": "更換綁定", |
| | | } |
| | |
| | | "最低认购": "Minimum subscription", |
| | | "币种数量": "Currency quantity", |
| | | "进度": "Progress", |
| | | "更换绑定": "Change binding", |
| | | } |
| | |
| | | "最低认购": "Souscription minimale", |
| | | "币种数量": "Menge der Währung", |
| | | "进度": "Fortschritt", |
| | | "更换绑定": "Changer de liaison", |
| | | } |
| | |
| | | "最低认购": "최소 구독", |
| | | "币种数量": "통화 수량", |
| | | "进度": "진행 상황", |
| | | "更换绑定": "바인딩 변경", |
| | | } |
| | |
| | | "最低认购": "การจองซื้อขั้นต่ำ", |
| | | "币种数量": "จำนวนเงินตรา", |
| | | "进度": "ความก้าวหน้า", |
| | | "更换绑定": "เปลี่ยนการเชื่อมโยง", |
| | | } |
| | |
| | | "最低认购": "Đăng ký tối thiểu", |
| | | "币种数量": "Số lượng tiền tệ", |
| | | "进度": "Tiến độ", |
| | | "更换绑定": "Thay đổi liên kết", |
| | | } |
| | |
| | | "最低认购": "最低认购", |
| | | "币种数量": "币种数量", |
| | | "进度": "进度", |
| | | "更换绑定": "更换绑定", |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | // 小数展示,保留五位小数 |
| | | export const formatNumber = (num) => { |
| | | if (typeof (num) !== 'number') { |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | // 保留五位小数 |
| | | export const formatNumberToFixedFive = (num) => { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | export const formatMoney = (val) => { |
| | | if(val === 0){ |
| | | return 0 |
| | |
| | | } |
| | | return (val / Math.pow(num, 4)).toFixed(2) + "T"; //T |
| | | } |
| | | |
| | | |
| | | export const formatNews = (str) => { |
| | | if(!str) { |
| | |
| | | <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> |
| | |
| | | ...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) { |
| | |
| | | <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"> |
| | |
| | | import { |
| | | _getAllWallet |
| | | } from "@/service/fund.api"; |
| | | import { throttle } from "@/utils/index.js"; |
| | | export default { |
| | | name: "withdrawPage", |
| | | components: { |
| | |
| | | scancode: false, //控制是否使用扫一扫功能 |
| | | withdraw_fee_type: '', |
| | | percent: 0, |
| | | numLenth: 3 |
| | | numLenth: 3, |
| | | safeword: '' //资金密码 |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | |
| | | }, |
| | | //提币提交 |
| | | onConfirm() { |
| | | onConfirm: throttle(function () { |
| | | if (!this.amount) { |
| | | showToast(this.$t('请输入数量')); |
| | | return; |
| | |
| | | |
| | | if (!this.address) { |
| | | showToast(this.$t('请输入提现地址')); |
| | | return; |
| | | } |
| | | |
| | | if (!this.safeword) { |
| | | showToast(this.$t('fundsPasswordContTips')); |
| | | return; |
| | | } |
| | | |
| | |
| | | _withdrawApply({ |
| | | session_token:this.sessionToken, |
| | | amount:this.amount, |
| | | safeword: this.safeword, |
| | | from:this.address, |
| | | channel:this.value+'_'+ this.blockName |
| | | }).then((res) => { |
| | |
| | | } else { |
| | | showToast(this.$t('请输入提币数量')); |
| | | } |
| | | }, |
| | | }, 1000), |
| | | async pastCont() { |
| | | this.address = await navigator.clipboard.readText(); |
| | | } |
| | |
| | | <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> |
| | |
| | | <script setup> |
| | | import { useRouter } from 'vue-router'; |
| | | import { useI18n } from "vue-i18n"; |
| | | import { ref } from 'vue'; |
| | | |
| | | const { t } = useI18n() |
| | | const router = useRouter() |
| | |
| | | const onRoute = (path) => { |
| | | router.push(path) |
| | | } |
| | | |
| | | const iValue = ref('') |
| | | const emit = defineEmits(['search']) |
| | | </script> |
| | | |
| | | |
| | |
| | | <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> |
| | |
| | | |
| | | //#region 行情数据---------------------------------------- |
| | | let qList = ref([]) |
| | | let qListCope = ref([]) // 备份数据 |
| | | let key = ref('') // 搜索关键词 |
| | | let timeout = ref(null) |
| | | const coinArr = computed(() => store.getters['home/coinArr']); |
| | | |
| | |
| | | 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) |
| | |
| | | } |
| | | 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) |
| | |
| | | <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> |
| | |
| | | |
| | | //#region 行情数据---------------------------------------- |
| | | let qList = ref([]) |
| | | let qListCope = ref([]) // 备份数据 |
| | | let key = ref('') // 搜索关键词 |
| | | let timeout = ref(null) |
| | | const coinArr = computed(() => store.getters['home/coinArr']); |
| | | |
| | |
| | | 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) |
| | |
| | | } |
| | | }) |
| | | //#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 { |
| | |
| | | <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> |
| | |
| | | <script setup> |
| | | import { useRouter } from 'vue-router'; |
| | | import { useI18n } from "vue-i18n"; |
| | | import { ref } from 'vue'; |
| | | |
| | | const { t } = useI18n() |
| | | const router = useRouter() |
| | |
| | | const onRoute = (path) => { |
| | | router.push(path) |
| | | } |
| | | |
| | | const iValue = ref('') |
| | | const emit = defineEmits(['search']) |
| | | </script> |
| | | |
| | | |
| | |
| | | |
| | | img { |
| | | width: 2.5rem; |
| | | margin-right: .5rem; |
| | | } |
| | | } |
| | | } |
| | |
| | | url: "/resetVerify?type=0" |
| | | }, |
| | | { |
| | | name: `${t('resetPhone')}/${t('resetEmail')}`, |
| | | name: `${t('更换绑定')}`, |
| | | url: "/resetPhoneEmail" |
| | | }, |
| | | ]) |
| | |
| | | <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') |