修改信号机构建关系逻辑,修改创建逻辑区段偏移量数据逻辑

This commit is contained in:
zyy 2019-12-23 17:14:38 +08:00
parent 72c4bd0bd0
commit c1f41b4299
3 changed files with 41 additions and 41 deletions

View File

@ -94,7 +94,7 @@ export default {
const list = [];
if (val && val.length) {
for (let i = 0; i < val.length; i++) {
list.push({ label: val[i].uniqueName, value: val[i].code });
list.push({ label: val[i].name + '(' + val[i].code + ')', value: val[i].code });
}
this.queryForm.queryObject.signalCode.config.data = list;
}
@ -137,9 +137,10 @@ export default {
const list = data.list;
if (list) {
list.map(elem => {
that.$convertSpecifiedField(elem, that.mapList, 'id', 'name', ['mapId']);
elem.code = elem.signalCode;
elem.signalCode = that.formatName(elem.signalCode);
that.$convertSpecifiedField(elem, that.mapList, 'id', 'name', ['mapId']);
that.$convertSpecifiedField(elem, this.signalList, 'code', 'name', ['signalCode']);
elem.signalCode = `${elem.signalCode}(${elem.code})`;
});
}
}

View File

@ -84,7 +84,7 @@ export default {
});
const lineLength = lengthFact / totalNum; //
this.tableData.forEach((ele, index) => {
models = [...models, ...this.createLogicalSections(Number(ele.num), sectionPoints[index], sectionPoints[index + 1], this.editModel, counts, lineLength)];
models = [...models, ...this.createLogicalSections(Number(ele.num), sectionPoints[index], sectionPoints[index + 1], this.editModel, counts, lineLength, totalNum)];
allNotZeros = Number(ele.num) && allNotZeros;
count += Number(ele.num);
logicSectionNumList.push(Number(ele.num));
@ -116,7 +116,7 @@ export default {
row.num = 0;
},
//
createLogicalSections(num, beg, end, model, counts, lineLength) {
createLogicalSections(num, beg, end, model, counts, lineLength, totalNum) {
const models = [];
const triangle = new JTriangle(beg, end);
const offset = Math.sqrt(triangle.abspowz) / num;
@ -125,15 +125,14 @@ export default {
{ x: beg.x + triangle.getCos(offset * i), y: beg.y + triangle.getSin(offset * i) },
{ x: beg.x + triangle.getCos(offset * (i + 1)), y: beg.y + triangle.getSin(offset * (i + 1)) }
];
const param = this.addLogicalSection(model, points, counts + i, lineLength);
param.lengthFact = Number(model.lengthFact) / num;
const param = this.addLogicalSection(model, points, counts + i, lineLength, totalNum);
models.push(param);
this.addList.push(param);
}
return models;
},
//
addLogicalSection(model, points, index, lineLength) {
addLogicalSection(model, points, index, lineLength, totalNum) {
const data = {
_type: 'Section',
code: getUID('T', [...this.sectionList, ...this.addList]),
@ -181,7 +180,7 @@ export default {
kmRangeLeft: model.kmRangeLeft,
region: model.region,
logicSectionStartOffset: Math.floor(lineLength * index),
logicSectionEndOffset: Math.floor(lineLength * (index + 1)),
logicSectionEndOffset: index + 1 != totalNum ? Math.floor(lineLength * (index + 1)) : model.lengthFact,
relevanceSectionList: []
};
if (this.isDelimiter) {

View File

@ -17,7 +17,7 @@
<create-signal ref="createSignal" :field="field" @signalSectionCode="signalSectionCode" @updateMapModel="updateMapModel" />
</el-tab-pane>
<el-tab-pane class="view-control" label="批量操作" name="three">
<el-form ref="mark" label-width="130px" :model="addModel" size="mini" :rules="addRules">
<el-form ref="mark" label-width="130px" :model="addModel" size="mini">
<el-form-item label="左右偏移值" prop="number">
<el-input v-model="addModel.number" style="width: 178px;" />
</el-form-item>
@ -99,11 +99,6 @@ export default {
},
addModel: {
number: 2
},
addRules: {
number: [
{ required: true, message: '请输入左右偏移量', trigger: 'blur', min: 0 }
]
}
};
},
@ -308,42 +303,47 @@ export default {
},
//
editAll() {
this.$refs['mark'].validate((valid) => {
if (valid) {
const models = [];
this.questionList = [];
this.signalList.forEach(item => {
const signalModel = deepAssign({}, item);
const section = this.findSection(signalModel);
if (section.code && item.sectionCode != section.code) {
signalModel.sectionCode = section.code;
if (this.addModel.number != '') {
const models = [];
this.questionList = [];
this.signalList.forEach(item => {
const signalModel = deepAssign({}, item);
const section = this.findSection(signalModel);
if (section.code && item.sectionCode != section.code) {
signalModel.sectionCode = section.code;
}
if (!section.code) {
this.questionList.push(`${item.name}(${item.code}) 信号机位置可能不正确,请手动调试归属区段及偏移量.`);
}
signalModel.sectionOffset = this.addModel.number;
if (signalModel.right) {
if (section.lengthFact) {
signalModel.sectionOffset = Math.abs(Number(section.lengthFact) - this.addModel.number);
}
if (!section.code) {
this.questionList.push(`${item.name}(${item.code}) 信号机位置可能不正确,请手动调试归属区段及偏移量.`);
}
signalModel.sectionOffset = this.addModel.number;
if (signalModel.right) {
if (section.lengthFact) {
signalModel.sectionOffset = Math.abs(Number(section.lengthFact) - this.addModel.number);
}
}
models.push(signalModel);
});
this.$emit('updateMapModel', models);
this.$message.success('数据构建成功!');
}
});
}
models.push(signalModel);
if (this.editModel.code == signalModel.code) {
this.editModel.sectionCode = signalModel.sectionCode;
}
});
this.$emit('updateMapModel', models);
this.$message.success('数据构建成功!');
this.deviceSelect();
} else {
this.$message('请输入偏移量');
}
},
//
findSection(signal) {
// 01 02
let model = {};
this.sectionList.forEach(section => {
if (!signal.right && section.type != '02') {
if (!signal.right && section.type != '02' && section.type != '04') {
if (section.points[0].x == signal.position.x && Math.abs(section.points[0].y - signal.position.y) <= 20) {
model = section;
}
} else if (signal.right && section.type != '02') {
} else if (signal.right && section.type != '02' && section.type != '04') {
if (section.points[section.points.length - 1].x == signal.position.x && Math.abs(section.points[section.points.length - 1].y - signal.position.y) <= 20) {
model = section;
}