| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734 |
- import {
- createRouter,
- createWebHistory,
- createWebHashHistory
- } from 'vue-router';
- import store from '../store';
- import {
- Page
- } from './Page';
- import {
- Dialog
- } from 'vant';
- import http from '../plugins/http';
- jsapiSign();
- function jsapiSign() {
- return;
- // eslint-disable-next-line no-unreachable
- setTimeout(() => {
- if (/micromessenger/i.test(navigator.userAgent)) {
- if (/localhost|(192\.168)/i.test(location.host)) {
- return;
- }
- let isIOS = /iphone|ipad/i.test(navigator.userAgent);
- http.http
- .get('/wx/jsapiSign', {
- url: isIOS ? store.state.firstUrl : location.origin + location.href
- })
- .then(res => {
- wx.config({
- debug: false,
- appId: res.appId,
- timestamp: res.timestamp,
- nonceStr: res.nonceStr,
- signature: res.signature,
- jsApiList: [
- 'chooseWXPay',
- 'updateAppMessageShareData',
- 'updateTimelineShareData',
- 'hideAllNonBaseMenuItem',
- 'scanQRCode'
- ],
- openTagList: ['wx-open-launch-weapp']
- });
- wx.error(function (res) {
- console.log(res);
- });
- wx.ready(function () {
- wx.updateAppMessageShareData({
- title: '拉索宇宙',
- desc: '全球首个基于区块链的游戏资产集换中心',
- link: location.origin + '/9th',
- imgUrl: 'https://9space-2021.oss-cn-shenzhen.aliyuncs.com/nft/2021-11-05-15-58-30YwqLzMjy.jpg'
- });
- wx.updateTimelineShareData({
- title: '拉索宇宙-全球首个基于区块链的游戏资产集换中心',
- link: location.origin + '/9th',
- imgUrl: 'https://9space-2021.oss-cn-shenzhen.aliyuncs.com/nft/2021-11-05-15-58-30YwqLzMjy.jpg'
- });
- });
- })
- .catch(e => {});
- }
- }, 200);
- }
- jsapiSign();
- const routes = [{
- path: '/',
- redirect: 'home'
- },
- {
- path: '/',
- name: 'index',
- component: () => import('../views/Index.vue'),
- children: [{
- path: '/home',
- name: 'home',
- component: () => import('../views/Home.vue'),
- meta: {
- pageType: Page.Every,
- menuPage: true,
- title: '拉索宇宙'
- }
- },
- {
- path: '/discover',
- name: 'discover',
- component: () => import('../views/Discover.vue'),
- meta: {
- pageType: Page.Every,
- menuPage: true,
- title: '拉索宇宙'
- }
- },
- {
- path: '/creator',
- name: 'creator',
- component: () => import('../views/Creator.vue'),
- meta: {
- pageType: Page.Every,
- menuPage: true,
- title: '拉索宇宙'
- }
- },
- {
- path: '/store',
- name: 'store',
- component: () => import('../views/Store.vue'),
- meta: {
- title: '拉索宇宙',
- needBack: true
- }
- },
- {
- path: '/mineMessages',
- name: 'mineMessages',
- component: () => import('../views/user/Messages.vue'),
- meta: {
- title: '消息中心'
- }
- },
- {
- path: '/mine',
- name: 'mine',
- component: () => import('../views/Mine.vue'),
- meta: {
- pageType: Page.Every,
- menuPage: true,
- title: '拉索宇宙'
- }
- }
- ]
- },
- {
- path: '/hall',
- name: 'hall',
- component: () => import('../views/hall/Detail.vue'),
- meta: {
- pageType: Page.Every,
- menuPage: true,
- isHall: true,
- title: '拉索宇宙'
- }
- },
- {
- path: '/hallEdit',
- name: 'hallEdit',
- component: () => import('../views/hall/Edit.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙',
- isHall: true,
- tabColor: '#191d27'
- }
- },
- {
- path: '/productAdd',
- name: 'productAdd',
- component: () => import('../views/hall/ProductAdd.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙',
- isHall: true,
- tabColor: '#191d27'
- }
- },
- {
- path: '/login',
- name: 'userLogin',
- component: () => import('../views/account/Login.vue'),
- meta: {
- pageType: Page.Login,
- title: ' ',
- tabColor: '#191d27'
- }
- },
- {
- path: '/agreement',
- name: 'agreement',
- component: () => import('../views/account/Agreement.vue'),
- meta: {
- pageType: Page.Login,
- title: '协议'
- }
- },
- {
- path: '/register',
- name: 'userRegister',
- component: () => import('../views/account/Register.vue'),
- meta: {
- pageType: Page.Login,
- title: '注册',
- tabColor: '#191d27'
- }
- },
- {
- path: '/forget',
- name: 'userForget',
- component: () => import('../views/account/Forget.vue'),
- meta: {
- pageType: Page.Login,
- // menuPage: true,
- title: '忘记密码'
- }
- },
- {
- path: '/changePhone',
- name: 'changePhone',
- component: () => import('../views/account/ChangePhone.vue'),
- meta: {
- title: '修改密码'
- }
- },
- {
- path: '/verified',
- name: 'userVerified',
- component: () => import('../views/account/Verified.vue'),
- meta: {
- title: ' '
- }
- },
- {
- path: '/verifiedSuc',
- name: 'verifiedSuc',
- component: () => import('../views/account/VerifiedSuc.vue')
- },
- {
- path: '/verifiedSucs',
- name: 'verifiedSucs',
- component: () => import('../views/account/VerifiedSucs.vue')
- },
- {
- path: '/Authentication',
- name: 'Authentication',
- component: () => import('../views/account/Authentication.vue')
- },
- {
- path: '/setting',
- name: 'userSetting',
- component: () => import('../views/account/Setting.vue')
- },
- {
- path: '/changeText',
- name: 'userChangeText',
- component: () => import('../views/account/ChangeText.vue')
- },
- {
- path: '/waiting',
- name: 'userWaiting',
- component: () => import('../views/account/Waiting.vue'),
- meta: {
- title: ' '
- }
- },
- {
- path: '/security',
- name: 'security',
- component: () => import('../views/account/Security.vue')
- },
- {
- path: '/about',
- name: 'about',
- component: () => import('../views/account/About.vue'),
- meta: {
- pageType: Page.Every,
- title: ' '
- }
- },
- {
- path: '/introduction',
- name: 'introduction',
- component: () => import('../views/account/Introduction.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/question',
- name: 'question',
- component: () => import('../views/account/Question.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/connect',
- name: 'connect',
- component: () => import('../views/account/Connect.vue'),
- meta: {
- pageType: Page.Every,
- title: ' '
- }
- },
- {
- path: '/tradingPassword',
- name: 'tradingPassword',
- component: () => import('../views/account/TradingPassword.vue')
- },
- {
- path: '/productDetail',
- name: 'productDetail',
- component: () => import('../views/product/Detail.vue'),
- meta: {
- pageType: Page.Every,
- tabColor: '#191d27'
- }
- },
- {
- path: '/collectionGift',
- name: 'collectionGift',
- component: () => import('../views/product/collectionGift.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/giftConfirmation',
- name: 'giftConfirmation',
- component: () => import('../views/product/giftConfirmation.vue')
- // meta: {
- // pageType: Page.Every,
- // title: '拉索宇宙'
- // }
- },
- // {
- // path: '/consignment',
- // name: 'consignment',
- // component: () => import('../views/product/consignment.vue'),
- // meta: {
- // pageType: Page.Every,
- // title: '拉索宇宙'
- // }
- // },
- {
- path: '/productOrderDetails',
- name: 'productOrderDetails',
- component: () => import('../views/product/orderDetails.vue'),
- meta: {
- pageType: Page.Every,
- menuPage: true,
- title: '拉索宇宙',
- tabColor: '#191d27'
- }
- },
- {
- path: '/productDetail2',
- name: 'productDetail2',
- component: () => import('../views/product/DetailMode.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/productList',
- name: 'productList',
- component: () => import('../views/product/List.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/productSearch',
- name: 'productSearch',
- component: () => import('../views/product/Search.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/creatorDetail',
- name: 'creatorDetail',
- component: () => import('../views/creator/Detail.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/creatorList',
- name: 'creatorList',
- component: () => import('../views/creator/List.vue'),
- meta: {
- pageType: Page.Every,
- title: '铸造者'
- }
- },
- {
- path: '/creatorSearch',
- name: 'creatorSearch',
- component: () => import('../views/creator/Search.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/assetDetail',
- name: 'assetDetail',
- component: () => import('../views/asset/Detail.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙',
- tabColor: '#191d27'
- }
- },
- {
- path: '/Consignment',
- name: 'Consignment',
- component: () => import('../views/asset/Consignment.vue'),
- meta: {
- pageType: Page.Every,
- title: '挂售上架'
- }
- },
- {
- path: '/ConsignmentSuccess',
- name: 'ConsignmentSuccess',
- component: () => import('../views/asset/ConsignmentSuccess.vue'),
- meta: {
- pageType: Page.Every
- }
- },
- {
- path: '/consignmentAgreement',
- name: 'consignmentAgreement',
- component: () => import('../views/asset/Agreement.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/assetSearch',
- name: 'assetSearch',
- component: () => import('../views/asset/Search.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/giveSearch',
- name: 'giveSearch',
- component: () => import('../views/asset/GiveSearch.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/submit',
- name: 'submit',
- component: () => import('../views/Submit.vue'),
- meta: {
- title: '我的订单'
- }
- },
- {
- path: '/couponList',
- name: 'couponList',
- component: () => import('../views/order/CouponList.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/givesubmit',
- name: 'givesubmit',
- component: () => import('../views/Givesubmit.vue'),
- meta: {
- title: 'GAS费用'
- }
- },
- {
- path: '/creatorDetail',
- name: 'creatorDetail',
- component: () => import('../views/creator/Detail.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙'
- }
- },
- {
- path: '/orders',
- name: 'orders',
- component: () => import('../views/order/Orders.vue'),
- meta: {
- title: '我的订单'
- }
- },
- {
- path: '/orderDetail',
- name: 'orderDetail',
- component: () => import('../views/order/Detail.vue'),
- meta: {
- title: '订单详情'
- }
- },
- {
- path: '/activityOrders',
- name: 'activityOrders',
- component: () => import('../views/order/ActivityOrders.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/activityOrderDetail',
- name: 'activityOrderDetail',
- component: () => import('../views/order/ActivityDetail.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/activityList',
- name: 'activityList',
- component: () => import('../views/activity/List1.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙',
- tabColor: '#191d27'
- }
- },
- {
- path: '/activityDetail',
- name: 'activityDetail',
- component: () => import('../views/activity/Detail1.vue'),
- meta: {
- pageType: Page.Every,
- title: '拉索宇宙',
- tabColor: '#191d27'
- }
- },
- {
- path: '/activitySubmit',
- name: 'activitySubmit',
- component: () => import('../views/activity/Submit.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/chooseProduct',
- name: 'chooseProduct',
- component: () => import('../views/activity/ChooseProduct.vue'),
- meta: {
- title: '拉索宇宙',
- needBack: true
- }
- },
- {
- path: '/mineFollows',
- name: 'mineFollows',
- component: () => import('../views/user/Follows.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/mineLove',
- name: 'mineLove',
- component: () => import('../views/user/myLove.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/authenticationStatus',
- name: 'authenticationStatus',
- component: () => import('../views/user/authenticationStatus.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/mineBanks',
- name: 'mineBanks',
- component: () => import('../views/user/Banks.vue'),
- meta: {
- title: '我的银行卡'
- }
- },
- {
- path: '/mineBanksAdd',
- name: 'mineBanksAdd',
- component: () => import('../views/user/BanksAdd.vue'),
- meta: {}
- },
- {
- path: '/mineAddress',
- name: 'mineAddress',
- component: () => import('../views/user/Address.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/mineMyOrder',
- name: 'mineMyOrder',
- component: () => import('../views/user/myOrder.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/mineWallet',
- name: 'mineWallet',
- component: () => import('../views/user/Wallet.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/mineBankCard',
- name: 'mineBankCard',
- component: () => import('../views/user/bankCard.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/mineExchange',
- name: 'mineExchange',
- component: () => import('../views/user/Exchange.vue'),
- meta: {
- title: '藏品记录'
- }
- },
- {
- path: '/mineAccountSecurity',
- name: 'mineAccountSecurity',
- component: () => import('../views/user/accountSecurity.vue'),
- meta: {
- title: '拉索宇宙'
- }
- },
- {
- path: '/realName',
- name: 'realName',
- component: () => import('../views/user/realName.vue'),
- meta: {
- title: '拉索宇宙'
- }
- }
- ];
- const router = createRouter({
- history: process.env.VUE_APP_CORDOVA === 'true' ?
- createWebHashHistory() : createWebHistory(process.env.VUE_APP_PUBLIC_PATH),
- routes,
- scrollBehavior(to, from, savedPosition) {
- return {
- x: 0,
- y: 0
- };
- }
- });
- router.beforeEach((to, from, next) => {
- if (/^\/http/.test(to.path)) {
- let url = to.path.replace('/', '');
- let params = [];
- if (to.query) {
- for (let key in to.query) {
- // eslint-disable-next-line no-prototype-builtins
- if (to.query.hasOwnProperty(key)) {
- params.push(`${key}=${to.query[key]}`);
- }
- }
- }
- if (params.length > 0) {
- url += `?${params.join('&')}`;
- }
- window.open(url);
- return;
- }
- if (to.query.invitor) {
- sessionStorage.setItem('invitor', to.query.invitor);
- }
- if (to.meta.pageType != Page.Every && to.path !== '/collectionDetail' && to.path !== '/castingDetail') {
- if (!store.state.userInfo && to.meta.pageType !== Page.Login) {
- store
- .dispatch('getUserInfo')
- .then(() => {
- next(backNext(to));
- })
- .catch(() => {
- Dialog.confirm({
- title: '提示',
- message: '用户未登录,是否立即登录'
- })
- .then(() => {
- let url = '/login';
- if (to.meta.needBack) {
- console.log(to)
- store.commit('setLoginBackUrl', to.fullPath);
- }
- next('/login');
- })
- .catch(() => {
- next(false);
- });
- });
- } else {
- next(backNext(to));
- }
- } else {
- next(backNext(to));
- !!store.state.userInfo || store.dispatch('getUserInfo');
- }
- });
- router.afterEach((to, from) => {
- jsapiSign();
- });
- function backNext(to) {
- if (to.path === '/collectionDetail') {
- to.path = '/productDetail';
- return to;
- } else if (to.path === '/castingDetail') {
- to.path = '/creatorDetail';
- return to;
- } else {
- return;
- }
- }
- export default router;
|