summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author刘洪洪 <[email protected]>2024-11-19 17:16:39 +0800
committer刘洪洪 <[email protected]>2024-11-19 17:16:39 +0800
commit9f1de4723651ebd40c290712bfc39fedfa2df4d3 (patch)
tree807a7d13e2d17a4f9774c3c9b027ec4ce59001e3 /src
parenta8dcee4f145f0f993c1b131916452dc1420c2684 (diff)
fix: 1、entity setting的mapping调整entity和source位置,并修改其字段名;2、source的dataFormat创建后不允许修改
Diffstat (limited to 'src')
-rw-r--r--src/utils/constants.js26
-rw-r--r--src/views/setting/entitySetting/EntitySettingForm.vue81
-rw-r--r--src/views/setting/sources/SourcesForm.vue2
3 files changed, 66 insertions, 43 deletions
diff --git a/src/utils/constants.js b/src/utils/constants.js
index 6ad76a2c..84ff1a7c 100644
--- a/src/utils/constants.js
+++ b/src/utils/constants.js
@@ -2913,35 +2913,38 @@ export const intentColor = {
export const settingFields = {
ip: [
- { displayName: 'IP', fieldName: 'ip' },
+ { displayName: 'IP', fieldName: 'ip', disabled: true },
{ displayName: 'Ports', fieldName: 'ports' },
{ displayName: 'L7 Protocols', fieldName: 'l7_protocols' },
- { displayName: 'IP.Country', fieldName: 'ip.country' },
+ { displayName: 'IP.Country', fieldName: 'ip_country' },
{ displayName: 'IP.Super Admin Area', fieldName: 'ip_super_admin_area' },
{ displayName: 'IP.Admin Area', fieldName: 'ip_admin_area' },
{ displayName: 'IP.ASN', fieldName: 'ip_asn' },
- { displayName: 'IP.ISP', fieldName: 'ip_isp' }
+ { displayName: 'IP.ISP', fieldName: 'ip_isp' },
+ { displayName: 'seen_time', fieldName: 'seen_time' }
],
domain: [
- { displayName: 'Domain', fieldName: 'domain' },
+ { displayName: 'Domain', fieldName: 'domain', disabled: true },
{ displayName: 'Domain.Category', fieldName: 'domain_category' },
- { displayName: 'Domain.Category Group', fieldName: 'domain_category_group' }
+ { displayName: 'Domain.Category Group', fieldName: 'domain_category_group' },
+ { displayName: 'seen_time', fieldName: 'seen_time' }
],
app: [
- { displayName: 'Application', fieldName: 'app' },
+ { displayName: 'Application', fieldName: 'app', disabled: true },
{ displayName: 'APP.Category', fieldName: 'app_category' },
{ displayName: 'APP.Subcategory', fieldName: 'app_subcategory' },
- { displayName: 'APP.Subcategory', fieldName: 'app_subcategory' }
+ { displayName: 'seen_time', fieldName: 'seen_time' }
],
subscriber_id: [
- { displayName: 'Subscriber ID', fieldName: 'subscriber_id' },
+ { displayName: 'Subscriber ID', fieldName: 'subscriber_id', disabled: true },
{ displayName: 'Subscriber.Phone Number', fieldName: 'subscriber_phone_number' },
{ displayName: 'Subscriber.IMSI', fieldName: 'subscriber_imsi' },
{ displayName: 'Subscriber.IMEI', fieldName: 'subscriber_imei' },
- { displayName: 'Subscriber.APNs', fieldName: 'subscriber_apns' }
+ { displayName: 'Subscriber.APNs', fieldName: 'subscriber_apns' },
+ { displayName: 'seen_time', fieldName: 'seen_time' }
],
cell_id: [
- { displayName: 'Cell ID', fieldName: 'cell_id' },
+ { displayName: 'Cell ID', fieldName: 'cell_id', disabled: true },
{ displayName: 'Cell.Technology', fieldName: 'cell_technology' },
{ displayName: 'Cell.Coverage Radius', fieldName: 'cell_coverage_radius' },
{ displayName: 'Cell.Operator', fieldName: 'cell_operator' },
@@ -2957,7 +2960,8 @@ export const settingFields = {
{ displayName: 'cell_latitude', fieldName: 'cell_latitude' },
{ displayName: 'cell_longitude', fieldName: 'cell_longitude' },
{ displayName: 'cell_azimuth', fieldName: 'cell_azimuth' },
- { displayName: 'cell_fdd_spectrum', fieldName: 'cell_fdd_spectrum' }
+ { displayName: 'cell_fdd_spectrum', fieldName: 'cell_fdd_spectrum' },
+ { displayName: 'seen_time', fieldName: 'seen_time' }
]
}
diff --git a/src/views/setting/entitySetting/EntitySettingForm.vue b/src/views/setting/entitySetting/EntitySettingForm.vue
index 5ca7d532..a9c9092a 100644
--- a/src/views/setting/entitySetting/EntitySettingForm.vue
+++ b/src/views/setting/entitySetting/EntitySettingForm.vue
@@ -39,35 +39,40 @@
<div class="block-header">
<div>{{ item.name }}</div>
<div class="block-header__menu">
- <div>{{ $t('setting.sourceField') }}</div>
<div>{{ $t('setting.entityField') }}</div>
+ <div>{{ $t('setting.sourceField') }}</div>
</div>
</div>
<div class="block-body" v-for="(ite, ind) in item.list" :key="index+'-'+ind">
- <el-form-item :prop="`data.${index}.list.${ind}.field`" :rules="mappingRules.type">
- <el-select v-model="ite.field" class="block-body__select" placeholder="">
+ <el-form-item :prop="`data.${index}.list.${ind}.entityField`" :rules="mappingRules.entityField">
+ <el-select
+ v-model="ite.entityField"
+ class="block-body__select"
+ placeholder=""
+ @visible-change="visibleEntityFiled($event, index, ind)"
+ :disabled="ind===0">
<el-option
- v-for="obj in mappingFieldOption"
- :key="obj.name"
- :label="obj.name"
- :value="obj.name"
+ v-for="obj in settingFields[item.type]"
+ :key="obj.fieldName"
+ :label="obj.fieldName"
+ :value="obj.fieldName"
+ :disabled="obj.disabled"
/>
</el-select>
</el-form-item>
<div class="block-body-equal">=</div>
- <el-form-item :prop="`data.${index}.list.${ind}.source`" :rules="mappingRules.source">
- <el-select v-model="ite.source" class="block-body__select" placeholder="">
+ <el-form-item :prop="`data.${index}.list.${ind}.sourceField`" :rules="mappingRules.sourceField">
+ <el-select v-model="ite.sourceField" class="block-body__select" placeholder="">
<el-option
- v-for="obj in settingFields[item.type]"
- :key="obj.fieldName"
- :label="obj.fieldName"
- :value="obj.fieldName"
+ v-for="obj in mappingFieldOption"
+ :key="obj.name"
+ :label="obj.name"
+ :value="obj.name"
/>
</el-select>
</el-form-item>
<i class="cn-icon cn-icon-add mapping-item-add" @click="addMappingListItem(index, ind)"></i>
<i class="cn-icon cn-icon-close mapping-item-close" @click="deleteMappingItem(index, ind)"></i>
-<!-- <i class="cn-icon cn-icon-close mapping-item-close" v-if="isCloseMappingItem" @click="deleteMappingItem(index, ind)"></i>-->
</div>
</div>
</el-form>
@@ -223,8 +228,8 @@ export default {
sourceId: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }]
},
mappingRules: {
- type: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }],
- source: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }]
+ entityField: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }],
+ sourceField: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }]
},
relationRules: { required: true, message: this.$t('validate.required'), trigger: 'change' },
sourceOption: [],
@@ -239,7 +244,7 @@ export default {
{ label: 'Domain', value: 'Domain' },
{ label: 'APP', value: 'APP' }
],
- isCloseMappingItem: true, // 删除mapping标识
+ isCloseMappingItem: false, // 删除mapping标识
showMappingType: false,
mappingItemType: '', // 添加mapping映射类型
typeList: [
@@ -287,7 +292,7 @@ export default {
type: 'ip',
name: 'IP',
list: [
- { field: '', source: '' }
+ { entityField: 'ip', sourceField: '', delFlag: false }
],
mapping: {}
}
@@ -357,8 +362,9 @@ export default {
entities.forEach(item => {
const list = []
for (const [key, value] of Object.entries(item.mapping)) {
- list.push({ field: key, source: value.toString() })
+ list.push({ entityField: value.toString(), sourceField: key, delFlag: true })
}
+ list[0].delFlag = false
item.list = list
})
this.editObj.schemaMappingData.data = entities
@@ -410,7 +416,7 @@ export default {
index: this.editObj.schemaMappingData.data.length + 1,
type: this.mappingItemType,
name: name,
- list: [{ field: '', source: '' }],
+ list: [{ entityField: settingFields[this.mappingItemType][0].fieldName, sourceField: '', delFlag: false }],
mapping: {}
})
this.isCloseMappingItem = true
@@ -427,14 +433,14 @@ export default {
},
/** 添加schema mapping某一类型下的字段 **/
async addMappingListItem (index, ind) {
- const valid1 = await this.$refs.mappingForm.validateField(`data.${index}.list.${ind}.field`, (valid) => {
+ const valid1 = await this.$refs.mappingForm.validateField(`data.${index}.list.${ind}.entityField`, (valid) => {
return valid
})
- const valid2 = await this.$refs.mappingForm.validateField(`data.${index}.list.${ind}.source`, (valid) => {
+ const valid2 = await this.$refs.mappingForm.validateField(`data.${index}.list.${ind}.sourceField`, (valid) => {
return valid
})
if (valid1 && valid2) {
- this.editObj.schemaMappingData.data[index].list.push({ field: '', source: '' })
+ this.editObj.schemaMappingData.data[index].list.push({ entityField: '', sourceField: '', delFlag: true })
this.isCloseMappingItem = true
}
},
@@ -471,15 +477,10 @@ export default {
})
}
}
- // if (this.editObj.schemaMappingData.data.length > 1) {
- // this.isCloseMappingItem = true
- // } else {
- // this.isCloseMappingItem = this.editObj.schemaMappingData.data[0].list.length > 1
- // }
let usedFlag = false
if (this.editObj.schemaMappingData.data.length > 0) {
this.editObj.schemaMappingData.data.forEach(item => {
- const obj1 = item.list.find(d => d.field)
+ const obj1 = item.list.find(d => d.sourceField)
if (obj1 && !usedFlag) {
usedFlag = true
}
@@ -625,7 +626,7 @@ export default {
formObj.schemaMappingData.data.forEach((item) => {
const obj = {}
item.list.forEach(ite => {
- obj[ite.field] = ite.source
+ obj[ite.entityField] = ite.sourceField
})
item.mapping = this.$_.cloneDeep(obj)
})
@@ -756,7 +757,7 @@ export default {
let usedFlag = false
if (this.editObj.schemaMappingData.data.length > 0) {
this.editObj.schemaMappingData.data.forEach(item => {
- const obj1 = item.list.find(d => d.field)
+ const obj1 = item.list.find(d => d.sourceField)
if (obj1 && !usedFlag) {
usedFlag = true
}
@@ -774,6 +775,24 @@ export default {
})
}
}
+ },
+ visibleEntityFiled (callback, index, i) {
+ const item = this.editObj.schemaMappingData.data[index]
+ if (callback) {
+ const fieldNameList = []
+ item.list.forEach(ite => {
+ fieldNameList.push(ite.entityField)
+ })
+ this.settingFields[item.type].forEach(obj => {
+ if (fieldNameList.indexOf(obj.fieldName) > -1) {
+ obj.disabled = true
+ }
+ })
+ } else {
+ this.settingFields[item.type].forEach(obj => {
+ obj.disabled = false
+ })
+ }
}
}
}
diff --git a/src/views/setting/sources/SourcesForm.vue b/src/views/setting/sources/SourcesForm.vue
index 22a1c364..376e77b2 100644
--- a/src/views/setting/sources/SourcesForm.vue
+++ b/src/views/setting/sources/SourcesForm.vue
@@ -9,7 +9,7 @@
</el-form-item>
<el-form-item :label="$t('sources.dataFormat')" prop="dataFormat">
- <el-select v-model="sourceObj.dataFormat" placeholder="">
+ <el-select v-model="sourceObj.dataFormat" placeholder="" :disabled="sourceObj.id">
<el-option
v-for="item in formatOptions"
:key="item.value"