Merge branch 'dev' of https://git.code.tencent.com/lian-cbtc/jl-client into dev
# Conflicts: # src/jmapNew/shape/Train/index.js
This commit is contained in:
commit
7753c53ee0
@ -100,7 +100,7 @@ export default class TrainBody extends Group {
|
||||
const tripNumber = style.Train.trainTarget.tripNumberPrefix + (style.Train.trainTarget.defaultDirectionCode
|
||||
? (model.directionCode || style.Train.trainTarget.defaultDirectionCode) + (model.tripNumber || style.Train.trainTarget.defaultTripNumber)
|
||||
: model.tripNumber || style.Train.trainTarget.defaultTripNumber) + ''; // 车次号
|
||||
const targetCode = style.Train.trainNumber.targetCodePrefix + (model.targetCode || style.Train.trainNumber.defaultTargetCode) + ''; // 目的地码
|
||||
const targetCode = style.Train.trainNumber.targetCodePrefix + (model.destinationCode || style.Train.trainNumber.defaultTargetCode) + ''; // 目的地码
|
||||
const groupNumber = style.Train.trainTargetNumber.groupNumberPrefix + (model.groupNumber || style.Train.trainTargetNumber.defaultGroupNumber) + ''; // 车组号
|
||||
this.textTrainServer = new ETextName({
|
||||
zlevel: model.zlevel,
|
||||
|
@ -4,16 +4,16 @@ const deviceState = {};
|
||||
|
||||
deviceState[deviceType.Section] = {
|
||||
/** 区段状态*/
|
||||
blockade: false, // 是否封锁
|
||||
routeLock: false, // 是否进路锁闭
|
||||
overlapLock: false, // 进路延续保护锁闭
|
||||
ctOccupied: false, // 通信车占用
|
||||
nctOccupied: false, // 非通信车占用
|
||||
cutOff: false, // 是否切除
|
||||
invalid: false, // 是否失效
|
||||
blockade: 0, // 是否封锁
|
||||
routeLock: 0, // 是否进路锁闭
|
||||
overlapLock: 0, // 进路延续保护锁闭
|
||||
ctOccupied: 0, // 通信车占用
|
||||
nctOccupied: 0, // 非通信车占用
|
||||
cutOff: 0, // 是否切除
|
||||
invalid: 0, // 是否失效
|
||||
speedUpLimit: 0, // 最高限速
|
||||
/** 是否故障*/
|
||||
fault: false /** 非故障*/
|
||||
fault: 0 /** 非故障*/
|
||||
};
|
||||
|
||||
deviceState[deviceType.Switch] = {
|
||||
@ -50,7 +50,7 @@ deviceState[deviceType.Switch] = {
|
||||
// State14: '14' /** 道岔状态类型 - 封锁*/
|
||||
// },
|
||||
/** 是否故障*/
|
||||
fault: false /** 非故障*/
|
||||
fault: 0 /** 非故障*/
|
||||
// /** 是否切除*/
|
||||
// cutOff: {
|
||||
// Default: false /** 是否切除*/
|
||||
@ -58,19 +58,19 @@ deviceState[deviceType.Switch] = {
|
||||
};
|
||||
|
||||
deviceState[deviceType.Signal] = {
|
||||
blockade: false, // 是否锁闭
|
||||
logicLight: false, // 逻辑点灯
|
||||
greenOpen: false, // 绿灯开放
|
||||
yellowOpen: false, // 黄灯开放
|
||||
redOpen: true, // 红灯开放(默认状态)
|
||||
blockade: 0, // 是否锁闭
|
||||
logicLight: 0, // 逻辑点灯
|
||||
greenOpen: 0, // 绿灯开放
|
||||
yellowOpen: 0, // 黄灯开放
|
||||
redOpen: 1, // 红灯开放(默认状态)
|
||||
delayTime: 0, // 信号机延迟解锁倒计时
|
||||
atsControl: 1, // 0是人工,1是自动
|
||||
fault: false // 是否故障
|
||||
fault: 0 // 是否故障
|
||||
};
|
||||
|
||||
deviceState[deviceType.Station] = {
|
||||
/** 是否故障*/
|
||||
fault: false, /** 非故障*/
|
||||
fault: 0, /** 非故障*/
|
||||
controlMode: 'Center'
|
||||
// controlMode: 'Local' // Center 中控 Local 站控 Emergency 紧急站控 Interlock 联锁控
|
||||
};
|
||||
@ -87,7 +87,7 @@ deviceState[deviceType.Psd] = {
|
||||
// State03: '03' /** 切除 */
|
||||
// },
|
||||
/** 是否故障*/
|
||||
fault: false /** 非故障*/
|
||||
fault: 0 /** 非故障*/
|
||||
};
|
||||
|
||||
deviceState[deviceType.StationDelayUnlock] = {
|
||||
@ -99,7 +99,7 @@ deviceState[deviceType.StationDelayUnlock] = {
|
||||
|
||||
// },
|
||||
/** 是否故障*/
|
||||
fault: false /** 非故障*/
|
||||
fault: 0 /** 非故障*/
|
||||
};
|
||||
|
||||
deviceState[deviceType.StationStand] = {
|
||||
@ -123,7 +123,7 @@ deviceState[deviceType.StationStand] = {
|
||||
// State04: '04' /** 默认 */
|
||||
// },
|
||||
/** 是否故障*/
|
||||
fault: false /** 非故障*/
|
||||
fault: 0 /** 非故障*/
|
||||
};
|
||||
|
||||
deviceState[deviceType.Train] = {
|
||||
@ -207,7 +207,7 @@ deviceState[deviceType.Train] = {
|
||||
// State02: '02' /** 有报警 */
|
||||
// },
|
||||
/** 车门是否关闭且锁闭 */
|
||||
doorCloseLock: true,
|
||||
doorCloseLock: 1,
|
||||
/** 列车运行级别 */
|
||||
runLevel: 'CBTC',
|
||||
/** 驾驶模式 */
|
||||
@ -219,7 +219,18 @@ deviceState[deviceType.Train] = {
|
||||
/** 列车是否向右形式 */
|
||||
right: 1,
|
||||
/** 是否故障*/
|
||||
fault: false /** 非故障*/
|
||||
fault: 0 /** 非故障*/,
|
||||
/** 是否跳停 */
|
||||
jump: 0,
|
||||
/** 是否扣车 */
|
||||
hold: 0,
|
||||
/** 列车类型 PLAN计划车 HEAD 头码车 MANUAL 人工车*/
|
||||
type: 'PLAN',
|
||||
/** 列车精确位置 (成都一号线使用)*/
|
||||
offsetp:0,
|
||||
/** 列车所在物理区段 */
|
||||
physicalCode:''
|
||||
|
||||
};
|
||||
|
||||
export default deviceState;
|
||||
|
@ -83,10 +83,14 @@ class Status {
|
||||
right: device.right, /** 列车方向 */
|
||||
doorCloseLock: device.doorCloseLock, /** 车门是否关闭且锁闭 */
|
||||
stop: device.stop, /** 列车是否停稳 */
|
||||
type: device.type, /** 列车类型 */
|
||||
type: device.type, /** 列车类型 PLAN计划车 HEAD 头码车 MANUAL 人工车*/
|
||||
runLevel: device.runLevel, /** 列车运行级别 */
|
||||
driveMode: device.driveMode, /** 驾驶模式 */
|
||||
fault: device.fault /** 非故障*/
|
||||
fault: device.fault, /** 非故障*/
|
||||
jump: device.jump, /** 是否跳停 */
|
||||
hold: device.hold, /** 是否扣车 */
|
||||
offsetp:device.offsetp, /** 列车精确位置 (成都一号线使用)*/
|
||||
physicalCode:device.physicalCode /** 列车所在物理区段 */
|
||||
};
|
||||
}
|
||||
handleStation(device) {
|
||||
|
@ -46,6 +46,7 @@ class Jlmap {
|
||||
const width = opts.dom.clientWidth;
|
||||
const height = opts.dom.clientHeight;
|
||||
this.zoomOnMouseWheel = opts.options.zoomOnMouseWheel;
|
||||
this.previewOrMapDraw = opts.showConfig.previewOrMapDraw;
|
||||
|
||||
this.$zr = zrender.init(opts.dom, deepAssign({ renderer, devicePixelRatio, width, height }, opts.config));
|
||||
|
||||
@ -140,6 +141,7 @@ class Jlmap {
|
||||
this.$mouseController.disable();
|
||||
} else {
|
||||
opts['zoomOnMouseWheel'] = this.zoomOnMouseWheel;
|
||||
opts['previewOrMapDraw'] = this.previewOrMapDraw;
|
||||
this.$mouseController.enable(opts);
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,7 @@ class MouseController extends Eventful {
|
||||
this._moveOnMouseMove = opts.moveOnMouseMove || true;
|
||||
this._zoomOnMouseWheel = opts.zoomOnMouseWheel || false;
|
||||
this._preventDefaultMouseMove = opts.preventDefaultMouseMove || true;
|
||||
this._previewOrMapDraw = opts.previewOrMapDraw || false;
|
||||
|
||||
this.disable();
|
||||
|
||||
@ -121,7 +122,7 @@ class MouseController extends Eventful {
|
||||
this._preventDefaultMouseMove && eventTool.stop(e.event);
|
||||
|
||||
this.trigger(this.events.__Pan, { dx, dy, oldX, oldY, newX: this._x, newY: this._y });
|
||||
} else if (e.which === 3 && this._zoomOnMouseWheel) {
|
||||
} else if (e.which === 3 && this._zoomOnMouseWheel && this._previewOrMapDraw) {
|
||||
this.handleMouseMoveRight({x: e.offsetX, y: e.offsetY});
|
||||
}
|
||||
}
|
||||
@ -130,7 +131,7 @@ class MouseController extends Eventful {
|
||||
if (!eventTool.notLeftMouse(e)) {
|
||||
this._dragging = false;
|
||||
}
|
||||
if (this._zoomOnMouseWheel && this.$jmap.mapDevice['check_box']) {
|
||||
if (this._zoomOnMouseWheel && this.$jmap.mapDevice['check_box'] && this._previewOrMapDraw ) {
|
||||
this.eventTarget = this.$jmap.mapDevice['check_box'].instance;
|
||||
this.handleBoundingRect(this.eventTarget);
|
||||
var em = this.checkEvent(e);
|
||||
@ -310,8 +311,8 @@ class MouseController extends Eventful {
|
||||
const dy = originY + this.$jmap.$options.offsetY;
|
||||
const x = dx / this.$jmap.$options.scaleRate;
|
||||
const y = dy / this.$jmap.$options.scaleRate;
|
||||
const width = Math.abs(point1.x - point2.x) / this.$jmap.$options.scaleRate + 10;
|
||||
const height = Math.abs(point1.y - point2.y) / this.$jmap.$options.scaleRate + 10;
|
||||
const width = Math.abs(point1.x - point2.x) / this.$jmap.$options.scaleRate;
|
||||
const height = Math.abs(point1.y - point2.y) / this.$jmap.$options.scaleRate;
|
||||
this.$jmap.renderCheckBox({code: 'check_box', _type: 'CheckBox', point: {x: x, y: y}, width: width, height: height });
|
||||
}
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ export default class Section extends Group {
|
||||
/** 区段名称 (逻辑区段名称 或 物理区段名称 是否显示)*/
|
||||
let tempx = x;
|
||||
let tempy = y;
|
||||
if (model.type == '01') {
|
||||
if (model.type == '01') { // 物理区段名称
|
||||
if (style.Section.text.show) {
|
||||
const opposite = style.Section.text.opposite ? -1 : 1;
|
||||
tempx += traingle.getSin(style.Section.text.distance);
|
||||
@ -275,7 +275,7 @@ export default class Section extends Group {
|
||||
});
|
||||
this.add(this.name);
|
||||
}
|
||||
} else if (model.type == '02') {
|
||||
} else if (model.type == '02') { // 逻辑区段
|
||||
if (style.Section.logicText.show) {
|
||||
const opposite = style.Section.logicText.opposite ? -1 : 1;
|
||||
tempx += traingle.getSin(style.Section.logicText.distance);
|
||||
@ -298,7 +298,7 @@ export default class Section extends Group {
|
||||
});
|
||||
this.add(this.name);
|
||||
}
|
||||
} else if (model.type == '03') {
|
||||
} else if (model.type == '03') { // 道岔区段
|
||||
if (style.Section.switchText.show) {
|
||||
this.name = new ETextName({
|
||||
zlevel: this.zlevel,
|
||||
@ -318,7 +318,7 @@ export default class Section extends Group {
|
||||
});
|
||||
this.add(this.name);
|
||||
}
|
||||
} else if (model.type == '04') {
|
||||
} else if (model.type == '04') { // 道岔计轴区段名称
|
||||
if (router.currentRoute.path.startsWith('/design/usermap/map/draw') && router.currentRoute.path.endsWith('/draft')) {
|
||||
this.name = new ETextName({
|
||||
zlevel: this.zlevel,
|
||||
|
@ -20,16 +20,16 @@ class EMouse extends Group {
|
||||
}
|
||||
let trainType = '';
|
||||
switch (this.device.model.type) {
|
||||
case '01': trainType = LangStorage.getLang() == 'en' ? 'Plan the car' : '计划车'; break;
|
||||
case '02': trainType = LangStorage.getLang() == 'en' ? 'Head size car' : '头码车'; break;
|
||||
case '03': trainType = LangStorage.getLang() == 'en' ? 'Artificial car' : '人工车'; break;
|
||||
case 'PLAN': trainType = LangStorage.getLang() == 'en' ? 'Plan the car' : '计划车'; break;
|
||||
case 'HEAD': trainType = LangStorage.getLang() == 'en' ? 'Head size car' : '头码车'; break;
|
||||
case 'MANUAL': trainType = LangStorage.getLang() == 'en' ? 'Artificial car' : '人工车'; break;
|
||||
default: trainType = LangStorage.getLang() == 'en' ? 'unknown' : '未知'; break;
|
||||
}
|
||||
let text = '';
|
||||
if (LangStorage.getLang() == 'en') {
|
||||
text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.targetCode ? this.device.model.targetCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${this.device.model.directionType == '02' ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n Current Station: \n Train-ground communication: normal \n Operation Speed level: 4 \n Detained: ${!this.device.model.hold ? 'Normal' : 'Detained'}\n \n 跳停状态: ${!this.device.model.jump ? 'Normal' : 'Skip to continue moving'}Stationary: ${!this.device.model.stop ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`;
|
||||
text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${this.device.model.directionType == '02' ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n Current Station: \n Train-ground communication: normal \n Operation Speed level: 4 \n Detained: ${this.device.model.hold ? 'Detained' : 'Normal'}\n \n 跳停状态: ${this.device.model.jump ? 'Skip to continue moving' : 'Normal'}Stationary: ${!this.device.model.stop ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`;
|
||||
} else {
|
||||
text = `列车类型: ${trainType} \n表\0\0\0\0号: ${this.device.model.serviceNumber}\n车\0次\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.targetCode ? this.device.model.targetCode : ''}\n车\0组\0号: ${this.device.model.groupNumber}\n早\0晚\0点: ${destinationText}\n运行方向: ${this.device.model.directionType == '02' ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${ !this.device.model.hold ? '正常' : '扣车'}\n 跳停状态: ${!this.device.model.jump ? '正常' : '跳停'} \n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`;
|
||||
text = `列车类型: ${trainType} \n表\0\0\0\0号: ${this.device.model.serviceNumber}\n车\0次\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n车\0组\0号: ${this.device.model.groupNumber}\n早\0晚\0点: ${destinationText}\n运行方向: ${this.device.model.directionType == '02' ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${ this.device.model.hold ? '扣车' : '正常'}\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'} \n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`;
|
||||
}
|
||||
// 文字描述
|
||||
this.arrowText = new Text({
|
||||
|
@ -21,9 +21,9 @@ export default class ETriangle extends Group {
|
||||
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:'#FFFF00',
|
||||
stroke:'#00FF00',
|
||||
lineWidth: 0.5,
|
||||
fill: '#FFFF00'
|
||||
fill: '#00FF00'
|
||||
}
|
||||
});
|
||||
this.add(this.angle);
|
||||
|
@ -102,7 +102,7 @@ export default class TrainBody extends Group {
|
||||
const tripNumber = style.Train.trainTarget.tripNumberPrefix + (style.Train.trainTarget.defaultDirectionCode
|
||||
? (model.directionCode || style.Train.trainTarget.defaultDirectionCode) + (model.tripNumber || style.Train.trainTarget.defaultTripNumber)
|
||||
: model.tripNumber || style.Train.trainTarget.defaultTripNumber) + ''; // 车次号
|
||||
const targetCode = style.Train.trainNumber.targetCodePrefix + (model.targetCode || style.Train.trainNumber.defaultTargetCode) + ''; // 目的地码
|
||||
const targetCode = style.Train.trainNumber.targetCodePrefix + (model.destinationCode || style.Train.trainNumber.defaultTargetCode) + ''; // 目的地码
|
||||
const groupNumber = style.Train.trainTargetNumber.groupNumberPrefix + (model.groupNumber || style.Train.trainTargetNumber.defaultGroupNumber) + ''; // 车组号
|
||||
this.textTrainServer = new ETextName({
|
||||
zlevel: model.zlevel,
|
||||
|
@ -18,6 +18,8 @@ export default class Train extends Group {
|
||||
this.z = 40;
|
||||
this.size = 0;
|
||||
this.section = null;
|
||||
this.nextPointIndex = 1;
|
||||
this.currentAdd = 0;
|
||||
this.isShowShape = true;
|
||||
this.fontSize = style.Train.common.useSelfText ? style.Train.common.nameFontSize || style.Train.common.trainTextFontSize : model.nameFontSize || style.Train.common.nameFontSize || style.Train.common.trainTextFontSize;
|
||||
this.newScale = this.fontSize / style.Train.common.trainTextFontSize;
|
||||
@ -70,7 +72,7 @@ export default class Train extends Group {
|
||||
destinationStatus: model.destinationStatus,
|
||||
serviceNumber: model.serviceNumber,
|
||||
tripNumber: model.tripNumber,
|
||||
targetCode: model.targetCode,
|
||||
destinationCode: model.destinationCode,
|
||||
groupNumber: model.groupNumber,
|
||||
directionType: model.directionType,
|
||||
directionCode: model.directionCode,
|
||||
@ -107,6 +109,7 @@ export default class Train extends Group {
|
||||
scale: this.newScale
|
||||
});
|
||||
|
||||
if (style.Section.trainPosition.display) {
|
||||
const data = this.model.physicalCode;
|
||||
const oldmodel = store.getters['map/getDeviceByCode'](data);
|
||||
const leftPoint = oldmodel.points[0];
|
||||
@ -114,6 +117,20 @@ export default class Train extends Group {
|
||||
const right = this.model.right == 1 ? 1 : 0;
|
||||
this.startX = leftPoint.x + (1 - right) * (rightPoint.x - leftPoint.x);
|
||||
this.startY = leftPoint.y + (1 - right) * (rightPoint.y - leftPoint.y);
|
||||
// 算出折线的长度
|
||||
this.lineLength = 0;
|
||||
let oldPoint = null;
|
||||
oldmodel.points.forEach((point)=>{
|
||||
if (oldPoint) {
|
||||
const temp = Math.sqrt(
|
||||
Math.pow(point.x - oldPoint.x, 2) +
|
||||
Math.pow(point.y - oldPoint.y, 2),
|
||||
);
|
||||
this.lineLength += temp;
|
||||
}
|
||||
oldPoint = point;
|
||||
});
|
||||
// this.animatePoint = {x:this.startX, y:this.startY};
|
||||
this.triangle = new ETriangle({
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
@ -122,6 +139,7 @@ export default class Train extends Group {
|
||||
point:{x:this.startX, y:this.startY}
|
||||
});
|
||||
this.add(this.triangle);
|
||||
}
|
||||
|
||||
this.add(this.trainB);
|
||||
this.add(this.trainL);
|
||||
@ -138,14 +156,61 @@ export default class Train extends Group {
|
||||
|
||||
updateSection() {
|
||||
const train = this.model;
|
||||
if (train.physicalCode && train.offsetp) {
|
||||
if (train.physicalCode && train.offsetp && this.triangle) {
|
||||
const data = train.physicalCode;
|
||||
const oldmodel = store.getters['map/getDeviceByCode'](data);
|
||||
// 待处理(多个点的问题)
|
||||
// const points = train.right == 1 ? oldmodel.points : oldmodel.points.reverse();
|
||||
const points = oldmodel.points;
|
||||
// 目标距离
|
||||
let targetDistance = Math.sqrt(
|
||||
Math.pow(points[this.nextPointIndex - 1].x - points[this.nextPointIndex].x, 2) +
|
||||
Math.pow(points[this.nextPointIndex - 1].y - points[this.nextPointIndex].y, 2),
|
||||
);
|
||||
// // 当前距离
|
||||
// const currentDistance = Math.sqrt(
|
||||
// Math.pow(points[this.nextPointIndex - 1].x - this.animatePoint.x, 2) +
|
||||
// Math.pow(points[this.nextPointIndex - 1].y - this.animatePoint.y, 2),
|
||||
// );
|
||||
|
||||
const currentDistance = this.lineLength * train.offsetp - this.currentAdd;
|
||||
|
||||
// let cureent this.lineLength * train.offsetp
|
||||
// 利用运动距离与目标距离, 判断运动的点是否超过下一个目标点, 超过了就重置下一个点
|
||||
if (currentDistance >= targetDistance) {
|
||||
// this.animatePoint = {
|
||||
// x: points[this.nextPointIndex].x,
|
||||
// y: points[this.nextPointIndex].y
|
||||
// };
|
||||
this.nextPointIndex++;
|
||||
this.currentAdd += targetDistance;
|
||||
targetDistance = Math.sqrt(
|
||||
Math.pow(points[this.nextPointIndex - 1].x - points[this.nextPointIndex].x, 2) +
|
||||
Math.pow(points[this.nextPointIndex - 1].y - points[this.nextPointIndex].y, 2),
|
||||
);
|
||||
}
|
||||
if (this.nextPointIndex > points.length - 1) {
|
||||
const leftPoint = oldmodel.points[0];
|
||||
const rightPoint = oldmodel.points[oldmodel.points.length - 1];
|
||||
if (this.triangle) {
|
||||
this.startX = leftPoint.x + (rightPoint.x - leftPoint.x) * train.offsetp;
|
||||
this.startY = leftPoint.y + (rightPoint.y - leftPoint.y) * train.offsetp;
|
||||
} else {
|
||||
// debugger;
|
||||
// this.lineLength * train.offsetp
|
||||
// if (this.currentLength > targetDistance) {
|
||||
// this.currentLength = this.currentLength - targetDistance;
|
||||
// this.nextPointIndex++;
|
||||
// targetDistance = Math.sqrt(
|
||||
// Math.pow(points[this.nextPointIndex - 1].x - points[this.nextPointIndex].x, 2) +
|
||||
// Math.pow(points[this.nextPointIndex - 1].y - points[this.nextPointIndex].y, 2),
|
||||
// );
|
||||
// }
|
||||
const rate = (this.lineLength * train.offsetp - this.currentAdd) / targetDistance;
|
||||
this.startX = points[this.nextPointIndex - 1].x + (points[this.nextPointIndex].x - points[this.nextPointIndex - 1].x) * rate;
|
||||
this.startY = points[this.nextPointIndex - 1].y + (points[this.nextPointIndex].y - points[this.nextPointIndex - 1].y) * rate;
|
||||
// this.animatePoint.x = this.startX;
|
||||
// this.animatePoint.y = this.startY;
|
||||
}
|
||||
const point = {x:this.startX, y:this.startY};
|
||||
this.triangle.point = point;
|
||||
this.triangle.updateTriangle(point, train.right);
|
||||
@ -153,7 +218,6 @@ export default class Train extends Group {
|
||||
this.dirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 恢复颜色状态
|
||||
recover() {
|
||||
|
@ -40,7 +40,7 @@ class TrainWindow extends Group {
|
||||
zlevel: this.zlevel,
|
||||
z: this.z - 1,
|
||||
shape: {
|
||||
smooth: this.style.TrainWindow.trainWindowSmooth,
|
||||
smooth: this.style.TrainWindow.trainWindowSmooth, // 圆滑程度
|
||||
points: [
|
||||
[point.x - model.width / 2, point.y],
|
||||
[point.x + model.width / 2, point.y],
|
||||
|
@ -51,31 +51,31 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '区段故障解锁',
|
||||
handler: this.fault,
|
||||
cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
|
||||
},
|
||||
{
|
||||
label: '区段激活',
|
||||
handler: this.active,
|
||||
cmdType: CMD.Section.CMD_SECTION_ACTIVE
|
||||
},
|
||||
{
|
||||
label: '区段切除',
|
||||
handler: this.split,
|
||||
cmdType: CMD.Section.CMD_SECTION_CUT_OFF
|
||||
},
|
||||
{
|
||||
label: '区段计轴预复位',
|
||||
handler: this.axlePreReset,
|
||||
cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET
|
||||
},
|
||||
{
|
||||
label: '区段设置限速',
|
||||
handler: this.setSpeed,
|
||||
cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
|
||||
}
|
||||
// {
|
||||
// label: '区段故障解锁',
|
||||
// handler: this.faultUnlock,
|
||||
// cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '区段激活',
|
||||
// handler: this.active,
|
||||
// cmdType: CMD.Section.CMD_SECTION_ACTIVE
|
||||
// },
|
||||
// {
|
||||
// label: '区段切除',
|
||||
// handler: this.split,
|
||||
// cmdType: CMD.Section.CMD_SECTION_CUT_OFF
|
||||
// },
|
||||
// {
|
||||
// label: '区段计轴预复位',
|
||||
// handler: this.axlePreReset,
|
||||
// cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET
|
||||
// },
|
||||
// {
|
||||
// label: '区段设置限速',
|
||||
// handler: this.setSpeed,
|
||||
// cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
@ -172,14 +172,19 @@ export default {
|
||||
},
|
||||
operationHandler(buttonOperation, selectType) {
|
||||
switch (buttonOperation) {
|
||||
case OperationEvent.Signal.guide.button.operation: {
|
||||
case OperationEvent.Section.fault.menu.operation: {
|
||||
// 区故解
|
||||
if (selectType.fault) {
|
||||
this.faultUnlock(selectType);
|
||||
} else {
|
||||
this.$refs.noticeInfo.doShow({}, `该区段[${selectType.name}(${selectType.code})]没有故障`);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OperationEvent.Signal.guide.button.operation: {
|
||||
// 计轴复位
|
||||
break;
|
||||
}
|
||||
// case OperationEvent: {
|
||||
// // 计轴复位
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
},
|
||||
// // 设置计轴失效
|
||||
@ -205,20 +210,19 @@ export default {
|
||||
// });
|
||||
// },
|
||||
// 故障解锁
|
||||
fault() {
|
||||
faultUnlock(selectType) {
|
||||
const operate = {
|
||||
start: true,
|
||||
code: this.selected.code,
|
||||
operation: OperationEvent.Section.fault.menu.operation,
|
||||
param: {
|
||||
sectionCode: `${this.selected.code}`
|
||||
}
|
||||
sectionCode: selectType.code
|
||||
},
|
||||
cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.sectionCmdControl.doShow(operate, this.selected);
|
||||
// this.$refs.sectionCmdControl.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -299,19 +303,6 @@ export default {
|
||||
},
|
||||
// 设置速度
|
||||
setSpeed() {
|
||||
// let operate = {
|
||||
// start: true,
|
||||
// code: this.selected.code,
|
||||
// type: MapDeviceType.Section.type,
|
||||
// label: MapDeviceType.Section.label,
|
||||
// operation: OperationEvent.Section.setLimitSpeed.menu.operation
|
||||
// };
|
||||
// this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||
// if (valid) {
|
||||
// this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
// this.$refs.speedCmdControl.doShow(operate, this.selected);
|
||||
// }
|
||||
// });
|
||||
const operate = {
|
||||
start: true,
|
||||
code: this.selected.code,
|
||||
|
@ -218,6 +218,13 @@ export default {
|
||||
}
|
||||
case OperationEvent.Signal.reopenSignal.button.operation: {
|
||||
// 信号重开
|
||||
if (selectType.greenOpen) {
|
||||
this.$refs.noticeInfo.doShow({}, `信号机[${selectType.name}(${selectType.code})]已开启,无需重开信号机`);
|
||||
} else {
|
||||
// 开放进路信号机因故关闭
|
||||
this.reopenSignalByRoute(selectType);
|
||||
// 开放非进路信号机因故关闭
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OperationEvent.Signal.guide.button.operation: {
|
||||
@ -335,6 +342,27 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 现地信号重开操作
|
||||
reopenSignalByRoute(selectType) {
|
||||
const operate = {
|
||||
start: true,
|
||||
code: this.selected.code,
|
||||
operation: OperationEvent.Signal.reopenSignal.menu.operation,
|
||||
param: {
|
||||
signalCode: selectType.code
|
||||
},
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.$refs.noticeInfo.doShow(operate, error.message);
|
||||
});
|
||||
},
|
||||
|
||||
// 信号重开
|
||||
reopenSignal() {
|
||||
const operate = {
|
||||
|
@ -306,42 +306,25 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
// 道岔故障解锁
|
||||
fault() {
|
||||
const operate = {
|
||||
start: true,
|
||||
code: this.selected.code,
|
||||
operation: OperationEvent.Switch.fault.menu.operation,
|
||||
param: {
|
||||
switchCode: `${this.selected.code}`
|
||||
}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.switchCmdControl.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
},
|
||||
// 道岔取消速度
|
||||
cancelSpeed() {
|
||||
const operate = {
|
||||
start: true,
|
||||
send: true,
|
||||
code: this.selected.code,
|
||||
operation: OperationEvent.Switch.cancelSpeed.menu.operation,
|
||||
param: {
|
||||
switchCode: `${this.selected.code}`
|
||||
}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||
if (valid) {
|
||||
const tempData = response.data;
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.speedCmdControl.doShow(operate, this.selected, tempData);
|
||||
}
|
||||
});
|
||||
},
|
||||
// cancelSpeed() {
|
||||
// const operate = {
|
||||
// start: true,
|
||||
// send: true,
|
||||
// code: this.selected.code,
|
||||
// operation: OperationEvent.Switch.cancelSpeed.menu.operation,
|
||||
// param: {
|
||||
// switchCode: `${this.selected.code}`
|
||||
// }
|
||||
// };
|
||||
// this.$store.dispatch('training/nextNew', operate).then(({ valid, response }) => {
|
||||
// if (valid) {
|
||||
// const tempData = response.data;
|
||||
// this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
// this.$refs.speedCmdControl.doShow(operate, this.selected, tempData);
|
||||
// }
|
||||
// });
|
||||
// },
|
||||
|
||||
// 区段切除
|
||||
split() {
|
||||
|
@ -41,7 +41,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
unfold: false,
|
||||
unfold: true,
|
||||
tempData: [],
|
||||
tableStyle: {
|
||||
'border-bottom': 'none',
|
||||
@ -105,7 +105,8 @@ export default {
|
||||
const operate = {
|
||||
over: true,
|
||||
operation: eachCmd.operation.code,
|
||||
cmdType: eachCmd.operation.cmdType
|
||||
cmdType: eachCmd.operation.cmdType,
|
||||
param: eachCmd.operation.param // 请求栈中参数配置
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
|
@ -49,13 +49,13 @@ export default {
|
||||
},
|
||||
{
|
||||
label: '开放自动进路',
|
||||
handler: this.atsAutoControl,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
handler: this.singalPassModel,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
|
||||
},
|
||||
{
|
||||
label: '关闭自动进路',
|
||||
handler: this.humanControl,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
||||
handler: this.singalCancelPassModel,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
|
||||
},
|
||||
{
|
||||
label: '终端信号封锁',
|
||||
@ -307,24 +307,45 @@ export default {
|
||||
arrangementRoute() {
|
||||
const step = {
|
||||
start: true,
|
||||
// over:true,
|
||||
code: `${this.selected.code}`,
|
||||
operation: OperationEvent.Signal.arrangementRoute.menu.operation,
|
||||
param: {
|
||||
signalCode: `${this.selected.code}`
|
||||
},
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
}
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true});
|
||||
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: { code: OperationEvent.Signal.arrangementRoute.menu.operation, name: '始端/终端选择', cmdType:CMD.Signal.CMD_SIGNAL_SET_ROUTE}});
|
||||
const routes = [];
|
||||
this.routeList.forEach(elem => {
|
||||
if (elem.startSignalCode === this.selected.code) {
|
||||
routes.push(elem);
|
||||
}
|
||||
});
|
||||
const routeCode = this.checkRoutes(routes);
|
||||
this.$store.dispatch('menuOperation/pushRequestList', {
|
||||
device: this.selected,
|
||||
operation: {
|
||||
code: OperationEvent.Signal.arrangementRoute.menu.operation,
|
||||
name: '始端/终端选择',
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE,
|
||||
param: {
|
||||
routeCode: routeCode
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow(step);
|
||||
});
|
||||
},
|
||||
checkRoutes(routes) {
|
||||
const route = routes.filter(route => {
|
||||
return route.greenOpen;
|
||||
});
|
||||
return route[0].code;
|
||||
},
|
||||
// 进路引导
|
||||
guide() {
|
||||
const step = {
|
||||
@ -334,7 +355,7 @@ export default {
|
||||
operation: OperationEvent.Signal.guide.menu.operation,
|
||||
param: {
|
||||
signalCode: `${this.selected.code}`
|
||||
},
|
||||
}
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid, response }) => {
|
||||
@ -353,7 +374,7 @@ export default {
|
||||
operation: OperationEvent.Signal.cancelTrainRoute.menu.operation,
|
||||
param: {
|
||||
signalCode: `${this.selected.code}`
|
||||
},
|
||||
}
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
|
||||
};
|
||||
@ -373,7 +394,7 @@ export default {
|
||||
operation: OperationEvent.Signal.lock.menu.operation,
|
||||
param: {
|
||||
signalCode: `${this.selected.code}`
|
||||
},
|
||||
}
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
@ -394,7 +415,7 @@ export default {
|
||||
operation: OperationEvent.Signal.unlock.menu.operation,
|
||||
param: {
|
||||
signalCode: `${this.selected.code}`
|
||||
},
|
||||
}
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
|
@ -525,7 +525,7 @@ export default {
|
||||
this.$refs.routerCommand.doShow(step, this.selected, '是否执行引导命令');
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -7,7 +7,7 @@ export function getBaseUrl() {
|
||||
// BASE_API = 'http://192.168.3.5:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.3.6:9000'; // 旭强
|
||||
// BASE_API = 'http://192.168.3.41:9000'; // 张赛
|
||||
// BASE_API = 'http://192.168.3.82:9000'; // 杜康
|
||||
// BASE_API = 'http://192.168.8.125:9000'; // 杜康
|
||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛automaticRouteButtonList
|
||||
|
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="standACS_title">会展中心站门禁站台层</div>
|
||||
<div class="standACS_title">{{ $route.query.stationName }}门禁站台层</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="990" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="990" :canvas-height="500" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from "../canvas/iscsCanvas";
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
export default {
|
||||
components: {
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mes: "1111"
|
||||
mes: '1111'
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.iscsPlate.show("61");
|
||||
this.$refs.iscsPlate.show('61');
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
|
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="stationHall_title">会展中心站门禁站厅层</div>
|
||||
<div class="stationHall_title">{{ $route.query.stationName }}门禁站厅层</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="990" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="990" :canvas-height="600" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from "../canvas/iscsCanvas";
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
export default {
|
||||
components: {
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mes: "1111"
|
||||
mes: '1111'
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.iscsPlate.show("62");
|
||||
this.$refs.iscsPlate.show('62');
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
|
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="afc_title">会展中心站售检票</div>
|
||||
<div class="afc_title">{{ $route.query.stationName }}售检票</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="990" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="1200" :canvas-height="650" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from "../canvas/iscsCanvas";
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
export default {
|
||||
components: {
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mes: "1111"
|
||||
mes: '1111'
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.iscsPlate.show("51");
|
||||
this.$refs.iscsPlate.show('51');
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="control-bas-box">
|
||||
<div class="title-name">会展中心站大系统模式表</div>
|
||||
<div class="title-name">{{ $route.query.stationName }}大系统模式表</div>
|
||||
<div class="control-bas">
|
||||
<el-table :data="tableData" :header-row-style="tableTitleStyle" :cell-style="rowStyle" :span-method="objectSpanMethod" style="float: left;">
|
||||
<el-table-column label="日期" width="300">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="permission-box">
|
||||
<div class="title-name">会展中心站控制权移交</div>
|
||||
<div class="title-name">{{ $route.query.stationName }}控制权移交</div>
|
||||
<div class="content-box">
|
||||
<div class="content-top">
|
||||
<div class="content-left">
|
||||
|
@ -28,6 +28,10 @@ export default {
|
||||
widthCanvas: {
|
||||
type: Number,
|
||||
default: 1200
|
||||
},
|
||||
canvasHeight: {
|
||||
type: Number,
|
||||
default: 500
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@ -55,18 +59,18 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'canvasWidth',
|
||||
'canvasHeight'
|
||||
// 'canvasWidth',
|
||||
// 'canvasHeight'
|
||||
]),
|
||||
iscsId() {
|
||||
return ['iscs', (Math.random().toFixed(5)) * 100000].join('_');
|
||||
},
|
||||
width() {
|
||||
return this.$store.state.config.width;
|
||||
},
|
||||
height() {
|
||||
return this.$store.state.config.height;
|
||||
}
|
||||
// width() {
|
||||
// return this.$store.state.config.width;
|
||||
// },
|
||||
// height() {
|
||||
// return this.$store.state.config.height;
|
||||
// }
|
||||
},
|
||||
watch: {
|
||||
'$store.state.config.canvasSizeCount': function (val) {
|
||||
@ -98,8 +102,8 @@ export default {
|
||||
dom: document.getElementById(this.iscsId),
|
||||
config: {
|
||||
renderer: 'canvas',
|
||||
width: this.width,
|
||||
height: this.height
|
||||
width: this.canvasWidth,
|
||||
height: this.canvasHeight
|
||||
},
|
||||
options: {
|
||||
scaleRate: 1,
|
||||
@ -167,9 +171,9 @@ export default {
|
||||
},
|
||||
reSize() {
|
||||
this.$nextTick(() => {
|
||||
this.width = this.$store.state.config.width;
|
||||
this.height = this.$store.state.config.height;
|
||||
this.$iscs && this.$iscs.resize({ width: this.width, height: this.height });
|
||||
// this.width = this.$store.state.config.width;
|
||||
// this.height = this.$store.state.config.height;
|
||||
// this.$iscs && this.$iscs.resize({ width: this.width, height: this.height });
|
||||
});
|
||||
},
|
||||
back() {
|
||||
|
@ -6,9 +6,9 @@
|
||||
<div class="cctv-box-top-lefttop">选择显示终端</div>
|
||||
<div class="cctv-box-top-left1">
|
||||
<div class="each-cctv-box-top-btn">单画面</div>
|
||||
<div class="each-cctv-box-top-btn">站厅<br/>默认画面</div>
|
||||
<div class="each-cctv-box-top-btn">站厅<br>默认画面</div>
|
||||
<div class="each-cctv-box-top-btn active">四画面</div>
|
||||
<div class="each-cctv-box-top-btn">站台<br/>默认画面</div>
|
||||
<div class="each-cctv-box-top-btn">站台<br>默认画面</div>
|
||||
<div class="each-cctv-box-top-btn">大屏</div>
|
||||
</div>
|
||||
<div class="cctv-box-top-right1">
|
||||
@ -43,16 +43,16 @@
|
||||
v-for="item in descriptionList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div style="margin-top: 20px;position: relative;left: 30px; width: 230px">
|
||||
<el-input
|
||||
v-model="textarea"
|
||||
type="textarea"
|
||||
:rows="6"
|
||||
v-model="textarea">
|
||||
</el-input>
|
||||
/>
|
||||
</div>
|
||||
<div style="position: relative;left: 30px; width: 230px; display: flex; justify-content: space-between;margin-top: 10px">
|
||||
<div class="each-cctv-box-top-gray-btn">预设位置</div>
|
||||
@ -65,17 +65,17 @@
|
||||
<div class="cctv-box-top-right-btn1" />
|
||||
<div class="cctv-box-top-right-btn1 cctv-btn-gray" />
|
||||
<div>
|
||||
<div class="cctv-box-top-right-btn2"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2" style="width: 40px;"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray"></div>
|
||||
<div class="cctv-box-top-right-btn2" style="margin-right: 0"></div>
|
||||
<div class="cctv-box-top-right-btn2" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2" style="width: 40px;" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2 cctv-btn-gray" />
|
||||
<div class="cctv-box-top-right-btn2" style="margin-right: 0" />
|
||||
</div>
|
||||
<div class="cctv-box-top-right-btn1" />
|
||||
<div class="cctv-box-top-right-btn1 cctv-btn-gray" />
|
||||
@ -102,7 +102,7 @@
|
||||
<div id="cctv-43" class="cctv-box-content-btn" @click="changeCCTV('43')">云台</div>
|
||||
</div>
|
||||
<div class="cctv-box-content-draw">
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="1490" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="1490" :canvas-height="400" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="cctv-box-bottom">
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div class="edit-cctv-box">
|
||||
<div class="title-name">CCTV时序编辑</div>
|
||||
<div class="edit-cctv-top">
|
||||
<div class="edit-cctv-top-title"></div>
|
||||
<div class="edit-cctv-top-title" />
|
||||
<div class="edit-cctv-top-content">
|
||||
<div class="edit-cctv-top-contentL">
|
||||
<el-table
|
||||
@ -61,7 +61,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="edit-cctv-bottom">
|
||||
<div class="edit-cctv-bottom-title"></div>
|
||||
<div class="edit-cctv-bottom-title" />
|
||||
<div class="edit-cctv-bottom-content">
|
||||
<div class="edit-cctv-bottom-contentL">
|
||||
<div class="edit-cctv-bottom-contentLL">
|
||||
@ -80,13 +80,13 @@
|
||||
</div>
|
||||
<div class="edit-cctv-bottom-contentLR">
|
||||
<div class="edit-cctv-bottom-contentLRTitle">位置描述</div>
|
||||
<div class="edit-cctv-bottom-contentLRGroup"></div>
|
||||
<div class="edit-cctv-bottom-contentLRGroup" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="edit-cctv-bottom-contentR">
|
||||
<div class="edit-cctv-bottom-contentRL">
|
||||
<div class="edit-cctv-bottom-contentRLlabel">显示时间(秒)</div>
|
||||
<div class="edit-cctv-bottom-contentRLtext"></div>
|
||||
<div class="edit-cctv-bottom-contentRLtext" />
|
||||
<div class="edit-cctv-bottom-contentRLBtn1">加入</div>
|
||||
<div class="edit-cctv-bottom-contentRLBtn1">移除</div>
|
||||
<div class="edit-cctv-bottom-contentRLBtn1">全部删除</div>
|
||||
@ -98,7 +98,7 @@
|
||||
</div>
|
||||
<div class="edit-cctv-bottom-contentRCT2">
|
||||
<div class="edit-cctv-bottom-contentRCT2title">序列描述</div>
|
||||
<div class="edit-cctv-bottom-contentRCT2text"></div>
|
||||
<div class="edit-cctv-bottom-contentRCT2text" />
|
||||
</div>
|
||||
<div class="edit-cctv-bottom-contentRContent">
|
||||
<el-table
|
||||
@ -132,7 +132,7 @@
|
||||
</div>
|
||||
<div class="edit-cctv-bottom-foot">
|
||||
<div class="edit-cctv-bottom-footL">信息提示:</div>
|
||||
<div class="edit-cctv-bottom-footC"></div>
|
||||
<div class="edit-cctv-bottom-footC" />
|
||||
<div class="edit-cctv-bottom-footR">
|
||||
<div class="edit-cctv-bottom-footRbtn">车站时序</div>
|
||||
</div>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="stand_title">会展中心站火灾报警站台报警</div>
|
||||
<div class="stand_title">{{ $route.query.stationName }}火灾报警站台报警</div>
|
||||
<div class="">
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="1520" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="1520" :canvas-height="500" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -23,7 +23,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="stationHall_title">会展中心站火灾报警站厅报警</div>
|
||||
<div class="stationHall_title">{{ $route.query.stationName }}火灾报警站厅报警</div>
|
||||
<div class="">
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="1300" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="1300" :canvas-height="650" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -23,7 +23,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="">
|
||||
系统报警
|
||||
{{ $route.query.stationName }}系统报警
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -28,11 +28,11 @@
|
||||
<div class="secondary-title">实时信息显示内容</div>
|
||||
<div class="information-context-box">
|
||||
<el-input
|
||||
v-model="addModel.infoContent"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
placeholder="请输入内容"
|
||||
v-model="addModel.infoContent">
|
||||
</el-input>
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -47,8 +47,8 @@
|
||||
</div>
|
||||
<div style="margin-top: 10px">
|
||||
<div style="display: inline;">名称:</div>
|
||||
<input class="pis-dialog-input" style="width: 550px;" v-model="addModel.infoTitle"/>
|
||||
<input v-show="addModel.infoType !== 'emergency'" class="pis-dialog-input" style="width: 140px;" v-model="addModel.infoTime"/>
|
||||
<input v-model="addModel.infoTitle" class="pis-dialog-input" style="width: 550px;">
|
||||
<input v-show="addModel.infoType !== 'emergency'" v-model="addModel.infoTime" class="pis-dialog-input" style="width: 140px;">
|
||||
<div v-show="addModel.infoType !== 'emergency'" style="display: inline;">次</div>
|
||||
</div>
|
||||
<div v-show="addModel.infoType !== 'realTime'" class="secondary-title" style="margin-top: 10px">{{ this.message[this.addModel.infoType].title + '内容显示' }}</div>
|
||||
@ -71,8 +71,8 @@
|
||||
v-for="item in infoList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<div v-show="addModel.infoType === 'realTime'" class="pis-button">储存</div>
|
||||
<div class="button-group-content" :style="{left: addModel.infoType ==='realTime'?'300px':'550px'}">
|
||||
@ -90,7 +90,7 @@
|
||||
</el-col>
|
||||
<el-col :span="21">
|
||||
<el-form-item :prop="description" label-width="0">
|
||||
<input v-model="form.description" style="width:600px;" />
|
||||
<input v-model="form.description" style="width:600px;">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -103,16 +103,18 @@
|
||||
v-model="form.startDate"
|
||||
type="date"
|
||||
size="mini"
|
||||
placeholder="选择日期"/>
|
||||
placeholder="选择日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item :prop="endTime" label="结束时间">
|
||||
<el-time-picker
|
||||
arrow-control
|
||||
v-model="form.endTime"
|
||||
arrow-control
|
||||
size="mini"
|
||||
placeholder="选择时间"/>
|
||||
placeholder="选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -120,8 +122,8 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item :prop="startTime" label="开始时间">
|
||||
<el-time-picker
|
||||
arrow-control
|
||||
v-model="form.startTime"
|
||||
arrow-control
|
||||
size="mini"
|
||||
placeholder="选择时间"
|
||||
/>
|
||||
@ -133,7 +135,8 @@
|
||||
v-model="form.endDate"
|
||||
type="date"
|
||||
size="mini"
|
||||
placeholder="选择日期"/>
|
||||
placeholder="选择日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -141,8 +144,8 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item :prop="durationTime" label="延续时间">
|
||||
<el-time-picker
|
||||
arrow-control
|
||||
v-model="form.durationTime"
|
||||
arrow-control
|
||||
size="mini"
|
||||
placeholder="选择时间"
|
||||
/>
|
||||
@ -310,7 +313,7 @@ export default {
|
||||
this.showRealTimeInfo = item.content;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
@ -37,7 +37,7 @@
|
||||
<div class="screen_station_name">{{ station.stationName }}</div>
|
||||
</div>
|
||||
<div v-if="station.children&&station.children.length>0">
|
||||
<div v-for="(child,index) in station.children" :key="station.stationName+index" class="each_data_info" @click="selectArea(station.stationName,index)" style="text-align: center;">
|
||||
<div v-for="(child,index) in station.children" :key="station.stationName+index" class="each_data_info" style="text-align: center;" @click="selectArea(station.stationName,index)">
|
||||
<div v-if="child.status==='default'" class="button_default_content">
|
||||
<div class="button_default" :style="{background:selectedAreaList.includes(station.stationName + '-' + index)?'#2EFF74':'#CDCDCD'}" />
|
||||
</div>
|
||||
|
@ -45,7 +45,7 @@
|
||||
<div class="time_preview_footer">
|
||||
<div class="preview_footer_top">操作</div>
|
||||
<div class="preview_footer_content">
|
||||
<div class="each_preview_btn each_preview_back">区域<br/>详细</div>
|
||||
<div class="each_preview_btn each_preview_back">区域<br>详细</div>
|
||||
<div class="each_preview_btn each_preview_back">删除</div>
|
||||
<div class="each_preview_btn each_preview_back">停用</div>
|
||||
<div class="each_preview_btn each_preview_back1">激活</div>
|
||||
|
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="psd_title">会展中心站屏蔽门</div>
|
||||
<div class="psd_title">{{ $route.query.stationName }}屏蔽门</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" :widthCanvas="1490" />
|
||||
<iscsSystem ref="iscsPlate" :width-canvas="1490" :canvas-height="800" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from "../canvas/iscsCanvas";
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
export default {
|
||||
components: {
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mes: "1111"
|
||||
mes: '1111'
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.iscsPlate.show("31");
|
||||
this.$refs.iscsPlate.show('31');
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
|
@ -34,7 +34,8 @@ export default {
|
||||
return {
|
||||
selectIndex: 0,
|
||||
selectChildIndex: -1,
|
||||
selectStationIndex: -1,
|
||||
selectStationIndex: 0,
|
||||
type: '',
|
||||
currentSystem: 'center',
|
||||
systemList: [
|
||||
{
|
||||
@ -275,16 +276,19 @@ export default {
|
||||
this.selectIndex = index;
|
||||
this.selectChildIndex = 0;
|
||||
if (item.children.length) {
|
||||
this.$router.push({ path: `/iscs/system/config/${item.children[0].type}`, query: {currentSystem:this.currentSystem} });
|
||||
this.type = item.children[0].type;
|
||||
this.$router.push({ path: `/iscs/system/config/${item.children[0].type}`, query: {currentSystem:this.currentSystem, stationName: this.stationList[this.selectStationIndex].name, stationId: this.stationList[this.selectStationIndex].id } });
|
||||
}
|
||||
}
|
||||
},
|
||||
selectChildren(item, index) { // 选择子菜单
|
||||
this.selectChildIndex = index;
|
||||
this.$router.push({ path: `/iscs/system/config/${item.type}`, query: {currentSystem:this.currentSystem} });
|
||||
this.type = item.type;
|
||||
this.$router.push({ path: `/iscs/system/config/${item.type}`, query: {currentSystem:this.currentSystem, stationName: this.stationList[this.selectStationIndex].name, stationId: this.stationList[this.selectStationIndex].id } });
|
||||
},
|
||||
selectStation(item, index) { // 选择子菜单
|
||||
this.selectStationIndex = index;
|
||||
this.$router.push({ path: `/iscs/system/config/${this.type}`, query: {currentSystem:this.currentSystem, stationName: this.stationList[this.selectStationIndex].name, stationId: this.stationList[this.selectStationIndex].id } });
|
||||
},
|
||||
back() {
|
||||
this.$router.push({ path: `/design/home` });
|
||||
|
@ -164,11 +164,11 @@ export default {
|
||||
};
|
||||
// 默认个人地图绘制可以滚轮放大缩小 其他地图显示不允许此操作
|
||||
const path = window.location.href;
|
||||
let mouseWheelFlag = false;
|
||||
const mouseWheelFlag = true;
|
||||
let previewOrMapDraw = false;
|
||||
if (path.includes('design/userlist/map/draw') || path.includes('design/usermap/map/draw')) {
|
||||
mouseWheelFlag = true;
|
||||
}
|
||||
// if (path.includes('design/userlist/map/draw') || path.includes('design/usermap/map/draw')) {
|
||||
// mouseWheelFlag = true;
|
||||
// }
|
||||
if (path.indexOf('map/draw') !== -1 || path.indexOf('mapPreviewNew') !== -1) {
|
||||
previewOrMapDraw = true;
|
||||
}
|
||||
|
@ -14,12 +14,50 @@
|
||||
</el-button-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form ref="formModel" :model="formModel" label-width="200px" size="mini" :rules="formRules">
|
||||
<el-form-item label="区段编码:" prop="modelList">
|
||||
<el-select v-model="formModel.modelList" filterable multiple>
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
:label="item.name + '(' + item.code + ')'"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field === 'sectionTypeCode' ? 'danger' : 'primary'"
|
||||
size="small"
|
||||
@click="hover('sectionTypeCode')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="区段名称位置:" prop="trainPosType">
|
||||
<el-select
|
||||
v-model="formModel.trainPosType"
|
||||
placeholder="请选择"
|
||||
:clearable="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in positionTypes"
|
||||
:key="option.type"
|
||||
:label="option.name"
|
||||
:value="option.type"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button-group>
|
||||
<el-button type="primary" size="big" @click="setPositionType">{{ $t('global.set') }}</el-button>
|
||||
</el-button-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { deepAssign } from '@/utils/index';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'BatchSettings',
|
||||
props: {
|
||||
@ -28,6 +66,12 @@ export default {
|
||||
default: function() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
field: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@ -36,10 +80,34 @@ export default {
|
||||
leftDistance: 0,
|
||||
rightDistance: 0
|
||||
},
|
||||
tipInfoList: []
|
||||
formModel: {
|
||||
modelList: [],
|
||||
trainPosType: ''
|
||||
},
|
||||
positionTypes: [
|
||||
{ name: '上方', type: '01' },
|
||||
{ name: '下方', type: '02' }
|
||||
],
|
||||
tipInfoList: [],
|
||||
formRules: {
|
||||
trainPosType: [
|
||||
{ required: true, message: '请选择', trigger: 'change' }
|
||||
],
|
||||
modelList: [
|
||||
{ required: true, message: '请选择', trigger: 'change' }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList'
|
||||
])
|
||||
},
|
||||
methods:{
|
||||
hover(filed) {
|
||||
this.$emit('hover', filed);
|
||||
},
|
||||
batchSettings() {
|
||||
this.tipInfoList = [];
|
||||
const models = [];
|
||||
@ -63,6 +131,20 @@ export default {
|
||||
this.$message.success(this.$t('tip.stopPointOffsetTip'));
|
||||
}
|
||||
}
|
||||
},
|
||||
setPositionType() {
|
||||
const models = [];
|
||||
this.$refs['formModel'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.formModel.modelList.forEach(sectionCode => {
|
||||
const model = deepAssign({}, this.$store.getters['map/getDeviceByCode'](sectionCode) || {});
|
||||
model.trainPosType = this.formModel.trainPosType;
|
||||
models.push(model);
|
||||
});
|
||||
this.$emit('updateMapModel', models, 'five');
|
||||
this.$refs.formModel.resetFields(); // 对该表单项进行重置并移除校验结果
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -24,7 +24,7 @@
|
||||
<logic-block ref="logicBlock" :edit-model="editModel" @updateMapModel="updateMapModel" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane class="view-control" :label="$t('map.batchSettings')" name="five">
|
||||
<batch-settings ref="batchSettings" :section-list="sectionList" @updateMapModel="updateMapModel" @tipInfoHandle="tipInfoHandle" />
|
||||
<batch-settings ref="batchSettings" :field="field" :section-list="sectionList" @hover="hover" @updateMapModel="updateMapModel" @tipInfoHandle="tipInfoHandle" />
|
||||
</el-tab-pane>
|
||||
<tip-info ref="tipInfo" :tip-info-list="tipInfoList" />
|
||||
</el-tabs>
|
||||
@ -453,6 +453,11 @@ export default {
|
||||
this.activeName = 'second';
|
||||
this.field = '';
|
||||
this.$emit('fieldSelect', '');
|
||||
} else if (this.field.toUpperCase() === 'sectionTypeCode'.toUpperCase()) {
|
||||
this.$refs.batchSettings.formModel.modelList.push(selected.code);
|
||||
this.activeName = 'five';
|
||||
// this.field = '';
|
||||
// this.$emit('fieldSelect', '');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user