diff --git a/src/assets/icon/favicon_hls.png b/src/assets/icon/favicon_hls.png new file mode 100644 index 000000000..624eab368 Binary files /dev/null and b/src/assets/icon/favicon_hls.png differ diff --git a/src/assets/icon/link_hls.png b/src/assets/icon/link_hls.png new file mode 100644 index 000000000..18086d7aa Binary files /dev/null and b/src/assets/icon/link_hls.png differ diff --git a/src/i18n/langs/en/map.js b/src/i18n/langs/en/map.js index 2f374b62f..7a34dba2a 100644 --- a/src/i18n/langs/en/map.js +++ b/src/i18n/langs/en/map.js @@ -76,6 +76,7 @@ export default { temporaryLimit: 'temporary speed restriction', lcControl: 'Lc control', image: 'image', + floodGate: 'flood gate', station: 'station', controlMode: 'control mode', platform: 'platform', diff --git a/src/i18n/langs/zh/map.js b/src/i18n/langs/zh/map.js index 5eec4774c..fc0e2b613 100644 --- a/src/i18n/langs/zh/map.js +++ b/src/i18n/langs/zh/map.js @@ -53,6 +53,7 @@ export default { lcControl: 'Lc控制', buttonControl: '按钮', image: '图片', + floodGate: '防淹门', station: '车站', controlMode: '控制模式', platform: '站台', diff --git a/src/jmapNew/config/skinCode/bejing_01.js b/src/jmapNew/config/skinCode/bejing_01.js index 6f6bcb2d9..eaddf5e58 100644 --- a/src/jmapNew/config/skinCode/bejing_01.js +++ b/src/jmapNew/config/skinCode/bejing_01.js @@ -732,6 +732,7 @@ class SkinCode extends defaultStyle { defaultServerNoColor: '#FFFFFF' // 默认服务号状态显示颜色 } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/chengdu_01.js b/src/jmapNew/config/skinCode/chengdu_01.js index 28bdfa2f1..81e3e226b 100644 --- a/src/jmapNew/config/skinCode/chengdu_01.js +++ b/src/jmapNew/config/skinCode/chengdu_01.js @@ -658,6 +658,7 @@ class SkinCode extends defaultStyle { ] // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/chengdu_03.js b/src/jmapNew/config/skinCode/chengdu_03.js index ad443b206..cb37c89b2 100644 --- a/src/jmapNew/config/skinCode/chengdu_03.js +++ b/src/jmapNew/config/skinCode/chengdu_03.js @@ -842,6 +842,7 @@ class SkinCode extends defaultStyle { ] // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/foshan_01.js b/src/jmapNew/config/skinCode/foshan_01.js index 405da2a73..b16d70698 100644 --- a/src/jmapNew/config/skinCode/foshan_01.js +++ b/src/jmapNew/config/skinCode/foshan_01.js @@ -409,7 +409,7 @@ class SkinCode extends defaultStyle { // 延续保护计时 this[deviceType.OverAp] = { - show: false + show: true }; this[deviceType.Switch] = { @@ -686,6 +686,7 @@ class SkinCode extends defaultStyle { serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'} } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/fuzhou_01.js b/src/jmapNew/config/skinCode/fuzhou_01.js index 77b3dca41..98f19ce10 100644 --- a/src/jmapNew/config/skinCode/fuzhou_01.js +++ b/src/jmapNew/config/skinCode/fuzhou_01.js @@ -690,6 +690,7 @@ class SkinCode extends defaultStyle { serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'} } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/haerbin_01.js b/src/jmapNew/config/skinCode/haerbin_01.js index a78f7771f..51ed1aeca 100644 --- a/src/jmapNew/config/skinCode/haerbin_01.js +++ b/src/jmapNew/config/skinCode/haerbin_01.js @@ -421,7 +421,7 @@ class SkinCode extends defaultStyle { }; // 延续保护计时 this[deviceType.OverAp] = { - show: true + show: false }; this[deviceType.Switch] = { @@ -748,6 +748,7 @@ class SkinCode extends defaultStyle { serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'} } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/ningbo_01.js b/src/jmapNew/config/skinCode/ningbo_01.js index fd349a3ac..b0cc2db2d 100644 --- a/src/jmapNew/config/skinCode/ningbo_01.js +++ b/src/jmapNew/config/skinCode/ningbo_01.js @@ -756,6 +756,7 @@ class SkinCode extends defaultStyle { ] // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/ningbo_03.js b/src/jmapNew/config/skinCode/ningbo_03.js index 564d24f45..4e8a4b4cf 100644 --- a/src/jmapNew/config/skinCode/ningbo_03.js +++ b/src/jmapNew/config/skinCode/ningbo_03.js @@ -133,7 +133,11 @@ class SkinCode extends defaultStyle { blockGlint: true // 区段封锁闪烁显示 }, trainPosition:{ - display: false // 列车实时位置显示 + display: true, // 列车实时位置显示 + specialShow: true, // 列车特殊显示 + specialBackground: 'rgba(36, 219, 219, 0.8)', + specialRectWidth: 14, + stopTrainRectWidth: 7 } }; @@ -219,7 +223,11 @@ class SkinCode extends defaultStyle { text: { fontSize: 11, // 字体大小 fontWeight: 'normal', // 字体粗细 - distance: 5 // 灯跟文字距离 + distance: 5, // 灯跟文字距离 + borderShow: true, + borderColor: '#000', + textPadding: [3, 20], + textBorderWidth: 2 }, lamp: { radiusR: 6, // 控制灯大小 @@ -354,10 +362,11 @@ class SkinCode extends defaultStyle { lineWidth: 3, // 站台线宽 spareColor: '#0080C0', // 站台空闲颜色 spareStrokeColor: '#000000', // 站台空闲描边颜色 - openStrokeColor: '#00FF00', // 站台开门描边颜色 + doorOpenColor:'#00FF00', // 车门开启状态颜色 stopColor: 'yellow', // 站台列车停站颜色 - jumpStopColor: '#6260f3', // 站台跳停颜色 - designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色 + jumpStopColor: '#C00000', // 站台跳停颜色 + designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色 + virtualColor: '#585858' // 虚拟站台颜色 }, standEmergent: { // 紧急关闭 mergentR: 4, // 站台紧急关闭半径 @@ -371,11 +380,12 @@ class SkinCode extends defaultStyle { position: 1, // 扣车标识在站台上显示方向 text: 'H', // 扣车显示内容 offset: { x: -8, y: 10 }, // 扣车偏移量 - centerTrainColor: 'white', // 中心扣车颜色 - andCenterTrainColor: 'red', // 车站+中心扣车颜色 - detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色 + centerTrainColor: '#00FF00', // 中心扣车颜色 + andCenterTrainColor: '#00FF00', // 车站+中心扣车颜色 + detainTrainTextColor: '#FFFF00', // 车站扣除文字颜色 fontSize: 10, - fontWeight: 'normal' + fontWeight: 'normal', + specialShape: 'rect' // 扣车标志形状 }, stopTime: { // 停站时间 offset: { x: -8, y: 4 }, // 运行时间偏移量 @@ -614,12 +624,12 @@ class SkinCode extends defaultStyle { ], // 特殊列车类型需设置显示格式 lrPadding: 4, // 两边间隔 upPadding: 4, // 上边距离 - trainSidelineColor: '#ABFE9B', - trainBodyFillColor: '#A388B1', // 列车车身填充颜色 + trainSidelineColor: 'rgba(0,0,0,0)', + trainBodyFillColor: 'rgba(0,0,0,0)', // 列车车身填充颜色 trainNameFormat: 'serviceNumber:tripNumber:targetCode'// 列车显示格式 }, directionArrow: { - hasArrow: true, + hasArrow: false, width: 6, radiusR: 4, fillColor: '#00FF00', @@ -638,6 +648,8 @@ class SkinCode extends defaultStyle { trainNumber: { targetCodePrefix: '00', // 目的地码前缀 defaultTargetCode: 'DD', // 默认目的地码 + fontColor: '#000', + fontSize: 10, trainTargetTextAlign: 'left', // 目的地码文字显示位置 trainNumberOffset: { x: 36, y: 4 }, // 目的地码偏移量 headTypeColor: '#1CBAFD', // 头码车目的地号显示颜色 @@ -645,12 +657,16 @@ class SkinCode extends defaultStyle { }, trainServer: { serviceNumberPrefix: '000', // 服务号(表号)前缀 + fontColor: '#000', + fontSize: 10, defaultServiceNumber: 'TTT', // 默认服务号(表号) - defaultServerNoColor: '#FFFFFF', // 默认服务号状态显示颜色 + defaultServerNoColor: '#000', // 默认服务号状态显示颜色 trainServerOffset: { x: 4, y: 4 } // 列车服务号偏移 }, trainTarget: { tripNumberPrefix: '00', // 车次号前缀 + fontColor: '#000', + fontSize: 10, defaultTripNumber: 'DD', // 默认车次号2 trainTargetOffset: { x: 24, y: 4 }, // 列车车次号偏移 trainTargetTextAlign: 'right' // 车次号文字显示位置 @@ -664,13 +680,13 @@ class SkinCode extends defaultStyle { maskText: '0' // 车组号遮罩 }, trainHead: { - trainConntWidth: 2, // 列车竖杠的宽度 + trainConntWidth: 0, // 列车竖杠的宽度 trainHeadFillColor: '#000000', // 列车车头矩形填充颜色 trainHeadRectHeight: 20, // 列车车头矩形高度 directionStopType:'normal', // special 西安二号线 停车 列车方向图标不消失 normal 正常 trainHeadHeight: 'trainBox', // 列车车头高度取决于trainBox高度 - trainHeadArrowWidth: 5, // 列车车头三角宽度 - trainHeadArrowOffsetX: 4 // 列车车头三角偏移 + trainHeadArrowWidth: 0, // 列车车头三角宽度 + trainHeadArrowOffsetX: 0 // 列车车头三角偏移 }, common: { trainHeight: 20, // 列车高度 @@ -678,7 +694,7 @@ class SkinCode extends defaultStyle { trainWidth: 70, // 列车长度 trainTextFontSize: 16, // 列车字号 fontFamily: 'consolas', // 默认字体 族类 - haveTextHSDA: true, // 是否需创建textHSDA对象 + haveTextHSDA: false, // 是否需创建textHSDA对象 haveArrowText: true, // 是否需创建arrowText对象 textOffset: 4, // 字体偏移(用以控制字体据车头的距离) trainWidthMoreText: 8, // 计算列车长度时--列车长比text多出尺寸 @@ -687,7 +703,7 @@ class SkinCode extends defaultStyle { trainTip:false // 鼠标悬停列车状态信息框是否显示 }, mouseOverStyle:{ - borderLineColor: '#FFFFFF', + borderLineColor: 'rgba(0,0,0,0)', borderLineDash: [3, 3], leftOffset:30, rightOffset:30 @@ -779,6 +795,15 @@ class SkinCode extends defaultStyle { ] // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL } }; + this[deviceType.FloodGate] = { + displayCondition: '01', // 显示条件 (01所有模式下显示 02 行调显示 03现地显示) + lineWidth: 2, // 防淹门描边宽度 + spareStrokeColor: '#000', // 打开并锁闭-非打开并锁闭描边颜色 + spareFillColor: 'rgba(0, 0, 0, 0)', // 打开并锁闭填充颜色 + closeFillColor: '#C10000', // 非打开并锁闭填充颜色 + allowCloseFillColor: '#FF0000', // 允许关门填充颜色 + allowCLoseStrokeColor: '#FFFF00' // 允许关门描边颜色 + }; } } diff --git a/src/jmapNew/config/skinCode/xian_01.js b/src/jmapNew/config/skinCode/xian_01.js index 12b3df026..f3b5408ba 100644 --- a/src/jmapNew/config/skinCode/xian_01.js +++ b/src/jmapNew/config/skinCode/xian_01.js @@ -748,6 +748,7 @@ class SkinCode extends defaultStyle { serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'} } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/config/skinCode/xian_02.js b/src/jmapNew/config/skinCode/xian_02.js index 47fee0474..e963637ca 100644 --- a/src/jmapNew/config/skinCode/xian_02.js +++ b/src/jmapNew/config/skinCode/xian_02.js @@ -288,7 +288,7 @@ class SkinCode extends defaultStyle { fontWeight: 'normal', circleWidth:14, // 西安二号线特殊样式 圆圈的宽度 defaultColor:'#808080', // 默认颜色 - special:true // 西安二号线特殊样式 + specialShape: 'circle' // 西安二号线特殊样式 }, stopTime: { // 停站时间 position: 1, // 停站时间方向 @@ -828,6 +828,7 @@ class SkinCode extends defaultStyle { ] // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL } }; + this[deviceType.FloodGate] = {}; } } diff --git a/src/jmapNew/constant/deviceRender.js b/src/jmapNew/constant/deviceRender.js index 8dd6ddd85..34e61a9e1 100644 --- a/src/jmapNew/constant/deviceRender.js +++ b/src/jmapNew/constant/deviceRender.js @@ -260,4 +260,8 @@ deviceRender[deviceType.OverAp] = { _type: deviceType.OverAp, zlevel: 1 }; +deviceRender[deviceType.FloodGate] = { + _type: deviceType.FloodGate, + zlevel: 1 +}; export default deviceRender; diff --git a/src/jmapNew/constant/deviceState.js b/src/jmapNew/constant/deviceState.js index fc28859b7..9522060aa 100644 --- a/src/jmapNew/constant/deviceState.js +++ b/src/jmapNew/constant/deviceState.js @@ -136,7 +136,9 @@ deviceState[deviceType.StationStand] = { /** 是否故障*/ fault: 0 /** 非故障*/ }; - +deviceState[deviceType.FloodGate] = { + /** 防淹门状态 */ +}; deviceState[deviceType.Train] = { // /** 列车类型*/ // type: { diff --git a/src/jmapNew/constant/deviceType.js b/src/jmapNew/constant/deviceType.js index b4a2810be..3e5ff24fb 100644 --- a/src/jmapNew/constant/deviceType.js +++ b/src/jmapNew/constant/deviceType.js @@ -45,7 +45,8 @@ const deviceType = { Arrow: 'Arrow', Power: 'Power', StationTurnBack: 'StationTurnBack', - OverAp: 'OverAp' + OverAp: 'OverAp', + FloodGate: 'FloodGate' }; export default deviceType; diff --git a/src/jmapNew/constant/stateTransition.js b/src/jmapNew/constant/stateTransition.js index 0a4c620a7..5e1b95c15 100644 --- a/src/jmapNew/constant/stateTransition.js +++ b/src/jmapNew/constant/stateTransition.js @@ -121,6 +121,9 @@ class Status { handleStationTurnBack(device) { this.statusObj = { }; } + handleFloodGate(device) { + this.statusObj = { }; + } getStatus() { return this.statusObj; } diff --git a/src/jmapNew/mouseController.js b/src/jmapNew/mouseController.js index e7b560c44..eb18bcbd7 100644 --- a/src/jmapNew/mouseController.js +++ b/src/jmapNew/mouseController.js @@ -164,7 +164,6 @@ class MouseController extends Eventful { click(e) { var em = this.checkEvent(e); - // console.log(e, em, '===='); this.trigger(this.events.Selected, em); } diff --git a/src/jmapNew/shape/FloodGate/index.js b/src/jmapNew/shape/FloodGate/index.js new file mode 100644 index 000000000..9457a382d --- /dev/null +++ b/src/jmapNew/shape/FloodGate/index.js @@ -0,0 +1,84 @@ +/* +* 防淹门 +*/ +import Group from 'zrender/src/container/Group'; +import Rect from 'zrender/src/graphic/shape/Rect'; +import {isShowThePrdType} from '../../utils/handlePath'; + +export default class FloodGate extends Group { + constructor(model, style) { + super(); + this.z = 20; + this._code = model.code; + this._type = model._type; + this.zlevel = model.zlevel; + this.z = model.z; + this.model = model; + this.style = style; + this.isShowShape = true; + if (isShowThePrdType(model.prdType, style.FloodGate.displayCondition) || model.previewOrMapDraw) { + this.create(); + this.createMouseEvent(); + this.setState(model); + } + if (model.previewOrMapDraw) { + this.setShowMode(); + } + } + + create() { + this.floodGate = new Rect({ + zlevel: this.zlevel, + z: this.z, + shape: { + x: this.model.position.x, + y: this.model.position.y, + width: this.model.width, + height: this.model.height + }, + style: { + lineWidth: this.style.FloodGate.lineWidth, + stroke: this.style.FloodGate.spareStrokeColor, + fill: this.style.FloodGate.spareFillColor + } + }); + this.add(this.floodGate); + } + recover() { + this.floodGate.setStyle({ stroke: this.style.FloodGate.spareStrokeColor, fill: this.style.FloodGate.spareFillColor }); + } + // 设置状态 + setState(model) { + if (!this.isShowShape) return; + this.recover(); + } + + createMouseEvent() { + } + + setShowMode() { + const showMode = this.model.showMode; + const showConditions = this.style.FloodGate.displayCondition; + if (!showConditions || showConditions === '01' || showMode === showConditions) { + this.showMode(); + } else { + this.hideMode(); + } + } + setShowStation(stationCode) { + if (!stationCode || this.model.stationCode === stationCode) { + this.isShowShape = true; + this.showMode(); + } else { + this.isShowShape = false; + this.hideMode(); + } + } + showMode() { + this.floodGate && this.floodGate.show(); + this.setState(this.model); + } + hideMode() { + this.floodGate && this.floodGate.hide(); + } +} diff --git a/src/jmapNew/shape/Section/ELines.js b/src/jmapNew/shape/Section/ELines.js index cdb9f0548..bf3bcb59c 100644 --- a/src/jmapNew/shape/Section/ELines.js +++ b/src/jmapNew/shape/Section/ELines.js @@ -137,10 +137,11 @@ export default class ELines extends Group { }); } show() { - this.eachChild((child) => { - // console.log(child); - child.show(); - }); + // this.eachChild((child) => { + // // console.log(child); + // child.show(); + // }); + this.section && this.section.show(); } animateStyle(loop, animates) { @@ -180,15 +181,6 @@ export default class ELines extends Group { } getBoundingRect() { - // if (this.model.isCurve) { return this.section.getBoundingRect().clone(); - // } else { - // return this.section.getBoundingRect().clone(); - // const rect = this.sections[0].getBoundingRect(); - // this.sections.forEach(section => { - // rect.union(section.getBoundingRect().clone()); - // }); - // return rect; - // } } } diff --git a/src/jmapNew/shape/Station/index.js b/src/jmapNew/shape/Station/index.js index 2fd2fbd8f..450a8f1bb 100644 --- a/src/jmapNew/shape/Station/index.js +++ b/src/jmapNew/shape/Station/index.js @@ -52,9 +52,9 @@ export default class Station extends Group { if (style.Station.text.borderShow) { // 哈尔滨线路单独显示 this.stationText.attr({ style: { - textPadding: [2, 6], - textBorderColor: model.nameFontColor, - textBorderWidth: 1 + textPadding: style.Station.text.textPadding || [2, 6], + textBorderColor: style.Station.text.borderColor || model.nameFontColor, + textBorderWidth: style.Station.text.textBorderWidth || 1 } }); } diff --git a/src/jmapNew/shape/StationStand/EDetainRect.js b/src/jmapNew/shape/StationStand/EDetainRect.js new file mode 100644 index 000000000..646076e17 --- /dev/null +++ b/src/jmapNew/shape/StationStand/EDetainRect.js @@ -0,0 +1,54 @@ +import Group from 'zrender/src/container/Group'; +import Rect from 'zrender/src/graphic/shape/Rect'; + +class EDetainCircle extends Group { + constructor(model) { + super(); + this.model = model; + this.create(); + } + + create() { + const model = this.model; + const style = this.model.style; + let y; + if (model.right && model.inside) { + y = model.y + model.height / 2; + } else if (model.right && !model.inside) { + y = model.y; + } else if (!model.right && model.inside) { + y = model.y; + } else if (!model.right && !model.inside) { + y = model.y + model.height / 2; + } + this.detainRect = new Rect({ + zlevel: model.zlevel, + z: model.z + 1, + shape: { + x: model.x, + y: y, + width: model.width, + height: model.height / 2 + }, + style: { + lineWidth: style.StationStand.stand.lineWidth || 0, + stroke: style.StationStand.stand.spareStrokeColor, + fill: '#000' + } + }); + this.add(this.detainRect); + this.detainRect.hide(); + } + + setColor(color) { + this.detainRect.setStyle('stroke', color); + } + setShow() { + this.detainRect.show(); + } + setHide() { + this.detainRect.hide(); + } +} + +export default EDetainCircle; diff --git a/src/jmapNew/shape/StationStand/index.js b/src/jmapNew/shape/StationStand/index.js index c7826cd3c..b8df25b3d 100644 --- a/src/jmapNew/shape/StationStand/index.js +++ b/src/jmapNew/shape/StationStand/index.js @@ -12,6 +12,7 @@ import ETrainStop from './ETrainStop'; import ETrainDepart from './ETrainDepart'; import EControl from '../element/EControl'; import EDetainCircle from './EDetainCircle'; +import EDetainRect from './EDetainRect'; import EPatternFilter from './EPatternFilter'; import {isShowThePrdType} from '../../utils/handlePath'; @@ -148,7 +149,7 @@ class StationStand extends Group { this.add(this.reentry); } - if (style.StationStand.detainCar.special) { + if (style.StationStand.detainCar.specialShape === 'circle') { const detainD = model.right ? 1 : -1; this.detainCircle = new EDetainCircle({ zlevel: this.zlevel, @@ -159,6 +160,19 @@ class StationStand extends Group { 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; @@ -381,6 +395,7 @@ class StationStand extends Group { 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(); } /** 空闲*/ @@ -402,7 +417,7 @@ class StationStand extends Group { /** 车门开启 */ doorOpen() { - if (this.style.StationStand.common.standType && this.style.StationStand.common.standType == 'notFill') { + if (this.style.StationStand.stand.doorOpenColor) { this.safeStand && this.safeStand.setColor(this.style.StationStand.stand.doorOpenColor); } } @@ -439,6 +454,8 @@ class StationStand extends Group { this.detain && this.detain.showMode(); this.detain && this.detain.setColor(this.style.StationStand.detainCar.detainTrainTextColor); this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.centerTrainColor); + this.detainRect && this.detainRect.setShow(); + this.detainRect && this.detainRect.setColor(this.style.StationStand.detainCar.detainTrainTextColor); } /** 中心扣车*/ @@ -446,6 +463,8 @@ class StationStand extends Group { this.detain && this.detain.showMode(); this.detain && this.detain.setColor(this.style.StationStand.detainCar.centerTrainColor); this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.centerTrainColor); + this.detainRect && this.detainRect.setShow(); + this.detainRect && this.detainRect.setColor(this.style.StationStand.detainCar.centerTrainColor); } /** 中心+车站扣车*/ @@ -453,6 +472,8 @@ class StationStand extends Group { this.detain && this.detain.showMode(); this.detain && this.detain.setColor(this.style.StationStand.detainCar.andCenterTrainColor); this.detainCircle && this.detainCircle.setColor(this.style.StationStand.detainCar.centerTrainColor); + this.detainRect && this.detainRect.setShow(); + this.detainRect && this.detainRect.setColor(this.style.StationStand.detainCar.centerTrainColor); } /** 人工设置停战时间*/ diff --git a/src/jmapNew/shape/Train/EMouse.js b/src/jmapNew/shape/Train/EMouse.js index d39723bfa..91b623f9c 100644 --- a/src/jmapNew/shape/Train/EMouse.js +++ b/src/jmapNew/shape/Train/EMouse.js @@ -82,10 +82,10 @@ class EMouse extends Group { z: this.device.model.z + 10, silent: true, shape: { - x:rect.x - 30, - y:rect.y, - width:rect.width + 60, - height:rect.height + x: rect.x - 30, + y: rect.y, + width: rect.width + 60, + height: rect.height }, style: { lineDash: [3, 3], diff --git a/src/jmapNew/shape/Train/ETriangle.js b/src/jmapNew/shape/Train/ETriangle.js index f658cb6bc..93f46425a 100644 --- a/src/jmapNew/shape/Train/ETriangle.js +++ b/src/jmapNew/shape/Train/ETriangle.js @@ -1,5 +1,6 @@ import Group from 'zrender/src/container/Group'; import Polygon from 'zrender/src/graphic/shape/Polygon'; +import Rect from 'zrender/src/graphic/shape/Rect'; /** 创建三角形*/ export default class ETriangle extends Group { @@ -7,6 +8,7 @@ export default class ETriangle extends Group { super(); this.model = model; this.zlevel = model.zlevel; + this.style = model.style; this.z = model.z; this.create(model); } @@ -14,38 +16,153 @@ export default class ETriangle extends Group { create(model) { if (model && model.point) { const right = model.right == 1 ? 1 : -1; - this.angle = new Polygon({ - zlevel: model.zlevel, - z: model.z, - shape: { - points:[[model.point.x + 10 * right, model.point.y], [model.point.x, model.point.y - 6], [model.point.x, model.point.y + 6]] - }, - style: { - stroke:'#00FF00', - lineWidth: 0.5, - fill: '#00FF00' - } - }); - this.add(this.angle); + if (this.style.Section.trainPosition.specialShow) { + this.stopRect = new Rect({ // 停车标识 + zlevel: model.zlevel, + z: model.z, + shape: { + x: model.point.x - this.style.Section.trainPosition.stopTrainRectWidth, + y: model.point.y - this.style.Section.line.width / 4, + width: this.style.Section.trainPosition.stopTrainRectWidth, + height: this.style.Section.line.width - 2 + }, + style: { + lineWidth: 0, + fill: 'rgba(26, 54, 88, 0.7)' + } + }); + this.angle1 = new Rect({ + zlevel: model.zlevel, + z: model.z, + shape: { + x: model.point.x - this.style.Section.trainPosition.specialRectWidth, + y: model.point.y - this.style.Section.line.width / 2, + width: this.style.Section.trainPosition.specialRectWidth, + height: this.style.Section.line.width + 2 + }, + style: { + lineWidth: 0, + fill: this.style.Section.trainPosition.specialBackground + }, + cursor: 'pointer' + }); + this.angle = new Polygon({ + zlevel: model.zlevel, + z: model.z, + shape: { + points:[ + [model.point.x + 5 * right, model.point.y + 1], + [model.point.x, model.point.y - this.style.Section.line.width / 2], + [model.point.x, model.point.y + this.style.Section.line.width / 2 + 2] + ] + }, + style: { + // stroke:'#00FF00', + lineWidth: 0, + fill: this.style.Section.trainPosition.specialBackground + } + }); + this.add(this.angle1); + this.add(this.angle); + this.add(this.stopRect); + this.stopRect.hide(); + } else { + this.angle = new Polygon({ + zlevel: model.zlevel, + z: model.z, + shape: { + points:[[model.point.x + 10 * right, model.point.y], [model.point.x, model.point.y - 6], [model.point.x, model.point.y + 6]] + }, + style: { + stroke:'#00FF00', + lineWidth: 0.5, + fill: '#00FF00' + } + }); + this.add(this.angle); + } } } - updateTriangle(model, right) { - const trainRight = right == 1 ? 1 : -1; - const data = [[model.x + 10 * trainRight, model.y], [model.x, model.y - 6], [model.x, model.y + 6]]; - // this.angle.shape.points.push([model.x + 10 * trainRight, model.y]); - // this.angle.attr('shape', { points: this.angle.shape.points }); - this.angle.attr({ - shape: { - points:data + updateTriangle(model, right, trainB) { + if (this.angle) { + const trainRight = right == 1 ? 1 : -1; + let data = [ + [model.x + 10 * trainRight, model.y], + [model.x, model.y - 6], + [model.x, model.y + 6] + ]; + if (this.style.Section.trainPosition.specialShow) { + data = [ + [model.x + 5 * trainRight, model.y + 1], + [model.x, model.y - this.style.Section.line.width / 2], + [model.x, model.y + this.style.Section.line.width / 2 + 2] + ]; } - }); - this.angle.animateTo({ - shape: { - points:data + this.angle.attr({ + shape: { + points:data + } + }); + this.angle.animateTo({ + shape: { + points:data + } + }, 10, 0, 'elasticOut', function () { + }); + this.angle.dirty(); + } + if (this.angle1) { + let trainRight = model.x; + if (right == 1) { + trainRight = model.x - this.style.Section.trainPosition.specialRectWidth; } - }, 10, 0, 'elasticOut', function () { - }); - this.dirty(); + const pointsData = { + x: trainRight, + y: model.y - this.style.Section.line.width / 2, + width: this.style.Section.trainPosition.specialRectWidth, + height: this.style.Section.line.width + 2 + }; + this.angle1.attr({ + shape: pointsData + }); + this.angle1.animateTo({ + shape: pointsData + }, 10, 0, 'elasticOut', function () { + }); + this.angle1.dirty(); + } + if (this.stopRect) { + const offset = (this.style.Section.trainPosition.specialRectWidth - this.style.Section.trainPosition.stopTrainRectWidth) / 2; + let trainRight = model.x + offset; + if (right == 1) { + trainRight = model.x - offset - this.style.Section.trainPosition.stopTrainRectWidth; + } + const pointsData = { + x: trainRight, + y: model.y - this.style.Section.line.width / 4, + width: this.style.Section.trainPosition.stopTrainRectWidth, + height: this.style.Section.line.width - 2 + }; + this.stopRect.attr({ + shape: pointsData + }); + this.stopRect.animateTo({ + shape: pointsData + }, 10, 0, 'elasticOut', function () { + }); + this.stopRect.dirty(); + } + if (this.style.Section.trainPosition.specialShow) { + trainB.setPositionText(model, right); + } + } + + setStopShow(flag) { + if (flag) { + this.stopRect && this.stopRect.show(); + } else { + this.stopRect && this.stopRect.hide(); + } } } diff --git a/src/jmapNew/shape/Train/TrainBody.js b/src/jmapNew/shape/Train/TrainBody.js index 69f8d00dc..036ce8f73 100644 --- a/src/jmapNew/shape/Train/TrainBody.js +++ b/src/jmapNew/shape/Train/TrainBody.js @@ -53,7 +53,7 @@ export default class TrainBody extends Group { y: parseInt(model.point.y + style.Train.trainServer.trainServerOffset.y), text: serviceNumber.substring(serviceNumber.length - style.Train.trainServer.serviceNumberPrefix.length), textFill: model.style.Train.trainServer.fontColor || style.trainTextColor, - fontSize: model.fontSize, + fontSize: model.style.Train.trainServer.fontSize || model.fontSize, fontFamily: style.Train.common.fontFamily, textAlign: 'left', textVerticalAlign: 'top' @@ -66,7 +66,7 @@ export default class TrainBody extends Group { y: parseInt(model.point.y + model.style.Train.trainTarget.trainTargetOffset.y), text: tripNumber.substring(tripNumber.length - style.Train.trainTarget.tripNumberPrefix.length), textFill: model.style.Train.trainTarget.fontColor || style.trainTextColor, - fontSize: model.fontSize, + fontSize: model.style.Train.trainTarget.fontSize || model.fontSize, fontFamily: style.Train.common.fontFamily, textAlign: 'left', textVerticalAlign: 'top' @@ -80,7 +80,7 @@ export default class TrainBody extends Group { textFill: model.style.Train.trainNumber.fontColor || style.trainTextColor, textStroke: style.trainTextColor, textStrokeWidth: 0, - fontSize: model.fontSize, + fontSize: model.style.Train.trainNumber.fontSize || model.fontSize, fontFamily: style.Train.common.fontFamily, textAlign: 'left', textVerticalAlign: 'top' @@ -401,4 +401,61 @@ export default class TrainBody extends Group { } } } + setPositionText(model, right) { + let widthText = 0; + let point = { + x: model.x - 10, + y: model.y + }; + if (right == 1) { + point = { + x: model.x - 20, + y: model.y + }; + } + if (this.textTrainTarget) { + this.textTrainTarget.attr({ + style: { + x: parseInt(point.x + widthText), + y: parseInt(point.y - this.style.Section.line.width), + textVerticalAlign: 'middle' + } + }); + widthText += this.textTrainTarget.getBoundingRect().width; + this.textTrainTarget.dirty(); + } + if (this.textTrainServer) { + this.textTrainServer.attr({ + style: { + x: parseInt(point.x + widthText), + y: parseInt(point.y - this.style.Section.line.width), + textVerticalAlign: 'middle' + } + }); + widthText += this.textTrainServer.getBoundingRect().width; + this.textTrainServer.dirty(); + } + if (this.textTrainTrip) { + this.textTrainTrip.attr({ + style: { + x: parseInt(point.x + widthText), + y: parseInt(point.y - this.style.Section.line.width), + textVerticalAlign: 'middle' + } + }); + widthText += this.textTrainTrip.getBoundingRect().width; + this.textTrainTrip.dirty(); + } + if (this.textTrainGroup) { + this.textTrainGroup.attr({ + style: { + x: parseInt(point.x + widthText), + y: parseInt(point.y - this.style.Section.line.width), + textVerticalAlign: 'middle' + } + }); + widthText += this.textTrainGroup.getBoundingRect().width; + this.textTrainGroup.dirty(); + } + } } diff --git a/src/jmapNew/shape/Train/TrainBodyBox.js b/src/jmapNew/shape/Train/TrainBodyBox.js index 2deca880d..8a3ebf691 100644 --- a/src/jmapNew/shape/Train/TrainBodyBox.js +++ b/src/jmapNew/shape/Train/TrainBodyBox.js @@ -1,6 +1,6 @@ import Group from 'zrender/src/container/Group'; import Rect from 'zrender/src/graphic/shape/Rect'; -import BoundingRect from 'zrender/src/core/BoundingRect'; +// import BoundingRect from 'zrender/src/core/BoundingRect'; export default class TrainBodyBox extends Group { constructor(model) { diff --git a/src/jmapNew/shape/Train/index.js b/src/jmapNew/shape/Train/index.js index 56654d4c0..55913cfa3 100644 --- a/src/jmapNew/shape/Train/index.js +++ b/src/jmapNew/shape/Train/index.js @@ -60,6 +60,7 @@ export default class Train extends Group { this._computed(); const model = this.model; const style = this.style; + if (this.point) { this.trainB = new TrainBody({ zlevel: this.zlevel, @@ -153,6 +154,7 @@ export default class Train extends Group { right: this.model.right, point: { x: this.startX, y: this.startY } }); + this.add(this.triangle); } @@ -193,7 +195,7 @@ export default class Train extends Group { }); const point = { x: this.startX, y: this.startY }; this.triangle.point = point; - this.triangle.updateTriangle(point, train.right); + this.triangle.updateTriangle(point, train.right, this.trainB); this.triangle.dirty(); } } @@ -230,6 +232,7 @@ export default class Train extends Group { this.trainL && this.trainL.setArrowShow(arrowLShow); this.trainR && this.trainR.setLineShow(lineRShow); this.trainR && this.trainR.setArrowShow(arrowRShow); + this.triangle && this.triangle.setStopShow(false); // 运行 return true; } }); @@ -246,6 +249,7 @@ export default class Train extends Group { } else { this.trainL && this.trainL.setLineShow(item.lineLShow); this.trainR && this.trainR.setLineShow(item.lineRShow); + this.triangle && this.triangle.setStopShow(true); // 停车 } return true; } diff --git a/src/jmapNew/shape/factory.js b/src/jmapNew/shape/factory.js index 0549d0df9..57b055926 100644 --- a/src/jmapNew/shape/factory.js +++ b/src/jmapNew/shape/factory.js @@ -27,6 +27,7 @@ import Arrow from './Arrow/index'; import Power from './Power/index'; import StationTurnBack from './StationTurnBack/index'; import OverAp from './OverAp/index.js'; +import FloodGate from './FloodGate/index'; /** 图库*/ const mapShape = {}; @@ -75,6 +76,7 @@ mapShape[deviceType.Arrow] = Arrow; mapShape[deviceType.Power] = Power; mapShape[deviceType.StationTurnBack] = StationTurnBack; mapShape[deviceType.OverAp] = OverAp; +mapShape[deviceType.FloodGate] = FloodGate; function shapefactory(device, jmap) { const type = device._type; diff --git a/src/jmapNew/theme/factory.js b/src/jmapNew/theme/factory.js index 9ae66e4de..1dc7346e6 100644 --- a/src/jmapNew/theme/factory.js +++ b/src/jmapNew/theme/factory.js @@ -3,6 +3,7 @@ class Theme { this._code = '02'; this._mapMenu = { '01': 'chengdu_01', + // '01': 'ningbo_03', '02': 'fuzhou_01', '03': 'beijing_01', '04': 'chengdu_03', diff --git a/src/jmapNew/theme/ningbo_03/menus/menuBar.vue b/src/jmapNew/theme/ningbo_03/menus/menuBar.vue index 2f982d957..e822ffa9d 100644 --- a/src/jmapNew/theme/ningbo_03/menus/menuBar.vue +++ b/src/jmapNew/theme/ningbo_03/menus/menuBar.vue @@ -95,6 +95,7 @@ + diff --git a/src/jmapNew/utils/parser.js b/src/jmapNew/utils/parser.js index d8e53c5cd..4db325525 100644 --- a/src/jmapNew/utils/parser.js +++ b/src/jmapNew/utils/parser.js @@ -226,6 +226,10 @@ export function parser(data, skinCode, showConfig) { } } }, this); + + zrUtil.each(data.floodGateList || [], elem=> { + mapDevice[elem.code] = createDevice(deviceType.FloodGate, elem, propConvert, showConfig); + }, this); } return mapDevice; @@ -296,6 +300,7 @@ export function updateMapData(state, model) { case deviceType.Arrow: updateForList(model, state, 'arrowList'); break; case deviceType.Power: updateForList(model, state, 'powerLineList'); break; case deviceType.StationTurnBack : updateForList(model, state, 'tbStrategyList'); break; + case deviceType.FloodGate: updateForList(model, state, 'floodGateList'); break; } } } diff --git a/src/scripts/ProjectConfig.js b/src/scripts/ProjectConfig.js index 313b7de17..05e0b3de3 100644 --- a/src/scripts/ProjectConfig.js +++ b/src/scripts/ProjectConfig.js @@ -5,6 +5,7 @@ import FaviconGzb from '@/assets/icon/favicon_gzb.png'; import FaviconHeb from '@/assets/icon/favicon_hyd.png'; import FaviconXadt from '@/assets/icon/favicon_xas.png'; import FaviconJyd from '@/assets/icon/favicon_jyd.png'; +import FaviconHls from '@/assets/icon/favicon_hls.png'; import Bottom_Jyd from '@/assets/icon/bottom_jyd.png'; import Link_Jyd from '@/assets/icon/link_jyd.png'; import FaviconTky from '@/assets/icon/favicon_tky.png'; @@ -12,6 +13,7 @@ import FaviconBxkc from '@/assets/icon/favicon_bxkc.png'; import FaviconCrsc from '@/assets/icon/favicon_crsc.png'; import Link_Bxkc from '@/assets/icon/link_bxkc.png'; import Link_Crsc from '@/assets/icon/link_crsc.png'; +import Link_Hls from '@/assets/icon/link_hls.png'; // title:页面title; loginPath:退出登录跳转路径; loginParam:登录接口参数project;loginTitle:登录页左上角title;logoWidth:登录页左上角logo宽度; // homeTitle:导航栏title(没有采用title); browserTitle:浏览器窗口title;bottomColumn:底部栏描述;bottomIcon:底部栏Icon;linkIcon:浏览器窗口icon(没有采用ProjectIcon) @@ -211,7 +213,7 @@ export const loginInfo = { }, crsc: { title: '城市轨道交通实训平台', - loginPath: '/login?project=xagy', + loginPath: '/login?project=crsc', loginTitle: '空串', logoWidth: '600px', bottomIcon: FaviconCrsc, @@ -225,7 +227,7 @@ export const loginInfo = { }, designcrsc: { title: '城市轨道交通设计平台', - loginPath: '/design/login?project=xagy', + loginPath: '/design/login?project=crsc', loginTitle: '空串', logoWidth: '600px', bottomIcon: FaviconCrsc, @@ -236,6 +238,30 @@ export const loginInfo = { navigationLogoWidth: '100px', navigationMarginLeft: '125px', systemType: '011' + }, + hls: { + title: '城市轨道交通实训平台', + loginPath: '/login?project=hls', + loginTitle: '空串', + logoWidth: '300px', + linkIcon: Link_Hls, + bottomColumn: '北京和利时系统工程有限公司', + loginParam: 'DEFAULT', + navigationLogoWidth: '180px', + navigationMarginLeft: '195px', + systemType: '011' + }, + designhls: { + title: '城市轨道交通设计平台', + loginPath: '/design/login?project=hls', + loginTitle: '空串', + logoWidth: '300px', + linkIcon: Link_Hls, + bottomColumn: '北京和利时系统工程有限公司', + loginParam: 'DEFAULT', + navigationLogoWidth: '180px', + navigationMarginLeft: '195px', + systemType: '011' } }; @@ -259,7 +285,9 @@ export const ProjectIcon = { bxkc: FaviconBxkc, designbxkc: FaviconBxkc, crsc: FaviconCrsc, - designcrsc: FaviconCrsc + designcrsc: FaviconCrsc, + hls: FaviconHls, + designhls: FaviconHls }; export const ProjectCode = { @@ -272,13 +300,13 @@ export const ProjectCode = { xadt: 'XADT', designxadt: 'XADT' }; -export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc']; // 底部栏仅展示公司信息不展示备案号 +export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls']; // 底部栏仅展示公司信息不展示备案号 export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb']; // 实训设计平台通过项目code获取地图列表的项目 export const CaseHideProjectList = ['heb', 'designheb']; // 案例展示隐藏的项目 export const VersionBaseNoShow = ['heb', 'designheb']; // 登录页右下角版本开发基于不展示 -export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc']; // 登录页右下角主体不展示 +export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls']; // 登录页右下角主体不展示 export const GenerateRouteProjectList = ['jsxt', 'refereeJsxt'];// 需要在公共路由中生成登录页面的项目 -export const ProjectLoginStyleList = ['jsxt', 'refereeJsxt', 'gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc']; // 登录页样式 +export const ProjectLoginStyleList = ['jsxt', 'refereeJsxt', 'gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls']; // 登录页样式 export const NoQrcodeList = ['heb', 'designheb']; export const goOtherPlatformMenu = { // 导航栏快速切换平台 login: '/design/login', @@ -298,90 +326,92 @@ export const goOtherPlatformMenu = { // 导航栏快速切换平台 bxkc: '/design/login?project=bxkc', designbxkc: '/login?project=bxkc', crsc: '/design/login?project=crsc', - designcrsc: '/login?project=crsc' -}; -export const PermissionParam = { // 路径权限处理所需参数配置(跳转白名单,路由处理类型) - heb: { - whitePage: '/login?project=heb', - systemType: '019' - }, - designheb: { - whitePage: '/design/login?project=heb', - systemType: '019' - }, - login: { - whitePage: '/login', - systemType: '011' - }, - design: { - whitePage: '/design/login', - systemType: '011' - }, - designxty: { - whitePage: '/design/login?project=xty', - systemType: '013' - }, - designgzb: { - whitePage: '/design/login?project=gzb', - systemType: '014' - }, - designxadt: { - whitePage: '/design/login?project=xadt', - systemType: '012' - }, - designjyd: { - whitePage: '/design/login?project=jyd', - systemType: '017' - }, - designtky: { - whitePage: '/design/login?project=tky', - systemType: '018' - }, - designbxkc: { - whitePage: '/design/login?project=bxkc', - systemType: '011' - }, - designcrsc: { - whitePage: '/design/login?project=crsc', - systemType: '011' - }, - xty: { - whitePage: '/login?project=xty', - systemType: '013' - }, - gzb: { - whitePage: '/login?project=gzb', - systemType: '014' - }, - xadt: { - whitePage: '/login?project=xadt', - systemType: '012' - }, - jyd: { - whitePage: '/login?project=jyd', - systemType: '017' - }, - tky: { - whitePage: '/login?project=tky', - systemType: '018' - }, - bxkc: { - whitePage: '/login?project=bxkc', - systemType: '011' - }, - crsc: { - whitePage: '/login?project=crsc', - systemType: '011' - }, - jsxt: { - whitePage: '/jsxt/login', - systemType: '015' - }, - refereeJsxt: { - whitePage: '/refereeJsxt/login', - systemType: '015' - } + designcrsc: '/login?project=crsc', + hls: '/design/login?project=hls', + designhls: '/login?project=hls' }; +// export const PermissionParam = { // 路径权限处理所需参数配置(跳转白名单,路由处理类型) +// heb: { +// whitePage: '/login?project=heb', +// systemType: '019' +// }, +// designheb: { +// whitePage: '/design/login?project=heb', +// systemType: '019' +// }, +// login: { +// whitePage: '/login', +// systemType: '011' +// }, +// design: { +// whitePage: '/design/login', +// systemType: '011' +// }, +// designxty: { +// whitePage: '/design/login?project=xty', +// systemType: '013' +// }, +// designgzb: { +// whitePage: '/design/login?project=gzb', +// systemType: '014' +// }, +// designxadt: { +// whitePage: '/design/login?project=xadt', +// systemType: '012' +// }, +// designjyd: { +// whitePage: '/design/login?project=jyd', +// systemType: '017' +// }, +// designtky: { +// whitePage: '/design/login?project=tky', +// systemType: '018' +// }, +// designbxkc: { +// whitePage: '/design/login?project=bxkc', +// systemType: '011' +// }, +// designcrsc: { +// whitePage: '/design/login?project=crsc', +// systemType: '011' +// }, +// xty: { +// whitePage: '/login?project=xty', +// systemType: '013' +// }, +// gzb: { +// whitePage: '/login?project=gzb', +// systemType: '014' +// }, +// xadt: { +// whitePage: '/login?project=xadt', +// systemType: '012' +// }, +// jyd: { +// whitePage: '/login?project=jyd', +// systemType: '017' +// }, +// tky: { +// whitePage: '/login?project=tky', +// systemType: '018' +// }, +// bxkc: { +// whitePage: '/login?project=bxkc', +// systemType: '011' +// }, +// crsc: { +// whitePage: '/login?project=crsc', +// systemType: '011' +// }, +// jsxt: { +// whitePage: '/jsxt/login', +// systemType: '015' +// }, +// refereeJsxt: { +// whitePage: '/refereeJsxt/login', +// systemType: '015' +// } +// }; export const ProjectList = [ {value:'xty', label:'西铁院'}, {value: 'gzb', label: '贵州装备'}, diff --git a/src/store/modules/map.js b/src/store/modules/map.js index e2313a954..a6a0825a0 100644 --- a/src/store/modules/map.js +++ b/src/store/modules/map.js @@ -335,6 +335,13 @@ const map = { return []; } }, + floodGateList: (state) => { + if (state.map) { + return state.map.floodGateList; + } else { + return []; + } + }, buttonList: (state) => { if (state.map) { return state.map.buttonList; diff --git a/src/views/newMap/newMapdraft/mapoperate/floodGate.vue b/src/views/newMap/newMapdraft/mapoperate/floodGate.vue new file mode 100644 index 000000000..57225ba0a --- /dev/null +++ b/src/views/newMap/newMapdraft/mapoperate/floodGate.vue @@ -0,0 +1,211 @@ + + + + diff --git a/src/views/newMap/newMapdraft/mapoperate/index.vue b/src/views/newMap/newMapdraft/mapoperate/index.vue index d93082c24..cac7ef77b 100644 --- a/src/views/newMap/newMapdraft/mapoperate/index.vue +++ b/src/views/newMap/newMapdraft/mapoperate/index.vue @@ -64,6 +64,7 @@ import ControlLamp from './controlLamp'; import SplitStation from './splitStation'; import Arrow from './arrow'; import SplitScreen from './splitScreen'; +import FloodGate from './floodGate'; import { EventBus } from '@/scripts/event-bus'; export default { @@ -91,7 +92,8 @@ export default { ControlLamp, SplitStation, Arrow, - SplitScreen + SplitScreen, + FloodGate }, props: { selected: { @@ -129,7 +131,8 @@ export default { {label:this.$t('map.image'), name:'Resource', menus:ImageControlDraft}, {label:this.$t('map.boundingBox'), name:'CheckBox', menus:CheckboxDraft}, {label:'站间分隔', name:'SplitStation', menus:SplitStation}, - {label:'箭头', name:'Arrow', menus:Arrow} + {label:'箭头', name:'Arrow', menus:Arrow}, + {label: '防淹门', name: 'FloodGate', menus: FloodGate} ], selectDevice:'', enabledTab: 'Section',