调整绘图区段关联关系校验
This commit is contained in:
parent
438e633ec4
commit
3d192fe447
@ -224,19 +224,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
var validateLeftSection = (rule, value, callback) => {
|
|
||||||
if (value === '') {
|
|
||||||
callback(new Error('请选择做关联区段'));
|
|
||||||
} else {
|
|
||||||
const leftSection = this.$store.getters['map/getDeviceByCode'](value);
|
|
||||||
if (leftSection.point[0] !== this.selected.point[0]) {
|
|
||||||
callback(new Error('所选择关联区段不相邻!'));
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
questionList: [],
|
questionList: [],
|
||||||
activeName: 'first',
|
activeName: 'first',
|
||||||
@ -395,9 +382,9 @@ export default {
|
|||||||
{ prop: 'namePosition.x', firstLevel: 'namePosition', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px' },
|
{ prop: 'namePosition.x', firstLevel: 'namePosition', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px' },
|
||||||
{ prop: 'namePosition.y', firstLevel: 'namePosition', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px' }
|
{ prop: 'namePosition.y', firstLevel: 'namePosition', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px' }
|
||||||
] },
|
] },
|
||||||
|
{ prop: 'type', label: this.$t('map.sectionType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SectionTypeList},
|
||||||
{ prop: 'leftSection', label: '左关联区段', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.PhysicalSectionList},
|
{ prop: 'leftSection', label: '左关联区段', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.PhysicalSectionList},
|
||||||
{ prop: 'rightSection', label: '右关联区段', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.PhysicalSectionList},
|
{ prop: 'rightSection', label: '右关联区段', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.PhysicalSectionList},
|
||||||
{ prop: 'type', label: this.$t('map.sectionType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SectionTypeList},
|
|
||||||
{ prop: 'parentCode', label: this.$t('map.associatedSection'), type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', disabled: true, options: this.sectionList, isHidden: !this.isParentCode },
|
{ prop: 'parentCode', label: this.$t('map.associatedSection'), type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', disabled: true, options: this.sectionList, isHidden: !this.isParentCode },
|
||||||
|
|
||||||
{ prop: 'isStandTrack', label: this.$t('map.isStandTrack'), type: 'checkbox', isHidden: !this.isStandTrackShow }, // 1
|
{ prop: 'isStandTrack', label: this.$t('map.isStandTrack'), type: 'checkbox', isHidden: !this.isStandTrackShow }, // 1
|
||||||
@ -467,6 +454,22 @@ export default {
|
|||||||
return form;
|
return form;
|
||||||
},
|
},
|
||||||
rules() {
|
rules() {
|
||||||
|
var validateLeftSection = (rule, value, callback) => {
|
||||||
|
const leftSection = this.$store.getters['map/getDeviceByCode'](value);
|
||||||
|
if (leftSection && (leftSection.points[1].x !== this.selected.points[0].x || leftSection.points[1].y !== this.selected.points[0].y )) {
|
||||||
|
callback(new Error('所选择关联区段不相邻!'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var validateRightSection = (rule, value, callback) => {
|
||||||
|
const rightSection = this.$store.getters['map/getDeviceByCode'](value);
|
||||||
|
if (rightSection && (rightSection.points[0].x !== this.selected.points[1].x || rightSection.points[0].y !== this.selected.points[1].y )) {
|
||||||
|
callback(new Error('所选择关联区段不相邻!'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
const rules = {
|
const rules = {
|
||||||
code: [
|
code: [
|
||||||
{ required: true, message: this.$t('rules.selectEquipment'), trigger: 'change' }
|
{ required: true, message: this.$t('rules.selectEquipment'), trigger: 'change' }
|
||||||
@ -517,10 +520,10 @@ export default {
|
|||||||
{ required: true, message: this.$t('rules.pleaseSelectTrainDir'), trigger: 'change' }
|
{ required: true, message: this.$t('rules.pleaseSelectTrainDir'), trigger: 'change' }
|
||||||
],
|
],
|
||||||
leftSection: [
|
leftSection: [
|
||||||
{ required: this.editModel.type === '01', message: '请选择左关联区段', trigger: 'change' }
|
{ required: this.editModel.type === '01', validator: validateLeftSection, trigger: 'change' }
|
||||||
],
|
],
|
||||||
rightSection: [
|
rightSection: [
|
||||||
{ required: this.editModel.type === '01', message: '请选择右关联区段', trigger: 'change'}
|
{ required: this.editModel.type === '01', validator: validateRightSection, trigger: 'change'}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
return rules;
|
return rules;
|
||||||
@ -530,7 +533,6 @@ export default {
|
|||||||
if (this.sectionList && this.sectionList.length) {
|
if (this.sectionList && this.sectionList.length) {
|
||||||
list = this.sectionList.filter(elem => { return elem.type === '01'; });
|
list = this.sectionList.filter(elem => { return elem.type === '01'; });
|
||||||
}
|
}
|
||||||
list.unshift({code: '', name: '无'});
|
|
||||||
return list;
|
return list;
|
||||||
},
|
},
|
||||||
ReverseSectionList() {
|
ReverseSectionList() {
|
||||||
|
Loading…
Reference in New Issue
Block a user