站台 绘图代码调整

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] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 8, // 站台默认字体大小 textFontSize: 8, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
@ -291,57 +349,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色 defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色 splitDoorColor: '#F61107' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 8, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: '#606060', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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]
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -195,9 +195,73 @@ class SkinCode extends defaultStyle {
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 10, // 站台默认字体大小 textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
}, },
safetyDoor: { // 屏蔽门 safetyDoor: { // 屏蔽门
@ -206,64 +270,18 @@ class SkinCode extends defaultStyle {
defaultColor: 'green', // 屏蔽门默认颜色 defaultColor: 'green', // 屏蔽门默认颜色
splitDoorColor: 'green' // 屏蔽门切除颜色 splitDoorColor: 'green' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 10, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: 'white', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -211,9 +211,75 @@ class SkinCode extends defaultStyle {
show: false show: false
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 10, // 站台默认字体大小 textFontSize: 10, // 站台默认字体大小
haveJumpShow: true, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件prdType functionButtonShow: '03' // 功能灯按钮显示条件prdType
}, },
safetyDoor: { // 屏蔽门 safetyDoor: { // 屏蔽门
@ -222,65 +288,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色 defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#C00808' // 屏蔽门切除颜色 splitDoorColor: '#C00808' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 10, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: '#ffffff', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -189,9 +189,74 @@ class SkinCode extends defaultStyle {
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 11, // 站台默认字体大小 textFontSize: 11, // 站台默认字体大小
haveJumpShow: true, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
}, },
safetyDoor: { // 屏蔽门 safetyDoor: { // 屏蔽门
@ -201,64 +266,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色 defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色 splitDoorColor: '#F61107' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 11, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: '#606060', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -188,6 +188,70 @@ class SkinCode extends defaultStyle {
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 11, // 站台默认字体大小 textFontSize: 11, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
@ -199,57 +263,17 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色 defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色 splitDoorColor: '#F61107' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 11, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: '#606060', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
}, },
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: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -195,10 +195,84 @@ class SkinCode extends defaultStyle {
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 11, // 站台默认字体大小 textFontSize: 11, // 站台默认字体大小
special: true, // 特殊站台
haveJumpShow: true, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
}, },
safetyDoor: { // 屏蔽门 safetyDoor: { // 屏蔽门
@ -208,70 +282,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#fff', // 屏蔽门默认颜色 defaultColor: '#fff', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色 splitDoorColor: '#F61107' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 11, // 站台首端字体大小 radiusR: 6, // 控制灯大小
textFill: '#fff', // 站台字体颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// stopTime: {}, // 停站时间
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -318,9 +318,61 @@ class SkinCode extends defaultStyle {
} }
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 10, // 站台默认字体大小 textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
}, },
safetyDoor: { // 屏蔽门 safetyDoor: { // 屏蔽门
@ -329,54 +381,20 @@ class SkinCode extends defaultStyle {
defaultColor: 'green', // 屏蔽门默认颜色 defaultColor: 'green', // 屏蔽门默认颜色
splitDoorColor: 'green' // 屏蔽门切除颜色 splitDoorColor: 'green' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 10, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: 'white', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// jump: {},
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationTurnBack] = { // 站后折返 this[deviceType.StationTurnBack] = { // 站后折返

View File

@ -367,6 +367,65 @@ class SkinCode extends defaultStyle {
} }
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 10, // 站台默认字体大小 textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示 haveJumpShow: false, // 站台是否有列车停跳显示
@ -378,59 +437,20 @@ class SkinCode extends defaultStyle {
defaultColor: 'green', // 屏蔽门默认颜色 defaultColor: 'green', // 屏蔽门默认颜色
splitDoorColor: 'green' // 屏蔽门切除颜色 splitDoorColor: 'green' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 10, // 站台首端字体大小 radiusR: 6, // 控制灯大小
lineWidth: 3, // 站台线宽 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// jump: {},
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationTurnBack] = { // 站后折返 this[deviceType.StationTurnBack] = { // 站后折返

View File

@ -197,6 +197,70 @@ class SkinCode extends defaultStyle {
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 11, // 站台默认字体大小 textFontSize: 11, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
@ -208,57 +272,18 @@ class SkinCode extends defaultStyle {
defaultColor: '#00FF00', // 屏蔽门默认颜色 defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色 splitDoorColor: '#F61107' // 屏蔽门切除颜色
}, },
stand: { // 站台 lamp: {
headFontSize: 11, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: '#606060', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
stopColor: '#FEFE00', // 站台列车停站颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
}, },
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: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

@ -240,11 +240,85 @@ class SkinCode extends defaultStyle {
}; };
this[deviceType.StationStand] = { 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: { // 通用属性 common: { // 通用属性
textFontSize: 10, // 站台默认字体大小 textFontSize: 10, // 站台默认字体大小
haveJumpShow: false, // 站台是否有列车停跳显示 functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
functionButtonShow: '03', // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
standType:'notFill' // 站台的样式NotFill为未填充目前是西安二号线线路样式
}, },
safetyDoor: { // 屏蔽门 safetyDoor: { // 屏蔽门
height: 3, // 站台屏蔽门高度 height: 3, // 站台屏蔽门高度
@ -255,74 +329,18 @@ class SkinCode extends defaultStyle {
emergencyColor:'yellow', // 紧急出发按钮激活颜色 emergencyColor:'yellow', // 紧急出发按钮激活颜色
special:true // 特殊屏蔽门(目前是西安二号线线路样式) special:true // 特殊屏蔽门(目前是西安二号线线路样式)
}, },
stand: { // 站台 lamp: {
headFontSize: 10, // 站台首端字体大小 radiusR: 6, // 控制灯大小
spareColor: '#808080', // 站台空闲颜色 lampColor: '#5A5D5A' // 功能按钮颜色
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' // 停站等级字体颜色
}, },
text: { text: {
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离 distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
} }
// reentry: {}, // 站台折返策略
// trainStop: {}, // 停车标志
// trainDepart: {}, // 停车计时
}; };
this[deviceType.StationCounter] = { this[deviceType.StationCounter] = {

View File

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

View File

@ -12,33 +12,39 @@ class EDetain extends Group {
create() { create() {
if (!this.isNew) { if (!this.isNew) {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; const style = this.model.style;
this.isNew = true; 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({ this.detain = new Text({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
position: [0, 0], position: [0, 0],
style: { style: {
x: model.x, x: detainX,
y: model.y, y: detainY,
text: style.StationStand.detainCar.text, text: style.StationStand.detainCarNormal.text,
fontSize: `${style.StationStand.detainCar.fontSize}px`, fontSize: `${style.StationStand.detainCarNormal.fontSize}px`,
fontFamily: style.fontFamily, fontFamily: style.fontFamily,
textFill: style.StationStand.detainCar.centerTrainColor, textFill: style.StationStand.detainCarNormal.centerTrainColor,
textStroke: style.backgroundColor, textStroke: style.backgroundColor,
textAlign: style.textStyle.textAlign, 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; const offsetX = model.right ? 8 : -8;
this.circleDetain = new Circle({ this.circleDetain = new Circle({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape: { shape: {
cx: model.x + offsetX, cx: detainX + offsetX,
cy: model.y - 3, cy: detainY - 3,
r: 2 r: 2
}, },
style: { style: {
@ -58,6 +64,10 @@ class EDetain extends Group {
this.detain.setStyle('textFill', color); this.detain.setStyle('textFill', color);
} }
recover() {
this.hideMode();
}
hideMode() { hideMode() {
this.detain && this.detain.hide(); this.detain && this.detain.hide();
this.circleDetain && this.circleDetain.hide(); this.circleDetain && this.circleDetain.hide();
@ -68,6 +78,27 @@ class EDetain extends Group {
this.detain && this.detain.show(); this.detain && this.detain.show();
this.circleDetain && this.circleDetain.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; export default EDetain;

View File

@ -10,47 +10,54 @@ class EDetainCircle extends Group {
} }
create() { create() {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; 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({ this.detainCircle = new Circle({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape: { shape: {
cx: model.x, cx: x,
cy: model.y, cy: y,
r: model.radius r: radius
}, },
style:{ style:{
lineWidth:2, lineWidth:2,
stroke:style.StationStand.detainCar.defaultColor stroke:style.StationStand.detainCircle.defaultColor
} }
}); });
this.line1 = new Line({ this.line1 = new Line({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape:{ shape:{
x1:model.x - model.radius * 0.7, x1:x - radius * 0.7,
y1:model.y - model.radius * 0.7, y1:y - radius * 0.7,
x2:model.x + model.radius * 0.7, x2:x + radius * 0.7,
y2:model.y + model.radius * 0.7 y2:y + radius * 0.7
}, },
style:{ style:{
lineWidth:2, lineWidth:2,
stroke:style.StationStand.detainCar.defaultColor stroke:style.StationStand.detainCircle.defaultColor
} }
}); });
this.line2 = new Line({ this.line2 = new Line({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape:{ shape:{
x1:model.x - model.radius * 0.7, x1:x - radius * 0.7,
y1:model.y + model.radius * 0.7, y1:y + radius * 0.7,
x2:model.x + model.radius * 0.7, x2:x + radius * 0.7,
y2:model.y - model.radius * 0.7 y2:y - radius * 0.7
}, },
style:{ style:{
lineWidth:2, lineWidth:2,
stroke:style.StationStand.detainCar.defaultColor stroke:style.StationStand.detainCircle.defaultColor
} }
}); });
this.add(this.detainCircle); this.add(this.detainCircle);
@ -63,6 +70,29 @@ class EDetainCircle extends Group {
this.line1.setStyle('stroke', color); this.line1.setStyle('stroke', color);
this.line2.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; export default EDetainCircle;

View File

@ -9,30 +9,34 @@ class EDetainCircle extends Group {
} }
create() { create() {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; const style = this.model.style;
const standX = model.position.x - model.width / 2;
const standY = model.position.y - model.height / 2;
let y; let y;
if (model.right && model.inside) { if (model.right && model.inside) {
y = model.y + model.height / 2; y = standY + model.height / 2;
} else if (model.right && !model.inside) { } else if (model.right && !model.inside) {
y = model.y; y = standY;
} else if (!model.right && model.inside) { } else if (!model.right && model.inside) {
y = model.y; y = standY;
} else if (!model.right && !model.inside) { } else if (!model.right && !model.inside) {
y = model.y + model.height / 2; y = standY + model.height / 2;
} }
this.detainRect = new Rect({ this.detainRect = new Rect({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z + 1, z: this.model.z + 1,
shape: { shape: {
x: model.x, x: standX,
y: y, y: y,
width: model.width, width: model.width,
height: model.height / 2 height: model.height / 2
}, },
style: { style: {
lineWidth: style.StationStand.stand.lineWidth || 0, lineWidth: style.StationStand.detainRect.lineWidth || 0,
stroke: style.StationStand.stand.spareStrokeColor, stroke: style.StationStand.detainRect.spareStrokeColor,
fill: '#000' fill: '#000'
} }
}); });
@ -49,6 +53,30 @@ class EDetainCircle extends Group {
setHide() { setHide() {
this.detainRect.hide(); 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; export default EDetainCircle;

View File

@ -10,15 +10,22 @@ class EJump extends Group {
} }
create() { create() {
if (!this.isNew) { if (!this.isNew) {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; const style = this.model.style;
this.isNew = true; 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({ this.jump = new Text({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
style: { style: {
x: model.x, x: jumpX,
y: model.y, y: jumpY,
fontWeight: style.StationStand.jump.fontWeight, fontWeight: style.StationStand.jump.fontWeight,
fontSize: style.StationStand.jump.fontSize, fontSize: style.StationStand.jump.fontSize,
fontFamily: style.fontFamily, fontFamily: style.fontFamily,
@ -31,11 +38,11 @@ class EJump extends Group {
this.add(this.jump); this.add(this.jump);
if (style.StationStand.jump.r) { if (style.StationStand.jump.r) {
this.jumpArc = new Arc({ this.jumpArc = new Arc({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape: { shape: {
cx: model.cx, cx: jumpCX,
cy: model.cy, cy: jumpCY,
r: style.StationStand.jump.r r: style.StationStand.jump.r
}, },
style: { style: {
@ -68,6 +75,9 @@ class EJump extends Group {
this.jump.show(); this.jump.show();
} }
} }
recover() {
this.hideMode();
}
} }
export default EJump; export default EJump;

View File

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

View File

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

View File

@ -11,17 +11,24 @@ class EReentry extends Group {
create() { create() {
if (!this.isNew) { if (!this.isNew) {
const model = this.model; const model = this.model.modelData;
const style = this.model.style;
this.isNew = true; 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({ this.reentry = new Polygon({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape: { 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: { style: {
lineWidth: model.lineWidth, lineWidth: 0,
fill: model.fill fill: style.StationStand.reentry.noHumanColor
} }
}); });
@ -42,6 +49,27 @@ class EReentry extends Group {
this.create(); this.create();
this.reentry.show(); 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; export default EReentry;

View File

@ -9,40 +9,47 @@ class ESafeEmergent extends Group {
super(); super();
this.model = model; this.model = model;
this.isNew = false; this.isNew = false;
if (this.model.style.StationStand.standEmergent.special) { if (this.model.style.StationStand.emergent.special) {
this.create(); this.create();
} }
} }
create() { create() {
if (!this.isNew) { if (!this.isNew) {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; 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; 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; const rotation = model.right == 1 ? Math.PI / 2 : Math.PI * 3 / 2;
this.emergent = new Polygon({ this.emergent = new Polygon({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
origin: [model.x, model.y], origin: [emergentX, emergentY],
rotation: rotation, rotation: rotation,
shape: { 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: { style: {
stroke: style.StationStand.standEmergent.closeColor, stroke: style.StationStand.emergent.closeColor,
fill: style.StationStand.standEmergent.closeColor fill: style.StationStand.emergent.closeColor
} }
}); });
this.add(this.emergent); this.add(this.emergent);
} else { } else {
this.emergent = new Isogon({ this.emergent = new Isogon({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape: { shape: {
x: model.x, x: emergentX,
y: model.y, y: emergentY,
r: model.r, r: model.r,
n: model.n n: model.n
}, },
@ -50,47 +57,47 @@ class ESafeEmergent extends Group {
lineWidth: 0 lineWidth: 0
} }
}); });
if (style.StationStand.standEmergent.special) { if (style.StationStand.emergent.special) {
this.emergent.setStyle('lineWidth', 2); this.emergent.setStyle('lineWidth', 2);
this.emergent.setStyle('stroke', style.StationStand.standEmergent.defaultColor); this.emergent.setStyle('stroke', style.StationStand.emergent.defaultColor);
} else { } else {
this.emergent.setStyle('stroke', style.StationStand.standEmergent.closeColor); this.emergent.setStyle('stroke', style.StationStand.emergent.closeColor);
this.emergent.setStyle('fill', style.StationStand.standEmergent.closeColor); this.emergent.setStyle('fill', style.StationStand.emergent.closeColor);
} }
this.add(this.emergent); this.add(this.emergent);
if (style.StationStand.standEmergent.special) { if (style.StationStand.emergent.special) {
// r*Math.r*cos(Math.PI/180*22.5) // r*Math.r*cos(Math.PI/180*22.5)
// Math.sin(Math.PI/180*50) // Math.sin(Math.PI/180*50)
// Math.cos(Math.PI/180*50) // Math.cos(Math.PI/180*50)
this.emergent.rotation = Math.PI / 8; this.emergent.rotation = Math.PI / 8;
this.emergent.origin = [model.x, model.y]; this.emergent.origin = [emergentX, emergentY];
this.emergent.dirty(); this.emergent.dirty();
this.emergentLine1 = new Line({ this.emergentLine1 = new Line({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape:{ shape:{
x1:model.x - model.r * 0.5939, x1:emergentX - model.r * 0.5939,
y1:model.y - model.r * 0.7077, y1:emergentY - model.r * 0.7077,
x2:model.x + model.r * 0.5939, x2:emergentX + model.r * 0.5939,
y2:model.y + model.r * 0.7077 y2:emergentY + model.r * 0.7077
}, },
style:{ style:{
lineWidth:2, lineWidth:2,
stroke:style.StationStand.standEmergent.defaultColor stroke:style.StationStand.emergent.defaultColor
} }
}); });
this.emergentLine2 = new Line({ this.emergentLine2 = new Line({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape:{ shape:{
x1:model.x + model.r * 0.5939, x1:emergentX + model.r * 0.5939,
y1:model.y - model.r * 0.7077, y1:emergentY - model.r * 0.7077,
x2:model.x - model.r * 0.5939, x2:emergentX - model.r * 0.5939,
y2:model.y + model.r * 0.7077 y2:emergentY + model.r * 0.7077
}, },
style:{ style:{
lineWidth:2, lineWidth:2,
stroke:style.StationStand.standEmergent.defaultColor stroke:style.StationStand.emergent.defaultColor
} }
}); });
this.add(this.emergentLine1); this.add(this.emergentLine1);
@ -101,7 +108,7 @@ class ESafeEmergent extends Group {
} }
hideMode() { hideMode() {
if (!this.model.style.StationStand.standEmergent.special) { if (!this.model.style.StationStand.emergent.special) {
this.emergent && this.emergent.hide(); this.emergent && this.emergent.hide();
} }
} }
@ -114,6 +121,10 @@ class ESafeEmergent extends Group {
getElement() { getElement() {
return this.emergent; return this.emergent;
} }
recover() {
this.hideMode();
}
} }
export default ESafeEmergent; 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() { create() {
if (!this.isNew) { if (!this.isNew) {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; 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.isNew = true;
this.time = new Text({ this.time = new Text({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
style: { style: {
x: model.x, x: timeX,
y: model.y, y: timeY,
fontWeight: style.textStyle.fontWeight, fontWeight: style.textStyle.fontWeight,
fontSize: style.StationStand.common.textFontSize, fontSize: style.StationStand.stopTime.textFontSize,
fontFamily: style.fontFamily, fontFamily: style.fontFamily,
text: model.name, text: model.parkingTime || '30',
textFill: style.StationStand.stopTime.textColor, textFill: style.StationStand.stopTime.textColor,
textAlign: style.textStyle.textAlign, textAlign: style.textStyle.textAlign,
textVerticalAlign: style.textStyle.textVerticalAlign textVerticalAlign: style.textStyle.textVerticalAlign
@ -51,6 +55,10 @@ class ETime extends Group {
this.create(); this.create();
this.time && this.time.show(); this.time && this.time.show();
} }
recover() {
this.hideMode();
}
} }
export default ETime; export default ETime;

View File

@ -9,15 +9,21 @@ class ETrainDepart extends Group {
} }
create() { create() {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; 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({ this.trainDepart = new Text({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
position: [0, 0], position: [0, 0],
style: { style: {
x: model.x, x: departX,
y: model.y, y: departY,
text: '000', text: '000',
textAlign: style.textStyle.textAlign, textAlign: style.textStyle.textAlign,
fontSize: style.StationStand.trainDepart.fontSize, fontSize: style.StationStand.trainDepart.fontSize,
@ -49,7 +55,10 @@ class ETrainDepart extends Group {
} }
this.trainDepart.setStyle('text', remainTime); this.trainDepart.setStyle('text', remainTime);
this.trainDepart.show(); this.trainDepart.show();
}
recover() {
this.hideMode();
} }
} }

View File

@ -10,15 +10,21 @@ class ETrainStop extends Group {
create() { create() {
if (!this.isNew) { if (!this.isNew) {
const model = this.model; const model = this.model.modelData;
const style = this.model.style; const style = this.model.style;
this.isNew = true; 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({ this.trainStop = new Arc({
zlevel: model.zlevel, zlevel: this.model.zlevel,
z: model.z, z: this.model.z,
shape: { shape: {
cx: model.x, cx: stopX,
cy: model.y, cy: stopY,
r: style.StationStand.trainStop.radiusR r: style.StationStand.trainStop.radiusR
}, },
style: { style: {
@ -43,6 +49,10 @@ class ETrainStop extends Group {
this.create(); this.create();
this.trainStop.show(); this.trainStop.show();
} }
recover() {
this.hideMode();
}
} }
export default ETrainStop; export default ETrainStop;

View File

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

View File

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