运行图导入和列车调整

This commit is contained in:
joylink_fanyuhong 2020-03-02 14:46:59 +08:00
parent d73f084fd5
commit 692f30fd9f
11 changed files with 142 additions and 34 deletions

View File

@ -498,7 +498,7 @@ class SkinCode extends defaultStyle {
trainTargetTextAlign: 'left'// 车次号文字显示位置 trainTargetTextAlign: 'left'// 车次号文字显示位置
}, },
trainTargetNumber: { trainTargetNumber: {
trainTargetNumberOffset: { x: 0, y: 0 }// 车组号偏移量 trainTargetNumberOffset: { x: -4, y: 4 }// 车组号偏移量
}, },
trainHead: { trainHead: {
trainMoreLength: 0, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 trainMoreLength: 0, // 列车车头比车身高出的长度,上下相比车体伸出去的边框

View File

@ -452,7 +452,7 @@ class SkinCode extends defaultStyle {
trainTargetTextAlign: 'right' // 车次号文字显示位置 trainTargetTextAlign: 'right' // 车次号文字显示位置
}, },
trainTargetNumber: { trainTargetNumber: {
trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量 trainTargetNumberOffset: {x: -4, y: 4}// 车组号偏移量
}, },
trainHead: { trainHead: {
trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框

View File

@ -465,7 +465,7 @@ class SkinCode extends defaultStyle {
trainTargetTextAlign: 'right' // 车次号文字显示位置 trainTargetTextAlign: 'right' // 车次号文字显示位置
}, },
trainTargetNumber: { trainTargetNumber: {
trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量 trainTargetNumberOffset: {x: -4, y: 4}// 车组号偏移量
}, },
trainHead: { trainHead: {
trainMoreLength: 0, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 trainMoreLength: 0, // 列车车头比车身高出的长度,上下相比车体伸出去的边框

View File

@ -473,7 +473,7 @@ class SkinCode extends defaultStyle {
trainTargetNumber: { trainTargetNumber: {
groupNumberPrefix: '000', // 车组号前缀 groupNumberPrefix: '000', // 车组号前缀
defaultGroupNumber: 'EEE', // 默认车组号 defaultGroupNumber: 'EEE', // 默认车组号
trainTargetNumberOffset: {x: 0, y: 1}// 车组号偏移量 trainTargetNumberOffset: {x: -1, y: 1}// 车组号偏移量
}, },
trainHead: { trainHead: {
trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框

View File

@ -444,48 +444,64 @@ class SkinCode extends defaultStyle {
this[deviceType.Train] = { this[deviceType.Train] = {
trainBody: { trainBody: {
trainBodyLineWidth: 0, // 车身line宽 trainBodyLineWidth: 2, // 车身line宽
changeTrainWidth: true, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度 changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
specialTrainType: [ specialTrainType: [
{ {
type: '03', type: '03',
serviceNumber: 'MM', serviceNumber: 'MM',
nameFormat: 'serviceNumber:groupNumber' nameFormat: 'tripNumber:serviceNumber:groupNumber'
}, },
{ {
type: '02', type: '02',
nameFormat: 'targetCode:groupNumber' nameFormat: 'tripNumber:serviceNumber:groupNumber'
} }
], // 特殊列车类型需设置显示格式 ], // 特殊列车类型需设置显示格式
lrPadding: 1, // 两边间隔 lrPadding: 1, // 两边间隔
upPadding: 1, // 上边距离 upPadding: 1, // 上边距离
trainBodyFillColor: '#000000', // 列车车身填充颜色 trainBodyFillColor: '#000000', // 列车车身填充颜色
trainNameFormat: 'targetCode:serviceNumber:tripNumber'// 列车显示格式 trainNameFormat: 'tripNumber:serviceNumber:groupNumber'// 列车显示格式
}, },
hsda: { hsda: {
trainHSDATextFontSize: 8// 列车HDSA字号 trainHSDATextFontSize: 8// 列车HDSA字号
}, },
trainAtrStatus: {
trainAtrStatusOffset: { x: 80, y: 9},
r: 5
},
travelSigns: {
trainTravelSignsOffset: { x:3, y: 3}
},
delayTime: {
trainDelayTimeOffset: { x:5, y: 14}
},
crewNum: {
trainCrewNumOffset: { x:60, y: 25}
},
travelNum: {
trainTravelNumOffset: { x:48, y:3}
},
trainNumber: { trainNumber: {
targetCodePrefix: '000', // 目的地码前缀 targetCodePrefix: '000', // 目的地码前缀
defaultTargetCode: 'AAA', // 默认目的地码 defaultTargetCode: 'AAA', // 默认目的地码
trainTargetTextAlign: 'left', // 车次号文字显示位置 trainTargetTextAlign: 'left', // 车次号文字显示位置
trainNumberOffset: { x: 1, y: 1 }// 目的地码偏移量 trainNumberOffset: { x: 48, y: 3 }// 目的地码偏移量
}, },
trainServer: { trainServer: {
serviceNumberPrefix: '00', // 服务号(表号)前缀 serviceNumberPrefix: '00', // 服务号(表号)前缀
defaultServiceNumber: 'BB', // 默认服务号(表号) defaultServiceNumber: 'BB', // 默认服务号(表号)
trainServerOffset: { x: 26, y: 1 }// 列车服务号偏移 trainServerOffset: { x: 35, y: 3 }// 列车服务号偏移
}, },
trainTarget: { trainTarget: {
tripNumberPrefix: '<', // 车次号前缀 tripNumberPrefix: '000', // 车次号前缀
defaultDirectionCode: 'D', // 默认车次号1 defaultDirectionCode: '', // 默认车次号1
defaultTripNumber: 'CCC', // 默认车次号2 defaultTripNumber: 'CCC', // 默认车次号2
trainTargetOffset: { x: 42, y: 1 }// 列车车次号偏移 trainTargetOffset: { x: 10, y: 3 }// 列车车次号偏移
}, },
trainTargetNumber: { trainTargetNumber: {
groupNumberPrefix: '000', // 车组号前缀 groupNumberPrefix: '000', // 车组号前缀
defaultGroupNumber: 'EEE', // 默认车组号 defaultGroupNumber: 'EEE', // 默认车组号
trainTargetNumberOffset: { x: 0, y: 1 }// 车组号偏移量 trainTargetNumberOffset: { x: 5, y: 25 }// 车组号偏移量
}, },
trainHead: { trainHead: {
trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框
@ -497,12 +513,20 @@ class SkinCode extends defaultStyle {
trainHeadFillColor: '#EF0C08'// 列车车头矩形填充颜色 trainHeadFillColor: '#EF0C08'// 列车车头矩形填充颜色
}, },
common: { common: {
trainHeight: 30, // 列车高度 hasTravelSigns: true, // 是否有行进标志
hasAtrStatus: true, // 是否有atr状态
hasDelayTime: true, // 是否有延迟时间
hasCrewNum: true, // 是否有乘务组号
hasTravelNum: true, // 是否有行程号
useSelfFormat: true,
useSelfText: true,
fixedCoordinates: true, // 列车车组号等固定坐标
trainHeight: 40, // 列车高度
trainHeadDistance: 2, // 列车和车头之间的间距 trainHeadDistance: 2, // 列车和车头之间的间距
trainWidth: 76, // 列车长度 trainWidth: 90, // 列车长度
trainTextFontSize: 15, // 列车字号 trainTextFontSize: 12, // 列车字号
fontFamily: 'consolas', // 默认字体 族类 fontFamily: 'consolas', // 默认字体 族类
nameFontSize: 15, // 字体大小 nameFontSize: 12, // 字体大小
haveTextHSDA: false, // 是否需创建textHSDA对象 haveTextHSDA: false, // 是否需创建textHSDA对象
haveArrowText: true, // 是否需创建arrowText对象 haveArrowText: true, // 是否需创建arrowText对象
haveTrainBorder: false, // 是否需创建trainBorder对象 haveTrainBorder: false, // 是否需创建trainBorder对象
@ -512,6 +536,7 @@ class SkinCode extends defaultStyle {
displayPosition: 'margin' // 非同通信车在物理区段(有逻辑区段)上显示的位置 margin:行驶方向边缘车次窗 center: 中间位置车次窗 displayPosition: 'margin' // 非同通信车在物理区段(有逻辑区段)上显示的位置 margin:行驶方向边缘车次窗 center: 中间位置车次窗
}, },
trainStatusStyle: { trainStatusStyle: {
defaultDestinationColor: '#FFFF00', // 默认目的地状态显示颜色
destinationStatus: [ destinationStatus: [
{ status: '01', showColor: '#FFFF00' }, { status: '01', showColor: '#FFFF00' },
{ status: '02', showColor: '#00FF00' }, { status: '02', showColor: '#00FF00' },
@ -528,19 +553,19 @@ class SkinCode extends defaultStyle {
lineLShow: false, lineLShow: false,
lineRShow: false, lineRShow: false,
arrowLShow: false, arrowLShow: false,
arrowRShow: true arrowRShow: false
}, },
{ {
type: 0, type: 0,
lineLShow: false, lineLShow: false,
lineRShow: false, lineRShow: false,
arrowLShow: true, arrowLShow: false,
arrowRShow: false arrowRShow: false
} }
], // 运行方向状态类型对应车头显示状态 1从左往右 0从右往左 ], // 运行方向状态类型对应车头显示状态 1从左往右 0从右往左
directionStopType: [ directionStopType: [
{ type: 1, lineLShow: false, lineRShow: true }, { type: 1, lineLShow: false, lineRShow: false },
{ type: 0, lineLShow: true, lineRShow: false } { type: 0, lineLShow: false, lineRShow: false }
], // 列车停止方向类型对应车头显示状态 1从左往右 0从右往左 ], // 列车停止方向类型对应车头显示状态 1从左往右 0从右往左
driveModeStatus: [ driveModeStatus: [
{ {

View File

@ -453,7 +453,7 @@ class SkinCode extends defaultStyle {
trainTargetTextAlign: 'right' // 车次号文字显示位置 trainTargetTextAlign: 'right' // 车次号文字显示位置
}, },
trainTargetNumber: { trainTargetNumber: {
trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量 trainTargetNumberOffset: {x: -4, y: 4}// 车组号偏移量
}, },
trainHead: { trainHead: {
trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框
@ -467,7 +467,7 @@ class SkinCode extends defaultStyle {
common: { common: {
trainHeight: 20, // 列车高度 trainHeight: 20, // 列车高度
trainHeadDistance: 2, // 列车和车头之间的间距 trainHeadDistance: 2, // 列车和车头之间的间距
trainWidth: 55, // 列车长度 trainWidth: 57, // 列车长度
trainTextFontSize: 16, // 列车字号 trainTextFontSize: 16, // 列车字号
fontFamily: 'consolas', // 默认字体 族类 fontFamily: 'consolas', // 默认字体 族类
haveTextHSDA: true, // 是否需创建textHSDA对象 haveTextHSDA: true, // 是否需创建textHSDA对象

View File

@ -4,6 +4,7 @@ import '../StationStand/EDetain';
import ETextName from '../element/ETextName'; // 名称文字 (共有) import ETextName from '../element/ETextName'; // 名称文字 (共有)
import EMouse from './EMouse'; import EMouse from './EMouse';
import store from '@/store'; import store from '@/store';
import Circle from 'zrender/src/graphic/shape/Circle';
/** 车身*/ /** 车身*/
export default class TrainBody extends Group { export default class TrainBody extends Group {
@ -144,8 +145,8 @@ export default class TrainBody extends Group {
this.textTrainTargetNumber = new ETextName({ this.textTrainTargetNumber = new ETextName({
zlevel: model.zlevel, zlevel: model.zlevel,
z: model.z+1, z: model.z+1,
x: parseInt(model.point.x - style.Train.trainBody.lrPadding), x: parseInt(model.point.x + style.Train.trainTargetNumber.trainTargetNumberOffset.x),
y: parseInt(model.point.y + style.Train.trainBody.upPadding), y: parseInt(model.point.y + style.Train.trainTargetNumber.trainTargetNumberOffset.y),
text: groupNumber.substring(groupNumber.length - 3), text: groupNumber.substring(groupNumber.length - 3),
textFill: style.trainTextColor, textFill: style.trainTextColor,
textStroke: style.trainTextColor, textStroke: style.trainTextColor,
@ -163,6 +164,89 @@ export default class TrainBody extends Group {
this.add(this.textD); this.add(this.textD);
this.add(this.textA); this.add(this.textA);
} }
if (style.Train.common.hasAtrStatus) {
this.atrStatus = new Circle({
zlevel: model.zlevel,
z: model.z + 1,
shape: {
cx: parseInt(model.point.x + style.Train.trainAtrStatus.trainAtrStatusOffset.x),
cy: parseInt(model.point.y + style.Train.trainAtrStatus.trainAtrStatusOffset.y),
r: style.Train.trainAtrStatus.r
},
style: {
fill: '#ff0000'
}
});
this.add(this.atrStatus);
}
if (style.Train.common.hasTravelSigns) {
this.travelSigns = new ETextName({
zlevel: model.zlevel,
z: model.z + 1,
x: parseInt(model.point.x + style.Train.travelSigns.trainTravelSignsOffset.x),
y: parseInt(model.point.y + style.Train.travelSigns.trainTravelSignsOffset.y),
text: '<',
textFill: style.trainTextColor,
textStroke: style.trainTextColor,
textStrokeWidth: 0,
fontSize: model.fontSize,
fontFamily: style.Train.common.fontFamily,
textAlign: 'left',
textVerticalAlign: 'top'
});
this.add(this.travelSigns);
}
if (style.Train.common.hasCrewNum) {
this.crewNum = new ETextName({
zlevel: model.zlevel,
z: model.z + 1,
x: parseInt(model.point.x + style.Train.crewNum.trainCrewNumOffset.x),
y: parseInt(model.point.y + style.Train.crewNum.trainCrewNumOffset.y),
text: 'BBB',
textFill: style.trainTextColor,
textStroke: style.trainTextColor,
textStrokeWidth: 0,
fontSize: model.fontSize,
fontFamily: style.Train.common.fontFamily,
textAlign: 'left',
textVerticalAlign: 'top'
});
this.add(this.crewNum);
}
if (style.Train.common.hasTravelNum) {
this.travelNum = new ETextName({
zlevel: model.zlevel,
z: model.z + 1,
x: parseInt(model.point.x + style.Train.travelNum.trainTravelNumOffset.x),
y: parseInt(model.point.y + style.Train.travelNum.trainTravelNumOffset.y),
text: 'AA',
textFill: style.trainTextColor,
textStroke: style.trainTextColor,
textStrokeWidth: 0,
fontSize: model.fontSize,
fontFamily: style.Train.common.fontFamily,
textAlign: 'left',
textVerticalAlign: 'top'
});
this.add(this.travelNum);
}
if (style.Train.common.hasDelayTime) {
this.delayTime = new ETextName({
zlevel: model.zlevel,
z: model.z + 1,
x: parseInt(model.point.x + style.Train.delayTime.trainDelayTimeOffset.x),
y: parseInt(model.point.y + style.Train.delayTime.trainDelayTimeOffset.y),
text: '0',
textFill: style.trainTextColor,
textStroke: style.trainTextColor,
textStrokeWidth: 0,
fontSize: model.fontSize,
fontFamily: style.Train.common.fontFamily,
textAlign: 'left',
textVerticalAlign: 'top'
});
this.add(this.delayTime);
}
} }
removeTrainDetail() { removeTrainDetail() {
@ -218,19 +302,19 @@ export default class TrainBody extends Group {
let widthText = 0; let widthText = 0;
arr.forEach(ele => { arr.forEach(ele => {
if (ele == 'targetCode') { if (ele == 'targetCode') {
this.textTrainNumber.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset) ); !style.Train.common.fixedCoordinates && this.textTrainNumber.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset) );
widthText += this.textTrainNumber.getBoundingRect().width; widthText += this.textTrainNumber.getBoundingRect().width;
this.add(this.textTrainNumber); this.add(this.textTrainNumber);
} else if (ele == 'serviceNumber') { } else if (ele == 'serviceNumber') {
this.textTrainServer.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset)); !style.Train.common.fixedCoordinates && this.textTrainServer.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset));
widthText += this.textTrainServer.getBoundingRect().width; widthText += this.textTrainServer.getBoundingRect().width;
this.add(this.textTrainServer); this.add(this.textTrainServer);
} else if (ele == 'tripNumber') { } else if (ele == 'tripNumber') {
this.textTrainTarget.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset)); !style.Train.common.fixedCoordinates && this.textTrainTarget.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset));
widthText += this.textTrainTarget.getBoundingRect().width; widthText += this.textTrainTarget.getBoundingRect().width;
this.add(this.textTrainTarget); this.add(this.textTrainTarget);
} else if (ele == 'groupNumber') { } else if (ele == 'groupNumber') {
this.textTrainTargetNumber.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset)); !style.Train.common.fixedCoordinates && this.textTrainTargetNumber.setStyle('x', parseInt(model.point.x + widthText + style.Train.common.textOffset));
widthText += this.textTrainTargetNumber.getBoundingRect().width; widthText += this.textTrainTargetNumber.getBoundingRect().width;
this.add(this.textTrainTargetNumber); this.add(this.textTrainTargetNumber);
} }

View File

@ -9,7 +9,7 @@ export default class TrainBodyBox extends Group {
} }
create() { create() {
const model = this.model; const model = this.model;
this.trainBodyBox = new Rect({ this.trainBodyBox = new Rect({
zlevel: model.zlevel, zlevel: model.zlevel,
z: model.z, z: model.z,
shape: { shape: {

View File

@ -23,7 +23,6 @@ export default {
/** 解析exal数据转换为Json后台数据*/ /** 解析exal数据转换为Json后台数据*/
importData(Sheet, JsonData) { importData(Sheet, JsonData) {
var dataList = convertSheetToList(Sheet, true); var dataList = convertSheetToList(Sheet, true);
if (dataList && dataList.length) { if (dataList && dataList.length) {
if (dataList && dataList.length && dataList[1] && dataList[0]) { if (dataList && dataList.length && dataList[1] && dataList[0]) {
// const tIndex = dataList.findIndex(it => { return it[0]; }); // 设置不用过滤行数 // const tIndex = dataList.findIndex(it => { return it[0]; }); // 设置不用过滤行数

View File

@ -25,7 +25,6 @@ function handle(state, data) {
break; break;
case 'Simulation_RunFact': // 仿真-列车实际到发车站消息 case 'Simulation_RunFact': // 仿真-列车实际到发车站消息
let runFactMsg = msg; let runFactMsg = msg;
console.log(msg, '----------------');
if (runFactMsg.constructor !== Array ) { if (runFactMsg.constructor !== Array ) {
runFactMsg = [msg]; runFactMsg = [msg];
} }

View File

@ -167,6 +167,7 @@ export default {
watch: { watch: {
'$route' () { '$route' () {
this.getRunPlanList(); this.getRunPlanList();
this.PlanConvert = this.$theme.loadPlanConvert(this.$route.query.lineCode);
} }
}, },
created() { created() {