diff --git a/src/api/mapGroup.js b/src/api/mapGroup.js index 1cfa51d5e..539d9d48e 100644 --- a/src/api/mapGroup.js +++ b/src/api/mapGroup.js @@ -31,3 +31,11 @@ export function queryMapGroupPaging(params) { params }); } +/** 导入数据 */ +export function importMapGroupData( groupId, data) { + return request({ + url: `/api/mapGroup/${groupId}/syc/import`, + method: 'put', + data + }); +} diff --git a/src/jlmap3d/main/loaders/AssetLoader.js b/src/jlmap3d/main/loaders/AssetLoader.js index 67281afc6..859a55669 100644 --- a/src/jlmap3d/main/loaders/AssetLoader.js +++ b/src/jlmap3d/main/loaders/AssetLoader.js @@ -178,6 +178,7 @@ export function AssetLoader(){ // console.log(data); for(let j=0;j 1) { + const traingle = new JTriangle(model.points[0], model.points[model.points.length - 1]); + let x = traingle.drictx * (style.Section.badShunt.distance) * traingle.getSinRate(); + let y = traingle.dricty * (style.Section.badShunt.distance) * traingle.getCosRate(); + if (x == Infinity) { x = 0; } + if (y == Infinity) { y = 0; } + // if (model.switch) { + // 上侧临时限速线 + const badShuntLeft = this.createLimit({ + position: [x, -y], + switch: model.switch, + code: model.code, + isSwitchSection: model.switchSection, + relSwitchCode: model.relSwitchCode, + isCurve: model.curve, // 是否曲线 + points: model.points + }); + // 下侧临时限速线 + const badShuntRight = this.createLimit({ + position: [-x, y], + switch: model.switch, + code: model.code, + isSwitchSection: model.switchSection, + relSwitchCode: model.relSwitchCode, + isCurve: model.curve, // 是否曲线 + points: model.points + }); + badShuntLeft.forEach(item => { + this.add(item); + }); + badShuntRight.forEach(item => { + this.add(item); + }); + // } + } + } + + createLimit(model) { + const style = this.model.style; + const dataList = []; + if (model.isCurve) { + const shape = {}; + for (let i = 1; i < (model.points.length - 1); i++) { + shape[`cpx${i}`] = model.points[i].x; + shape[`cpy${i}`] = model.points[i].y; + } + + shape[`x1`] = model.points[0].x; + shape[`y1`] = model.points[0].y; + shape[`x2`] = model.points[model.points.length - 1].x; + shape[`y2`] = model.points[model.points.length - 1].y; + + dataList.push(new BezierCurve({ + isLine: true, + zlevel: this.zlevel, + progressive: model.progressive, + z: this.z, + culling: true, + shape: shape, + position: model.position, + style: { + lineWidth: style.Section.badShunt.width, + stroke: style.Section.badShunt.lineColor, + fillOpacity: 0 + } + })); + } else { + const swPadding = style.Switch.core.length; // 定位和反位时区段距离岔芯的距离 + var switchWidth = style.Section.line.width + style.Section.line.beyondWidth; // 道岔宽度 + const beg = Object.assign({}, model.points[0]); + const end = Object.assign({}, model.points[model.points.length - 1]); + if (model.isSwitchSection && beg.y !== end.y) { + const swch = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode]; // 获取道岔model 及状态数据 + + if (swch && swch.instance) { + const traingle = new JTriangle(swch.intersection, swch.skew); + if ((swch.intersection.x === beg.x) && (swch.intersection.y === beg.y) && !swch.normalPosition && swch.sectionCCode == model.code) { + beg.x = beg.x + traingle.drictx * (swPadding + switchWidth) * traingle.getCotRate(); + beg.y = beg.y + traingle.dricty * (swPadding + switchWidth); + } + + if ((swch.intersection.x === end.x) && (swch.intersection.y === end.y) && swch.normalPosition && swch.sectionCCode == model.code) { + end.x = end.x + traingle.drictx * (swPadding + switchWidth) * traingle.getCotRate(); + end.y = end.y + traingle.dricty * (swPadding + switchWidth); + } + } + } + if (model.points.length == 2) { + dataList.push(new Line({ + isLine: true, + zlevel: this.zlevel, + progressive: model.progressive, + z: this.z, + position: model.position, + shape: { + x1: beg.x, + y1: beg.y, + x2: end.x, + y2: end.y + }, + style: { + lineWidth: style.Section.badShunt.width, + stroke: style.Section.badShunt.lineColor + } + })); + } else { + dataList.push(new Line({ + isLine: true, + zlevel: this.zlevel, + progressive: model.progressive, + z: this.z, + position: model.position, + shape: { + x1: beg.x, + y1: beg.y, + x2: model.points[1].x, + y2: model.points[1].y + }, + style: { + lineWidth: style.Section.badShunt.width, + stroke: style.Section.badShunt.lineColor + } + })); + + for (let i = 1; i < (model.points.length - 2); i++) { + dataList.push(new Line({ + isLine: true, + zlevel: this.zlevel, + z: this.z, + progressive: model.progressive, + position: model.position, + shape: { + x1: model.points[i].x, + y1: model.points[i].y, + x2: model.points[i + 1].x, + y2: model.points[i + 1].y + }, + style: { + lineWidth: style.Section.badShunt.width, + stroke: style.Section.badShunt.lineColor + } + })); + } + + dataList.push(new Line({ + isLine: true, + zlevel: this.zlevel, + z: this.z, + position: model.position, + progressive: model.progressive, + shape: { + x1: model.points[model.points.length - 2].x, + y1: model.points[model.points.length - 2].y, + x2: end.x, + y2: end.y + }, + style: { + lineWidth: style.Section.badShunt.width, + stroke: style.Section.badShunt.lineColor + } + })); + } + } + return dataList; + } + + hide() { + this.eachChild((child) => { + child.hide(); + }); + } + show() { + this.eachChild((child) => { + child.show(); + }); + } +} diff --git a/src/jmapNew/shape/Section/ESeparator.js b/src/jmapNew/shape/Section/ESeparator.js index f3ed05416..48bb21b82 100644 --- a/src/jmapNew/shape/Section/ESeparator.js +++ b/src/jmapNew/shape/Section/ESeparator.js @@ -50,8 +50,16 @@ export default class ESeparator extends Group { drict: 1, // 方向 type:model.type // 区段类型 }); - this.add(this.lPartition); - this.add(this.rPartition); + if (this.lPartition.length > 0) { + this.lPartition.forEach(each=>{ + this.add(each); + }); + } + if (this.rPartition.length > 0) { + this.rPartition.forEach(each=>{ + this.add(each); + }); + } } } @@ -114,67 +122,74 @@ export default class ESeparator extends Group { return partition; } + createNormal(modelData) { + let partition; + const style = this.model.style; + let points = []; + let lineWidth = 0; + const tanRate = modelData.traingle.getSinRate(); + if (style.Section.separator.sepical && (modelData.type == '03' || modelData.type == '01') && tanRate != 0 && tanRate != 1) { + // debugger; + // // 转换坐标系计算 + // const dataDirection = modelData.traingle.getRotation() > 0 ? 1 : -1; + // points = [ + // [modelData.point.x - (style.Section.separator.halfHeight) * modelData.traingle.getCosRate(), + // modelData.point.y + dataDirection * (style.Section.separator.halfHeight) * modelData.traingle.getSinRate()], + // [modelData.point.x + (style.Section.separator.halfHeight) * modelData.traingle.getCosRate(), + // modelData.point.y - dataDirection * (style.Section.separator.halfHeight) * modelData.traingle.getSinRate()] + // ]; + // partition = this.createModel(modelData, points); + const direction = modelData.traingle.drictx * modelData.traingle.dricty > 0 ? 1 : -1; + const offset = style.Section.line.width / 2; + points = [ + [modelData.point.x + modelData.drict * modelData.traingle.getSinRate() * offset, + modelData.point.y - direction * modelData.drict * modelData.traingle.getCosRate() * offset], + // [modelData.point.x, modelData.point.y] + [modelData.point.x - modelData.drict * modelData.traingle.getSinRate() * offset * 2, + modelData.point.y + direction * modelData.drict * modelData.traingle.getCosRate() * offset * 2], + [modelData.point.x - modelData.drict * offset * 2.5 / modelData.traingle.getSinRate(), + modelData.point.y - direction * modelData.drict * modelData.traingle.getCosRate() * offset], + [modelData.point.x + modelData.drict * modelData.traingle.getSinRate() * offset, + modelData.point.y - direction * modelData.drict * modelData.traingle.getCosRate() * offset] + ]; + partition = new Polyline({ + zlevel: this.zlevel, + z: this.z, + shape: { + points: points + }, + style: { + lineWidth:1, + fill:this.style.Section.separator.color + } + }); + + } else { + points = [ + [modelData.point.x, modelData.point.y - (style.Section.separator.halfHeight)], + [modelData.point.x, modelData.point.y + (style.Section.separator.halfHeight)] + ]; + lineWidth = modelData.type == '02' ? style.Section.separator.logicWidth : style.Section.separator.width; + partition = this.createModel(modelData, points, lineWidth); + } + return partition; + } + setType(modelData) { const style = this.model.style; const type = modelData.sepType; if (modelData && style && modelData.traingle) { - let partition = null; + let partition = []; if (type === '01') { // 普通分割 - let points = []; - let lineWidth = 0; - const tanRate = modelData.traingle.getSinRate(); - if (style.Section.separator.sepical && (modelData.type == '03' || modelData.type == '01') && tanRate != 0 && tanRate != 1) { - // debugger; - // // 转换坐标系计算 - // const dataDirection = modelData.traingle.getRotation() > 0 ? 1 : -1; - // points = [ - // [modelData.point.x - (style.Section.separator.halfHeight) * modelData.traingle.getCosRate(), - // modelData.point.y + dataDirection * (style.Section.separator.halfHeight) * modelData.traingle.getSinRate()], - // [modelData.point.x + (style.Section.separator.halfHeight) * modelData.traingle.getCosRate(), - // modelData.point.y - dataDirection * (style.Section.separator.halfHeight) * modelData.traingle.getSinRate()] - // ]; - // partition = this.createModel(modelData, points); - const direction = modelData.traingle.drictx * modelData.traingle.dricty > 0 ? 1 : -1; - const offset = style.Section.line.width / 2; - points = [ - [modelData.point.x + modelData.drict * modelData.traingle.getSinRate() * offset, - modelData.point.y - direction * modelData.drict * modelData.traingle.getCosRate() * offset], - // [modelData.point.x, modelData.point.y] - [modelData.point.x - modelData.drict * modelData.traingle.getSinRate() * offset * 2, - modelData.point.y + direction * modelData.drict * modelData.traingle.getCosRate() * offset * 2], - [modelData.point.x - modelData.drict * offset * 2.5 / modelData.traingle.getSinRate(), - modelData.point.y - direction * modelData.drict * modelData.traingle.getCosRate() * offset], - [modelData.point.x + modelData.drict * modelData.traingle.getSinRate() * offset, - modelData.point.y - direction * modelData.drict * modelData.traingle.getCosRate() * offset] - ]; - partition = new Polyline({ - zlevel: this.zlevel, - z: this.z, - shape: { - points: points - }, - style: { - lineWidth:1, - fill:this.style.Section.separator.color - } - }); - - } else { - points = [ - [modelData.point.x, modelData.point.y - (style.Section.separator.halfHeight)], - [modelData.point.x, modelData.point.y + (style.Section.separator.halfHeight)] - ]; - lineWidth = modelData.type == '02' ? style.Section.separator.logicWidth : style.Section.separator.width; - partition = this.createModel(modelData, points, lineWidth); - } + partition = [this.createNormal(modelData)]; } else if (type === '02') { // 单侧分割符 const points = [ [modelData.point.x + modelData.drict * (style.Section.separator.halfHeight), modelData.point.y - (style.Section.separator.halfHeight * 1.5)], [modelData.point.x, modelData.point.y - (style.Section.separator.halfHeight * 1.5)], [modelData.point.x, modelData.point.y + (style.Section.separator.halfHeight * 1.5)] ]; - partition = this.createModel(modelData, points); + partition = [this.createModel(modelData, points)]; } else if (type === '03') { // 尽头分隔符 let points = []; if (style.Section.separator.isLikeT) { @@ -194,11 +209,15 @@ export default class ESeparator extends Group { } const lineWidth = style.Section.separator.endWidth; const stroke = style.Section.separator.endColor; - partition = this.createModel(modelData, points, lineWidth, stroke); + partition = [this.createModel(modelData, points, lineWidth, stroke)]; } else if (type === '04') { // 侵限分隔符 - partition = this.createCircle(modelData); + if (this.style.Section.separator.invadeSpecial) { + partition = [this.createNormal(modelData), this.createCircle(modelData)]; + } else { + partition = [this.createCircle(modelData)]; + } } else if (type === '05') { // 特色分隔符 - partition = this.createCircleArc(modelData); + partition = [this.createCircleArc(modelData)]; } return partition; } diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js index c1723fc06..b65457a35 100644 --- a/src/jmapNew/shape/Section/index.js +++ b/src/jmapNew/shape/Section/index.js @@ -12,6 +12,7 @@ import ELimitName from './ELimitName'; // 成都三号线 限速名称 // import JTriangle from '../../utils/JTriangle'; import { drawSectionStyle } from '../../config/defaultStyle'; import EStopRouteImg from './EStopRouteImg'; +import EBadShunt from './EBadShunt'; import store from '@/store/index'; /** 区段*/ @@ -61,7 +62,8 @@ export default class Section extends Group { 'separator': ESeparator, // 分隔符 'speedLimit': ELimitLines, // 限速线 'speedLimitName': ELimitName, // 限速线名称 - 'shuttleBack': EBackArrowGroup // 折返箭头 (成都三号线显示) + 'shuttleBack': EBackArrowGroup, // 折返箭头 (成都三号线显示) + 'badShunt':EBadShunt // 大铁项目 分路不良 }; // 遍历当前线路下的绘图元素 const model = this.model; @@ -105,6 +107,7 @@ export default class Section extends Group { this.name && this.name.recover(); this.speedLimit && this.speedLimit.hide(); this.speedLimitName && this.speedLimitName.hide(); + this.badShunt && this.badShunt.hide(); this.axle && this.axle.setStyle({ stroke: this.style.Section.line.spareColor, @@ -433,9 +436,16 @@ export default class Section extends Group { sectionSwitch.instance && sectionSwitch.instance.setLimitState(model.speedUpLimit > 0, model.speedUpLimit); } } + // 分路不良 + model.badShunt && this.badShuntStatus(); } } + // 分路不良 + badShuntStatus() { + this.badShunt && this.badShunt.show(); + } + /** 计算提示位置*/ getShapeTipPoint() { const rect = this.getBoundingRect(); diff --git a/src/jmapNew/shape/SignalButton/index.js b/src/jmapNew/shape/SignalButton/index.js new file mode 100644 index 000000000..52d3afb48 --- /dev/null +++ b/src/jmapNew/shape/SignalButton/index.js @@ -0,0 +1,121 @@ +import Group from 'zrender/src/container/Group'; +import Rect from 'zrender/src/graphic/shape/Rect'; +import Line from 'zrender/src/graphic/shape/Line'; +import Text from 'zrender/src/graphic/Text'; + +export default class SignalButton extends Group { + constructor(model, {style}) { + super(); + this._code = model.code; + this._type = model._type; + this.zlevel = model.zlevel; + this.z = 0; + this.model = model; + this.style = style.Line; + this.isShowShape = true; + this.create(); + this.setState(model); + this.setShowMode(); + } + + create() { + const model = this.model; + let fillColor = '#008000'; + if (model.type === 'GUIDE') { + fillColor = '#5050E1'; + } else if (model.type === 'FLEXIBLE' || model.type === 'SHUNT_TERMINAL') { + fillColor = '#808080'; + } + this.rectButton = new Rect({ + zlevel: this.zlevel, + z: this.z, + silent: true, + shape: { + x: model.position.x, + y: model.position.y, + width: 14, + height: 14 + }, + style: { + lineDash: null, + stroke: '#808080', + fill: fillColor + } + }); + this.leftLine = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: model.position.x, + y1: model.position.y, + x2: model.position.x + 14, + y2: model.position.y + 14 + }, + style: { + lineWidth: 2, + stroke: '#ff0000' + } + }); + this.add(this.leftLine); + this.leftLine.hide(); + this.rightLine = new Line({ + zlevel: this.zlevel, + z: this.z + 1, + shape: { + x1: model.position.x + 14, + y1: model.position.y, + x2: model.position.x, + y2: model.position.y + 14 + }, + style: { + lineWidth: 2, + stroke: '#ff0000' + } + }); + this.add(this.rightLine); + this.rightLine.hide(); + this.buttonText = new Text({ + zlevel: this.zlevel, + z: this.z, + style: { + x: model.position.x + 7, + y: model.position.y - 20, + fontWeight: '400', + fontSize: 12, + fontFamily: '', + text: model.name, + textFill: '#C0C0C0', + textAlign: 'middle', + textVerticalAlign: 'top' + } + }); + this.add(this.rectButton); + this.add(this.buttonText); + } + startAnimate() { + let color = '#008000'; + if (this.model.type === 'TRAIN_TERMINAL') { + color = '#008000'; + } else if (this.model.type === 'FLEXIBLE' || this.model.type === 'SHUNT_TERMINAL') { + color = '#808080'; + } + this.rectButton && this.rectButton.animateStyle(true) + .when(0, { fill: '#000' }) + .when(1000, { fill: color }) + .when(2000, { fill: '#000' }) + .start(); + } + stopAnimation() { + this.rectButton && this.rectButton.stopAnimation(true); + } + setState(model) { + if (!this.isShowShape) return; + } + // 设置显示模式 + setShowMode() { + } + setShowStation(stationCode) { + } + getAnchorPoint() { + } +} diff --git a/src/jmapNew/shape/Switch/index.js b/src/jmapNew/shape/Switch/index.js index 3e31c0b3b..e1370ce0a 100644 --- a/src/jmapNew/shape/Switch/index.js +++ b/src/jmapNew/shape/Switch/index.js @@ -230,11 +230,22 @@ export default class Switch extends Group { offsetX = directx * this.style.Switch.rectLock.offset.x; offsetY = directy * this.style.Switch.rectLock.offset.y; } + let x = this.model.intersection.x - this.style.Switch.rectLock.rectWidth / 2 + offsetX; + let y = this.model.intersection.y - this.style.Switch.rectLock.rectWidth / 2 + offsetY; + if (this.style.Switch.rectLock.followName) { + const directx = this.triangle.drictx; + const rect = this.name.getBoundingRect(); + const wLen = this.style.Switch.rectLock.rectWidth - (directx > 0? rect.width: rect.width/2); + const hLen = this.style.Switch.rectLock.rectWidth - rect.height + x = rect.x - wLen/2; + y = rect.y - hLen/2 + } + this.lockRect = new ELockRect({ // 单锁矩形框 zlevel: this.zlevel, z: this.z + 6, - x: this.model.intersection.x - this.style.Switch.rectLock.rectWidth / 2 + offsetX, - y: this.model.intersection.y - this.style.Switch.rectLock.rectWidth / 2 + offsetY, + x, + y, width: this.style.Switch.rectLock.rectWidth, lineWidth: 1.8, stroke: this.style.Switch.rectLock.rectBorderColor, @@ -314,8 +325,9 @@ export default class Switch extends Group { /** 恢复状态*/ recover() { - this.lockRect.hide(); // 矩形包围框 - this.lockArc.hide(); // 圆形单锁框 + this.lockRect && this.lockRect.hide(); // 矩形包围框 + this.lockCircle && this.lockCircle.hide(); // 圆形包围框 + this.lockArc && this.lockArc.hide(); // 圆形单锁框 this.name.getNameText().stopAnimation(false); this.shapeModelC.hide(); // 形状 C this.shapeModelA.hide(); // 形状 A @@ -344,7 +356,7 @@ export default class Switch extends Group { } if (this.style.Switch.core.graphShow) { // 佛山线路显示 this.shapeModelB.show(); - this.shapeModelB.setColor('#00FF00'); + this.shapeModelB.setColor(this.style.Switch.core.graphLocalColor); this.shapeModelC.show(); this.shapeModelC.setColor(this.style.backgroundColor); } @@ -364,7 +376,7 @@ export default class Switch extends Group { this.shapeModelA.setColor(this.style.Section.line.spareColor); if (this.style.Switch.core.graphShow) { // 佛山线路显示 this.shapeModelC.show(); - this.shapeModelC.setColor('#FFFF00'); + this.shapeModelC.setColor(this.style.Switch.core.graphInversionColor); this.shapeModelC.attr({ z: this.z + 6 }); @@ -474,16 +486,20 @@ export default class Switch extends Group { /** 单锁*/ setMonolock(normalPosition, reversePosition) { - if (this.style.Switch.rectLock.monolock) { // 判断单锁矩形是否显示 + if (this.style.Switch.rectLock && + this.style.Switch.rectLock.monolock) { // 判断单锁矩形是否显示 this.lockRect.show(); if (this.style.Switch.rectLock.rectBorderFillColor) { // 西安二号线 专用显示 this.lockRect.setStyle({ stroke: this.style.Switch.rectLock.rectBorderColor, fill: this.style.Switch.rectLock.rectBorderFillColor }); } } - if (this.style.Switch.text.monolock) { // 单锁显示名称包围框 + + if (this.style.Switch.text && + this.style.Switch.text.monolock) { // 单锁显示名称包围框 this.setHasTextBorder(1); } - if (this.style.Switch.arcBlcok.show) { // 圆形单锁是否显示 + if (this.style.Switch.arcBlcok && + this.style.Switch.arcBlcok.show) { // 圆形单锁是否显示 this.lockArc.show(); if (normalPosition) { this.lockArc.setStyle({ stroke: this.style.Switch.arcBlcok.locationColor }); @@ -545,6 +561,7 @@ export default class Switch extends Group { this.lockRect.setStyle({ stroke: this.style.Switch.rectLock.blockColor, fill: this.style.Switch.rectLock.blockFillColor }); } } + // if (this.style.Switch.coverBlock && this.style.Switch.coverBlock.show) { // this.shapeBlockCover.show(); // this.shapeBlockCover.setColor(this.style.Switch.coverBlock.coverBlockColor); diff --git a/src/jmapNew/shape/factory.js b/src/jmapNew/shape/factory.js index 0b9b8c075..f3aba1679 100644 --- a/src/jmapNew/shape/factory.js +++ b/src/jmapNew/shape/factory.js @@ -30,6 +30,7 @@ import OverAp from './OverAp/index.js'; import FloodGate from './FloodGate/index'; import DirectionRod from './DirectionRod/index'; import Responder from './Responder/index'; +import SignalButton from './SignalButton/index'; /** 图库*/ const mapShape = {}; @@ -81,6 +82,7 @@ mapShape[deviceType.OverAp] = OverAp; mapShape[deviceType.FloodGate] = FloodGate; mapShape[deviceType.DirectionRod] = DirectionRod; mapShape[deviceType.Responder] = Responder; +mapShape[deviceType.SignalButton] = SignalButton; function shapefactory(device, jmap) { const type = device._type; diff --git a/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmControl.vue b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmControl.vue new file mode 100644 index 000000000..d298f8bc1 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmControl.vue @@ -0,0 +1,141 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmControlSpeed.vue b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmControlSpeed.vue new file mode 100644 index 000000000..d49556383 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmControlSpeed.vue @@ -0,0 +1,156 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmTip.vue b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmTip.vue new file mode 100644 index 000000000..6852074ca --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmTip.vue @@ -0,0 +1,74 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmTrain.vue b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmTrain.vue new file mode 100644 index 000000000..494347b75 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/confirmTrain.vue @@ -0,0 +1,173 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/childDialog/passwordInputBox.vue b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/passwordInputBox.vue new file mode 100644 index 000000000..5d5a948dc --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/passwordInputBox.vue @@ -0,0 +1,194 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/childDialog/popupAlarm.vue b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/popupAlarm.vue new file mode 100644 index 000000000..b6b925622 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/childDialog/popupAlarm.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/routeDetail.vue b/src/jmapNew/theme/datie_01/menus/dialog/routeDetail.vue new file mode 100644 index 000000000..b7211c025 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/routeDetail.vue @@ -0,0 +1,196 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/routeGuide.vue b/src/jmapNew/theme/datie_01/menus/dialog/routeGuide.vue new file mode 100644 index 000000000..11cba9131 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/routeGuide.vue @@ -0,0 +1,278 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/routeHandControl.vue b/src/jmapNew/theme/datie_01/menus/dialog/routeHandControl.vue new file mode 100644 index 000000000..69ce0d572 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/routeHandControl.vue @@ -0,0 +1,267 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/routeSelection.vue b/src/jmapNew/theme/datie_01/menus/dialog/routeSelection.vue new file mode 100644 index 000000000..12014afb3 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/routeSelection.vue @@ -0,0 +1,325 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/sectionDetail.vue b/src/jmapNew/theme/datie_01/menus/dialog/sectionDetail.vue new file mode 100644 index 000000000..7e6a03371 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/sectionDetail.vue @@ -0,0 +1,114 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/standControl.vue b/src/jmapNew/theme/datie_01/menus/dialog/standControl.vue new file mode 100644 index 000000000..c6c29c830 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/standControl.vue @@ -0,0 +1,603 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/standDetail.vue b/src/jmapNew/theme/datie_01/menus/dialog/standDetail.vue new file mode 100644 index 000000000..70afc5455 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/standDetail.vue @@ -0,0 +1,223 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainControl.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainControl.vue new file mode 100644 index 000000000..738d9509e --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainControl.vue @@ -0,0 +1,332 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainCreate.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainCreate.vue new file mode 100644 index 000000000..59f7935b6 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainCreate.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainCreateNumber.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainCreateNumber.vue new file mode 100644 index 000000000..e56f2f80d --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainCreateNumber.vue @@ -0,0 +1,181 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainDelete.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainDelete.vue new file mode 100644 index 000000000..895d6024c --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainDelete.vue @@ -0,0 +1,150 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainDeleteNumber.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainDeleteNumber.vue new file mode 100644 index 000000000..210e2dc87 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainDeleteNumber.vue @@ -0,0 +1,176 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainDetailInfo.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainDetailInfo.vue new file mode 100644 index 000000000..907727139 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainDetailInfo.vue @@ -0,0 +1,378 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainEditNumber.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainEditNumber.vue new file mode 100644 index 000000000..570e22144 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainEditNumber.vue @@ -0,0 +1,174 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainMove.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainMove.vue new file mode 100644 index 000000000..82c84dc13 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainMove.vue @@ -0,0 +1,200 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainMoveNumber.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainMoveNumber.vue new file mode 100644 index 000000000..7e7635d23 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainMoveNumber.vue @@ -0,0 +1,193 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/dialog/trainSwitch.vue b/src/jmapNew/theme/datie_01/menus/dialog/trainSwitch.vue new file mode 100644 index 000000000..583e53d8e --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/dialog/trainSwitch.vue @@ -0,0 +1,209 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/index.vue b/src/jmapNew/theme/datie_01/menus/index.vue new file mode 100644 index 000000000..e83faddc5 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/index.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuBar.vue b/src/jmapNew/theme/datie_01/menus/menuBar.vue new file mode 100644 index 000000000..e7be252ef --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuBar.vue @@ -0,0 +1,685 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuButton.vue b/src/jmapNew/theme/datie_01/menus/menuButton.vue new file mode 100644 index 000000000..71a930450 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuButton.vue @@ -0,0 +1,778 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/twoConfirmation.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/twoConfirmation.vue new file mode 100644 index 000000000..c1f7b93a3 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/twoConfirmation.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userAdd.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userAdd.vue new file mode 100644 index 000000000..6c98c5a53 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userAdd.vue @@ -0,0 +1,157 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userDelete.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userDelete.vue new file mode 100644 index 000000000..e64aa49f3 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userDelete.vue @@ -0,0 +1,129 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userEdit.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userEdit.vue new file mode 100644 index 000000000..b03165a1b --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/childDialog/userEdit.vue @@ -0,0 +1,173 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/helpAbout.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/helpAbout.vue new file mode 100644 index 000000000..4dc26a4ce --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/helpAbout.vue @@ -0,0 +1,126 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/limitSpeed.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/limitSpeed.vue new file mode 100644 index 000000000..e416e68e0 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/limitSpeed.vue @@ -0,0 +1,138 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/manageUser.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/manageUser.vue new file mode 100644 index 000000000..deef68f43 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/manageUser.vue @@ -0,0 +1,285 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/passwordBox.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/passwordBox.vue new file mode 100644 index 000000000..69fa03d70 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/passwordBox.vue @@ -0,0 +1,221 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/setLimitSpeed.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/setLimitSpeed.vue new file mode 100644 index 000000000..dfb5821b3 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/setLimitSpeed.vue @@ -0,0 +1,286 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/stationControlConvert.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/stationControlConvert.vue new file mode 100644 index 000000000..046b66327 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/stationControlConvert.vue @@ -0,0 +1,433 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/trainAdd.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/trainAdd.vue new file mode 100644 index 000000000..fba049a10 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/trainAdd.vue @@ -0,0 +1,168 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/trainDelete.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/trainDelete.vue new file mode 100644 index 000000000..b1139915a --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/trainDelete.vue @@ -0,0 +1,151 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/trainTranstalet.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/trainTranstalet.vue new file mode 100644 index 000000000..97918ae44 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/trainTranstalet.vue @@ -0,0 +1,158 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuDialog/viewName.vue b/src/jmapNew/theme/datie_01/menus/menuDialog/viewName.vue new file mode 100644 index 000000000..4a32473d5 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuDialog/viewName.vue @@ -0,0 +1,256 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuSection.vue b/src/jmapNew/theme/datie_01/menus/menuSection.vue new file mode 100644 index 000000000..e4babd785 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuSection.vue @@ -0,0 +1,222 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuSignal.vue b/src/jmapNew/theme/datie_01/menus/menuSignal.vue new file mode 100644 index 000000000..9e40ee29b --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuSignal.vue @@ -0,0 +1,350 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuStation.vue b/src/jmapNew/theme/datie_01/menus/menuStation.vue new file mode 100644 index 000000000..706bc5730 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuStation.vue @@ -0,0 +1,130 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuStationStand.vue b/src/jmapNew/theme/datie_01/menus/menuStationStand.vue new file mode 100644 index 000000000..32e96bc2f --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuStationStand.vue @@ -0,0 +1,220 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuSwitch.vue b/src/jmapNew/theme/datie_01/menus/menuSwitch.vue new file mode 100644 index 000000000..eb8ca985c --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuSwitch.vue @@ -0,0 +1,258 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuTool.vue b/src/jmapNew/theme/datie_01/menus/menuTool.vue new file mode 100644 index 000000000..95bc382b2 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuTool.vue @@ -0,0 +1,211 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/menuTrain.vue b/src/jmapNew/theme/datie_01/menus/menuTrain.vue new file mode 100644 index 000000000..4c830c621 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/menuTrain.vue @@ -0,0 +1,422 @@ + + + diff --git a/src/jmapNew/theme/datie_01/menus/passiveDialog/alarm.vue b/src/jmapNew/theme/datie_01/menus/passiveDialog/alarm.vue new file mode 100644 index 000000000..afbff9ddc --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/passiveDialog/alarm.vue @@ -0,0 +1,216 @@ + + + + diff --git a/src/jmapNew/theme/datie_01/menus/passiveDialog/timeout.vue b/src/jmapNew/theme/datie_01/menus/passiveDialog/timeout.vue new file mode 100644 index 000000000..e4ef062a6 --- /dev/null +++ b/src/jmapNew/theme/datie_01/menus/passiveDialog/timeout.vue @@ -0,0 +1,109 @@ + + + diff --git a/src/jmapNew/theme/datie_01/model.js b/src/jmapNew/theme/datie_01/model.js new file mode 100644 index 000000000..c7d80a99e --- /dev/null +++ b/src/jmapNew/theme/datie_01/model.js @@ -0,0 +1,71 @@ +import deviceType from '../../constant/deviceType'; + +class Model { + constructor() { + this.screenLine = 3; + // 公共字段部分默认初始值 + this['public'] = {}; + this['public'][deviceType.Signal] = { + lampPositionType: '02', + lampPostType: '02' + }; + + // 私有字段部分默认初始值 + this['private'] = {}; + this['private'][deviceType.StationControl] = { + indicatorShow: true // 标识灯名称显示 + }; + this['private'][deviceType.Station] = { + kmPostShow: true // 公里标显示 + }; + this['private'][deviceType.Switch] = { + nameShow: true + }; + this['private'][deviceType.Section] = { + nameShow: true, + borderBorderShow: true, // 区段边界显示 + destinationNameShow: true, // 目的地码名称显示 + standTrackNameShow: true, // 站台轨名称显示 + reentryTrackNameShow: true, // 折返轨名称显示 + transferTrackNameShow: true // 转换轨名称显示 + }; + this['private'][deviceType.Signal] = { + nameShow: true, // 信号机名称显示 + linkageAutoRouteShow: true, // 联锁自动进路表示灯显示 + atsAutoTriggerShow: true // ATS自动触发表示灯显示 + }; + this['private'][deviceType.Train] = { + }; + this['private'][deviceType.TrainWindow] = { + trainWindowShow: true + }; + } + + initPublicProps(model) { + if (model) { + var modelInitial = this.public[model._type]; + if (modelInitial) { + for (var prop in modelInitial) { + model[prop] = modelInitial[prop]; + } + } + } + + return model; + } + + initPrivateProps(model) { + if (model) { + var modelInitial = this.private[model._type]; + if (modelInitial) { + for (var prop in modelInitial) { + model[prop] = modelInitial[prop]; + } + } + } + + return model; + } +} + +export default new Model(); diff --git a/src/jmapNew/theme/datie_01/operationConfig.js b/src/jmapNew/theme/datie_01/operationConfig.js new file mode 100644 index 000000000..1a6e6e84d --- /dev/null +++ b/src/jmapNew/theme/datie_01/operationConfig.js @@ -0,0 +1,945 @@ +// SECTION 区段 +// SWITCH 道岔 +// SIGNAL 信号机 +// START_SIGNAL 进路起始信号机 +// END_SIGNAL 进路终端信号机 + +// STATION 车站 +// STAND 站台 +// ROUTE 进路 +// CYCLE 自动折返 + +// {id: "1", trainingType: "ControlConvertMenu", name: "车站名称"} +// {id: "2", trainingType: "ControlConvertMenu", name: "车站控制模式编号"} +// {id: "3", trainingType: "Signal", name: "进路名称"} +// {id: "4", trainingType: "Signal", name: "进路编号"} +// {id: "5", trainingType: "Signal", name: "信号机名称"} +// {id: "6", trainingType: "Signal", name: "信号机编号"} + +// {id: "7", trainingType: "Switch", name: "道岔名称"} + +// {id: "8", trainingType: "Section", name: "物理区段名称"} +// {id: "9", trainingType: "Section", name: "逻辑区段名称"} + +// {id: "10", trainingType: "Stand", name: "车站名称"} +// {id: "11", trainingType: "Stand", name: "站台行驶方向编号"} +// {id: "12", trainingType: "Stand", name: "站台行驶方向"} +// {id: "13", trainingType: "Stand", name: "站台行驶方向编号(反)"} +// {id: "14", trainingType: "Stand", name: "站台行驶方向(反)"} +// {id: "29", trainingType: "Stand", name: "站台名称"} +// {id: "30", trainingType: "Stand", name: "站台编码"} + +// {id: "15", trainingType: "Switch", name: "道岔位置"} +// {id: "16", trainingType: "Switch", name: "道岔位置(反)"} +// {id: "17", trainingType: "Switch", name: "道岔编码"} + +// {id: "18", trainingType: "Section", name: "逻辑区段编码"} +// {id: "19", trainingType: "Section", name: "区段编号"} +// {id: "20", trainingType: "Section", name: "车站名称"} + +// {id: "21", trainingType: "Switch", name: "车站名称"} +// {id: "22", trainingType: "Section", name: "车站编号"} +// {id: "23", trainingType: "Switch", name: "车站编号"} +// {id: "24", trainingType: "Switch", name: "道岔计轴区段编号"} +// {id: "25", trainingType: "Switch", name: "道岔计轴区段名称"} + +import CMD from '@/scripts/cmdPlugin/CommandEnum'; +export default { + list: [ + // 控制模式 + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL.value, + skinCode: '04', + trainingName: '请求站控({2})', + trainingRemark: '请求站控功能', + trainingType: 'ControlConvertMenu', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】' }, + { deviceType: '04', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【站控】', codeType:'STATION', subType:'substation' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL.value, + skinCode: '04', + trainingName: '请求紧急站控({2})', + trainingRemark: '请求紧急站控功能', + trainingType: 'ControlConvertMenu', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】' }, + { deviceType: '04', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【紧急站控】', codeType:'STATION', subType:'emergency' }, + { deviceType: '04', orderNum: 3, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL.value, + skinCode: '04', + trainingName: '请求中控({2})', + trainingRemark: '请求中控功能', + trainingType: 'ControlConvertMenu', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】' }, + { deviceType: '04', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【中控】', codeType:'STATION', subType:'center' }, + { deviceType: '04', orderNum: 3, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.ControlConvertMenu.CMD_CM_INTERLOCK_CONTROL.value, + skinCode: '04', + trainingName: '请求联锁控({2})', + trainingRemark: '请求联锁控功能', + trainingType: 'ControlConvertMenu', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】' }, + { deviceType: '04', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【联锁控】', codeType:'STATION', subType:'interconnected' }, + { deviceType: '04', orderNum: 3, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' } + ] + }, + // 信号机列表 + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_SET_ROUTE.value, + skinCode: '04', + trainingName: '办理进路({3} 进路)', + trainingRemark: '办理进路功能', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '301', tip: '鼠标右键菜单选择【办理进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '3011', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 3, operateCode: '3012', tip: '鼠标左键点击【执行】按钮' }, + { deviceType: '04', orderNum: 4, operateCode: '301', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_SET_ROUTE.value, + skinCode: '04', + trainingName: '办理进路({3} 进路)', + trainingRemark: '办理进路功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'START_SIGNAL' }, + { deviceType: '04', orderNum: 3, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'END_SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE.value, + skinCode: '04', + trainingName: '办理引导进路({3})', + trainingRemark: '进路办理信号引导', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【办理引导进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '308', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '3086', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 4, operateCode: '3082', tip: '鼠标左键点击【执行】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE.value, + skinCode: '04', + trainingName: '引导进路({3})[进路已锁闭]', + trainingRemark: '进路办理信号引导', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '3080', tip: '鼠标左键点击【引导进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '3080', tip: '鼠标左键点击【{5}】', codeType:'START_SIGNAL'}, // 进路编号值不正确 + { deviceType: 'mbm', orderNum: 3, operateCode: '0011', tip: '输入密码123,点击【确定】按钮', codeType: 'START_SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE.value, + skinCode: '04', + trainingName: '取消进路({3} 进路)', + trainingRemark: '取消进路功能', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '303', tip: '鼠标右键菜单选择【取消进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '303', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE.value, + skinCode: '04', + trainingName: '取消进路({3} 进路)', + trainingRemark: '取消进路功能(总取消)', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2994', tip: '鼠标左键点击【总取消】' }, + { deviceType: '04', orderNum: 2, operateCode: '2994', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE.value, + skinCode: '04', + trainingName: '取消引导({3})', + trainingRemark: '取消引导进路功能(总取消)', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2994', tip: '鼠标左键点击【总取消】' }, + { deviceType: '04', orderNum: 2, operateCode: '2994', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value, + skinCode: '04', + trainingName: '总人解({3})', + trainingRemark: '总人解', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '305', tip: '鼠标右键菜单选择【总人解】' }, + { deviceType: '04', orderNum: 2, operateCode: '3050', tip: '输入密码123,点击【执行】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '305', tip: '鼠标左键点击【确定】按钮' }, + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE.value, + skinCode: '04', + trainingName: '总人解({3})', + trainingRemark: '总人解', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '3050', tip: '鼠标左键点击【总人解】' }, + { deviceType: '04', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '3050', tip: '鼠标左键点击【{5}】', val: '{6}', codeType:'SIGNAL' } + ] + }, + { + maxDuration: 8, + minDuration: 5, + operateType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL.value, + skinCode: '04', + trainingName: '信号重开({5})', + trainingRemark: '信号重开功能', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '304', tip: '鼠标右键菜单选择【信号重开】' }, + { deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 8, + minDuration: 5, + operateType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL.value, + skinCode: '04', + trainingName: '信号重开({5})', + trainingRemark: '信号重开功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_BLOCK.value, + skinCode: '04', + trainingName: '信号封锁({5})', + trainingRemark: '信号封锁', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '306', tip: '鼠标右键菜单选择【信号封锁】' }, + { deviceType: '04', orderNum: 2, operateCode: '306', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_BLOCK.value, + skinCode: '04', + trainingName: '信号封锁({5})', + trainingRemark: '信号封锁功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键点击【封锁】' }, + { deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_UNBLOCK.value, + skinCode: '04', + trainingName: '信号解封({5})', + trainingRemark: '信号解封', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '307', tip: '鼠标右键菜单选择【信号解封】' }, + { deviceType: '04', orderNum: 2, operateCode: '3072', tip: '鼠标左键点击【确认】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '307', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_UNBLOCK.value, + skinCode: '04', + trainingName: '信号解封({5})', + trainingRemark: '信号解封功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2992', tip: '鼠标左键点击【解封】' }, + { deviceType: '04', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING.value, + skinCode: '04', + trainingName: '进路收人工控({3})', + trainingRemark: '进路收人工控', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【进路收人工控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3141', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 3, operateCode: '314', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING.value, + skinCode: '04', + trainingName: '人工控({5})', + trainingRemark: '人工控', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '3140', tip: '鼠标左键点击【人工控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3140', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ], + // 成都三号线 特殊配置 类似于哈尔滨线的 atp/联锁进路 配置 + config:{onlySignalOP:true} + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING.value, + skinCode: '04', + trainingName: '进路交自动控({3})', + trainingRemark: '进路交自动控', + trainingType: 'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【进路交自动控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3151', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 3, operateCode: '315', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING.value, + skinCode: '04', + trainingName: '自动控({5})', + trainingRemark: '自动控', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '3150', tip: '鼠标左键点击【自动控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3150', tip: '鼠标左键点击【{5}】', codeType:'SIGNAL' } + ], + config:{onlySignalOP:true} + }, + { + maxDuration: 15, + minDuration: 8, + operateType:CMD.Signal.CMD_SIGNAL_DETAIL.value, + skinCode: '04', + trainingName: '查询进路信息({5} 信号机)', + trainingRemark: '查询进路信息', + trainingType:'Signal', + productTypes: ['02'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【进路信息】' }, + { deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' } + ] + }, + // 道岔列表 + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION.value, // 0312 新增定位字典 + skinCode: '04', + trainingName: '单操到定位({7})', + trainingRemark: '单操到定位({15})', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '101', tip: '鼠标右键菜单选择【单操到定位】' }, + { deviceType: '02', orderNum: 2, operateCode: '101', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION.value, + skinCode: '04', + trainingName: '单操到定位({7})', + trainingRemark: '单操到定位({7})', + trainingType: 'Switch', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1010', tip: '鼠标左键点击【道岔定操】' }, + { deviceType: '02', orderNum: 2, operateCode: '1010', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION.value, // 0313 新增定位字典 + skinCode: '04', + trainingName: '单操到反位({7})', + trainingRemark: '单操到反位({7})', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '102', tip: '鼠标右键菜单选择【单操到反位】' }, + { deviceType: '02', orderNum: 2, operateCode: '102', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION.value, + skinCode: '04', + trainingName: '单操到反位({7})', + trainingRemark: '单操到反位({7})', + trainingType: 'Switch', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1020', tip: '鼠标左键点击【道岔反操】' }, + { deviceType: '02', orderNum: 2, operateCode: '1020', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK.value, + skinCode: '04', + trainingName: '道岔单锁({7})', + trainingRemark: '道岔单锁功能', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '103', tip: '鼠标右键菜单选择【道岔单锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '103', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK.value, + skinCode: '04', + trainingName: '道岔单锁({7})', + trainingRemark: '道岔单锁功能', + trainingType: 'Switch', + productTypes: ['01'], // 现地操作 + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1030', tip: '鼠标左键点击【道岔单锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '1030', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK.value, + skinCode: '04', + trainingName: '道岔解锁({7})', + trainingRemark: '道岔解锁功能', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '104', tip: '鼠标右键菜单选择【道岔解锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '104', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK.value, + skinCode: '04', + trainingName: '道岔解锁({7})', + trainingRemark: '道岔解锁功能', + trainingType: 'Switch', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1040', tip: '鼠标左键点击【道岔解锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '1040', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_BLOCK.value, + skinCode: '04', + trainingName: '道岔封锁({7})', + trainingRemark: '道岔封锁功能', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '105', tip: '鼠标右键菜单选择【道岔封锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '1051', tip: '鼠标左键点击【确定】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '105', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_BLOCK.value, + skinCode: '04', + trainingName: '道岔封锁({7})', + trainingRemark: '道岔封锁功能', + trainingType: 'Switch', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '2991', tip: '鼠标左键点击【封锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '2991', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_UNBLOCK.value, + skinCode: '04', + trainingName: '道岔解封({7})', + trainingRemark: '道岔解封功能', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '106', tip: '鼠标右键菜单选择【道岔解封】' }, + { deviceType: '02', orderNum: 2, operateCode: '1062', tip: '鼠标左键点击【确定】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '106', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Switch.CMD_SWITCH_UNBLOCK.value, + skinCode: '04', + trainingName: '道岔解封({7})', + trainingRemark: '道岔解封功能', + trainingType: 'Switch', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '2992', tip: '鼠标左键点击【解封】' }, + { deviceType: '02', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{7}】', codeType:'SWITCH' } + ] + }, + { + maxDuration: 20, + minDuration: 10, + operateType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK.value, + skinCode: '04', + trainingName: '区故解({7})', + trainingRemark: '道岔区段故障解锁功能', + trainingType: 'Switch', + productTypes: ['02'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '109', tip: '鼠标右键菜单选择【区故解】' }, + { deviceType: '02', orderNum: 2, operateCode: '1092', tip: '鼠标左键点击【确定】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '109', tip: '输入密码123,点击【确定】按钮' } + ] + }, + // 区段列表 + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Section.CMD_SECTION_FAULT_UNLOCK.value, + skinCode: '04', + trainingName: '区故解({8}{9})', + trainingRemark: '故障解锁功能', + trainingType: 'Section', + productTypes: ['02'], + stepVOList: [ + { deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区故解】' }, + { deviceType: '03', orderNum: 2, operateCode: '4023', tip: '鼠标左键点击【确定】按钮' }, + { deviceType: '03', orderNum: 3, operateCode: '402', tip: '输入密码123,点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Section.CMD_SECTION_FAULT_UNLOCK.value, + skinCode: '04', + trainingName: '区故解({8}{9})', + trainingRemark: '故障解锁功能', + trainingType: 'Section', + productTypes: ['01'], + stepVOList: [ + { deviceType: '03', orderNum: 1, operateCode: '4020', tip: '鼠标左键点击【区故解】'}, + { deviceType: '03', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '03', orderNum: 3, operateCode: '4020', tip: '鼠标左键点击【{8}{9}】', codeType:'SECTION' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Section.CMD_SECTION_DETAILS.value, + skinCode: '04', + trainingName: '属性({8}{9})', + trainingRemark: '区段详情({8}{9})', + trainingType: 'Section', + productTypes: ['02'], + stepVOList: [ + { deviceType: '03', orderNum: 1, operateCode: '410', tip: '鼠标右键菜单选择【属性】' }, + { deviceType: '03', orderNum: 2, operateCode: '410', tip: '鼠标左键点击【确定】按钮' } + ] + }, + // 站台列表 + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN.value, + skinCode: '04', + trainingName: '设置扣车({10}-{12}站台)', + trainingRemark: '设置扣车功能', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '504', tip: '鼠标右键菜单选择【设置扣车】' }, + { deviceType: '06', orderNum: 2, operateCode: '504', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN.value, + skinCode: '04', + trainingName: '取消扣车({10}-{12}站台)', + trainingRemark: '设置取消扣车功能', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '505', tip: '鼠标右键菜单选择【取消扣车】' }, + { deviceType: '06', orderNum: 2, operateCode: '505', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_WHOLE_LINE_CANCEL_HOLD_TRAIN.value, + skinCode: '04', + trainingName: '全线取消扣车', + trainingRemark: '设置取消扣车功能({12}全线)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '505', tip: '鼠标右键菜单选择【取消扣车】' }, + { deviceType: '06', orderNum: 2, operateCode: 'com01', tip: '鼠标左键点击【{12}全线】按钮', val: 'true' }, + { deviceType: '06', orderNum: 3, operateCode: '505', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_JUMP_STOP.value, + skinCode: '04', + trainingName: '设置跳停({10}-{12}站台)', + trainingRemark: '设置跳停功能', + trainingType: 'Stand', + productTypes: ['01'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】'}, + { deviceType: '06', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【跳停】', codeType:'STAND', subType:'StopJumpLamp' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_JUMP_STOP.value, + skinCode: '04', + trainingName: '设置跳停({10}-{12}站台)', + trainingRemark: '设置跳停功能', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '502', tip: '鼠标右键菜单选择【跳停】' }, + { deviceType: '06', orderNum: 2, operateCode: '502', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP.value, + skinCode: '04', + trainingName: '取消跳停({10}-{12}站台)', + trainingRemark: '设置取消跳停功能', + trainingType: 'Stand', + productTypes: ['01'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】'}, + { deviceType: '06', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【取消跳停】', codeType:'STAND', subType:'CancelStopJumpLamp' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP.value, + skinCode: '04', + trainingName: '取消跳停({10}-{12}站台)', + trainingRemark: '设置取消跳停功能', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '503', tip: '鼠标右键菜单选择【取消跳停】' }, + { deviceType: '06', orderNum: 2, operateCode: '503', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_PARK_TIME.value, + skinCode: '04', + trainingName: '设置停站时间({10}-{12}站台)', + trainingRemark: '设置停站时间(自动, 一直有效)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' }, + { deviceType: '06', orderNum: 3, operateCode: '509', tip: '鼠标左键点击【确认】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_PARK_TIME.value, + skinCode: '04', + trainingName: '设置停站时间({10}-{12}站台)', + trainingRemark: '设置停站时间(人工, 20秒, 一直有效)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' }, + { deviceType: '06', orderNum: 2, operateCode: '5092', tip: '鼠标左键点击,选择【人工】', val: '02' }, + { deviceType: '06', orderNum: 3, operateCode: '5094', tip: '输入或鼠标点击,调整为【20】', val: '20' }, + { deviceType: '06', orderNum: 4, operateCode: '5093', tip: '标左键点击,选择【一直有效】', val: '02' }, + { deviceType: '06', orderNum: 5, operateCode: '509', tip: '鼠标左键点击【确认】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_PARK_TIME.value, + skinCode: '04', + trainingName: '设置停站时间({10}-{12}站台)', + trainingRemark: '设置停站时间(人工, 20秒, 一次有效)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '509', tip: '鼠标右键菜单选择【设置停站时间】' }, + { deviceType: '06', orderNum: 2, operateCode: '5092', tip: '鼠标左键点击,选择【人工】', val: '02' }, + { deviceType: '06', orderNum: 3, operateCode: '5094', tip: '输入或鼠标点击,调整为【20】', val: '20' }, + { deviceType: '06', orderNum: 4, operateCode: '509', tip: '鼠标左键点击【确认】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_RUN_TIME.value, + skinCode: '04', + trainingName: '设置站间运行等级({10}-{12}站台)', + trainingRemark: '设置站间运行等级(自动, 一直有效)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' }, + { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_RUN_TIME.value, + skinCode: '04', + trainingName: '设置站间运行等级({10}-{12}站台)', + trainingRemark: '设置站间运行等级(人工, 常速, 一直有效)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' }, + { deviceType: '06', orderNum: 2, operateCode: '5106', tip: '鼠标左键点击,选择【人工】', val: '02' }, + { deviceType: '06', orderNum: 3, operateCode: '5107', tip: '鼠标左键点击,取消选择【一直有效】', val: '02' }, + { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Stand.CMD_STAND_SET_RUN_TIME.value, + skinCode: '04', + trainingName: '设置站间运行等级({10}-{12}站台)', + trainingRemark: '设置站间运行等级(人工, 常速, 一次有效)', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '510', tip: '鼠标右键菜单选择【设置站间运行等级】' }, + { deviceType: '06', orderNum: 2, operateCode: '5106', tip: '鼠标左键点击,选择【人工】', val: '02' }, + { deviceType: '06', orderNum: 4, operateCode: '510', tip: '鼠标左键点击【确认】按钮' } + ] + }, + { + maxDuration: 8, // 自动生成实训失败 + minDuration: 5, + operateType: CMD.Stand.CMD_STAND_VIEW_STATUS.value, + skinCode: '04', + trainingName: '显示站台信息({10}-{12}站台)', + trainingRemark: '查询站台状态功能', + trainingType: 'Stand', + productTypes: ['02'], + stepVOList: [ + { deviceType: '06', orderNum: 1, operateCode: '507', tip: '鼠标右键菜单选择【显示站台信息】' }, + { deviceType: '06', orderNum: 2, operateCode: '0012', tip: '鼠标左键点击【退出】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO.value, + skinCode: '04', + trainingName: '设置自动进路({3})', + trainingRemark: '设置自动进路功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】' }, + { deviceType: '04', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【{3}】', codeType:'BUTTON' } + ], + // 成都三号线 特殊配置 类似于哈尔滨线的 atp/联锁进路 配置 + config:{autoRouteBT:true} + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO.value, + skinCode: '04', + trainingName: '取消自动进路({3})', + trainingRemark: '取消自动进路功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2994', tip: '鼠标左键点击【总取消】' }, + { deviceType: '04', orderNum: 2, operateCode: '2994', tip: '鼠标左键点击【{3}】', codeType:'BUTTON' } + ], + // 成都三号线 特殊配置 类似于哈尔滨线的 atp/联锁进路 配置 + config:{autoRouteBT:true} + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK.value, + skinCode: '04', + trainingName: '设置自动折返({3})', + trainingRemark: '设置自动折返功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2993', tip: '鼠标左键点击【功能按钮】' }, + { deviceType: '04', orderNum: 2, operateCode: '2993', tip: '鼠标左键点击【{3}】', codeType:'BUTTON' } + ], + // 成都三号线 特殊配置 类似于哈尔滨线的 atp/联锁进路 配置 + config:{autoCycleBT:true} + }, + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Signal.CMD_SIGNAL_CANCEL_AUTO_TURN_BACK.value, + skinCode: '04', + trainingName: '取消自动折返({3})', + trainingRemark: '取消自动折返功能', + trainingType: 'Signal', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '2994', tip: '鼠标左键点击【总取消】' }, + { deviceType: '04', orderNum: 2, operateCode: '2994', tip: '鼠标左键点击【{3}】', codeType:'BUTTON' } + ], + // 成都三号线 特殊配置 类似于哈尔滨线的 atp/联锁进路 配置 + config:{autoCycleBT:true} + }, + /** 引导总锁 */ + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Station.CMD_STATION_SET_MASTER_GUIDE_LOCK.value, + skinCode: '04', + trainingName: '引导总锁({26})', + trainingRemark: '设置引导总锁', + trainingType: 'Station', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '609', tip: '鼠标左键点击【引导总锁】' }, + { deviceType: '04', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '609', tip: '鼠标左键点击【{26}】', codeType:'BUTTON' } + ], + config:{guideTotalLockBT:true} + }, + /** 取消引导总锁 */ + { + maxDuration: 15, + minDuration: 8, + operateType: CMD.Station.CMD_STATION_CANCEL_MASTER_GUIDE_LOCK.value, + skinCode: '04', + trainingName: '取消引导总锁({26})', + trainingRemark: '取消引导总锁', + trainingType: 'Station', + productTypes: ['01'], + stepVOList: [ + { deviceType: '04', orderNum: 1, operateCode: '609', tip: '鼠标左键点击【引导总锁】' }, + { deviceType: '04', orderNum: 2, operateCode: '0011', tip: '输入密码123,点击【确定】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '609', tip: '鼠标左键点击【{26}】', codeType:'BUTTON' } + ], + config:{guideTotalLockBT:true} + } + // totalGuideLock + // + ] +}; diff --git a/src/jmapNew/theme/datie_01/planConfig.js b/src/jmapNew/theme/datie_01/planConfig.js new file mode 100644 index 000000000..0cb8b8311 --- /dev/null +++ b/src/jmapNew/theme/datie_01/planConfig.js @@ -0,0 +1,74 @@ +import { convertSheetToList } from '../parser/util'; + +export default { + /** 运行图解析方式*/ + type: 'Ratio', + + /** 边缘高度*/ + edge: 600, + + /** 间隔高度*/ + multiple: 1, + + /** 偏移时间*/ + translation: 60 * 60 * 2, + + /** excel解析配置*/ + excelConfig: { + beginRow: 1, + beginCol: 0, + fieldNum: 8, + sepField: '车次', + columns: { + '车站名称': { key: 'stationName', formatter: (val) => { return val; } }, + '到点': { key: 'arriveTime', formatter: (val) => { return val; } }, + '发点': { key: 'departureTime', formatter: (val) => { return val; } } + } + }, + + /** 解析excel数据转换为Json后台数据*/ + importData(Sheet, JsonData) { + var dataList = convertSheetToList(Sheet, false); + var needList = Object.keys(this.excelConfig.columns); + if (dataList && dataList.length) { + for (var rowIndex = this.excelConfig.beginRow; rowIndex < dataList.length; rowIndex += 1) { + for (var colIndex = this.excelConfig.beginCol; colIndex < dataList[this.excelConfig.beginCol].length; colIndex += this.excelConfig.fieldNum + 1) { + var tripNew, tripObj; + var stationObj = {}; + + tripNew = tripObj = { code: '', arrivalList: [] }; + for (var index = 0; index < this.excelConfig.fieldNum; index += 1) { + var title = dataList[0][colIndex + index]; + var value = dataList[rowIndex][colIndex + index]; + + if (title && value) { + var titleStr = `${title}`.trim(); + var valueStr = `${value}`.trim(); + + if (titleStr.includes(this.excelConfig.sepField)) { + tripObj.code = valueStr; + JsonData.forEach(elem => { + if (elem.code == valueStr) { + tripObj = elem; + return; + } + }); + } + + // 取需要的字段 + if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) { + stationObj[this.excelConfig.columns[titleStr].key] = this.excelConfig.columns[titleStr].formatter(valueStr); + } + } + } + + tripObj.arrivalList.push(stationObj); + if (tripObj.code && tripObj == tripNew) { + JsonData.push(tripObj); + } + } + } + } + return JsonData; + } +}; diff --git a/src/jmapNew/theme/factory.js b/src/jmapNew/theme/factory.js index e897e3026..2b8403844 100644 --- a/src/jmapNew/theme/factory.js +++ b/src/jmapNew/theme/factory.js @@ -49,7 +49,8 @@ class Theme { '11': 'xian_01', '12': 'ningbo_03', '13': 'race_01', - '14': 'nanjing_02' // 南京二号线 + '14': 'nanjing_02', // 南京二号线 + '15': 'datie_01' }; this._localShowMode = { // 现地显示模式 '01': 'all', // 成都一 全显 @@ -65,7 +66,8 @@ class Theme { '11': 'all', '12': 'all', '13':'all', - '14':'ecStation' + '14':'ecStation', + '15':'all' }; } @@ -74,10 +76,10 @@ class Theme { return Object.assign({}, require(`./${this._mapMenu[code || this._code]}/menus/index`).default); } - // 新版本 - loadPlanParser(code) { + // 新版本 + loadPlanParser(code) { return PlanParser.load(require(`./${this._mapMenu[code || this._code]}/planConfig`).default); - } + } // 共有字段转换 loadPropConvert(code) { diff --git a/src/jmapNew/theme/ningbo_03/menus/menuDialog/signalGuide.vue b/src/jmapNew/theme/ningbo_03/menus/menuDialog/signalGuide.vue index 6347efeff..e785fbda0 100644 --- a/src/jmapNew/theme/ningbo_03/menus/menuDialog/signalGuide.vue +++ b/src/jmapNew/theme/ningbo_03/menus/menuDialog/signalGuide.vue @@ -3,11 +3,11 @@ @@ -29,7 +29,7 @@ - +
命令
确认 @@ -62,40 +62,39 @@ import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo' import CMD from '@/scripts/cmdPlugin/CommandEnum'; export default { - props: { - initCacheMap: { - type: Object, - default() { - return {} - } - }, - initInfo: { - type: Object, - default() { - return {} - } - }, - updateDone: { - type: Number, - default: 0 - } - }, components: { NoticeInfo }, + props: { + initCacheMap: { + type: Object, + default() { + return {}; + } + }, + initInfo: { + type: Object, + default() { + return {}; + } + }, + updateDone: { + type: Number, + default: 0 + } + }, data() { return { - title: '', status: false, standStatus: true, allChecked: false, dialogShow: false, loading: false, command: true, - sure: false, - currentSelect: null, - noInit: true, - changeIgnore: false + sure: false, + currentSelect: null, + noInit: true, + changeIgnore: false }; }, computed: { @@ -105,20 +104,20 @@ export default { show() { return this.dialogShow && !this.$store.state.menuOperation.break; }, - tempList() { - return this.signalList; - }, - initSelect() { - return this.initInfo.initSelect||{}; - }, - cmdType() { - return CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE - }, - disabled() { - return !this.currentSelect || !this.currentSelect.callOn || this.noInit; - }, - domIdChoose() { - return this.dialogShow ? OperationEvent.Command.common.choose.domId : '' + tempList() { + return this.signalList; + }, + initSelect() { + return this.initInfo.initSelect || {}; + }, + cmdType() { + return CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE; + }, + disabled() { + return !this.currentSelect || !this.currentSelect.callOn || this.noInit; + }, + domIdChoose() { + return this.dialogShow ? OperationEvent.Command.common.choose.domId : ''; }, domIdConfirm() { return this.dialogShow ? OperationEvent.Command.common.confirm.domId : ''; @@ -128,7 +127,10 @@ export default { }, domIdApply() { return this.dialogShow ? OperationEvent.Command.common.apply.domId : ''; - } + }, + title() { + return this.sure ? '确认/取消引导' : '初始化引导'; + } }, watch: { '$store.state.map.keyboardEnterCount': function (val) { @@ -136,76 +138,89 @@ export default { this.commit(); } }, - updateDone() { - if (this.currentSelect) { - this.noInit = this.sure && (this.getCacheMap()[this.currentSelect.code]||{}).done != 'one'; - } - } + updateDone() { + if (this.currentSelect) { + this.noInit = this.sure && (this.getCacheMap()[this.currentSelect.code] || {}).done != 'one'; + } + } }, methods: { - getCacheMap() { - return this.initCacheMap[this.cmdType.value]||{}; - }, + getCacheMap() { + return this.initCacheMap[this.cmdType.value] || {}; + }, doShow(operate, sure) { this.operate = operate; - this.sure = sure; - if (!sure) this.command = true; - this.title = `${sure? '确认/取消引导': '初始化引导'}`; + this.sure = sure; + if (!sure) this.command = true; - this.currentSelect = this.$store.getters['map/getDeviceByCode'](this.initSelect.code); + this.currentSelect = this.$store.getters['map/getDeviceByCode'](this.initSelect.code); this.dialogShow = true; this.$nextTick(function () { - this.changeIgnore = sure; - this.$refs.table.setCurrentRow(sure? this.tempList.find(el => el.code == this.initSelect.code): null); + this.changeIgnore = sure; + this.$refs.table.setCurrentRow(sure ? this.tempList.find(el => el.code == this.initSelect.code) : null); this.$store.dispatch('training/emitTipFresh'); }); }, + rightClickShow(operate, sure, selected) { + this.operate = operate; + this.sure = sure; + if (!sure) this.command = true; + this.currentSelect = this.$store.getters['map/getDeviceByCode'](selected.code); + console.log(this.currentSelect, '==========', this.currentSelect.callOn, this.noInit); + this.dialogShow = true; + this.$nextTick(function () { + this.changeIgnore = sure; + this.$refs.table.setCurrentRow(this.tempList.find(el => el.code == selected.code)); + this.$store.dispatch('training/emitTipFresh'); + this.$emit('updateDone'); + }); + }, doClose() { this.loading = false; this.dialogShow = false; - this.sure && (this.currentSelect = null); + this.sure && (this.currentSelect = null); this.sure && this.$refs.table.setCurrentRow(); - this.sure && this.$root.$emit('iniCacheMap', this.cmdType.value, - Object.fromEntries(Object.entries(this.getCacheMap()).filter(el => el[1].done == 'done')) - ) + this.sure && this.$root.$emit('iniCacheMap', this.cmdType.value, + Object.fromEntries(Object.entries(this.getCacheMap()).filter(el => el[1].done == 'done')) + ); this.$store.dispatch('training/emitTipFresh'); }, commit(isClose = false) { - if (this.currentSelect && + if (this.currentSelect && this.currentSelect.code == this.initSelect.code) { - const cacheMap= this.getCacheMap(); - const isOK = this.command&&(!this.sure || this.sure&&cacheMap[this.currentSelect.code]) - const operate = { - cmdType: this.sure&&isOK? this.cmdType: null, - operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation, - over: this.sure, - param: {signalCode: this.currentSelect.code} - }; + const cacheMap = this.getCacheMap(); + const isOK = this.command && (!this.sure || this.sure && cacheMap[this.currentSelect.code]); + const operate = { + cmdType: this.sure && isOK ? this.cmdType : null, + operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation, + over: this.sure, + param: {signalCode: this.currentSelect.code} + }; - this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { - if (valid) { - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); - if (isOK) { - this.$root.$emit('appendCache', this.cmdType.value, this.currentSelect.code, { done: this.sure? 'two': 'one'}); - } else { - this.$root.$emit('removeCache', this.cmdType.value, this.currentSelect.code); - } - this.$emit('updateDone') - this.$store.dispatch('map/flushMapRef'); - isClose && this.doClose(); - } - }).catch(() => { - isClose && this.doClose(); - this.$refs.noticeInfo.doShow(); - }); - } else { - this.$messageBox('两次选择不一致'); - } + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + if (isOK) { + this.$root.$emit('appendCache', this.cmdType.value, this.currentSelect.code, { done: this.sure ? 'two' : 'one'}); + } else { + this.$root.$emit('removeCache', this.cmdType.value, this.currentSelect.code); + } + this.$emit('updateDone'); + this.$store.dispatch('map/flushMapRef'); + isClose && this.doClose(); + } + }).catch(() => { + isClose && this.doClose(); + this.$refs.noticeInfo.doShow(); + }); + } else { + this.$messageBox('两次选择不一致'); + } }, - handleCurrentChange(val) { - if (!val) { return; } - this.currentSelect = this.$store.getters['map/getDeviceByCode'](val.code); - this.$emit('updateDone') + handleCurrentChange(val) { + if (!val) { return; } + this.currentSelect = this.$store.getters['map/getDeviceByCode'](val.code); + this.$emit('updateDone'); if (this.changeIgnore) { return; } const step = { @@ -214,12 +229,12 @@ export default { val: val.code }; - this.changeIgnore = false; - this.$emit('updateDone') + this.changeIgnore = false; + this.$emit('updateDone'); this.$store.dispatch('training/nextNew', step).then(({ valid }) => { if (valid) { - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); - this.sure || this.$emit('initSelect', this.currentSelect); + this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); + this.sure || this.$emit('initSelect', this.currentSelect); } }).catch(_ => { this.$refs.noticeInfo.doShow(); @@ -241,19 +256,19 @@ export default { }, getCanGuide(code) { const elem = this.$store.getters['map/getDeviceByCode'](code); - return elem.callOn ? '是': '否'; + return elem.callOn ? '是' : '否'; }, getProcess(code) { - const cacheMap = this.getCacheMap(); - const cache = cacheMap[code]; - if (cache) { - if (this.sure) { - return cache.done == 'two' ? '确认引导完成' : '等待确认/取消'; - } else { - return cache.done == 'one' ? '已初始化' : '' - } - } - return ''; + const cacheMap = this.getCacheMap(); + const cache = cacheMap[code]; + if (cache) { + if (this.sure) { + return cache.done == 'two' ? '确认引导完成' : '等待确认/取消'; + } else { + return cache.done == 'one' ? '已初始化' : ''; + } + } + return ''; }, cancel() { const operate = { diff --git a/src/jmapNew/theme/ningbo_03/menus/menuSignal.vue b/src/jmapNew/theme/ningbo_03/menus/menuSignal.vue index 4c0451380..5c962eb6e 100644 --- a/src/jmapNew/theme/ningbo_03/menus/menuSignal.vue +++ b/src/jmapNew/theme/ningbo_03/menus/menuSignal.vue @@ -1,36 +1,31 @@ + diff --git a/src/views/newMap/displayCity/demon/equipment.vue b/src/views/newMap/displayCity/demon/equipment.vue new file mode 100644 index 000000000..781517835 --- /dev/null +++ b/src/views/newMap/displayCity/demon/equipment.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/views/newMap/displayCity/demon/faultChoose.vue b/src/views/newMap/displayCity/demon/faultChoose.vue new file mode 100644 index 000000000..23c550f25 --- /dev/null +++ b/src/views/newMap/displayCity/demon/faultChoose.vue @@ -0,0 +1,600 @@ + + + + + diff --git a/src/views/newMap/displayCity/demon/setTime.vue b/src/views/newMap/displayCity/demon/setTime.vue new file mode 100644 index 000000000..d64695573 --- /dev/null +++ b/src/views/newMap/displayCity/demon/setTime.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/views/newMap/displayCity/demonMenu.vue b/src/views/newMap/displayCity/demonMenu.vue new file mode 100644 index 000000000..ba458b3c1 --- /dev/null +++ b/src/views/newMap/displayCity/demonMenu.vue @@ -0,0 +1,190 @@ + + + diff --git a/src/views/newMap/displayCity/index.vue b/src/views/newMap/displayCity/index.vue new file mode 100644 index 000000000..bd400d64c --- /dev/null +++ b/src/views/newMap/displayCity/index.vue @@ -0,0 +1,307 @@ + + diff --git a/src/views/newMap/displayCity/menuDemon.vue b/src/views/newMap/displayCity/menuDemon.vue new file mode 100644 index 000000000..ee68d16b5 --- /dev/null +++ b/src/views/newMap/displayCity/menuDemon.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/src/views/newMap/displayCity/menuSchema.vue b/src/views/newMap/displayCity/menuSchema.vue new file mode 100644 index 000000000..f0583b583 --- /dev/null +++ b/src/views/newMap/displayCity/menuSchema.vue @@ -0,0 +1,111 @@ + + + diff --git a/src/views/newMap/displayCity/menuSystemTime.vue b/src/views/newMap/displayCity/menuSystemTime.vue new file mode 100644 index 000000000..06d4b7486 --- /dev/null +++ b/src/views/newMap/displayCity/menuSystemTime.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/newMap/displayCity/utils.js b/src/views/newMap/displayCity/utils.js new file mode 100644 index 000000000..6b99aee0b --- /dev/null +++ b/src/views/newMap/displayCity/utils.js @@ -0,0 +1,58 @@ +import ConstConfig from '@/scripts/ConstConfig'; +import Cookies from 'js-cookie'; +import store from '@/store/index'; +export function covertMemberData (activeTrainList, resp) { + let lastData = JSON.stringify(resp); + const roleTypeList = ConstConfig.ConstSelect.roleTypeNew; + roleTypeList.forEach(function(element) { + const rolename = element.value; + if (Cookies.get('user_lang') == 'en') { + lastData = lastData.replace(new RegExp(rolename, 'g'), element.enLabel); + } else { + lastData = lastData.replace(new RegExp(rolename, 'g'), element.label); + } + }); + lastData = JSON.parse(lastData); + const lastMemberList = []; + // const electricDispatcherList = []; + const deviceListData = [[], [], [], [], [], [], [], []]; + const driverList = []; + lastData.forEach((member, index)=>{ + if (member.userId && member.userId == store.state.user.id) { + member.disabled = true; + member.userName = store.state.user.nickname; + store.dispatch('training/setOrignalUserRoleId', member.id); + } else { + member.disabled = false; + } + const userName = member.userName ? '-' + member.userName : ''; + const name = member.name ? '-' + member.name : ''; + if (member.deviceCode) { + const device = store.getters['map/getDeviceByCode'](member.deviceCode); + member.deviceName = device.name || device.groupNumber; + member.label = member.type + member.deviceName + name + userName; + member.normalName = member.type + member.deviceName + name; + } else { + member.deviceName = ''; + member.label = member.type + name + userName; + member.normalName = member.type + name; + } + const deviceType = ['行调', '通号', '行值', '司机', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼']; + const deviceTypeIndex = deviceType.indexOf(member.type); + if (deviceTypeIndex >= 0) { + if (deviceTypeIndex == 3) { + if (activeTrainList.length > 0) { + if (activeTrainList.includes(member.deviceCode)) { + deviceListData[deviceTypeIndex].push(member); + } + } + lastMemberList.push(member); + driverList.push(member); + } else { + deviceListData[deviceTypeIndex].push(member); + lastMemberList.push(member); + } + } + }); + return {lastMemberList:lastMemberList, deviceListData:deviceListData, driverList:driverList}; +} diff --git a/src/views/newMap/newMapdraft/mapoperate/index.vue b/src/views/newMap/newMapdraft/mapoperate/index.vue index 0f7beb327..caf36b77c 100644 --- a/src/views/newMap/newMapdraft/mapoperate/index.vue +++ b/src/views/newMap/newMapdraft/mapoperate/index.vue @@ -67,6 +67,7 @@ import Arrow from './arrow'; import SplitScreen from './splitScreen'; import FloodGate from './floodGate'; import DirectionRod from './directionRod'; +import SignalButton from './signalButton'; import { EventBus } from '@/scripts/event-bus'; export default { @@ -97,7 +98,8 @@ export default { Arrow, SplitScreen, FloodGate, - DirectionRod + DirectionRod, + SignalButton }, props: { selected: { @@ -138,7 +140,8 @@ export default { {label: '站间分隔', name:'SplitStation', menus:SplitStation}, {label: '箭头', name:'Arrow', menus:Arrow}, {label: '防淹门', name: 'FloodGate', menus: FloodGate}, - {label: '方向杆', name: 'DirectionRod', menus: DirectionRod} + {label: '方向杆', name: 'DirectionRod', menus: DirectionRod}, + {label: '信号按钮', name: 'SignalButton', menus: SignalButton } ], selectDevice:'', enabledTab: 'Section', diff --git a/src/views/newMap/newMapdraft/mapoperate/signalButton.vue b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue new file mode 100644 index 000000000..018a8c8ae --- /dev/null +++ b/src/views/newMap/newMapdraft/mapoperate/signalButton.vue @@ -0,0 +1,299 @@ + + + + diff --git a/src/views/publish/mapGroup/editGroup.vue b/src/views/publish/mapGroup/editGroup.vue index 302fdcbcd..6f089b36c 100644 --- a/src/views/publish/mapGroup/editGroup.vue +++ b/src/views/publish/mapGroup/editGroup.vue @@ -28,7 +28,7 @@ export default { isEdit: false, typeList: [{ label: '数据', value: 'DATA' }, { label: '运行线', value: 'RUNPLAN' }], formModel: { - id: '', + groupId: '', name: '', type: '', mapIds: [] @@ -70,7 +70,7 @@ export default { this.dialogVisible = true; if (row) { this.isEdit = true; - this.formModel.id = row.id; + this.formModel.groupId = row.id; this.formModel.name = row.name; this.formModel.type = row.type; this.formModel.mapIds = [...row.mapIds]; @@ -82,17 +82,21 @@ export default { } }, doCreate() { - const _that = this; + const _that = this; this.$refs.dataform.validateForm(() => { if (_that.isEdit) { updateMapGroup(_that.formModel).then(resp => { _that.$message.success('修改成功!'); + _that.$emit('refresh'); + _that.doClose(); }).catch(error => { _that.$message.error('修改失败:' + error.message); }); } else { createMapGroup(_that.formModel).then(resp => { _that.$message.success('创建成功!'); + _that.$emit('refresh'); + _that.doClose(); }).catch(error => { _that.$message.error('创建失败:' + error.message); }); diff --git a/src/views/publish/mapGroup/index.vue b/src/views/publish/mapGroup/index.vue index bfaf5aa81..f9e76d23d 100644 --- a/src/views/publish/mapGroup/index.vue +++ b/src/views/publish/mapGroup/index.vue @@ -7,7 +7,7 @@