1
jhzh
2025-08-12 e88c67ddf91ce593785f565912837c9a3ffe3930
src/router/index.js
@@ -1,835 +1,1586 @@
import { createRouter, createWebHashHistory } from 'vue-router'
import { useUserStore } from "@/store/user.js";
import {
   createRouter,
   createWebHashHistory,
   createWebHistory
} from 'vue-router'
import {
   useUserStore
} from "@/store/user.js";
import {
   onMounted
} from 'vue';
import { authorizedLogin } from "@/service/login.api";
import { GET_USERINFO } from '@/store/types.store'
// 路由规则
const routes = [
  {
    path: '/',
    children: [
      { path: '', redirect: '/homePage' },
      {
        path: '/login',
        name: 'Login',
        component: () => import(/* webpackChunkName: "login" */ /* webpackPrefetch: true */'@/views/login/index.vue'),
      },
      {
        path: '/homePage',
        name: 'Hoem',
        redirect: '/homePage/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/homePage/index.vue') },
        ]
      },
      {
        path: '/optional',
        name: 'optional',
        meta: {
          tarbar: true,
          keepAlive: true
        },
        redirect: '/optional/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/optional/index.vue') },
          { path: 'search', meta: { tarbar: false }, component: () => import('@/views/optional/Search.vue') },
          { path: 'groupListManagement', meta: { tarbar: false }, component: () => import('@/views/optional/GroupListManagement.vue') },
          { path: 'groupEdit', meta: { tarbar: true }, component: () => import('@/views/optional/GroupEditOrAdd.vue') },
          { path: 'groupAdd', meta: { tarbar: false }, component: () => import('@/views/optional/GroupEditOrAdd.vue') },
          { path: 'selectSymbol', meta: { tarbar: false }, component: () => import('@/views/optional/SelectSymbol.vue') },
          { path: 'editGroupList', meta: { tarbar: false }, component: () => import('@/views/optional/EditGroupList.vue') },
          { path: '/order/:symbol', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/charts/order.vue') },
          { path: 'result', component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/charts/result.vue') },
        ]
      },
      {
        path: '/quotes',
        name: 'Quotes',
        meta: {
          tarbar: true,
          keepAlive: true
        },
        redirect: '/quotes/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, name: 'quotesIndex', component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/List.vue') },
          { path: 'detail', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/Detail.vue') },
          { path: 'constituentDetail', meta: { tarbar: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/ConstituentDetail.vue') },
          { path: 'usStockDetail', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/usStock/Detail.vue') },
          { path: 'usStockIndexDetail', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/usStock/IndexDetail.vue') },
          { path: 'hotModules', meta: { tarbar: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/HotModules.vue') },
          { path: 'openTrade', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/OpenTrade.vue') },
          { path: 'usStockOpenTrade', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/usStock/UsStockOpenTrade.vue') },
          { path: 'UsStockMore', meta: { tarbar: false }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/UsStockMore.vue') },
        ]
      },
      {
        path: '/trade',
        name: 'Trade',
        meta: {
          tarbar: true,
          requireAuth: true
        },
        redirect: '/trade/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, name: 'tradeIndex', component: () => import(/* webpackChunkName: "trade" */ /* webpackPrefetch: true */'@/views/trade/index.vue') },
          // { path: 'detail', meta: { tarbar: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/Detail.vue') },
          // { path: 'hotModules', meta: { tarbar: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/HotModules.vue') },
          // { path: 'openTrade', meta: { tarbar: false }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/OpenTrade.vue') },
        ]
      },
      {
        path: '/foreign',
        name: 'Foreign',
        redirect: '/quotes/index?tabActive=2',
        meta: {
          tarbar: false,
        },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'search', meta: { keepAlive: true }, name: 'search', component: () => import('@/views/foreign/Search.vue') },
          { path: 'quotation', name: 'quotation', meta: { keepAlive: true }, component: () => import('@/views/foreign/Quotation.vue') },
          { path: 'coinChart', name: 'coinChart', meta: { keepAlive: true }, component: () => import('@/views/foreign/CoinChart.vue') },
          { path: 'opening', name: 'opening', meta: { keepAlive: true }, component: () => import('@/views/foreign/Open.vue'), props: true },
          { //交割合约
            path: 'deliveryContract/:symbol',
            name: 'deliveryContract',
            component: () => import(/* webpackChunkName: "deliveryContract" */ /* webpackPrefetch: true */'@/views/foreign/foreignPerpetualContract/deliveryContract.vue'),
            meta: { keepAlive: true, tarbar: false, }
          },
          {
            //交割合约历史
            path: 'ForexDeliveryContractHistory',
            name: 'ForexDeliveryContractHistory',
            component: () => import(/* webpackChunkName: "deliveryContractHistory" */ /* webpackPrefetch: true */'@/views/foreign/deliveryContractHistory/index.vue')
          },
        ]
      },
      {
        path: '/position',
        name: 'position',
        redirect: '/position/index',
        meta: {
          tarbar: false,
        },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/position/index.vue') },
        ]
      },
      {
        path: '/history',
        name: 'History',
        component: () => import('@/views/Layout.vue'),
        meta: { tarbar: false },
        redirect: '/history/list',
        children: [
          { path: 'list', meta: { tarbar: false, keepAlive: true, }, component: () => import(/* webpackChunkName: "history" */ /* webpackPrefetch: true */'@/views/history/List.vue') }
        ]
      },
      {
        path: '/news',
        name: 'News',
        redirect: '/news/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/news/index.vue') },
        ]
      },
      {
        path: '/documentation',
        name: 'Dumentation',
        redirect: '/documentation/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/documentation/index.vue') },
        ]
      },
      {
        path: '/chart',
        name: 'Chart',
        redirect: '/chart/index',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'index', meta: { tarbar: true, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/charts/index.vue') },
          { path: '/order/:symbol', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/charts/order.vue') },
          { path: 'result', component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/charts/result.vue') },
        ]
      },
      {
        path: '/exchangeHistory',
        name: 'ExchangeHistory',
        redirect: '/exchangeHistory/dailyDeal',
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'dailyDeal', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/exchangeHistory/DailyDeal.vue') },
          { path: 'dailyEntrust', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/exchangeHistory/DailyEntrust.vue') },
          { path: 'historicalEntrust', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/exchangeHistory/HistoricalEntrust.vue') },
          { path: 'historicalTransaction', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/exchangeHistory/HistoricalTransaction.vue') },
          { path: 'search', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/exchangeHistory/Search.vue') },
          { path: 'tradeRecord', meta: { tarbar: false, keepAlive: true }, component: () => import(/* webpackChunkName: "chart" */ /* webpackPrefetch: true */'@/views/exchangeHistory/tradeRecord.vue') },
        ]
      },
      {
        path: '/exchange',
        name: 'Exchange',
        redirect: '/exchange/list',
        // meta: { tarbar: true },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'list', meta: { tarbar: true, keepAlive: true, requireAuth: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/List.vue') },
          { path: 'channel-in', meta: { keepAlive: true }, name: 'channelIn', component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/Channel.vue') },
          { path: 'channel-out', meta: { keepAlive: true }, name: 'channelOut', component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/Channel.vue') },
          { path: 'charge-bank', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/charge-bank.vue') },
          { path: 'charge-crypto', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/charge-crypto.vue') },
          { path: 'warehouse', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/warehouse.vue') },
          { path: 'withdraw-bank', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/withdraw-bank.vue') }, //银行卡提现
          { path: 'fund-password-verify', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/FundPasswordVerify.vue') }, //资金密码验证
          { path: 'withdraw-usdt', meta: { keepAlive: true }, component: () => import(/* webpackChunkName: "exchange" */ /* webpackPrefetch: true */'@/views/exchange/withdraw-usdt.vue') }, //usdt提现
        ]
      },
      {
        //加密货币
        path: '/cryptos',
        name: 'Cryptos',
        redirect: '/quotes/index?tabActive=1',
        meta: {
          tarbar: false,
        },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'announce', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Announce/index.vue') },
          { path: 'announceDetail', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Announce/announceDetail.vue') },
          { path: 'exchangePage', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Exchange/exchangePage.vue') },
          { path: 'exchangeHistory', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Exchange/exchangeHistory.vue') },
          { path: 'exchangeSubmit', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Exchange/exchangeSubmit.vue') },
          { path: 'exchangeRate', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Exchange/exchangeRate.vue') },
          { path: 'accountChange', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/AccountChange/index.vue') },
          { path: 'funds', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Funds/index.vue') },
          { path: 'assetsCenter', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/AssetsCenter/index.vue') },
          { path: 'trade/:symbol', name: 'trade', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/Trade/index.vue') },
          { path: 'trendDetails/:symbol', name: 'tradeDetail', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/TrendDetails/index.vue') },
          { path: 'tradeRecord/:symbol', name: 'tradeRecord', meta: { tarbar: false, keepAlive: true }, component: () => import('@/views/cryptos/TradeRecord/index.vue') },
          { //永续合约
            path: 'perpetualContract/:symbol',
            name: 'perpetualContract',
            meta: { tarbar: false, keepAlive: true },
            component: () => import(/* webpackChunkName: "perpetualContract" */ /* webpackPrefetch: true */'@/views/cryptos/PerpetualContract/index.vue'),
          },
          { //永续合约(旧)
            path: 'perpetualContractOld/:symbol',
            name: 'perpetualContractOld',
            meta: { tarbar: false, keepAlive: true },
            component: () => import(/* webpackChunkName: "perpetualContractOld" */ /* webpackPrefetch: true */'@/views/cryptos/PerpetualContract/index-old.vue'),
          },
          { //充值列表
            path: 'recharge/rechargeList',
            name: 'rechargeList',
            meta: { tarbar: false, keepAlive: true },
            component: () => import(/* webpackChunkName: "perpetualContract" */ /* webpackPrefetch: true */'@/views/cryptos/Recharge/rechargeList.vue'),
          },
          {
            //充值页面
            path: "recharge/rechargePage",
            name: "rechargePage",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "rechargePage" */ /* webpackPrefetch: true */"@/views/cryptos/Recharge/rechargePage.vue"
              ),
          },
          {
            //充值提交
            path: "recharge/rechargeSubmit",
            name: "rechargeSubmit",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "rechargeSubmit" */ /* webpackPrefetch: true */"@/views/cryptos/Recharge/rechargeSubmit.vue"
              ),
          },
          {
            //充值详情
            path: "recharge/rechargeDetail",
            name: "rechargeDetail",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "rechargeDetail" */ /* webpackPrefetch: true */"@/views/cryptos/Recharge/rechargeDetail.vue"
              ),
          },
          {
            path: "assetsCenter/index",
            name: "Assets",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                    /* webpackChunkName: "Assets" */ /* webpackPrefetch: true */"@/views/cryptos/AssetsCenter/index.vue"
              ),
          },
          {
            //充提记录
            path: "assetsCenter/rechargeWithdrawRecord",
            name: "rechargeWithdrawRecord",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "rechargeWithdrawRecord" */ /* webpackPrefetch: true */"@/views/cryptos/AssetsCenter/rechargeWithdrawRecord.vue"
              ),
          },
          {
            //提现页面
            path: "withdraw/withdrawPage",
            name: "withdrawPage",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "withdrawPage" */ /* webpackPrefetch: true */"@/views/cryptos/Withdraw/withdrawPage.vue"
              ),
          },
          {
            //输入资金密码
            path: "withdraw/securityVerification",
            name: "securityVerification",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "withdrawPage" */ /* webpackPrefetch: true */"@/views/cryptos/Withdraw/withdrawalSecurityVerification.vue"
              ),
          },
          {
            //提交成功
            path: "withdraw/withdrawSumbit",
            name: "withdrawSumbit",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "withdrawPage" */ /* webpackPrefetch: true */"@/views/cryptos/Withdraw/withdrawSumbit.vue"
              ),
          },
          {
            //详情
            path: "withdraw/withdrawDetail",
            name: "withdrawDetail",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "withdrawPage" */ /* webpackPrefetch: true */"@/views/cryptos/Withdraw/withdrawDetail.vue"
              ),
          },
          {
            //充值详情
            path: "recharge/rechargeDetail",
            name: "rechargeDetail",
            meta: { tarbar: false, keepAlive: true },
            component: () =>
              import(
                /* webpackChunkName: "withdrawPage" */ /* webpackPrefetch: true */"@/views/cryptos/Recharge/rechargeDetail.vue"
              ),
          },
          { //U本位历史
            path: 'perpetualHistory',
            name: 'perpetualHistory',
            component: () => import(/* webpackChunkName: "perpetualHistory" */ /* webpackPrefetch: true */'@/views/cryptos/PerpetualContract/perpetualHistory.vue')
          },
          {
            //交割合约历史
            path: 'deliveryContractHistory',
            name: 'DeliveryContractHistory',
            component: () => import(/* webpackChunkName: "DeliveryContractHistory" */ /* webpackPrefetch: true */'@/views/cryptos/DeliveryContractHistory/index.vue')
          },
          { //永续合约订单详情
            path: 'orderDetail',
            name: 'orderDetail',
            component: () => import(/* webpackChunkName: "orderDetail" */ /* webpackPrefetch: true */'@/views/cryptos/PerpetualContract/orderDetail.vue')
          },
          { //永续合约委托详情
            path: 'entrustDetail',
            name: 'entrustDetail',
            component: () => import(/* webpackChunkName: "entrustDetail" */ /* webpackPrefetch: true */'@/views/cryptos/PerpetualContract/entrustDetail.vue')
          },
          { //永续合约订单详情
            path: 'symbolOrderDetail',
            name: 'symbolOrderDetail',
            component: () => import(/* webpackChunkName: "orderDetail" */ /* webpackPrefetch: true */'@/views/cryptos/SymbolOrderDetail/index.vue')
          },
          {
            //理财历史
            path: 'financialHistory',
            name: 'FinancialHistory',
            component: () => import(/* webpackChunkName: "FinancialHistory" */ /* webpackPrefetch: true */'@/views/cryptos/FinancialHistory/index.vue')
          },
const routes = [{
   path: '/',
   children: [{
         path: '',
         redirect: '/homePage'
      },
      {
         path: '/login',
         name: 'Login',
         component: () => import( /* webpackChunkName: "login" */ /* webpackPrefetch: true */
            '@/views/login/index.vue'),
      },
      {
         path: '/homePage',
         name: 'Hoem',
         redirect: '/homePage/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
            path: 'index',
            meta: {
               tarbar: true,
               keepAlive: true
            },
            component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
               '@/views/homePage/index.vue')
         }, ]
      },
      {
         path: '/optional',
         name: 'optional',
         meta: {
            tarbar: true,
            keepAlive: true
         },
         redirect: '/optional/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'index',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/optional/index.vue')
            },
            {
               path: 'search',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/optional/Search.vue')
            },
            {
               path: 'groupListManagement',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/optional/GroupListManagement.vue')
            },
            {
               path: 'groupEdit',
               meta: {
                  tarbar: true
               },
               component: () => import('@/views/optional/GroupEditOrAdd.vue')
            },
            {
               path: 'groupAdd',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/optional/GroupEditOrAdd.vue')
            },
            {
               path: 'selectSymbol',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/optional/SelectSymbol.vue')
            },
            {
               path: 'editGroupList',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/optional/EditGroupList.vue')
            },
            {
               path: '/order/:symbol',
               meta: {
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/charts/order.vue')
            },
            {
               path: 'result',
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/charts/result.vue')
            },
         ]
      },
      {
         path: '/quotes',
         name: 'Quotes',
         meta: {
            tarbar: true,
            keepAlive: true
         },
         redirect: '/quotes/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'index',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               name: 'quotesIndex',
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/quotes/List.vue')
            },
            {
               path: 'detail',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/quotes/Detail.vue')
            },
            {
               path: 'constituentDetail',
               meta: {
                  tarbar: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/quotes/ConstituentDetail.vue')
            },
            {
               path: 'usStockDetail',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/usStock/Detail.vue')
            },
            {
               path: 'usStockIndexDetail',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/usStock/IndexDetail.vue')
            },
            {
               path: 'hotModules',
               meta: {
                  tarbar: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/quotes/HotModules.vue')
            },
            {
               path: 'openTrade',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/quotes/OpenTrade.vue')
            },
            {
               path: 'usStockOpenTrade',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/usStock/UsStockOpenTrade.vue')
            },
            {
               path: 'UsStockMore',
               meta: {
                  tarbar: false
               },
               component: () =>
                  import( /* webpackChunkName: "quotes" */ /* webpackPrefetch: true */
                     '@/views/quotes/UsStockMore.vue')
            },
         ]
      },
      {
         path: '/trade',
         name: 'Trade',
         meta: {
            tarbar: true,
            requireAuth: true
         },
         redirect: '/trade/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'index',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               name: 'tradeIndex',
               component: () => import( /* webpackChunkName: "trade" */ /* webpackPrefetch: true */
                  '@/views/trade/index.vue')
            },
            // { path: 'detail', meta: { tarbar: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/Detail.vue') },
            // { path: 'hotModules', meta: { tarbar: true }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/HotModules.vue') },
            // { path: 'openTrade', meta: { tarbar: false }, component: () => import(/* webpackChunkName: "quotes" */ /* webpackPrefetch: true */'@/views/quotes/OpenTrade.vue') },
         ]
      },
      {
         path: '/foreign',
         name: 'Foreign',
         redirect: '/quotes/index?tabActive=2',
         meta: {
            tarbar: false,
         },
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'search',
               meta: {
                  keepAlive: true
               },
               name: 'search',
               component: () => import('@/views/foreign/Search.vue')
            },
            {
               path: 'quotation',
               name: 'quotation',
               meta: {
                  keepAlive: true
               },
               component: () => import('@/views/foreign/Quotation.vue')
            },
            {
               path: 'coinChart',
               name: 'coinChart',
               meta: {
                  keepAlive: true
               },
               component: () => import('@/views/foreign/CoinChart.vue')
            },
            {
               path: 'opening',
               name: 'opening',
               meta: {
                  keepAlive: true
               },
               component: () => import('@/views/foreign/Open.vue'),
               props: true
            },
            { //交割合约
               path: 'deliveryContract/:symbol',
               name: 'deliveryContract',
               component: () =>
                  import( /* webpackChunkName: "deliveryContract" */ /* webpackPrefetch: true */
                     '@/views/foreign/foreignPerpetualContract/deliveryContract.vue'),
               meta: {
                  keepAlive: true,
                  tarbar: false,
               }
            },
            {
               //交割合约历史
               path: 'ForexDeliveryContractHistory',
               name: 'ForexDeliveryContractHistory',
               component: () =>
                  import( /* webpackChunkName: "deliveryContractHistory" */ /* webpackPrefetch: true */
                     '@/views/foreign/deliveryContractHistory/index.vue')
            },
         ]
      },
      {
         path: '/position',
         name: 'position',
         redirect: '/position/index',
         meta: {
            tarbar: false,
         },
         component: () => import('@/views/Layout.vue'),
         children: [{
            path: 'index',
            meta: {
               tarbar: false,
               keepAlive: true
            },
            component: () => import('@/views/position/index.vue')
         }, ]
      },
      {
         path: '/history',
         name: 'History',
         component: () => import('@/views/Layout.vue'),
         meta: {
            tarbar: false
         },
         redirect: '/history/list',
         children: [{
            path: 'list',
            meta: {
               tarbar: false,
               keepAlive: true,
            },
            component: () =>
               import( /* webpackChunkName: "history" */ /* webpackPrefetch: true */
                  '@/views/history/List.vue')
         }]
      },
      {
         path: '/news',
         name: 'News',
         redirect: '/news/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
            path: 'index',
            meta: {
               tarbar: true,
               keepAlive: true
            },
            component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
               '@/views/news/index.vue')
         }, ]
      },
      {
         path: '/documentation',
         name: 'Dumentation',
         redirect: '/documentation/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
            path: 'index',
            meta: {
               tarbar: true,
               keepAlive: true
            },
            component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
               '@/views/documentation/index.vue')
         }, ]
      },
      {
         path: '/chart',
         name: 'Chart',
         redirect: '/chart/index',
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'index',
               meta: {
                  tarbar: true,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/charts/index.vue')
            },
            {
               path: '/order/:symbol',
               meta: {
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/charts/order.vue')
            },
            {
               path: 'result',
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/charts/result.vue')
            },
         ]
      },
      {
         path: '/exchangeHistory',
         name: 'ExchangeHistory',
         redirect: '/exchangeHistory/dailyDeal',
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'dailyDeal',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/exchangeHistory/DailyDeal.vue')
            },
            {
               path: 'dailyEntrust',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/exchangeHistory/DailyEntrust.vue')
            },
            {
               path: 'historicalEntrust',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/exchangeHistory/HistoricalEntrust.vue')
            },
            {
               path: 'historicalTransaction',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/exchangeHistory/HistoricalTransaction.vue')
            },
            {
               path: 'search',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/exchangeHistory/Search.vue')
            },
            {
               path: 'tradeRecord',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import( /* webpackChunkName: "chart" */ /* webpackPrefetch: true */
                  '@/views/exchangeHistory/tradeRecord.vue')
            },
         ]
      },
      {
         path: '/exchange',
         name: 'Exchange',
         redirect: '/exchange/list',
         // meta: { tarbar: true },
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'list',
               meta: {
                  tarbar: true,
                  keepAlive: true,
                  requireAuth: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/List.vue')
            },
            {
               path: 'channel-in',
               meta: {
                  keepAlive: true
               },
               name: 'channelIn',
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/Channel.vue')
            },
            {
               path: 'channel-out',
               meta: {
                  keepAlive: true
               },
               name: 'channelOut',
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/Channel.vue')
            },
            {
               path: 'charge-bank',
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/charge-bank.vue')
            },
            {
               path: 'charge-crypto',
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/charge-crypto.vue')
            },
            {
               path: 'warehouse',
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/warehouse.vue')
            },
            {
               path: 'withdraw-bank',
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/withdraw-bank.vue')
            }, //银行卡提现
            {
               path: 'fund-password-verify',
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/FundPasswordVerify.vue')
            }, //资金密码验证
            {
               path: 'withdraw-usdt',
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "exchange" */ /* webpackPrefetch: true */
                     '@/views/exchange/withdraw-usdt.vue')
            }, //usdt提现
         ]
      },
      {
         //加密货币
         path: '/cryptos',
         name: 'Cryptos',
         redirect: '/quotes/index?tabActive=1',
         meta: {
            tarbar: false,
         },
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'announce',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Announce/index.vue')
            },
            {
               path: 'announceDetail',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Announce/announceDetail.vue')
            },
            {
               path: 'exchangePage',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Exchange/exchangePage.vue')
            },
            {
               path: 'exchangeHistory',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Exchange/exchangeHistory.vue')
            },
            {
               path: 'exchangeSubmit',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Exchange/exchangeSubmit.vue')
            },
            {
               path: 'exchangeRate',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Exchange/exchangeRate.vue')
            },
            {
               path: 'accountChange',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/AccountChange/index.vue')
            },
            {
               path: 'funds',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Funds/index.vue')
            },
            {
               path: 'assetsCenter',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/AssetsCenter/index.vue')
            },
            {
               path: 'trade/:symbol',
               name: 'trade',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/Trade/index.vue')
            },
            {
               path: 'trendDetails/:symbol',
               name: 'tradeDetail',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/TrendDetails/index.vue')
            },
            {
               path: 'tradeRecord/:symbol',
               name: 'tradeRecord',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () => import('@/views/cryptos/TradeRecord/index.vue')
            },
            { //永续合约
               path: 'perpetualContract/:symbol',
               name: 'perpetualContract',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "perpetualContract" */ /* webpackPrefetch: true */
                     '@/views/cryptos/PerpetualContract/index.vue'),
            },
            { //永续合约(旧)
               path: 'perpetualContractOld/:symbol',
               name: 'perpetualContractOld',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "perpetualContractOld" */ /* webpackPrefetch: true */
                     '@/views/cryptos/PerpetualContract/index-old.vue'),
            },
            { //充值列表
               path: 'recharge/rechargeList',
               name: 'rechargeList',
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "perpetualContract" */ /* webpackPrefetch: true */
                     '@/views/cryptos/Recharge/rechargeList.vue'),
            },
            {
               //充值页面
               path: "recharge/rechargePage",
               name: "rechargePage",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "rechargePage" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Recharge/rechargePage.vue"
                  ),
            },
            {
               //充值提交
               path: "recharge/rechargeSubmit",
               name: "rechargeSubmit",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "rechargeSubmit" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Recharge/rechargeSubmit.vue"
                  ),
            },
            {
               //充值详情
               path: "recharge/rechargeDetail",
               name: "rechargeDetail",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "rechargeDetail" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Recharge/rechargeDetail.vue"
                  ),
            },
            {
               path: "assetsCenter/index",
               name: "Assets",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "Assets" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/AssetsCenter/index.vue"
                  ),
            },
            {
               //充提记录
               path: "assetsCenter/rechargeWithdrawRecord",
               name: "rechargeWithdrawRecord",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "rechargeWithdrawRecord" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/AssetsCenter/rechargeWithdrawRecord.vue"
                  ),
            },
            {
               //提现页面
               path: "withdraw/withdrawPage",
               name: "withdrawPage",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "withdrawPage" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Withdraw/withdrawPage.vue"
                  ),
            },
            {
               //输入资金密码
               path: "withdraw/securityVerification",
               name: "securityVerification",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "withdrawPage" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Withdraw/withdrawalSecurityVerification.vue"
                  ),
            },
            {
               //提交成功
               path: "withdraw/withdrawSumbit",
               name: "withdrawSumbit",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "withdrawPage" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Withdraw/withdrawSumbit.vue"
                  ),
            },
            {
               //详情
               path: "withdraw/withdrawDetail",
               name: "withdrawDetail",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "withdrawPage" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Withdraw/withdrawDetail.vue"
                  ),
            },
            {
               //充值详情
               path: "recharge/rechargeDetail",
               name: "rechargeDetail",
               meta: {
                  tarbar: false,
                  keepAlive: true
               },
               component: () =>
                  import(
                     /* webpackChunkName: "withdrawPage" */
                     /* webpackPrefetch: true */
                     "@/views/cryptos/Recharge/rechargeDetail.vue"
                  ),
            },
            { //U本位历史
               path: 'perpetualHistory',
               name: 'perpetualHistory',
               component: () =>
                  import( /* webpackChunkName: "perpetualHistory" */ /* webpackPrefetch: true */
                     '@/views/cryptos/PerpetualContract/perpetualHistory.vue')
            },
            {
               //交割合约历史
               path: 'deliveryContractHistory',
               name: 'DeliveryContractHistory',
               component: () =>
                  import( /* webpackChunkName: "DeliveryContractHistory" */ /* webpackPrefetch: true */
                     '@/views/cryptos/DeliveryContractHistory/index.vue')
            },
            { //永续合约订单详情
               path: 'orderDetail',
               name: 'orderDetail',
               component: () =>
                  import( /* webpackChunkName: "orderDetail" */ /* webpackPrefetch: true */
                     '@/views/cryptos/PerpetualContract/orderDetail.vue')
            },
            { //永续合约委托详情
               path: 'entrustDetail',
               name: 'entrustDetail',
               component: () =>
                  import( /* webpackChunkName: "entrustDetail" */ /* webpackPrefetch: true */
                     '@/views/cryptos/PerpetualContract/entrustDetail.vue')
            },
            { //永续合约订单详情
               path: 'symbolOrderDetail',
               name: 'symbolOrderDetail',
               component: () =>
                  import( /* webpackChunkName: "orderDetail" */ /* webpackPrefetch: true */
                     '@/views/cryptos/SymbolOrderDetail/index.vue')
            },
            {
               //理财历史
               path: 'financialHistory',
               name: 'FinancialHistory',
               component: () =>
                  import( /* webpackChunkName: "FinancialHistory" */ /* webpackPrefetch: true */
                     '@/views/cryptos/FinancialHistory/index.vue')
            },
          {
            //货币理财盈亏订单详情
            path: "profitLoss",
            name: "profitLoss",
            component: () => import(/* webpackChunkName: "profitLoss" */ /* webpackPrefetch: true */"@/views/cryptos/order/CurrencyOrder/profitLoss.vue")
          },
          {
            //理财订单详情
            path: "financialOrder",
            name: "FinancialOrder",
            component: () => import(/* webpackChunkName: "FinancialOrder" */ /* webpackPrefetch: true */"@/views/cryptos/order/FinancialOrder/index.vue")
          },
          {
            //矿机订单详情
            path: "miningMachineOrder",
            name: "MiningMachineOrder",
            component: () => import(/* webpackChunkName: "MiningMachineOrder" */ /* webpackPrefetch: true */"@/views/cryptos/order/MiningMachineOrder/index.vue")
          },
          {
            //矿机理财购买确认
            path: "machine-confirm",
            name: "MachineConfirm",
            component: () => import(/* webpackChunkName: "MachineConfirm" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/machineConfirm.vue")
          },
          {
            //基金理财购买确认
            path: "financial-confirm",
            name: "FinancialConfirm",
            component: () => import(/* webpackChunkName: "FinancialConfirm" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/FinancialManagementConfirm.vue")
          },
          {
            path: "fund-buy",
            name: "FundBuy",
            component: () =>
              import(/* webpackChunkName: "FundBuy" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/fundBuy.vue"),
          },
          {
            path: "fund",
            name: "Fund",
            meta: { keepAlive: true },
            component: () =>
              import(/* webpackChunkName: "Home" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/fundHome.vue"),
          },
          {
            path: "fund-rule",
            name: "Fundrule",
            meta: { keepAlive: true },
            component: () =>
              import(/* webpackChunkName: "Fundrule" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/fundRule.vue"),
          },
          {
            path: "fm-home",
            name: "financialManagement",
            meta: { keepAlive: true },
            component: () =>
              import(/* webpackChunkName: "financialManagement" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/index.vue"),
          },
          {
            path: "machine-buy",
            name: "MachineBuy",
            component: () =>
              import(/* webpackChunkName: "MachineBuy" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/machineBuy.vue"),
          },
          {
            path: "machine-rule",
            name: "Machinerule",
            meta: { keepAlive: true },
            component: () =>
              import(/* webpackChunkName: "Machinerule" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/machineRule.vue"),
          },
          {
            path: "machine",
            name: "Machine",
            meta: { keepAlive: true },
            component: () =>
              import(/* webpackChunkName: "Home" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/miningMachineHome.vue"),
          },
            {
               //货币理财盈亏订单详情
               path: "profitLoss",
               name: "profitLoss",
               component: () =>
                  import( /* webpackChunkName: "profitLoss" */ /* webpackPrefetch: true */
                     "@/views/cryptos/order/CurrencyOrder/profitLoss.vue")
            },
            {
               //理财订单详情
               path: "financialOrder",
               name: "FinancialOrder",
               component: () =>
                  import( /* webpackChunkName: "FinancialOrder" */ /* webpackPrefetch: true */
                     "@/views/cryptos/order/FinancialOrder/index.vue")
            },
            {
               //矿机订单详情
               path: "miningMachineOrder",
               name: "MiningMachineOrder",
               component: () =>
                  import( /* webpackChunkName: "MiningMachineOrder" */ /* webpackPrefetch: true */
                     "@/views/cryptos/order/MiningMachineOrder/index.vue")
            },
            {
               //矿机理财购买确认
               path: "machine-confirm",
               name: "MachineConfirm",
               component: () =>
                  import( /* webpackChunkName: "MachineConfirm" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/machineConfirm.vue")
            },
            {
               //基金理财购买确认
               path: "financial-confirm",
               name: "FinancialConfirm",
               component: () =>
                  import( /* webpackChunkName: "FinancialConfirm" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/FinancialManagementConfirm.vue")
            },
            {
               path: "fund-buy",
               name: "FundBuy",
               component: () =>
                  import( /* webpackChunkName: "FundBuy" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/fundBuy.vue"),
            },
            {
               path: "fund",
               name: "Fund",
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "Home" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/fundHome.vue"),
            },
            {
               path: "fund-rule",
               name: "Fundrule",
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "Fundrule" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/fundRule.vue"),
            },
            {
               path: "fm-home",
               name: "financialManagement",
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "financialManagement" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/index.vue"),
            },
            {
               path: "machine-buy",
               name: "MachineBuy",
               component: () =>
                  import( /* webpackChunkName: "MachineBuy" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/machineBuy.vue"),
            },
            {
               path: "machine-rule",
               name: "Machinerule",
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "Machinerule" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/machineRule.vue"),
            },
            {
               path: "machine",
               name: "Machine",
               meta: {
                  keepAlive: true
               },
               component: () =>
                  import( /* webpackChunkName: "Home" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/miningMachineHome.vue"),
            },
          {//
            path: 'order-success',
            name: 'orderSuccess',
            component: () =>
              import(/* webpackChunkName: "orderSuccess" */ /* webpackPrefetch: true */'@/views/cryptos/financialManagement/orderSuccess.vue')
          },
          {
            path: "pool-lock",
            name: "PooLock",
            component: () =>
              import(/* webpackChunkName: "PooLock" */ /* webpackPrefetch: true */"@/views/cryptos/financialManagement/poolLock.vue"),
          },
          {//质押借币
            path: 'pledgeLoan',
            name: 'PledgeLoan',
            component: () => import(/* webpackChunkName: "Home" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/index.vue')
          },
          {//质押订单
            path: 'pledgeLoanOrder',
            name: 'pledgeLoanOrder',
            component: () => import(/* webpackChunkName: "pledgeLoanOrder" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/pledgeLoanOrder.vue')
          },
          {//质押订单详情
            path: 'pledgeLoanOrderDetail',
            name: 'PledgeLoanOrderDetail',
            component: () => import(/* webpackChunkName: "PledgeLoanOrderDetail" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/pledgeLoanOrderDetail.vue')
          },
          {//新增质押
            path: 'addPledge',
            name: 'AddPledge',
            component: () => import(/* webpackChunkName: "AddPledge" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/addPledge.vue')
          },
          {//续借
            path: 'pledgeLoanRenew',
            name: 'PledgeLoanRenew',
            component: () => import(/* webpackChunkName: "PledgeLoanRenew" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/pledgeLoanRenew.vue')
          },
          {//质押记录
            path: 'pledgeRecord',
            name: 'PledgeRecord',
            component: () => import(/* webpackChunkName: "PledgeRecord" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/pledgeRecord.vue')
          },
          {//还款
            path: 'repayment',
            name: 'Repayment',
            component: () => import(/* webpackChunkName: "Repayment" */ /* webpackPrefetch: true */'@/views/cryptos/pledgeLoan/repayment.vue')
          },
          {//
            path: 'loan',
            name: 'loan',
            component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/views/cryptos/loan/index.vue")
          },
          {//
            path: 'loanHistory',
            name: 'loanHistory',
            component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/views/cryptos/loan/loanHistory.vue")
          },
          {//
            path: 'loanRule',
            name: 'loanRule',
            component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/views/cryptos/loan/loanRule.vue")
          },
          // {//c2c自选区我要买
          //   path: '/wantBuy',
          //   name: 'WantBuy',
          //   component: () => import(/* webpackChunkName: "Home" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/wantBuy/index'),
          // },
          // {//广告筛选
          //   path: '/wantBuy/adScreening',
          //   name: 'adScreening',
          //   component: () => import(/* webpackChunkName: "adScreening" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/adScreening'),
          // },
          // {//c2c购买
          //   path: '/wantBuy/c2cBuy',
          //   name: 'c2cBuy',
          //   component: () => import(/* webpackChunkName: "c2cBuy" */ /* webpackPrefetch: true */'@/page/c2c-trade/page/c2cBuy'),
          // },
          // {// c2c买卖交易
          //   path: '/c2cTrade',
          //   name: 'c2cTrade',
          //   props(route) {
          //     return {
          //       ...route.query,
          //     }
          //   },
          //   component: () => import(/* webpackChunkName: "c2cTrade" */ /* webpackPrefetch: true */'@/page/c2c-trade'),
          // },
          // {// c2c订单列表
          //   path: '/wantBuy/c2cOrderList',
          //   name: 'c2cOrderList',
          //   component: () => import(/* webpackChunkName: "c2cOrderList" */ /* webpackPrefetch: true */"@/page/c2c-order-list"),
          //   props(route) {
          //     return {
          //       ...route.query
          //     }
          //   }
          // },
          // {// c2c订单详情
          //   path: '/tradeOrderDetail',
          //   name: 'tradeOrderDetail',
          //   component: () => import(/* webpackChunkName: "tradeOrderDetail" */ /* webpackPrefetch: true */"@/page/c2c-trade/page/tradeOrderDetail"),
          // },
          // {// 快捷区
          //   path: '/wantBuy/quick',
          //   name: 'quick',
          //   component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/page/quick")
          // },
          // {// 选择法币
          //   path: '/selectLegalCurrency',
          //   name: 'selectLegalCurrency',
          //   component: () => import(/* webpackChunkName: "selectLegalCurrency" */ /* webpackPrefetch: true */'@/page/selectLegalCurrency/index'),
          // },
          // {// 收款方式
          //   path: "/paymentMethod",
          //   name: 'paymentMethod',
          //   component: () => import(/* webpackChunkName: "paymentMethod" */ /* webpackPrefetch: true */"@/page/placeAnOrder/page/payment-method/PaymentMethod")
          // },
          //  {// 银行卡详情
          //   path: '/wantBuy/bankCard',
          //   name: 'bankCardDetail',
          //   component: () =>
          //     import(/* webpackChunkName: "bankCarDetail" */ /* webpackPrefetch: true */'@/page/placeAnOrder/components/bankCardDetail/index'),
          //   props(route) {
          //     return {
          //       ...route.query
          //     }
          //   }
          // },
          // {// 添加收款方式
          //   path: '/wantBuy/addPaymentMethod',
          //   name: 'addPaymentMethod',
          //   component: () =>
          //     import(/* webpackChunkName: "addPaymentMethod" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/addPaymentMethod/AddPaymentMethod'),
          // },
        ]
      },
      {
        path: '/my',
        name: 'My',
        redirect: '/my/index',
        component: () => import('@/views/Layout.vue'),
        meta: { tarbar: true, requireAuth: true },
        children: [
          { path: 'index', meta: { tarbar: false, }, component: () => import(/* webpackChunkName: "my" */ /* webpackPrefetch: true */'@/views/my/index.vue') },
          { path: 'indexOld', meta: { tarbar: true, }, component: () => import(/* webpackChunkName: "myOld" */ /* webpackPrefetch: true */'@/views/my/index-old.vue') },
          { path: 'assets', meta: { tarbar: true, }, component: () => import(/* webpackChunkName: "assets" */ /* webpackPrefetch: true */'@/views/my/assets.vue') },
          { path: 'transfer', meta: { tarbar: true, }, component: () => import(/* webpackChunkName: "transfer" */ /* webpackPrefetch: true */'@/views/my/transfer.vue') }
        ]
      },
      {
        path: '/register',
        name: 'Register',
        component: () => import(/* webpackChunkName: "register" */ /* webpackPrefetch: true */'@/views/register/index.vue'),
        // meta: { tarbar: true },
      },
      { //验证码
        path: '/verify',
        name: 'verify',
        component: () => import(/* webpackChunkName: "verify" */ /* webpackPrefetch: true */'@/views/register/verify.vue')
      },
      { //设置资金密码
        path: '/setFond',
        name: 'setFond',
        component: () => import(/* webpackChunkName: "setFond" */ /* webpackPrefetch: true */'@/views/register/setFond.vue')
      },
      { //注册身份认证
        path: '/identity',
        name: 'identity',
        component: () => import(/* webpackChunkName: "identity" */ /* webpackPrefetch: true */'@/views/register/identity.vue')
      },
      { //谷歌验证
        path: '/gooleVerify',
        name: 'gooleVerify',
        component: () => import(/* webpackChunkName: "gooleVerify" */ /* webpackPrefetch: true */'@/views/register/gooleVerify.vue')
      },
      { //注册完成
        path: '/finish',
        name: 'finish',
        component: () => import(/* webpackChunkName: "finish" */ /* webpackPrefetch: true */'@/views/register/finish.vue')
      },
      {   //语言设置
        path: '/language',
        name: 'language',
        component: () => import(/* webpackChunkName: "language" */ /* webpackPrefetch: true */'@/views/language/index.vue')
      },
      { //客服
        path: '/customerService',
        name: 'customerService',
        component: () => import(/* webpackChunkName: "customerService" */ /* webpackPrefetch: true */'@/views/customerService/index.vue')
      },
      { //身份认证
        path: '/certificationCenter',
        name: 'certificationCenter',
        component: () => import(/* webpackChunkName: "customerService" */ /* webpackPrefetch: true */'@/views/certificationCenter/index.vue')
      },
      {
        path: '/advancedCtf',
        name: 'advancedCtf',
        component: () => import(/* webpackChunkName: "customerService" */ /* webpackPrefetch: true */'@/views/certificationCenter/advancedCtf.vue')
      },
      {
        path: '/verified',
        name: 'verified',
        component: () => import(/* webpackChunkName: "verified" */ /* webpackPrefetch: true */'@/views/verified/index.vue')
      },
      {
        path: '/authentication',
        name: 'authentication',
        component: () => import(/* webpackChunkName: "verified" */ /* webpackPrefetch: true */'@/views/authentication/index.vue')
      },
      {//修改登录密码
        path: '/changePassword',
        name: 'changePassword',
        component: () => import(/* webpackChunkName: "changePassword" */ /* webpackPrefetch: true */'@/views/changePassword/index.vue')
      },
      {//修改资金密码
        path: '/changeFundsPassword',
        name: 'changeFundsPassword',
        component: () => import(/* webpackChunkName: "changeFundsPassword" */ /* webpackPrefetch: true */'@/views/changeFundsPassword/index.vue')
      },
      {//绑定验证
        path: '/bindVerify',
        name: 'bindVerify',
        component: () => import(/* webpackChunkName: "bindVerify" */ /* webpackPrefetch: true */'@/views/bindVerify/index.vue')
      },
      {//重置绑定
        path: '/resetVerify',
        name: 'resetVerify',
        component: () => import(/* webpackChunkName: "resetVerify" */ /* webpackPrefetch: true */'@/views/resetVerify/index.vue')
      },
      {//安全中心
        path: '/safety',
        name: 'safety',
        component: () => import(/* webpackChunkName: "safety" */ /* webpackPrefetch: true */'@/views/safety/index.vue')
      },
      {//更换绑定
        path: '/changeVerify',
        name: 'changeVerify',
        component: () => import(/* webpackChunkName: "changeVerify" */ /* webpackPrefetch: true */'@/views/safety/changeVerify.vue')
      },
      {
        //服务条款
        path: '/TermsOfService',
        name: 'TermsOfService',
        component: () => import(/* webpackChunkName: "termsOfService" */ /* webpackPrefetch: true */'@/views/termsOfService/index.vue')
      },
      {//
        path: '/resetSuccess',
        name: 'resetSuccess',
        component: () => import(/* webpackChunkName: "resetSuccess" */ /* webpackPrefetch: true */'@/views/resetVerify/resetSuccess.vue')
      },
      {//忘记密码
        path: '/forget',
        name: 'forget',
        component: () => import(/* webpackChunkName: "forget" */ /* webpackPrefetch: true */'@/views/forget/index.vue')
      },
      {//重置登录密码
        path: '/resetPassword',
        name: 'resetPassword',
        component: () => import(/* webpackChunkName: "resetPassword" */ /* webpackPrefetch: true */'@/views/forget/resetPassword.vue')
      },
      {//忘记密码修改成功
        path: '/passSuccess',
        name: 'passSuccess',
        component: () => import(/* webpackChunkName: "passSuccess" */ /* webpackPrefetch: true */'@/views/forget/passSuccess.vue')
      },
      {//安全验证
        path: '/safeVerify',
        name: 'safeVerify',
        component: () => import(/* webpackChunkName: "safeVerify" */ /* webpackPrefetch: true */'@/views/forget/safeVerify.vue')
      },
      {
        path: '/:pathMatch(.*)*',
        name: '404',
        component: () => import('@/views/404.vue')
      },
      {
        path: '/order',
        name: 'order',
        // meta: { tarbar: true },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'submit', meta: {}, component: () => import('@/views/order/order-submit.vue') },
          { path: 'success', component: () => import('@/views/order/success.vue') }, //成功
          { path: 'apply-success', component: () => import('@/views/order/apply-success.vue') }, //申请成功
        ]
      },
      {
        path: '/Record',
        name: 'Record',
        // meta: { tarbar: true },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'DepositAndWithdrawal', meta: { tarbar: false }, component: () => import('@/views/Record/DepositAndWithdrawal.vue') },
          { path: 'RecordDetails', meta: { tarbar: false }, component: () => import('@/views/Record/RecordDetails.vue') }
        ], //充值和提现记录
      },
      {
        path: '/payMentMethod',
        name: 'payMentMethod',
        // meta: { tarbar: true },
        component: () => import('@/views/Layout.vue'),
        children: [
          { path: 'list', meta: { tarbar: false }, component: () => import('@/views/payMentMethod/list.vue') },
          { path: 'add', meta: { tarbar: false }, component: () => import('@/views/payMentMethod/add.vue') },
          { path: 'selectPay', meta: { tarbar: false }, component: () => import('@/views/payMentMethod/selectPay.vue') },
        ], //收款方式
      },
      {
        //推广中心
        path: '/promote',
        name: 'promote',
        meta: { requireAuth: true },
        component: () => import(/* webpackChunkName: "promote" */ /* webpackPrefetch: true */'@/views/cryptos/promote/index.vue')
      },
      {
        //推广规则
        path: '/promote/rules',
        name: 'promoteRules',
        meta: { keepAlive: true },
        component: () => import(/* webpackChunkName: "promoteRules" */ /* webpackPrefetch: true */'@/views/cryptos/promote/Rules.vue')
      },
      {
        //分享二维码
        path: '/ShareQRCode',
        name: 'ShareQRCode',
        meta: { keepAlive: true },
        component: () => import(/* webpackChunkName: "ShareQRCode" */ /* webpackPrefetch: true */'@/views/cryptos/promote/ShareQRCode.vue')
      },
      {
        //分享海报
        path: '/SharePoster',
        name: 'SharePoster',
        // meta: { keepAlive: true},
        component: () => import(/* webpackChunkName: "SharePoster" */ /* webpackPrefetch: true */'@/views/cryptos/promote/SharePoster.vue')
      },
      {
        //帮助中心
        path: '/helpCenter',
        name: 'helpCenter',
        meta: { keepAlive: true },
        component: () => import(/* webpackChunkName: "promoteRules" */ /* webpackPrefetch: true */'@/views/cryptos/HelpCenter/index.vue')
      },
      {
        //帮助中心详情
        path: '/helpDetail',
        name: 'helpDetail',
        meta: { keepAlive: true },
        component: () => import(/* webpackChunkName: "promoteRules" */ /* webpackPrefetch: true */'@/views/cryptos/HelpCenter/detail.vue')
      },
      {
        //关于我们
        path: '/aboutUs',
        name: 'aboutUs',
        meta: { keepAlive: true },
        component: () => import(/* webpackChunkName: "ShareQRCode" */ /* webpackPrefetch: true */'@/views/cryptos/AboutUs/index.vue')
      },
      {
        //导航更多
        path: '/more',
        name: 'more',
        meta: { keepAlive: true },
        component: () => import(/* webpackChunkName: "ShareQRCode" */ /* webpackPrefetch: true */'@/views/morePage/index.vue')
      },
    ]
  }
]
            { //
               path: 'order-success',
               name: 'orderSuccess',
               component: () =>
                  import( /* webpackChunkName: "orderSuccess" */ /* webpackPrefetch: true */
                     '@/views/cryptos/financialManagement/orderSuccess.vue')
            },
            {
               path: "pool-lock",
               name: "PooLock",
               component: () =>
                  import( /* webpackChunkName: "PooLock" */ /* webpackPrefetch: true */
                     "@/views/cryptos/financialManagement/poolLock.vue"),
            },
            { //质押借币
               path: 'pledgeLoan',
               name: 'PledgeLoan',
               component: () => import( /* webpackChunkName: "Home" */ /* webpackPrefetch: true */
                  '@/views/cryptos/pledgeLoan/index.vue')
            },
            { //质押订单
               path: 'pledgeLoanOrder',
               name: 'pledgeLoanOrder',
               component: () =>
                  import( /* webpackChunkName: "pledgeLoanOrder" */ /* webpackPrefetch: true */
                     '@/views/cryptos/pledgeLoan/pledgeLoanOrder.vue')
            },
            { //质押订单详情
               path: 'pledgeLoanOrderDetail',
               name: 'PledgeLoanOrderDetail',
               component: () =>
                  import( /* webpackChunkName: "PledgeLoanOrderDetail" */ /* webpackPrefetch: true */
                     '@/views/cryptos/pledgeLoan/pledgeLoanOrderDetail.vue')
            },
            { //新增质押
               path: 'addPledge',
               name: 'AddPledge',
               component: () =>
                  import( /* webpackChunkName: "AddPledge" */ /* webpackPrefetch: true */
                     '@/views/cryptos/pledgeLoan/addPledge.vue')
            },
            { //续借
               path: 'pledgeLoanRenew',
               name: 'PledgeLoanRenew',
               component: () =>
                  import( /* webpackChunkName: "PledgeLoanRenew" */ /* webpackPrefetch: true */
                     '@/views/cryptos/pledgeLoan/pledgeLoanRenew.vue')
            },
            { //质押记录
               path: 'pledgeRecord',
               name: 'PledgeRecord',
               component: () =>
                  import( /* webpackChunkName: "PledgeRecord" */ /* webpackPrefetch: true */
                     '@/views/cryptos/pledgeLoan/pledgeRecord.vue')
            },
            { //还款
               path: 'repayment',
               name: 'Repayment',
               component: () =>
                  import( /* webpackChunkName: "Repayment" */ /* webpackPrefetch: true */
                     '@/views/cryptos/pledgeLoan/repayment.vue')
            },
            { //
               path: 'loan',
               name: 'loan',
               component: () => import( /* webpackChunkName: "quick" */ /* webpackPrefetch: true */
                  "@/views/cryptos/loan/index.vue")
            },
            { //
               path: 'loanHistory',
               name: 'loanHistory',
               component: () => import( /* webpackChunkName: "quick" */ /* webpackPrefetch: true */
                  "@/views/cryptos/loan/loanHistory.vue")
            },
            { //
               path: 'loanRule',
               name: 'loanRule',
               component: () => import( /* webpackChunkName: "quick" */ /* webpackPrefetch: true */
                  "@/views/cryptos/loan/loanRule.vue")
            },
            // {//c2c自选区我要买
            //   path: '/wantBuy',
            //   name: 'WantBuy',
            //   component: () => import(/* webpackChunkName: "Home" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/wantBuy/index'),
            // },
            // {//广告筛选
            //   path: '/wantBuy/adScreening',
            //   name: 'adScreening',
            //   component: () => import(/* webpackChunkName: "adScreening" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/adScreening'),
            // },
            // {//c2c购买
            //   path: '/wantBuy/c2cBuy',
            //   name: 'c2cBuy',
            //   component: () => import(/* webpackChunkName: "c2cBuy" */ /* webpackPrefetch: true */'@/page/c2c-trade/page/c2cBuy'),
            // },
            // {// c2c买卖交易
            //   path: '/c2cTrade',
            //   name: 'c2cTrade',
            //   props(route) {
            //     return {
            //       ...route.query,
            //     }
            //   },
            //   component: () => import(/* webpackChunkName: "c2cTrade" */ /* webpackPrefetch: true */'@/page/c2c-trade'),
            // },
            // {// c2c订单列表
            //   path: '/wantBuy/c2cOrderList',
            //   name: 'c2cOrderList',
            //   component: () => import(/* webpackChunkName: "c2cOrderList" */ /* webpackPrefetch: true */"@/page/c2c-order-list"),
            //   props(route) {
            //     return {
            //       ...route.query
            //     }
            //   }
            // },
            // {// c2c订单详情
            //   path: '/tradeOrderDetail',
            //   name: 'tradeOrderDetail',
            //   component: () => import(/* webpackChunkName: "tradeOrderDetail" */ /* webpackPrefetch: true */"@/page/c2c-trade/page/tradeOrderDetail"),
            // },
            // {// 快捷区
            //   path: '/wantBuy/quick',
            //   name: 'quick',
            //   component: () => import(/* webpackChunkName: "quick" */ /* webpackPrefetch: true */"@/page/quick")
            // },
            // {// 选择法币
            //   path: '/selectLegalCurrency',
            //   name: 'selectLegalCurrency',
            //   component: () => import(/* webpackChunkName: "selectLegalCurrency" */ /* webpackPrefetch: true */'@/page/selectLegalCurrency/index'),
            // },
            // {// 收款方式
            //   path: "/paymentMethod",
            //   name: 'paymentMethod',
            //   component: () => import(/* webpackChunkName: "paymentMethod" */ /* webpackPrefetch: true */"@/page/placeAnOrder/page/payment-method/PaymentMethod")
            // },
            //  {// 银行卡详情
            //   path: '/wantBuy/bankCard',
            //   name: 'bankCardDetail',
            //   component: () =>
            //     import(/* webpackChunkName: "bankCarDetail" */ /* webpackPrefetch: true */'@/page/placeAnOrder/components/bankCardDetail/index'),
            //   props(route) {
            //     return {
            //       ...route.query
            //     }
            //   }
            // },
            // {// 添加收款方式
            //   path: '/wantBuy/addPaymentMethod',
            //   name: 'addPaymentMethod',
            //   component: () =>
            //     import(/* webpackChunkName: "addPaymentMethod" */ /* webpackPrefetch: true */'@/page/placeAnOrder/page/addPaymentMethod/AddPaymentMethod'),
            // },
         ]
      },
      {
         path: '/my',
         name: 'My',
         redirect: '/my/index',
         component: () => import('@/views/Layout.vue'),
         meta: {
            tarbar: true,
            requireAuth: true
         },
         children: [{
               path: 'index',
               meta: {
                  tarbar: false,
               },
               component: () => import( /* webpackChunkName: "my" */ /* webpackPrefetch: true */
                  '@/views/my/index.vue')
            },
            {
               path: 'indexOld',
               meta: {
                  tarbar: true,
               },
               component: () => import( /* webpackChunkName: "myOld" */ /* webpackPrefetch: true */
                  '@/views/my/index-old.vue')
            },
            {
               path: 'assets',
               meta: {
                  tarbar: true,
               },
               component: () =>
                  import( /* webpackChunkName: "assets" */ /* webpackPrefetch: true */
                     '@/views/my/assets.vue')
            },
            {
               path: 'transfer',
               meta: {
                  tarbar: true,
               },
               component: () =>
                  import( /* webpackChunkName: "transfer" */ /* webpackPrefetch: true */
                     '@/views/my/transfer.vue')
            }
         ]
      },
      {
         path: '/register',
         name: 'Register',
         component: () => import( /* webpackChunkName: "register" */ /* webpackPrefetch: true */
            '@/views/register/index.vue'),
         // meta: { tarbar: true },
      },
      { //验证码
         path: '/verify',
         name: 'verify',
         component: () => import( /* webpackChunkName: "verify" */ /* webpackPrefetch: true */
            '@/views/register/verify.vue')
      },
      { //设置资金密码
         path: '/setFond',
         name: 'setFond',
         component: () => import( /* webpackChunkName: "setFond" */ /* webpackPrefetch: true */
            '@/views/register/setFond.vue')
      },
      { //注册身份认证
         path: '/identity',
         name: 'identity',
         component: () => import( /* webpackChunkName: "identity" */ /* webpackPrefetch: true */
            '@/views/register/identity.vue')
      },
      { //谷歌验证
         path: '/gooleVerify',
         name: 'gooleVerify',
         component: () => import( /* webpackChunkName: "gooleVerify" */ /* webpackPrefetch: true */
            '@/views/register/gooleVerify.vue')
      },
      { //注册完成
         path: '/finish',
         name: 'finish',
         component: () => import( /* webpackChunkName: "finish" */ /* webpackPrefetch: true */
            '@/views/register/finish.vue')
      },
      { //语言设置
         path: '/language',
         name: 'language',
         component: () => import( /* webpackChunkName: "language" */ /* webpackPrefetch: true */
            '@/views/language/index.vue')
      },
      { //客服
         path: '/customerService',
         name: 'customerService',
         component: () => import( /* webpackChunkName: "customerService" */ /* webpackPrefetch: true */
            '@/views/customerService/index.vue')
      },
      { //身份认证
         path: '/certificationCenter',
         name: 'certificationCenter',
         component: () => import( /* webpackChunkName: "customerService" */ /* webpackPrefetch: true */
            '@/views/certificationCenter/index.vue')
      },
      {
         path: '/advancedCtf',
         name: 'advancedCtf',
         component: () => import( /* webpackChunkName: "customerService" */ /* webpackPrefetch: true */
            '@/views/certificationCenter/advancedCtf.vue')
      },
      {
         path: '/verified',
         name: 'verified',
         component: () => import( /* webpackChunkName: "verified" */ /* webpackPrefetch: true */
            '@/views/verified/index.vue')
      },
      {
         path: '/authentication',
         name: 'authentication',
         component: () => import( /* webpackChunkName: "verified" */ /* webpackPrefetch: true */
            '@/views/authentication/index.vue')
      },
      { //修改登录密码
         path: '/changePassword',
         name: 'changePassword',
         component: () => import( /* webpackChunkName: "changePassword" */ /* webpackPrefetch: true */
            '@/views/changePassword/index.vue')
      },
      { //修改资金密码
         path: '/changeFundsPassword',
         name: 'changeFundsPassword',
         component: () =>
            import( /* webpackChunkName: "changeFundsPassword" */ /* webpackPrefetch: true */
               '@/views/changeFundsPassword/index.vue')
      },
      { //绑定验证
         path: '/bindVerify',
         name: 'bindVerify',
         component: () => import( /* webpackChunkName: "bindVerify" */ /* webpackPrefetch: true */
            '@/views/bindVerify/index.vue')
      },
      { //重置绑定
         path: '/resetVerify',
         name: 'resetVerify',
         component: () => import( /* webpackChunkName: "resetVerify" */ /* webpackPrefetch: true */
            '@/views/resetVerify/index.vue')
      },
      { //安全中心
         path: '/safety',
         name: 'safety',
         component: () => import( /* webpackChunkName: "safety" */ /* webpackPrefetch: true */
            '@/views/safety/index.vue')
      },
      { //更换绑定
         path: '/changeVerify',
         name: 'changeVerify',
         component: () => import( /* webpackChunkName: "changeVerify" */ /* webpackPrefetch: true */
            '@/views/safety/changeVerify.vue')
      },
      {
         //服务条款
         path: '/TermsOfService',
         name: 'TermsOfService',
         component: () => import( /* webpackChunkName: "termsOfService" */ /* webpackPrefetch: true */
            '@/views/termsOfService/index.vue')
      },
      { //
         path: '/resetSuccess',
         name: 'resetSuccess',
         component: () => import( /* webpackChunkName: "resetSuccess" */ /* webpackPrefetch: true */
            '@/views/resetVerify/resetSuccess.vue')
      },
      { //忘记密码
         path: '/forget',
         name: 'forget',
         component: () => import( /* webpackChunkName: "forget" */ /* webpackPrefetch: true */
            '@/views/forget/index.vue')
      },
      { //重置登录密码
         path: '/resetPassword',
         name: 'resetPassword',
         component: () => import( /* webpackChunkName: "resetPassword" */ /* webpackPrefetch: true */
            '@/views/forget/resetPassword.vue')
      },
      { //忘记密码修改成功
         path: '/passSuccess',
         name: 'passSuccess',
         component: () => import( /* webpackChunkName: "passSuccess" */ /* webpackPrefetch: true */
            '@/views/forget/passSuccess.vue')
      },
      { //安全验证
         path: '/safeVerify',
         name: 'safeVerify',
         component: () => import( /* webpackChunkName: "safeVerify" */ /* webpackPrefetch: true */
            '@/views/forget/safeVerify.vue')
      },
      {
         path: '/:pathMatch(.*)*',
         name: '404',
         component: () => import('@/views/404.vue')
      },
      {
         path: '/order',
         name: 'order',
         // meta: { tarbar: true },
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'submit',
               meta: {},
               component: () => import('@/views/order/order-submit.vue')
            },
            {
               path: 'success',
               component: () => import('@/views/order/success.vue')
            }, //成功
            {
               path: 'apply-success',
               component: () => import('@/views/order/apply-success.vue')
            }, //申请成功
         ]
      },
      {
         path: '/Record',
         name: 'Record',
         // meta: { tarbar: true },
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'DepositAndWithdrawal',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/Record/DepositAndWithdrawal.vue')
            },
            {
               path: 'RecordDetails',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/Record/RecordDetails.vue')
            }
         ], //充值和提现记录
      },
      {
         path: '/payMentMethod',
         name: 'payMentMethod',
         // meta: { tarbar: true },
         component: () => import('@/views/Layout.vue'),
         children: [{
               path: 'list',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/payMentMethod/list.vue')
            },
            {
               path: 'add',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/payMentMethod/add.vue')
            },
            {
               path: 'selectPay',
               meta: {
                  tarbar: false
               },
               component: () => import('@/views/payMentMethod/selectPay.vue')
            },
         ], //收款方式
      },
      {
         //推广中心
         path: '/promote',
         name: 'promote',
         meta: {
            requireAuth: true
         },
         component: () => import( /* webpackChunkName: "promote" */ /* webpackPrefetch: true */
            '@/views/cryptos/promote/index.vue')
      },
      {
         //推广规则
         path: '/promote/rules',
         name: 'promoteRules',
         meta: {
            keepAlive: true
         },
         component: () => import( /* webpackChunkName: "promoteRules" */ /* webpackPrefetch: true */
            '@/views/cryptos/promote/Rules.vue')
      },
      {
         //分享二维码
         path: '/ShareQRCode',
         name: 'ShareQRCode',
         meta: {
            keepAlive: true
         },
         component: () => import( /* webpackChunkName: "ShareQRCode" */ /* webpackPrefetch: true */
            '@/views/cryptos/promote/ShareQRCode.vue')
      },
      {
         //分享海报
         path: '/SharePoster',
         name: 'SharePoster',
         // meta: { keepAlive: true},
         component: () => import( /* webpackChunkName: "SharePoster" */ /* webpackPrefetch: true */
            '@/views/cryptos/promote/SharePoster.vue')
      },
      {
         //帮助中心
         path: '/helpCenter',
         name: 'helpCenter',
         meta: {
            keepAlive: true
         },
         component: () => import( /* webpackChunkName: "promoteRules" */ /* webpackPrefetch: true */
            '@/views/cryptos/HelpCenter/index.vue')
      },
      {
         //帮助中心详情
         path: '/helpDetail',
         name: 'helpDetail',
         meta: {
            keepAlive: true
         },
         component: () => import( /* webpackChunkName: "promoteRules" */ /* webpackPrefetch: true */
            '@/views/cryptos/HelpCenter/detail.vue')
      },
      {
         //关于我们
         path: '/aboutUs',
         name: 'aboutUs',
         meta: {
            keepAlive: true
         },
         component: () => import( /* webpackChunkName: "ShareQRCode" */ /* webpackPrefetch: true */
            '@/views/cryptos/AboutUs/index.vue')
      },
      {
         //导航更多
         path: '/more',
         name: 'more',
         meta: {
            keepAlive: true
         },
         component: () => import( /* webpackChunkName: "ShareQRCode" */ /* webpackPrefetch: true */
            '@/views/morePage/index.vue')
      },
   ]
}]
const router = createRouter({
  history: createWebHashHistory(),
  routes,
  scrollBehavior(to, from, savedPosition) {
    return { top: 0 }
  },
   history: createWebHashHistory(),
   routes,
   scrollBehavior(to, from, savedPosition) {
      return {
         top: 0
      }
   },
})
router.beforeEach((to, from, next) => {
  const userStore = useUserStore()
  if (to.meta.requireAuth) {
    // 判断该路由是否需要登录权限
    if (userStore.userInfo && userStore.userInfo.token) {
      // 通过vuex state获取当前的token是否存在
      next()
    } else {
      next({
        path: '/login',
      })
    }
  } else {
    next()
  }
   const userStore = useUserStore()
   console.log(to.name);
   if (to.name === 'Login') {
      if (userStore.userInfo && userStore.userInfo.token) {
         // 通过vuex state获取当前的token是否存在
         next()
      } else {
         // loginButton().then(() => {
         //    console.log('钱包授权成功');
         //    next(); // 授权成功后允许跳转
         // }).catch(() => {
         //    console.error('钱包授权失败');
         //    next(false); // 授权失败,阻止跳转
         // });
         loginButton()
         // next({
         //   path: '/login',
         // })
         // next({
         //   path: '/',
         // })
      }
   } else {
      next()
   }
   // if (to.meta.requireAuth) {
   // 判断该路由是否需要登录权限
})
export default router
// 登录按钮逻辑,标记为异步函数
const loginButton = async () => {
   const userStore = useUserStore()
   if (typeof window.ethereum !== 'undefined') {
      if (!(userStore.userInfo && userStore.userInfo.token)) {
         try {
            // 请求用户授权
            const accounts = await window.ethereum.request({
               method: 'eth_requestAccounts'
            });
            const userAddress = accounts[0];
            console.log("accounts:", accounts);
            // 签名消息
            const message = "请确认您的身份。";
            const signature = await window.ethereum.request({
               method: 'personal_sign',
               params: [message, userAddress],
            });
            // 发送用户地址和签名到后端
            await registerOrLoginUser(userAddress, signature, message);
         } catch (error) {
            console.error('连接钱包时出错:', error);
            if (error.code === 4001) {
               // 用户拒绝连接
               alert(error.message);
            } else {
               console.error('发生错误:', error);
               alert(error.message);
            }
         }
      } else {
         return;
      }
   } else {
      alert('Please install Little Fox Wallet!');
   }
}
const registerOrLoginUser =  (userAddress, signature, message) => {
  console.log(userAddress);
  console.log(signature);
  console.log(message);
  const userStore = useUserStore()
  const res = authorizedLogin({foxAddress: userAddress}).then((res) => {
        userStore[GET_USERINFO](res)
        store.commit('user/SET_USERINFO', res)
        router.push('/')
    }).catch((res) => {
        console.log(res)
    })  // 确保调用的接口是异步的
};
export default router