Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
4cbc3de4ea
@ -19,3 +19,4 @@ VUE_APP_UPLOAD_API = 'https://upload.joylink.club'
|
|||||||
# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
|
# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
|
||||||
|
|
||||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||||
|
VUE_APP_SOURCE_MAP = true
|
||||||
|
@ -5,3 +5,4 @@ NODE_ENV = 'production'
|
|||||||
VUE_APP_BASE_API = 'https://api.joylink.club/jlcloud'
|
VUE_APP_BASE_API = 'https://api.joylink.club/jlcloud'
|
||||||
VUE_APP_VOICE_API = 'https://oss.joylink.club/oss/joylink'
|
VUE_APP_VOICE_API = 'https://oss.joylink.club/oss/joylink'
|
||||||
VUE_APP_UPLOAD_API = 'https://upload.joylink.club'
|
VUE_APP_UPLOAD_API = 'https://upload.joylink.club'
|
||||||
|
VUE_APP_SOURCE_MAP = false
|
||||||
|
@ -5,3 +5,4 @@ NODE_ENV = 'test'
|
|||||||
VUE_APP_BASE_API = 'https://test.joylink.club/jlcloud'
|
VUE_APP_BASE_API = 'https://test.joylink.club/jlcloud'
|
||||||
VUE_APP_VOICE_API = 'https://oss.joylink.club/oss/joylink'
|
VUE_APP_VOICE_API = 'https://oss.joylink.club/oss/joylink'
|
||||||
VUE_APP_UPLOAD_API = 'https://upload.joylink.club'
|
VUE_APP_UPLOAD_API = 'https://upload.joylink.club'
|
||||||
|
VUE_APP_SOURCE_MAP = false
|
||||||
|
@ -389,7 +389,8 @@ class SkinCode extends defaultStyle {
|
|||||||
fontWeight:'normal', // 字体粗细
|
fontWeight:'normal', // 字体粗细
|
||||||
textPadding:[2, 6], // 字体边距
|
textPadding:[2, 6], // 字体边距
|
||||||
borderColor:'', // 字体边框颜色
|
borderColor:'', // 字体边框颜色
|
||||||
textBorderWidth:1 // 字体边框宽度
|
textBorderWidth:1, // 字体边框宽度
|
||||||
|
noneModeColor: '#FF0' // 无模式时字体颜色
|
||||||
},
|
},
|
||||||
syncCentralizeStation: true, // 集中站和下辖车站控制权状态同步
|
syncCentralizeStation: true, // 集中站和下辖车站控制权状态同步
|
||||||
kmPostShow: true, // 公里标显示
|
kmPostShow: true, // 公里标显示
|
||||||
|
@ -20,7 +20,8 @@ class SkinCode extends defaultStyle {
|
|||||||
textAlign: 'center', // 水平对齐方式
|
textAlign: 'center', // 水平对齐方式
|
||||||
textPosition: 'inside', // 文字位置
|
textPosition: 'inside', // 文字位置
|
||||||
textVerticalAlign: 'middle', // 文字垂直对齐方式
|
textVerticalAlign: 'middle', // 文字垂直对齐方式
|
||||||
approachColor: '#FFFFFF'
|
approachColor: '#FFFFFF',
|
||||||
|
occupyColor: '#FF0000' // 计轴区段占用字体颜色
|
||||||
},
|
},
|
||||||
logicText: {
|
logicText: {
|
||||||
z: 10,
|
z: 10,
|
||||||
@ -82,7 +83,7 @@ class SkinCode extends defaultStyle {
|
|||||||
width: 5, // 区段宽度
|
width: 5, // 区段宽度
|
||||||
beyondWidth: 0, // 区段宽超出宽度
|
beyondWidth: 0, // 区段宽超出宽度
|
||||||
invadeColor: '#EF0C08', // 区段侵入颜色
|
invadeColor: '#EF0C08', // 区段侵入颜色
|
||||||
|
routeBlockFlashing: true, // 进路锁闭且封锁时闪烁
|
||||||
spareColor: '#ffff00', // 区段空闲颜色 (黄色)
|
spareColor: '#ffff00', // 区段空闲颜色 (黄色)
|
||||||
communicationOccupiedColor: '#ff1f10', // 区段通信车占用颜色 红色
|
communicationOccupiedColor: '#ff1f10', // 区段通信车占用颜色 红色
|
||||||
unCommunicationOccupiedColor: '#A600A6', // 区段非通讯车占用颜色 紫色
|
unCommunicationOccupiedColor: '#A600A6', // 区段非通讯车占用颜色 紫色
|
||||||
@ -432,14 +433,17 @@ class SkinCode extends defaultStyle {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
this[deviceType.Station] = {
|
this[deviceType.Station] = {
|
||||||
// 哈尔滨一号线 车站元素 车站名称
|
// 车站元素 车站名称
|
||||||
elemnetType:['stationText'],
|
elemnetType:['stationText'],
|
||||||
stationText:{
|
stationText:{
|
||||||
z:0,
|
z:0,
|
||||||
fontWeight:'normal', // 字体粗细
|
fontWeight:'normal', // 字体粗细
|
||||||
textPadding:[2, 6], // 字体边距
|
textPadding:[2, 6], // 字体边距
|
||||||
borderColor:'', // 字体边框颜色
|
borderColor:'', // 字体边框颜色
|
||||||
textBorderWidth:1 // 字体边框宽度
|
textBorderWidth:1, // 字体边框宽度
|
||||||
|
noneModeFlash: true, // 无控制权模式字体闪烁
|
||||||
|
centerModeColor: '#1fdc1f', // 中控字体颜色
|
||||||
|
localModeColor: '#fff'// 站控字体颜色
|
||||||
},
|
},
|
||||||
syncCentralizeStation: true, // 集中站和下辖车站控制权状态同步
|
syncCentralizeStation: true, // 集中站和下辖车站控制权状态同步
|
||||||
kmPostShow: true, // 公里标显示
|
kmPostShow: true, // 公里标显示
|
||||||
|
@ -484,7 +484,7 @@ class Jlmap {
|
|||||||
this.$painter.update(oDevice);
|
this.$painter.update(oDevice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
store.commit('map/mapStationStateUpdate');
|
||||||
} else {
|
} else {
|
||||||
if (elem.deviceType === 'TRAIN') {
|
if (elem.deviceType === 'TRAIN') {
|
||||||
this.isUpdateShowTrainList = true;
|
this.isUpdateShowTrainList = true;
|
||||||
|
@ -41,15 +41,19 @@ export default class Responder extends Group {
|
|||||||
create() {
|
create() {
|
||||||
const model = this.model;
|
const model = this.model;
|
||||||
const responderStyle = this.style.Responder || defaultStyle;
|
const responderStyle = this.style.Responder || defaultStyle;
|
||||||
const distanceX = responderStyle.distance * Math.cos(model.rotate-90);
|
const radian = -Math.PI / 180 * Number(model.rotate-90);
|
||||||
const distanceY = responderStyle.distance * Math.sin(model.rotate-90);
|
const distanceX = -responderStyle.distance * Math.cos(radian);
|
||||||
|
const distanceY = -responderStyle.distance * Math.sin(radian);
|
||||||
const blockWidth = responderStyle.block.width || 5;
|
const blockWidth = responderStyle.block.width || 5;
|
||||||
const blockHeight = responderStyle.block.height || 12;
|
const blockHeight = responderStyle.block.height || 12;
|
||||||
const blockStyle = responderStyle.block.mapStyle[model.type] || { fill: '#fff'};
|
const blockStyle = responderStyle.block.mapStyle[model.type] || { fill: '#fff'};
|
||||||
const blockX = model.position.x - blockWidth / 2 - distanceX;
|
const blockX = model.position.x - blockWidth / 2 - distanceX;
|
||||||
const blockY = model.position.y - blockHeight / 2 - distanceY;
|
const blockY = model.position.y - blockHeight / 2 - distanceY;
|
||||||
const textX = blockX + model.textOffset.x;
|
const textRadian = -Math.PI / 180 * Number(180-model.textRotate);
|
||||||
const textY = blockY + model.textOffset.y;
|
const textDistanceX = model.textOffset.y * Math.sin(textRadian) + model.textOffset.x * Math.cos(textRadian);
|
||||||
|
const textDistanceY = model.textOffset.y * Math.cos(textRadian) - model.textOffset.x * Math.sin(textRadian);
|
||||||
|
const textX = blockX + textDistanceX + blockWidth;
|
||||||
|
const textY = blockY + textDistanceY;
|
||||||
const textName = `${model.type}-${model.name}`;
|
const textName = `${model.type}-${model.name}`;
|
||||||
const textFill = responderStyle.text.textFill;
|
const textFill = responderStyle.text.textFill;
|
||||||
const origin = [model.position.x, model.position.y];
|
const origin = [model.position.x, model.position.y];
|
||||||
@ -100,7 +104,7 @@ export default class Responder extends Group {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.text = new Text({
|
this.text = this.name = new Text({
|
||||||
zlevel: this.zlevel,
|
zlevel: this.zlevel,
|
||||||
z: this.z + 1,
|
z: this.z + 1,
|
||||||
style: {
|
style: {
|
||||||
@ -110,19 +114,19 @@ export default class Responder extends Group {
|
|||||||
fontFamily: this.style.fontFamily,
|
fontFamily: this.style.fontFamily,
|
||||||
fontSize: this.style.fontSize,
|
fontSize: this.style.fontSize,
|
||||||
textFill: textFill,
|
textFill: textFill,
|
||||||
textAlign: 'right'
|
textAlign: 'left'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (model.rotate) {
|
if (model.rotate) {
|
||||||
const rotation = -Math.PI / 180 * Number(model.rotate);
|
const rotation = -Math.PI / 180 * Number(model.rotate+180);
|
||||||
[this.block, this.delta1, this.delta2].forEach(el => {
|
[this.block, this.delta1, this.delta2].forEach(el => {
|
||||||
this.transformRotation(el, origin, rotation);
|
this.transformRotation(el, origin, rotation);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model.textRotate) {
|
if (model.textRotate) {
|
||||||
const rotation = -Math.PI / 180 * Number(model.textRotate);
|
const rotation = -Math.PI / 180 * Number(model.textRotate+180);
|
||||||
this.transformRotation(this.text, origin, rotation);
|
this.transformRotation(this.text, origin, rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,6 +154,9 @@ export default class Section extends Group {
|
|||||||
stroke: this.style.Section.line.unCommunicationOccupiedColor,
|
stroke: this.style.Section.line.unCommunicationOccupiedColor,
|
||||||
fill:this.style.Section.line.unCommunicationOccupiedColor
|
fill:this.style.Section.line.unCommunicationOccupiedColor
|
||||||
});
|
});
|
||||||
|
if (this.name && this.style.Section.name.occupyColor) {
|
||||||
|
this.name.setStyle({ textFill: this.style.Section.name.occupyColor });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/** ARB故障 */
|
/** ARB故障 */
|
||||||
invalid() {
|
invalid() {
|
||||||
@ -175,8 +178,8 @@ export default class Section extends Group {
|
|||||||
|
|
||||||
/** 封锁 06*/
|
/** 封锁 06*/
|
||||||
block(routeLock) {
|
block(routeLock) {
|
||||||
if (this.sectionBlock) {
|
if (this.sectionBlock && this.model.type !== '03') {
|
||||||
this.model.type !== '03' && this.sectionBlock.show();
|
this.sectionBlock.show();
|
||||||
routeLock && this.style.Section.line.routeBlockFlashing && this.sectionBlock.animateStyle(true, [
|
routeLock && this.style.Section.line.routeBlockFlashing && this.sectionBlock.animateStyle(true, [
|
||||||
{ time: 500, styles: { stroke: this.style.backgroundColor } },
|
{ time: 500, styles: { stroke: this.style.backgroundColor } },
|
||||||
{ time: 1000, styles: { stroke: this.style.Section.line.blockColor } }
|
{ time: 1000, styles: { stroke: this.style.Section.line.blockColor } }
|
||||||
|
@ -5,6 +5,7 @@ class EStationText extends Group {
|
|||||||
constructor(model) {
|
constructor(model) {
|
||||||
super();
|
super();
|
||||||
this.model = model;
|
this.model = model;
|
||||||
|
this.style = model.style;
|
||||||
this.create();
|
this.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,7 +65,14 @@ class EStationText extends Group {
|
|||||||
|
|
||||||
setState() {
|
setState() {
|
||||||
}
|
}
|
||||||
|
setAnimateStyle(noneBeforeMode) {
|
||||||
|
this.stopAnimate();
|
||||||
|
const color = noneBeforeMode === 'Center' ? this.style.Station.stationText.centerModeColor : this.style.Station.stationText.localModeColor;
|
||||||
|
this.stationName.animateStyle(true).when(500, {textFill: '#000'}).when(1000, {textFill: color}).when(1500, {textFill: '#000'}).start();
|
||||||
|
}
|
||||||
|
stopAnimate() {
|
||||||
|
this.stationName.stopAnimation(true);
|
||||||
|
}
|
||||||
setColor(color) {
|
setColor(color) {
|
||||||
const style = this.model.style;
|
const style = this.model.style;
|
||||||
if (style.Station.StationControl.disPlayNone) {
|
if (style.Station.StationControl.disPlayNone) {
|
||||||
|
@ -26,6 +26,7 @@ export default class Station extends Group {
|
|||||||
this.z = 40;
|
this.z = 40;
|
||||||
this.model = model;
|
this.model = model;
|
||||||
this.style = style;
|
this.style = style;
|
||||||
|
this.noneBeforeMode = '';
|
||||||
this.isShowShape = true;
|
this.isShowShape = true;
|
||||||
this.create();
|
this.create();
|
||||||
this.createTurnBack(); // 创建按图折返
|
this.createTurnBack(); // 创建按图折返
|
||||||
@ -351,6 +352,7 @@ export default class Station extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleCenter() { // 中控
|
handleCenter() { // 中控
|
||||||
|
this.noneBeforeMode = 'Center';
|
||||||
this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
this.centerControl && this.centerControl.setColor(this.style.Station.StationControl.lamp.greenColor);
|
this.centerControl && this.centerControl.setColor(this.style.Station.StationControl.lamp.greenColor);
|
||||||
@ -368,6 +370,7 @@ export default class Station extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleLocal() { // 站控
|
handleLocal() { // 站控
|
||||||
|
this.noneBeforeMode = 'Local';
|
||||||
this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.yellowColor);
|
this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.yellowColor);
|
||||||
this.substationControl && this.substationControl.setTextColor(this.style.Station.StationControl.lamp.yellowColor); // 文字颜色
|
this.substationControl && this.substationControl.setTextColor(this.style.Station.StationControl.lamp.yellowColor); // 文字颜色
|
||||||
@ -400,22 +403,14 @@ export default class Station extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleNone() { // 空
|
handleNone() { // 空
|
||||||
// if (this.style.Station.StationControl.disPlayNone) { // 没有控制时显示 黄色
|
if (this.style.Station.stationText.noneModeColor) {
|
||||||
// this.stationText && this.stationText.setStyle('textFill', '#FFFF00');
|
this.stationText.setColor(this.style.Station.stationText.noneModeColor);
|
||||||
// if (this.model.subheadDisplay) { // 副标题
|
}
|
||||||
// this.subheadText && this.subheadText.setStyle('textFill', '#FFFF00');
|
if (this.style.Station.stationText.noneModeFlash) {
|
||||||
// }
|
this.stationText.setAnimateStyle(this.noneBeforeMode);
|
||||||
// }
|
}
|
||||||
this.stationText.setColor('#FFFF00');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// /** 恢复初始状态*/
|
|
||||||
// recover() {
|
|
||||||
// const currentTypeList = this.style.Station.elemnetType;
|
|
||||||
// currentTypeList.forEach(element => {
|
|
||||||
// this[element].recover();
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
recover() {
|
recover() {
|
||||||
this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
this.emergencyControl && this.emergencyControl.setTextColor(this.style.Station.StationControl.text.fontColor);
|
this.emergencyControl && this.emergencyControl.setTextColor(this.style.Station.StationControl.text.fontColor);
|
||||||
@ -426,6 +421,7 @@ export default class Station extends Group {
|
|||||||
|
|
||||||
this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
this.emergencyArrowsControl && this.emergencyArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.emergencyArrowsControl && this.emergencyArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
|
this.stationText && this.stationText.stopAnimate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置状态
|
// 设置状态
|
||||||
@ -433,9 +429,11 @@ export default class Station extends Group {
|
|||||||
if (!this.isShowShape) return;
|
if (!this.isShowShape) return;
|
||||||
this.recover();
|
this.recover();
|
||||||
model.controlMode && this['handle' + model.controlMode]();
|
model.controlMode && this['handle' + model.controlMode]();
|
||||||
if (this.style.Station.syncCentralizeStation && model.controlMode) {
|
if (this.style.Station.syncCentralizeStation && model.controlMode && model.centralized) {
|
||||||
model.chargeStationCodeList.forEach(item => {
|
model.chargeStationCodeList.forEach(item => {
|
||||||
const device = store.getters['map/getDeviceByCode'](item);
|
const device = store.getters['map/getDeviceByCode'](item);
|
||||||
|
device.controlMode = model.controlMode;
|
||||||
|
device && device.instance && device.instance.recover();
|
||||||
device && device.instance && device.instance['handle' + model.controlMode]();
|
device && device.instance && device.instance['handle' + model.controlMode]();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -109,8 +109,8 @@ class StationStand extends Group {
|
|||||||
if (path.includes('/map/draw')) {
|
if (path.includes('/map/draw')) {
|
||||||
this.highlight = new EHighlight(this);
|
this.highlight = new EHighlight(this);
|
||||||
this.add(this.highlight);
|
this.add(this.highlight);
|
||||||
this.on('mouseout', () => { console.log('====='); this.highlight.mouseout(); });
|
this.on('mouseout', () => { this.highlight.mouseout(); });
|
||||||
this.on('mouseover', () => { console.log('111111'); this.highlight.mouseover(); });
|
this.on('mouseover', () => { this.highlight.mouseover(); });
|
||||||
} else {
|
} else {
|
||||||
if (this.style.StationStand.mouseOverStyle) {
|
if (this.style.StationStand.mouseOverStyle) {
|
||||||
this.mouseEvent = new EMouse(this);
|
this.mouseEvent = new EMouse(this);
|
||||||
|
@ -112,7 +112,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-box">
|
<div class="card-box">
|
||||||
<span class="tip-label">操作提示</span>
|
<span class="tip-label">操作提示</span>
|
||||||
11111113
|
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="9" :offset="1">
|
<el-col :span="9" :offset="1">
|
||||||
|
@ -33,10 +33,10 @@
|
|||||||
<el-row class="nav-border-row">
|
<el-row class="nav-border-row">
|
||||||
<template v-for="(item, index) in centralizedStationList">
|
<template v-for="(item, index) in centralizedStationList">
|
||||||
<div :key="index" class="nav-border-row row-width-box flex-row">
|
<div :key="index" class="nav-border-row row-width-box flex-row">
|
||||||
<div v-if="item.name && item.disabled" :id="item.operate.domId" class="fake-button-disabled">{{ item.name }}</div>
|
<div v-if="item.name && (item.disabled || !item.cmdType)" :id="item.operate.domId" class="fake-button-disabled">{{ item.name }}</div>
|
||||||
<div v-else-if="item.name && !item.securityCommand " :id="item.operate.domId" :class="[(item.cmdType && modeMatch) || item.mode === 'None'? 'fake-button': 'fake-button-disabled', item.next && paramIndex == index ? 'active': '']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
<div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button-active': 'fake-button-disabled']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
||||||
<div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" :class="[(item.cmdType && modeMatch) || item.mode === 'None'? 'fake-button-active': 'fake-button-disabled']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
<div v-else-if="item.name && !item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button': 'fake-button-disabled', (stationContorl.controlMode != item.mode || item.mode == 'None') && item.next && paramIndex == index ? 'active': '']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
||||||
<div v-else class="fake-button-black" />
|
<div v-else class="fake-button-grayk" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -156,10 +156,10 @@
|
|||||||
<el-row style="text-align: center">
|
<el-row style="text-align: center">
|
||||||
<template v-for="(item, index) in centralizedStationList">
|
<template v-for="(item, index) in centralizedStationList">
|
||||||
<div :key="index" class="nav-border-row row-width-box flex-row">
|
<div :key="index" class="nav-border-row row-width-box flex-row">
|
||||||
<div v-if="item.name && item.disabled" :id="item.operate.domId" class="fake-button-disabled">{{ item.name }}</div>
|
<div v-if="item.name && (item.disabled || !item.cmdType)" :id="item.operate.domId" class="fake-button-disabled">{{ item.name }}</div>
|
||||||
<div v-else-if="item.name && !item.securityCommand " :id="item.operate.domId" :class="[item.cmdType? 'fake-button': 'fake-button-disabled', item.next && paramIndex == index ? 'active': '']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
<div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button-active': 'fake-button-disabled']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
||||||
<div v-else-if="item.name && item.securityCommand" :id="item.operate.domId" class="fake-button-active" @click="clickCommand(item, index)">{{ item.name }}</div>
|
<div v-else-if="item.name && !item.securityCommand" :id="item.operate.domId" :class="[stationContorl.controlMode != item.mode || item.mode == 'None'? 'fake-button': 'fake-button-disabled', (stationContorl.controlMode != item.mode || item.mode == 'None') && item.next && paramIndex == index ? 'active': '']" @click="clickCommand(item, index)">{{ item.name }}</div>
|
||||||
<div v-else class="fake-button-black" />
|
<div v-else class="fake-button-grayk" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -180,8 +180,9 @@ import { deepAssign } from '@/utils/index';
|
|||||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||||
import { TrainingMode } from '@/scripts/ConstDic';
|
import { TrainingMode, MouseEvent } from '@/scripts/ConstDic';
|
||||||
import BanIcon from '@/assets/ban-heb.png';
|
import BanIcon from '@/assets/ban-heb.png';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
NoticeInfo
|
NoticeInfo
|
||||||
@ -255,27 +256,22 @@ export default {
|
|||||||
},
|
},
|
||||||
isLocal() {
|
isLocal() {
|
||||||
return this.$store.state.training.prdType == '01';
|
return this.$store.state.training.prdType == '01';
|
||||||
|
},
|
||||||
|
stationContorl() {
|
||||||
|
return this.getStationControl(this.selected || {}) || this.getStationControl({_type: 'Station', code: this.$store.state.map.showCentralizedStationCode}) || {};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'selected': function (val) {
|
|
||||||
if (val.code) {
|
|
||||||
this.dialogVisible = !this.isLocal;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'$store.state.menuOperation.setMenuChangeCount': function (val) {
|
'$store.state.menuOperation.setMenuChangeCount': function (val) {
|
||||||
const State2SimulationMap = {
|
|
||||||
'01': 'Local', // 中心调度工作站
|
|
||||||
'02': 'Center' // 现地工作站
|
|
||||||
};
|
|
||||||
if (this.selected._type) {
|
if (this.selected._type) {
|
||||||
this.modeMatch = true;
|
const State2SimulationMap = {
|
||||||
const control = this.getStationControl(this.selected);
|
'01': 'Local', // 现地工作站
|
||||||
|
'02': 'Center' // 中心调度工作站
|
||||||
|
};
|
||||||
const type = State2SimulationMap[this.$store.state.training.prdType];
|
const type = State2SimulationMap[this.$store.state.training.prdType];
|
||||||
if (control.controlMode != type) {
|
if (this.stationContorl.controlMode != type) {
|
||||||
this.modeMatch = false;
|
|
||||||
this.clearAllMenuShow();
|
this.clearAllMenuShow();
|
||||||
if (type == 'Center' && this.selected._type == 'Station') {
|
if (this.$store.state.training.prdType == '02' && this.selected._type == 'Station') {
|
||||||
this.selectedObj = this.selected;
|
this.selectedObj = this.selected;
|
||||||
if (this.selectedObj._type) {
|
if (this.selectedObj._type) {
|
||||||
this.canCommand = true;
|
this.canCommand = true;
|
||||||
@ -293,11 +289,10 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.centralizedStationList = new Array(15).fill({});
|
this.centralizedStationList = new Array(15).fill({});
|
||||||
}
|
}
|
||||||
// return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.pushTempData([]); // 清空执行栏
|
this.pushTempData([]); // 清空执行栏
|
||||||
@ -350,10 +345,6 @@ export default {
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow();
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
if (this.$store.state.training.mode != TrainingMode.TEACH) {
|
|
||||||
this.handleBasicMenu();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'$store.state.training.prdType': function (val) {
|
'$store.state.training.prdType': function (val) {
|
||||||
@ -365,6 +356,26 @@ export default {
|
|||||||
if (!val) {
|
if (!val) {
|
||||||
this.doClose();
|
this.doClose();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
'selected': function (val) {
|
||||||
|
this.initMenus();
|
||||||
|
if (val.code && val._event == MouseEvent.Left) {
|
||||||
|
this.dialogVisible = !this.isLocal;
|
||||||
|
} else if (!val.code) {
|
||||||
|
if (this.$store.state.training.mode != TrainingMode.TEACH) {
|
||||||
|
this.handleBasicMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'$store.state.map.showCentralizedStationCode': function(val) {
|
||||||
|
if (!this.oldSelected) {
|
||||||
|
this.handleBasicMenu();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'$store.state.map.mapStationStateUpdateCount': function() {
|
||||||
|
if (!this.selected || !this.selected.code) {
|
||||||
|
this.handleBasicMenu();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -531,6 +542,7 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
handleBasicMenu() {
|
handleBasicMenu() {
|
||||||
|
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
|
||||||
this.deviceHighLight(this.oldDevice, false);
|
this.deviceHighLight(this.oldDevice, false);
|
||||||
if (this.oldClickObj) {
|
if (this.oldClickObj) {
|
||||||
this.deviceHighLight(this.oldClickObj, false);
|
this.deviceHighLight(this.oldClickObj, false);
|
||||||
@ -540,9 +552,11 @@ export default {
|
|||||||
this.centralizedStationList = new Array(15).fill({});
|
this.centralizedStationList = new Array(15).fill({});
|
||||||
this.basicParamList.forEach((basic, index) => {
|
this.basicParamList.forEach((basic, index) => {
|
||||||
this.centralizedStationList[index] = basic;
|
this.centralizedStationList[index] = basic;
|
||||||
|
if (basic.disabledName && station) {
|
||||||
|
basic.disabled = station[basic.disabledName] == basic.mode;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.map.showCentralizedStationCode);
|
|
||||||
this.pushTempData(station ? [station] : []);
|
this.pushTempData(station ? [station] : []);
|
||||||
|
|
||||||
this.param = {
|
this.param = {
|
||||||
@ -839,9 +853,9 @@ export default {
|
|||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true, mode: 'None' },
|
{ name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true, disabledName: 'controlMode', mode: 'Local' },
|
||||||
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Local' },
|
||||||
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'None' },
|
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
@ -856,19 +870,32 @@ export default {
|
|||||||
// { name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
|
// { name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
|
||||||
// { name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
|
// { name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
|
||||||
] : [
|
] : [
|
||||||
{ name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, show: false },
|
{ name: '' },
|
||||||
{ name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, show: false },
|
{ name: '' },
|
||||||
{ name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, show: false },
|
{ name: '' },
|
||||||
{ name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
|
{ name: '' },
|
||||||
{ name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
|
{ name: '' },
|
||||||
{ name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true },
|
{ name: '' },
|
||||||
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
{ name: '' },
|
||||||
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'None' },
|
{ name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true, disabledName: 'controlMode', mode: 'Local' },
|
||||||
|
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Local' },
|
||||||
|
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '' },
|
{ name: '' },
|
||||||
{ name: '关闭索引', cmdType: '', operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'None' }
|
{ name: '关闭索引', cmdType: '', operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'None' }
|
||||||
|
|
||||||
|
// { name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menu, show: false },
|
||||||
|
// { name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menu, show: false },
|
||||||
|
// { name: '释放指令', cmdType: '', operate: OperationEvent.Station.humanControlALL.menu, show: false },
|
||||||
|
// { name: '重启令解', cmdType: CMD.Station.CMD_STATION_RESTART, operate:OperationEvent.Station.stationRestart.menuButton, show: false, securityCommand: true},
|
||||||
|
// { name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menu, show: false },
|
||||||
|
// { name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menu, show: false },
|
||||||
|
// { name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menu, show: false },
|
||||||
|
// { name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true },
|
||||||
|
// { name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
||||||
|
// { name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'None' },
|
||||||
];
|
];
|
||||||
this.sectionParamList = [
|
this.sectionParamList = [
|
||||||
{ name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menuButton, show: false, securityCommand: true },
|
{ name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menuButton, show: false, securityCommand: true },
|
||||||
@ -912,43 +939,47 @@ export default {
|
|||||||
{ name: '设置保护', cmdType: '', operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
{ name: '设置保护', cmdType: '', operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
||||||
{ name: '未评限区', cmdType: '', operate: OperationEvent.Signal.reopenSignal.menuButton, show: false, securityCommand: true }
|
{ name: '未评限区', cmdType: '', operate: OperationEvent.Signal.reopenSignal.menuButton, show: false, securityCommand: true }
|
||||||
] : [
|
] : [
|
||||||
{ name: '追踪单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Signal.setAutoTrigger.menuButton, show: false, disabledName: 'ciControl' },
|
{ name: '关闭信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menuButton, show: false },
|
||||||
{ name: '追踪单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Signal.cancelAutoTrigger.menuButton, show: false, disabledName: 'ciControl', antonymy: true },
|
{ name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menuButton, show: false },
|
||||||
|
{ name: '开放信号', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
||||||
|
{ name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menuButton, show: false, securityCommand: true },
|
||||||
{ name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menuButton, show: false, disabledName: 'atsControl' },
|
{ name: '自排单开', cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING, operate: OperationEvent.Signal.atsAutoControl.menuButton, show: false, disabledName: 'atsControl' },
|
||||||
{ name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menuButton, show: false, disabledName: 'atsControl', antonymy: true },
|
{ name: '自排单关', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING, operate: OperationEvent.Signal.humanControl.menuButton, show: false, disabledName: 'atsControl', antonymy: true },
|
||||||
{ name: '封锁信号', cmdType: CMD.Signal.CMD_SIGNAL_BLOCK, operate: OperationEvent.Signal.lock.menuButton, show: false },
|
{ name: '追踪单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Signal.setAutoTrigger.menuButton, show: false, disabledName: 'ciControl' },
|
||||||
{ name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
{ name: '追踪单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Signal.cancelAutoTrigger.menuButton, show: false, disabledName: 'ciControl', antonymy: true },
|
||||||
{ name: '解封信号', cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK, operate: OperationEvent.Signal.unlock.menuButton, show: false, securityCommand: true },
|
|
||||||
{ name: '关闭信号', cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL, operate: OperationEvent.Signal.signalClose.menuButton, show: false }
|
|
||||||
];
|
|
||||||
this.stationParamList = this.$store.state.training.prdType === '01' ? [
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '强行站控', cmdType: '', operate: OperationEvent.StationControl.requestStationControl.menu, securityCommand: true, mode: 'None' },
|
|
||||||
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
|
||||||
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'None' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '' },
|
|
||||||
{ name: '关闭索引', cmdType: '', operate: OperationEvent.StationControl.requestStationControl.menu, mode: 'None' }
|
|
||||||
|
|
||||||
// { name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false }
|
{ name: '开放引导', cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE, operate: OperationEvent.Signal.reopenSignal.menuButton, show: false, securityCommand: true },
|
||||||
] : [
|
{ name: '车队单开', cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO, operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
||||||
{ name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menuButton, show: false, disabledName: 'controlMode', mode: 'Center' },
|
{ name: '车队单关', cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO, operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
||||||
{ name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menuButton, show: false, disabledName: 'controlMode', mode: 'None' },
|
{ name: '设置保护', cmdType: '', operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
||||||
{ name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menuButton, show: false },
|
{ name: '未评限区', cmdType: '', operate: OperationEvent.Signal.reopenSignal.menuButton, show: false, securityCommand: true }
|
||||||
{ name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menuButton, show: false },
|
|
||||||
{ name: '关区信号', cmdType: CMD.Station.CMD_STATION_CIAREA_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.ciAreaCloseAllSignal.menuButton, show: false },
|
// { name: '重复开放', cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL, operate: OperationEvent.Signal.reopenSignal.menuButton, show: false },
|
||||||
{ name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menuButton, show: false },
|
|
||||||
{ name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menuButton, show: false }
|
|
||||||
// { name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false }
|
|
||||||
];
|
];
|
||||||
|
this.stationParamList = [
|
||||||
|
{ name: '关站信号', cmdType: CMD.Station.CMD_STATION_CLOSE_ALLSIGNAL, operate: OperationEvent.Station.closeAllSignal.menu, show: false, mode: 'None' }
|
||||||
|
];
|
||||||
|
// [
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '强行站控', cmdType: CMD.ControlConvertMenu.CMD_CM_FORCE_STATION_CONTROL, operate: OperationEvent.StationControl.forcedStationControl.menu, show:false, securityCommand: true, disabledName: 'controlMode', mode: 'Local' },
|
||||||
|
// { name: '接收控制', cmdType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL, operate: OperationEvent.StationControl.requestStationControl.menu, show: false, disabledName: 'controlMode', mode: 'Local' },
|
||||||
|
// { name: '交出控制', cmdType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL, operate: OperationEvent.StationControl.requestCentralControl.menu, show: false, disabledName: 'controlMode', mode: 'Center' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '' },
|
||||||
|
// { name: '关闭索引', cmdType: '', operate: OperationEvent.StationControl.requestStationControl.menu, mode: 'None' },
|
||||||
|
// { name: '追踪全开', cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER, operate: OperationEvent.Station.setAutoTrigger.menuButton, show: false },
|
||||||
|
// { name: '追踪全关', cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER, operate: OperationEvent.Station.cancelAutoTrigger.menuButton, show: false },
|
||||||
|
// { name: '自排全开', cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING, operate: OperationEvent.Station.atsAutoControlALL.menuButton, show: false },
|
||||||
|
// { name: '自排全关', cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING, operate: OperationEvent.Station.humanControlALL.menuButton, show: false }
|
||||||
|
// ];
|
||||||
this.standParamList = this.$store.state.training.prdType === '01' ? [] : [
|
this.standParamList = this.$store.state.training.prdType === '01' ? [] : [
|
||||||
{ name: '扣车', cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, show: false },
|
{ name: '扣车', cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, show: false },
|
||||||
{ name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, show: false },
|
{ name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, show: false },
|
||||||
@ -1071,7 +1102,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.fake-button-black {
|
.fake-button-grayk {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
@ -1108,9 +1139,6 @@ export default {
|
|||||||
background: #DDDDDD;
|
background: #DDDDDD;
|
||||||
color: #a0a0a0;
|
color: #a0a0a0;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
&:hover, &.active{
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.__menuButton .el-button {
|
.__menuButton .el-button {
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
// /**
|
/**
|
||||||
// * 真实设备类型
|
* 鼠标事件
|
||||||
// */
|
*/
|
||||||
// export const RealDeviceType = {
|
export const MouseEvent = {
|
||||||
// Section: '区段',
|
Left: 1,
|
||||||
// Switch: '道岔',
|
Right: 2,
|
||||||
// Signal: '信号机',
|
Wheel: 3
|
||||||
// ScreenDoor: '屏蔽门'
|
}
|
||||||
// };
|
|
||||||
/**
|
/**
|
||||||
* 权限类型
|
* 权限类型
|
||||||
*/
|
*/
|
||||||
@ -60,14 +59,6 @@ export const OperateMode = {
|
|||||||
DIRECTIVE: '03'
|
DIRECTIVE: '03'
|
||||||
};
|
};
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 分发、转赠
|
|
||||||
// */
|
|
||||||
// export const OperatorModel = {
|
|
||||||
// DISTRIBUTE: '01',
|
|
||||||
// TRANSFER: '02'
|
|
||||||
// };
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单编号
|
* 菜单编号
|
||||||
*/
|
*/
|
||||||
@ -128,6 +119,7 @@ export const IbpOperation = {
|
|||||||
XXYS: {operate: '09', event: 'XXYS', name: '下行钥匙'},
|
XXYS: {operate: '09', event: 'XXYS', name: '下行钥匙'},
|
||||||
SXYS: {operate: '11', event: 'SXYS', name: '上行钥匙'}
|
SXYS: {operate: '11', event: 'SXYS', name: '上行钥匙'}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ibp状态显示条件
|
* ibp状态显示条件
|
||||||
*/
|
*/
|
||||||
@ -136,12 +128,14 @@ export const IbpShowCondition = {
|
|||||||
Show_Open_Screen_Door: {statusKey: 'screenDoorOpenStatus', statusValue:['02'], defaultStatus: 'close'},
|
Show_Open_Screen_Door: {statusKey: 'screenDoorOpenStatus', statusValue:['02'], defaultStatus: 'close'},
|
||||||
Show_Close_Screen_Door: {statusKey: 'screenDoorOpenStatus', statusValue: ['01'], defaultStatus: 'open'}
|
Show_Close_Screen_Door: {statusKey: 'screenDoorOpenStatus', statusValue: ['01'], defaultStatus: 'open'}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 列车类型 */
|
/** 列车类型 */
|
||||||
export const TrainType = {
|
export const TrainType = {
|
||||||
PLAN: '计划车',
|
PLAN: '计划车',
|
||||||
HEAD: '头码车',
|
HEAD: '头码车',
|
||||||
MANUAL: '人工车'
|
MANUAL: '人工车'
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 仿真成员类型 */
|
/** 仿真成员类型 */
|
||||||
export const SimulationType = {
|
export const SimulationType = {
|
||||||
DISPATCHER: '行调',
|
DISPATCHER: '行调',
|
||||||
|
@ -222,6 +222,7 @@ const map = {
|
|||||||
mapDataLoadedCount: 0, // 地图数据加载完成标识
|
mapDataLoadedCount: 0, // 地图数据加载完成标识
|
||||||
mapStateLoadedCount: 0, // 地图状态变化完成标识
|
mapStateLoadedCount: 0, // 地图状态变化完成标识
|
||||||
mapDataLoadedScreenCount: 0, // 大屏加载完成
|
mapDataLoadedScreenCount: 0, // 大屏加载完成
|
||||||
|
mapStationStateUpdateCount: 0, // 车站状态刷新
|
||||||
trainDetails: null, // 地图'列车详情'显示
|
trainDetails: null, // 地图'列车详情'显示
|
||||||
deleteCount: 0, // 绘图快捷删除标识
|
deleteCount: 0, // 绘图快捷删除标识
|
||||||
updateCount: 0, // 绘图快捷修改标识
|
updateCount: 0, // 绘图快捷修改标识
|
||||||
@ -717,6 +718,9 @@ const map = {
|
|||||||
mapViewLoadedScreenCountIncrement: (state) => {
|
mapViewLoadedScreenCountIncrement: (state) => {
|
||||||
state.mapDataLoadedScreenCount += 1;
|
state.mapDataLoadedScreenCount += 1;
|
||||||
},
|
},
|
||||||
|
mapStationStateUpdate: (state) => {
|
||||||
|
state.mapStationStateUpdateCount += 1;
|
||||||
|
},
|
||||||
operateTrainModel: (state, { model, type }) => {
|
operateTrainModel: (state, { model, type }) => {
|
||||||
if (state.map && model) {
|
if (state.map && model) {
|
||||||
const list = state.map.trainModelList || [];
|
const list = state.map.trainModelList || [];
|
||||||
|
@ -286,6 +286,7 @@ import axios from 'axios';
|
|||||||
|
|
||||||
if(newvalue != this.value){
|
if(newvalue != this.value){
|
||||||
this.value = newvalue;
|
this.value = newvalue;
|
||||||
|
this.groupnum = newvalue;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updatetrainlist(){
|
updatetrainlist(){
|
||||||
|
@ -325,7 +325,7 @@ export default {
|
|||||||
this.mapViewLoaded(false);
|
this.mapViewLoaded(false);
|
||||||
},
|
},
|
||||||
// 地图状态更新
|
// 地图状态更新
|
||||||
handleStateUpdate() {
|
handleStateUpdate(list) {
|
||||||
this.$store.dispatch('map/mapStateLoaded');
|
this.$store.dispatch('map/mapStateLoaded');
|
||||||
},
|
},
|
||||||
// 视图参数改变
|
// 视图参数改变
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { getDeviceMenuByDeviceType } from '@/scripts/ConstDic';
|
import { getDeviceMenuByDeviceType, MouseEvent } from '@/scripts/ConstDic';
|
||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||||
import deviceType from '@/jmapNew/constant/deviceType.js';
|
import deviceType from '@/jmapNew/constant/deviceType.js';
|
||||||
import JlmapVisual from '@/views/newMap/jlmapNew/index';
|
import JlmapVisual from '@/views/newMap/jlmapNew/index';
|
||||||
@ -81,21 +81,16 @@ export default {
|
|||||||
device = this.$store.getters['map/getDeviceByCode'](section.relSwitchCode);
|
device = this.$store.getters['map/getDeviceByCode'](section.relSwitchCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (device._type == 'Section' && device.type == '03') { // 过滤道岔相关区段变成道岔model
|
|
||||||
|
// 过滤道岔相关区段变成道岔model
|
||||||
|
if (device._type == 'Section' && device.type == '03') {
|
||||||
device = this.$store.getters['map/getDeviceByCode'](device.switch.code);
|
device = this.$store.getters['map/getDeviceByCode'](device.switch.code);
|
||||||
}
|
}
|
||||||
// if (device._type == 'Section' && device.type == '04') {
|
|
||||||
// device = null;
|
|
||||||
// }
|
|
||||||
return device;
|
return device;
|
||||||
},
|
},
|
||||||
clickEvent(em) {
|
clickEvent(em) {
|
||||||
var device = { _type: em.deviceType, _code: em.deviceCode };
|
var device = { _type: em.deviceType, _code: em.deviceCode, _event: MouseEvent.Left };
|
||||||
// var CanClickDeviceList = [
|
|
||||||
// deviceType.Switch,
|
|
||||||
// deviceType.Signal,
|
|
||||||
// deviceType.StationStand
|
|
||||||
// ];
|
|
||||||
|
|
||||||
const lineCode = this.$store.getters['map/lineCode'];
|
const lineCode = this.$store.getters['map/lineCode'];
|
||||||
if (em.deviceType === 'StationStand' && lineCode === '01') {
|
if (em.deviceType === 'StationStand' && lineCode === '01') {
|
||||||
@ -105,16 +100,9 @@ export default {
|
|||||||
|
|
||||||
if (em.deviceCode) {
|
if (em.deviceCode) {
|
||||||
device = this.getDeviceByEm(em);
|
device = this.getDeviceByEm(em);
|
||||||
// if (CanClickDeviceList.includes(em.deviceType)) {
|
|
||||||
// try {
|
|
||||||
// // letfMouseSelectDevice(em.deviceCode, this.group);
|
|
||||||
// } catch (error) {
|
|
||||||
// console.log('send left mouse click error.');
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.selected = { ...device };
|
this.selected = { ...device, _event: MouseEvent.Left };
|
||||||
this.$store.dispatch('menuOperation/setSelected', {device: device, subType: em.subType});
|
this.$store.dispatch('menuOperation/setSelected', {device: device, subType: em.subType});
|
||||||
this.$store.dispatch('menuOperation/setLeftClickCount');
|
this.$store.dispatch('menuOperation/setLeftClickCount');
|
||||||
if (this.$route.query.lineCode == '07' || this.$route.query.lineCode == '14') {
|
if (this.$route.query.lineCode == '07' || this.$route.query.lineCode == '14') {
|
||||||
@ -139,7 +127,7 @@ export default {
|
|||||||
const lineCode = this.$store.getters['map/lineCode'];
|
const lineCode = this.$store.getters['map/lineCode'];
|
||||||
if (em.subType === 'TrainWindow') {
|
if (em.subType === 'TrainWindow') {
|
||||||
if (lineCode != '06') {
|
if (lineCode != '06') {
|
||||||
device = { _type: deviceType.TrainWindow, code: em.deviceCode };
|
device = { _type: deviceType.TrainWindow, code: em.deviceCode, _event: MouseEvent.Right };
|
||||||
this.$store.dispatch('map/setTrainWindowShow', true);
|
this.$store.dispatch('map/setTrainWindowShow', true);
|
||||||
}
|
}
|
||||||
} else if (em.subType == 'button' && em.deviceType == 'Station') { // 宁波一号线右键显示控制模式
|
} else if (em.subType == 'button' && em.deviceType == 'Station') { // 宁波一号线右键显示控制模式
|
||||||
@ -162,7 +150,7 @@ export default {
|
|||||||
}
|
}
|
||||||
if (device) {
|
if (device) {
|
||||||
device = this.getSelectedByLineCode(device);
|
device = this.getSelectedByLineCode(device);
|
||||||
this.selected = device;
|
this.selected = { ...device, _event: MouseEvent.Right};
|
||||||
if (!this.buttonOperation) {
|
if (!this.buttonOperation) {
|
||||||
this.$store.dispatch('menuOperation/setSelected', {device: device, subType: em.subType});
|
this.$store.dispatch('menuOperation/setSelected', {device: device, subType: em.subType});
|
||||||
if (!this.checkShouldPop(device)) {
|
if (!this.checkShouldPop(device)) {
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="view-control">
|
<div class="view-control">
|
||||||
<div class="content-box">
|
<div class="content-box">
|
||||||
<div v-for="item in modelList" :key="item.type" class="content-box-list">
|
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
||||||
<div class="title-box">{{ item.name }}</div>
|
<el-tab-pane label="批量设置集中站" name="first">
|
||||||
<div class="list-box">
|
|
||||||
<div v-for="nor in item.list" :key="nor.code" class="list-content" @mouseenter="mouseenter(nor)" @mouseleave="mouseleave(nor)">
|
|
||||||
<div class="name">{{ nor.name }}</div>
|
|
||||||
<div class="close" @click="delList(nor, item.list)"><i class="el-icon-close" /></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="select-box">
|
<div class="select-box">
|
||||||
<el-select v-model="stationCode" filterable size="mini">
|
<el-select v-model="stationCode" filterable size="mini">
|
||||||
<el-option
|
<el-option
|
||||||
@ -24,6 +17,33 @@
|
|||||||
<el-button type="primary" size="mini" @click="handleSectionStationCode">{{ $t('map.setStationCode') }}</el-button>
|
<el-button type="primary" size="mini" @click="handleSectionStationCode">{{ $t('map.setStationCode') }}</el-button>
|
||||||
<el-button type="" size="mini" @click="clearList">清空</el-button>
|
<el-button type="" size="mini" @click="clearList">清空</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="批量设置所属车站" name="second">
|
||||||
|
<div class="select-box">
|
||||||
|
<el-select v-model="belongStationCode" filterable size="mini">
|
||||||
|
<el-option
|
||||||
|
v-for="item in stationList"
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.name + item.code"
|
||||||
|
:value="item.code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div class="button-box">
|
||||||
|
<el-button type="primary" size="mini" @click="handleBelongStationCode">批量设置所属车站</el-button>
|
||||||
|
<el-button type="" size="mini" @click="clearList">清空</el-button>
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<div v-for="item in showList" :key="item.type" class="content-box-list" style="margin-top: 10px;">
|
||||||
|
<div class="title-box">{{ item.name }}</div>
|
||||||
|
<div class="list-box">
|
||||||
|
<div v-for="nor in item.list" :key="nor.code" class="list-content" @mouseenter="mouseenter(nor)" @mouseleave="mouseleave(nor)">
|
||||||
|
<div class="name">{{ nor.name }}</div>
|
||||||
|
<div class="close" @click="delList(nor, item.list)"><i class="el-icon-close" /></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -47,6 +67,9 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
stationCode: '',
|
stationCode: '',
|
||||||
|
belongStationCode: '',
|
||||||
|
activeName: 'first',
|
||||||
|
showList: [],
|
||||||
modelList: [
|
modelList: [
|
||||||
{
|
{
|
||||||
type: 'Section',
|
type: 'Section',
|
||||||
@ -63,6 +86,13 @@ export default {
|
|||||||
name: '信号机列表',
|
name: '信号机列表',
|
||||||
list: []
|
list: []
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
modelSignalList: [
|
||||||
|
{
|
||||||
|
type: 'Signal',
|
||||||
|
name: '信号机列表',
|
||||||
|
list: []
|
||||||
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -86,8 +116,16 @@ export default {
|
|||||||
// this.$emit('setCenter', code);
|
// this.$emit('setCenter', code);
|
||||||
// this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code));
|
// this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code));
|
||||||
// },
|
// },
|
||||||
|
handleClick() {
|
||||||
|
if (this.activeName === 'first') {
|
||||||
|
this.showList = this.modelList;
|
||||||
|
} else {
|
||||||
|
this.showList = this.modelSignalList;
|
||||||
|
}
|
||||||
|
},
|
||||||
deviceSelect(selected) {
|
deviceSelect(selected) {
|
||||||
if (selected && selected._type.toUpperCase() == 'CheckBox'.toUpperCase()) {
|
if (selected && selected._type.toUpperCase() == 'CheckBox'.toUpperCase()) {
|
||||||
|
this.activeName = 'first';
|
||||||
this.clearModelList();
|
this.clearModelList();
|
||||||
let count = 0;
|
let count = 0;
|
||||||
this.seclectDeviceList.forEach(item => {
|
this.seclectDeviceList.forEach(item => {
|
||||||
@ -99,6 +137,7 @@ export default {
|
|||||||
this.modelList[1].list.push(item);
|
this.modelList[1].list.push(item);
|
||||||
} else if (item._type == 'Signal') {
|
} else if (item._type == 'Signal') {
|
||||||
this.modelList[2].list.push(item);
|
this.modelList[2].list.push(item);
|
||||||
|
this.modelSignalList[0].list.push(item);
|
||||||
}
|
}
|
||||||
if (item.stationCode == this.seclectDeviceList[0].stationCode) {
|
if (item.stationCode == this.seclectDeviceList[0].stationCode) {
|
||||||
count++;
|
count++;
|
||||||
@ -109,12 +148,16 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.stationCode = '';
|
this.stationCode = '';
|
||||||
}
|
}
|
||||||
|
this.belongStationCode = this.stationList[0].code;
|
||||||
|
this.showList = this.modelList;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clearModelList() {
|
clearModelList() {
|
||||||
|
this.showList = [];
|
||||||
this.modelList.forEach(item => {
|
this.modelList.forEach(item => {
|
||||||
item.list = [];
|
item.list = [];
|
||||||
});
|
});
|
||||||
|
this.modelSignalList[0].list = [];
|
||||||
},
|
},
|
||||||
// 删除当前选中
|
// 删除当前选中
|
||||||
delList(model, list) {
|
delList(model, list) {
|
||||||
@ -152,9 +195,24 @@ export default {
|
|||||||
this.stationCode = '';
|
this.stationCode = '';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
handleBelongStationCode() {
|
||||||
|
if (this.belongStationCode && this.modelSignalList[0].list.length) {
|
||||||
|
const models = [];
|
||||||
|
this.modelSignalList[0].list.forEach(item => {
|
||||||
|
const Model = deepAssign({}, this.$store.getters['map/getDeviceByCode'](item.code));
|
||||||
|
Model.belongStationCode = this.belongStationCode;
|
||||||
|
models.push(Model);
|
||||||
|
});
|
||||||
|
this.$emit('updateMapModel', models);
|
||||||
|
this.$message.success('设置所属车站成功!');
|
||||||
|
this.belongStationCode = '';
|
||||||
|
}
|
||||||
|
},
|
||||||
clearList() { // 清空数据
|
clearList() { // 清空数据
|
||||||
this.stationCode = '';
|
this.stationCode = '';
|
||||||
|
this.belongStationCode = '';
|
||||||
this.$store.commit('map/setSeclectDeviceList', []);
|
this.$store.commit('map/setSeclectDeviceList', []);
|
||||||
|
this.showList = [];
|
||||||
this.modelList = [
|
this.modelList = [
|
||||||
{
|
{
|
||||||
type: 'Section',
|
type: 'Section',
|
||||||
@ -172,6 +230,13 @@ export default {
|
|||||||
list: []
|
list: []
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
this.modelSignalList = [
|
||||||
|
{
|
||||||
|
type: 'Signal',
|
||||||
|
name: '信号机列表',
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
];
|
||||||
},
|
},
|
||||||
mouseenter(model) {
|
mouseenter(model) {
|
||||||
if (model._type == 'Section') {
|
if (model._type == 'Section') {
|
||||||
|
@ -129,10 +129,32 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
doBatchCreate() {
|
doBatchCreate() {
|
||||||
const models = this.addModel.modelList.map(el => {
|
const groupMap = {}
|
||||||
const section = this.$store.getters['map/getDeviceByCode'](el.sectionCode);
|
const models = [];
|
||||||
return utils.buildModelBySection(section, el, this.responderList);
|
|
||||||
|
// 分组
|
||||||
|
this.addModel.modelList.forEach(el => {
|
||||||
|
if (!groupMap[el.sectionCode]) {
|
||||||
|
groupMap[el.sectionCode] = []
|
||||||
|
}
|
||||||
|
groupMap[el.sectionCode].push(el);
|
||||||
|
})
|
||||||
|
|
||||||
|
// 偏移量计算
|
||||||
|
Object.keys(groupMap).forEach(code => {
|
||||||
|
const section = this.$store.getters['map/getDeviceByCode'](code);
|
||||||
|
const list = groupMap[code];
|
||||||
|
const length = list.length;
|
||||||
|
const ox = (section.points[length - 1].x - section.points[0].x) / (length+1);
|
||||||
|
const oy = (section.points[length - 1].y - section.points[0].y) / (length+1);
|
||||||
|
list.forEach((el,i) => {
|
||||||
|
const x = section.points[0].x + ox*(i+1);
|
||||||
|
const y = section.points[0].y + oy*(i+1);
|
||||||
|
models.push(utils.buildModelBySection(section, {x, y}, el, this.responderList));
|
||||||
});
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
// 批量创建
|
||||||
this.$emit('updateMapModel', models);
|
this.$emit('updateMapModel', models);
|
||||||
},
|
},
|
||||||
doBatchReset() {
|
doBatchReset() {
|
||||||
|
@ -83,9 +83,9 @@ export default {
|
|||||||
name:'',
|
name:'',
|
||||||
item: [
|
item: [
|
||||||
{ prop: 'name', label: '应答器名称', type: 'input' },
|
{ prop: 'name', label: '应答器名称', type: 'input' },
|
||||||
{ prop: 'type', label: `应答器类型`, type: 'select', optionLabel: 'name', optionValue: 'value', options: this.responderTypeList },
|
{ prop: 'type', label: `应答器类型`, type: 'select', optionLabel: 'name&&value', optionValue: 'value', options: this.responderTypeList },
|
||||||
{ prop: 'sectionCode', label: '关联区段', type: 'selectHover', optionLabel: 'code', optionValue: 'code', options: this.sectionList, buttonType: 'RelSectionCode', hover: this.hover, buttonShowType: this.isSectionButtonType },
|
{ prop: 'sectionCode', label: '关联区段', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.sectionList, buttonType: 'RelSectionCode', hover: this.hover, buttonShowType: this.isSectionButtonType },
|
||||||
{ prop: 'signalCode', label: '关联信号机', type: 'selectHover', optionLabel: 'code', optionValue: 'code', options: this.signalList, buttonType: 'RelSignalCode', hover: this.hover, buttonShowType: this.isSignalButtonType },
|
{ prop: 'signalCode', label: '关联信号机', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalList, buttonType: 'RelSignalCode', hover: this.hover, buttonShowType: this.isSignalButtonType },
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +102,10 @@ export default {
|
|||||||
},
|
},
|
||||||
create() {
|
create() {
|
||||||
const section = this.$store.getters['map/getDeviceByCode'](this.addModel.sectionCode);
|
const section = this.$store.getters['map/getDeviceByCode'](this.addModel.sectionCode);
|
||||||
const model = utils.buildModelBySection(section, this.addModel, this.responderList);
|
const length = section.points.length;
|
||||||
|
const x = (section.points[length - 1].x + section.points[0].x) / 2;
|
||||||
|
const y = (section.points[length - 1].y + section.points[0].y) / 2;
|
||||||
|
const model = utils.buildModelBySection(section, {x, y}, this.addModel, this.responderList);
|
||||||
this.$refs.createForm.resetForm();
|
this.$refs.createForm.resetForm();
|
||||||
this.$emit('updateMapModel', model);
|
this.$emit('updateMapModel', model);
|
||||||
}
|
}
|
||||||
|
@ -130,9 +130,9 @@ export default {
|
|||||||
draw: {
|
draw: {
|
||||||
name: this.$t('map.drawData'),
|
name: this.$t('map.drawData'),
|
||||||
item: [
|
item: [
|
||||||
{ prop: 'code', label: '应答器编码', type: 'select', optionLabel: 'code', optionValue: 'code', options: this.responderList, deviceChange: this.deviceChange },
|
{ prop: 'code', label: '应答器编码', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.responderList, deviceChange: this.deviceChange },
|
||||||
{ prop: 'name', label: '应答器名称', type: 'input' },
|
{ prop: 'name', label: '应答器名称', type: 'input' },
|
||||||
{ prop: 'type', label: `应答器类型`, type: 'select', optionLabel: 'name', optionValue: 'value', options: this.responderTypeList },
|
{ prop: 'type', label: `应答器类型`, type: 'select', optionLabel: 'name&&value', optionValue: 'value', options: this.responderTypeList },
|
||||||
{ prop: 'offset', label: '区段偏移值', type: 'number' },
|
{ prop: 'offset', label: '区段偏移值', type: 'number' },
|
||||||
{ prop: 'position', label: '坐标', type: 'coordinate', width: '120px', children: [
|
{ prop: 'position', label: '坐标', type: 'coordinate', width: '120px', children: [
|
||||||
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px', disabled: false },
|
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px', disabled: false },
|
||||||
@ -144,8 +144,8 @@ export default {
|
|||||||
{ prop: 'textOffset.y', firstLevel: 'textOffset', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px', disabled: false }
|
{ prop: 'textOffset.y', firstLevel: 'textOffset', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px', disabled: false }
|
||||||
] },
|
] },
|
||||||
{ prop:'textRotate', label: '文字旋转', type: 'number' },
|
{ prop:'textRotate', label: '文字旋转', type: 'number' },
|
||||||
{ prop: 'sectionCode', label: '关联区段', type: 'selectHover', optionLabel: 'code', optionValue: 'code', options: this.sectionList, buttonType: 'RelModelSectionCode', hover: this.hover, buttonShowType: this.isSectionButtonType },
|
{ prop: 'sectionCode', label: '关联区段', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.sectionList, buttonType: 'RelModelSectionCode', hover: this.hover, buttonShowType: this.isSectionButtonType },
|
||||||
{ prop: 'signalCode', label: '关联信号机', type: 'selectHover', optionLabel: 'code', optionValue: 'code', options: this.signalList, buttonType: 'RelModelSignalCode', hover: this.hover, buttonShowType: this.isSignalButtonType },
|
{ prop: 'signalCode', label: '关联信号机', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalList, buttonType: 'RelModelSignalCode', hover: this.hover, buttonShowType: this.isSignalButtonType },
|
||||||
{ prop: 'stationCode', label: '关联集中站' + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
|
{ prop: 'stationCode', label: '关联集中站' + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
import { getUID } from '@/jmapNew/utils/Uid';
|
import { getUID } from '@/jmapNew/utils/Uid';
|
||||||
|
|
||||||
export function buildModelBySection(section, model, list) {
|
export function buildModelBySection(section, position, model, list) {
|
||||||
if (section) {
|
if (section) {
|
||||||
const length = section.points.length;
|
const length = section.points.length;
|
||||||
const dx = (section.points[length - 1].x - section.points[0].x);
|
const dx = (section.points[length - 1].x - section.points[0].x);
|
||||||
const dy = (section.points[length - 1].y - section.points[0].y);
|
const dy = (section.points[length - 1].y - section.points[0].y);
|
||||||
const rotate = Math.atan2(dy, dx) * 180 / Math.PI;
|
const rotate = Math.atan2(dy, dx) * 180 / Math.PI;
|
||||||
const vx = (section.points[length - 1].x + section.points[0].x) / 2;
|
|
||||||
const vy = (section.points[length - 1].y + section.points[0].y) / 2;
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
_type: 'Responder',
|
_type: 'Responder',
|
||||||
@ -15,8 +13,8 @@ export function buildModelBySection(section, model, list) {
|
|||||||
rotate: rotate + 90,
|
rotate: rotate + 90,
|
||||||
textRotate: rotate + 90,
|
textRotate: rotate + 90,
|
||||||
position: {
|
position: {
|
||||||
x: vx,
|
x: position.x,
|
||||||
y: vy
|
y: position.y
|
||||||
},
|
},
|
||||||
textOffset: {
|
textOffset: {
|
||||||
x: 0,
|
x: 0,
|
||||||
|
@ -147,6 +147,7 @@ export default {
|
|||||||
item: [
|
item: [
|
||||||
{ prop: 'stationCode', label: this.$t('map.equipmentStation'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList },
|
{ prop: 'stationCode', label: this.$t('map.equipmentStation'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList },
|
||||||
{ prop: 'interlockStationCode', label: '所属联锁站', type: 'select', optionLabel: 'name&&code', optionValue: 'code', clearable: true, options: this.ciStationList},
|
{ prop: 'interlockStationCode', label: '所属联锁站', type: 'select', optionLabel: 'name&&code', optionValue: 'code', clearable: true, options: this.ciStationList},
|
||||||
|
{ prop: 'belongStationCode', label: '所属车站', type: 'select', optionLabel: 'name&&code', optionValue: 'code', clearable: true, options: this.stationList },
|
||||||
{ prop: 'uniqueName', label: this.$t('map.signalUniqueName'), type: 'input' },
|
{ prop: 'uniqueName', label: this.$t('map.signalUniqueName'), type: 'input' },
|
||||||
{ prop: 'sectionCode', label: this.$t('map.belongsSection'), type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalSectionList, hover: this.hover, buttonType: 'signalSection', buttonShowType: this.signalSectionShow },
|
{ prop: 'sectionCode', label: this.$t('map.belongsSection'), type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalSectionList, hover: this.hover, buttonType: 'signalSection', buttonShowType: this.signalSectionShow },
|
||||||
{ prop: 'sectionOffset', label: this.$t('map.signalOffset'), type: 'number', min: 0, placeholder: this.$t('tip.meter') }
|
{ prop: 'sectionOffset', label: this.$t('map.signalOffset'), type: 'number', min: 0, placeholder: this.$t('tip.meter') }
|
||||||
|
@ -32,7 +32,7 @@ module.exports = {
|
|||||||
outputDir: outputDir,
|
outputDir: outputDir,
|
||||||
assetsDir: 'static', // 相对于outputDir的静态资源(js、css、img、fonts)目录
|
assetsDir: 'static', // 相对于outputDir的静态资源(js、css、img、fonts)目录
|
||||||
lintOnSave: false,
|
lintOnSave: false,
|
||||||
productionSourceMap: false, // 项目打包后是否压缩
|
productionSourceMap: process.env.VUE_APP_SOURCE_MAP,
|
||||||
devServer: {
|
devServer: {
|
||||||
port: port,
|
port: port,
|
||||||
host: '0.0.0.0',
|
host: '0.0.0.0',
|
||||||
|
Loading…
Reference in New Issue
Block a user