1
jhzh
9 days ago 606163f470d6b02184c6d552c34a1f850004f83c
1
19 files modified
278 ■■■■■ changed files
src/App.vue 14 ●●●●● patch | view | raw | blame | history
src/components/Transform/cry-nav/index.vue 20 ●●●● patch | view | raw | blame | history
src/components/Transform/deliveryContract/position.vue 17 ●●●●● patch | view | raw | blame | history
src/components/Transform/perpetual-open/index.vue 1 ●●●● patch | view | raw | blame | history
src/components/fx-footer/index.vue 16 ●●●● patch | view | raw | blame | history
src/config/index.js 21 ●●●● patch | view | raw | blame | history
src/router/index.js 6 ●●●● patch | view | raw | blame | history
src/views/C2C/c2c-order-list/Unread.vue 2 ●●● patch | view | raw | blame | history
src/views/C2C/c2c-trade/page/TradeSuccessSell.vue 2 ●●● patch | view | raw | blame | history
src/views/C2C/c2cOrder/payment/components/Question.vue 2 ●●● patch | view | raw | blame | history
src/views/cryptos/AccountChange/index.vue 10 ●●●● patch | view | raw | blame | history
src/views/cryptos/AssetsCenter/index.vue 14 ●●●● patch | view | raw | blame | history
src/views/cryptos/PerpetualContract/index.vue 74 ●●●●● patch | view | raw | blame | history
src/views/cryptos/PerpetualContract/orderDetail.vue 23 ●●●● patch | view | raw | blame | history
src/views/cryptos/Recharge/rechargeDetail.vue 2 ●●● patch | view | raw | blame | history
src/views/cryptos/Recharge/rechargePage.vue 28 ●●●●● patch | view | raw | blame | history
src/views/customerService/index.vue 5 ●●●● patch | view | raw | blame | history
src/views/homePage/index.vue 13 ●●●● patch | view | raw | blame | history
src/views/register/index.vue 8 ●●●● patch | view | raw | blame | history
src/App.vue
@@ -2,7 +2,7 @@
  <div class="pt-5" >
    <router-view />
  </div>
  <fx-footer v-if="route.meta.tarbar" />
  <fx-footer v-if="showTarbar" />
</template>
<script setup>
@@ -10,6 +10,7 @@
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'
@@ -20,6 +21,17 @@
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;
}
src/components/Transform/cry-nav/index.vue
@@ -71,11 +71,11 @@
          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),
@@ -164,11 +164,11 @@
        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),
src/components/Transform/deliveryContract/position.vue
@@ -38,7 +38,7 @@
        </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>
@@ -93,6 +93,21 @@
      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
  }
}
src/components/Transform/perpetual-open/index.vue
@@ -971,6 +971,7 @@
  border: 1px solid #cbcbcb;
  text-align: center;
  border-radius: 10px;
  color: #7f7f7f;
}
.btns_box {
src/components/fx-footer/index.vue
@@ -21,8 +21,8 @@
        </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>
@@ -35,12 +35,12 @@
        </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>
@@ -114,8 +114,8 @@
  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()
@@ -136,8 +136,8 @@
    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'
  }
})
// 底部列表
src/config/index.js
@@ -35,12 +35,12 @@
// 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 = ''
@@ -56,7 +56,7 @@
    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
