import { EnumRouterName } from '@/common/constants/enumRouterName'; import { setLoadComplete } from '@/common/methods'; import { getLoadIsComplete } from '@/common/methods/mixin'; import Main from '@/layout/components/main.vue'; import Layout from '@/layout/index.vue'; import { globalDataRefresh } from '@/services/bus'; import { isLogin, login } from '@/services/bus/login'; import { localStorageUtil } from '@/utils/storage'; import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'; import eventBus from '../utils/eventBus'; const routes: Array = [ { path: '/login', name: 'login', component: () => import('@/views/account/login.vue'), }, { path: '/logon', name: 'logon', component: () => import('@/views/account/logon.vue'), }, { path: '/resetPassword', name: 'resetPassword', component: () => import('@/views/account/resetPassword.vue'), }, { path: '/', component: Layout, props: true, redirect: '/login', children: [ { path: '/home', name: 'home', component: () => import('@/views/home.vue'), }, { path: '/futures', name: 'forward', component: () => import('@/views/market/forward/index.vue'), }, { path: '/warehouse-trade', name: 'warehouseTrade', component: () => import('@/views/market/warehouseTrade/index.vue'), }, { path: 'custom_info', name: 'custom_info', component: Main, meta: { requireAuth: true, }, redirect: (to) => { return { name: 'custom_info_unsubmit' }; }, children: [ { path: '/custom_info/custom_info_normal', name: 'custom_info_normal', component: () => import('@/views/information/custom/list/normal-use/index.vue'), meta: { requireAuth: true, }, }, { path: '/custom_info/custom_info_disabled', name: 'custom_info_disabled', component: () => import('@/views/information/custom/list/stop-use/index.vue'), meta: { requireAuth: true, }, }, { path: '/custom_info/custom_info_checkpending', name: 'custom_info_checkpending', component: () => import('@/views/information/custom/list/checkpending/index.vue'), meta: { requireAuth: true, }, }, { path: '/custom_info/custom_info_unsubmit', name: 'custom_info_unsubmit', component: () => import('@/views/information/custom/list/unsubmit/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: 'goods_info', name: 'goods_info', component: Main, meta: { requireAuth: true, }, redirect: (to) => { return { name: 'goods_info_spot' }; }, children: [ { path: '/goods_info/goods_info_spot', name: 'goods_info_spot', component: () => import('@/views/information/goods/list/spot-variety/index.vue'), meta: { requireAuth: true, }, }, { path: '/goods_info/goods_info_hedge', name: 'goods_info_hedge', component: () => import('@/views/information/goods/list/hedging-variety/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/spot_contract', name: 'spot_contract', component: Main, meta: { requireAuth: true, }, redirect: (to) => { return { name: 'spot_contract_unsubmitted' }; }, children: [ { path: '/spot_contract/spot_contract_unsubmitted', name: 'spot_contract_unsubmitted', component: () => import('@/views/information/spot-contract/list/unsubmitted/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_contract/spot_contract_checkpending', name: 'spot_contract_checkpending', component: () => import('@/views/information/spot-contract/list/checkpending/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_contract/spot_contract_performance', name: 'spot_contract_performance', component: () => import('@/views/information/spot-contract/list/performance/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_contract/spot_contract_finished', name: 'spot_contract_finished', component: () => import('@/views/information/spot-contract/list/finished/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/account_info', name: 'account_info', component: Main, meta: { requireAuth: true, }, redirect: (to) => { return { name: 'account_info_business' }; }, children: [ { path: '/account_info/account_info_business', name: 'account_info_business', component: () => import('@/views/information/account_info/list/account_info_business/index.vue'), meta: { requireAuth: true, }, }, { path: '/account_info/account_info_futures', name: 'account_info_futures', component: () => import('@/views/information/account_info/list/account_info_futures/index.vue'), meta: { requireAuth: true, }, }, { path: '/account_info/account_info_manager', name: 'account_info_manager', component: () => import('@/views/information/account_info/list/account_info_manager/index.vue'), meta: { requireAuth: true, }, }, { path: '/account_info/account_info_trade', name: 'account_info_trade', component: () => import('@/views/information/account_info/list/account_info_trade/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/warehouse_info', name: 'warehouse_info', component: Main, meta: { requireAuth: true, }, redirect: (to) => { return { name: 'warehouse_info_normal' }; }, children: [ { path: '/warehouse_info/warehouse_info_normal', name: 'warehouse_info_normal', component: () => import('@/views/information/warehouse-info/list/normal-use/index.vue'), meta: { requireAuth: true, }, }, { path: '/warehouse_info/warehouse_info_disabled', name: 'warehouse_info_disabled', component: () => import('@/views/information/warehouse-info/list/stop-use/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/outaccount_status', name: 'outaccount_status', component: () => import('@/views/search/outaccount_status/index.vue'), meta: { requireAuth: true, }, }, { path: '/inventory', name: 'inventory', component: Main, meta: { requireAuth: true, }, redirect: (to) => { return { name: 'inventory_current' }; }, children: [ { path: '/inventory/inventory_current', name: 'inventory_current', component: () => import('@/views/search/inventory/list/inventory_current/index.vue'), meta: { requireAuth: true, }, }, { path: '/inventory/inventory_applyrecord', name: 'inventory_applyrecord', component: () => import('@/views/search/inventory/list/inventory_applyrecord/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/purchase', name: 'purchase', component: Main, meta: { requireAuth: true, }, redirect: { name: 'purchase_pending' }, children: [ { path: '/purchase/purchase_pending', name: 'purchase_pending', component: () => import('@/views/business/purchase/list/pending/index.vue'), meta: { requireAuth: true, }, }, { path: '/purchase/purchase_performance', name: 'purchase_performance', component: () => import('@/views/business/purchase/list/performance/index.vue'), meta: { requireAuth: true, }, }, { path: '/purchase/purchase_all', name: 'purchase_all', component: () => import('@/views/business/purchase/list/all/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/sell', name: 'sell', component: Main, meta: { requireAuth: true, }, redirect: { name: 'sell_pending' }, children: [ { path: '/sell/sell_pending', name: 'sell_pending', component: () => import('@/views/business/sell/list/pending/index.vue'), meta: { requireAuth: true, }, }, { path: '/sell/sell_performance', name: 'sell_performance', component: () => import('@/views/business/sell/list/performance/index.vue'), meta: { requireAuth: true, }, }, { path: '/sell/sell_all', name: 'sell_all', component: () => import('@/views/business/sell/list/all/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/risk_parameter_settings', name: 'risk_parameter_settings', component: Main, meta: { requireAuth: true, }, redirect: { name: 'risk_parameter_settings_sub' }, children: [ { path: '/risk_parameter_settings_sub/risk_parameter_settings_sub', name: 'risk_parameter_settings_sub', component: () => import('@/views/ping_an/risk_parameter_settings/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/futures_and_spot', name: 'futures_and_spot', component: Main, meta: { requireAuth: true, }, redirect: { name: 'futures_and_spot_stof' }, children: [ { path: '/futures_and_spot/futures_and_spot_stof', name: 'futures_and_spot_stof', component: () => import('@/views/ping_an/futures_and_spot/futures_and_spot_stof/index.vue'), meta: { requireAuth: true, }, }, { path: '/futures_and_spot/futures_and_spot_ftos', name: 'futures_and_spot_ftos', component: () => import('@/views/ping_an/futures_and_spot/futures_and_spot_ftos/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_price_management_p', name: 'spot_price_management_p', component: Main, meta: { requireAuth: true, }, redirect: { name: 'spot_price_management_today' }, children: [ { path: '/spot_price_management_p/spot_price_management_today', name: 'spot_price_management_today', component: () => import('@/views/ping_an/spot_price_management/spot_price_management_today/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_price_management_p/spot_price_management_all', name: 'spot_price_management_all', component: () => import('@/views/ping_an/spot_price_management/spot_price_management_all/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_price_management_p/spot_price_management_pending', name: 'spot_price_management_pending', component: () => import('@/views/ping_an/spot_price_management/spot_price_management_pending/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/exposure', name: 'exposure', component: Main, meta: { requireAuth: true, }, redirect: { name: 'exposure_realtime' }, children: [ { path: '/exposure/exposure_realtime', name: 'exposure_realtime', component: () => import('@/views/business/exposure/list/realTime/index.vue'), meta: { requireAuth: true, }, }, { path: '/exposure/exposure_spot', name: 'exposure_spot', component: () => import('@/views/business/exposure/list/spot/index.vue'), meta: { requireAuth: true, }, }, { path: '/exposure/exposure_futures', name: 'exposure_futures', component: () => import('@/views/business/exposure/list/futures/index.vue'), meta: { requireAuth: true, }, }, { path: '/exposure/exposure_history', name: 'exposure_history', component: () => import('@/views/business/exposure/list/history/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: '/plan', name: 'plan', component: Main, meta: { requireAuth: true, }, redirect: { name: 'plan_uncommitted' }, children: [ { path: '/plan/plan_uncommitted', name: 'plan_uncommitted', component: () => import('@/views/business/plan/list/uncommitted/index.vue'), meta: { requireAuth: true, }, }, { path: '/plan/plan_audit', name: 'plan_audit', component: () => import('@/views/business/plan/list/audit/index.vue'), meta: { requireAuth: true, }, }, { path: '/plan/plan_running', name: 'plan_running', component: () => import('@/views/business/plan/list/running/index.vue'), meta: { requireAuth: true, }, }, ], }, { path: 'review', name: 'business_review', component: Main, meta: { requireAuth: true, }, redirect: { name: 'business_review_someprice' }, children: [ { path: '/business_review/business_review_someprice', name: 'business_review_someprice', component: () => import('@/views/manage/business-review/list/someprice/index.vue'), meta: { requireAuth: true, }, }, { path: '/business_review/business_review_settlement', name: 'business_review_settlement', component: () => import('@/views/manage/business-review/list/settlement/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/finance_review', name: 'finance_review', component: Main, meta: { requireAuth: true, }, redirect: { name: 'finance_review_funds' }, children: [ { path: '/finance_review/finance_review_funds', name: 'finance_review_funds', component: () => import('@/views/manage/finance-review/list/funds/index.vue'), meta: { requireAuth: true, }, }, { path: '/finance_review/finance_review_invoice', name: 'finance_review_invoice', component: () => import('@/views/manage/finance-review/list/invoice/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/inventory_review', name: 'inventory_review', component: Main, meta: { requireAuth: true, }, redirect: { name: 'inventory_review_checkin' }, children: [ { path: '/inventory_review/inventory_review_checkin', name: 'inventory_review_checkin', component: () => import('@/views/manage/inventory-review/list/checkin/index.vue'), meta: { requireAuth: true, }, }, { path: '/inventory_review/inventory_review_checkout', name: 'inventory_review_checkout', component: () => import('@/views/manage/inventory-review/list/checkout/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/exposure_report', name: 'exposure_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'exposure_report_exposure' }, children: [ { path: '/exposure_report/exposure_report_exposure', name: 'exposure_report_exposure', component: () => import('@/views/report/exposure-report/list/exposure_report/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/search_performance_template', name: 'search_performance_template', component: Main, meta: { requireAuth: true, }, redirect: { name: 'search_performance_template_sub' }, children: [ { path: '/search_performance_template/search_performance_template_sub', name: 'search_performance_template_sub', component: () => import('@/views/search/search_performance_template/search_performance_template_sub/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/account_manager_agency', name: 'account_manager_agency', component: Main, meta: { requireAuth: true, }, redirect: { name: 'account_manager_agency_sub' }, children: [ { path: '/account-manager-agency/account-manager-agency-sub', name: 'account_manager_agency_sub', component: () => import('@/views/account-manager/account-manager-agency/account-manager-agency-sub/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/finance_report', name: 'finance_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'finance_report_finance' }, children: [ { path: '/finance_report/finance_report_finance', name: 'finance_report_finance', component: () => import('@/views/report/finance-report/list/finance_report_finance/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/inventory_report', name: 'inventory_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'inventory_report_inventory_category' }, children: [ { path: '/inventory_report/inventory_report_inventory_category', name: 'inventory_report_inventory_category', component: () => import('@/views/report/inventory-report/list/category/index.vue'), meta: { requireAuth: true, }, }, { path: '/inventory_report/warehouse', name: 'inventory_report_warehouse', component: () => import('@/views/report/inventory-report/list/warehouse/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_report', name: 'spot_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'spot_report_spot' }, children: [ { path: '/spot_report/spot_report_spot', name: 'spot_report_spot', component: () => import('@/views/report/spot-report/list/spot_report/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/sum_pl_report', name: 'sum_pl_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'sum_pl_report_sum_pl' }, children: [ { path: '/sum_pl_report/sum_pl_report_sum_pl', name: 'sum_pl_report_sum_pl', component: () => import('@/views/report/sum_pl_report/list/sum_pl_report/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/future_report', name: 'future_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'future_report_future' }, children: [ { path: '/future_report/future_report_future', name: 'future_report_future', component: () => import('@/views/report/future_report/list/future_report/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_customer_info', name: 'platinum_customer_info', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_custom_info_normal' }, children: [ { path: '/platinum_customer_info/platinum_custom_info_normal', name: 'platinum_custom_info_normal', component: () => import('@/views/platinum/platinum_customer_info/list/normal-use/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_customer_info/platinum_customer_info_unsubmit', name: 'platinum_customer_info_unsubmit', component: () => import('@/views/platinum/platinum_customer_info/list/unsubmit/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_customer_info/platinum_customer_info_stop', name: 'platinum_customer_info_stop', component: () => import('@/views/platinum/platinum_customer_info/list/stop-use/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_pick_query', name: 'platinum_pick_query', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_pick_query_tab' }, children: [ { path: '/platinum_pick_query/platinum_pick_query_tab', name: 'platinum_pick_query_tab', component: () => import('@/views/platinum/platinum_pick_query/list/tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_recharge_withdrawal_review', name: 'platinum_recharge_withdrawal_review', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_recharge_review_tab' }, children: [ { path: '/platinum_withdrawal_review_tab/platinum_recharge_review_tab', name: 'platinum_recharge_review_tab', component: () => import('@/views/platinum/platinum_recharge_withdrawal_review/list/recharge/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_withdrawal_review_tab/platinum_withdrawal_review_tab', name: 'platinum_withdrawal_review_tab', component: () => import('@/views/platinum/platinum_recharge_withdrawal_review/list/withdrawal/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_fixed_investment_price_query', name: 'platinum_fixed_investment_price_query', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_fixed_investment_price_query_tab' }, children: [ { path: '/platinum_fixed_investment_price_query/platinum_fixed_investment_price_query_tab', name: 'platinum_fixed_investment_price_query_tab', component: () => import('@/views/platinum/platinum_fixed_investment_price_query/list/tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_fixed_investment_query', name: 'platinum_fixed_investment_query', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_fixed_investment_plan_query' }, children: [ { path: '/platinum_fixed_investment_plan_query/platinum_fixed_investment_plan_query', name: 'platinum_fixed_investment_plan_query', component: () => import('@/views/platinum/platinum_fixed_investment_query/list/plan/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_fixed_investment_plan_query/platinum_fixed_investment_flow_query', name: 'platinum_fixed_investment_flow_query', component: () => import('@/views/platinum/platinum_fixed_investment_query/list/flow/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_document_query', name: 'platinum_document_query', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_document_query_position' }, children: [ { path: '/platinum_document_query/platinum_document_query_position', name: 'platinum_document_query_position', component: () => import('@/views/platinum/platinum_document_query/list/position/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_document_query/platinum_document_query_order', name: 'platinum_document_query_order', component: () => import('@/views/platinum/platinum_document_query/list/order/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_document_query/platinum_document_query_waiting', name: 'platinum_document_query_waiting', component: () => import('@/views/platinum/platinum_document_query/list/waiting/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_document_query/platinum_document_query_success', name: 'platinum_document_query_success', component: () => import('@/views/platinum/platinum_document_query/list/success/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_financing_information', name: 'platinum_financing_information', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_financing_information_tab' }, children: [ { path: '/platinum_financing_information/platinum_financing_information_tab', name: 'platinum_financing_information_tab', component: () => import('@/views/platinum/platinum_financing_information/list/tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_agents_and_stores', name: 'platinum_agents_and_stores', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_agents_and_stores_tab' }, children: [ { path: '/platinum_agents_and_stores/platinum_agents_and_stores_tab', name: 'platinum_agents_and_stores_tab', component: () => import('@/views/platinum/platinum_agents_and_stores/list/tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_agreement', name: 'platinum_agreement', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_agreement_tab' }, children: [ { path: '/platinum_agreement/platinum_agreement_tab', name: 'platinum_agreement_tab', component: () => import('@/views/platinum/platinum_agreement/list/tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_capital_flow', name: 'platinum_capital_flow', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_capital_flow_tab' }, children: [ { path: '/platinum_capital_flow_tab/platinum_capital_flow_tab', name: 'platinum_capital_flow_tab', component: () => import('@/views/platinum/platinum_capital_flow/platinum_capital_flow_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_promotion_report', name: 'platinum_promotion_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_promotion_report_tab' }, children: [ { path: '/platinum_promotion_report/platinum_promotion_report_tab', name: 'platinum_promotion_report_tab', component: () => import('@/views/platinum/platinum_promotion_report/platinum_promotion_report_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_signing_settings', name: 'platinum_signing_settings', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_signing_settings_tab' }, children: [ { path: '/platinum_signing_settings/platinum_signing_settings_tab', name: 'platinum_signing_settings_tab', component: () => import('@/views/platinum/platinum_signing_settings/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_team_settings', name: 'platinum_team_settings', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_team_settings_tab' }, children: [ { path: '/platinum_team_settings/platinum_team_settings_tab', name: 'platinum_team_settings_tab', component: () => import('@/views/platinum/platinum_team_settings/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_account_manager', name: 'platinum_account_manager', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_account_manager_tab' }, children: [ { path: '/platinum_account_manager/platinum_account_manager_tab', name: 'platinum_account_manager_tab', component: () => import('@/views/platinum/platinum_account_manager/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/trading_strategy_notes_sub', name: 'trading_strategy_notes_sub', component: Main, meta: { requireAuth: true, }, redirect: { name: 'trading_strategy_notes' }, children: [ { path: '/trading_strategy_notes_sub/trading_strategy_notes', name: 'trading_strategy_notes', component: () => import('@/views/ping_an/trading_strategy_notes_sub/trading_strategy_notes/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/goods_info_p', name: 'goods_info_p', component: Main, meta: { requireAuth: true, }, redirect: { name: 'goods_info_p_spot' }, children: [ { path: '/goods_info_p/goods_info_p_spot', name: 'goods_info_p_spot', component: () => import('@/views/ping_an/goods_info_p/goods_info_p_spot/index.vue'), meta: { requireAuth: true, }, }, { path: '/goods_info_p/goods_info_p_hedge', name: 'goods_info_p_hedge', component: () => import('@/views/ping_an/goods_info_p/goods_info_p_hedge/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/division_management', name: 'division_management', component: Main, meta: { requireAuth: true, }, redirect: { name: 'division_management_sub' }, children: [ { path: '/division_management/division_management_sub', name: 'division_management_sub', component: () => import('@/views/ping_an/division_management/division_management_sub/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_execution_management', name: 'spot_execution_management', component: Main, meta: { requireAuth: true, }, redirect: { name: 'spot_execution_management_all' }, children: [ { path: '/spot_execution_management/spot_execution_management_all', name: 'spot_execution_management_all', component: () => import('@/views/ping_an/spot_execution_management/spot_execution_management_all/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_execution_management/spot_execution_management_pending', name: 'spot_execution_management_pending', component: () => import('@/views/ping_an/spot_execution_management/spot_execution_management_pending/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_execution_management/spot_execution_management_today', name: 'spot_execution_management_today', component: () => import('@/views/ping_an/spot_execution_management/spot_execution_management_today/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/transaction_main_body', name: 'transaction_main_body', component: Main, meta: { requireAuth: true, }, redirect: { name: 'transaction_main_body_normal' }, children: [ { path: '/transaction_main_body/transaction_main_body_normal', name: 'transaction_main_body_normal', component: () => import('@/views/ping_an/transaction_main_body/transaction_main_body_normal/index.vue'), meta: { requireAuth: true, }, }, { path: '/transaction_main_body/transaction_main_body_disabled', name: 'transaction_main_body_disabled', component: () => import('@/views/ping_an/transaction_main_body/transaction_main_body_disabled/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/futures_order_search', name: 'futures_order_search', component: Main, meta: { requireAuth: true, }, redirect: { name: 'futures_order_search_tradepostion' }, children: [ { path: '/futures_order_search/futures_order_search_tradepostion', name: 'futures_order_search_tradepostion', component: () => import('@/views/ping_an/futures_order_search/futures_order_search_tradepostion/index.vue'), meta: { requireAuth: true, }, }, { path: '/futures_order_search/futures_order_search_orderdetail', name: 'futures_order_search_orderdetail', component: () => import('@/views/ping_an/futures_order_search/futures_order_search_orderdetail/index.vue'), meta: { requireAuth: true, }, }, { path: '/futures_order_search/futures_order_search_tradedetail', name: 'futures_order_search_tradedetail', component: () => import('@/views/ping_an/futures_order_search/futures_order_search_tradedetail/index.vue'), meta: { requireAuth: true, }, }, { path: '/futures_order_search/futures_order_search_outtradedetail', name: 'futures_order_search_outtradedetail', component: () => import('@/views/ping_an/futures_order_search/futures_order_search_outtradedetail/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/provisional_pricing_info_sub', name: 'provisional_pricing_info_sub', component: Main, meta: { requireAuth: true, }, redirect: { name: 'provisional_pricing_info' }, children: [ { path: '/provisional_pricing_info_sub/provisional_pricing_info', name: 'provisional_pricing_info', component: () => import('@/views/ping_an/provisional_pricing_info_sub/provisional_pricing_info/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/query_of_opponent_details', name: 'query_of_opponent_details', component: Main, meta: { requireAuth: true, }, redirect: { name: 'query_of_opponent_details_pricing' }, children: [ { path: '/query_of_opponent_details/query_of_opponent_details_pricing', name: 'query_of_opponent_details_pricing', component: () => import('@/views/ping_an/query_of_opponent_details/query_of_opponent_details_pricing/index.vue'), meta: { requireAuth: true, }, }, { path: '/query_of_opponent_details/query_of_opponent_details_inout', name: 'query_of_opponent_details_inout', component: () => import('@/views/ping_an/query_of_opponent_details/query_of_opponent_details_inout/index.vue'), meta: { requireAuth: true, }, }, { path: '/query_of_opponent_details/query_of_opponent_details_futurestrading', name: 'query_of_opponent_details_futurestrading', component: () => import('@/views/ping_an/query_of_opponent_details/query_of_opponent_details_futurestrading/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_salesman_performance_report', name: 'platinum_salesman_performance_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_salesman_performance_report_tab' }, children: [ { path: '/platinum_salesman_performance_report/platinum_salesman_performance_report_tab', name: 'platinum_salesman_performance_report_tab', component: () => import('@/views/report/platinum_salesman_performance_report/platinum_salesman_performance_report_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_customer_service_report', name: 'platinum_customer_service_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_customer_service_report_reach_rate_report_tab' }, children: [ { path: '/platinum_customer_service_report/platinum_customer_service_report_reach_rate_report_tab', name: 'platinum_customer_service_report_reach_rate_report_tab', component: () => import('@/views/report/platinum_customer_service_report/platinum_customer_service_report_reach_rate_report_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_customer_service_report/platinum_customer_service_report_team_annualized_performance_ranking_report_tab', name: 'platinum_customer_service_report_team_annualized_performance_ranking_report_tab', component: () => import('@/views/report/platinum_customer_service_report/platinum_customer_service_report_team_annualized_performance_ranking_report_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_customer_service_report/platinum_customer_service_report_personal_annualized_performance_ranking_report_tab', name: 'platinum_customer_service_report_personal_annualized_performance_ranking_report_tab', component: () => import('@/views/report/platinum_customer_service_report/platinum_customer_service_report_personal_annualized_performance_ranking_report_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_customer_service_report/platinum_customer_service_report_team_manager_annual_performance_ranking_report_tab', name: 'platinum_customer_service_report_team_manager_annual_performance_ranking_report_tab', component: () => import('@/views/report/platinum_customer_service_report/platinum_customer_service_report_team_manager_annual_performance_ranking_report_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_asset_management_sale_report', name: 'platinum_asset_management_sale_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_asset_management_sale_report_company_day_tab' }, children: [ { path: '/platinum_asset_management_sale_report/platinum_asset_management_sale_report_company_day_tab', name: 'platinum_asset_management_sale_report_company_day_tab', component: () => import('@/views/report/platinum_asset_management_sale_report/platinum_asset_management_sale_report_company_day_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_sale_report/platinum_asset_management_sale_report_company_week_tab', name: 'platinum_asset_management_sale_report_company_week_tab', component: () => import('@/views/report/platinum_asset_management_sale_report/platinum_asset_management_sale_report_company_week_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_sale_report/platinum_asset_management_sale_report_company_month_tab', name: 'platinum_asset_management_sale_report_company_month_tab', component: () => import('@/views/report/platinum_asset_management_sale_report/platinum_asset_management_sale_report_company_month_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_sale_report/platinum_precious_metal_sales_report_departmental_week_tab', name: 'platinum_precious_metal_sales_report_departmental_week_tab', component: () => import('@/views/report/platinum_asset_management_sale_report/platinum_precious_metal_sales_report_departmental_week_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_sale_report/platinum_precious_metal_sales_report_departmental_month_tab', name: 'platinum_precious_metal_sales_report_departmental_month_tab', component: () => import('@/views/report/platinum_asset_management_sale_report/platinum_precious_metal_sales_report_departmental_month_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_sale_report/platinum_precious_metal_sales_report_product_month_tab', name: 'platinum_precious_metal_sales_report_product_month_tab', component: () => import('@/views/report/platinum_asset_management_sale_report/platinum_precious_metal_sales_report_product_month_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_precious_metal_sales_report', name: 'platinum_precious_metal_sales_report', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_precious_metal_sales_report_company_tab' }, children: [ { path: '/platinum_precious_metal_sales_report/platinum_precious_metal_sales_report_company_tab', name: 'platinum_precious_metal_sales_report_company_tab', component: () => import('@/views/report/platinum_precious_metal_sales_report/platinum_precious_metal_sales_report_company_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_sales_report/platinum_precious_metal_sales_report_departmental_tab', name: 'platinum_precious_metal_sales_report_departmental_tab', component: () => import('@/views/report/platinum_precious_metal_sales_report/platinum_precious_metal_sales_report_departmental_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_financial_payment', name: 'platinum_financial_payment', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_financial_payment_waiting_payment_tab' }, children: [ { path: '/platinum_financial_payment/platinum_financial_payment_waiting_payment_tab', name: 'platinum_financial_payment_waiting_payment_tab', component: () => import('@/views/platinum/platinum_financial_payment/platinum_financial_payment_waiting_payment_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_financial_payment/platinum_financial_payment_in_waiting_payment_tab', name: 'platinum_financial_payment_in_waiting_payment_tab', component: () => import('@/views/platinum/platinum_financial_payment/platinum_financial_payment_in_waiting_payment_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_financial_payment/platinum_financial_payment_waiting_payment_cash_tab', name: 'platinum_financial_payment_waiting_payment_cash_tab', component: () => import('@/views/platinum/platinum_financial_payment/platinum_financial_payment_waiting_payment_cash_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_financial_payment/platinum_financial_payment_payment_tab', name: 'platinum_financial_payment_payment_tab', component: () => import('@/views/platinum/platinum_financial_payment/platinum_financial_payment_payment_tab/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_financial_payment/platinum_financial_payment_all_tab', name: 'platinum_financial_payment_all_tab', component: () => import('@/views/platinum/platinum_financial_payment/platinum_financial_payment_all_tab/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_precious_metal_signing', name: 'platinum_precious_metal_signing', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_precious_metal_signing_unsubmitted' }, children: [ { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_unsubmitted', name: 'platinum_precious_metal_signing_unsubmitted', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_unsubmitted/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_pending_review', name: 'platinum_precious_metal_signing_pending_review', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_pending_review/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_repurchase_pending_review', name: 'platinum_precious_metal_signing_repurchase_pending_review', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_repurchase_pending_review/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_normal', name: 'platinum_precious_metal_signing_normal', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_normal/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_success', name: 'platinum_precious_metal_signing_success', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_success/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_refunded', name: 'platinum_precious_metal_signing_refunded', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_refunded/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_precious_metal_signing/platinum_precious_metal_signing_all', name: 'platinum_precious_metal_signing_all', component: () => import('@/views/platinum/platinum_precious_metal_signing/platinum_precious_metal_signing_all/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_asset_management_signing', name: 'platinum_asset_management_signing', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_asset_management_signing_unsubmitted' }, children: [ { path: '/platinum_asset_management_signing/platinum_asset_management_signing_unsubmitted', name: 'platinum_asset_management_signing_unsubmitted', component: () => import('@/views/platinum/platinum_asset_management_signing/platinum_asset_management_signing_unsubmitted/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_signing/platinum_asset_management_signing_pending_review', name: 'platinum_asset_management_signing_pending_review', component: () => import('@/views/platinum/platinum_asset_management_signing/platinum_asset_management_signing_pending_review/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_signing/platinum_asset_management_signing_finish', name: 'platinum_asset_management_signing_finish', component: () => import('@/views/platinum/platinum_asset_management_signing/platinum_asset_management_signing_finish/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_asset_management_signing/platinum_asset_management_signing_normal', name: 'platinum_asset_management_signing_normal', component: () => import('@/views/platinum/platinum_asset_management_signing/platinum_asset_management_signing_normal/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/platinum_broker_management', name: 'platinum_broker_management', component: Main, meta: { requireAuth: true, }, redirect: { name: 'platinum_broker_management_normal_tab' }, children: [ { path: '/platinum_broker_management/platinum_broker_management_normal_tab', name: 'platinum_broker_management_normal_tab', component: () => import('@/views/platinum/platinum_broker_management/normal/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_broker_management/platinum_broker_management_waiting_tab', name: 'platinum_broker_management_waiting_tab', component: () => import('@/views/platinum/platinum_broker_management/waiting/index.vue'), meta: { requireAuth: true, }, }, { path: '/platinum_broker_management/platinum_broker_management_refuse_tab', name: 'platinum_broker_management_refuse_tab', component: () => import('@/views/platinum/platinum_broker_management/refuse/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_trade', name: EnumRouterName.spot_trade, component: Main, meta: { requireAuth: true, }, redirect: { name: EnumRouterName.warehouse_receipt_trade, }, children: [ { path: '/spot_trade/warehouse_receipt_trade', name: EnumRouterName.warehouse_receipt_trade, component: () => import('@/views/market/spot_trade/warehouse_receipt_trade/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_floating_price', name: EnumRouterName.warehouse_receipt_trade_floating_price, component: () => import('@/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_floating_price/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_price', name: EnumRouterName.warehouse_receipt_trade_price, component: () => import('@/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_price/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs', name: 'warehouse_receipt_trade_blocs', component: () => import('@/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_designate', name: 'warehouse_receipt_trade_designate', component: () => import('@/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_designate/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_trade/warehouse_pre_sale', name: EnumRouterName.warehouse_pre_sale, component: () => import('@/views/market/spot_trade/warehouse_pre_sale/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/spot_trade/warehouse_pre_sale/warehouse_pre_sale_floating_price', name: EnumRouterName.warehouse_pre_sale_floating_price, component: () => import('@/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_floating_price/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/warehouse_pre_sale/warehouse_pre_sale_price', name: EnumRouterName.warehouse_pre_sale_price, component: () => import('@/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_price/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs', name: EnumRouterName.warehouse_pre_sale_blocs, component: () => import('@/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/warehouse_pre_sale/warehouse_pre_sale_designate', name: 'warehouse_pre_sale_designate', component: () => import('@/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_designate/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_trade/spot_trade_order_transaction', name: EnumRouterName.spot_trade_order_transaction, component: () => import('@/views/market/spot_trade/spot_trade_order_transaction/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_basis_difference', name: EnumRouterName.spot_trade_order_transaction_basis_difference, component: () => import('@/views/market/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_basis_difference/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_listing_transfer', name: EnumRouterName.spot_trade_order_transaction_listing_transfer, component: () => import('@/views/market/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_listing_transfer/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_swap', name: 'spot_trade_order_transaction_swap', component: () => import('@/views/market/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_swap/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_trade/spot_trade_reference_market', name: EnumRouterName.spot_trade_reference_market, component: () => import('@/views/market/spot_trade/spot_trade_reference_market/index.vue'), meta: { requireAuth: true, }, } ] }, { path: '/search_document_records', name: EnumRouterName.search_document_records, component: Main, meta: { requireAuth: true, }, // redirect: { name: EnumRouterName.search_document_records, }, children: [ { path: '/search_document_records/search_commodity_contract', name: EnumRouterName.search_commodity_contract, component: () => import('@/views/search/search_document_records/search_commodity_contract/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records/search_commodity_contract/search_document_records_contract_summary', name: EnumRouterName.search_document_records_contract_summary, component: () => import('@/views/search/search_document_records/search_commodity_contract/search_document_records_contract_summary/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_commodity_contract/search_document_records_commission_record', name: EnumRouterName.search_document_records_commission_record, component: () => import('@/views/search/search_document_records/search_commodity_contract/search_document_records_commission_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_commodity_contract/search_document_records_delivery_record', name: EnumRouterName.search_document_records_delivery_record, component: () => import('@/views/search/search_document_records/search_commodity_contract/search_document_records_delivery_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_document_records/search_document_records_transaction_record', name: EnumRouterName.search_document_records_transaction_record, component: () => import('@/views/search/search_document_records/search_commodity_contract/search_document_records_transaction_record/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/search_document_records/search_pre_sale_warehouse_receipt', name: EnumRouterName.search_pre_sale_warehouse_receipt, component: () => import('@/views/search/search_document_records/search_pre_sale_warehouse_receipt/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_commission_record', name: EnumRouterName.search_pre_sale_warehouse_receipt_commission_record, component: () => import('@/views/search/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_commission_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_order_summary', name: EnumRouterName.search_pre_sale_warehouse_receipt_order_summary, component: () => import('@/views/search/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_order_summary/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_protocol_specified_record', name: EnumRouterName.search_pre_sale_warehouse_receipt_protocol_specified_record, component: () => import('@/views/search/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_protocol_specified_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_transaction_record', name: EnumRouterName.search_pre_sale_warehouse_receipt_transaction_record, component: () => import('@/views/search/search_document_records/search_pre_sale_warehouse_receipt/search_pre_sale_warehouse_receipt_transaction_record/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/search_document_records/search_spot_warrant', name: EnumRouterName.search_spot_warrant, component: () => import('@/views/search/search_document_records/search_spot_warrant/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records/search_spot_warrant/search_spot_warrant_transaction_record', name: EnumRouterName.search_spot_warrant_transaction_record, component: () => import('@/views/search/search_document_records/search_spot_warrant/search_spot_warrant_transaction_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_spot_warrant/search_spot_warrant_protocol_specified_record', name: EnumRouterName.search_spot_warrant_protocol_specified_record, component: () => import('@/views/search/search_document_records/search_spot_warrant/search_spot_warrant_protocol_specified_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_spot_warrant/search_spot_warrant_listing_record', name: EnumRouterName.search_spot_warrant_listing_record, component: () => import('@/views/search/search_document_records/search_spot_warrant/search_spot_warrant_listing_record/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records/search_spot_warrant/search_spot_warrant_warehouse_receipt_details', name: EnumRouterName.search_spot_warrant_warehouse_receipt_details, component: () => import('@/views/search/search_document_records/search_spot_warrant/search_spot_warrant_warehouse_receipt_details/index.vue'), meta: { requireAuth: true, }, }, ] }, ] }, { path: '/search_capital_flow', name: EnumRouterName.search_capital_flow, component: Main, meta: { requireAuth: true, }, children: [ { path: '/search_capital_flow/search_capital_flow_tab', name: EnumRouterName.search_capital_flow_tab, component: () => import('@/views/search/search_capital_flow/search_capital_flow_tab/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_capital_flow_tab_today', name: 'search_capital_flow_tab_today', component: () => import('@/views/search/search_capital_flow/search_capital_flow_tab/search_capital_flow_tab_today/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_capital_flow_tab_history', name: 'search_capital_flow_tab_history', component: () => import('@/views/search/search_capital_flow/search_capital_flow_tab/search_capital_flow_tab_history/index.vue'), meta: { requireAuth: true, }, }, ] } ] }, { path: '/search_document_records_commission_record_sub', name: 'search_document_records_commission_record_sub', component: Main, meta: { requireAuth: true, }, children: [ { path: '/search_document_records_commodity_contract', name: 'search_document_records_commodity_contract', component: () => import('@/views/search/search_document_records_commission_record_sub/search_document_records_commodity_contract/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records_commodity_contract_today', name: 'search_document_records_commodity_contract_today', component: () => import('@/views/search/search_document_records_commission_record_sub/search_document_records_commodity_contract/search_document_records_done_commodity_contract_today/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records_commodity_contract_history', name: 'search_document_records_commodity_contract_history', component: () => import('@/views/search/search_document_records_commission_record_sub/search_document_records_commodity_contract/search_document_records_done_commodity_contract_history/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/search_document_records_spot_warrant', name: 'search_document_records_spot_warrant', component: () => import('@/views/search/search_document_records_commission_record_sub/search_document_records_spot_warrant/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records_spot_warrant_today', name: 'search_document_records_spot_warrant_today', component: () => import('@/views/search/search_document_records_commission_record_sub/search_document_records_spot_warrant/search_document_records_spot_warrant_today/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records_spot_warrant_history', name: 'search_document_records_spot_warrant_history', component: () => import('@/views/search/search_document_records_commission_record_sub/search_document_records_spot_warrant/search_document_records_spot_warrant_history/index.vue'), meta: { requireAuth: true, }, }, ] }, ] }, { path: '/search_document_records_done', name: 'search_document_records_done', component: Main, meta: { requireAuth: true, }, children: [ { path: '/search_document_records_done_commodity_contract', name: 'search_document_records_done_commodity_contract', component: () => import('@/views/search/search_document_records_done/search_document_records_done_commodity_contract/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records_done_commodity_contract_today', name: 'search_document_records_done_commodity_contract_today', component: () => import('@/views/search/search_document_records_done/search_document_records_done_commodity_contract/search_document_records_done_commodity_contract_today/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records_done_commodity_contract_history', name: 'search_document_records_done_commodity_contract_history', component: () => import('@/views/search/search_document_records_done/search_document_records_done_commodity_contract/search_document_records_done_commodity_contract_history/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/search_document_records_done_search_spot_warrant', name: 'search_document_records_done_search_spot_warrant', component: () => import('@/views/search/search_document_records_done/search_document_records_done_search_spot_warrant/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_document_records_done_search_spot_warrant_today', name: 'search_document_records_done_search_spot_warrant_today', component: () => import('@/views/search/search_document_records_done/search_document_records_done_search_spot_warrant/search_document_records_done_search_spot_warrant_today/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_document_records_done_search_spot_warrant_history', name: 'search_document_records_done_search_spot_warrant_history', component: () => import('@/views/search/search_document_records_done/search_document_records_done_search_spot_warrant/search_document_records_done_search_spot_warrant_history/index.vue'), meta: { requireAuth: true, }, }, ] }, ] }, { path: '/search_financing_inquiry', name: EnumRouterName.search_financing_inquiry, component: Main, meta: { requireAuth: true, }, children: [ { path: '/search_financing_inquiry/search_financing_inquiry_apply_order', name: EnumRouterName.search_financing_inquiry_apply_order, component: () => import('@/views/search/search_financing_inquiry/search_financing_inquiry_apply_order/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_financing_inquiry/search_financing_inquiry_contract', name: EnumRouterName.search_financing_inquiry_contract, component: () => import('@/views/search/search_financing_inquiry/search_financing_inquiry_contract/index.vue'), meta: { requireAuth: true, }, } ] }, { path: '/search_performance_query', name: EnumRouterName.search_performance_query, component: Main, meta: { requireAuth: true, }, children: [ { path: '/search_performance_query/search_performance_query_buy_performance', name: EnumRouterName.search_performance_query_buy_performance, component: () => import('@/views/search/search_performance_query/search_performance_query_buy_performance/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_performance_query_buy_performance_done', name: 'search_performance_query_buy_performance_done', component: () => import('@/views/search/search_performance_query/search_performance_query_buy_performance/search_performance_query_buy_performance_done/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_performance_query_buy_performance_unsuccess', name: 'search_performance_query_buy_performance_unsuccess', component: () => import('@/views/search/search_performance_query/search_performance_query_buy_performance/search_performance_query_buy_performance_unsuccess/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/search_performance_query/search_performance_query_sell_performance', name: EnumRouterName.search_performance_query_sell_performance, component: () => import('@/views/search/search_performance_query/search_performance_query_sell_performance/index.vue'), meta: { requireAuth: true, }, children: [ { path: '/search_performance_query_sell_performance_done', name: 'search_performance_query_sell_performance_done', component: () => import('@/views/search/search_performance_query/search_performance_query_sell_performance/search_performance_query_sell_performance_done/index.vue'), meta: { requireAuth: true, }, }, { path: '/search_performance_query_sell_performance_unsuccess', name: 'search_performance_query_sell_performance_unsuccess', component: () => import('@/views/search/search_performance_query/search_performance_query_sell_performance/search_performance_query_sell_performance_unsuccess/index.vue'), meta: { requireAuth: true, }, }, ] } ] }, { path: '/search_pickup_query', name: EnumRouterName.search_pickup_query, component: Main, meta: { requireAuth: true, }, children: [ { path: '/search_pickup_query/search_pickup_query_tab', name: EnumRouterName.search_pickup_query_tab, component: () => import('@/views/search/search_pickup_query/search_pickup_query_tab/index.vue'), meta: { requireAuth: true, }, } ] }, { path: '/entry_of_spot_information_sub', name: 'entry_of_spot_information_sub', component: Main, meta: { requireAuth: true, }, children: [ { path: '/entry_of_spot_information_sub/entry_of_spot_information', name: 'entry_of_spot_information', component: () => import('@/views/hedging/entry_of_spot_information/index.vue'), meta: { requireAuth: true, }, }, ] }, { path: '/spot_price_management', name: EnumRouterName.spot_price_management, component: Main, meta: { requireAuth: true, }, children: [ { path: '/spot_price_management/spot_price_management_disable', name: EnumRouterName.spot_price_management_disable, component: () => import('@/views/hedging/spot_price_management/spot_price_management_disable/index.vue'), meta: { requireAuth: true, }, }, { path: '/spot_price_management/spot_price_management_normal', name: EnumRouterName.spot_price_management_normal, component: () => import('@/views/hedging/spot_price_management/spot_price_management_normal/index.vue'), meta: { requireAuth: true, }, }, ] }, ], }, { path: '/test', name: 'test', component: () => import('@/views/test/index.vue'), }, { // VueRouter 匹配规则是从上往下 建议把*放最后 path: '/:pathMatch(.*)*', name: '404', component: () => import('@/views/error-page/404.vue'), }, ]; const router = createRouter({ history: createWebHashHistory(), routes, }); // 路由拦截 router.beforeEach((to, from, next) => { // 前往登录页时 直接走登出流程 if (to.fullPath === '/login') { eventBus.$emit('logout'); next(); } else { // 前往其他页 判断是否是登录状态 if (isLogin()) { return next(); } else { if (!getLoadIsComplete()) { // 没有加载对应的资料,表示第一次启动项目 console.log('to', to); const { ACCOUNT, PASSWORD } = to.query const name = to.name ? to.name : 'home' if (ACCOUNT && PASSWORD) { setLoadComplete(false) globalDataRefresh().then(() => { const { ACCOUNT, PASSWORD } = to.query login(ACCOUNT as string, PASSWORD as string, [], true).then(res => { setLoadComplete(true) localStorageUtil.setItem('loginAccount', ACCOUNT); // 缓存登录账号 eventBus.$emit('loginSuccess', true); next({ name }) }).catch(err => { // 异常需要跳转到错误页面,让用户手动重试 console.log('err', err); }) }) } else { // 跳转到登录页面 next() } } else { // next() } } } }); export default router;