diff --git a/src/jmapNew/config/skinCode/bejing_01.js b/src/jmapNew/config/skinCode/bejing_01.js index 6c6afa69b..91c7bc09b 100644 --- a/src/jmapNew/config/skinCode/bejing_01.js +++ b/src/jmapNew/config/skinCode/bejing_01.js @@ -365,31 +365,46 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 控制模式字体颜色 fontWeight: 'normal', // 控制模式字体粗细 textAlign: 'middle', // 控制模式水平对齐 - textVerticalAlign: 'top', // 控制模式垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText: '紧急站控', // 紧急站控文字内容 - interconnectedControlText: '连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 控制模式垂直对齐 }, lamp: { count: 3, // 控制模式灯个数 - offset: { x: 20, y: 0 }, // 偏移量 + offset: { x: 0, y: 0 }, // 偏移量 radiusR: 6, // 控制模式灯的半径 distance: 46, // 控制模式之间灯之间的距离 grayColor: '#7F7F7F', // 控制模式灰色 greenColor: '#00FF00', // 控制模式绿色 redColor: '#FF0000', // 控制模式红色 - yellowColor: '#FFFF00', // 控制模式黄色 - emergencyControlShow: true, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: '#FFFF00' // 控制模式黄色 }, - arrow: { - show: false // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 0, y: 0 }, + text: '紧急站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' }, mouseOverStyle: { // 鼠标悬浮样式 fontSize: 10, diff --git a/src/jmapNew/config/skinCode/chengdu_01.js b/src/jmapNew/config/skinCode/chengdu_01.js index 9c01e1b09..1a8ccd7a1 100644 --- a/src/jmapNew/config/skinCode/chengdu_01.js +++ b/src/jmapNew/config/skinCode/chengdu_01.js @@ -334,31 +334,47 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText:'紧急站控', // 紧急站控文字内容 - interconnectedControlText:'连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 4, // 控制模式的个数 - offset: {x: 20, y: 0}, // 偏移量 + offset: {x: 0, y: 0}, // 偏移量 + emergencyOffset: {x: 0, y: 0}, radiusR: 4, // 控制模式灯的半径 distance: 46, // 控制模式之间灯之间的距离 grayColor: '#C0C0C0', // 控制模式灰色 greenColor: 'green', // 控制模式绿色 redColor: 'red', // 控制模式红色 - yellowColor: 'yellow', // 控制模式黄色 - emergencyControlShow: true, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: 'yellow' // 控制模式黄色 }, - arrow: { - show: false // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 0, y: 0 }, + text: '紧急站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' } } }; diff --git a/src/jmapNew/config/skinCode/chengdu_03.js b/src/jmapNew/config/skinCode/chengdu_03.js index 8983f55ed..e7643052d 100644 --- a/src/jmapNew/config/skinCode/chengdu_03.js +++ b/src/jmapNew/config/skinCode/chengdu_03.js @@ -324,13 +324,7 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText:'紧急站控', // 紧急站控文字内容 - interconnectedControlText:'连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 4, // 控制模式的个数 @@ -340,15 +334,36 @@ class SkinCode extends defaultStyle { grayColor: '#7F7F7F', // 控制模式灰色 greenColor: '#00FF00', // 控制模式绿色 redColor: '#FF0000', // 控制模式红色 - yellowColor: '#FFFF00', // 控制模式黄色 - emergencyControlShow: true, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: true, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: '#FFFF00' // 控制模式黄色 }, - arrow: { - show: false // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 0, y: 0 }, + text: '紧急站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: true, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' } } }; diff --git a/src/jmapNew/config/skinCode/foshan_01.js b/src/jmapNew/config/skinCode/foshan_01.js index c36e3c2d2..3163f94b5 100644 --- a/src/jmapNew/config/skinCode/foshan_01.js +++ b/src/jmapNew/config/skinCode/foshan_01.js @@ -346,13 +346,7 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText:'紧急站控', // 紧急站控文字内容 - interconnectedControlText:'连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 2, // 控制模式灯个数 @@ -362,12 +356,36 @@ class SkinCode extends defaultStyle { grayColor: '#7F7F7F', // 控制模式灰色 greenColor: '#00FF00', // 控制模式绿色 redColor: '#FF0000', // 控制模式红色 - yellowColor: '#FFFF00', // 控制模式黄色 - emergencyControlShow: false, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: '#FFFF00' // 控制模式黄色 + }, + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 110, y: 0 }, + text: '紧急', + arrowShow: true, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: true, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' }, arrow: { show: true // 控制模式箭头显隐 diff --git a/src/jmapNew/config/skinCode/fuzhou_01.js b/src/jmapNew/config/skinCode/fuzhou_01.js index e863755a3..8160b386d 100644 --- a/src/jmapNew/config/skinCode/fuzhou_01.js +++ b/src/jmapNew/config/skinCode/fuzhou_01.js @@ -335,13 +335,7 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText:'紧急站控', // 紧急站控文字内容 - interconnectedControlText:'连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 2, // 控制模式灯个数 @@ -351,15 +345,36 @@ class SkinCode extends defaultStyle { grayColor: '#7F7F7F', // 控制模式灰色 greenColor: '#00FF00', // 控制模式绿色 redColor: '#FF0000', // 控制模式红色 - yellowColor: '#FFFF00', // 控制模式黄色 - emergencyControlShow: false, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: '#FFFF00' // 控制模式黄色 }, - arrow: { - show: true // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: false, + offset: { x: 0, y: 0 }, + text: '紧急', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: true, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' }, mouseOverStyle: { // 鼠标悬浮样式 fontSize: null, diff --git a/src/jmapNew/config/skinCode/haerbin_01.js b/src/jmapNew/config/skinCode/haerbin_01.js index b0ab0e95d..70ed941ca 100644 --- a/src/jmapNew/config/skinCode/haerbin_01.js +++ b/src/jmapNew/config/skinCode/haerbin_01.js @@ -355,31 +355,47 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText: '紧急站控', // 紧急站控文字内容 - interconnectedControlText: '连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 2, // 控制模式灯个数 offset: { x: 0, y: 0 }, // 控制模式灯偏移量 + emergencyOffset: {x: 0, y: 0}, radiusR: 4, // 控制模式灯的半径 distance: 36, // 控制模式之间灯之间的距离 grayColor: '#7F7F7F', // 控制模式灰色 greenColor: '#00FF00', // 控制模式绿色 redColor: '#FF0000', // 控制模式红色 - yellowColor: '#FFFF00', // 控制模式黄色 - emergencyControlShow: false, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: '#FFFF00' // 控制模式黄色 }, - arrow: { - show: true // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: false, + offset: { x: 0, y: 0 }, + text: '紧急', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: true, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' }, mouseOverStyle: { // 鼠标悬浮样式 fontSize: null, diff --git a/src/jmapNew/config/skinCode/ningbo_01.js b/src/jmapNew/config/skinCode/ningbo_01.js index 44f653d35..a36b2b6d3 100644 --- a/src/jmapNew/config/skinCode/ningbo_01.js +++ b/src/jmapNew/config/skinCode/ningbo_01.js @@ -223,34 +223,50 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlButton: '站遥控按钮', // 中控文字内容 - centerControlText: '遥控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText: '紧急站控', // 紧急站控文字内容 - interconnectedControlText: '连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 4, // 控制模式的个数 offset: { x: 20, y: 0 }, // 偏移量 + emergencyOffset: {x: 0, y: 0}, radiusR: 6, // 控制模式灯的半径 distance: 46, // 控制模式之间灯之间的距离 grayColor: '#C0C0C0', // 控制模式灰色 greenColor: 'green', // 控制模式绿色 redColor: 'red', // 控制模式红色 yellowColor: 'yellow', // 控制模式黄色 - emergencyControlShow: true, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: true, // 中控显示 stroke: '#FFFFFF', // 框的颜色 fill: 'rgba(0,0,0,0)' // 填充色 }, - arrow: { - show: false // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 0, y: 0 }, + text: '紧急站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '遥控', + buttonText: '站遥控按钮', + buttonShow: true, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' } } }; diff --git a/src/jmapNew/config/skinCode/xian_01.js b/src/jmapNew/config/skinCode/xian_01.js index 24536bca1..c8fe3a3c8 100644 --- a/src/jmapNew/config/skinCode/xian_01.js +++ b/src/jmapNew/config/skinCode/xian_01.js @@ -350,31 +350,47 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText:'紧急站控', // 紧急站控文字内容 - interconnectedControlText:'连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 2, // 控制模式灯个数 offset: {x: 0, y: 0}, // 控制模式灯偏移量 + emergencyOffset: {x: 0, y: 0}, radiusR: 4, // 控制模式灯的半径 distance: 36, // 控制模式之间灯之间的距离 grayColor: '#7F7F7F', // 控制模式灰色 greenColor: '#00FF00', // 控制模式绿色 redColor: '#FF0000', // 控制模式红色 - yellowColor: '#FFFF00', // 控制模式黄色 - emergencyControlShow: false, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: '#FFFF00' // 控制模式黄色 }, - arrow: { - show: true // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: false, + offset: { x: 0, y: 0 }, + text: '紧急', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: true, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' }, mouseOverStyle: { // 鼠标悬浮样式 fontSize: null, diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index 21a84dd77..468681d5f 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -394,31 +394,47 @@ class SkinCode extends defaultStyle { fontColor: '#ffffff', // 字体颜色 fontWeight: 'normal', // 字体粗细 textAlign: 'middle', // 字体水平对齐 - textVerticalAlign: 'top', // 字体垂直对齐 - centerControlText: '中控', // 中控文字内容 - substationControlText: '站控', // 站控文字内容 - emergencyControlText:'紧急站控', // 紧急站控文字内容 - interconnectedControlText:'连锁控' // 连锁控文字内容 - // stationCenterControlText: '站中控', // 站中控文字内容 - // generalAlarmControlText: '总报警' // 总报警文字内容 + textVerticalAlign: 'top' // 字体垂直对齐 }, lamp: { count: 4, // 控制模式的个数 offset: {x: 20, y: 0}, // 偏移量 + emergencyOffset: {x: 0, y: 0}, radiusR: 4, // 控制模式灯的半径 distance: 46, // 控制模式之间灯之间的距离 grayColor: '#C0C0C0', // 控制模式灰色 greenColor: 'green', // 控制模式绿色 redColor: 'red', // 控制模式红色 - yellowColor: 'yellow', // 控制模式黄色 - emergencyControlShow: true, // 紧急站控显示 - centerControlShow: true, // 中控显示 - substationControlShow: true, // 站控按钮显示 - interconnectedControlShow: false, // 联锁控显示 - centerControlButtonShow: false // 中控显示 + yellowColor: 'yellow' // 控制模式黄色 }, - arrow: { - show: false // 控制模式箭头显隐 + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 0, y: 0 }, + text: '紧急', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: 0, y: 0 }, + text: '中控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: 0, y: 0 }, + text: '站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' } } }; diff --git a/src/jmapNew/shape/Station/index.js b/src/jmapNew/shape/Station/index.js index 3d4386f49..78436a7a5 100644 --- a/src/jmapNew/shape/Station/index.js +++ b/src/jmapNew/shape/Station/index.js @@ -174,73 +174,41 @@ export default class Station extends Group { const model = this.model; if (model.visible && model.createControlMode) { // 紧急站控 - if (this.style.Station.StationControl.lamp.emergencyControlShow) { - this.emergencyControl = new ESingleControl({ - _subType: 'emergency', - style: this.style, - zlevel: this.zlevel, - z: this.z, - point: { - x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.lamp.offset.x, - y: model.controlModePoint.y + this.style.Station.StationControl.lamp.offset.y - }, - context: this.style.Station.StationControl.text.emergencyControlText, - pop: false - }); - this.add(this.emergencyControl); - } + this.createEmergencyControl(); + // 中控按钮 - if (this.style.Station.StationControl.lamp.centerControlShow) { - this.centerControl = new ESingleControl({ - _subType: 'center', - style: this.style, - zlevel: this.zlevel, - z: this.z, - point: { - x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance / 2 + this.style.Station.StationControl.lamp.offset.x, - y: model.controlModePoint.y + this.style.Station.StationControl.lamp.offset.y - }, - context: this.style.Station.StationControl.text.centerControlText, - pop: false - }); - this.add(this.centerControl); - } + this.createCenterControl(); + // 站控按钮 - if (this.style.Station.StationControl.lamp.substationControlShow) { - this.substationControl = new ESingleControl({ - _subType: 'substation', - style: this.style, - zlevel: this.zlevel, - z: this.z, - point: { - x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance / 2 + this.style.Station.StationControl.lamp.offset.x, - y: model.controlModePoint.y + this.style.Station.StationControl.lamp.offset.y - }, - context: this.style.Station.StationControl.text.substationControlText, - pop: false - }); - this.add(this.substationControl); - } + this.createSubstationControl(); + // 联锁控 - if (this.style.Station.StationControl.lamp.interconnectedControlShow) { - this.interconnectedControl = new ESingleControl({ - _subType: 'interconnected', - style: this.style, - zlevel: this.zlevel, - z: this.z, - point: { - x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.lamp.offset.x, - y: model.controlModePoint.y + this.style.Station.StationControl.lamp.offset.y - }, - context: this.style.Station.StationControl.text.interconnectedControlText || '联锁控', - pop: false - }); - this.add(this.interconnectedControl); - } - // 箭头 - if (this.style.Station.StationControl.arrow.show) { - const point = arrow(this.model.controlModePoint.x, this.model.controlModePoint.y + this.style.Station.StationControl.lamp.radiusR / 2, this.style.Station.StationControl.lamp.distance / 6, this.style.Station.StationControl.lamp.radiusR * 0.8); - this.arrowsControl = new EArrow({ + this.createInterconnectedControl(); + } + this.setState(model); + } + + createEmergencyControl() { // 紧急站控 + const model = this.model; + if (this.style.Station.StationControl.emergencyControl.show) { + this.emergencyControl = new ESingleControl({ + _subType: 'emergency', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.emergencyControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.emergencyControl.offset.y + }, + context: this.style.Station.StationControl.emergencyControl.text, + pop: false + }); + this.add(this.emergencyControl); + if (this.style.Station.StationControl.emergencyControl.arrowShow) { + const x = model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.emergencyControl.offset.x; + const y = model.controlModePoint.y + this.style.Station.StationControl.emergencyControl.offset.y; + const point = arrow(x, y + this.style.Station.StationControl.lamp.radiusR / 2, this.style.Station.StationControl.lamp.distance / 6, this.style.Station.StationControl.lamp.radiusR * 0.8); + this.emergencyArrowsControl = new EArrow({ zlevel: this.zlevel, z: this.z, style: this.style, @@ -249,44 +217,137 @@ export default class Station extends Group { point: point, x: model.controlModePoint.x + this.style.Station.StationControl.lamp.offset.x, y: model.controlModePoint.y + this.style.Station.StationControl.lamp.radiusR / 2 + this.style.Station.StationControl.lamp.offset.y, - fill: this.style.Station.StationControl.lamp.grayColor, + fill: this.style.Station.StationControl.emergencyControl.grayColor, lineWidth: 1, stroke: this.style.sidelineColor }); - this.add(this.arrowsControl); + this.add(this.emergencyArrowsControl); } - // 中控按钮 - if (this.style.Station.StationControl.lamp.centerControlButtonShow) { - this.centerControlButton = new ESingleControl({ - _subType: 'button', - style: this.style, - zlevel: this.zlevel, - z: this.z, - point: { - x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 3 / -2 + this.style.Station.StationControl.lamp.offset.x, - y: model.controlModePoint.y + this.style.Station.StationControl.lamp.offset.y - }, - context: this.style.Station.StationControl.text.centerControlButton, - pop: false - }); - this.add(this.centerControlButton); - const arcRect = this.centerControlButton.getArcBoundingRect(); - this.arcBorder = new Rect({ - zlevel: this.zlevel, - z: this.z, - silent: true, - shape: arcRect, - style: { - lineDash: null, - stroke: this.style.Station.StationControl.lamp.stroke, - fill: this.style.Station.StationControl.lamp.fill - } - }); - this.add(this.arcBorder); - } - } - this.setState(model); + } + + createCenterControl() { // 中控按钮 + const model = this.model; + if (this.style.Station.StationControl.centerControl.show) { + this.centerControl = new ESingleControl({ + _subType: 'center', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance / 2 + this.style.Station.StationControl.centerControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.centerControl.offset.y + }, + context: this.style.Station.StationControl.centerControl.text, + pop: false + }); + this.add(this.centerControl); + if (this.style.Station.StationControl.centerControl.arrowShow) { + const x = model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.emergencyControl.offset.x; + const y = model.controlModePoint.y + this.style.Station.StationControl.emergencyControl.offset.y; + const point = arrow(x, y + this.style.Station.StationControl.lamp.radiusR / 2, this.style.Station.StationControl.lamp.distance / 6, this.style.Station.StationControl.lamp.radiusR * 0.8); + this.centerArrowsControl = new EArrow({ + zlevel: this.zlevel, + z: this.z, + style: this.style, + count: this.count, + drict: 1, + point: point, + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.lamp.radiusR / 2 + this.style.Station.StationControl.lamp.offset.y, + fill: this.style.Station.StationControl.centerControl.grayColor, + lineWidth: 1, + stroke: this.style.sidelineColor + }); + this.add(this.centerArrowsControl); + } + } + // 中控按钮 + if (this.style.Station.StationControl.centerControl.buttonShow) { // 宁波一 显示 + this.centerControlButton = new ESingleControl({ + _subType: 'button', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x - this.style.Station.StationControl.lamp.distance * 3 / -2 + this.style.Station.StationControl.lamp.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.lamp.offset.y + }, + context: this.style.Station.StationControl.centerControl.buttonText, + pop: false + }); + this.add(this.centerControlButton); + const arcRect = this.centerControlButton.getArcBoundingRect(); + this.arcBorder = new Rect({ + zlevel: this.zlevel, + z: this.z, + silent: true, + shape: arcRect, + style: { + lineDash: null, + stroke: this.style.Station.StationControl.lamp.stroke, + fill: this.style.Station.StationControl.lamp.fill + } + }); + this.add(this.arcBorder); + } + } + + createSubstationControl() { // 站控按钮 + const model = this.model; + if (this.style.Station.StationControl.substationControl.show) { + this.substationControl = new ESingleControl({ + _subType: 'substation', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance / 2 + this.style.Station.StationControl.substationControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.substationControl.offset.y + }, + context: this.style.Station.StationControl.substationControl.text, + pop: false + }); + this.add(this.substationControl); + if (this.style.Station.StationControl.substationControl.arrowShow) { + const x = this.model.controlModePoint.x + this.style.Station.StationControl.substationControl.offset.x; + const y = this.model.controlModePoint.y + this.style.Station.StationControl.substationControl.offset.y; + const point = arrow(x, y + this.style.Station.StationControl.lamp.radiusR / 2, this.style.Station.StationControl.lamp.distance / 6, this.style.Station.StationControl.lamp.radiusR * 0.8); + this.substationArrowsControl = new EArrow({ + zlevel: this.zlevel, + z: this.z, + style: this.style, + count: this.count, + drict: 1, + point: point, + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.lamp.radiusR / 2 + this.style.Station.StationControl.lamp.offset.y, + fill: this.style.Station.StationControl.substationControl.grayColor, + lineWidth: 1, + stroke: this.style.sidelineColor + }); + this.add(this.substationArrowsControl); + } + } + } + + createInterconnectedControl() { // 联锁控 + const model = this.model; + if (this.style.Station.StationControl.interconnectedControl.show) { // 成都三会显示 + this.interconnectedControl = new ESingleControl({ + _subType: 'interconnected', + style: this.style, + zlevel: this.zlevel, + z: this.z, + point: { + x: model.controlModePoint.x + this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.interconnectedControl.offset.x, + y: model.controlModePoint.y + this.style.Station.StationControl.interconnectedControl.offset.y + }, + context: this.style.Station.StationControl.interconnectedControl.text || '联锁控', + pop: false + }); + this.add(this.interconnectedControl); + } } handleCenter() { // 中控 @@ -301,13 +362,15 @@ export default class Station extends Group { this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.yellowColor); this.substationControl && this.substationControl.setTextColor(this.style.Station.StationControl.lamp.yellowColor); // 文字颜色 this.centerControl && this.centerControl.setColor(this.style.Station.StationControl.lamp.grayColor); - this.arrowsControl && this.arrowsControl.setColor(this.style.Station.StationControl.lamp.greenColor); + this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.greenColor); } handleEmergency() { // 紧急站控 this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.redColor); + this.emergencyControl && this.emergencyControl.setTextColor(this.style.Station.StationControl.lamp.redColor); // 紧急 颜色 this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.grayColor); this.centerControl && this.centerControl.setColor(this.style.Station.StationControl.lamp.grayColor); + this.emergencyArrowsControl && this.emergencyArrowsControl.setColor(this.style.Station.StationControl.lamp.greenColor); } recover() { @@ -317,6 +380,9 @@ export default class Station extends Group { this.substationControl && this.substationControl.setTextColor(this.style.Station.StationControl.text.fontColor); this.centerControl && this.centerControl.setColor(this.style.Station.StationControl.lamp.grayColor); this.centerControl && this.centerControl.setTextColor(this.style.Station.StationControl.text.fontColor); + + this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor); + this.emergencyArrowsControl && this.emergencyArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor); } // 设置状态