diff --git a/src/jmapNew/config/deviceStyle.js b/src/jmapNew/config/deviceStyle.js index 30d366b60..366ba6704 100644 --- a/src/jmapNew/config/deviceStyle.js +++ b/src/jmapNew/config/deviceStyle.js @@ -2,6 +2,7 @@ const mapDeviceStyle = { '01': 'chengdu_01', '02': 'fuzhou_01', '03': 'bejing_01', + // '03': 'race_01', '04': 'chengdu_03', '06': 'ningbo_01', '07': 'haerbin_01', diff --git a/src/jmapNew/config/skinCode/ningbo_01.js b/src/jmapNew/config/skinCode/ningbo_01.js index 73a543f3b..0c2f7a817 100644 --- a/src/jmapNew/config/skinCode/ningbo_01.js +++ b/src/jmapNew/config/skinCode/ningbo_01.js @@ -300,6 +300,7 @@ class SkinCode extends defaultStyle { }, arcBlcok: { // 圆形封锁图形 show: true, // 显示 + shapeR: 5, arcBorderColor: 'green', // 默认边框颜色 locationColor: 'green', // 定位封锁颜色 inversionColor: '#FFFF00' // 反位封锁颜色 diff --git a/src/jmapNew/config/skinCode/race_01.js b/src/jmapNew/config/skinCode/race_01.js new file mode 100644 index 000000000..c29d8e2b2 --- /dev/null +++ b/src/jmapNew/config/skinCode/race_01.js @@ -0,0 +1,776 @@ +import defaultStyle from '../defaultStyle'; +import deviceType from '../../constant/deviceType'; + +class SkinCode extends defaultStyle { + constructor() { + super(); + this.fontFamily = '宋体'; + this[deviceType.Section] = { + elemnetType:['name', 'standTrackText', 'reentryTrackText', 'transferTrackText', 'destinationText', 'line', 'separator', 'speedLimit'], + active: { + routeColor: false // 进路触发颜色 + }, + name: { // 物理区段名称 + z: 10, + position: -1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + logicText: { // 逻辑区段名称 + z: 10, + position: -1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + standTrackText: { // 站台轨名称 + z: 10, + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + reentryTrackText: { // 折返轨名称 + z: 10, + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + transferTrackText: { // 转换轨名称 + z: 10, + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + destinationText: { // 目的码名称 + z: 10, + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'bold', // 字体粗细 + fontColor: 'yellow', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + mouseOverStyle: { + borderColor: '#fff', + borderBackgroundColor: '#22DFDF', + textShadowColor: '#22DFDF', + nameShow: true, + lineDash: [3, 3], + lineWidthMore: 2.5 + }, + line: { + z: 0, + width: 5, // 区段宽度 + beyondWidth: 0, // 区段宽超出宽度 + invadeColor: '#EF0C08', // 区段侵入颜色 + spareColor: '#808080', // 区段空闲颜色 + communicationOccupiedColor: '#FF0000', // 区段通信车占用颜色 + unCommunicationOccupiedColor: '#800080', // 区段非通讯车占用颜色 + routeLockColor: '#FFFFFF', // 区段路由锁定颜色 + faultLockColor: '#800080', // 区段故障锁定颜色 + undefinedColor: '#0071C1', // 区段未定义颜色 + protectionLockedColor: '#FEFF00', // 保护区段锁闭(未用) + blockColor: '#800080', // 区段封锁颜色 + atcExcisionColor: '#A0522D', // 区段atc切除颜色 + atsExcisionColor: '#A0522D', // 区段ats切除颜色 + invalidColor: '#AC8F40', // 计轴故障颜色 + timeReleaseColor: '#3F3F3F', // 区段延时释放颜色 + protectiveLockColor: '#FFFF00', // 区段保护锁闭 + protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁 + logicalColor: '#FFFF00', // 逻辑区段颜色 (未用) + logicalTextColor: '#C0C0C0' // 逻辑区段名称颜色 (未用) + }, + speedLimit: { // 限速元素 + z: 2, + width: 1, // 限速线的宽度 + distance: 5, // 限速线距离区段距离 + lineColor: '#FFFF00', // 限速线颜色 + nameShow: false // 名称显示 + }, + separator: { + z: 3, // 分割符层级 + width: 1.5, // 分隔符宽度 + endWidth: 1.5, // 尽头分隔符宽度 + endColor: '#7F7F7F', // 尽头分隔符颜色 + color: '#7F7F7F', // 区段边界符颜色 + halfHeight: 5 // 区段分隔符高度的一半 + }, + trainPosition:{ + display: false // 列车实时位置显示 + } + }; + + this[deviceType.Signal] = { + distance: 0, // 设备距离区段的距离 + xColor: '#C0C0C0', // 信号灯x颜色 + post: { + standardLength: 6, // 高柱长度 + standardHeight: 6, // 灯柱高度 + standardColor: '#969696', // 灯灯柱颜色 + standardWidth: 3 // 灯柱宽度 + }, + text: { + show: true, // 信号机名称显示 + distance: 3, // 文字和灯杆的距离 + isAlignCenter: false, // 信号字体对其方式 + fontSize: 11, // 信号机名称字体大小 + fontWeight: 'bold', // 信号机名称字体粗细 + defaultColor: '#C0C0C0', // 信号灯字体默认色 + blockColor: '#EF0C08', // 信号灯字体锁定颜色 + checkColor: '#00FF00' // 信号字体 + }, + lamp: { + bgShow: false, // 是否被选中 + guidName: 'defult', // 默认引导类型 + stopWidth: 1, // 禁止线宽度 + borderVariable: false, // 信号灯边框可变 + borderWidth: 1, // 信号灯边框线宽度 + borderColor: '#c0c0c0', // 信号灯边框线颜色 + radiusR: 5, // 信号机宽度 + blockColor: '#EF0C08', // 信号灯锁闭 + grayColor: '#7F7F7F', // 信号灯灰色 + redColor: '#FF0000', // 信号灯红色 + greenColor: '#00FF00', // 信号灯绿色 + yellowColor: '#FFFF00', // 信号灯黄色 + whiteColor: '#FFFFFF', // 信号灯白色 + blueColor: '#0070C0' // 信号灯蓝色 + }, + route: { + direction: false, // 自动进路方向 + offset: { x: 1, y: -2 }, // 自动进路偏移量 + routeColor: '#00FF00', // 自动进路 + radiusR: 6 + }, + auto: { + signalFrontTriangle: true, // 信号灯前三角展示 + direction: true, // 自动通过方向 + offset: { x: -4, y: 0 }, // 自动通过偏移量 + width: 5, // 自动宽度 + autoRoute: '#00FF00', // 自动进路 + autoTrigger: '#FFFF00', // 自动触发 + manualControl: '#FFFF00', // 人工控制 + outConflict: '#C00808' // 出车冲突 + }, + delay: { + direction: false, // 延时解锁方向 + offset: { x: 0, y: -5 }, // 延时解锁偏移量 + fontSize: 9, // 延迟解锁字体大小 + fontColor: '#FF0000', // 延迟解锁颜色 + fontWeight: 'bold' // 字体粗细 + }, + button: { + distance: 5, // 信号灯按钮距离区段的距离 + borderDashColor: '#FFFFFF', // 信号灯按钮边线 + buttonColor: 'darkgreen', // 信号灯按钮颜色 + buttonLightenColor: '#E4EF50' // 信号灯按钮闪烁颜色 + }, + mouseOverStyle: { + borderLineColor: '#FFFFFF', + borderLineDash: [3, 3], + nameBackgroundColor: '#22DFDF', + lampBorderLineColor: '#22DFDF' + }, + lowButton:{ + display: true, // 现地 信号机按钮 + strokeColor:'#ffffff', + fillColor:'#025e01', + fillActiveColor:'#ffff00' + } + }; + + this[deviceType.StationTurnBack] = { // 站后折返 + displayCondition: '01', // 显示条件 (01所有模式下显示 02 行调显示 03现地显示) + lamp: { + fill: '#f1f1f1', // 填充色 + radiusR: 7 // 控制灯大小 + }, + text: { + titleTextShow: true, + fontWeight: 580, + fontSize: 10, + distance: 10 + }, + rect: { + fill: 'rgba(0,0,0,0)', + stroke: '#fff', + lineWidth: 0, + padding: 6 + } + }; + + this[deviceType.AutoTurnBack] = { + // 是否显示 + visibleConditions: '03', + text: { + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + subtitleText: { + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 17 // 等于副标题距离 + }, + lamp: { + lineDash: null, // 灯的包围框 + borderShow: false, // 是否显示边框 + stroke: '#FFFFFF', // 框的颜色 + fill: 'rgba(0,0,0,0)', // 填充色 + radiusR: 6, // 控制灯大小 + controlColor: '#b5b3b3', // 控制灯颜色 (灰色) + lightUpColor: '#ffff00' // 点亮灯颜色 + }, + OutFrame: { + + } + }; + + /** 引导总锁 */ + this[deviceType.GuideLock] = { + // 是否显示 + displayCondition: '03', // 显示条件 prdType + text: { + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + fill: 'rgba(0,0,0,0)', // 填充色 + radiusR: 6, // 控制灯大小 + controlColor: '#b5b3b3', // 控制灯颜色 (灰色) + lightUpColor: '#FF0000' // 点亮灯颜色 + } + }; + + // 供电线路 + this[deviceType.Power] = { + lineColor: '#FFFFFF', // 线条颜色 + strokeColor: 'red', // 线条颜色 + extendLength: 10 // 延伸长度 + }; + + // 延续保护计时 + this[deviceType.OverAp] = { + show: false + }; + + // 屏蔽门 + this[deviceType.Psd] = { + // 北京线屏蔽门 + elemnetType:['safetyDoorNormal'], + safetyDoorNormal: { // 屏蔽门 + z:0, + height: 1.6, // 站台屏蔽门高度 + distance: 9, // 站台和屏蔽门之间的距离 + defaultColor: '#00FF00', // 屏蔽门默认颜色 + splitDoorColor: '#F61107' // 屏蔽门切除颜色 + } + }; + + // 站台 + this[deviceType.StationStand] = { + // 北京线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 + elemnetType:['solidStand', 'emergentRhombus', 'detainNormal', 'stopTime', 'level', 'jump'], + // 站台 + solidStand:{ + // 层级 + z:0, + spareColor: '#FFF', // 站台空闲颜色 + jumpStopColor: '#AB82FF', // 站台跳停颜色 + designatedJumpStopColor: '#AB82FF', // 站台指定列车跳停颜色 + headFontSize: 8, // 站台首端字体大小 + stopColor: '#FEFE00' // 站台列车停站颜色 + }, + // 站台紧急关闭 + emergentRhombus:{ + z:1, + mergentR: 4, // 站台紧急关闭半径 + mergentN: 4, // 站台紧急关闭边数 + insideOffset: { x: 0, y: -40 }, // 内站台紧急关闭偏移量 + outsideOffset: { x: 0, y: 20 }, // 外站台紧急关闭偏移量 + closeColor: '#F61107' // 站台紧急关闭颜色 + }, + // 扣车元素 普通扣车 + detainNormal:{ + z:0, + position: -1, // 扣车标识在站台上显示方向 + text: 'H', // 扣车显示内容 + offset: { x: -8, y: 13 }, // 扣车偏移量 + centerTrainColor: '#00FF00', // 中心扣车颜色 + andCenterTrainColor: '#00FF00', // 车站+中心扣车颜色 + detainTrainTextColor: '#00FF00', // 车站扣车文字颜色 + fontSize: 25, // 字体大小 + fontWeight: 'normal' + }, + // 停站时间 + stopTime:{ + z:1, + textFontSize: 8, // 停站时间字体大小 + textColor: '#FFFFFF', // 停站时间字体颜色 + position: 1, // 停站时间方向 + offset: { x: -8, y: 25 } // 停站时间偏移量 + }, + jump: { + z:1, + position: 1, // 停跳方向 + text: 'S', // 停跳显示内容 + offset: {x: -8, y: -8}, + textColor: '#FA80F5', // 停跳文字颜色 + arcColor: '#000000', // 停跳圆圈颜色 + fillColor: 'rgba(0,0,0,0)', // 透明填充颜色 + fontWeight: 'normal', // 文字居中 + fontSize: 25 // 文字大小 + }, + // 运行等级 + level:{ + z:1, + textFontSize: 8, // 运行等级字体大小 + position: 1, // 运行等级方向 + offset: { x: -8, y: 10 }, // 运行等级偏移量 + textColor: '#FFFFFF' // 停站等级字体颜色 + }, + // 鼠标事件样式 + mouseOverStyle: { + borderLineColor: '#FFFFFF', + borderLineDash: [3, 3] + }, + // reentry: {}, // 站台折返策略 + common: { // 通用属性 + textFontSize: 8, // 站台默认字体大小 + functionButtonShow: '03' // 功能灯按钮显示条件(01所有模式下显示 02 行调显示 03现地显示) + }, + lamp: { + radiusR: 6, // 控制灯大小 + lampColor: '#5A5D5A' // 功能按钮颜色 + }, + text: { + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + } + // trainStop: {}, // 停车标志 + // trainDepart: {}, // 停车计时 + + }; + + this[deviceType.StationCounter] = { + text: { + distance: 2, // 计数器名称和文字的距离 + fontColor: '#FFFFFF', // 计数器字体颜色 + borderColor: '#E4EF50' // 计数器边框颜色 + } + }; + + this[deviceType.StationDelayUnlock] = { + text: { + distance: 3, // 延迟解锁和设备之间的距离 + fontColor: '#FFFFFF', // 延时解锁字体颜色 + borderColor: '#FFFFFF' // 延迟解锁边框颜色 + } + }; + + this[deviceType.Station] = { + // text: { + // show: true // 公里标名称显示 + // }, + kmPostShow: true, // 公里标显示 + kilometerPosition: 'down', // 公里标位置 + fontWeight: 'bold', // 文字错细 + text: { + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 控制灯大小 + controlColor: '#FFFF00' // 控制灯颜色 + }, + turnBack: { // 按图折返 + lamp: 1, // 灯数量 + lampSpace: 60 // 灯间距 + }, + StationControl: { + text: { + distance: 2, // 灯和文字之间的距离 + fontSize: 10, // 控制模式字体大小 + fontFormat: 'consolas', // 控制模式字体格式 + fontColor: '#ffffff', // 控制模式字体颜色 + fontWeight: 'normal', // 控制模式字体粗细 + textAlign: 'middle', // 控制模式水平对齐 + textVerticalAlign: 'top' // 控制模式垂直对齐 + }, + lamp: { + count: 3, // 控制模式灯个数 + offset: { x: 0, y: 0 }, // 偏移量 + radiusR: 6, // 控制模式灯的半径 + distance: 46, // 控制模式之间灯之间的距离 + grayColor: '#7F7F7F', // 控制模式灰色 + greenColor: '#00FF00', // 控制模式绿色 + redColor: '#FF0000', // 控制模式红色 + yellowColor: '#FFFF00', // 控制模式黄色 + textColorNoChange: true // 控制灯颜色不随控制灯改变 + }, + emergencyControl: { // 紧急站控 + show: true, + offset: { x: 92, y: 0 }, + text: '紧急站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + centerControl: { // 中控 + show: true, + offset: { x: -46, y: 0 }, + text: '遥控', + buttonShow: false, + arrowShow: false, + grayColor: '#7F7F7F' + }, + substationControl: { // 站控按钮 + show: true, + offset: { x: -46, y: 0 }, + text: '站控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + interconnectedControl: { // 联锁控 + show: false, + offset: { x: 0, y: 0 }, + text: '联锁控', + arrowShow: false, + grayColor: '#7F7F7F' + }, + mouseOverStyle: { // 鼠标悬浮样式 + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top' + } + } + }; + + this[deviceType.Switch] = { + text: { + show: true, // 道岔名称显示 + position: 0, // 区段名称位置 1 上面 -1 下面 0 对称 + offset: { x: 5, y: -10 }, // 道岔名称与区段距离 + fontSize: 11, // 字体大小 + fontColor: '#C0C0C0', // 道岔名称颜色 + fontWeight: 'normal', // 字体粗细 + borderColor: '#FE0000', // 道岔边框颜色 + lossColor: '#FE0000', // 道岔失去颜色 + locateColor: '#00FF00', // 道岔定位颜色 + inversionColor: '#FFFF00', // 道岔反位颜色 + monolockLocationColor: '#c00000', // 道岔单锁'定位'颜色 (红色) + monolockInversionColor: '#c00000', // 道岔单锁'反位'颜色 (红色) + block: true, // 封锁名称 + faultFlashing: true // 故障闪烁 + }, + sectionAction: { + flag: false, // 道岔 关联区段显示 + spareColor: '#5b5b5b' // 区段显示颜色 + }, + core: { + length: 6, // 道岔单边长度 + graphShow: true // 图形显示 + }, + jointImg: { // 道岔 A B C D四元素属性配置 + trapezoidLength: 8, // 直角梯形元素默认长度 + fork: true, // 挤岔专用(如有挤岔操作 变为true) + faultStatus: true, // 挤岔表示 + forKColor: 'red' // 挤岔颜色 配合挤岔专用 + }, + arcBlcok: { // 圆形封锁图形 + show: true, // 显示 + shapeR: 15, + arcBorderColor: 'green', // 默认边框颜色 + locationColor: 'green', // 定位封锁颜色 + inversionColor: '#FFFF00' // 反位封锁颜色 + }, + rectLock: { // 矩形封锁框图形 + rectWidth: 22, // 矩形框 宽高 + rectBorderColor: '#fff', // 矩形边框颜色 + monolock: false, // 单锁显示 + block: false // 封锁显示 + } + }; + + this[deviceType.LcControl] = { + text: { + fontSize: 10, // 灯字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 灯大小 + controlColor: '#FFFF00' // 灯颜色 + }, + mouseOverStyle: { + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top', + arcColor: '#00FFFF', + textColor: '#000000' + } + }; + this[deviceType.ZcControl] = { + // 是否显示 + visible: true, + text: { + fontSize: 10, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 灯大小 + controlColor: '#00FF00', // 灯颜色 + activeColor:'#ff0000' // 控制灯激活颜色 + }, + mouseOverStyle: { + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top', + arcColor: '#00FFFF', + textColor: '#000000' + } + }; + + this[deviceType.LimitControl] = { + text: { + fontSize: 10, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 灯大小 + controlColor: '#ECE9D8' // 灯颜色 + }, + mouseOverStyle: { + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top', + textColor: '#000000', + arcColor: '#00FFFF' + } + }; + + this[deviceType.Line] = { + lineColor: '#FFFFFF' // 线条颜色 + }; + this[deviceType.AutomaticRoute] = { + // 是否显示 + displayCondition: '03', // 显示条件 prdType + text: { + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + fill: 'rgba(0,0,0,0)', // 填充色 + radiusR: 6, // 控制灯大小 + controlColor: '#b5b3b3' // 控制灯颜色 (灰色) + } + }; + this[deviceType.TrainWindow] = { + lineColor: '#FFF', // 车次窗颜色 + lineDash: [3, 3], // 车次窗虚线间隔 + lineWidth: 1, // 车次窗线宽 + trainWindowSmooth: 0.01, // 车次窗矩形圆滑程度 + show: true // 车次窗是否显示 + }; + this[deviceType.SplitStation] = { + lineLength: 15, // 箭头线长度 + lineWidth: 2, // 线宽 + height: 35, // 分隔整体高度 + strokeColor: '#00FF00', // 线颜色 + triangleFillColor: '#00FF00', // 三角填充颜色 + textFill: '#FFFFFF', // 文字颜色 + verticalDistance: 10, // 箭头三角垂直高度 + horizontalDistance: 7// 箭头三角水平高度 + }; + this[deviceType.Train] = { + trainBody: { + fontFamily: 'consolas', + trainBodyLineWidth: 0.1, // 车身line宽 + changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度 + specialTrainType: [ + { + type: '03', + serviceNumber: 'M0', + nameFormat: 'serviceNumber:groupNumber' + }, + { + type: '02', + nameFormat: 'targetCode:groupNumber' + } + ], // 特殊列车类型需设置显示格式 + lrPadding: 4, // 两边间隔 + upPadding: 4, // 上边距离 + trainBodyFillColor: '#725A64', // 列车车身填充颜色 + trainNameFormat: 'serviceNumber:tripNumber'// 列车显示格式 + }, + soonerOrLater: { + level: 3, + serviceNumber: true, + earlyColor: '#00FF00', + lateColor: '#800000', + normalColor: '#FFF' + }, + directionArrow: { + }, + hsda: { + lrPaddingHSDA: 3, // HSDA两边间隔 + upPaddingHSDA: 4, // HSDA上边距离 + trainHSDATextFontSize: 9, // 列车HDSA字号 + textHContent: 'H', // textH文本 + textSContent: 'S', // textS文本 + textDContent: 'D', // textD文本 + textAContent: 'A'// textA文本 + }, + trainNumber: { + targetCodePrefix: '000', // 目的地码前缀 + trainNumberOffset: { x: 0, y: 1 }// 目的地码偏移量 + }, + trainServer: { + serviceNumberPrefix: '00', // 服务号(表号)前缀 + defaultServiceNumber: 'AA', // 默认服务号(表号) + trainServerOffset: { x: 4, y: 4 }// 列车服务号偏移 + }, + trainTarget: { + tripNumberPrefix: '000', // 车次号前缀 + defaultTripNumber: 'DDD', // 默认车次号2 + trainTargetOffset: { x: 36, y: 4 }, // 列车车次号偏移 + trainTargetTextAlign: 'left'// 车次号文字显示位置 + }, + trainTargetNumber: { + groupNumberPrefix: '000', // 车组号前缀 + defaultGroupNumber: 'EEE', // 默认车组号 + trainTargetNumberOffset: { x: -4, y: 4 }// 车组号偏移量 + }, + trainHead: { + trainHeadRectHeight: 20, // 列车车头矩形高度 + trainConntWidth: 3, // 列车竖杠的宽度 + trainHeadFillColor: '#000000', // 列车车头矩形填充颜色 + directionStopType:'normal', // special 西安二号线 停车 列车方向图标不消失 normal 正常 + trainHeadHeight: 'trainBox', // 列车车头高度取决于trainBox高度 + trainHeadArrowWidth: 6, // 列车车头三角宽度 + trainHeadArrowOffsetX: 2 // 列车车头三角偏移 + }, + common: { + trainHeight: 20, // 列车高度 + trainHeadDistance: 4, // 列车和车头之间的间距 + trainWidth: 40, // 列车长度 + trainTextFontSize: 12, // 列车字号 + fontFamily: 'consolas', // 默认字体 族类 + haveTextHSDA: true, // 是否需创建textHSDA对象 + haveArrowText: true, // 是否需创建arrowText对象 + textOffset: 4, // 字体偏移(用以控制字体据车头的距离) + trainWidthMoreText: 8, // 计算列车长度时--列车长比text多出尺寸 + displayPosition: 'margin', // 非同通信车在物理区段(有逻辑区段)上显示的位置 margin:行驶方向边缘车次窗 center: 中间位置车次窗 + trainTip:true // 鼠标悬停列车状态信息框是否显示 + }, + trainStatusStyle: { + destinationStatus: [ + { status: '01', showColor: '#FFFFFF' }, + { status: '02', showColor: '#00FF00' }, + { status: '03', showColor: '#A0522D' }, + { status: '04', showColor: '#FFFF00' } + ], // 目的地状态 01准点 02早点 03晚点 04头码车 + defaultDestinationColor: '#FFFFFF', // 默认目的地状态显示颜色 + destinationStatusSetText: 'trainTarget', // 目的地状态设置的对应哪个text的颜色 + directionType: [ + { + type: 1, + lineLShow: false, + lineRShow: true, + arrowLShow: false, + arrowRShow: true + }, + { + type: 0, + lineLShow: true, + lineRShow: false, + arrowLShow: true, + arrowRShow: false + } + ], // 列车运行方向状态类型对应车头显示状态 1从左往右 0从右往左 + directionStopType: [ + { type: 1, lineLShow: false, lineRShow: true }, + { type: 0, lineLShow: true, lineRShow: false } + ], // 列车停止方向类型对应车头显示状态 1从左往右 0从右往左 + driveModeStatus: [ + { + status: 'AM', + trainLColor: '#00FF00', + trainRColor: '#00FF00' + }, + { + status: 'CM', + trainLColor: '#FFFF00', + trainRColor: '#FFFF00' + }, + { + status: 'RM', + trainLColor: '#A0522D', + trainRColor: '#A0522D' + }, + { + status: 'NRM', + trainLColor: '#A0522D', + trainRColor: '#A0522D' + } + ], // 列车运行模式对应车头颜色 ATO自动驾驶模式AM ATP监控下的人工驾驶模式CM 限制人工驾驶模式RM 非限制人工驾驶模式NRM + communicationStatus: [ + {status: 'CBTC', trainColor: '#725A64'}, + {status: 'ITC', trainColor: '#C0C0C0'}, + {status: 'IL', trainColor: '#C0C0C0'} + ], // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL + serverNoType: [ + { type: '01', showColor: '#FFFFFF' }, + { type: '02', showColor: '#FFF000' } + ], // 服务号状态类型 01显示服务号 计划车 02显示车组号: 头码车与人工车 + defaultServerNoColor: '#FFFFFF' // 默认服务号状态显示颜色 + } + }; + this[deviceType.FloodGate] = {}; + this[deviceType.DirectionRod] = {}; + } +} + +export default new SkinCode(); diff --git a/src/jmapNew/shape/Signal/ESigLamp.js b/src/jmapNew/shape/Signal/ESigLamp.js index d21838664..7cc6492a3 100644 --- a/src/jmapNew/shape/Signal/ESigLamp.js +++ b/src/jmapNew/shape/Signal/ESigLamp.js @@ -64,14 +64,14 @@ class ESigLamp extends Group { y: model.originY }, shape: { - x1: model.x + (style.Signal.lamp.radiusR + 1) * Math.cos(Math.PI / 4), - y1: model.y + (style.Signal.lamp.radiusR + 1) * Math.sin(Math.PI / 4), - x2: model.x - (style.Signal.lamp.radiusR + 1) * Math.cos(Math.PI / 4), - y2: model.y - (style.Signal.lamp.radiusR + 1) * Math.sin(Math.PI / 4) + x1: model.x + (style.Signal.lamp.radiusR + 0.5) * Math.cos(Math.PI / 4), + y1: model.y + (style.Signal.lamp.radiusR + 0.5) * Math.sin(Math.PI / 4), + x2: model.x - (style.Signal.lamp.radiusR + 0.5) * Math.cos(Math.PI / 4), + y2: model.y - (style.Signal.lamp.radiusR + 0.5) * Math.sin(Math.PI / 4) }, style: { lineWidth: style.Signal.lamp.stopWidth, - stroke: style.backgroundColor + stroke: style.Signal.xColor || style.backgroundColor } }); this.rstop = new Line({ @@ -84,14 +84,14 @@ class ESigLamp extends Group { y: model.originY }, shape: { - x1: model.x + (style.Signal.lamp.radiusR + 1) * Math.cos(Math.PI / 4), - y1: model.y + (style.Signal.lamp.radiusR + 1) * (Math.sin(Math.PI / 4) - Math.sqrt(2)), - x2: model.x - (style.Signal.lamp.radiusR + 1) * Math.cos(Math.PI / 4), - y2: model.y - (style.Signal.lamp.radiusR + 1) * (Math.sin(Math.PI / 4) - Math.sqrt(2)) + x1: model.x + (style.Signal.lamp.radiusR + 0.5) * Math.cos(Math.PI / 4), + y1: model.y + (style.Signal.lamp.radiusR + 0.5) * (Math.sin(Math.PI / 4) - Math.sqrt(2)), + x2: model.x - (style.Signal.lamp.radiusR + 0.5) * Math.cos(Math.PI / 4), + y2: model.y - (style.Signal.lamp.radiusR + 0.5) * (Math.sin(Math.PI / 4) - Math.sqrt(2)) }, style: { lineWidth: style.Signal.lamp.stopWidth, - stroke: style.backgroundColor + stroke: style.Signal.xColor || style.backgroundColor } }); } diff --git a/src/jmapNew/shape/Station/ESingleControl.js b/src/jmapNew/shape/Station/ESingleControl.js index 3d87a0ec7..68188592d 100644 --- a/src/jmapNew/shape/Station/ESingleControl.js +++ b/src/jmapNew/shape/Station/ESingleControl.js @@ -72,7 +72,7 @@ export default class ESingleControl extends Group { } setTextColor(color) { - if (color) { + if (color && !this.model.style.Station.StationControl.lamp.textColorNoChange) { this.text.setStyle('textFill', color); } } diff --git a/src/jmapNew/shape/StationStand/EEarlyStart.js b/src/jmapNew/shape/StationStand/EEarlyStart.js new file mode 100644 index 000000000..b4921858a --- /dev/null +++ b/src/jmapNew/shape/StationStand/EEarlyStart.js @@ -0,0 +1,76 @@ +import Group from 'zrender/src/container/Group'; +import Text from 'zrender/src/graphic/Text'; + +class EEarlyStart extends Group { + constructor(model) { + super(); + this.model = model; + this.detain = null; + this.isNew = false; + } + + create(deviceParam) { + if (!this.isNew) { + const model = this.model.modelData; + const style = this.model.style; + this.isNew = true; + + /** 提前发车*/ + const startD = model.right ? 1 : -1; + const startX = model.position.x - startD * (deviceParam.offset.x - model.width / 2); + const startY = model.position.y + startD * (deviceParam.offset.y - model.height / 2); + + this.earlyStart = new Text({ + zlevel: this.model.zlevel, + z: this.model.z, + position: [0, 0], + style: { + x: startX, + y: startY, + text: deviceParam.text, + fontSize: deviceParam.fontSize, + fontFamily: style.fontFamily, + fontWeight: deviceParam.fontWeight, + textFill: deviceParam.centerTrainColor, + textStroke: style.backgroundColor, + textAlign: style.textStyle.textAlign, + textVerticalAlign: deviceParam.textVerticalAlign || style.textStyle.textVerticalAlign + } + }); + this.add(this.detain); + } + } + + setColor(color) { + this.detain.setStyle('textFill', color); + } + + recover() { + this.hideMode(); + } + + hideMode() { + this.detain && this.detain.hide(); + } + + showMode(deviceParam) { + this.create(deviceParam); + this.detain && this.detain.show(); + } + + setState(model, deviceParam = this.model.style.StationStand.detainNormal) { + /** 设置扣车*/ + if (model.stationHoldTrain && model.centerHoldTrain) { + this.showMode(deviceParam); + this.setColor(deviceParam.andCenterTrainColor); + } else if (model.stationHoldTrain) { + this.showMode(deviceParam); + this.setColor(deviceParam.detainTrainTextColor); + } else if (model.centerHoldTrain) { + this.showMode(deviceParam); + this.setColor(deviceParam.centerTrainColor); + } + } +} + +export default EDetain; diff --git a/src/jmapNew/shape/StationStand/detain/EDetain.js b/src/jmapNew/shape/StationStand/detain/EDetain.js index b2594f417..9e152d560 100644 --- a/src/jmapNew/shape/StationStand/detain/EDetain.js +++ b/src/jmapNew/shape/StationStand/detain/EDetain.js @@ -37,7 +37,6 @@ class EDetain extends Group { textVerticalAlign: deviceParam.textVerticalAlign || style.textStyle.textVerticalAlign } }); - console.log(this.detain, '************'); this.add(this.detain); } } diff --git a/src/jmapNew/shape/Switch/index.js b/src/jmapNew/shape/Switch/index.js index 501b6d95e..7eeb5e62c 100644 --- a/src/jmapNew/shape/Switch/index.js +++ b/src/jmapNew/shape/Switch/index.js @@ -198,12 +198,12 @@ export default class Switch extends Group { this.add(this.lockRect); this.lockRect.hide(); if (this.style.Switch.arcBlcok || this.style.Switch.interlocking) { - this.lockArc = new ELockArc({ // 单锁圆形 只有宁波线路使用 + this.lockArc = new ELockArc({ // 单锁圆形 只有宁波线路使用 国赛线 zlevel: this.zlevel, z: this.z + 6, x: this.model.intersection.x, y: this.model.intersection.y, - shapeR: 5, + shapeR: this.style.Switch.arcBlcok.shapeR, lineWidth: 1.2, stroke: this.style.Switch.arcBlcok.arcBorderColor, fill: this.style.transparentColor @@ -375,7 +375,7 @@ export default class Switch extends Group { } /** 单锁*/ - setMonolock() { + setMonolock(normalPosition, reversePosition) { if (this.style.Switch.rectLock.monolock) { // 判断单锁矩形是否显示 this.lockRect.show(); if (this.style.Switch.rectLock.rectBorderFillColor) { // 西安二号线 专用显示 @@ -387,7 +387,11 @@ export default class Switch extends Group { } if (this.style.Switch.arcBlcok.show) { // 圆形单锁是否显示 this.lockArc.show(); - this.lockArc.setStyle({ stroke: this.style.Switch.arcBlcok.locationColor }); + if (normalPosition) { + this.lockArc.setStyle({ stroke: this.style.Switch.arcBlcok.locationColor }); + } else if (reversePosition) { + this.lockArc.setStyle({ stroke: this.style.Switch.arcBlcok.inversionColor }); + } } this.model.normalPosition && this.setTextColor(this.style.Switch.text.monolockLocationColor); // 定位 设置道岔名称颜色 this.model.reversePosition && this.setTextColor(this.style.Switch.text.monolockInversionColor); // 反位 设置道岔名称颜色 @@ -522,7 +526,7 @@ export default class Switch extends Group { } model.isCiConfirm && this.setCiConfirm(); // 道岔使能显示 - model.singleLock && this.setMonolock(); // 道岔单锁 + model.singleLock && this.setMonolock(model.normalPosition, model.reversePosition); // 道岔单锁 model.blockade && this.block(); // 道岔封锁 model.singleLock && model.blockade && this.blockMonolock(); // 单锁&锁闭状态 const path = window.location.href; diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index ed8381fb5..8d7a27598 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -3,10 +3,10 @@ export function getBaseUrl() { if (process.env.NODE_ENV === 'development') { // BASE_API = 'https://joylink.club/jlcloud'; // BASE_API = 'https://test.joylink.club/jlcloud'; - BASE_API = 'http://192.168.3.5:9000'; // 袁琪 + // BASE_API = 'http://192.168.3.5:9000'; // 袁琪 // BASE_API = 'http://192.168.3.169:9000'; // 旭强 // BASE_API = 'http://192.168.3.175:9000'; // 张赛 - // BASE_API = 'http://192.168.3.82:9000'; // 杜康 + BASE_API = 'http://192.168.3.82:9008'; // 杜康 // BASE_API = 'http://b29z135112.zicp.vip'; // BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康 // BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