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 = {
|
export const settingFields = {
|
||||||
ip: [
|
ip: [
|
||||||
{ displayName: 'IP', fieldName: 'ip' },
|
{ displayName: 'IP', fieldName: 'ip', disabled: true },
|
||||||
{ displayName: 'Ports', fieldName: 'ports' },
|
{ displayName: 'Ports', fieldName: 'ports' },
|
||||||
{ displayName: 'L7 Protocols', fieldName: 'l7_protocols' },
|
{ 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.Super Admin Area', fieldName: 'ip_super_admin_area' },
|
||||||
{ displayName: 'IP.Admin Area', fieldName: 'ip_admin_area' },
|
{ displayName: 'IP.Admin Area', fieldName: 'ip_admin_area' },
|
||||||
{ displayName: 'IP.ASN', fieldName: 'ip_asn' },
|
{ 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: [
|
domain: [
|
||||||
{ displayName: 'Domain', fieldName: 'domain' },
|
{ displayName: 'Domain', fieldName: 'domain', disabled: true },
|
||||||
{ displayName: 'Domain.Category', fieldName: 'domain_category' },
|
{ 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: [
|
app: [
|
||||||
{ displayName: 'Application', fieldName: 'app' },
|
{ displayName: 'Application', fieldName: 'app', disabled: true },
|
||||||
{ displayName: 'APP.Category', fieldName: 'app_category' },
|
{ displayName: 'APP.Category', fieldName: 'app_category' },
|
||||||
{ displayName: 'APP.Subcategory', fieldName: 'app_subcategory' },
|
{ displayName: 'APP.Subcategory', fieldName: 'app_subcategory' },
|
||||||
{ displayName: 'APP.Subcategory', fieldName: 'app_subcategory' }
|
{ displayName: 'seen_time', fieldName: 'seen_time' }
|
||||||
],
|
],
|
||||||
subscriber_id: [
|
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.Phone Number', fieldName: 'subscriber_phone_number' },
|
||||||
{ displayName: 'Subscriber.IMSI', fieldName: 'subscriber_imsi' },
|
{ displayName: 'Subscriber.IMSI', fieldName: 'subscriber_imsi' },
|
||||||
{ displayName: 'Subscriber.IMEI', fieldName: 'subscriber_imei' },
|
{ 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: [
|
cell_id: [
|
||||||
{ displayName: 'Cell ID', fieldName: 'cell_id' },
|
{ displayName: 'Cell ID', fieldName: 'cell_id', disabled: true },
|
||||||
{ displayName: 'Cell.Technology', fieldName: 'cell_technology' },
|
{ displayName: 'Cell.Technology', fieldName: 'cell_technology' },
|
||||||
{ displayName: 'Cell.Coverage Radius', fieldName: 'cell_coverage_radius' },
|
{ displayName: 'Cell.Coverage Radius', fieldName: 'cell_coverage_radius' },
|
||||||
{ displayName: 'Cell.Operator', fieldName: 'cell_operator' },
|
{ displayName: 'Cell.Operator', fieldName: 'cell_operator' },
|
||||||
@@ -2957,7 +2960,8 @@ export const settingFields = {
|
|||||||
{ displayName: 'cell_latitude', fieldName: 'cell_latitude' },
|
{ displayName: 'cell_latitude', fieldName: 'cell_latitude' },
|
||||||
{ displayName: 'cell_longitude', fieldName: 'cell_longitude' },
|
{ displayName: 'cell_longitude', fieldName: 'cell_longitude' },
|
||||||
{ displayName: 'cell_azimuth', fieldName: 'cell_azimuth' },
|
{ 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 class="block-header">
|
||||||
<div>{{ item.name }}</div>
|
<div>{{ item.name }}</div>
|
||||||
<div class="block-header__menu">
|
<div class="block-header__menu">
|
||||||
<div>{{ $t('setting.sourceField') }}</div>
|
|
||||||
<div>{{ $t('setting.entityField') }}</div>
|
<div>{{ $t('setting.entityField') }}</div>
|
||||||
|
<div>{{ $t('setting.sourceField') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-body" v-for="(ite, ind) in item.list" :key="index+'-'+ind">
|
<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-form-item :prop="`data.${index}.list.${ind}.entityField`" :rules="mappingRules.entityField">
|
||||||
<el-select v-model="ite.field" class="block-body__select" placeholder="">
|
<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
|
<el-option
|
||||||
v-for="obj in mappingFieldOption"
|
v-for="obj in mappingFieldOption"
|
||||||
:key="obj.name"
|
:key="obj.name"
|
||||||
@@ -54,20 +71,8 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</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-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" @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>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -223,8 +228,8 @@ export default {
|
|||||||
sourceId: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }]
|
sourceId: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }]
|
||||||
},
|
},
|
||||||
mappingRules: {
|
mappingRules: {
|
||||||
type: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }],
|
entityField: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }],
|
||||||
source: [{ 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' },
|
relationRules: { required: true, message: this.$t('validate.required'), trigger: 'change' },
|
||||||
sourceOption: [],
|
sourceOption: [],
|
||||||
@@ -239,7 +244,7 @@ export default {
|
|||||||
{ label: 'Domain', value: 'Domain' },
|
{ label: 'Domain', value: 'Domain' },
|
||||||
{ label: 'APP', value: 'APP' }
|
{ label: 'APP', value: 'APP' }
|
||||||
],
|
],
|
||||||
isCloseMappingItem: true, // 删除mapping标识
|
isCloseMappingItem: false, // 删除mapping标识
|
||||||
showMappingType: false,
|
showMappingType: false,
|
||||||
mappingItemType: '', // 添加mapping映射类型
|
mappingItemType: '', // 添加mapping映射类型
|
||||||
typeList: [
|
typeList: [
|
||||||
@@ -287,7 +292,7 @@ export default {
|
|||||||
type: 'ip',
|
type: 'ip',
|
||||||
name: 'IP',
|
name: 'IP',
|
||||||
list: [
|
list: [
|
||||||
{ field: '', source: '' }
|
{ entityField: 'ip', sourceField: '', delFlag: false }
|
||||||
],
|
],
|
||||||
mapping: {}
|
mapping: {}
|
||||||
}
|
}
|
||||||
@@ -357,8 +362,9 @@ export default {
|
|||||||
entities.forEach(item => {
|
entities.forEach(item => {
|
||||||
const list = []
|
const list = []
|
||||||
for (const [key, value] of Object.entries(item.mapping)) {
|
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
|
item.list = list
|
||||||
})
|
})
|
||||||
this.editObj.schemaMappingData.data = entities
|
this.editObj.schemaMappingData.data = entities
|
||||||
@@ -410,7 +416,7 @@ export default {
|
|||||||
index: this.editObj.schemaMappingData.data.length + 1,
|
index: this.editObj.schemaMappingData.data.length + 1,
|
||||||
type: this.mappingItemType,
|
type: this.mappingItemType,
|
||||||
name: name,
|
name: name,
|
||||||
list: [{ field: '', source: '' }],
|
list: [{ entityField: settingFields[this.mappingItemType][0].fieldName, sourceField: '', delFlag: false }],
|
||||||
mapping: {}
|
mapping: {}
|
||||||
})
|
})
|
||||||
this.isCloseMappingItem = true
|
this.isCloseMappingItem = true
|
||||||
@@ -427,14 +433,14 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 添加schema mapping某一类型下的字段 **/
|
/** 添加schema mapping某一类型下的字段 **/
|
||||||
async addMappingListItem (index, ind) {
|
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
|
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
|
return valid
|
||||||
})
|
})
|
||||||
if (valid1 && valid2) {
|
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
|
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
|
let usedFlag = false
|
||||||
if (this.editObj.schemaMappingData.data.length > 0) {
|
if (this.editObj.schemaMappingData.data.length > 0) {
|
||||||
this.editObj.schemaMappingData.data.forEach(item => {
|
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) {
|
if (obj1 && !usedFlag) {
|
||||||
usedFlag = true
|
usedFlag = true
|
||||||
}
|
}
|
||||||
@@ -625,7 +626,7 @@ export default {
|
|||||||
formObj.schemaMappingData.data.forEach((item) => {
|
formObj.schemaMappingData.data.forEach((item) => {
|
||||||
const obj = {}
|
const obj = {}
|
||||||
item.list.forEach(ite => {
|
item.list.forEach(ite => {
|
||||||
obj[ite.field] = ite.source
|
obj[ite.entityField] = ite.sourceField
|
||||||
})
|
})
|
||||||
item.mapping = this.$_.cloneDeep(obj)
|
item.mapping = this.$_.cloneDeep(obj)
|
||||||
})
|
})
|
||||||
@@ -756,7 +757,7 @@ export default {
|
|||||||
let usedFlag = false
|
let usedFlag = false
|
||||||
if (this.editObj.schemaMappingData.data.length > 0) {
|
if (this.editObj.schemaMappingData.data.length > 0) {
|
||||||
this.editObj.schemaMappingData.data.forEach(item => {
|
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) {
|
if (obj1 && !usedFlag) {
|
||||||
usedFlag = true
|
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>
|
||||||
|
|
||||||
<el-form-item :label="$t('sources.dataFormat')" prop="dataFormat">
|
<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
|
<el-option
|
||||||
v-for="item in formatOptions"
|
v-for="item in formatOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|||||||
Reference in New Issue
Block a user