| | |
| | | <div class="pt-5" > |
| | | <router-view /> |
| | | </div> |
| | | <fx-footer v-if="route.meta.tarbar" /> |
| | | <fx-footer v-if="showTarbar" /> |
| | | </template> |
| | | |
| | | <script setup> |
| | |
| | | import fxFooter from '@/components/fx-footer/index.vue' |
| | | import { authorizedLogin } from "@/service/login.api"; |
| | | import { useRoute } from 'vue-router'; |
| | | import { computed } from 'vue'; |
| | | import { setStorage } from '@/utils/index.js' |
| | | import { onMounted } from 'vue' |
| | | |
| | |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | |
| | | /** 取当前叶子路由的 tarbar,避免父级 cryptos(tarbar:false) 盖掉子路由 */ |
| | | const showTarbar = computed(() => { |
| | | const matched = route.matched |
| | | for (let i = matched.length - 1; i >= 0; i--) { |
| | | if (matched[i].meta.tarbar !== undefined) { |
| | | return !!matched[i].meta.tarbar |
| | | } |
| | | } |
| | | return !!route.meta.tarbar |
| | | }) |
| | | |
| | | const geturlkey = (name) => { |
| | | return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null; |
| | | } |
| | |
| | | path: '/cryptos/funds', |
| | | isLogin: true |
| | | }, |
| | | // { |
| | | // name: this.$t('基金理财'), |
| | | // icon: new URL('@/assets/theme/dark/image/nav/financialmanagement.png', import.meta.url), |
| | | // path: '/cryptos/fm-home' |
| | | // }, |
| | | { |
| | | name: this.$t('基金理财'), |
| | | icon: new URL('@/assets/theme/dark/image/nav/financialmanagement.png', import.meta.url), |
| | | path: '/cryptos/fm-home' |
| | | }, |
| | | // { |
| | | // name: this.$t('智能矿池'), |
| | | // icon: new URL('@/assets/theme/dark/image/nav/SmartKuangchi.png', import.meta.url), |
| | |
| | | path: '/cryptos/funds', |
| | | isLogin: true |
| | | }, |
| | | // { |
| | | // name: this.$t('基金理财'), |
| | | // icon: new URL('@/assets/theme/dark/image/nav/financialmanagement.png', import.meta.url), |
| | | // path: '/cryptos/fund' |
| | | // }, |
| | | { |
| | | name: this.$t('基金理财'), |
| | | icon: new URL('@/assets/theme/dark/image/nav/financialmanagement.png', import.meta.url), |
| | | path: '/cryptos/fm-home' |
| | | }, |
| | | // { |
| | | // name: this.$t('智能矿池'), |
| | | // icon: new URL('@/assets/theme/dark/image/nav/SmartKuangchi.png', import.meta.url), |
| | |
| | | </div> |
| | | <div class="position-div1"> |
| | | <span class="position-text1">{{ $t('到期时间') }}</span> |
| | | <span class="position-text2 textColor"> {{ dayjs(item.close_time * 1000).format('YYYY-MM-DD HH:mm:ss') }}</span> |
| | | <span class="position-text2 textColor"> {{ formatNYTime(item.close_time) }}</span> |
| | | </div> |
| | | <div class="position-div1"> |
| | | <span class="position-text1">{{ $t('操作') }}</span> |
| | |
| | | this.show = true |
| | | this.detailData = item |
| | | }, |
| | | formatNYTime(timestamp) { |
| | | if (!timestamp) return '--' |
| | | const parts = new Intl.DateTimeFormat('en-US', { |
| | | timeZone: 'America/New_York', |
| | | year: 'numeric', |
| | | month: '2-digit', |
| | | day: '2-digit', |
| | | hour: '2-digit', |
| | | minute: '2-digit', |
| | | second: '2-digit', |
| | | hour12: false |
| | | }).formatToParts(new Date(timestamp * 1000)) |
| | | const get = (type) => parts.find(p => p.type === type)?.value |
| | | return `${get('year')}-${get('month')}-${get('day')} ${get('hour')}:${get('minute')}:${get('second')}` |
| | | }, |
| | | dayjs |
| | | } |
| | | } |
| | |
| | | border: 1px solid #cbcbcb; |
| | | text-align: center; |
| | | border-radius: 10px; |
| | | color: #7f7f7f; |
| | | } |
| | | |
| | | .btns_box { |
| | |
| | | </template> |
| | | </van-tabbar-item> |
| | | |
| | | <van-tabbar-item name="STO" to="/ICO/ico"> |
| | | <span :class="[active === 'STO' ? 'active' : '']">STO</span> |
| | | <van-tabbar-item name="fund" to="/cryptos/fund"> |
| | | <span :class="[active === 'fund' ? 'active' : '']">{{ $t('理财') }}</span> |
| | | <template #icon="props"> |
| | | <img :src="props.active ? icon.sto.active : icon.sto.inactive" /> |
| | | </template> |
| | |
| | | </template> |
| | | </van-tabbar-item> |
| | | |
| | | <!-- <van-tabbar-item name="trade" to="/trade"> |
| | | <van-tabbar-item name="trade" to="/trade"> |
| | | <span :class="[active === 'trade' ? 'active' : '']">{{ $t('trade') }}</span> |
| | | <template #icon="props"> |
| | | <img :src="props.active ? icon.trade.active : icon.trade.inactive" /> |
| | | </template> |
| | | </van-tabbar-item> --> |
| | | </van-tabbar-item> |
| | | |
| | | <!-- <van-tabbar-item name="funds" to="/cryptos/funds"> |
| | | <span>{{ $t('资金') }}</span> |
| | |
| | | active.value = 'assets' |
| | | } else if (route.path == "/documentation/index") { |
| | | active.value = 'documentation' |
| | | } else if (route.path == "/ICO/ico") { |
| | | active.value = 'sto' |
| | | } else if (route.path == "/cryptos/fund" || route.path.indexOf('/cryptos/fund') != -1) { |
| | | active.value = 'fund' |
| | | } |
| | | let quotesStore = useQuotesStore() |
| | | |
| | |
| | | active.value = 'assets' |
| | | } else if (route.path == "/documentation/index") { |
| | | active.value = 'documentation' |
| | | } else if (route.path == "/ICO/ico") { |
| | | active.value = 'sto' |
| | | } else if (route.path == "/cryptos/fund" || route.path.indexOf('/cryptos/fund') != -1) { |
| | | active.value = 'fund' |
| | | } |
| | | }) |
| | | // 底部列表 |
| | |
| | | |
| | | // const ENV_DEV = 'zhapi.coinbtcs.com' // dev |
| | | // const ENV_DEV = 'openapi.yanshiz.com' // dev |
| | | const ENV_DEV = 'ddapi.fractionx-ex.com' // dev |
| | | const ENV_DEV = 'api.waonjinzai.top' // dev |
| | | // const ENV_DEV = '192.168.10.6:8086' // dev |
| | | |
| | | // const ENV_PRO = 'qheufhj.site' // app域名 |
| | | // const ENV_PRO = window.location.hostname // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | const ENV_PRO = 'ddapi.fractionx-ex.com' // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | const ENV_PRO = 'api.waonjinzai.top' // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | // const ENV_PRO = '192.168.10.6:8086' // 接口域名跟随 H5zhapi.coinbtcs.com |
| | | |
| | | let base_url = '' |
| | |
| | | ws_url = 'wss://' + ENV_PRO + '/api/websocket' |
| | | } |
| | | |
| | | let imgUrl = 'https://ddimg.fractionx-ex.com' // 暂时的 单独的图片地址 |
| | | let imgUrl = 'https://img.waonjinzai.top' // 暂时的 单独的图片地址 |
| | | |
| | | export const BASE_URL = base_url |
| | | export const WS_URL = ws_url |
| | |
| | | export const LOGO = new URL('@/assets/imgs/logo.png', import.meta.url) |
| | | |
| | | |
| | | export const customerServiceUrl = ()=>{ |
| | | let str = ' https://qwg.axc01lb.cfd/chat/index?channelId=5c7314eab72c4a72b2dc9b63c4502e69' |
| | | let user = JSON.parse(localStorage.getItem('user')) |
| | | console.log(user); |
| | | let userName = '',pid = ''; |
| | | if(user && user.userInfo){ |
| | | userName = user.userInfo.username |
| | | pid = user.userInfo.usercode |
| | | } |
| | | str += `&userName=${userName}&pid=${pid}` |
| | | return str |
| | | } // 客服外链链接 |
| | | export const customerServiceUrl = () => { |
| | | return '' |
| | | } // 使用内置客服,不跳转外链 |
| | | |
| | | export default { |
| | | sliderOptions: { |
| | |
| | | path: 'trade/:symbol', |
| | | name: 'trade', |
| | | meta: { |
| | | tarbar: false, |
| | | tarbar: true, |
| | | keepAlive: true |
| | | }, |
| | | component: () => import('@/views/cryptos/Trade/index.vue') |
| | |
| | | path: 'perpetualContract/:symbol', |
| | | name: 'perpetualContract', |
| | | meta: { |
| | | tarbar: false, |
| | | keepAlive: true |
| | | tarbar: true, |
| | | keepAlive: false |
| | | }, |
| | | component: () => |
| | | import( /* webpackChunkName: "perpetualContract" */ /* webpackPrefetch: true */ |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/css/copy2.scss"; |
| | | </style> |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/css/copy2.scss"; |
| | | |
| | | </style> |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/css/copy2.scss"; |
| | | .c2cPay-page{ |
| | | color: #333; |
| | |
| | | <div class="font-32 textColor">{{ orderTypes[item.content_type] }}</div> |
| | | <div class="text-grey font-26 mt-6"> |
| | | {{ item.createTime }} |
| | | (UTC+8) |
| | | |
| | | </div> |
| | | <!-- <div class="text-grey font-26 mt-6">{{ orderTypes[item.content_type] }}</div> --> |
| | | </div> |
| | |
| | | selectData: [ |
| | | { title: this.$t('全部'), type: '' }, |
| | | { title: this.$t('充值记录'), type: 'coin' }, |
| | | // { title: this.$t('合约交易'), type: 'contract' }, |
| | | { title: this.$t('交割合约'), type: 'contract' }, |
| | | { title: this.$t('理财'), type: 'finance' }, |
| | | { title: this.$t('闪兑'), type: 'flash' }, |
| | | { title: this.$t('币币交易'), type: 'exchange' }, |
| | | ], |
| | | type: "",//选中类型 |
| | |
| | | finance_buy: this.$t('购买'), |
| | | finance_back: this.$t('赎回'), |
| | | delivery_contract_open: this.$t('交割合约建仓'), |
| | | delivery_contract_close: this.$t('交割合约平仓') |
| | | delivery_contract_close: this.$t('交割合约平仓'), |
| | | flash: this.$t('闪兑'), |
| | | exchange_flash: this.$t('闪兑'), |
| | | } |
| | | }, |
| | | category() { |
| | |
| | | <span class="flex-1 border-b-color " :class="{ active_color: tab === 0 }"></span> |
| | | <span class="flex-1 border-b-color" :class="{ active_color: tab === 1 }"></span> |
| | | <span class="flex-1 border-b-color" :class="{ active_color: tab === 2 }"></span> |
| | | <!-- <span class="flex-1 border-b-color" :class="{ active_color: tab === 3 }"></span> --> |
| | | <span class="flex-1 border-b-color" :class="{ active_color: tab === 3 }"></span> |
| | | </div> |
| | | <over-view v-if="tab === 0" :funds="funds" :key="tab"></over-view> |
| | | <as-sets v-if="tab === 1" :funds="funds" :key="tab"></as-sets> |
| | | <contract v-if="tab === 2" :funds="funds" :index="index" :key="tab"></contract> |
| | | <!-- <financial v-if="tab === 3" :funds="funds" :index="index" :key="tab"></financial> --> |
| | | <financial v-if="tab === 3" :funds="funds" :index="index" :key="tab"></financial> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import AsSets from "@/components/Transform/assetsCenter/assets.vue" |
| | | import OverView from "@/components/Transform/assetsCenter/overview.vue" |
| | | import Contract from "@/components/Transform/assetsCenter/contract.vue" |
| | | // import Financial from "@/components/Transform/assetsCenter/financial.vue" |
| | | import Financial from "@/components/Transform/assetsCenter/financial.vue" |
| | | import { _getAllAssets } from "@/service/user.api.js"; |
| | | export default { |
| | | name: "assets-index", |
| | |
| | | AsSets, |
| | | OverView, |
| | | Contract, |
| | | // Financial |
| | | Financial |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | type: this.$t('合约'), |
| | | |
| | | }, |
| | | // { |
| | | // type: this.$t('理财'), |
| | | // }, |
| | | { |
| | | type: this.$t('理财'), |
| | | }, |
| | | ] |
| | | } |
| | | }, |
| | |
| | | <span class="time">{{ chartData.market.time_str }}</span> |
| | | <span>{{ chartData.market.time_zone && $t(chartData.market.time_zone) }}</span> |
| | | </p> |
| | | <div :class="{ slide2: animated1 }" v-if="selectIndex === 1"> |
| | | <div :class="{ slide2: animated1 }" v-if="Number(selectIndex) === 1"> |
| | | <section class="value-container" v-if="showMore"> |
| | | <div class="flex-l"> |
| | | <p class="first-line red">{{ formatMoney(chartData?.close) }}</p> |
| | |
| | | showLength = 7 |
| | | }, |
| | | initFutrue(val) { |
| | | if (val) { |
| | | if (this.$route.query.selectIndex == 2) { |
| | | if (this.isUpdate) { |
| | | setTimeout(() => { |
| | | this.onTopTab(2) |
| | | }) |
| | | this.isUpdate = false |
| | | } |
| | | } |
| | | if (!val || !this.symbol) return |
| | | if (this.selectIndex === 2 && this.curTab && typeof this[this.curTab] === 'function') { |
| | | this.$nextTick(() => { |
| | | this[this.curTab](this.symbol) |
| | | }) |
| | | } |
| | | this.isUpdate = false |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | handleClickShowMore() { |
| | | this.showMore = !this.showMore |
| | | }, |
| | | onTopTab(evt) { // 当前tab 永续/交割 |
| | | this.keyIndex += 1 |
| | | this.selectIndex = evt |
| | | syncContractTab(evt, bumpKey = true) { |
| | | const idx = Number(evt) |
| | | if (bumpKey) { |
| | | this.keyIndex += 1 |
| | | } |
| | | this.selectIndex = idx |
| | | this.clearTimer() |
| | | if (this.selectIndex / 1 === 1) { |
| | | //this.curTab = 'fetchOrderListCur' |
| | | if (idx === 1) { |
| | | this.curTab = 'fetchOrderListHold' |
| | | // this.animated1 = true |
| | | // this.timer = setTimeout(() => { |
| | | // this.animated1 = false |
| | | // clearTimeout(this.timer) |
| | | // }, 200) |
| | | this.animated2 = true |
| | | this.timer = setTimeout(() => { |
| | | this.animated2 = false |
| | | clearTimeout(this.timer) |
| | | }, 200) |
| | | } else { |
| | | // this.animated2 = true |
| | | // this.timer = setTimeout(() => { |
| | | // this.animated2 = false |
| | | // clearTimeout(this.timer) |
| | | // }, 200) |
| | | this.curTab = 'fetchFutrueHoldList' |
| | | this.animated1 = true |
| | | this.timer = setTimeout(() => { |
| | | this.animated1 = false |
| | | clearTimeout(this.timer) |
| | | }, 200) |
| | | } |
| | | this[this.curTab](this.symbol) |
| | | if (this.symbol && this.curTab && typeof this[this.curTab] === 'function') { |
| | | this.$nextTick(() => { |
| | | this[this.curTab](this.symbol) |
| | | }) |
| | | } |
| | | }, |
| | | onTopTab(evt) { // 当前tab 永续/交割(页内切换,同步 URL 供底部栏高亮) |
| | | this.syncContractTab(evt, true) |
| | | if (String(this.$route.query.selectIndex) !== String(evt)) { |
| | | this.$router.replace({ |
| | | path: this.$route.path, |
| | | query: { ...this.$route.query, selectIndex: String(evt) } |
| | | }).catch(() => {}) |
| | | } |
| | | }, |
| | | onOrdered(evt) { // 下单过后的回调 |
| | | this.clearTimer() |
| | |
| | | if (symbol) { |
| | | next(vm => { |
| | | if (selectIndex) { |
| | | // vm.selectIndex = selectIndex |
| | | if (vm.selectIndex / 1 === 2) { |
| | | vm.selectIndex = Number(selectIndex) |
| | | if (vm.selectIndex === 2) { |
| | | vm.curTab = 'fetchFutrueHoldList' |
| | | } else { |
| | | //vm.curTab = 'fetchOrderListCur' |
| | | vm.curTab = 'fetchOrderListHold' |
| | | } |
| | | } else { |
| | | //vm.curTab = 'fetchOrderListCur' |
| | | vm.curTab = 'fetchOrderListHold' |
| | | } |
| | | vm.symbol = symbol |
| | |
| | | next() |
| | | } |
| | | }, |
| | | beforeRouteUpdate(to, from, next) { |
| | | const selectIndex = to.query.selectIndex |
| | | if (selectIndex !== undefined && selectIndex !== null && selectIndex !== '') { |
| | | const idx = Number(selectIndex) |
| | | if (this.selectIndex !== idx) { |
| | | this.syncContractTab(idx, true) |
| | | } |
| | | } |
| | | if (to.params.symbol && to.params.symbol !== this.symbol) { |
| | | this.onUpdate(to.params.symbol) |
| | | } |
| | | next() |
| | | }, |
| | | deactivated() { |
| | | this.closeSocket() |
| | | this.clearTimer() |
| | |
| | | <div class="text-grey">{{ $t('开仓时间') }}</div> |
| | | <div class="textColor"> |
| | | {{ detail.create_time }} |
| | | (UTC+8) |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="flex justify-between cell-item "> |
| | | <div class="text-grey">{{ $t('平仓时间') }}</div> |
| | | <div class="textColor">{{ detail.close_time ? dayjs(detail.close_time * 1000).format('YYYY-MM-DD HH:mm:ss') |
| | | + '(UTC+8)' |
| | | : '--' }}</div> |
| | | <div class="textColor">{{ formatNYTime(detail.close_time) }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | import { _orderHoldDetail } from "@/service/trade.api"; |
| | | import assetsHead from "@/components/Transform/assets-head/index.vue"; |
| | | import { Popup } from "vant"; |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | name: "orderDetail", |
| | | data() { |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | dayjs, |
| | | formatNYTime(timestamp) { |
| | | if (!timestamp) return '--' |
| | | const parts = new Intl.DateTimeFormat('en-US', { |
| | | timeZone: 'America/New_York', |
| | | year: 'numeric', |
| | | month: '2-digit', |
| | | day: '2-digit', |
| | | hour: '2-digit', |
| | | minute: '2-digit', |
| | | second: '2-digit', |
| | | hour12: false |
| | | }).formatToParts(new Date(timestamp * 1000)) |
| | | const get = (type) => parts.find(p => p.type === type)?.value |
| | | return `${get('year')}-${get('month')}-${get('day')} ${get('hour')}:${get('minute')}:${get('second')}` |
| | | }, |
| | | handleText(state) { |
| | | let str = ''; |
| | | if (state == 'created') { |
| | |
| | | <div class="text-grey">{{ $t('日期') }}</div> |
| | | <div class="textColor"> |
| | | {{ info.create_time }} |
| | | (UTC+8) |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="flex justify-between mb74"> |
| | |
| | | class="font-26 border-solid-grey text-center code-btn rounded-6 textColor"> |
| | | {{ $t('复制地址') }}</div> |
| | | </div> |
| | | <!-- <div> |
| | | <div> |
| | | <div class="font-26 textColor font-28">{{ $t('转出地址(选填)') }}</div> |
| | | <div style="position: relative;" class="mt-26 mb-20 font-28"> |
| | | <input style="padding-right: 80px;" v-model="enterAddress" |
| | |
| | | @click="enterAddress = address"> |
| | | {{ $t('粘贴') }}</div> |
| | | </div> |
| | | </div> --> |
| | | <!-- <div class="mb-20"> |
| | | </div> |
| | | <div class="mb-20"> |
| | | <div class="font-28 textColor">{{ $t('充币数量') }}</div> |
| | | <div> |
| | | <input v-model="amount" class="input-view w-full font-28 textColor inputBackground" |
| | | :placeholder="$t('请输入充币数量')" /> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | <div> |
| | | <div class="font-28 textColor">{{ $t('链名称') }}</div> |
| | | <div class="flex "> |
| | |
| | | item.blockchain_name }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- <div> |
| | | <div> |
| | | <div class="font-28 textColor">{{ $t('付款凭证(上传支付详情截图)') }}</div> |
| | | <div class="img-box"> |
| | | <van-uploader accept="image/*" v-model="fileList" multiple :max-count="1" |
| | | :before-read="beforeRead" :after-read="afterRead" /> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | <div class="hint-box"> |
| | | <div class="pl-30 pr-30"> |
| | | <!-- <div class="font-30 mb-27 textColor">{{ $t('重要提示') }}</div> --> |
| | | <!-- <div class="font-28 text-grey" v-html="tip"></div> --> |
| | | <!-- <button class="btnMain text-white next-btn font-30 rounded-lg" @click="nextBtn">{{ $t('下一步') |
| | | }}</button> --> |
| | | <div class="font-30 mb-27 textColor">{{ $t('重要提示') }}</div> |
| | | <div class="font-28 text-grey" v-html="tip"></div> |
| | | <button class="btnMain text-white next-btn font-30 rounded-lg" @click="nextBtn">{{ $t('下一步') |
| | | }}</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | showToast(this.$t('请输入数字')); |
| | | return; |
| | | } |
| | | if (!this.fileList.length || !this.fileList[0].resURL) { |
| | | showToast(this.$t('uploadImgPay')); |
| | | return; |
| | | } |
| | | if (this.amount) { |
| | | Axios.rechargeApply({ |
| | | session_token: this.session_token, |
| | | amount: this.amount, |
| | | from: this.enterAddress, |
| | | blockchain_name: this.blockchain_name, |
| | | // img: this.fileList[0].resURL, |
| | | img: this.fileList[0].resURL, |
| | | coin: this.coin, |
| | | channel_address: this.address, |
| | | tx: "", |
| | |
| | | |
| | | .hint-box { |
| | | // background-color: $tab_background; |
| | | background-color: $inp-b; |
| | | // background-color: $inp-b; |
| | | padding-top: 35px; |
| | | padding-bottom: 52px; |
| | | } |
| | |
| | | } |
| | | |
| | | .left-chatBg { |
| | | background: $input_background; |
| | | // background: $input_background; |
| | | background: #dddddd; |
| | | border-radius: 10px; |
| | | |
| | | } |
| | | </style> |
| | |
| | | </div> |
| | | |
| | | <!-- 新闻 --> |
| | | <van-notice-bar class="font-26 mt-10 index_notice" background="#333" :scrollable="false" wrapable |
| | | <!-- <van-notice-bar class="font-26 mt-10 index_notice" background="#333" :scrollable="false" wrapable |
| | | color="#333333"> |
| | | <van-swipe vertical class="notice-swipe" :autoplay="2000" :show-indicators="false"> |
| | | <van-swipe-item v-for="item in announceList" :key="item.id" @click="toAnnounceDetail(item.uuid)"> |
| | |
| | | </div> |
| | | </van-swipe-item> |
| | | </van-swipe> |
| | | </van-notice-bar> |
| | | </van-notice-bar> --> |
| | | |
| | | <!-- <div class="flex justify-between mt-10"> |
| | | <van-swipe class="home_swipe_1" :autoplay="2000"> |
| | |
| | | // { key: 1, name: t('跟单'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url) }, |
| | | // { key: 3, name: `C2C ${t('交易')}`, icon: new URL('@/assets/imgs/home/home_3.png', import.meta.url) }, |
| | | // { key: 4, name: t('邀请好友'), icon: new URL('@/assets/imgs/home/home_4.png', import.meta.url) }, |
| | | // { key: 5, name: t('合约'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/trade/index' }, |
| | | // { key: 6, name: t('现货'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/cryptos/trade/btcusdt' }, |
| | | { key: 5, name: t('合约'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/trade/index' }, |
| | | { key: 6, name: t('现货'), icon: new URL('@/assets/imgs/home/home_7.png', import.meta.url), path: '/cryptos/trade/btcusdt' }, |
| | | { key: 2, name: t('recharge'), icon: new URL('@/assets/imgs/home/home_2.png', import.meta.url), path: '/cryptos/recharge/rechargeList?isForeign=true' }, |
| | | // { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/exchange/withdraw-usdt' } |
| | | { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/cryptos/Withdraw/withdrawPage' }, |
| | | // { key: 8, name: t('卡券中心'), icon: new URL('@/assets/imgs/home/home_7.png', import.meta.url) }, |
| | | // { key: 9, name: t('闪兑'), icon: new URL('@/assets/imgs/home/home_8.png', import.meta.url), path: '/cryptos/exchangePage' }, |
| | | { key: 9, name: t('闪兑'), icon: new URL('@/assets/imgs/home/home_8.png', import.meta.url), path: '/cryptos/exchangePage' }, |
| | | { key: 16, name: t('理财'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/cryptos/fund' }, |
| | | // { key: 9, name: t('划转'), icon: new URL('@/assets/imgs/home/home_8.png', import.meta.url), path: '/my/transfer' }, |
| | | // { key: 10, name: t('更多'), icon: new URL('@/assets/imgs/home/home_9.png', import.meta.url) }, |
| | | |
| | |
| | | // { key: 12, name: "C2C", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/wantBuy' }, |
| | | // { key: 13, name: t('质押'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '' }, |
| | | { key: 14, name: t('onLineService'), icon: new URL('@/assets/imgs/home/home_10.png', import.meta.url), path: '/customerService' }, |
| | | { key: 15, name: 'DXCM PDF', icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: 'https://www.dexm-whitepaper.com/' }, |
| | | { key: 15, name: t('矿机'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/cryptos/machine' }, |
| | | ] |
| | | |
| | | // 获取公告数据 |
| | |
| | | </span> |
| | | </div> |
| | | </div> |
| | | <ExInput :label="$t('金融机构代码')" :placeholderText="$t('请输入金融机构识别码')" v-model="invitCode" :clearBtn="false" /> |
| | | <ExInput :label="$t('invitCode')" :placeholderText="$t('entryInvitCode')" v-model="invitCode" :clearBtn="false" /> |
| | | <div class="protocol textColor"> |
| | | <i @click="agreeProt"> |
| | | <img v-show="agree" src="../../assets/image/login/prot2.png" alt="" /> |
| | |
| | | console.log(store) |
| | | let usercode = getStorage('usercode') |
| | | if (usercode) { |
| | | invitCode = usercode; |
| | | invitCode.value = usercode; |
| | | } |
| | | clearInterval(state.timer) |
| | | state.timer = null |
| | |
| | | } |
| | | if (repassword.value !== password.value) { |
| | | showToast(t('noSamePassword')); |
| | | return |
| | | } |
| | | if (invitCode.value.length == '') { |
| | | showToast(t('请输入金融机构代码')); |
| | | return |
| | | } |
| | | if (!agree.value) { |