fix: 1、entity setting的mapping调整entity和source位置,并修改其字段名;2、source的dataFormat创建后不允许修改
This commit is contained in:
@@ -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' }
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -39,13 +39,30 @@
|
||||
<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 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}.sourceField`" :rules="mappingRules.sourceField">
|
||||
<el-select v-model="ite.sourceField" class="block-body__select" placeholder="">
|
||||
<el-option
|
||||
v-for="obj in mappingFieldOption"
|
||||
:key="obj.name"
|
||||
@@ -54,20 +71,8 @@
|
||||
/>
|
||||
</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-option
|
||||
v-for="obj in settingFields[item.type]"
|
||||
:key="obj.fieldName"
|
||||
:label="obj.fieldName"
|
||||
:value="obj.fieldName"
|
||||
/>
|
||||
</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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user