Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53c24fe51b | ||
|
|
2aa7f6edfb | ||
|
|
6ed9c4f5fe | ||
|
|
6f8631f947 | ||
|
|
63ab36f4d2 | ||
|
|
cccc1f0e6a | ||
|
|
4651709529 | ||
|
|
6ab98be4c8 | ||
|
|
7b96f979a4 | ||
|
|
a59bff2cb7 | ||
|
|
04651581fe | ||
|
|
84ca05dccc | ||
|
|
780de66ddf | ||
|
|
9205d7645d | ||
|
|
ec486fe930 | ||
|
|
12c31b5bf6 | ||
|
|
96591cb9ef |
@@ -29,7 +29,7 @@ generate_git-log:
|
|||||||
- public/index.html
|
- public/index.html
|
||||||
- public/git-log.html
|
- public/git-log.html
|
||||||
only:
|
only:
|
||||||
- dev
|
- 6suo
|
||||||
tags:
|
tags:
|
||||||
- galaxy
|
- galaxy
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ build_project:
|
|||||||
- echo "npm run build"
|
- echo "npm run build"
|
||||||
- cnpm run build
|
- cnpm run build
|
||||||
only:
|
only:
|
||||||
- dev
|
- 6suo
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- galaxy
|
- galaxy
|
||||||
@@ -51,14 +51,14 @@ build_image:
|
|||||||
stage: build_image
|
stage: build_image
|
||||||
script:
|
script:
|
||||||
- echo "docker build"
|
- echo "docker build"
|
||||||
- sudo docker build --no-cache -t cn-ui:$CNUI_TAG .
|
- sudo docker build --no-cache -t cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG .
|
||||||
- echo "docker tag"
|
- echo "docker tag"
|
||||||
- sudo docker tag cn-ui:$CNUI_TAG 192.168.40.153:9080/cyber-narrator/cn-ui:$CNUI_TAG
|
- sudo docker tag cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG 192.168.40.153:9080/cyber-narrator/cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG
|
||||||
- echo "docker push"
|
- echo "docker push"
|
||||||
- sudo docker push 192.168.40.153:9080/cyber-narrator/cn-ui:$CNUI_TAG
|
- sudo docker push 192.168.40.153:9080/cyber-narrator/cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG
|
||||||
when: on_success
|
when: on_success
|
||||||
only:
|
only:
|
||||||
- dev
|
- 6suo
|
||||||
tags:
|
tags:
|
||||||
- galaxy
|
- galaxy
|
||||||
|
|
||||||
@@ -71,11 +71,11 @@ build_release_image:
|
|||||||
- echo '提交的版本是'
|
- echo '提交的版本是'
|
||||||
- echo $CI_COMMIT_REF_NAME
|
- echo $CI_COMMIT_REF_NAME
|
||||||
- echo "docker build"
|
- echo "docker build"
|
||||||
- sudo docker build --no-cache -t cn-ui:$CI_COMMIT_TAG .
|
- sudo docker build --no-cache -t cn-ui-$CI_COMMIT_REF_NAME:$CI_COMMIT_TAG .
|
||||||
- echo "docker tag"
|
- echo "docker tag"
|
||||||
- sudo docker tag cn-ui:$CI_COMMIT_TAG 192.168.40.153:9080/cyber-narrator/cn-ui:$CI_COMMIT_TAG
|
- sudo docker tag cn-ui-$CI_COMMIT_REF_NAME:$CI_COMMIT_TAG 192.168.40.153:9080/cyber-narrator/cn-ui-$CI_COMMIT_REF_NAME:$CI_COMMIT_TAG
|
||||||
- echo "docker push"
|
- echo "docker push"
|
||||||
- sudo docker push 192.168.40.153:9080/cyber-narrator/cn-ui:$CI_COMMIT_TAG
|
- sudo docker push 192.168.40.153:9080/cyber-narrator/cn-ui-$CI_COMMIT_REF_NAME:$CI_COMMIT_TAG
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
var BASE_CONFIG = {
|
var BASE_CONFIG = {
|
||||||
baseUrl: 'http://192.168.44.54:8090/',
|
baseUrl: 'http://192.168.44.54:8093/',
|
||||||
version: '2.0.2021.05.11.19.43'
|
version: '23.02.08',
|
||||||
|
logUrl: 'http://192.168.44.114:8088/superset/explore/?r=12&standalone=1'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
<link rel="icon" href="<%= BASE_URL %>images/logo.svg">
|
<link rel="icon" href="<%= BASE_URL %>images/logo.svg">
|
||||||
<script src="config.js"></script>
|
<script src="config.js"></script>
|
||||||
<title>Cyber Narrator</title>
|
<title>域名解析服务监测系统</title>
|
||||||
</head>
|
</head>
|
||||||
<body class="theme-light">
|
<body class="theme-light">
|
||||||
<noscript>
|
<noscript>
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="logins">
|
<div class="logins">
|
||||||
<div class="inside">
|
<div class="inside">
|
||||||
<div class="title">
|
<div class="title">域名解析服务监测系统</div>
|
||||||
<img src="../public/images/logo-title.svg" />
|
|
||||||
</div>
|
|
||||||
<el-form class="login__box">
|
<el-form class="login__box">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
@@ -193,12 +191,12 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
margin-top: 65px;
|
margin-top: 90px;
|
||||||
|
padding: 0 70px;
|
||||||
|
color: white;
|
||||||
|
font-size: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.title > img {
|
|
||||||
height: 135px;
|
|
||||||
}
|
|
||||||
.login__box {
|
.login__box {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|||||||
@@ -98,6 +98,8 @@
|
|||||||
.domain-detail-list {
|
.domain-detail-list {
|
||||||
display: table;
|
display: table;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
.domain-detail-list__row {
|
.domain-detail-list__row {
|
||||||
display: table-row;
|
display: table-row;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
.cn-chart__whois {
|
.cn-chart__whois {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
&.panel__time--scrolled-out {
|
&.panel__time--scrolled-out {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 70px;
|
top: 120px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
&>div {
|
&>div {
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
.chart-list {
|
.chart-list {
|
||||||
&.chart-list--screen {
|
&.chart-list--screen {
|
||||||
display: grid;
|
display: grid;
|
||||||
height: calc(100vh - 90px);
|
height: calc(100vh - 130px);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
grid-template-columns: repeat(30,1fr);
|
grid-template-columns: repeat(30,1fr);
|
||||||
grid-template-rows: repeat(19,1fr);
|
grid-template-rows: repeat(19,1fr);
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
<div class="banner__left">
|
<div class="banner__left">
|
||||||
<span @click="shrink" class="shrink-button" :class="{'shrink-button--collapse': showMenu}"><i
|
<span @click="shrink" class="shrink-button" :class="{'shrink-button--collapse': showMenu}"><i
|
||||||
class="cn-icon cn-icon-navigation"></i></span>
|
class="cn-icon cn-icon-navigation"></i></span>
|
||||||
<img alt="loading..." height="26" :src="logo?logo:require('../../assets/img/logo-header.svg')" @click="jump('/panel/networkOverview', '', '', 0)" style="cursor: pointer"/>
|
<span style="color: white; font-size: 20px;">域名解析服务监测系统</span>
|
||||||
</div>
|
</div>
|
||||||
<!--个人操作-->
|
<!--个人操作-->
|
||||||
<div class="personal">
|
<div class="personal">
|
||||||
<el-dropdown>
|
<!-- <el-dropdown>
|
||||||
<div class="header-menu--item"><i class="cn-icon cn-icon-language"></i></div>
|
<div class="header-menu--item"><i class="cn-icon cn-icon-language"></i></div>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>-->
|
||||||
<el-dropdown>
|
<el-dropdown>
|
||||||
<div class='login-user header-menu--item'>{{ username }} <i class="cn-icon cn-icon-arrow-down"></i></div>
|
<div class='login-user header-menu--item'>{{ username }} <i class="cn-icon cn-icon-arrow-down"></i></div>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ const routes = [
|
|||||||
path: '/panel/:typeName',
|
path: '/panel/:typeName',
|
||||||
component: () => import('@/views/charts2/Panel')
|
component: () => import('@/views/charts2/Panel')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'dns6',
|
||||||
|
path: '/dns6/:typeName',
|
||||||
|
component: () => import('@/views/charts/Panel')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/report/builtIn',
|
path: '/report/builtIn',
|
||||||
component: () => import('@/views/report/reportTest')
|
component: () => import('@/views/report/reportTest')
|
||||||
|
|||||||
@@ -318,11 +318,12 @@ export async function getI18n () {
|
|||||||
|
|
||||||
/* 获得原始的3611-2 json字符串数据 */
|
/* 获得原始的3611-2 json字符串数据 */
|
||||||
export async function getIso36112JsonData (suffix) {
|
export async function getIso36112JsonData (suffix) {
|
||||||
|
const url = `${window.location.protocol}//${window.location.host}/geojson/${suffix}.json`
|
||||||
const request = new Promise(resolve => {
|
const request = new Promise(resolve => {
|
||||||
axios({
|
axios({ url }).then(response => {
|
||||||
url: `${window.location.protocol}//${window.location.host}:${window.location.port}/geojson/${suffix}.json`
|
|
||||||
}).then(response => {
|
|
||||||
resolve(response.data || response || null)
|
resolve(response.data || response || null)
|
||||||
|
}).catch(err => {
|
||||||
|
console.error(err)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
return await request
|
return await request
|
||||||
|
|||||||
@@ -63,7 +63,8 @@ export const panelTypeAndRouteMapping = {
|
|||||||
cryptocurrency: 7,
|
cryptocurrency: 7,
|
||||||
ipDrillDownTest: 8,
|
ipDrillDownTest: 8,
|
||||||
linkMonitor: 14,
|
linkMonitor: 14,
|
||||||
linkMonitorDrillDown: 15
|
linkMonitorDrillDown: 15,
|
||||||
|
dns6: 18
|
||||||
}
|
}
|
||||||
|
|
||||||
/* operationLog state 执行状态属性 值与名称之间的映射 */
|
/* operationLog state 执行状态属性 值与名称之间的映射 */
|
||||||
@@ -1554,7 +1555,7 @@ export const npmCategoryInfoMapping = [
|
|||||||
|
|
||||||
// 整屏滚动的路径映射
|
// 整屏滚动的路径映射
|
||||||
export const wholeScreenRouterMapping = {
|
export const wholeScreenRouterMapping = {
|
||||||
dns: '/panel/dnsServiceInsights'
|
dns: '/dns6/dns6'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const themeData = [
|
export const themeData = [
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ function asciiCompute (num, ascii = 1000, units, dot = 2) {
|
|||||||
return ['', '']
|
return ['', '']
|
||||||
}
|
}
|
||||||
num = Number(num)
|
num = Number(num)
|
||||||
|
if (num === 0) {
|
||||||
|
return [0, '']
|
||||||
|
}
|
||||||
let carry = 0
|
let carry = 0
|
||||||
if (num > 1) {
|
if (num > 1) {
|
||||||
const log = Math.log(num) / Math.log(ascii)
|
const log = Math.log(num) / Math.log(ascii)
|
||||||
|
|||||||
@@ -38,21 +38,6 @@ export default {
|
|||||||
i18n: 'overall.operationLog',
|
i18n: 'overall.operationLog',
|
||||||
path: '/administration/operationLog',
|
path: '/administration/operationLog',
|
||||||
icon: 'cn-icon cn-icon-operation-log'
|
icon: 'cn-icon cn-icon-operation-log'
|
||||||
},
|
|
||||||
{
|
|
||||||
i18n: 'I18n',
|
|
||||||
path: '/administration/i18n',
|
|
||||||
icon: 'cn-icon cn-icon-i18n'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
i18n: 'galaxyProxy.galaxyProxy',
|
|
||||||
path: '/administration/galaxyProxy',
|
|
||||||
icon: 'cn-icon cn-icon-proxy'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
i18n: 'overall.chart',
|
|
||||||
path: '/administration/chart',
|
|
||||||
icon: 'cn-icon cn-icon-chart'
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export default {
|
|||||||
const boxDom = document.getElementById('frame-box')
|
const boxDom = document.getElementById('frame-box')
|
||||||
const dom = document.getElementById('frame')
|
const dom = document.getElementById('frame')
|
||||||
const height = boxDom.offsetHeight
|
const height = boxDom.offsetHeight
|
||||||
dom.src = `http://192.168.44.114:8088/superset/explore/?r=15&standalone=1&height=${height || 800}`
|
dom.src = BASE_CONFIG.logUrl + '&height=' + (height + 100)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -114,8 +114,8 @@ export default {
|
|||||||
},
|
},
|
||||||
reload () {
|
reload () {
|
||||||
this.copyDataList.forEach(item => {
|
this.copyDataList.forEach(item => {
|
||||||
if (this.$refs['chart' + item.id]) {
|
if (this.$refs['chart' + item.id] && this.$refs['chart' + item.id][0]) {
|
||||||
this.$refs['chart' + item.id].reload()
|
this.$refs['chart' + item.id][0].reload()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,20 +11,40 @@
|
|||||||
<div class="domain-detail-list__content">{{ $_.get(chartData, "org") || '-'}}</div>
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "org") || '-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="domain-detail-list__row">
|
<div class="domain-detail-list__row">
|
||||||
<div class="domain-detail-list__label">Email</div>
|
<div class="domain-detail-list__label">注册机构邮箱</div>
|
||||||
<div class="domain-detail-list__content">{{ $_.get(chartData, "email") || '-'}}</div>
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "email") || '-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="domain-detail-list__row">
|
<div class="domain-detail-list__row">
|
||||||
<div class="domain-detail-list__label">{{$t('overall.country')}}</div>
|
<div class="domain-detail-list__label">注册机构电话</div>
|
||||||
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "domainWhoisPhone") || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="domain-detail-list__row">
|
||||||
|
<div class="domain-detail-list__label">注册国家</div>
|
||||||
<div class="domain-detail-list__content">{{ $_.get(chartData, "country") || '-'}}</div>
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "country") || '-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="domain-detail-list__row">
|
<div class="domain-detail-list__row">
|
||||||
<div class="domain-detail-list__label">{{$t('entities.creationDate')}}</div>
|
<div class="domain-detail-list__label">注册地邮编</div>
|
||||||
<div class="domain-detail-list__content">{{ dateFormatByAppearance($_.get(chartData, "createTime") * 1) || '-'}}</div>
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "domainWhoisPostcode") || '-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="domain-detail-list__row">
|
<div class="domain-detail-list__row">
|
||||||
<div class="domain-detail-list__label">{{$t('entities.expirationDate')}}</div>
|
<div class="domain-detail-list__label">{{$t('entities.creationDate')}}</div>
|
||||||
<div class="domain-detail-list__content">{{ dateFormatByAppearance($_.get(chartData, "expirationTime") * 1) || '-'}}</div>
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "createTime") ? dateFormatByAppearance($_.get(chartData, "createTime") * 1) : '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="domain-detail-list__row">
|
||||||
|
<div class="domain-detail-list__label">过期时间</div>
|
||||||
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "expirationTime") ? dateFormatByAppearance($_.get(chartData, "expirationTime") * 1) : '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="domain-detail-list__row">
|
||||||
|
<div class="domain-detail-list__label">主办单位名称</div>
|
||||||
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "domainIcpCompanyName") || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="domain-detail-list__row">
|
||||||
|
<div class="domain-detail-list__label">主办单位性质</div>
|
||||||
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "domainIcpCompanyType") || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="domain-detail-list__row">
|
||||||
|
<div class="domain-detail-list__label">网站备案号</div>
|
||||||
|
<div class="domain-detail-list__content">{{ $_.get(chartData, "domainIcpSiteLicense") || '-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ export default {
|
|||||||
? legendMapping[
|
? legendMapping[
|
||||||
`${this.entity && this.entity.ip ? 'ip_' : ''}${r.legend}`
|
`${this.entity && this.entity.ip ? 'ip_' : ''}${r.legend}`
|
||||||
]
|
]
|
||||||
: (legendMapping[r.legend] ? legendMapping[r.legend] : humpToSpace(r.legend)),
|
: (legendMapping[r.legend] ? legendMapping[r.legend] : r.legend),
|
||||||
data: r.values.map((v) => [
|
data: r.values.map((v) => [
|
||||||
Number(v[0]) * 1000,
|
Number(v[0]) * 1000,
|
||||||
Number(v[1]),
|
Number(v[1]),
|
||||||
|
|||||||
@@ -35,10 +35,12 @@ export default {
|
|||||||
initEcharts (id) {
|
initEcharts (id) {
|
||||||
this.initDom(id, 2)
|
this.initDom(id, 2)
|
||||||
const chartParams = this.chartInfo.params
|
const chartParams = this.chartInfo.params
|
||||||
const domains = this.chartData.map(function (item, i) {
|
let domains = this.chartData.map(function (item, i) {
|
||||||
return item.domain
|
return item.domain
|
||||||
}).join(',')
|
}).join(',')
|
||||||
|
// 参数字符串限制长度在4300以内。经测试,超过4600左右会报错
|
||||||
|
domains = domains.substring(0, 4300)
|
||||||
|
domains = domains.substring(0, domains.lastIndexOf(','))
|
||||||
const byType = new Promise(resolve => {
|
const byType = new Promise(resolve => {
|
||||||
get(replaceUrlPlaceholder(chartParams.byCategoryUrl, { domains: domains })).then(response => {
|
get(replaceUrlPlaceholder(chartParams.byCategoryUrl, { domains: domains })).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
@@ -47,7 +49,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
// this.noData0 = false
|
// this.noData0 = false
|
||||||
// chartOption = this.$_.cloneDeep(this.chartOption)
|
// chartOption = this.$_.cloneDeep(this.chartOption)
|
||||||
const data = response.data.result.sort(reverseSortBy('uniqDomains')).map(d => {
|
const originalData = response.data.result.sort(reverseSortBy('uniqDomains')).map(d => {
|
||||||
return {
|
return {
|
||||||
data: d,
|
data: d,
|
||||||
name: d.categoryName,
|
name: d.categoryName,
|
||||||
@@ -55,6 +57,22 @@ export default {
|
|||||||
unitType: chartParams.unitType
|
unitType: chartParams.unitType
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
const data = originalData.filter((d, i) => i < 5)
|
||||||
|
let otherValue = 0
|
||||||
|
originalData.forEach((d, i) => {
|
||||||
|
if (i > 4) {
|
||||||
|
otherValue += parseInt(d.uniqDomains)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
data.push({
|
||||||
|
data: {
|
||||||
|
uniqDomains: otherValue,
|
||||||
|
categoryName: 'other'
|
||||||
|
},
|
||||||
|
name: 'other',
|
||||||
|
value: otherValue,
|
||||||
|
unitType: chartParams.unitType
|
||||||
|
})
|
||||||
this.chartOption.series[0].data = data
|
this.chartOption.series[0].data = data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,10 +202,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content__data-protocol-value">
|
<div class="content__data-protocol-value">
|
||||||
<div class="content__data-protocol-value-title">{{$t('protocol.requestVolume')}}</div>
|
<div class="content__data-protocol-value-title">{{$t('protocol.totalFlow')}}</div>
|
||||||
<div class="content__data-protocol-value-num">{{unitConvert($_.get(chartData, 'bytes'), chartInfo.params.unitType).join('')}}</div>
|
<div class="content__data-protocol-value-num">{{unitConvert($_.get(chartData, 'count'), chartInfo.params.unitType).join('')}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content__data-protocol-percent"><span>{{$t('protocol.proportion')}}</span> <span>{{unitConvert($_.get(chartData, 'bytesPercent'), unitTypes.percent).join('')}}</span></div>
|
<div class="content__data-protocol-percent"><span>{{$t('protocol.proportion')}}</span> <span>{{unitConvert($_.get(chartData, 'countPercent'), unitTypes.percent).join('')}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content__data-protocol">
|
<div class="content__data-protocol">
|
||||||
<div class="content__data-protocol-all">
|
<div class="content__data-protocol-all">
|
||||||
@@ -214,10 +214,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content__data-protocol-value">
|
<div class="content__data-protocol-value">
|
||||||
<div class="content__data-protocol-value-title">{{$t('protocol.totalFlow')}}</div>
|
<div class="content__data-protocol-value-title">{{$t('protocol.requestVolume')}}</div>
|
||||||
<div class="content__data-protocol-value-num">{{unitConvert($_.get(chartData, 'count'), chartInfo.params.unitType).join('')}}</div>
|
<div class="content__data-protocol-value-num">{{unitConvert($_.get(chartData, 'bytes'), unitTypes.byte).join('')}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content__data-protocol-percent"><span>{{$t('protocol.proportion')}}</span> <span>{{unitConvert($_.get(chartData, 'countPercent'), unitTypes.percent).join('')}}</span></div>
|
<div class="content__data-protocol-percent"><span>{{$t('protocol.proportion')}}</span> <span>{{unitConvert($_.get(chartData, 'bytesPercent'), unitTypes.percent).join('')}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -64,11 +64,11 @@ export const legendMapping = {
|
|||||||
ip_packets_sent_rate: i18n.global.t('trafficSummary.packetsPerSecondS2c'),
|
ip_packets_sent_rate: i18n.global.t('trafficSummary.packetsPerSecondS2c'),
|
||||||
dnsLatency: i18n.global.t('dns.latency'),
|
dnsLatency: i18n.global.t('dns.latency'),
|
||||||
queryRate: i18n.global.t('dns.query.rate'),
|
queryRate: i18n.global.t('dns.query.rate'),
|
||||||
formatErrorRate: i18n.global.t('dns.formatErrorRate'),
|
formatErrorRate: 'FormErr',
|
||||||
serverFailureRate: i18n.global.t('dns.serverFailureRate'),
|
serverFailureRate: 'ServFail',
|
||||||
nonExistentDomainRate: i18n.global.t('dns.nonExistentDomainRate'),
|
nonExistentDomainRate: 'NXDomain',
|
||||||
notImplementedRate: i18n.global.t('dns.notImplementedRate'),
|
notImplementedRate: 'NotImp',
|
||||||
queryRefusedRate: i18n.global.t('dns.queryRefusedRate'),
|
queryRefusedRate: 'Refused',
|
||||||
sequenceGapLossPercent: i18n.global.t('entity.ip.sequenceGapLossPercent'),
|
sequenceGapLossPercent: i18n.global.t('entity.ip.sequenceGapLossPercent'),
|
||||||
establishLatency: i18n.global.t('entity.ip.establishLatency'),
|
establishLatency: i18n.global.t('entity.ip.establishLatency'),
|
||||||
httpResponseLatency: i18n.global.t('entity.ip.httpResponseLatency'),
|
httpResponseLatency: i18n.global.t('entity.ip.httpResponseLatency'),
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ export const line = {
|
|||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
|
splitLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
formatter: function (value) {
|
formatter: function (value) {
|
||||||
return unitConvert(value, unitTypes.number, null, null, 0).join(' ')
|
return unitConvert(value, unitTypes.number, null, null, 0).join(' ')
|
||||||
@@ -30,7 +33,7 @@ export const line = {
|
|||||||
},
|
},
|
||||||
animation: false,
|
animation: false,
|
||||||
grid: {
|
grid: {
|
||||||
left: 55,
|
left: 60,
|
||||||
bottom: 30,
|
bottom: 30,
|
||||||
top: 20,
|
top: 20,
|
||||||
right: 25
|
right: 25
|
||||||
@@ -62,7 +65,7 @@ export const line = {
|
|||||||
{
|
{
|
||||||
name: '',
|
name: '',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
smooth: false,
|
smooth: true,
|
||||||
symbol: 'none',
|
symbol: 'none',
|
||||||
data: [],
|
data: [],
|
||||||
markLine: {}
|
markLine: {}
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
reload () {
|
reload () {
|
||||||
this.dnsScreenDataList.forEach(item => {
|
this.dnsScreenDataList.forEach(item => {
|
||||||
if (this.$refs['chart' + item.id]) {
|
if (this.$refs['chart' + item.id] && this.$refs['chart' + item.id][0]) {
|
||||||
this.$refs['chart' + item.id].getChartData()
|
this.$refs['chart' + item.id][0].getChartData()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ export default {
|
|||||||
handleData (prevRequest, request, _t) {
|
handleData (prevRequest, request, _t) {
|
||||||
this.toggleLoading(true)
|
this.toggleLoading(true)
|
||||||
Promise.all([prevRequest, request]).then(res => {
|
Promise.all([prevRequest, request]).then(res => {
|
||||||
this.isNoData = (res[0].data.result.length && res[1].data.result.length) === 0
|
this.isNoData = res[0].data.result.length === 0 && res[1].data.result.length === 0
|
||||||
if (this.isNoData) {
|
if (this.isNoData) {
|
||||||
this.appData = this.appData.map(t => {
|
this.appData = this.appData.map(t => {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ export default {
|
|||||||
*/
|
*/
|
||||||
initExpendTab () {
|
initExpendTab () {
|
||||||
if (this.$route.query.eventId) {
|
if (this.$route.query.eventId) {
|
||||||
if (parseFloat(this.$route.query.eventId) === this.detection.eventId) {
|
if (this.$route.query.eventId === this.detection.eventId) {
|
||||||
const container = document.getElementById('cnContainer')
|
const container = document.getElementById('cnContainer')
|
||||||
const dom = document.getElementsByClassName('cn-detection__case')
|
const dom = document.getElementsByClassName('cn-detection__case')
|
||||||
// 未展开的item折叠块,高度67+下边距10+底部线高度1,兼容不同分辨率下的tab高度
|
// 未展开的item折叠块,高度67+下边距10+底部线高度1,兼容不同分辨率下的tab高度
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ export default {
|
|||||||
const chartDom = document.getElementById(`eventSeverityTrendBar${this.pageType}`)
|
const chartDom = document.getElementById(`eventSeverityTrendBar${this.pageType}`)
|
||||||
const eventSeverityTrendOption = this.$_.cloneDeep(multipleBarOption)
|
const eventSeverityTrendOption = this.$_.cloneDeep(multipleBarOption)
|
||||||
|
|
||||||
const xData = []
|
let xData = []
|
||||||
dataMap.forEach(function (value) {
|
dataMap.forEach(function (value) {
|
||||||
// eventSeverityTrendOption.series[Number(getSeriesIndex(key))].data = value.map(v => Number(v[1]))
|
// eventSeverityTrendOption.series[Number(getSeriesIndex(key))].data = value.map(v => Number(v[1]))
|
||||||
value.forEach(item => {
|
value.forEach(item => {
|
||||||
@@ -303,6 +303,9 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
xData = xData.sort((a, b) => {
|
||||||
|
return new Date(a) - new Date(b)
|
||||||
|
})
|
||||||
eventSeverityTrendOption.series.forEach(serie => {
|
eventSeverityTrendOption.series.forEach(serie => {
|
||||||
const seriesData = []
|
const seriesData = []
|
||||||
xData.forEach(item => {
|
xData.forEach(item => {
|
||||||
|
|||||||
Reference in New Issue
Block a user