diff --git a/src/components/list/ApplicationList.vue b/src/components/list/ApplicationList.vue
new file mode 100644
index 0000000..e9c6ce0
--- /dev/null
+++ b/src/components/list/ApplicationList.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/src/components/list/ArticleList.vue b/src/components/list/ArticleList.vue
index c144e40..72d4411 100644
--- a/src/components/list/ArticleList.vue
+++ b/src/components/list/ArticleList.vue
@@ -1,7 +1,7 @@
diff --git a/src/components/list/ProjectList.vue b/src/components/list/ProjectList.vue
new file mode 100644
index 0000000..0f46f2a
--- /dev/null
+++ b/src/components/list/ProjectList.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/src/components/list/SearchLayout.vue b/src/components/list/SearchLayout.vue
index 821b0a2..64fd6eb 100644
--- a/src/components/list/SearchLayout.vue
+++ b/src/components/list/SearchLayout.vue
@@ -5,7 +5,7 @@
-
+
@@ -29,7 +29,46 @@ const ATabPane = ATabs.TabPane
export default {
name: 'SearchLayout',
- components: {ATabPane, ATabs, AInputSearch, AButton, AInputGroup, AInput}
+ components: {ATabPane, ATabs, AInputSearch, AButton, AInputGroup, AInput},
+ data () {
+ return {
+ activeKey: ''
+ }
+ },
+ watch: {
+ '$route': (val) => {
+ switch (val.path) {
+ case '/list/search/article':
+ this.activeKey = '1'
+ break
+ case '/list/search/application':
+ this.activeKey = '2'
+ break
+ case '/list/search/project':
+ this.activeKey = '3'
+ break
+ default:
+ this.activeKey = '1'
+ }
+ }
+ },
+ methods: {
+ navigate (key) {
+ switch (key) {
+ case '1':
+ this.$router.push('/list/search/article')
+ break
+ case '2':
+ this.$router.push('/list/search/application')
+ break
+ case '3':
+ this.$router.push('/list/search/project')
+ break
+ default:
+ this.$router.push('/workplace')
+ }
+ }
+ }
}
diff --git a/src/components/menu/menu.js b/src/components/menu/menu.js
index 8633292..19b516e 100644
--- a/src/components/menu/menu.js
+++ b/src/components/menu/menu.js
@@ -53,9 +53,13 @@ export default {
return {
rootSubmenuKeys: ['/form', '/list', '/detail', '/exception', '/result'],
openKeys: [],
+ selectedKeys: [],
cachedOpenKeys: []
}
},
+ created () {
+ this.updateMenu()
+ },
watch: {
collapsed (val) {
if (val) {
@@ -64,6 +68,9 @@ export default {
} else {
this.openKeys = this.cachedOpenKeys
}
+ },
+ '$route': function () {
+ this.updateMenu()
}
},
methods: {
@@ -133,6 +140,15 @@ export default {
} else {
this.openKeys = latestOpenKey ? [latestOpenKey] : []
}
+ },
+ updateMenu () {
+ let routes = this.$route.matched.concat()
+ this.selectedKeys = [routes.pop().path]
+ let openKeys = []
+ routes.forEach((item) => {
+ openKeys.push(item.path)
+ })
+ this.openKeys = openKeys
}
},
render (h) {
@@ -143,10 +159,12 @@ export default {
theme: this.$props.theme,
mode: this.$props.mode,
inlineCollapsed: false,
- openKeys: this.openKeys
+ openKeys: this.openKeys,
+ selectedKeys: this.selectedKeys
},
on: {
- openChange: this.onOpenChange
+ openChange: this.onOpenChange,
+ select: (obj) => { this.selectedKeys = obj.selectedKeys }
}
}, this.renderMenu(h, this.menuData)
)
diff --git a/src/router/index.js b/src/router/index.js
index d561455..867a40e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -17,6 +17,8 @@ import StandardList from '@/components/list/StandardList'
import CardList from '@/components/list/CardList'
import SearchLayout from '@/components/list/SearchLayout'
import ArticleList from '@/components/list/ArticleList'
+import ApplicationList from '@/components/list/ApplicationList'
+import ProjectList from '@/components/list/ProjectList'
import WorkPlace from '@/components/dashboard/WorkPlace'
Vue.use(Router)
@@ -105,6 +107,18 @@ export default new Router({
name: '文章',
component: ArticleList,
icon: 'none'
+ },
+ {
+ path: '/list/search/application',
+ name: '应用',
+ component: ApplicationList,
+ icon: 'none'
+ },
+ {
+ path: '/list/search/project',
+ name: '项目',
+ component: ProjectList,
+ icon: 'none'
}
]
}