improve code
parent
2b433cf1e8
commit
ed59b389a5
|
@ -1,183 +1,182 @@
|
||||||
import { otherRouter } from '@/router/router';
|
import { otherRouter } from '@/router/router';
|
||||||
import { router } from '@/router/index';
|
import { router } from '@/router/index';
|
||||||
import Util from '@/libs/util';
|
import Util from '@/libs/util';
|
||||||
import Cookies from 'js-cookie';
|
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
|
||||||
const app = {
|
const app = {
|
||||||
state: {
|
state: {
|
||||||
shipTemplates:"",
|
shipTemplates: "",
|
||||||
regions:[], //此处是在地区选择器时赋值一次
|
regions: [], //此处是在地区选择器时赋值一次
|
||||||
styleStore:"", //移动端楼层装修中选择风格存储
|
styleStore: "", //移动端楼层装修中选择风格存储
|
||||||
loading: false, // 全局加载动画
|
loading: false, // 全局加载动画
|
||||||
added: false, // 加载路由标识
|
added: false, // 加载路由标识
|
||||||
navList: [], // 顶部菜单
|
navList: [], // 顶部菜单
|
||||||
currNav: "", // 当前顶部菜单name
|
currNav: "", // 当前顶部菜单name
|
||||||
currNavTitle: "", // 当前顶部菜单标题
|
currNavTitle: "", // 当前顶部菜单标题
|
||||||
cachePage: [], // 缓存的页面
|
cachePage: [], // 缓存的页面
|
||||||
lang: '',
|
lang: '',
|
||||||
isFullScreen: false,
|
isFullScreen: false,
|
||||||
openedSubmenuArr: [], // 要展开的菜单数组
|
openedSubmenuArr: [], // 要展开的菜单数组
|
||||||
menuTheme: 'dark', // 主题
|
menuTheme: 'dark', // 主题
|
||||||
themeColor: '',
|
themeColor: '',
|
||||||
storeOpenedList: [{
|
storeOpenedList: [{
|
||||||
title: '首页',
|
title: '首页',
|
||||||
path: '',
|
path: '',
|
||||||
name: 'home_index'
|
name: 'home_index'
|
||||||
}],
|
}],
|
||||||
currentPageName: '',
|
currentPageName: '',
|
||||||
currentPath: [
|
currentPath: [
|
||||||
{
|
{
|
||||||
title: '首页',
|
title: '首页',
|
||||||
path: '',
|
path: '',
|
||||||
name: 'home_index'
|
name: 'home_index'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 面包屑数组 左侧菜单
|
// 面包屑数组 左侧菜单
|
||||||
menuList: [],
|
menuList: [],
|
||||||
routers: [
|
routers: [
|
||||||
otherRouter
|
otherRouter
|
||||||
],
|
],
|
||||||
tagsList: [...otherRouter.children],
|
tagsList: [...otherRouter.children],
|
||||||
messageCount: 0,
|
messageCount: 0,
|
||||||
// 在这里定义你不想要缓存的页面的name属性值(参见路由配置router.js)
|
// 在这里定义你不想要缓存的页面的name属性值(参见路由配置router.js)
|
||||||
dontCache: ['test', 'test']
|
dontCache: ['test', 'test']
|
||||||
|
},
|
||||||
|
mutations: {
|
||||||
|
// 动态添加主界面路由,需要缓存
|
||||||
|
updateAppRouter(state, routes) {
|
||||||
|
state.routers.push(...routes);
|
||||||
|
routes.forEach(route => router.addRoute(route));
|
||||||
},
|
},
|
||||||
mutations: {
|
// 动态添加全局路由404、500等页面,不需要缓存
|
||||||
// 动态添加主界面路由,需要缓存
|
updateDefaultRouter(state, routes) {
|
||||||
updateAppRouter(state, routes) {
|
routes.forEach(route => router.addRoute(route));
|
||||||
state.routers.push(...routes);
|
},
|
||||||
router.addRoutes(routes);
|
setLoading(state, v) {
|
||||||
},
|
state.loading = v;
|
||||||
// 动态添加全局路由404、500等页面,不需要缓存
|
},
|
||||||
updateDefaultRouter(state, routes) {
|
setAdded(state, v) {
|
||||||
router.addRoutes(routes);
|
state.added = v;
|
||||||
},
|
},
|
||||||
setLoading(state, v) {
|
setNavList(state, list) {
|
||||||
state.loading = v;
|
state.navList = list;
|
||||||
},
|
},
|
||||||
setAdded(state, v) {
|
setCurrNav(state, v) {
|
||||||
state.added = v;
|
state.currNav = v;
|
||||||
},
|
},
|
||||||
setNavList(state, list) {
|
setCurrNavTitle(state, v) {
|
||||||
state.navList = list;
|
state.currNavTitle = v;
|
||||||
},
|
},
|
||||||
setCurrNav(state, v) {
|
setTagsList(state, list) {
|
||||||
state.currNav = v;
|
state.tagsList.push(...list);
|
||||||
},
|
},
|
||||||
setCurrNavTitle(state, v) {
|
updateMenulist(state, routes) {
|
||||||
state.currNavTitle = v;
|
state.menuList = routes;
|
||||||
},
|
},
|
||||||
setTagsList(state, list) {
|
addOpenSubmenu(state, name) {
|
||||||
state.tagsList.push(...list);
|
let hasThisName = false;
|
||||||
},
|
let isEmpty = false;
|
||||||
updateMenulist(state, routes) {
|
if (name.length == 0) {
|
||||||
state.menuList = routes;
|
isEmpty = true;
|
||||||
},
|
}
|
||||||
addOpenSubmenu(state, name) {
|
if (state.openedSubmenuArr.indexOf(name) > -1) {
|
||||||
let hasThisName = false;
|
hasThisName = true;
|
||||||
let isEmpty = false;
|
}
|
||||||
if (name.length == 0) {
|
if (!hasThisName && !isEmpty) {
|
||||||
isEmpty = true;
|
state.openedSubmenuArr.push(name);
|
||||||
}
|
}
|
||||||
if (state.openedSubmenuArr.indexOf(name) > -1) {
|
},
|
||||||
hasThisName = true;
|
closePage(state, name) {
|
||||||
}
|
state.cachePage.forEach((item, index) => {
|
||||||
if (!hasThisName && !isEmpty) {
|
if (item == name) {
|
||||||
state.openedSubmenuArr.push(name);
|
state.cachePage.splice(index, 1);
|
||||||
}
|
|
||||||
},
|
|
||||||
closePage(state, name) {
|
|
||||||
state.cachePage.forEach((item, index) => {
|
|
||||||
if (item == name) {
|
|
||||||
state.cachePage.splice(index, 1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
localStorage.cachePage = JSON.stringify(state.cachePage);
|
|
||||||
},
|
|
||||||
initCachepage(state) {
|
|
||||||
if (localStorage.cachePage) {
|
|
||||||
state.cachePage = JSON.parse(localStorage.cachePage);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
removeTag(state, name) {
|
|
||||||
state.storeOpenedList.map((item, index) => {
|
|
||||||
if (item.name == name) {
|
|
||||||
state.storeOpenedList.splice(index, 1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
storeOpenedList(state, get) {
|
|
||||||
let openedPage = state.storeOpenedList[get.index];
|
|
||||||
if (get.argu) {
|
|
||||||
openedPage.argu = get.argu;
|
|
||||||
}
|
|
||||||
if (get.query) {
|
|
||||||
openedPage.query = get.query;
|
|
||||||
}
|
|
||||||
state.storeOpenedList.splice(get.index, 1, openedPage);
|
|
||||||
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
|
||||||
},
|
|
||||||
clearAllTags(state) {
|
|
||||||
state.storeOpenedList.splice(1);
|
|
||||||
state.cachePage.length = 0;
|
|
||||||
localStorage.cachePage = '';
|
|
||||||
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
|
||||||
},
|
|
||||||
clearOtherTags(state, vm) {
|
|
||||||
let currentName = vm.$route.name;
|
|
||||||
let currentIndex = 0;
|
|
||||||
state.storeOpenedList.forEach((item, index) => {
|
|
||||||
if (item.name == currentName) {
|
|
||||||
currentIndex = index;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (currentIndex == 0) {
|
|
||||||
state.storeOpenedList.splice(1);
|
|
||||||
} else {
|
|
||||||
state.storeOpenedList.splice(currentIndex + 1);
|
|
||||||
state.storeOpenedList.splice(1, currentIndex - 1);
|
|
||||||
}
|
|
||||||
let newCachepage = state.cachePage.filter(item => {
|
|
||||||
return item == currentName;
|
|
||||||
});
|
|
||||||
state.cachePage = newCachepage;
|
|
||||||
localStorage.cachePage = JSON.stringify(state.cachePage);
|
|
||||||
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
|
||||||
},
|
|
||||||
setOpenedList(state) {
|
|
||||||
state.storeOpenedList = localStorage.storeOpenedList ? JSON.parse(localStorage.storeOpenedList) : [otherRouter.children[0]];
|
|
||||||
},
|
|
||||||
setCurrentPath(state, pathArr) {
|
|
||||||
state.currentPath = pathArr;
|
|
||||||
},
|
|
||||||
setCurrentPageName(state, name) {
|
|
||||||
state.currentPageName = name;
|
|
||||||
},
|
|
||||||
setAvatarPath(state, path) {
|
|
||||||
localStorage.avatorImgPath = path;
|
|
||||||
},
|
|
||||||
switchLang(state, lang) {
|
|
||||||
state.lang = lang;
|
|
||||||
localStorage.lang = lang;
|
|
||||||
Vue.config.lang = lang;
|
|
||||||
},
|
|
||||||
clearOpenedSubmenu(state) {
|
|
||||||
state.openedSubmenuArr.length = 0;
|
|
||||||
},
|
|
||||||
setMessageCount(state, count) {
|
|
||||||
state.messageCount = count;
|
|
||||||
},
|
|
||||||
// 新增页签
|
|
||||||
increateTag(state, tagObj) {
|
|
||||||
if (!Util.oneOf(tagObj.name, state.dontCache)) {
|
|
||||||
state.cachePage.push(tagObj.name);
|
|
||||||
localStorage.cachePage = JSON.stringify(state.cachePage);
|
|
||||||
}
|
|
||||||
state.storeOpenedList.push(tagObj);
|
|
||||||
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
localStorage.cachePage = JSON.stringify(state.cachePage);
|
||||||
|
},
|
||||||
|
initCachepage(state) {
|
||||||
|
if (localStorage.cachePage) {
|
||||||
|
state.cachePage = JSON.parse(localStorage.cachePage);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
removeTag(state, name) {
|
||||||
|
state.storeOpenedList.map((item, index) => {
|
||||||
|
if (item.name == name) {
|
||||||
|
state.storeOpenedList.splice(index, 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
storeOpenedList(state, get) {
|
||||||
|
let openedPage = state.storeOpenedList[get.index];
|
||||||
|
if (get.argu) {
|
||||||
|
openedPage.argu = get.argu;
|
||||||
|
}
|
||||||
|
if (get.query) {
|
||||||
|
openedPage.query = get.query;
|
||||||
|
}
|
||||||
|
state.storeOpenedList.splice(get.index, 1, openedPage);
|
||||||
|
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
||||||
|
},
|
||||||
|
clearAllTags(state) {
|
||||||
|
state.storeOpenedList.splice(1);
|
||||||
|
state.cachePage.length = 0;
|
||||||
|
localStorage.cachePage = '';
|
||||||
|
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
||||||
|
},
|
||||||
|
clearOtherTags(state, vm) {
|
||||||
|
let currentName = vm.$route.name;
|
||||||
|
let currentIndex = 0;
|
||||||
|
state.storeOpenedList.forEach((item, index) => {
|
||||||
|
if (item.name == currentName) {
|
||||||
|
currentIndex = index;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (currentIndex == 0) {
|
||||||
|
state.storeOpenedList.splice(1);
|
||||||
|
} else {
|
||||||
|
state.storeOpenedList.splice(currentIndex + 1);
|
||||||
|
state.storeOpenedList.splice(1, currentIndex - 1);
|
||||||
|
}
|
||||||
|
let newCachepage = state.cachePage.filter(item => {
|
||||||
|
return item == currentName;
|
||||||
|
});
|
||||||
|
state.cachePage = newCachepage;
|
||||||
|
localStorage.cachePage = JSON.stringify(state.cachePage);
|
||||||
|
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
||||||
|
},
|
||||||
|
setOpenedList(state) {
|
||||||
|
state.storeOpenedList = localStorage.storeOpenedList ? JSON.parse(localStorage.storeOpenedList) : [otherRouter.children[0]];
|
||||||
|
},
|
||||||
|
setCurrentPath(state, pathArr) {
|
||||||
|
state.currentPath = pathArr;
|
||||||
|
},
|
||||||
|
setCurrentPageName(state, name) {
|
||||||
|
state.currentPageName = name;
|
||||||
|
},
|
||||||
|
setAvatarPath(state, path) {
|
||||||
|
localStorage.avatorImgPath = path;
|
||||||
|
},
|
||||||
|
switchLang(state, lang) {
|
||||||
|
state.lang = lang;
|
||||||
|
localStorage.lang = lang;
|
||||||
|
Vue.config.lang = lang;
|
||||||
|
},
|
||||||
|
clearOpenedSubmenu(state) {
|
||||||
|
state.openedSubmenuArr.length = 0;
|
||||||
|
},
|
||||||
|
setMessageCount(state, count) {
|
||||||
|
state.messageCount = count;
|
||||||
|
},
|
||||||
|
// 新增页签
|
||||||
|
increateTag(state, tagObj) {
|
||||||
|
if (!Util.oneOf(tagObj.name, state.dontCache)) {
|
||||||
|
state.cachePage.push(tagObj.name);
|
||||||
|
localStorage.cachePage = JSON.stringify(state.cachePage);
|
||||||
|
}
|
||||||
|
state.storeOpenedList.push(tagObj);
|
||||||
|
localStorage.storeOpenedList = JSON.stringify(state.storeOpenedList);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export default app;
|
export default app;
|
||||||
|
|
Loading…
Reference in New Issue