From 5db0f39d0a4f2d7da92819734b7d5a50484e2e16 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sat, 30 Jun 2018 10:30:08 +0800 Subject: [PATCH] no message Former-commit-id: ba34ab8a9fcbf1cfffc54111935891e6a6024baf [formerly ba34ab8a9fcbf1cfffc54111935891e6a6024baf [formerly ba34ab8a9fcbf1cfffc54111935891e6a6024baf [formerly ba34ab8a9fcbf1cfffc54111935891e6a6024baf [formerly 468305dfd82cd0ecf96f389c4648f002b3643f82 [formerly ae318aa6d1de0726925f15fe875f426445992187]]]]] Former-commit-id: 6763abcd19d399bf9b417d38dc52dbf8bde2fc0d Former-commit-id: 4c4a492af4e5b79b7129e914a96e842002d41721 Former-commit-id: 98fca5903e7e9abd28a7550ea094e2b94e2516ed [formerly 2a760a5ac7367e13d67366cd2bb7eefeeac271c7] Former-commit-id: f6ba6535da660173ac05084f48faea15bdaf257c Former-commit-id: db879446f9631e92e66f807c767846a9b718f13e Former-commit-id: 56bea6996c90fee92cdc7badd4eef9a0e123b3f2 Former-commit-id: 07fea45f363b647c1f1969e1bc4e0b625203890c Former-commit-id: dc3d71de8749f0eb6484b56866f45f15648a35c9 --- .../core/d2-multiple-page-control/index.vue | 4 +- src/libs/db.js | 3 +- src/libs/util.js | 37 +++++++++++++++++++ src/router/index.js.REMOVED.git-id | 2 +- src/store/modules/d2admin.js | 30 ++++++++++++++- 5 files changed, 71 insertions(+), 5 deletions(-) diff --git a/src/components/core/d2-multiple-page-control/index.vue b/src/components/core/d2-multiple-page-control/index.vue index 4091e85b..d6f1e5aa 100644 --- a/src/components/core/d2-multiple-page-control/index.vue +++ b/src/components/core/d2-multiple-page-control/index.vue @@ -5,7 +5,7 @@ type="card" @tab-click="handleClick"> @@ -23,7 +23,7 @@ export default { }, computed: { ...mapState({ - pageList: state => state.d2admin.pageList + pageOpenedList: state => state.d2admin.pageOpenedList }) }, methods: { diff --git a/src/libs/db.js b/src/libs/db.js index bcb69441..869ddd50 100644 --- a/src/libs/db.js +++ b/src/libs/db.js @@ -5,7 +5,8 @@ const adapter = new LocalStorage('d2admin') const db = low(adapter) db.defaults({ - themeActive: [] + themeActive: [], + pageOpenedList: [] }) .write() diff --git a/src/libs/util.js b/src/libs/util.js index 6f291574..54394b44 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -40,4 +40,41 @@ util.exitFullScreen = function () { } } +/** + * 在每次打开新页面的时候调用 打开一个新的 tab + * @param {object} vm vue + * @param {string} name route name + * @param {object} argu arguments + * @param {object} query query object + */ +util.openNewPage = function (vm, name, argu, query) { + // 已经打开的页面 + let pageOpenedList = vm.$store.state.d2admin.pageOpenedList + // 判断此页面是否已经打开 并且记录位置 + let pageOpendIndex = 0 + const pageOpend = pageOpenedList.find((page, index) => { + const same = page.name === name + pageOpendIndex = same ? index : pageOpendIndex + return same + }) + if (pageOpend) { + // 页面以前打开过 + console.group('page opend') + console.log('pageOpendIndex: ', pageOpendIndex) + console.groupEnd() + // 虽然页面以前打开过 + // 但是新的页面可能 name 一样,参数不一样 + vm.$store.commit('d2adminpageOpenedListUpdateItem', { + index: pageOpendIndex, + argu: argu, + query: query + }) + } else { + // 页面以前没有打开过 + console.group('page not opend') + console.log('pageOpendIndex: ', pageOpendIndex) + console.groupEnd() + } +} + export default util diff --git a/src/router/index.js.REMOVED.git-id b/src/router/index.js.REMOVED.git-id index 39828885..a8a6682b 100644 --- a/src/router/index.js.REMOVED.git-id +++ b/src/router/index.js.REMOVED.git-id @@ -1 +1 @@ -b6ab24082bf827aca85248d9163c9ecb8b23de1d \ No newline at end of file +0088ad6cc03c64af08ec7f8e7e691d0fec144c65 \ No newline at end of file diff --git a/src/store/modules/d2admin.js b/src/store/modules/d2admin.js index 7f01c44b..44b6f9e2 100644 --- a/src/store/modules/d2admin.js +++ b/src/store/modules/d2admin.js @@ -12,7 +12,7 @@ export default { themeList, themeActive: themeList[1], // 多页 - pageList: [ + pageOpenedList: [ { name: 'index', title: '首页' @@ -20,6 +20,34 @@ export default { ] }, mutations: { + /** + * 更新页面列表上的某一项 + * @param {state} state vuex state + * @param {info} param1 new page info + */ + d2adminpageOpenedListUpdateItem (state, { index, argu, query }) { + // dev + console.group('d2adminpageOpenedListUpdateItem') + console.log('index: ', index) + console.log('argu: ', argu) + console.log('query: ', query) + console.groupEnd() + // 更新页面列表某一项 + let page = state.pageOpenedList[index] + page.argu = argu || page.argu + page.query = query || page.query + state.pageOpenedList.splice(index, 1, page) + // 更新设置到数据库 + const setting = db.get('pageOpenedList').find({uuid: util.uuid()}) + if (setting.value()) { + setting.assign({value: state.pageOpenedList}).write() + } else { + db.get('pageOpenedList').push({ + uuid: util.uuid(), + value: state.pageOpenedList + }).write() + } + }, /** * 切换全屏 * @param {state} state vuex state