@@ -69,18 +69,9 @@
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: {
src/router/index.js
@@ -662,7 +662,7 @@
                    path: 'trade/:symbol',
                    name: 'trade',
                    meta: {
                        tarbar: false,
                        tarbar: true,
                        keepAlive: true
                    },
                    component: () => import('@/views/cryptos/Trade/index.vue')
@@ -689,8 +689,8 @@
                    path: 'perpetualContract/:symbol',
                    name: 'perpetualContract',
                    meta: {
                        tarbar: false,
                        keepAlive: true
                        tarbar: true,
                        keepAlive: false
                    },
                    component: () =>
                        import( /* webpackChunkName: "perpetualContract" */ /* webpackPrefetch: true */
src/views/C2C/c2c-order-list/Unread.vue
@@ -56,6 +56,6 @@
}
</script>
<style scoped>
<style lang="scss" scoped>
@import "@/assets/css/copy2.scss";
</style>
src/views/C2C/c2c-trade/page/TradeSuccessSell.vue
@@ -47,7 +47,7 @@
}
</script>
<style scoped>
<style lang="scss" scoped>
@import "@/assets/css/copy2.scss";
</style>
src/views/C2C/c2cOrder/payment/components/Question.vue
@@ -65,7 +65,7 @@
}
</script>
<style scoped>
<style lang="scss" scoped>
@import "@/assets/css/copy2.scss";
.c2cPay-page{
  color: #333;
src/views/cryptos/AccountChange/index.vue
@@ -16,7 +16,7 @@
                  <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>
@@ -59,7 +59,9 @@
      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: "",//选中类型
@@ -114,7 +116,9 @@
        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() {
src/views/cryptos/AssetsCenter/index.vue
@@ -13,12 +13,12 @@
        <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>
@@ -28,7 +28,7 @@
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",
@@ -36,7 +36,7 @@
    AsSets,
    OverView,
    Contract,
    // Financial
    Financial
  },
  data() {
    return {
@@ -57,9 +57,9 @@
          type: this.$t('合约'),
        },
        // {
        //   type: this.$t('理财'),
        // },
        {
          type: this.$t('理财'),
        },
      ]
    }
  },
src/views/cryptos/PerpetualContract/index.vue
@@ -22,7 +22,7 @@
        <span class="time">{{ chartData.market.time_str }}</span>&nbsp;
        <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>
@@ -216,16 +216,13 @@
      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() {
@@ -372,36 +369,42 @@
    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()
@@ -681,15 +684,13 @@
    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
@@ -699,6 +700,19 @@
      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()
src/views/cryptos/PerpetualContract/orderDetail.vue
@@ -51,14 +51,12 @@
          <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>
@@ -69,7 +67,6 @@
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() {
@@ -92,7 +89,21 @@
  },
  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') {
src/views/cryptos/Recharge/rechargeDetail.vue
@@ -55,7 +55,7 @@
                <div class="text-grey">{{ $t('日期') }}</div>
                <div class="textColor">
                    {{ info.create_time }}
                    (UTC+8)
                </div>
            </div>
            <div class="flex justify-between mb74">
src/views/cryptos/Recharge/rechargePage.vue
@@ -21,7 +21,7 @@
                        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"
@@ -30,14 +30,14 @@
                            @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 ">
@@ -47,20 +47,20 @@
                                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>
@@ -236,13 +236,17 @@
                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: "",
@@ -320,7 +324,7 @@
    .hint-box {
        // background-color: $tab_background;
        background-color: $inp-b;
        // background-color: $inp-b;
        padding-top: 35px;
        padding-bottom: 52px;
    }
src/views/customerService/index.vue
@@ -346,6 +346,9 @@
}
.left-chatBg {
  background: $input_background;
  // background: $input_background;
  background: #dddddd;
  border-radius: 10px;
}
</style>
src/views/homePage/index.vue
@@ -32,7 +32,7 @@
        </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)">
@@ -45,7 +45,7 @@
                    </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">
@@ -122,13 +122,14 @@
    // { 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) },
@@ -136,7 +137,7 @@
    // { 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' },
]
// 获取公告数据
src/views/register/index.vue
@@ -43,7 +43,7 @@
                </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="" />
@@ -133,7 +133,7 @@
    console.log(store)
    let usercode = getStorage('usercode')
    if (usercode) {
        invitCode = usercode;
        invitCode.value = usercode;
    }
    clearInterval(state.timer)
    state.timer = null
@@ -254,10 +254,6 @@
    }
    if (repassword.value !== password.value) {
        showToast(t('noSamePassword'));
        return
    }
    if (invitCode.value.length == '') {
        showToast(t('请输入金融机构代码'));
        return
    }
    if (!agree.value) {