diff --git a/src/components/layout/Header.vue b/src/components/layout/Header.vue index 8933d448..28843705 100644 --- a/src/components/layout/Header.vue +++ b/src/components/layout/Header.vue @@ -208,6 +208,7 @@ import { handleSpecialValue } from '@/utils/tools' import { getNowTime, getSecond } from '@/utils/date-util' +import _ from 'lodash' export default { name: 'Header', @@ -301,41 +302,17 @@ export default { } */ }, breadcrumb () { - const breadcrumbMap = [] - this.curTabProp = this.$route.query.dimensionType ? this.$route.query.dimensionType : null - this.$store.getters.menuList.forEach(menu => { - if (this.$_.isEmpty(menu.children) && menu.route) { - breadcrumbMap.push({ - name: this.$t(menu.i18n), - path: menu.route, - columnName: menu.columnName, - columnValue: menu.columnValue - }) - } else if (!this.$_.isEmpty(menu.children)) { - menu.children.forEach(child => { - breadcrumbMap.push({ - name: child.i18n ? this.$t(child.i18n) : child.name, - parentName: menu.i18n ? this.$t(menu.i18n) : menu.name, - path: child.route, - columnName: child.columnName, - columnValue: child.columnValue - }) - }) - } - }) - const breadcrumb = breadcrumbMap.find(b => this.route === b.path) + const breadcrumb = [] + this.generateBreadcrumb(breadcrumb, this.$store.getters.menuList) + const thirdMenu = this.getUrlParam(this.curTabState.thirdMenu, '') const fourthMenu = this.getUrlParam(this.curTabState.fourthMenu, '') - let result = [] + + let result = [...breadcrumb] if (fourthMenu) { - result = breadcrumb ? [breadcrumb.parentName, breadcrumb.name, thirdMenu, fourthMenu] : [] + result = [...result, thirdMenu, fourthMenu] } else if (thirdMenu) { - result = breadcrumb ? [breadcrumb.parentName, breadcrumb.name, thirdMenu] : [] - } else { - result = breadcrumb ? [breadcrumb.parentName, breadcrumb.name] : [] - } - if (!breadcrumb.parentName) { - result = result.filter((r, i) => i > 0) + result = [...result, thirdMenu] } return result }, @@ -359,6 +336,7 @@ export default { } }, async breadcrumb (n) { + this.curTabProp = this.$route.query.dimensionType ? this.$route.query.dimensionType : null if (this.$route.params.typeName === fromRoute.dnsServiceInsights) { if (this.dnsQtypeMapData.size === 0) { this.dnsQtypeMapData = await getDnsMapData('dnsQtype') @@ -399,6 +377,22 @@ export default { } }, methods: { + generateBreadcrumb (breadcrumb, menus) { + const menu = menus.find(m => m.route === this.route) + if (menu) { + breadcrumb.unshift(menu.i18n ? this.$t(menu.i18n) : menu.name) + return true + } else { + for (let i = 0; i < menus.length; i++) { + if (!_.isEmpty(menus[i].children)) { + if (this.generateBreadcrumb(breadcrumb, menus[i].children)) { + breadcrumb.unshift(menus[i].i18n ? this.$t(menus[i].i18n) : menus[i].name) + return true + } + } + } + } + }, handleClose () { this.showChangePin = false }, diff --git a/src/permission.js b/src/permission.js index 3bcb833b..6d4144e1 100644 --- a/src/permission.js +++ b/src/permission.js @@ -36,11 +36,12 @@ router.beforeEach(async (to, from, next) => { store.commit('setRoleList', roleList) } if (to.path) { - if (hasMenu(store.getters.menuList, to.path)) { + next() + /* if (hasMenu(store.getters.menuList, to.path)) { next() } else { ElMessage.error('No access') // TODO 国际化 - } + } */ } } } else { diff --git a/src/router/index.js b/src/router/index.js index 6216c4c0..275b000e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -39,6 +39,10 @@ const routes = [ path: '/knowledgeBase', component: () => import('@/views/setting/KnowledgeBase') }, + { + path: '/knowledgeBase/form', + component: () => import('@/views/setting/KnowledgeBaseForm') + }, { name: 'Administration', path: '/administration', diff --git a/src/views/setting/KnowledgeBase.vue b/src/views/setting/KnowledgeBase.vue index 3d904146..1e91be06 100644 --- a/src/views/setting/KnowledgeBase.vue +++ b/src/views/setting/KnowledgeBase.vue @@ -10,8 +10,8 @@ @search="search" > @@ -54,15 +54,8 @@ export default { data () { return { url: api.knowledgeBase, - tableId: 'knowledgeBaseTable', // 需要分页的table的id,用于记录每页数量 - blankObject: { // 空白对象 - tagName: '', - buildIn: '', - id: '', - tagType: '', - remark: '', - updateTime: '' - } + tableId: 'knowledgeBaseTable' // 需要分页的table的id,用于记录每页数量 + } }, methods: { @@ -74,6 +67,14 @@ export default { } }) }, + jumpToCreatePage () { + this.$router.push({ + path: '/knowledgeBase/form', + query: { + t: +new Date() + } + }) + }, getTableData () { this.tools.loading = false this.tableData = [ diff --git a/src/views/setting/KnowledgeBaseForm.vue b/src/views/setting/KnowledgeBaseForm.vue new file mode 100644 index 00000000..cf8b05b2 --- /dev/null +++ b/src/views/setting/KnowledgeBaseForm.vue @@ -0,0 +1,51 @@ + + + + +