fix: 一系列优化和调整:左侧筛选空串处理、下拉增加网络质量和链路、app风险等级映射
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
<!-- 值 -->
|
||||
<div class="condition__value">
|
||||
<div v-if="meta.value.isEditing">
|
||||
<el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput"></el-input>
|
||||
<el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput" @keyup.enter="valueBlur(meta)"></el-input>
|
||||
</div>
|
||||
<span v-else @click="valueClick(meta)">{{meta.value.label}}</span>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GenericSQL, SqlParserVisitor } from 'dt-sql-parser'
|
||||
import Meta, { connection, condition, columnType, cloneMeta } from '@/components/advancedSearch/meta/meta'
|
||||
import { riskLevelMapping } from '@/utils/constants'
|
||||
import _ from 'lodash'
|
||||
// 补全语句,用于解析
|
||||
const sqlPrev = 'select a from b where '
|
||||
@@ -87,7 +88,7 @@ export default class SqlParser extends SqlParserVisitor {
|
||||
if (isFullText) {
|
||||
if (meta.meta === condition) {
|
||||
if (meta.column.type !== columnType.fullText) {
|
||||
sql += `${meta.column.name}${meta.operator.value}${meta.value.value} `
|
||||
sql += `${meta.column.name}${meta.operator.value}${valueHandle(meta.value.value, meta.column.name)} `
|
||||
} else {
|
||||
sql += "QUERY('"
|
||||
this.columnList.forEach(column => {
|
||||
@@ -100,7 +101,7 @@ export default class SqlParser extends SqlParserVisitor {
|
||||
if (meta.meta === condition) {
|
||||
sql += (meta.column.name)
|
||||
if (meta.column.type !== columnType.fullText) {
|
||||
sql += `${meta.operator.value}${meta.value.value} `
|
||||
sql += `${meta.operator.value}${valueHandle(meta.value.value, meta.column.name)} `
|
||||
} else {
|
||||
sql += ' '
|
||||
}
|
||||
@@ -275,3 +276,19 @@ function handleInOrLike (value, type) {
|
||||
handleValue: v
|
||||
}
|
||||
}
|
||||
|
||||
function valueHandle (value, columnName) {
|
||||
if (value === "'unknown'") {
|
||||
return "''"
|
||||
} else {
|
||||
if (columnName) {
|
||||
if (columnName === 'app_risk') {
|
||||
const m = riskLevelMapping.find(mapping => {
|
||||
return `'${mapping.name}'` === value || `'${mapping.value}'` === value
|
||||
})
|
||||
return (m && m.value) || value
|
||||
}
|
||||
}
|
||||
return value
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
:current-row-key="tableNameColumn"
|
||||
tooltip-effect="light"
|
||||
:expand-row-keys="expandRowKeys"
|
||||
:size="'mini'"
|
||||
:height="'100%'">
|
||||
<el-table-column type="expand" :min-width="'5%'">
|
||||
size="mini"
|
||||
height="100%">
|
||||
<el-table-column type="expand" min-width="5%">
|
||||
<template #default="props">
|
||||
<div style="position: relative">
|
||||
<div class="chart__loading" style="top: 0; height: 100%; z-index: 1;" v-show="loading">
|
||||
@@ -37,7 +37,7 @@
|
||||
:prop="item.prop"
|
||||
#default="{row}">
|
||||
<span v-if="item.prop === 'nameColumn'">
|
||||
{{ nameColumn === 'domainCategoryName' ? row['categoryName'] :(nameColumn === 'domainReputationLevel'? row['reputationLevel']:(nameColumn==='appCategory'?row['appCategoryName']:row['appRiskLevel']))}}
|
||||
{{ nameColumn === 'domainCategoryName' ? row['categoryName'] :(nameColumn === 'domainReputationLevel'? row['reputationLevel']:(nameColumn==='appCategory'?row['appCategoryName']:appRisk(row['appRiskLevel'])))}}
|
||||
</span>
|
||||
<span v-else-if="item.prop === 'tableNameColumn'">
|
||||
{{ tableNameColumn === 'appName' ? row['appName'] : row['domain']}}
|
||||
@@ -65,7 +65,7 @@
|
||||
:prop="item.prop"
|
||||
#default="{row}">
|
||||
<span v-if="item.prop === 'nameColumn'">
|
||||
{{ nameColumn === 'domainCategoryName' ? row['categoryName'] :(nameColumn === 'domainReputationLevel'? row['reputationLevel']:(nameColumn==='appCategory'?row['appCategoryName']:row['appRiskLevel']))}}
|
||||
{{ nameColumn === 'domainCategoryName' ? row['categoryName'] :(nameColumn === 'domainReputationLevel'? row['reputationLevel']:(nameColumn==='appCategory'?row['appCategoryName']:appRisk(row['appRiskLevel'])))}}
|
||||
</span>
|
||||
<span v-else-if="item.prop === 'tableNameColumn'">
|
||||
{{ tableNameColumn === 'appName' ? row['appName'] : row['domain']}}
|
||||
@@ -87,7 +87,7 @@
|
||||
import unitConvert from '@/utils/unit-convert'
|
||||
import { get } from '@/utils/http'
|
||||
import { replaceUrlPlaceholder } from '@/utils/tools'
|
||||
import { unitTypes } from '@/utils/constants'
|
||||
import { unitTypes, riskLevelMapping } from '@/utils/constants'
|
||||
|
||||
export default {
|
||||
name: 'PieTable',
|
||||
@@ -119,6 +119,16 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
appRisk () {
|
||||
return function (level) {
|
||||
const m = riskLevelMapping.find(mapping => {
|
||||
return mapping.value == level
|
||||
})
|
||||
return (m && m.name) || level
|
||||
}
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
nameColumn: '',
|
||||
@@ -133,7 +143,7 @@ export default {
|
||||
width: '20%'
|
||||
},
|
||||
{
|
||||
label: this.$t('entities.category'),
|
||||
label: this.$t(this.chartInfo.params.tableTypeColumnLabel),
|
||||
prop: 'nameColumn',
|
||||
width: '22%'
|
||||
},
|
||||
|
||||
@@ -81,9 +81,12 @@ export default {
|
||||
this.entityTopTenData = data.map(d => {
|
||||
return {
|
||||
...d,
|
||||
name: d.name || 'unknown',
|
||||
percent: (parseFloat(d.count / totalCount) * 100).toFixed(2)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.entityTopTenData = []
|
||||
}
|
||||
},
|
||||
indexMethod (index) {
|
||||
|
||||
Reference in New Issue
Block a user