tag1
This commit is contained in:
80
src/router/index.js
Normal file
80
src/router/index.js
Normal file
@@ -0,0 +1,80 @@
|
||||
import Vue from 'vue'
|
||||
import VueRouter from 'vue-router'
|
||||
import EditNote from '@/views/EditNote.vue'
|
||||
import ViewNote from '@/views/ViewNote.vue'
|
||||
import ErrorView from '@/views/ErrorView.vue'
|
||||
import {getKeyMeta, getNoteMeta} from "@/api/note";
|
||||
import {getStoreKey} from "@/api/lock";
|
||||
import storage from "@/libs/storage";
|
||||
|
||||
Vue.use(VueRouter)
|
||||
|
||||
let keyMeta = null;
|
||||
|
||||
function getNoteView() {
|
||||
let path = location.pathname;
|
||||
if (null != keyMeta) {
|
||||
path = "/" + keyMeta.key;
|
||||
}
|
||||
|
||||
let reg = /^\/[abcdefhikmnopqstuvwxyz23456789]{16}$/
|
||||
if (!reg.test(path)) {
|
||||
return;
|
||||
}
|
||||
|
||||
let key = path.substr(1, path.length - 1);
|
||||
|
||||
let storeKey = getStoreKey(key);
|
||||
if (keyMeta) {
|
||||
storage.session.setObject(storeKey + '.keyMeta', keyMeta);
|
||||
return EditNote;
|
||||
}
|
||||
|
||||
let noteMeta = null;
|
||||
noteMeta = getNoteMeta(key);
|
||||
if (!noteMeta || !noteMeta.key) {
|
||||
return EditNote;
|
||||
}
|
||||
|
||||
storage.session.setObject(storeKey + '.noteMeta', noteMeta);
|
||||
return ViewNote;
|
||||
}
|
||||
|
||||
|
||||
function getHomeRedirect() {
|
||||
let path = location.pathname;
|
||||
if (path != '/') {
|
||||
return;
|
||||
}
|
||||
let km = getKeyMeta();
|
||||
km.isNew = true;
|
||||
//sessionStorage.setItem(km.getKey() + '.keyMeta', km);
|
||||
keyMeta = km;
|
||||
return '/' + keyMeta.key;
|
||||
}
|
||||
|
||||
|
||||
const routes = [
|
||||
{
|
||||
path: '/',
|
||||
name: 'home',
|
||||
redirect: getHomeRedirect(),
|
||||
},
|
||||
{
|
||||
path: '/error',
|
||||
name: 'error',
|
||||
component: ErrorView,
|
||||
},
|
||||
{
|
||||
path: '/:name([abcdefhikmnopqstuvwxyz23456789]{16})',
|
||||
name: 'note',
|
||||
component: getNoteView(),
|
||||
}
|
||||
]
|
||||
|
||||
const router = new VueRouter({
|
||||
routes,
|
||||
mode: 'history'
|
||||
})
|
||||
|
||||
export default router
|
||||
Reference in New Issue
Block a user