import { createRouter, createWebHashHistory } from "vue-router"; import HomeIndex from "../views/HomeIndex.vue"; import AppIndex from "../views/index/Index.vue"; import MarketIndex from "../views/market/Index.vue"; import AssetIndex from "../views/asset/Index.vue"; import UserIndex from "../views/user/Index.vue"; import ApplyPermission from "../views/index/ApplyPermission.vue"; import SplashScreen from "../views/index/SplashScreen.vue"; import RiskTips from "../views/index/RiskTips.vue"; import SearchIcon from "../views/index/SearchIcon.vue"; import Notification from "../views/notification/Index.vue"; import IndexUser from "../views/index/User.vue"; import UserCenter from "../views/index/UserCenter.vue"; import MarketDetails from "../views/market/details/Index.vue"; import HistoryIndex from "../views/asset/history/Index.vue"; import EntrustDetails from "../views/asset/history/EntrustDetails.vue"; import PositionDetails from "../views/asset/history/PositionDetails.vue"; import IcoIndex from "../views/index/ico/Index.vue"; import LoanIndex from "../views/index/loan/Index.vue"; import LoanRules from "../views/index/loan/Rules.vue"; import UserLoanIndex from "../views/user/loan/Index.vue"; import CommitMessage from "../views/index/loan/CommitMessage.vue"; import ContractTerms from "../views/index/loan/ContractTerms.vue"; import Signature from "../views/index/loan/Signature.vue"; import DeleteAccount from "../views/user/DeleteAccount.vue"; import RechargeIndex from "../views/index/recharge/RechargeIndex.vue"; import WithdrawIndex from "../views/index/recharge/WithdrawIndex.vue"; import RechargeChangeCoin from "../views/index/recharge/ChangeCoin.vue"; import Transfer from "../views/index/recharge/Transfer.vue"; import TransferHistory from "../views/index/recharge/TransferHistory.vue"; import UserAsset from "../views/asset/UserAsset.vue"; import OTCMessageIndex from "@/views/asset/otc/message/Index.vue"; import OTCOrderIndex from "@/views/asset/otc/order/Index.vue"; import OTCTransactionIndex from "@/views/asset/otc/transaction/Index.vue"; import OTCUserIndex from "@/views/asset/otc/user/Index.vue"; import CloudCalculator from "@/views/index/cloudComputingPower/Calculator.vue"; import StakingIndex from "@/views/index/staking/Index.vue"; import StakingRules from "@/views/index/staking/Rules.vue"; import StakingRecord from "@/views/index/staking/Record.vue"; import OTCIndex from "@/views/asset/otc/Index.vue"; import MyPower from "@/views/index/cloudComputingPower/MyPower.vue"; import MiningOutput from "@/views/index/cloudComputingPower/MiningOutput.vue"; import ElectricityRecharge from "@/views/index/cloudComputingPower/ElectricityRecharge.vue"; import ElectricitySetting from "@/views/index/cloudComputingPower/ElectricitySetting.vue"; import ElectricityBill from "@/views/index/cloudComputingPower/ElectricityBill.vue"; import CloudMyOrder from "@/views/index/cloudComputingPower/MyOrder.vue"; import CloudComPowerIndex from "@/views/index/cloudComputingPower/Index.vue"; import ComboDetails from "@/views/index/cloudComputingPower/ComboDetails.vue"; import RechargeHistory from "../views/index/recharge/RechargeHistory.vue"; import WithdrawHistory from "../views/index/recharge/WithdrawHistory.vue"; import FinancialIndex from "../views/index/financial/Index.vue"; import FinancialBuy from "../views/index/financial/Buy.vue"; import MyFinancial from "../views/index/financial/MyFinancial.vue"; import AddzfbAccount from "@/views/asset/otc/transaction/AddzfbAccount.vue"; import AddBankAccount from "@/views/asset/otc/transaction/AddBankAccount.vue"; import OTCMerchantDetails from "@/views/asset/otc/user/MerchantDetails.vue"; import MyFollow from "@/views/asset/otc/user/MyFollow.vue"; import LevelLimit from "@/views/asset/otc/user/LevelLimit.vue"; import TransactionGuide from "@/views/asset/otc/user/TransactionGuide.vue"; import CommonFunctionsPopup from "@/views/bitcoin/CommonFunctionsPopup/CommonFunctionsPopup.vue"; // 子组件路径 import TradeRules from "@/views/bitcoin/CommonFunctionsPopup/GeneralLevel2/TradeRules.vue"; // 新建 import TradeLayout from "@/views/bitcoin/TradeLayout.vue"; // 新建的公共父组件 import TradeFutures from "@/views/bitcoin/TradeFutures.vue"; // (合约) import TradeSeconds from "@/views/bitcoin/lever/TradeSeconds.vue"; // 秒合约(占位) import TradeOptions from "@/views/bitcoin/lever/TradeOptions.vue"; // 期权(占位) import TradeMargin from "@/views/bitcoin/lever/TradeMargin.vue"; import Calculator from "../views/bitcoin/Calculator.vue"; // 新建的计算器页面 import TradeSettings from "@/views/bitcoin/CommonFunctionsPopup/GeneralLevel2/TradeSettings.vue"; // 新建 import OptionTrading from "@/views/bitcoin/lever/OptionTrading.vue"; import AddressAuth from "@/views/user/AddressAuth.vue"; import RelativeAuth from "@/views/user/RelativeAuth.vue"; import LanguageSwitch from "@/views/user/LanguageSwitch.vue"; //语言国际化 const routes = [ { path: "/", name: "home", component: HomeIndex, children: [ { path: "", name: "appIndex", component: AppIndex, }, { path: "marketIndex", name: "marketIndex", component: MarketIndex, }, { path: "/bitcoin", component: TradeLayout, // 而是布局组件 // 当访问 /bitcoin 时,自动重定向到 /bitcoin/contract redirect: "/bitcoin/CryptocurrencyTrading", children: [ // 1. 核心交易子路由 { path: "contract", name: "TradeContract", component: TradeFutures, // 核心交易逻辑 meta: { title: "合约" }, }, { path: "seconds", name: "TradeSeconds", component: TradeSeconds, meta: { title: "秒合约" }, }, { path: "options", name: "TradeOptions", component: TradeOptions, meta: { title: "期权" }, }, { path: "CryptocurrencyTrading", name: "Cryptocurrency", component: () => import("@/views/bitcoin/lever/CryptocurrencyTrading.vue"), meta: { title: "币币交易" }, }, { path: "margin", name: "TradeMargin", component: TradeMargin, meta: { title: "杠杆" }, }, { path: "settings", name: "TradeSettings", component: TradeSettings, }, ], }, { path: "calculator", name: "calculator", component: Calculator }, { path: "OptionTrading", name: "OptionTrading", component: OptionTrading, meta: { title: "" }, }, { path: "/assetIndex", name: "assetIndex", component: AssetIndex, }, { path: "/userIndex", name: "userIndex", component: UserIndex, }, ], }, { path: "/AdvancedCertification", name: "AdvancedCertification", component: () => import("@/views/user/AdvancedCertification.vue"), meta: { title: "" }, }, { path: "/PnLAnalysis", name: "PnLAnalysis", component: () => import("@/views/bitcoin/lever/PnLAnalysis.vue"), meta: { title: "" }, }, { path: "/otcIndex", name: "otcIndex", component: OTCIndex, children: [ { path: "", name: "otcTransactionIndex", component: OTCTransactionIndex, }, { path: "/otcMessageIndex", name: "otcMessageIndex", component: OTCMessageIndex, }, { path: "/otcOrderIndex", name: "otcOrderIndex", component: OTCOrderIndex, }, { path: "/otcUserIndex", name: "otcUserIndex", component: OTCUserIndex, }, ], }, { path: "/detail", name: "HelpCenter", // 记得创建这个 Detail.vue 文件 component: () => import("@/views/user/HelpCenter.vue"), }, { // 动态路由,接收一个 id 参数 path: "/help/detail", name: "HelpDetail", component: () => import("@/views/user/HelpDetail.vue"), }, { path: "/about", name: "AboutUs", component: () => import("@/views/user/AboutUs.vue"), }, { path: "/about/privacy", name: "PrivacyPolicy", component: () => import("@/views/user/PrivacyPolicy.vue"), }, { path: "/about/agreement", name: "UserAgreement", component: () => import("@/views/user/UserAgreement.vue"), }, { path: "/invite", name: "InviteCenter", component: () => import("@/views/user/InviteCenter.vue"), // 上面的组件 }, { path: "/invite/poster", name: "InvitePoster", component: () => import("@/views/user/InvitePoster.vue"), }, { path: "/vip", name: "VipCenter", component: () => import("@/views/user/VipCenter.vue"), }, { path: "/vip/rules", name: "VipRules", component: () => import("@/views/user/VipRules.vue"), }, { path: "/kyc/step1", name: "KycForm", component: () => import("@/views/user/KycForm.vue"), // 填写表单 }, { path: "/kyc/step2", name: "KycUpload", component: () => import("@/views/user/KycUpload.vue"), // 上传证件 }, { path: "/security", name: "SecuritySettings", component: () => import("@/views/user/SecuritySettings.vue"), // 核心页面 }, { path: "/set-password", name: "SetPassword", component: () => import("@/views/user/SetPassword.vue"), // 新页面 }, { path: "/delete-account", name: "DeleteAccount", component: () => import("@/views/user/DeleteAccount.vue"), // 新页面 }, { // 地址认证:复用同一个组件,通过 query 参数 type 来区分是 "home" 还是 "work" path: "/auth/address", name: "address-auth", component: AddressAuth, }, { // 亲属认证 path: "/auth/relative", name: "relative-auth", component: RelativeAuth, }, { path: "/language", name: "LanguageSwitch", component: LanguageSwitch, meta: { title: "切换语言" }, }, { path: "/basic-verify", name: "BasicVerify", component: () => import("@/views/user/BasicVerify.vue"), meta: { title: "基础认证" }, }, { path: "/applyPermission", name: "applyPermission", component: ApplyPermission, }, { path: "/splashScreen", name: "splashScreen", component: SplashScreen, }, { path: "/riskTips", name: "riskTips", component: RiskTips, }, { path: "/searchIcon", name: "searchIcon", component: SearchIcon, }, { path: "/notification", name: "notification", component: Notification, }, { path: "/indexUser", name: "indexUser", component: IndexUser, }, { path: "/userCenter", name: "userCenter", component: UserCenter, }, { path: "/marketDetails", name: "marketDetails", component: MarketDetails, }, { path: "/historyIndex", name: "historyIndex", component: HistoryIndex, }, { path: "/entrustDetails", name: "entrustDetails", component: EntrustDetails, }, { path: "/positionDetails", name: "positionDetails", component: PositionDetails, }, { path: "/icoIndex", name: "icoIndex", component: IcoIndex, }, { path: "/loanIndex", name: "loanIndex", component: LoanIndex, }, { path: "/loanRules", name: "loanRules", component: LoanRules, }, { path: "/userLoanIndex", name: "userLoanIndex", component: UserLoanIndex, }, { path: "/commitMessage", name: "commitMessage", component: CommitMessage, }, { path: "/contractTerms", name: "contractTerms", component: ContractTerms, }, { path: "/signature", name: "signature", component: Signature, }, { path: "/deleteAccount", name: "deleteAccount", component: DeleteAccount, }, { path: "/rechargeIndex", name: "rechargeIndex", component: RechargeIndex, }, { path: "/rechargeChangeCoin", name: "rechargeChangeCoin", component: RechargeChangeCoin, }, { path: "/withdrawIndex", name: "withdrawIndex", component: WithdrawIndex, }, { path: "/transfer", name: "transfer", component: Transfer, }, { path: "/transferHistory", name: "transferHistory", component: TransferHistory, }, { path: "/userAsset", name: "userAsset", component: UserAsset, }, { path: "/applyPermission", name: "applyPermission", component: ApplyPermission, }, { path: "/splashScreen", name: "splashScreen", component: SplashScreen, }, { path: "/riskTips", name: "riskTips", component: RiskTips, }, { path: "/searchIcon", name: "searchIcon", component: SearchIcon, }, { path: "/notification", name: "notification", component: Notification, }, { path: "/indexUser", name: "indexUser", component: IndexUser, }, { path: "/userCenter", name: "userCenter", component: UserCenter, }, { path: "/marketDetails", name: "marketDetails", component: MarketDetails, }, { path: "/historyIndex", name: "historyIndex", component: HistoryIndex, }, { path: "/entrustDetails", name: "entrustDetails", component: EntrustDetails, }, { path: "/positionDetails", name: "positionDetails", component: PositionDetails, }, { path: "/icoIndex", name: "icoIndex", component: IcoIndex, }, { path: "/loanIndex", name: "loanIndex", component: LoanIndex, }, { path: "/loanRules", name: "loanRules", component: LoanRules, }, { path: "/userLoanIndex", name: "userLoanIndex", component: UserLoanIndex, }, { path: "/rechargeHistory", name: "rechargeHistory", component: RechargeHistory, }, { path: "/withdrawHistory", name: "withdrawHistory", component: WithdrawHistory, }, { path: "/financialIndex", name: "financialIndex", component: FinancialIndex, }, { path: "/financialBuy", name: "financialBuy", component: FinancialBuy, }, { path: "/myFinancial", name: "myFinancial", component: MyFinancial, }, { path: "/cloudComPowerIndex", name: "cloudComPowerIndex", component: CloudComPowerIndex, }, { path: "/comboDetails", name: "comboDetails", component: ComboDetails, }, { path: "/myPower", name: "myPower", component: MyPower, }, { path: "/miningOutput", name: "miningOutput", component: MiningOutput, }, { path: "/electricityRecharge", name: "electricityRecharge", component: ElectricityRecharge, }, { path: "/electricitySetting", name: "electricitySetting", component: ElectricitySetting, }, { path: "/electricityBill", name: "electricityBill", component: ElectricityBill, }, { path: "/cloudMyOrder", name: "cloudMyOrder", component: CloudMyOrder, }, { path: "/cloudCalculator", name: "cloudCalculator", component: CloudCalculator, }, { path: "/stakingIndex", name: "stakingIndex", component: StakingIndex, }, { path: "/stakingRules", name: "stakingRules", component: StakingRules, }, { path: "/stakingRecord", name: "stakingRecord", component: StakingRecord, }, { path: "/addzfbAccount", name: "addzfbAccount", component: AddzfbAccount, }, { path: "/addBankAccount", name: "addBankAccount", component: AddBankAccount, }, { path: "/OTCMerchantDetails", name: "OTCMerchantDetails", component: OTCMerchantDetails, }, { path: "/myFollow", name: "myFollow", component: MyFollow, }, { path: "/levelLimit", name: "levelLimit", component: LevelLimit, }, { path: "/transactionGuide", name: "transactionGuide", component: TransactionGuide, }, ]; const router = createRouter({ history: createWebHashHistory(), routes, }); export default router;