feat: panel初始化,api提取
This commit is contained in:
@@ -33,7 +33,9 @@
|
|||||||
<el-submenu
|
<el-submenu
|
||||||
:key="secondIndex"
|
:key="secondIndex"
|
||||||
:index="`${index}-${secondIndex}`">
|
:index="`${index}-${secondIndex}`">
|
||||||
<span slot="title" class="data-column__span">{{secondMenu.name}}</span>
|
<template #title>
|
||||||
|
<span class="data-column__span">{{secondMenu.name}}</span>
|
||||||
|
</template>
|
||||||
<el-menu-item
|
<el-menu-item
|
||||||
v-for="(thirdMenu, thirdIndex) in secondMenu.children"
|
v-for="(thirdMenu, thirdIndex) in secondMenu.children"
|
||||||
:key="`${index}-${secondIndex}-${thirdIndex}`"
|
:key="`${index}-${secondIndex}-${thirdIndex}`"
|
||||||
@@ -56,7 +58,9 @@
|
|||||||
:key="index + 'a'"
|
:key="index + 'a'"
|
||||||
:index="menu.route">
|
:index="menu.route">
|
||||||
<i :class="menu.icon"></i>
|
<i :class="menu.icon"></i>
|
||||||
<span slot="title" class="data-column__span">{{menu.name}}</span>
|
<template #title>
|
||||||
|
<span class="data-column__span">{{menu.name}}</span>
|
||||||
|
</template>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
</template>
|
</template>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
@@ -72,7 +76,7 @@ export default {
|
|||||||
logo: ''
|
logo: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setup () {
|
mounted () {
|
||||||
const self = this
|
const self = this
|
||||||
window.addEventListener('setItemEvent', function (e) {
|
window.addEventListener('setItemEvent', function (e) {
|
||||||
if (e.key === 'cn-sys-logo' && e.value) {
|
if (e.key === 'cn-sys-logo' && e.value) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import theme from '@/assets/css/theme.scss'
|
import theme from '@/assets/css/theme.scss'
|
||||||
import { hasButton } from '@/permission'
|
import { hasButton } from '@/permission'
|
||||||
import { nextTick } from 'vue'
|
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -15,7 +14,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
$nextTick: nextTick,
|
|
||||||
hasButton (code) {
|
hasButton (code) {
|
||||||
return hasButton(this.$store.getters.buttonList, code)
|
return hasButton(this.$store.getters.buttonList, code)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,16 +11,8 @@ const routes = [
|
|||||||
component: () => import('@/components/layout/Home'),
|
component: () => import('@/components/layout/Home'),
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '/trafficSummary',
|
path: '/panel/:typeName',
|
||||||
component: () => import('@/views/dashboards/TrafficSummary')
|
component: () => import('@/views/charts/Panel')
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/networkAppPerformance',
|
|
||||||
component: () => import('@/views/dashboards/TrafficSummary')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/dnsServiceInsights',
|
|
||||||
component: () => import('@/views/dashboards/TrafficSummary')
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/user',
|
path: '/user',
|
||||||
|
|||||||
27
src/utils/api.js
Normal file
27
src/utils/api.js
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* @author 陈劲松
|
||||||
|
* @date 2021/6/11
|
||||||
|
* @description 1.定义api;2.定义通用查询函数,函数名应为 获取详情getItem、获取列表getItemList。例如getUser、getUserList
|
||||||
|
*/
|
||||||
|
import { get } from '@/utils/http'
|
||||||
|
|
||||||
|
export const panel = '/visual/panel'
|
||||||
|
export const chart = '/visual/chart'
|
||||||
|
|
||||||
|
export async function getPanelList (params) {
|
||||||
|
return await getData(panel, params, true)
|
||||||
|
}
|
||||||
|
export async function getPanel (url, params) {
|
||||||
|
return await getData(panel, params)
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getData (url, params, isQueryList) {
|
||||||
|
const request = new Promise((resolve, reject) => {
|
||||||
|
get(url, params).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
resolve(isQueryList ? response.data.list : response.data)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return await request
|
||||||
|
}
|
||||||
@@ -3,9 +3,18 @@ export const defaultPageSize = 20
|
|||||||
// 统一定义跳转来源
|
// 统一定义跳转来源
|
||||||
export const fromRoute = {
|
export const fromRoute = {
|
||||||
trafficSummary: 'trafficSummary',
|
trafficSummary: 'trafficSummary',
|
||||||
|
networkAppPerformance: 'networkAppPerformance',
|
||||||
|
dnsServiceInsights: 'dnsServiceInsights',
|
||||||
user: 'user'
|
user: 'user'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* panel类别和路由之间的映射 */
|
||||||
|
export const panelTypeAndRouteMapping = {
|
||||||
|
trafficSummary: 1,
|
||||||
|
networkAppPerformance: 2,
|
||||||
|
dnsServiceInsights: 3
|
||||||
|
}
|
||||||
|
|
||||||
export const position = {
|
export const position = {
|
||||||
tableHeight: {
|
tableHeight: {
|
||||||
normal: 'calc(100% - 48px)' // 常规高度,特例在下方定义
|
normal: 'calc(100% - 48px)' // 常规高度,特例在下方定义
|
||||||
|
|||||||
35
src/views/charts/Panel.vue
Normal file
35
src/views/charts/Panel.vue
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<template>
|
||||||
|
<div>{{panel.name}}</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { useRoute } from 'vue-router'
|
||||||
|
import { panelTypeAndRouteMapping } from '@/utils/constants'
|
||||||
|
import { panel as api, getPanelList } from '@/utils/api'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Panel',
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
panel: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async mounted () {
|
||||||
|
this.panel = (await getPanelList({ type: this.panelType }))[0]
|
||||||
|
},
|
||||||
|
setup () {
|
||||||
|
// 取得panel的type
|
||||||
|
let panelType = 1
|
||||||
|
const { params } = useRoute()
|
||||||
|
panelTypeAndRouteMapping[params.typeName] && (panelType = panelTypeAndRouteMapping[params.typeName])
|
||||||
|
return {
|
||||||
|
panelType,
|
||||||
|
api
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>hehe</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'TrafficSummary'
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
||||||
Reference in New Issue
Block a user