站台 绘图代码调整

This commit is contained in:
joylink_cuiweidong 2020-09-09 13:55:42 +08:00
parent 3b8c4852c3
commit ccf2228eeb
27 changed files with 1256 additions and 1010 deletions

View File

@ -281,6 +281,64 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 北京线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#606060', // 站台空闲颜色
jumpStopColor: 'lightSkyBlue', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 8, // 站台首端字体大小
stopColor: '#FEFE00' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: -40 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: 20 }, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: -1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 13 }, // 扣车偏移量
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 11, // 字体大小
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 8, // 停站时间字体大小
textColor: '#FFFFFF', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: { x: -8, y: 25 } // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 8, // 运行等级字体大小
position: 1, // 运行等级方向
offset: { x: -8, y: 10 }, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
// 鼠标事件样式
mouseOverStyle: {
borderLineColor: '#FFFFFF',
borderLineDash: [3, 3]
},
// reentry: {}, // 站台折返策略
common: { // 通用属性
textFontSize: 8, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
@ -291,57 +349,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 8, // 站台首端字体大小
spareColor: '#606060', // 站台空闲颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: 'lightSkyBlue', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: -40 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: 20 }, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: -1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 13 }, // 扣车偏移量
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
headFontSize: 8,
fontWeight: 'normal'
},
stopTime: { // 停站时间
position: 1, // 停站时间方向
offset: { x: -8, y: 25 }, // 运行时间偏移量
textColor: '#FFFFFF', // 停站时间字体颜色
textFontSize: 8
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: 1, // 运行等级方向
offset: { x: -8, y: 10 }, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
mouseOverStyle: {
borderLineColor: '#FFFFFF',
borderLineDash: [3, 3]
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -195,9 +195,73 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 成都一号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level', 'jump'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: 'white', // 站台空闲颜色
jumpStopColor: 'blue', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 10, // 站台首端字体大小
stopColor: 'yellow' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25}, // 外站台紧急关闭偏移量
closeColor: 'red' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: -1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 13 }, // 扣车偏移量
centerTrainColor: 'white', // 中心扣车颜色
andCenterTrainColor: 'red', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 10, // 字体大小
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 12, // 停站时间字体大小
textColor: 'white', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: {x: -8, y: -4} // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 12, // 运行等级字体大小
position: 1, // 运行等级方向
offset: {x: -8, y: 30}, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
},
jump: {
z:1,
position: 1, // 停跳方向
text: '跳', // 停跳显示内容
offset: {x: -8, y: 10},
textColor: '#00ffcc', // 停跳文字颜色
arcColor: '#00ffcc', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 8, // 圆半径大小
fontWeight: 'normal', // 文字居中
fontSize: 11 // 文字大小
},
common: { // 通用属性
textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
},
safetyDoor: { // 屏蔽门
@ -206,64 +270,18 @@ class SkinCode extends defaultStyle {
defaultColor: 'green', // 屏蔽门默认颜色
splitDoorColor: 'green' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 10, // 站台首端字体大小
spareColor: 'white', // 站台空闲颜色
stopColor: 'yellow', // 站台列车停站颜色
jumpStopColor: 'blue', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25}, // 外站台紧急关闭偏移量
closeColor: 'red' // 站台紧急关闭颜色
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: -1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: -8, y: 13}, // 扣车偏移量
centerTrainColor: 'white', // 中心扣车颜色
andCenterTrainColor: 'red', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 10,
fontWeight: 'normal'
},
stopTime: { // 停站时间
position: 1, // 停站时间方向
offset: {x: -8, y: -4}, // 运行时间偏移量
textColor: 'white', // 停站时间字体颜色
textFontSize: 12
},
jump: {
position: 1, // 停跳方向
text: '跳', // 停跳显示内容
offset: {x: -8, y: 10},
textColor: '#00ffcc', // 停跳文字颜色
arcColor: '#00ffcc', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 8, // 圆半径大小
fontWeight: 'normal', // 文字居中
textFontSize: 11 // 圆半径大小
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: 1, // 运行等级方向
offset: {x: -8, y: 30}, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -211,9 +211,75 @@ class SkinCode extends defaultStyle {
show: false
};
this[deviceType.StationStand] = {
// 成都三号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level', 'jump'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#ffffff', // 站台空闲颜色
jumpStopColor: '#808080', // 站台跳停颜色
designatedJumpStopColor: '#808080', // 站台指定列车跳停颜色
headFontSize: 10, // 站台首端字体大小
stopColor: '#FFF000' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
flicker: true, // 闪烁
special:false,
mergentR: 5, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 30 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -30}, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: -1, // 扣车标识在站台上显示方向
text: '扣', // 扣车显示内容
offset: {x: -8, y: 20}, // 扣车偏移量
centerTrainColor: '#C0C0C0', // 中心扣车颜色
andCenterTrainColor: '#C0C0C0', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 10, // 字体大小
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 10, // 停站时间字体大小
textColor: '#FFFFFF', // 停站时间字体颜色
position: -1, // 停站时间方向
offset: {x: -8, y: 10} // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 10, // 运行等级字体大小
position: 1, // 运行等级方向
offset: {x: -8, y: 15}, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
},
// 跳停
jump: {
z:1,
position: 1, // 停跳方向
text: '跳', // 停跳显示内容
offset: {x: -8, y: 10},
textColor: '#00ffcc', // 停跳文字颜色
arcColor: '#00ffcc', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 8, // 圆半径大小
fontWeight: 'normal', // 文字居中
fontSize: 11 // 文字大小
},
common: { // 通用属性
textFontSize: 10, // 站台默认字体大小
haveJumpShow: true, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件prdType
},
safetyDoor: { // 屏蔽门
@ -222,65 +288,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#C00808' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 10, // 站台首端字体大小
spareColor: '#ffffff', // 站台空闲颜色
stopColor: '#FFF000', // 站台列车停站颜色
jumpStopColor: '#808080', // 站台跳停颜色
designatedJumpStopColor: '#808080' // 站台指定列车跳停颜色
},
standEmergent: { // 紧急关闭
flicker: true, // 闪烁
mergentR: 5, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 30 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -30}, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: -1, // 扣车标识在站台上显示方向
text: '扣', // 扣车显示内容
offset: {x: -8, y: 20}, // 扣车偏移量
centerTrainColor: '#C0C0C0', // 中心扣车颜色
andCenterTrainColor: '#C0C0C0', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 10,
fontWeight: 'normal'
},
stopTime: { // 停站时间
position: -1, // 停站时间方向
offset: {x: -8, y: 10}, // 运行时间偏移量
textColor: '#FFFFFF', // 停站时间字体颜色
textFontSize: 10
},
jump: {
position: 1, // 停跳方向
text: '跳', // 停跳显示内容
offset: {x: -8, y: 10},
textColor: '#00ffcc', // 停跳文字颜色
arcColor: '#00ffcc', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 8, // 圆半径大小
fontWeight: 'normal',
textFontSize: 11
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: 1, // 运行等级方向
offset: {x: -8, y: 15}, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -189,9 +189,74 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 佛山有轨电车站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level', 'jump'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#606060', // 站台空闲颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: '#606060', // 站台指定列车跳停颜色
headFontSize: 11, // 站台首端字体大小
stopColor: '#FEFE00' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25}, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: 15}, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: -8, y: 17}, // 扣车偏移量
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 11, // 字体大小
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 11, // 停站时间字体大小
textColor: '#C0C0C0', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: {x: -8, y: 5} // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 11, // 运行等级字体大小
position: 1, // 运行等级方向
offset: {x: -8, y: -6}, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
// 跳停
jump: {
z:1,
position: 1, // 停跳方向
text: 'S', // 停跳显示内容
offset: {x: -8, y: -8},
textColor: '#5376B3', // 停跳文字颜色
arcColor: '#000000', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 0, // 圆半径大小
fontWeight: 'normal', // 文字居中
fontSize: 11 // 文字大小
},
common: { // 通用属性
textFontSize: 11, // 站台默认字体大小
haveJumpShow: true, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
},
safetyDoor: { // 屏蔽门
@ -201,64 +266,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 11, // 站台首端字体大小
spareColor: '#606060', // 站台空闲颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: '#606060' // 站台指定列车跳停颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25}, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: 15}, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: -8, y: 17}, // 扣车偏移量
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 11,
fontWeight: 'normal'
},
stopTime: { // 停站时间
position: 1, // 停站时间方向
offset: {x: -8, y: 5}, // 停站时间偏移量
textColor: '#C0C0C0', // 停站时间字体颜色
textFontSize: 11
},
jump: {
position: 1, // 停跳方向
text: 'S', // 停跳显示内容
offset: {x: -8, y: -8},
textColor: '#5376B3', // 停跳文字颜色
arcColor: '#000000', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 0, // 圆半径大小
fontWeight: 'normal', // 文字居中
textFontSize: 11
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: 1, // 运行等级方向
offset: {x: -8, y: -6}, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -188,6 +188,70 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 福州一号线新版站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停 折返策略
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level', 'reentry'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#606060', // 站台空闲颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 11, // 站台首端字体大小
stopColor: '#FEFE00' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: -8, y: 25}, // 扣车偏移量
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
// trainColor: '#E4EF50', // 车站扣车颜色
fontSize: 11, // 字体大小
circle: true, // 空心圆环
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 11, // 停站时间字体大小
textColor: '#FFFFFF', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: {x: -8, y: 26} // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 11, // 运行等级字体大小
position: 1, // 运行等级方向
offset: {x: -10, y: -10}, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
// 折返策略
reentry: { // 站台折返策略
z:1,
mergentR:4, // 站台折返策略边数
position: 0, // 折返方向
offset: {x: -16, y: 20}, // 折返偏移量
noHumanColor: '#0F16DA', // 站台无人折返
autoChangeEndsColor: '#0BF400' // 站台自动换端
},
common: { // 通用属性
textFontSize: 11, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
@ -199,57 +263,17 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 11, // 站台首端字体大小
spareColor: '#606060', // 站台空闲颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
reentry: { // 站台折返策略
position: 0, // 折返方向
offset: {x: -16, y: 20}, // 折返偏移量
noHumanColor: '#0F16DA', // 站台无人折返
autoChangeEndsColor: '#0BF400' // 站台自动换端
},
detainCar: { // 扣车
text: 'H', // 扣车显示内容
position: 1, // 扣车方向
offset: {x: -8, y: 25}, // 扣车偏移量
trainColor: '#E4EF50', // 车站扣车颜色
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
circle: true // 空心圆环
},
stopTime: { // 停站时间
position: 1, // 运行时间方向
offset: {x: -8, y: 26}, // 运行时间偏移量
textColor: '#FFFFFF' // 停站时间字体颜色
},
level: { // 运行等级
position: 1, // 运行等级方向
offset: {x: -10, y: -10}, // 运行等级偏移量
textColor: '#FFFFFF' // 运行等级字体颜色
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -195,10 +195,84 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 哈尔滨一号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'level', 'jump', 'trainStop', 'trainDepart'],
// 站台
safeStand:{
// 层级
z:0,
special:true,
spareColor: '#00FFFF', // 站台空闲颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 11, // 站台首端字体大小
stopColor: '#FEFE00', // 站台列车停站颜色
textFill: '#fff' // 站台字体颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: -10, y: -20 }, // 内站台紧急关闭偏移量
outsideOffset: { x: -10, y: -10}, // 外站台紧急关闭偏移量
closeColor: '#F61107', // 站台紧急关闭颜色
width: 4,
radiusR: 6
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: 60, y: -18 }, // 扣车偏移量
centerTrainColor: '#F61107', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 18, // 字体大小
fontWeight: 'bold',
textVerticalAlign: 'middle' // 车站扣车 文字垂直对齐方式
},
// 运行等级
level:{
z:1,
textFontSize: 11, // 运行等级字体大小
position: 1, // 运行等级方向
offset: { x: -8, y: 6 }, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
// 跳停
jump: {
z:1,
position: 1, // 停跳方向
text: 'S', // 停跳显示内容
offset: { x: 10, y: 20 },
textColor: '#00FF00', // 停跳文字颜色
fontWeight: 'bold', // 文字居中
fontSize: 18 // 文字大小
},
// 列车停站
trainStop: { // 停车标志
z:1,
fillColor: '#FF0000',
insideOffset:{ x: 6, y: -22}, // 内站台停车标志偏移量
outsideOffset: { x: -6, y: 22}, // 外站台停车标志偏移量
radiusR: 4 // 标志半径
},
// 停车计时
trainDepart:{ // 停车计时
z:1,
insideOffset:{ x: 25, y: -21}, // 内站台停车计时偏移量
outsideOffset: { x: -25, y: -11}, // 外站台停车计时偏移量
textFill: '#00FF00', // 文字颜色
textBorderColor: '#00FF00', // 文字边框颜色
fontSize: 10 // 字体大小
},
common: { // 通用属性
textFontSize: 11, // 站台默认字体大小
special: true, // 特殊站台
haveJumpShow: true, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
},
safetyDoor: { // 屏蔽门
@ -208,70 +282,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#fff', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 11, // 站台首端字体大小
textFill: '#fff', // 站台字体颜色
spareColor: '#00ffff', // 站台空闲颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: -10, y: -20 }, // 内站台紧急关闭偏移量
outsideOffset: { x: -10, y: -10}, // 外站台紧急关闭偏移量
closeColor: '#F61107', // 站台紧急关闭颜色
width: 4,
radiusR: 6
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
fontSize: 18, // 扣车字体大小
offset: { x: 60, y: -18 }, // 扣车偏移量
centerTrainColor: '#F61107', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontWeight: 'bold',
textVerticalAlign: 'middle' // 车站扣车 文字垂直对齐方式
},
jump: {
text: 'S', // 停跳显示内容
offset: { x: 10, y: 20 },
textColor: '#00FF00', // 停跳文字颜色
fontWeight: 'bold',
fontSize: 18
},
stopTime: {}, // 停站时间
trainStop: { // 停车标志
fillColor: '#FF0000',
insideOffset:{ x: 6, y: -22}, // 内站台停车标志偏移量
outsideOffset: { x: -6, y: 22}, // 外站台停车标志偏移量
radiusR: 4 // 标志半径
},
trainDepart:{ // 停车计时
insideOffset:{ x: 25, y: -21}, // 内站台停车计时偏移量
outsideOffset: { x: -25, y: -11}, // 外站台停车计时偏移量
textFill: '#00FF00', // 文字颜色
textBorderColor: '#00FF00', // 文字边框颜色
fontSize: 10 // 字体大小
},
level: { // 运行等级
position: 1, // 运行等级方向
offset: { x: -8, y: 6 }, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// stopTime: {}, // 停站时间
};
this[deviceType.StationCounter] = {

View File

@ -318,9 +318,61 @@ class SkinCode extends defaultStyle {
}
};
this[deviceType.StationStand] = {
// 宁波一号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: 'white', // 站台空闲颜色
jumpStopColor: '#6260f3', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 10, // 站台首端字体大小
stopColor: 'yellow' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: 'red' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 10 }, // 扣车偏移量
centerTrainColor: 'white', // 中心扣车颜色
andCenterTrainColor: 'red', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 10, // 字体大小
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 10, // 停站时间字体大小
textColor: 'white', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: { x: -8, y: 4 } // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 10, // 运行等级字体大小
position: -1, // 运行等级方向
offset: { x: -8, y: 4 }, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
},
common: { // 通用属性
textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
},
safetyDoor: { // 屏蔽门
@ -329,54 +381,20 @@ class SkinCode extends defaultStyle {
defaultColor: 'green', // 屏蔽门默认颜色
splitDoorColor: 'green' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 10, // 站台首端字体大小
spareColor: 'white', // 站台空闲颜色
stopColor: 'yellow', // 站台列车停站颜色
jumpStopColor: '#6260f3', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: 'red' // 站台紧急关闭颜色
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 10 }, // 扣车偏移量
centerTrainColor: 'white', // 中心扣车颜色
andCenterTrainColor: 'red', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 10,
fontWeight: 'normal'
},
stopTime: { // 停站时间
position: 1, // 停站时间方向
offset: { x: -8, y: 4 }, // 运行时间偏移量
textColor: 'white', // 停站时间字体颜色
textFontSize: 10 // 停站时间字体大小
},
jump: {},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: -1, // 运行等级方向
offset: { x: -8, y: 4 }, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// jump: {},
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationTurnBack] = { // 站后折返

View File

@ -367,6 +367,65 @@ class SkinCode extends defaultStyle {
}
};
this[deviceType.StationStand] = {
// 宁波三号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停
elemnetType:['safeStand', 'emergent', 'detainRect', 'stopTime', 'level'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#0080C0', // 站台空闲颜色
spareStrokeColor: '#000000', // 站台空闲描边颜色
jumpStopColor: '#C00000', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 10, // 站台首端字体大小
doorOpenColor:'#00FF00', // 车门开启状态颜色
stopColor: 'yellow', // 站台列车停站颜色
virtualColor: '#585858', // 虚拟站台颜色
lineWidth: 3 // 站台线宽
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: 'red' // 站台紧急关闭颜色
},
// 扣车元素 矩形扣车 宁波三号线
detainRect:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 10 }, // 扣车偏移量
centerTrainColor: '#00FF00', // 中心扣车颜色
andCenterTrainColor: '#00FF00', // 车站+中心扣车颜色
detainTrainTextColor: '#FFFF00', // 车站扣除文字颜色
spareStrokeColor: '#000000', // 扣车描边颜色
lineWidth: 3, // 扣车线宽
fontSize: 10,
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 10, // 停站时间字体大小
textColor: 'white', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: { x: -8, y: 4 } // 停站时间偏移量
},
// 运行等级
level:{
z:1,
textFontSize: 10, // 运行等级字体大小
position: -1, // 运行等级方向
offset: { x: -8, y: 4 }, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
},
common: { // 通用属性
textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示
@ -378,59 +437,20 @@ class SkinCode extends defaultStyle {
defaultColor: 'green', // 屏蔽门默认颜色
splitDoorColor: 'green' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 10, // 站台首端字体大小
lineWidth: 3, // 站台线宽
spareColor: '#0080C0', // 站台空闲颜色
spareStrokeColor: '#000000', // 站台空闲描边颜色
doorOpenColor:'#00FF00', // 车门开启状态颜色
stopColor: 'yellow', // 站台列车停站颜色
jumpStopColor: '#C00000', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
virtualColor: '#585858' // 虚拟站台颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: 'red' // 站台紧急关闭颜色
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: { x: -8, y: 10 }, // 扣车偏移量
centerTrainColor: '#00FF00', // 中心扣车颜色
andCenterTrainColor: '#00FF00', // 车站+中心扣车颜色
detainTrainTextColor: '#FFFF00', // 车站扣除文字颜色
fontSize: 10,
fontWeight: 'normal',
specialShape: 'rect' // 扣车标志形状
},
stopTime: { // 停站时间
position: 1, // 停站时间方向
offset: { x: -8, y: 4 }, // 运行时间偏移量
textColor: 'white', // 停站时间字体颜色
textFontSize: 10 // 停站时间字体大小
},
jump: {},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: -1, // 运行等级方向
offset: { x: -8, y: 4 }, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// jump: {},
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationTurnBack] = { // 站后折返

View File

@ -197,6 +197,70 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 西安一/三号线 站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 折返策略
elemnetType:['safeStand', 'emergent', 'detainCarNormal', 'stopTime', 'level', 'reentry'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#606060', // 站台空闲颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 11, // 站台首端字体大小
stopColor: '#FEFE00' // 站台列车停站颜色
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
// 扣车元素 普通扣车
detainCarNormal:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: -8, y: -6}, // 扣车偏移量
trainColor: '#E4EF50', // 车站扣车颜色
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 11, // 字体大小
circle: true, // 空心圆环
fontWeight: 'normal'
},
// 停站时间
stopTime:{
z:1,
textFontSize: 11, // 停站时间字体大小
textColor: '#FFFFFF', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: {x: -8, y: 26} // 停站时间偏移
},
// 运行等级
level:{
z:1,
textFontSize: 11, // 运行等级字体大小
position: 1, // 运行等级方向
offset: {x: -8, y: 6}, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
// 折返策略
reentry: { // 站台折返策略
z:1,
mergentR:4, // 站台折返策略边数
position: 0, // 折返方向
offset: {x: -16, y: -15}, // 折返偏移量
noHumanColor: '#0F16DA', // 站台无人折返
autoChangeEndsColor: '#0BF400' // 站台自动换端
},
common: { // 通用属性
textFontSize: 11, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
@ -208,57 +272,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色
},
stand: { // 站台
headFontSize: 11, // 站台首端字体大小
spareColor: '#606060', // 站台空闲颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
standEmergent: { // 紧急关闭
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
closeColor: '#F61107' // 站台紧急关闭颜色
},
reentry: { // 站台折返策略
position: 0, // 折返方向
offset: {x: -16, y: -15}, // 折返偏移量
noHumanColor: '#0F16DA', // 站台无人折返
autoChangeEndsColor: '#0BF400' // 站台自动换端
},
detainCar: { // 扣车
text: 'H', // 扣车显示内容
position: 1, // 扣车方向
offset: {x: -8, y: -6}, // 扣车偏移量
trainColor: '#E4EF50', // 车站扣车颜色
centerTrainColor: '#FFFFFF', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
circle: true // 空心圆环
},
stopTime: { // 停站时间
position: 1, // 运行时间方向
offset: {x: -8, y: 26}, // 运行时间偏移量
textColor: '#FFFFFF' // 停站时间字体颜色
},
level: { // 运行等级
position: 1, // 运行等级方向
offset: {x: -8, y: 6}, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -240,11 +240,85 @@ class SkinCode extends defaultStyle {
};
this[deviceType.StationStand] = {
// 西安二号线 站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停 模式筛选标识
elemnetType:['safeStand', 'emergent', 'detainCircle', 'stopTime', 'level', 'jump', 'patternFilter'],
// 站台
safeStand:{
// 层级
z:0,
special:false,
spareColor: '#808080', // 站台空闲颜色
jumpStopColor: 'yellow', // 站台跳停颜色
designatedJumpStopColor: 'yellow', // 站台指定列车跳停颜色
headFontSize: 10, // 站台首端字体大小
stopColor: '#808080', // 站台列车停站颜色
standType:'notFill', // 站台的样式NotFill为未填充目前是西安二号线线路样式
doorOpenColor:'#007f00' // 车门开启状态颜色(西安二号线线路样式)
// relatedStatus:['trainParking', 'assignSkip', 'allSkip', 'emergencyClosed']
},
// 站台紧急关闭
emergent:{
z:1,
special:true, // 西安二号线特殊样式
mergentR: 9, // 站台紧急关闭半径
mergentN: 8, // 站台紧急关闭边数
insideOffset: { x: 0, y: 40 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -40}, // 外站台紧急关闭偏移量
closeColor: 'red', // 站台紧急关闭颜色
defaultColor:'#808080' // 西安二号线特殊样式(默认颜色)
},
// 扣车元素 圆形 西安二号线
detainCircle:{
z:0,
position: -1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: 8, y: 0}, // 扣车偏移量
centerTrainColor: '#E400E4', // 中心扣车颜色
andCenterTrainColor: 'red', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除颜色
fontSize: 10,
fontWeight: 'normal',
circleWidth:14, // 西安二号线特殊样式 圆圈的宽度
defaultColor:'#808080' // 默认颜色
},
// 停站时间
stopTime:{
z:1,
textFontSize: 12, // 停站时间字体大小
textColor: 'white', // 停站时间字体颜色
position: 1, // 停站时间方向
offset: {x: -8, y: -4} // 停站时间偏移
},
// 运行等级
level:{
z:1,
textFontSize: 12, // 运行等级字体大小
position: 1, // 运行等级方向
offset: {x: -8, y: 30}, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
},
// 跳停
jump: {
z:1,
position: 1, // 停跳方向
text: '跳', // 停跳显示内容
offset: {x: -8, y: 10},
textColor: '#00ffcc', // 停跳文字颜色
arcColor: '#00ffcc', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 8, // 圆半径大小
fontWeight: 'normal', // 文字居中
fontSize: 11 // 文字大小
},
patternFilter:{ // 模式筛选标识
z:0,
defaultColor:'#808080', // 默认颜色,
offset:{x:25, y:15} // 相对于站台边缘的偏移
},
common: { // 通用属性
textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示
functionButtonShow: '03', // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
standType:'notFill' // 站台的样式NotFill为未填充目前是西安二号线线路样式
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
},
safetyDoor: { // 屏蔽门
height: 3, // 站台屏蔽门高度
@ -255,74 +329,18 @@ class SkinCode extends defaultStyle {
emergencyColor:'yellow', // 紧急出发按钮激活颜色
special:true // 特殊屏蔽门(目前是西安二号线线路样式)
},
stand: { // 站台
headFontSize: 10, // 站台首端字体大小
spareColor: '#808080', // 站台空闲颜色
stopColor: '#808080', // 站台列车停站颜色
jumpStopColor: 'yellow', // 站台跳停颜色
designatedJumpStopColor: 'yellow', // 站台指定列车跳停颜色
doorOpenColor:'#007f00' // 车门开启状态颜色(西安二号线线路样式)
},
standEmergent: { // 紧急关闭
mergentR: 9, // 站台紧急关闭半径
mergentN: 8, // 站台紧急关闭边数(西安二号线特殊样式)
insideOffset: { x: 0, y: 40 }, // 内站台紧急关闭偏移量
outsideOffset: { x: 0, y: -40}, // 外站台紧急关闭偏移量
closeColor: 'red', // 站台紧急关闭颜色
defaultColor:'#808080', // 西安二号线特殊样式(默认颜色)
special:true // 西安二号线特殊样式
},
patternFilter:{ // 模式筛选标识
defaultColor:'#808080', // 默认颜色,
offset:{x:25, y:15} // 相对于站台边缘的偏移
},
reentry: {}, // 站台折返策略
detainCar: { // 扣车
position: -1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
offset: {x: 8, y: 0}, // 扣车偏移量
centerTrainColor: '#E400E4', // 中心扣车颜色
andCenterTrainColor: 'red', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除颜色
fontSize: 10,
fontWeight: 'normal',
circleWidth:14, // 西安二号线特殊样式 圆圈的宽度
defaultColor:'#808080', // 默认颜色
specialShape: 'circle' // 西安二号线特殊样式
},
stopTime: { // 停站时间
position: 1, // 停站时间方向
offset: {x: -8, y: -4}, // 运行时间偏移量
textColor: 'white', // 停站时间字体颜色
textFontSize: 12
},
jump: {
position: 1, // 停跳方向
text: '跳', // 停跳显示内容
offset: {x: -8, y: 10},
textColor: '#00ffcc', // 停跳文字颜色
arcColor: '#00ffcc', // 停跳圆圈颜色
fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
r: 8, // 圆半径大小
fontWeight: 'normal', // 文字居中
textFontSize: 11 // 圆半径大小
},
trainStop: {}, // 停车标志
trainDepart: {}, // 停车计时
level: { // 运行等级
position: 1, // 运行等级方向
offset: {x: -8, y: 30}, // 运行等级偏移量
textColor: '#FFF000' // 停站等级字体颜色
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
}
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
};
this[deviceType.StationCounter] = {

View File

@ -14,7 +14,7 @@ class ESafeDoor extends Group {
const model = this.model;
const style = this.model.style;
const padding = 0.1;
if (style.StationStand.common.special) {
if (style.StationStand.safeStand.special) {
this.stand1 = new Rect({
zlevel: model.zlevel,
z: model.z,
@ -143,7 +143,7 @@ class ESafeDoor extends Group {
hasDoor(show) {
const style = this.model.style;
if (style.StationStand.common.special) {
if (style.StationStand.safeStand.special) {
if (show) {
this.stand1.setStyle('fill', style.transparentColor);
this.stand2.setStyle('fill', style.transparentColor);

View File

@ -12,33 +12,39 @@ class EDetain extends Group {
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
this.isNew = true;
/** 站台扣车*/
const detainD = model.right ? 1 : -1;
const detainX = model.position.x - detainD * (style.StationStand.detainCarNormal.offset.x - model.width / 2);
const detainY = model.position.y + detainD * (style.StationStand.detainCarNormal.offset.y - model.height / 2);
this.detain = new Text({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
position: [0, 0],
style: {
x: model.x,
y: model.y,
text: style.StationStand.detainCar.text,
fontSize: `${style.StationStand.detainCar.fontSize}px`,
x: detainX,
y: detainY,
text: style.StationStand.detainCarNormal.text,
fontSize: `${style.StationStand.detainCarNormal.fontSize}px`,
fontFamily: style.fontFamily,
textFill: style.StationStand.detainCar.centerTrainColor,
textFill: style.StationStand.detainCarNormal.centerTrainColor,
textStroke: style.backgroundColor,
textAlign: style.textStyle.textAlign,
textVerticalAlign: style.StationStand.detainCar.textVerticalAlign || style.textStyle.textVerticalAlign
textVerticalAlign: style.StationStand.detainCarNormal.textVerticalAlign || style.textStyle.textVerticalAlign
}
});
if (style.StationStand.detainCar.circle) {
if (style.StationStand.detainCarNormal.circle) {
const offsetX = model.right ? 8 : -8;
this.circleDetain = new Circle({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
cx: model.x + offsetX,
cy: model.y - 3,
cx: detainX + offsetX,
cy: detainY - 3,
r: 2
},
style: {
@ -58,6 +64,10 @@ class EDetain extends Group {
this.detain.setStyle('textFill', color);
}
recover() {
this.hideMode();
}
hideMode() {
this.detain && this.detain.hide();
this.circleDetain && this.circleDetain.hide();
@ -68,6 +78,27 @@ class EDetain extends Group {
this.detain && this.detain.show();
this.circleDetain && this.circleDetain.show();
}
holdTrain(type) {
const style = this.model.style;
switch (type) {
case 'centerAndTrain': {
this.showMode();
this.setColor(style.StationStand.detainCarNormal.andCenterTrainColor);
break;
}
case 'centerDetain': {
this.showMode();
this.setColor(style.StationStand.detainCarNormal.centerTrainColor);
break;
}
case 'trainDetain': {
this.showMode();
this.setColor(style.StationStand.detainCarNormal.detainTrainTextColor);
break;
}
}
}
}
export default EDetain;

View File

@ -10,47 +10,54 @@ class EDetainCircle extends Group {
}
create() {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
const detainD = model.right ? 1 : -1;
const x = model.position.x + (model.width / 2) * detainD + detainD * style.StationStand.detainCircle.offset.x + detainD * style.StationStand.detainCircle.circleWidth / 2;
const y = model.position.y;
const radius = style.StationStand.detainCircle.circleWidth / 2;
this.detainCircle = new Circle({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
cx: model.x,
cy: model.y,
r: model.radius
cx: x,
cy: y,
r: radius
},
style:{
lineWidth:2,
stroke:style.StationStand.detainCar.defaultColor
stroke:style.StationStand.detainCircle.defaultColor
}
});
this.line1 = new Line({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape:{
x1:model.x - model.radius * 0.7,
y1:model.y - model.radius * 0.7,
x2:model.x + model.radius * 0.7,
y2:model.y + model.radius * 0.7
x1:x - radius * 0.7,
y1:y - radius * 0.7,
x2:x + radius * 0.7,
y2:y + radius * 0.7
},
style:{
lineWidth:2,
stroke:style.StationStand.detainCar.defaultColor
stroke:style.StationStand.detainCircle.defaultColor
}
});
this.line2 = new Line({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape:{
x1:model.x - model.radius * 0.7,
y1:model.y + model.radius * 0.7,
x2:model.x + model.radius * 0.7,
y2:model.y - model.radius * 0.7
x1:x - radius * 0.7,
y1:y + radius * 0.7,
x2:x + radius * 0.7,
y2:y - radius * 0.7
},
style:{
lineWidth:2,
stroke:style.StationStand.detainCar.defaultColor
stroke:style.StationStand.detainCircle.defaultColor
}
});
this.add(this.detainCircle);
@ -63,6 +70,29 @@ class EDetainCircle extends Group {
this.line1.setStyle('stroke', color);
this.line2.setStyle('stroke', color);
}
recover() {
const style = this.model.style;
this.setColor(style.StationStand.detainCircle.defaultColor);
}
holdTrain(type) {
const style = this.model.style;
switch (type) {
case 'centerAndTrain': {
this.setColor(style.StationStand.detainCircle.centerTrainColor);
break;
}
case 'centerDetain': {
this.setColor(style.StationStand.detainCircle.centerTrainColor);
break;
}
case 'trainDetain': {
this.setColor(style.StationStand.detainCircle.centerTrainColor);
break;
}
}
}
}
export default EDetainCircle;

View File

@ -9,30 +9,34 @@ class EDetainCircle extends Group {
}
create() {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
const standX = model.position.x - model.width / 2;
const standY = model.position.y - model.height / 2;
let y;
if (model.right && model.inside) {
y = model.y + model.height / 2;
y = standY + model.height / 2;
} else if (model.right && !model.inside) {
y = model.y;
y = standY;
} else if (!model.right && model.inside) {
y = model.y;
y = standY;
} else if (!model.right && !model.inside) {
y = model.y + model.height / 2;
y = standY + model.height / 2;
}
this.detainRect = new Rect({
zlevel: model.zlevel,
z: model.z + 1,
zlevel: this.model.zlevel,
z: this.model.z + 1,
shape: {
x: model.x,
x: standX,
y: y,
width: model.width,
height: model.height / 2
},
style: {
lineWidth: style.StationStand.stand.lineWidth || 0,
stroke: style.StationStand.stand.spareStrokeColor,
lineWidth: style.StationStand.detainRect.lineWidth || 0,
stroke: style.StationStand.detainRect.spareStrokeColor,
fill: '#000'
}
});
@ -49,6 +53,30 @@ class EDetainCircle extends Group {
setHide() {
this.detainRect.hide();
}
recover() {
this.setHide();
}
holdTrain(type) {
const style = this.model.style;
switch (type) {
case 'centerAndTrain': {
this.showMode();
this.setColor(style.StationStand.detainRect.centerTrainColor);
break;
}
case 'centerDetain': {
this.showMode();
this.setColor(style.StationStand.detainRect.centerTrainColor);
break;
}
case 'trainDetain': {
this.showMode();
this.setColor(style.StationStand.detainRect.detainTrainTextColor);
break;
}
}
}
}
export default EDetainCircle;

View File

@ -10,15 +10,22 @@ class EJump extends Group {
}
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
this.isNew = true;
const jumpDirct = model.right ? -1 : 1;
const jumpX = model.position.x - jumpDirct * (style.StationStand.jump.offset.x - model.width / 2);
const jumpY = model.position.y + jumpDirct * style.StationStand.jump.offset.y;
const jumpCX = model.position.x - jumpDirct * (style.StationStand.jump.offset.x - model.width / 2);
const jumpCY = model.position.y + jumpDirct * style.StationStand.jump.offset.y;
this.jump = new Text({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
style: {
x: model.x,
y: model.y,
x: jumpX,
y: jumpY,
fontWeight: style.StationStand.jump.fontWeight,
fontSize: style.StationStand.jump.fontSize,
fontFamily: style.fontFamily,
@ -31,11 +38,11 @@ class EJump extends Group {
this.add(this.jump);
if (style.StationStand.jump.r) {
this.jumpArc = new Arc({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
cx: model.cx,
cy: model.cy,
cx: jumpCX,
cy: jumpCY,
r: style.StationStand.jump.r
},
style: {
@ -68,6 +75,9 @@ class EJump extends Group {
this.jump.show();
}
}
recover() {
this.hideMode();
}
}
export default EJump;

View File

@ -11,20 +11,25 @@ class ELevel extends Group {
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
this.isNew = true;
const levelDrict = model.right ? 1 : -1;
const levelX = model.position.x - levelDrict * (style.StationStand.level.offset.x - model.width / 2);
const levelY = model.position.y + levelDrict * (style.StationStand.level.offset.y);
this.level = new Text({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
style: {
x: model.x,
y: model.y,
x: levelX,
y: levelY,
fontWeight: style.textStyle.fontWeight,
fontSize: style.StationStand.stopTime.textFontSize,
fontSize: style.StationStand.level.textFontSize,
fontFamily: style.fontFamily,
text: model.name,
text: model.runLevelTime || '5',
textFill: style.StationStand.level.textColor,
textAlign: style.textStyle.textAlign,
textVerticalAlign: style.textStyle.textVerticalAlign
@ -52,6 +57,10 @@ class ELevel extends Group {
this.create();
this.level.show();
}
recover() {
this.hideMode();
}
}
export default ELevel;

View File

@ -9,20 +9,22 @@ class EPatternFilter extends Group {
}
create() {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
const direction = model.right ? 1 : -1;
const startX = (model.width / 2 + style.StationStand.patternFilter.offset.x);
const startY = model.y + (model.height / 2 + style.StationStand.patternFilter.offset.y) * model.direction + (1 + model.direction) / 2 * 14;
const startY = model.position.y + (model.height / 2 + style.StationStand.patternFilter.offset.y) * direction + (1 + direction) / 2 * 14;
this.patternFilter1 = new Polygon({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
points:[
[model.x - startX, startY],
[model.x - startX, startY - 14],
[model.x - startX - 14, startY - 14],
[model.x - startX - 14 - 10 * 0.866, startY - 7],
[model.x - startX - 14, startY]
[model.position.x - startX, startY],
[model.position.x - startX, startY - 14],
[model.position.x - startX - 14, startY - 14],
[model.position.x - startX - 14 - 10 * 0.866, startY - 7],
[model.position.x - startX - 14, startY]
]
},
style: {
@ -30,15 +32,15 @@ class EPatternFilter extends Group {
}
});
this.patternFilter2 = new Polygon({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
points:[
[model.x + startX, startY],
[model.x + startX, startY - 14],
[model.x + startX + 14, startY - 14],
[model.x + startX + 14 + 10 * 0.866, startY - 7],
[model.x + startX + 14, startY]
[model.position.x + startX, startY],
[model.position.x + startX, startY - 14],
[model.position.x + startX + 14, startY - 14],
[model.position.x + startX + 14 + 10 * 0.866, startY - 7],
[model.position.x + startX + 14, startY]
]
},
style: {
@ -52,6 +54,10 @@ class EPatternFilter extends Group {
setColor(color) {
this.patternFilter1.setStyle('fill', color);
}
recover() {
}
}
export default EPatternFilter;

View File

@ -11,17 +11,24 @@ class EReentry extends Group {
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
this.isNew = true;
const reentryH = style.StationStand.reentry.mergentR;
const isRight = model.right ? -1 : 1;
const reentryX = model.position.x - (style.StationStand.reentry.position || isRight) * (style.StationStand.reentry.offset.x - model.width / 2);
const reentryY = model.position.y + (style.StationStand.reentry.position || isRight) * (style.StationStand.reentry.offset.y) + isRight * reentryH;
this.reentry = new Polygon({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
points: flashlight(model.x, model.y, model.drict, 10, 5, 0, 0, 4)
points: flashlight(reentryX, reentryY, isRight, 10, 5, 0, 0, 4)
},
style: {
lineWidth: model.lineWidth,
fill: model.fill
lineWidth: 0,
fill: style.StationStand.reentry.noHumanColor
}
});
@ -42,6 +49,27 @@ class EReentry extends Group {
this.create();
this.reentry.show();
}
recover() {
this.hideMode();
}
execOperation(type) {
const style = this.model.style;
switch (type) {
case 'noHumanReentry': {
this.showMode();
this.setColor(style.StationStand.reentry.noHumanColor);
break;
}
case 'autoChangeEnds': {
this.showMode();
this.setColor(style.StationStand.reentry.autoChangeEndsColor);
break;
}
}
}
}
export default EReentry;

View File

@ -9,40 +9,47 @@ class ESafeEmergent extends Group {
super();
this.model = model;
this.isNew = false;
if (this.model.style.StationStand.standEmergent.special) {
if (this.model.style.StationStand.emergent.special) {
this.create();
}
}
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
const emergentOffset = model.inside ? style.StationStand.emergent.insideOffset : style.StationStand.emergent.outsideOffset;
const emergentH = model.right ? 1 : -1;
const emergentX = model.position.x + emergentH * emergentOffset.x;
const emergentY = model.position.y + emergentH * emergentOffset.y;
model.r = style.StationStand.emergent.mergentR;
model.n = style.StationStand.emergent.mergentN;
this.isNew = true;
if (style.StationStand.standEmergent.radiusR) {
if (style.StationStand.emergent.radiusR) {
const rotation = model.right == 1 ? Math.PI / 2 : Math.PI * 3 / 2;
this.emergent = new Polygon({
zlevel: model.zlevel,
z: model.z,
origin: [model.x, model.y],
zlevel: this.model.zlevel,
z: this.model.z,
origin: [emergentX, emergentY],
rotation: rotation,
shape: {
points: arrow(model.x, model.y, style.StationStand.standEmergent.width, style.StationStand.standEmergent.radiusR * 0.8)
points: arrow(emergentX, emergentY, style.StationStand.emergent.width, style.StationStand.emergent.radiusR * 0.8)
},
style: {
stroke: style.StationStand.standEmergent.closeColor,
fill: style.StationStand.standEmergent.closeColor
stroke: style.StationStand.emergent.closeColor,
fill: style.StationStand.emergent.closeColor
}
});
this.add(this.emergent);
} else {
this.emergent = new Isogon({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
x: model.x,
y: model.y,
x: emergentX,
y: emergentY,
r: model.r,
n: model.n
},
@ -50,47 +57,47 @@ class ESafeEmergent extends Group {
lineWidth: 0
}
});
if (style.StationStand.standEmergent.special) {
if (style.StationStand.emergent.special) {
this.emergent.setStyle('lineWidth', 2);
this.emergent.setStyle('stroke', style.StationStand.standEmergent.defaultColor);
this.emergent.setStyle('stroke', style.StationStand.emergent.defaultColor);
} else {
this.emergent.setStyle('stroke', style.StationStand.standEmergent.closeColor);
this.emergent.setStyle('fill', style.StationStand.standEmergent.closeColor);
this.emergent.setStyle('stroke', style.StationStand.emergent.closeColor);
this.emergent.setStyle('fill', style.StationStand.emergent.closeColor);
}
this.add(this.emergent);
if (style.StationStand.standEmergent.special) {
if (style.StationStand.emergent.special) {
// r*Math.r*cos(Math.PI/180*22.5)
// Math.sin(Math.PI/180*50)
// Math.cos(Math.PI/180*50)
this.emergent.rotation = Math.PI / 8;
this.emergent.origin = [model.x, model.y];
this.emergent.origin = [emergentX, emergentY];
this.emergent.dirty();
this.emergentLine1 = new Line({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape:{
x1:model.x - model.r * 0.5939,
y1:model.y - model.r * 0.7077,
x2:model.x + model.r * 0.5939,
y2:model.y + model.r * 0.7077
x1:emergentX - model.r * 0.5939,
y1:emergentY - model.r * 0.7077,
x2:emergentX + model.r * 0.5939,
y2:emergentY + model.r * 0.7077
},
style:{
lineWidth:2,
stroke:style.StationStand.standEmergent.defaultColor
stroke:style.StationStand.emergent.defaultColor
}
});
this.emergentLine2 = new Line({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape:{
x1:model.x + model.r * 0.5939,
y1:model.y - model.r * 0.7077,
x2:model.x - model.r * 0.5939,
y2:model.y + model.r * 0.7077
x1:emergentX + model.r * 0.5939,
y1:emergentY - model.r * 0.7077,
x2:emergentX - model.r * 0.5939,
y2:emergentY + model.r * 0.7077
},
style:{
lineWidth:2,
stroke:style.StationStand.standEmergent.defaultColor
stroke:style.StationStand.emergent.defaultColor
}
});
this.add(this.emergentLine1);
@ -101,7 +108,7 @@ class ESafeEmergent extends Group {
}
hideMode() {
if (!this.model.style.StationStand.standEmergent.special) {
if (!this.model.style.StationStand.emergent.special) {
this.emergent && this.emergent.hide();
}
}
@ -114,6 +121,10 @@ class ESafeEmergent extends Group {
getElement() {
return this.emergent;
}
recover() {
this.hideMode();
}
}
export default ESafeEmergent;

View File

@ -1,111 +0,0 @@
import Group from 'zrender/src/container/Group';
import Rect from 'zrender/src/graphic/shape/Rect';
import Text from 'zrender/src/graphic/Text';
class ESafeStand extends Group {
constructor(model) {
super();
this.model = model;
this.create();
}
create() {
const model = this.model;
const style = this.model.style;
// model.x /y 是整个坐标左上角起点
if (style.StationStand.common.special) {
this.stand1 = new Rect({
zlevel: model.zlevel,
z: model.z,
shape: {
x: model.x,
y: model.y,
width: model.width / 4 - 2,
height: model.height
},
style: {
lineWidth: style.StationStand.stand.lineWidth || 0,
stroke: style.StationStand.stand.spareStrokeColor || style.sidelineColor,
fill: style.StationStand.stand.spareColor
}
});
this.stand2 = new Rect({
zlevel: model.zlevel,
z: model.z,
shape: {
x: model.x + model.width * 3 / 4,
y: model.y,
width: model.width / 4 - 2,
height: model.height
},
style: {
lineWidth: style.StationStand.stand.lineWidth || 0,
stroke: style.StationStand.stand.spareStrokeColor || style.sidelineColor,
fill: style.StationStand.stand.spareColor
}
});
let height = model.inside ? 7 : -12;
if (model.right) {
if (model.inside) {
height = -12;
} else {
height = 7;
}
} else {
if (model.inside) {
height = 7;
} else {
height = -12;
}
}
this.standText = new Text({
zlevel: model.zlevel,
z: model.z,
style: {
x: model.x + model.width / 2,
y: model.y + height,
fontSize: style.StationStand.stand.headFontSize,
text: model.name,
textFill: style.StationStand.stand.textFill,
textPosition: 'inside',
textAlign: 'center'
}
});
this.add(this.stand1);
this.add(this.stand2);
this.add(this.standText);
} else {
this.stand = new Rect({
zlevel: model.zlevel,
z: model.z,
shape: {
x: model.x,
y: model.y,
width: model.width,
height: model.height
},
style: {
lineWidth: style.StationStand.stand.lineWidth || 0,
stroke: style.StationStand.stand.spareStrokeColor || style.sidelineColor
}
});
if (style.StationStand.common.standType && style.StationStand.common.standType == 'notFill') {
this.stand && this.stand.setStyle('lineWidth', 2);
} else {
this.stand && this.stand.setStyle('fill', style.StationStand.stand.spareColor);
}
this.add(this.stand);
}
}
setColor(color) {
const style = this.model.style;
if (style.StationStand.common.standType && style.StationStand.common.standType == 'notFill') {
this.stand && this.stand.setStyle('stroke', color);
} else {
this.stand && this.stand.setStyle('fill', color);
}
}
}
export default ESafeStand;

View File

@ -0,0 +1,78 @@
import Group from 'zrender/src/container/Group';
import Rect from 'zrender/src/graphic/shape/Rect';
import Text from 'zrender/src/graphic/Text';
class EGapStand extends Group {
constructor(model) {
super();
this.model = model;
this.create();
}
create() {
const model = this.model;
const style = this.model.style;
this.stand1 = new Rect({
zlevel: this.model.zlevel,
z: this.model.z + 1,
shape: {
x: model.x,
y: model.y,
width: model.width / 4 - 2,
height: model.height
},
style: {
lineWidth: style.StationStand.safeStand.lineWidth || 0,
stroke: style.StationStand.safeStand.spareStrokeColor || style.sidelineColor,
fill: style.StationStand.safeStand.spareColor
}
});
this.stand2 = new Rect({
zlevel: this.model.zlevel,
z: this.model.z + 1,
shape: {
x: model.x + model.width * 3 / 4,
y: model.y,
width: model.width / 4 - 2,
height: model.height
},
style: {
lineWidth: style.StationStand.safeStand.lineWidth || 0,
stroke: style.StationStand.safeStand.spareStrokeColor || style.sidelineColor,
fill: style.StationStand.safeStand.spareColor
}
});
let height = model.inside ? 7 : -12;
if (model.right) {
if (model.inside) {
height = -12;
} else {
height = 7;
}
} else {
if (model.inside) {
height = 7;
} else {
height = -12;
}
}
this.standText = new Text({
zlevel: this.model.zlevel,
z: this.model.z,
style: {
x: model.x + model.width / 2,
y: model.y + height,
fontSize: style.StationStand.safeStand.headFontSize,
text: model.name,
textFill: style.StationStand.safeStand.textFill,
textPosition: 'inside',
textAlign: 'center'
}
});
this.add(this.stand1);
this.add(this.stand2);
this.add(this.standText);
}
}
export default EGapStand;

View File

@ -0,0 +1,93 @@
import Group from 'zrender/src/container/Group';
import Rect from 'zrender/src/graphic/shape/Rect';
import EGapStand from './EGapStand';
class ESafeStand extends Group {
constructor(model) {
super();
this.model = model;
this.create();
}
create() {
const model = this.model.modelData;
const style = this.model.style;
const standX = model.position.x - model.width / 2;
const standY = model.position.y - model.height / 2;
// model.x /y 是整个坐标左上角起点
if (style.StationStand.safeStand.special) {
// 有间隔的站台 哈尔滨线路暂时使用
this.gapStand = new EGapStand({
zlevel: this.model.zlevel,
z: this.model.z + 2,
x:standX,
y:standY,
style:style,
width:model.width,
height:model.height,
inside:model.inside,
right:model.right,
name:model.name
});
this.add(this.gapStand);
} else {
this.stand = new Rect({
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
x: standX,
y: standY,
width: model.width,
height: model.height
},
style: {
lineWidth: style.StationStand.safeStand.lineWidth || 0,
stroke: style.StationStand.safeStand.spareStrokeColor || style.sidelineColor
}
});
if (style.StationStand.safeStand.standType && style.StationStand.safeStand.standType == 'notFill') {
this.stand && this.stand.setStyle('lineWidth', 2);
} else {
this.stand && this.stand.setStyle('fill', style.StationStand.safeStand.spareColor);
}
this.add(this.stand);
}
}
setColor(color) {
const style = this.model.style;
if (style.StationStand.safeStand.standType && style.StationStand.safeStand.standType == 'notFill') {
this.stand && this.stand.setStyle('stroke', color);
} else {
this.stand && this.stand.setStyle('fill', color);
}
}
recover() {
const style = this.model.style;
if (!style.StationStand.safeStand.special) {
this.setColor(style.StationStand.safeStand.spareColor);
}
}
execOperation(type) {
const style = this.model.style;
switch (type) {
case 'designatedJumpStop': {
this.setColor(style.StationStand.safeStand.designatedJumpStopColor);
break;
}
case 'jumpStop': {
this.setColor(style.StationStand.safeStand.jumpStopColor);
break;
}
case 'trainStop': {
this.setColor(style.StationStand.safeStand.stopColor);
break;
}
}
}
}
export default ESafeStand;

View File

@ -10,20 +10,24 @@ class ETime extends Group {
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
const timeDrict = model.right ? 1 : -1;
const timeX = model.position.x + style.StationStand.stopTime.position * timeDrict * (style.StationStand.stopTime.offset.x - model.width / 2);
const timeY = model.position.y + timeDrict * (style.StationStand.stopTime.offset.y - model.height / 2);
this.isNew = true;
this.time = new Text({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
style: {
x: model.x,
y: model.y,
x: timeX,
y: timeY,
fontWeight: style.textStyle.fontWeight,
fontSize: style.StationStand.common.textFontSize,
fontSize: style.StationStand.stopTime.textFontSize,
fontFamily: style.fontFamily,
text: model.name,
text: model.parkingTime || '30',
textFill: style.StationStand.stopTime.textColor,
textAlign: style.textStyle.textAlign,
textVerticalAlign: style.textStyle.textVerticalAlign
@ -51,6 +55,10 @@ class ETime extends Group {
this.create();
this.time && this.time.show();
}
recover() {
this.hideMode();
}
}
export default ETime;

View File

@ -9,15 +9,21 @@ class ETrainDepart extends Group {
}
create() {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
const trainDepartOffset = model.inside ? style.StationStand.trainDepart.insideOffset : style.StationStand.trainDepart.outsideOffset;
const trainDepartH = model.right ? 1 : -1;
const departX = model.position.x + trainDepartH * trainDepartOffset.x;
const departY = model.position.y + trainDepartH * trainDepartOffset.y;
this.trainDepart = new Text({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
position: [0, 0],
style: {
x: model.x,
y: model.y,
x: departX,
y: departY,
text: '000',
textAlign: style.textStyle.textAlign,
fontSize: style.StationStand.trainDepart.fontSize,
@ -49,7 +55,10 @@ class ETrainDepart extends Group {
}
this.trainDepart.setStyle('text', remainTime);
this.trainDepart.show();
}
recover() {
this.hideMode();
}
}

View File

@ -10,15 +10,21 @@ class ETrainStop extends Group {
create() {
if (!this.isNew) {
const model = this.model;
const model = this.model.modelData;
const style = this.model.style;
this.isNew = true;
const stopTrainOffset = model.inside ? style.StationStand.trainStop.insideOffset : style.StationStand.trainStop.outsideOffset;
const stopTrainH = model.right ? 1 : -1;
const stopX = model.position.x + stopTrainH * stopTrainOffset.x;
const stopY = model.position.y + stopTrainH * stopTrainOffset.y;
this.trainStop = new Arc({
zlevel: model.zlevel,
z: model.z,
zlevel: this.model.zlevel,
z: this.model.z,
shape: {
cx: model.x,
cy: model.y,
cx: stopX,
cy: stopY,
r: style.StationStand.trainStop.radiusR
},
style: {
@ -43,6 +49,10 @@ class ETrainStop extends Group {
this.create();
this.trainStop.show();
}
recover() {
this.hideMode();
}
}
export default ETrainStop;

View File

@ -3,7 +3,7 @@ import ETime from './ETime';
import ELevel from './ELevel';
import EReentry from './EReentry';
import EDetain from './EDetain';
import ESafeStand from './ESafeStand';
import ESafeStand from './ESafeStand/index';
import ESafeEmergent from './ESafeEmergent';
import EMouse from './EMouse';
import EJump from './EJump';
@ -26,7 +26,6 @@ class StationStand extends Group {
this.zlevel = model.zlevel;
this.z = 1;
this.isShowShape = true;
this.doors = new Group();
this.create();
this.createMouseEvent();
if (isShowThePrdType(model.prdType, style.StationStand.common.functionButtonShow) || model.previewOrMapDraw) {
@ -42,206 +41,33 @@ class StationStand extends Group {
create() {
const model = this.model;
const style = this.style;
/** 列车站台*/
const standX = model.position.x - model.width / 2;
const standY = model.position.y - model.height / 2;
this.safeStand = new ESafeStand({
zlevel: this.zlevel,
z: this.z,
style: style,
x: standX,
y: standY,
name: model.name,
inside: model.inside,
right: model.right,
width: model.width,
height: model.height
// // 站台所有的绘图元素
const elementTypeList = {
'safeStand':ESafeStand, // 列车站台图形
'emergent':ESafeEmergent, // 站台紧急关闭
'detainCarNormal':EDetain, // 普通扣车图标
'detainCircle':EDetainCircle, // 圆形扣车图标
'detainRect':EDetainRect, // 矩形扣车图标
'stopTime':ETime, // 停站时间
'level':ELevel, // 运行等级
'patternFilter':EPatternFilter, // 模式筛选标识(西安二号线特殊的情况)
'jump':EJump, // 列车停跳
'reentry':EReentry, // 站台折返策略
'trainStop':ETrainStop, // 列车停站
'trainDepart':ETrainDepart// 列车出发
};
// 遍历当前线路下的绘图元素
const currentTypeList = style.StationStand.elemnetType;
currentTypeList.forEach(element => {
const ClassName = elementTypeList[element];
this[element] = new ClassName({
zlevel: this.zlevel,
z: this.z + style.StationStand[element].z,
style: style,
modelData:model
});
this.add(this[element]);
});
this.add(this.safeStand);
// 模式筛选标识(西安二号线特殊的情况)
if (style.StationStand.patternFilter) {
const direction = model.right ? 1 : -1;
this.patternFilter = new EPatternFilter({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
x: model.position.x,
y: model.position.y,
width: model.width,
height:model.height,
direction:direction
});
this.add(this.patternFilter);
}
/** 站台紧急关闭*/
const emergentOffset = model.inside ? style.StationStand.standEmergent.insideOffset : style.StationStand.standEmergent.outsideOffset;
const emergentH = model.right ? 1 : -1;
const emergentX = model.position.x + emergentH * emergentOffset.x;
const emergentY = model.position.y + emergentH * emergentOffset.y;
this.emergent = new ESafeEmergent({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
inside: model.inside,
right: model.right,
width: model.width,
x: emergentX,
y: emergentY,
r: style.StationStand.standEmergent.mergentR,
n: style.StationStand.standEmergent.mergentN
});
this.add(this.emergent);
// 列车停站
if (style.StationStand.trainStop.insideOffset) {
const stopTrainOffset = model.inside ? style.StationStand.trainStop.insideOffset : style.StationStand.trainStop.outsideOffset;
const stopTrainH = model.right ? 1 : -1;
const stopX = model.position.x + stopTrainH * stopTrainOffset.x;
const stopY = model.position.y + stopTrainH * stopTrainOffset.y;
if (style.StationStand.trainStop.insideOffset) {
this.trainStop = new ETrainStop({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
x: stopX,
y: stopY
});
this.add(this.trainStop);
}
}
// 列车出发
if (style.StationStand.trainDepart.insideOffset) {
const trainDepartOffset = model.inside ? style.StationStand.trainDepart.insideOffset : style.StationStand.trainDepart.outsideOffset;
const trainDepartH = model.right ? 1 : -1;
const departX = model.position.x + trainDepartH * trainDepartOffset.x;
const departY = model.position.y + trainDepartH * trainDepartOffset.y;
this.trainDepart = new ETrainDepart({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
width: model.width,
x: departX,
y: departY
});
this.add(this.trainDepart);
}
/** 站台折返策略*/
if (style.StationStand.reentry.offset) {
const reentryH = style.StationStand.standEmergent.mergentR;
const isRight = model.right ? -1 : 1;
const reentryX = model.position.x - (style.StationStand.reentry.position || isRight) * (style.StationStand.reentry.offset.x - model.width / 2);
const reentryY = model.position.y + (style.StationStand.reentry.position || isRight) * (style.StationStand.reentry.offset.y) + isRight * reentryH;
this.reentry = new EReentry({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
drict: isRight,
x: reentryX,
y: reentryY,
lineWidth: 0,
fill: style.StationStand.reentry.noHumanColor
});
this.add(this.reentry);
}
if (style.StationStand.detainCar.specialShape === 'circle') {
const detainD = model.right ? 1 : -1;
this.detainCircle = new EDetainCircle({
zlevel: this.zlevel,
z: this.z,
style: style,
x: model.position.x + (model.width / 2) * detainD + detainD * style.StationStand.detainCar.offset.x + detainD * style.StationStand.detainCar.circleWidth / 2,
y: model.position.y,
radius:style.StationStand.detainCar.circleWidth / 2
});
this.add(this.detainCircle);
} else if (style.StationStand.detainCar.specialShape === 'rect') {
this.detainRect = new EDetainRect({
zlevel: this.zlevel,
z: this.z,
style: style,
x: standX,
y: standY,
inside: model.inside,
right: model.right,
width: model.width,
height: model.height
});
this.add(this.detainRect);
} else {
/** 站台扣车*/
const detainD = model.right ? 1 : -1;
const detainX = model.position.x - detainD * (style.StationStand.detainCar.offset.x - model.width / 2);
const detainY = model.position.y + detainD * (style.StationStand.detainCar.offset.y - model.height / 2);
this.detain = new EDetain({
zlevel: this.zlevel,
z: this.z,
style: style,
x: detainX,
y: detainY,
width: model.width,
inside: model.inside,
right: model.right
});
this.add(this.detain);
}
/** 停站时间*/
if (style.StationStand.stopTime.offset) {
const timeDrict = model.right ? 1 : -1;
const timeX = model.position.x + style.StationStand.stopTime.position * timeDrict * (style.StationStand.stopTime.offset.x - model.width / 2);
const timeY = model.position.y + timeDrict * (style.StationStand.stopTime.offset.y - model.height / 2);
this.time = new ETime({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
x: timeX,
y: timeY,
name: model.parkingTime || '30'
});
this.add(this.time);
}
/** 运行等级*/
const levelDrict = model.right ? 1 : -1;
const levelX = model.position.x - levelDrict * (style.StationStand.level.offset.x - model.width / 2);
const levelY = model.position.y + levelDrict * (style.StationStand.level.offset.y);
this.level = new ELevel({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
x: levelX,
y: levelY,
name: model.runLevelTime || '5'
});
this.add(this.level);
/** 列车停跳 */
if (style.StationStand.common.haveJumpShow) {
const jumpDirct = model.right ? -1 : 1;
const jumpX = model.position.x - jumpDirct * (style.StationStand.jump.offset.x - model.width / 2);
const jumpY = model.position.y + jumpDirct * style.StationStand.jump.offset.y;
const jumpCX = model.position.x - jumpDirct * (style.StationStand.jump.offset.x - model.width / 2);
const jumpCY = model.position.y + jumpDirct * style.StationStand.jump.offset.y;
this.jump = new EJump({
zlevel: this.zlevel,
z: this.z + 1,
style: style,
x: jumpX,
y: jumpY,
cx: jumpCX,
cy: jumpCY,
width: model.width,
inside: model.inside,
right: model.right
});
this.add(this.jump);
}
}
createMouseEvent() {
@ -252,6 +78,7 @@ class StationStand extends Group {
this.on('mouseover', (e) => { this.mouseEvent.mouseover(e); });
}
}
createFunctionButton() {
const model = this.model;
const style = this.style;
@ -386,29 +213,16 @@ class StationStand extends Group {
/** 恢复初始状态*/
recover() {
this.time && this.time.hideMode();
this.level && this.level.hideMode();
this.detain && this.detain.hideMode();
this.emergent && this.emergent.hideMode();
this.trainStop && this.trainStop.hideMode(); // 列车停站
this.trainDepart && this.trainDepart.hideMode();
this.reentry && this.reentry.hideMode();
this.jump && this.jump.hideMode();
this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.defaultColor);
this.detainRect && this.detainRect.setHide();
}
/** 空闲*/
spare() {
if (!this.style.StationStand.common.special) {
this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.spareColor);
}
const currentTypeList = this.style.StationStand.elemnetType;
currentTypeList.forEach(element => {
this[element].recover();
});
}
/** 列车停站*/
stop() {
if (!this.style.StationStand.common.special) {
this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.stopColor);
if (!this.style.StationStand.safeStand.special) {
this.safeStand && this.safeStand.execOperation('trainStop');
} else {
this.trainStop && this.trainStop.showMode();
this.trainDepart && this.trainDepart.showMode(this.model.remainTime);
@ -417,21 +231,21 @@ class StationStand extends Group {
/** 车门开启 */
doorOpen() {
if (this.style.StationStand.stand.doorOpenColor) {
this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.doorOpenColor);
if (this.style.StationStand.safeStand.doorOpenColor) {
this.safeStand && this.safeStand.setColor(this.style.StationStand.safeStand.doorOpenColor);
}
}
/** 站台紧急关闭*/
emergentClose() {
if (!this.style.StationStand.common.special) {
this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.spareColor);
if (!this.style.StationStand.safeStand.special) {
this.safeStand && this.safeStand.setColor(this.style.StationStand.safeStand.spareColor);
}
this.emergent && this.emergent.showMode();
if (this.style.StationStand.standEmergent.flicker) {
if (this.style.StationStand.emergent.flicker) {
this.emergent.getElement().animateStyle(true)
.when(0, { fill: this.style.backgroundColor })
.when(1000, { fill: this.style.StationStand.standEmergent.closeColor })
.when(1000, { fill: this.style.StationStand.emergent.closeColor })
.when(2000, { fill: this.style.backgroundColor })
.start();
}
@ -439,47 +253,41 @@ class StationStand extends Group {
/** 指定列车跳站*/
designatedJumpStop() {
this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.designatedJumpStopColor);
this.safeStand && this.safeStand.execOperation('designatedJumpStop');
this.jump && this.jump.showMode(0);
}
/** 站台跳停*/
jumpStop() {
this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.jumpStopColor);
this.safeStand && this.safeStand.execOperation('jumpStop');
this.jump && this.jump.showMode(1);
}
/** 车站扣车*/
standDetainTrain() {
this.detain && this.detain.showMode();
this.detain && this.detain.setColor(this.style.StationStand.detainCar.detainTrainTextColor);
this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.centerTrainColor);
this.detainRect && this.detainRect.setShow();
this.detainRect && this.detainRect.setColor(this.style.StationStand.detainCar.detainTrainTextColor);
this.detainCarNormal && this.detainCarNormal.holdTrain('trainDetain');
this.detainCircle && this.detainCircle.holdTrain('trainDetain');
this.detainRect && this.detainRect.holdTrain('trainDetain');
}
/** 中心扣车*/
centerDetainTrain() {
this.detain && this.detain.showMode();
this.detain && this.detain.setColor(this.style.StationStand.detainCar.centerTrainColor);
this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.centerTrainColor);
this.detainRect && this.detainRect.setShow();
this.detainRect && this.detainRect.setColor(this.style.StationStand.detainCar.centerTrainColor);
this.detainCarNormal && this.detainCarNormal.holdTrain('centerDetain');
this.detainRect && this.detainRect.holdTrain('centerDetain');
this.detainCircle && this.detainCircle.holdTrain('centerDetain');
}
/** 中心+车站扣车*/
standAndCenterDetainTrain() {
this.detain && this.detain.showMode();
this.detain && this.detain.setColor(this.style.StationStand.detainCar.andCenterTrainColor);
this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.centerTrainColor);
this.detainRect && this.detainRect.setShow();
this.detainRect && this.detainRect.setColor(this.style.StationStand.detainCar.centerTrainColor);
this.detainCarNormal && this.detainCarNormal.holdTrain('centerAndTrain');
this.detainRect && this.detainRect.holdTrain('centerAndTrain');
this.detainCircle && this.detainCircle.holdTrain('centerAndTrain');
}
/** 人工设置停战时间*/
setManuallyArmisticeTime(val) {
this.time && this.time.showMode();
this.time && this.time.setName(val);
this.stopTime && this.stopTime.showMode();
this.stopTime && this.stopTime.setName(val);
}
/** 人工设置运行等级*/
@ -495,20 +303,18 @@ class StationStand extends Group {
/** 无人折返*/
noHumanReentry() {
this.reentry && this.reentry.showMode();
this.reentry && this.reentry.setColor(this.style.StationStand.reentry.noHumanColor);
this.reentry && this.reentry.execOperation('noHumanReentry');
}
/** 自动换端*/
autoChangeEnds() {
this.reentry && this.reentry.showMode();
this.reentry && this.reentry.setColor(this.style.StationStand.reentry.autoChangeEndsColor);
this.reentry && this.reentry.execOperation('autoChangeEnds');
}
setState(model) {
if (!this.isShowShape) return;
// 新版地图使用新版状态变更方式
// // 新版地图使用新版状态变更方式
this.recover();
!model.trainParking && this.spare(); /** 空闲*/
model.trainParking && this.stop(); /** 列车停站*/
model.emergencyClosed && this.emergentClose(); /** 站台紧急关闭*/

View File

@ -499,7 +499,6 @@ export default class Switch extends Group {
setSectionState(section, style, state) {
// && !section.animators.length
if (section && section.ignore) {
console.log(22222222222);
const sectionA = store.getters['map/getDeviceByCode'](state.sectionACode);
/** 空闲 */
// section.setStyle(style, this.style.Section.line.spareColor);
@ -552,7 +551,6 @@ export default class Switch extends Group {
this.setInversionAction(model); /** 反位*/
} else {
this.setLossAction(); // 失去
console.log(333333333333333);
}
model.isCiConfirm && this.setCiConfirm(); // 道岔使能显示
this.setSwitchFault(model.split);