diff --git a/src/assets/css/components/views/charts2/informationAggregation.scss b/src/assets/css/components/views/charts2/informationAggregation.scss index 024e741f..89e794dd 100644 --- a/src/assets/css/components/views/charts2/informationAggregation.scss +++ b/src/assets/css/components/views/charts2/informationAggregation.scss @@ -24,6 +24,7 @@ padding-left:10px; padding-right:10px; height: 20px; + line-height: 20px; } .information-aggregation__invalid { background: #ededed; @@ -35,6 +36,7 @@ padding-left:10px; padding-right:10px; height: 20px; + line-height: 20px; } .el-table { @@ -71,4 +73,4 @@ } .padding-0{ padding:0px !important; -} \ No newline at end of file +} diff --git a/src/mock/entity.js b/src/mock/entity.js index 27d3bd53..3fa37c1b 100644 --- a/src/mock/entity.js +++ b/src/mock/entity.js @@ -283,6 +283,59 @@ if (openMock) { } ] } + return { + msg: 'success', + code: 200, + data: result + } + }) + Mock.mock(new RegExp(`${BASE_CONFIG.baseUrl}${BASE_CONFIG.apiVersion}/entity/kb/intelligence/list.*`), 'get', function (requestObj) { + const result = [ + { + location: { + isp: 'dba Omsoft', + updateTime: 1685696510, + createTime: 1685696510, + isValid: 1 + } + }, + { + malware: { + threatType: 'command and control', + malwareName: 'IcedID', + malwareAlias: 'BokBot,IceID', + updateTime: 1685696510, + createTime: 1685696510, + isValid: 1 + } + }, + { + darkweb: { + nodeType: 'i2p', + updateTime: 1685696510, + createTime: 1685696510, + isValid: 1 + } + }, + { + userDefinedTag: { + id: 1, + tagValue: '门户网站', + updateTime: 1685696500, + createTime: 1685696500, + isValid: 1 + } + }, + { + userDefinedTag: { + id: 1, + tagValue: '用户tag', + updateTime: 1685696500, + createTime: 1685696500, + isValid: 1 + } + } + ] return { msg: 'success', code: 200, diff --git a/src/utils/api.js b/src/utils/api.js index 8c842264..b023d3fc 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -239,7 +239,8 @@ export const api = { domainNameResolutionRelatedDomain: 'interface/entity/detail/overview/ip/relatedDomain', openPort: '', basicInfo: BASE_CONFIG.apiVersion + '/entity/detail/basic', - tags: BASE_CONFIG.apiVersion + '/entity/detail/kb/intelligence/tag' + tags: BASE_CONFIG.apiVersion + '/entity/detail/kb/intelligence/tag', + informationAggregation: BASE_CONFIG.apiVersion + '/entity/kb/intelligence/list' } } diff --git a/src/views/charts2/charts/entityDetail/EntityDetailBasicInfo.vue b/src/views/charts2/charts/entityDetail/EntityDetailBasicInfo.vue index 13167e40..e29a43e0 100644 --- a/src/views/charts2/charts/entityDetail/EntityDetailBasicInfo.vue +++ b/src/views/charts2/charts/entityDetail/EntityDetailBasicInfo.vue @@ -90,28 +90,18 @@ export default { if (tagData) { const res = tagData.data if (res.code === 200) { - switch (this.entity.entityType) { - case 'domain': { - if (res.data.result.malware && res.data.result.malware.malwareName) { - this.levelTwoTags.push({ value: res.data.result.malware.malwareName, type: entityDetailTags.domain.find(t => t.name === 'malwareName').type }) - } - if (res.data.result.darkweb && res.data.result.darkweb.nodeType) { - this.levelTwoTags.push({ value: res.data.result.darkweb.nodeType, type: entityDetailTags.domain.find(t => t.name === 'nodeType').type }) - } - break + Object.keys(res.data).forEach(k => { + if (k !== 'userDefinedTags') { + Object.keys(res.data[k]).forEach(k2 => { + const find = entityDetailTags[this.entity.entityType].find(t => t.name === k2) + if (find) { + this.levelTwoTags.push({ key: k2, value: res.data[k][k2], type: find.type }) + } + }) } - case 'ip': { - if (res.data.result.malware && res.data.result.malware.malwareName) { - this.levelTwoTags.push({ value: res.data.result.malware.malwareName, type: entityDetailTags.ip.find(t => t.name === 'malwareName').type }) - } - if (res.data.result.darkweb && res.data.result.darkweb.nodeType) { - this.levelTwoTags.push({ value: res.data.result.darkweb.nodeType, type: entityDetailTags.ip.find(t => t.name === 'nodeType').type }) - } - break - } - } - if (_.isArray(res.data.result.userDefinedTags)) { - this.levelTwoTags = _.concat(this.levelTwoTags, res.data.result.userDefinedTags.map(tag => ({ value: tag.tagValue, type: 'normal' }))) + }) + if (_.isArray(res.data.userDefinedTags)) { + this.levelTwoTags = _.concat(this.levelTwoTags, res.data.userDefinedTags.map(tag => ({ value: tag.tagValue, type: 'normal' }))) } } else { tagError = this.errorMsgHandler(res) diff --git a/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue b/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue index d278d13d..feea794d 100644 --- a/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue +++ b/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue @@ -11,7 +11,7 @@ {{tab.label}} - + diff --git a/src/views/charts2/charts/entityDetail/tabs/InformationAggregation.vue b/src/views/charts2/charts/entityDetail/tabs/InformationAggregation.vue index 76bd7507..c70676e6 100644 --- a/src/views/charts2/charts/entityDetail/tabs/InformationAggregation.vue +++ b/src/views/charts2/charts/entityDetail/tabs/InformationAggregation.vue @@ -15,17 +15,25 @@ :cell-class-name="intelligenceContentClass" > + prop="createTime" + > + + + > + +