desc: 增加成都四号线地图配置
This commit is contained in:
parent
fe9b59e2de
commit
f231ffd6f1
@ -1,8 +1,8 @@
|
|||||||
const mapDeviceStyle = {
|
const mapDeviceStyle = {
|
||||||
'01': 'chengdu_04',
|
'01': 'chengdu_04',
|
||||||
'02': 'fuzhou_01',
|
'02': 'fuzhou_01',
|
||||||
// '03': 'bejing_01',
|
'03': 'bejing_01',
|
||||||
'03': 'chengdu_03',
|
'04': 'chengdu_03',
|
||||||
'05': 'batong_01' // 暂时没有画北京八通线
|
'05': 'batong_01' // 暂时没有画北京八通线
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@ class SkinStyle extends defaultStyle {
|
|||||||
super();
|
super();
|
||||||
this[deviceType.Link] = {
|
this[deviceType.Link] = {
|
||||||
lineWidthColor: '#FFFFFF', // line 颜色
|
lineWidthColor: '#FFFFFF', // line 颜色
|
||||||
linkWidth: 4.4, // link 宽度
|
linkWidth: 4, // link 宽度
|
||||||
linkColor: '#3F3F3F', // link 线条颜色
|
linkColor: '#4e8de6', // link 线条颜色
|
||||||
linkTextColor: '#FFFFFF' // link 字体颜色
|
linkTextColor: '#FFFFFF' // link 字体颜色
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -17,12 +17,12 @@ class SkinStyle extends defaultStyle {
|
|||||||
distance: 10, // 文字离区段距离
|
distance: 10, // 文字离区段距离
|
||||||
fontSize: 12, // 字体大小
|
fontSize: 12, // 字体大小
|
||||||
fontWeight: 'normal', // 字体粗细
|
fontWeight: 'normal', // 字体粗细
|
||||||
fontColor: '#FFFFFF', // 字体颜色
|
fontColor: 'lightgreen', // 字体颜色
|
||||||
textAlign: 'center', // 水平对齐方式
|
textAlign: 'center', // 水平对齐方式
|
||||||
textPosition: 'inside', // 文字位置
|
textPosition: 'inside', // 文字位置
|
||||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||||
},
|
},
|
||||||
logicText: {
|
logicText: { // 逻辑区段名称
|
||||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||||
distance: 12, // 文字离区段距离
|
distance: 12, // 文字离区段距离
|
||||||
fontSize: 11, // 字体大小
|
fontSize: 11, // 字体大小
|
||||||
@ -32,7 +32,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
textPosition: 'inside', // 文字位置
|
textPosition: 'inside', // 文字位置
|
||||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||||
},
|
},
|
||||||
standText: {
|
standText: { // 站台
|
||||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||||
distance: 24, // 文字离区段距离
|
distance: 24, // 文字离区段距离
|
||||||
fontSize: 11, // 字体大小
|
fontSize: 11, // 字体大小
|
||||||
@ -42,7 +42,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
textPosition: 'inside', // 文字位置
|
textPosition: 'inside', // 文字位置
|
||||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||||
},
|
},
|
||||||
reentryText: {
|
reentryText: { // 折返
|
||||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||||
distance: 36, // 文字离区段距离
|
distance: 36, // 文字离区段距离
|
||||||
fontSize: 11, // 字体大小
|
fontSize: 11, // 字体大小
|
||||||
@ -52,7 +52,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
textPosition: 'inside', // 文字位置
|
textPosition: 'inside', // 文字位置
|
||||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||||
},
|
},
|
||||||
transferText: {
|
transferText: { // 转换轨
|
||||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||||
distance: 36, // 文字离区段距离
|
distance: 36, // 文字离区段距离
|
||||||
fontSize: 11, // 字体大小
|
fontSize: 11, // 字体大小
|
||||||
@ -62,7 +62,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
textPosition: 'inside', // 文字位置
|
textPosition: 'inside', // 文字位置
|
||||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||||
},
|
},
|
||||||
destinationText: {
|
destinationText: { // 目的地
|
||||||
opposite: true, // 对称相反
|
opposite: true, // 对称相反
|
||||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||||
distance: 12, // 文字离区段距离
|
distance: 12, // 文字离区段距离
|
||||||
@ -78,25 +78,25 @@ class SkinStyle extends defaultStyle {
|
|||||||
beyondWidth: 0, // 区段宽超出宽度
|
beyondWidth: 0, // 区段宽超出宽度
|
||||||
invadeColor: '#FFFFFF', // 区段侵入颜色
|
invadeColor: '#FFFFFF', // 区段侵入颜色
|
||||||
spareColor: '#5578B6', // 区段空闲颜色
|
spareColor: '#5578B6', // 区段空闲颜色
|
||||||
communicationOccupiedColor: '#FF00FF', // 区段通信车占用颜色
|
communicationOccupiedColor: 'lightpink', // 区段通信车占用颜色
|
||||||
unCommunicationOccupiedColor: '#DE310C', // 区段非通讯车占用颜色
|
unCommunicationOccupiedColor: 'red', // 区段非通讯车占用颜色
|
||||||
routeLockColor: '#FFFFFF', // 区段路由锁定颜色
|
routeLockColor: 'rgba(0, 255, 0, 1)', // 区段路由锁定颜色
|
||||||
faultLockColor: '#006400', // 区段故障锁定颜色
|
faultLockColor: 'white', // 区段故障锁定颜色
|
||||||
undefinedColor: '#0071C1', // 区段未定义颜色
|
undefinedColor: '#0071C1', // 区段未定义颜色
|
||||||
protectionLockedColor: '#FFFFFF', // 保护区段锁闭
|
protectionLockedColor: '#FFFFFF', // 保护区段锁闭
|
||||||
blockColor: '#00FF00', // 区段封锁颜色
|
blockColor: 'pink', // 区段封锁颜色
|
||||||
atcExcisionColor: '#A0522D', // 区段atc切除颜色
|
atcExcisionColor: '#A0522D', // 区段atc切除颜色
|
||||||
atsExcisionColor: '#A0522D', // 区段ats切除颜色
|
atsExcisionColor: '#A0522D', // 区段ats切除颜色
|
||||||
timeReleaseColor: '#3F3F3F', // 区段延时释放颜色
|
timeReleaseColor: '#3F3F3F', // 区段延时释放颜色
|
||||||
protectiveLockColor: '#FFFF00', // 区段保护锁闭
|
protectiveLockColor: '#92D14F', // 区段保护锁闭
|
||||||
protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
|
protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
|
||||||
logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
|
logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
|
||||||
logicalTextColor: '#C0C0C0' // 逻辑区段名称颜色 (未用)
|
logicalTextColor: 'white' // 逻辑区段名称颜色 (未用)
|
||||||
},
|
},
|
||||||
axle: {
|
axle: {
|
||||||
radius: 3, // 计轴 半径
|
radius: 3, // 计轴 半径
|
||||||
distance: 5, // 计轴和区段之间的距离 (未用)
|
distance: 5, // 计轴和区段之间的距离 (未用)
|
||||||
color: '#C0C0C0', // 区段计轴颜色
|
color: 'white', // 区段计轴颜色
|
||||||
resetColor: '#00FFFF', // 区段计轴预复位颜色
|
resetColor: '#00FFFF', // 区段计轴预复位颜色
|
||||||
Failure: '#E6A23C' // #FFFF00 计轴失效
|
Failure: '#E6A23C' // #FFFF00 计轴失效
|
||||||
},
|
},
|
||||||
@ -118,17 +118,14 @@ class SkinStyle extends defaultStyle {
|
|||||||
width: 1.5, // 分隔符宽度
|
width: 1.5, // 分隔符宽度
|
||||||
endWidth: 1.5, // 尽头分隔符宽度
|
endWidth: 1.5, // 尽头分隔符宽度
|
||||||
endColor: '#FFFFFF', // 尽头分隔符颜色
|
endColor: '#FFFFFF', // 尽头分隔符颜色
|
||||||
color: '#FFFFFF' // 区段边界符颜色
|
color: 'white' // 区段边界符颜色
|
||||||
},
|
|
||||||
shuttleBack: { // 折返进路 (存在此对象 显示折返箭头)
|
|
||||||
distance: 5 // 限速线距离区段距离
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this[deviceType.Signal] = {
|
this[deviceType.Signal] = {
|
||||||
distance: 10, // 设备距离区段的距离
|
distance: 3, // 设备距离区段的距离
|
||||||
post: {
|
post: {
|
||||||
standardColor: '#FFFFFF', // 灯柱颜色
|
standardColor: '#C0C0C0', // 灯柱颜色
|
||||||
standardWidth: 2 // 灯柱宽度
|
standardWidth: 2 // 灯柱宽度
|
||||||
},
|
},
|
||||||
text: {
|
text: {
|
||||||
@ -137,7 +134,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
isAlignCenter: false, // 信号字体对其方式
|
isAlignCenter: false, // 信号字体对其方式
|
||||||
fontSize: 11, // 信号机名称字体大小
|
fontSize: 11, // 信号机名称字体大小
|
||||||
fontWeight: 'bold', // 信号机名称字体粗细
|
fontWeight: 'bold', // 信号机名称字体粗细
|
||||||
defaultColor: '#FFFFFF', // 信号灯字体默认色
|
defaultColor: 'white', // 信号灯字体默认色
|
||||||
blockColor: '#EF0C08', // 信号灯字体锁定颜色
|
blockColor: '#EF0C08', // 信号灯字体锁定颜色
|
||||||
checkColor: '#00FF00' // 信号保护区段检查颜色
|
checkColor: '#00FF00' // 信号保护区段检查颜色
|
||||||
},
|
},
|
||||||
@ -146,12 +143,12 @@ class SkinStyle extends defaultStyle {
|
|||||||
stopWidth: 2, // 禁止线宽度
|
stopWidth: 2, // 禁止线宽度
|
||||||
borderWidth: 2, // 信号灯边框线宽度
|
borderWidth: 2, // 信号灯边框线宽度
|
||||||
borderColor: '#3149C3', // 信号灯边框线颜色
|
borderColor: '#3149C3', // 信号灯边框线颜色
|
||||||
radiusR: 6, // 信号灯半径
|
radiusR: 3, // 信号灯半径
|
||||||
blockColor: '#EF0C08', // 信号灯锁闭
|
blockColor: '#EF0C08', // 信号灯锁闭
|
||||||
grayColor: '#7F7F7F', // 信号灯灰色
|
grayColor: '#C0C0C0', // 信号灯灰色
|
||||||
redColor: '#FF0000', // 信号灯红色
|
redColor: 'red', // 信号灯红色
|
||||||
greenColor: '#00FF00', // 信号灯绿色
|
greenColor: 'green', // 信号灯绿色
|
||||||
yellowColor: '#FFFF00', // 信号灯黄色
|
yellowColor: 'yellow', // 信号灯黄色
|
||||||
whiteColor: '#FFFFFF', // 信号灯白色
|
whiteColor: '#FFFFFF', // 信号灯白色
|
||||||
blueColor: '#0070C0' // 信号灯蓝色
|
blueColor: '#0070C0' // 信号灯蓝色
|
||||||
},
|
},
|
||||||
@ -181,7 +178,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
distance: 5, // 信号灯按钮距离区段的距离
|
distance: 5, // 信号灯按钮距离区段的距离
|
||||||
borderDashColor: '#FFFFFF', // 信号灯按钮边线
|
borderDashColor: '#FFFFFF', // 信号灯按钮边线
|
||||||
buttonColor: 'darkgreen', // 信号灯按钮颜色
|
buttonColor: 'darkgreen', // 信号灯按钮颜色
|
||||||
buttonLightenColor: '#E4EF50' // 信号灯按钮闪烁颜色
|
buttonLightenColor: 'yellow' // 信号灯按钮闪烁颜色
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -192,21 +189,21 @@ class SkinStyle extends defaultStyle {
|
|||||||
},
|
},
|
||||||
safetyDoor: { // 屏蔽门
|
safetyDoor: { // 屏蔽门
|
||||||
height: 3, // 站台屏蔽门高度
|
height: 3, // 站台屏蔽门高度
|
||||||
distance: 8, // 站台和屏蔽门之间的距离
|
distance: 4, // 站台和屏蔽门之间的距离
|
||||||
defaultColor: '#00FF00', // 屏蔽门默认颜色
|
defaultColor: 'green', // 屏蔽门默认颜色
|
||||||
splitDoorColor: '#C00808' // 屏蔽门切除颜色
|
splitDoorColor: 'green' // 屏蔽门切除颜色
|
||||||
},
|
},
|
||||||
stand: { // 站台
|
stand: { // 站台
|
||||||
headFontSize: 10, // 站台首端字体大小
|
headFontSize: 10, // 站台首端字体大小
|
||||||
spareColor: '#808080', // 站台空闲颜色
|
spareColor: 'white', // 站台空闲颜色
|
||||||
stopColor: '#FFF000', // 站台列车停站颜色
|
stopColor: 'yellow', // 站台列车停站颜色
|
||||||
jumpStopColor: '#808080', // 站台跳停颜色
|
jumpStopColor: 'blue', // 站台跳停颜色
|
||||||
designatedJumpStopColor: '#808080' // 站台指定列车跳停颜色
|
designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
|
||||||
},
|
},
|
||||||
standEmergent: { // 紧急关闭
|
standEmergent: { // 紧急关闭
|
||||||
mergentR: 4, // 站台紧急关闭半径
|
mergentR: 4, // 站台紧急关闭半径
|
||||||
offset: {x: 0, y: 40}, // 站台紧急关闭偏移量
|
offset: {x: 0, y: 40}, // 站台紧急关闭偏移量
|
||||||
closeColor: '#F61107' // 站台紧急关闭颜色
|
closeColor: 'red' // 站台紧急关闭颜色
|
||||||
},
|
},
|
||||||
reentry: { // 站台折返策略
|
reentry: { // 站台折返策略
|
||||||
position: 0, // 折返方向
|
position: 0, // 折返方向
|
||||||
@ -218,15 +215,15 @@ class SkinStyle extends defaultStyle {
|
|||||||
text: '扣', // 扣车显示内容
|
text: '扣', // 扣车显示内容
|
||||||
position: -1, // 扣车方向
|
position: -1, // 扣车方向
|
||||||
offset: {x: -8, y: -20}, // 扣车偏移量
|
offset: {x: -8, y: -20}, // 扣车偏移量
|
||||||
trainColor: '#FFFF00', // 车站扣车颜色
|
trainColor: 'yellow', // 车站扣车颜色
|
||||||
centerTrainColor: '#C0C0C0', // 中心扣车颜色
|
centerTrainColor: 'white', // 中心扣车颜色
|
||||||
andCenterTrainColor: '#C0C0C0', // 车站+中心扣车颜色
|
andCenterTrainColor: 'red', // 车站+中心扣车颜色
|
||||||
detainTrainTextColor: '#E4EF50' // 车站扣除文字颜色
|
detainTrainTextColor: '#E4EF50' // 车站扣除文字颜色
|
||||||
},
|
},
|
||||||
stopTime: { // 停站时间
|
stopTime: { // 停站时间
|
||||||
position: 1, // 运行时间方向
|
position: 1, // 运行时间方向
|
||||||
offset: {x: -8, y: -4}, // 运行时间偏移量
|
offset: {x: -8, y: -4}, // 运行时间偏移量
|
||||||
textColor: '#C0C0C0' // 停站时间字体颜色
|
textColor: 'white' // 停站时间字体颜色
|
||||||
},
|
},
|
||||||
jump: {
|
jump: {
|
||||||
text: '跳', // 停跳显示内容
|
text: '跳', // 停跳显示内容
|
||||||
@ -247,7 +244,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
this[deviceType.StationControl] = {
|
this[deviceType.StationControl] = {
|
||||||
text: {
|
text: {
|
||||||
distance: 2, // 灯和文字之间的距离
|
distance: 2, // 灯和文字之间的距离
|
||||||
fontSize: 11, // 字体大小
|
fontSize: 12, // 字体大小
|
||||||
fontFormat: 'consolas', // 字体格式
|
fontFormat: 'consolas', // 字体格式
|
||||||
fontColor: '#ffffff', // 字体颜色
|
fontColor: '#ffffff', // 字体颜色
|
||||||
fontWeight: 'normal', // 字体粗细
|
fontWeight: 'normal', // 字体粗细
|
||||||
@ -257,15 +254,15 @@ class SkinStyle extends defaultStyle {
|
|||||||
lamp: {
|
lamp: {
|
||||||
count: 4, // 控制模式的个数
|
count: 4, // 控制模式的个数
|
||||||
offset: {x: 0, y: 0}, // 偏移量
|
offset: {x: 0, y: 0}, // 偏移量
|
||||||
radiusR: 6, // 控制模式灯的半径
|
radiusR: 4, // 控制模式灯的半径
|
||||||
distance: 36, // 控制模式之间灯之间的距离
|
distance: 36, // 控制模式之间灯之间的距离
|
||||||
grayColor: '#7F7F7F', // 控制模式灰色
|
grayColor: '#C0C0C0', // 控制模式灰色
|
||||||
greenColor: '#00FF00', // 控制模式绿色
|
greenColor: 'green', // 控制模式绿色
|
||||||
redColor: '#FF0000', // 控制模式红色
|
redColor: 'red', // 控制模式红色
|
||||||
yellowColor: '#FFFF00' // 控制模式黄色
|
yellowColor: 'yellow' // 控制模式黄色
|
||||||
},
|
},
|
||||||
arrow: {
|
arrow: {
|
||||||
show: true // 控制模式箭头显隐
|
show: false // 控制模式箭头显隐
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -296,13 +293,13 @@ class SkinStyle extends defaultStyle {
|
|||||||
fontSize: 11, // 字体大小
|
fontSize: 11, // 字体大小
|
||||||
fontWeight: 'normal', // 字体粗细
|
fontWeight: 'normal', // 字体粗细
|
||||||
borderColor: '#FE0000', // 道岔边框颜色
|
borderColor: '#FE0000', // 道岔边框颜色
|
||||||
lossColor: '#C00808', // 道岔失去颜色
|
lossColor: 'lightgreen', // 道岔失去颜色
|
||||||
locateColor: '#00FF00', // 道岔定位颜色
|
locateColor: 'lightgreen', // 道岔定位颜色
|
||||||
inversionColor: '#FFFF00', // 道岔反位颜色
|
inversionColor: 'lightgreen', // 道岔反位颜色
|
||||||
monolockColor: '#FFFFFF' // 道岔单锁颜色
|
monolockColor: '#FFFFFF' // 道岔单锁颜色
|
||||||
},
|
},
|
||||||
core: {
|
core: {
|
||||||
length: 6 // 道岔单边长度
|
length: 10 // 道岔单边长度
|
||||||
},
|
},
|
||||||
monolock: { // 道岔单锁配置
|
monolock: { // 道岔单锁配置
|
||||||
locationColor: '#00FF00', // 道岔单锁'定位'颜色 (绿色)
|
locationColor: '#00FF00', // 道岔单锁'定位'颜色 (绿色)
|
||||||
@ -392,7 +389,7 @@ class SkinStyle extends defaultStyle {
|
|||||||
hsda: {
|
hsda: {
|
||||||
lrPaddingHSDA: 3, // HSDA两边间隔
|
lrPaddingHSDA: 3, // HSDA两边间隔
|
||||||
upPaddingHSDA: 4, // HSDA上边距离
|
upPaddingHSDA: 4, // HSDA上边距离
|
||||||
trainHSDATextFontSize: 9, // 列车HDSA字号
|
trainHSDATextFontSize: 8, // 列车HDSA字号
|
||||||
textHContent: '扣', // textH文本
|
textHContent: '扣', // textH文本
|
||||||
textSContent: '跳', // textS文本
|
textSContent: '跳', // textS文本
|
||||||
textDContent: '门', // textD文本
|
textDContent: '门', // textD文本
|
||||||
@ -420,19 +417,19 @@ class SkinStyle extends defaultStyle {
|
|||||||
trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量
|
trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量
|
||||||
},
|
},
|
||||||
trainHead: {
|
trainHead: {
|
||||||
trainMoreLength: 0, // 列车车头比车身高出的长度,上下相比车体伸出去的边框
|
trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框
|
||||||
trainHeadTriangleFirst: { x: 7, y: 1}, // 列车车头三角坐标1偏移量
|
trainHeadTriangleFirst: { x: 7, y: 1}, // 列车车头三角坐标1偏移量
|
||||||
trainHeadTriangleSecond: { x: 13, y: 10}, // 列车车头三角坐标2偏移量
|
trainHeadTriangleSecond: { x: 13, y: 10}, // 列车车头三角坐标2偏移量
|
||||||
trainHeadTriangleThird: { x: 7, y: 19}, // 列车车头三角坐标3偏移量
|
trainHeadTriangleThird: { x: 7, y: 19}, // 列车车头三角坐标3偏移量
|
||||||
trainConntWidth: 3, // 列车竖杠的宽度
|
trainConntWidth: 4, // 列车竖杠的宽度
|
||||||
trainHeadFillColor: '#000000', // 列车车头矩形填充颜色
|
trainHeadFillColor: '#000000', // 列车车头矩形填充颜色
|
||||||
trainHeadRectHeight: 20 // 列车车头矩形高度
|
trainHeadRectHeight: 20 // 列车车头矩形高度
|
||||||
},
|
},
|
||||||
common: {
|
common: {
|
||||||
trainHeight: 20, // 列车高度
|
trainHeight: 20, // 列车高度
|
||||||
trainHeadDistance: 4, // 列车和车头之间的间距
|
trainHeadDistance: 2, // 列车和车头之间的间距
|
||||||
trainWidth: 48, // 列车长度
|
trainWidth: 55, // 列车长度
|
||||||
trainTextFontSize: 12, // 列车字号
|
trainTextFontSize: 16, // 列车字号
|
||||||
fontFamily: 'consolas', // 默认字体 族类
|
fontFamily: 'consolas', // 默认字体 族类
|
||||||
haveTextHSDA: true, // 是否需创建textHSDA对象
|
haveTextHSDA: true, // 是否需创建textHSDA对象
|
||||||
haveArrowText: true, // 是否需创建arrowText对象
|
haveArrowText: true, // 是否需创建arrowText对象
|
||||||
|
@ -20,7 +20,7 @@ class EMouse extends Group {
|
|||||||
// 文字描述
|
// 文字描述
|
||||||
this.arrowText = new Text({
|
this.arrowText = new Text({
|
||||||
zlevel: this.device.model.zlevel,
|
zlevel: this.device.model.zlevel,
|
||||||
z: this.device.model.z,
|
z: this.device.model.z + 10,
|
||||||
style: {
|
style: {
|
||||||
x: this.device.model.point.x + 50,
|
x: this.device.model.point.x + 50,
|
||||||
y: this.device.model.point.y + 25,
|
y: this.device.model.point.y + 25,
|
||||||
|
@ -1,26 +1,39 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="PlanSchedule" :style="{top: top+'px', height: height+'px'}">
|
<div id="PlanSchedule" :style="{top: top+'px', height: height+'px'}">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div :id="runPlanId"></div>
|
<div :id="runPlanId" />
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<data-table ref="serviceTable" :height="height/2" :config="serviceNumberConfig" @touch="scheduleTouch"
|
<data-table
|
||||||
:style="{top: top-height/2+'px'}"></data-table>
|
ref="serviceTable"
|
||||||
<data-table ref="tripTable" :height="height/2" :config="tripNumberConfig" @touch="trainNumTouch"
|
:height="height/2"
|
||||||
:style="{top: top-height/2+'px'}"></data-table>
|
:config="serviceNumberConfig"
|
||||||
|
:style="{top: top-height/2+'px'}"
|
||||||
|
@touch="scheduleTouch"
|
||||||
|
/>
|
||||||
|
<data-table
|
||||||
|
ref="tripTable"
|
||||||
|
:height="height/2"
|
||||||
|
:config="tripNumberConfig"
|
||||||
|
:style="{top: top-height/2+'px'}"
|
||||||
|
@touch="trainNumTouch"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { timeFormat } from '@/utils/date';
|
import { timeFormat } from '@/utils/date';
|
||||||
import { runDiagramGetTime } from '@/api/simulation';
|
import { runDiagramGetTime } from '@/api/simulation';
|
||||||
import { getStationListBySkinStyle } from '@/api/runplan';
|
import { getStationListBySkinStyle } from '@/api/runplan';
|
||||||
import DataTable from '../menusPlan/components/dataTable';
|
import DataTable from '../menusPlan/components/dataTable';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PlanSchedule',
|
name: 'PlanSchedule',
|
||||||
|
components: {
|
||||||
|
DataTable
|
||||||
|
},
|
||||||
props: {
|
props: {
|
||||||
group: {
|
group: {
|
||||||
type: String,
|
type: String,
|
||||||
@ -39,9 +52,6 @@
|
|||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
|
||||||
DataTable
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
top: 0,
|
top: 0,
|
||||||
@ -58,7 +68,7 @@
|
|||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
prop: 'serviceNumber',
|
prop: 'serviceNumber',
|
||||||
label: '表号',
|
label: '表号'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
width: 40
|
width: 40
|
||||||
@ -73,7 +83,7 @@
|
|||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
prop: 'tripNumber',
|
prop: 'tripNumber',
|
||||||
label: '车次号',
|
label: '车次号'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
width: 40
|
width: 40
|
||||||
@ -111,7 +121,7 @@
|
|||||||
type: 'cross'
|
type: 'cross'
|
||||||
},
|
},
|
||||||
formatter: this.axisTooltip,
|
formatter: this.axisTooltip,
|
||||||
borderWidth: 1,
|
borderWidth: 1
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
{
|
{
|
||||||
@ -136,7 +146,7 @@
|
|||||||
label: {
|
label: {
|
||||||
formatter: this.xAxisPointFormat,
|
formatter: this.xAxisPointFormat,
|
||||||
backgroundColor: 'rgb(255,0,0,0.5)',
|
backgroundColor: 'rgb(255,0,0,0.5)',
|
||||||
color: 'white',
|
color: 'white'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,7 +157,7 @@
|
|||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false,
|
show: false
|
||||||
},
|
},
|
||||||
axisLine: {
|
axisLine: {
|
||||||
onZero: false,
|
onZero: false,
|
||||||
@ -158,23 +168,23 @@
|
|||||||
},
|
},
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
interval: 'auto',
|
interval: 'auto',
|
||||||
formatter: this.yAxisLableFormat,
|
formatter: this.yAxisLableFormat
|
||||||
},
|
},
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
xAxisIndex: 'all',
|
xAxisIndex: 'all',
|
||||||
label: {
|
label: {
|
||||||
formatter: this.yAxisPointFormat,
|
formatter: this.yAxisPointFormat,
|
||||||
backgroundColor: 'rgb(0,100,0,0.5)',
|
backgroundColor: 'rgb(0,100,0,0.5)',
|
||||||
color: 'white',
|
color: 'white'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 0,
|
max: 0
|
||||||
},
|
},
|
||||||
series: [],
|
series: [],
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
{
|
{
|
||||||
type: 'inside',
|
type: 'inside'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fiterMode: 'filter',
|
fiterMode: 'filter',
|
||||||
@ -193,7 +203,12 @@
|
|||||||
},
|
},
|
||||||
absoluteTime: 2 * 3600,
|
absoluteTime: 2 * 3600,
|
||||||
indexKmRangeMap: {}
|
indexKmRangeMap: {}
|
||||||
}
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters('runPlan', [
|
||||||
|
'stations'
|
||||||
|
])
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
maxWidth() {
|
maxWidth() {
|
||||||
@ -209,24 +224,19 @@
|
|||||||
this.reSize({ width: this.$store.state.runPlan.width, height: this.$store.state.runPlan.height });
|
this.reSize({ width: this.$store.state.runPlan.width, height: this.$store.state.runPlan.height });
|
||||||
},
|
},
|
||||||
'$store.state.runPlan.select.serviceNumber': function (val) {
|
'$store.state.runPlan.select.serviceNumber': function (val) {
|
||||||
let index = this.serviceNumberConfig.data.findIndex(elem => {
|
const index = this.serviceNumberConfig.data.findIndex(elem => {
|
||||||
return elem.serviceNumber == val;
|
return elem.serviceNumber == val;
|
||||||
})
|
});
|
||||||
|
|
||||||
this.$refs.serviceTable.setCurrentRow(this.serviceNumberConfig.data[index]);
|
this.$refs.serviceTable.setCurrentRow(this.serviceNumberConfig.data[index]);
|
||||||
},
|
},
|
||||||
'$store.state.runPlan.select.tripNumber': function (val) {
|
'$store.state.runPlan.select.tripNumber': function (val) {
|
||||||
let index = this.tripNumberConfig.data.findIndex(elem => {
|
const index = this.tripNumberConfig.data.findIndex(elem => {
|
||||||
return elem.tripNumber == val;
|
return elem.tripNumber == val;
|
||||||
})
|
});
|
||||||
this.$refs.tripTable.setCurrentRow(this.tripNumberConfig.data[index]);
|
this.$refs.tripTable.setCurrentRow(this.tripNumberConfig.data[index]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
|
||||||
...mapGetters('runPlan', [
|
|
||||||
'stations'
|
|
||||||
])
|
|
||||||
},
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.PlanConvert = this.$theme.loadPlanConvert(this.skinStyle);
|
this.PlanConvert = this.$theme.loadPlanConvert(this.skinStyle);
|
||||||
},
|
},
|
||||||
@ -237,7 +247,7 @@
|
|||||||
serviceNumberChange(row) {
|
serviceNumberChange(row) {
|
||||||
if (row) {
|
if (row) {
|
||||||
this.$store.dispatch('runPlan/setSelected', { serviceNumber: row.serviceNumber, tripNumber: null });
|
this.$store.dispatch('runPlan/setSelected', { serviceNumber: row.serviceNumber, tripNumber: null });
|
||||||
let serviceObj = this.$store.state.runPlan.editData[row.serviceNumber]
|
const serviceObj = this.$store.state.runPlan.editData[row.serviceNumber];
|
||||||
if (serviceObj) {
|
if (serviceObj) {
|
||||||
this.analyticalTripNumber(serviceObj.trainMap);
|
this.analyticalTripNumber(serviceObj.trainMap);
|
||||||
}
|
}
|
||||||
@ -250,24 +260,24 @@
|
|||||||
},
|
},
|
||||||
async analyticalServiceNumber(data) {
|
async analyticalServiceNumber(data) {
|
||||||
this.serviceNumberConfig.data = Object.keys(data || {})
|
this.serviceNumberConfig.data = Object.keys(data || {})
|
||||||
.sort((a, b) => { return data[a].oldIndex - data[b].oldIndex })
|
.sort((a, b) => { return data[a].oldIndex - data[b].oldIndex; })
|
||||||
.map(serviceNumber => { return { serviceNumber } });
|
.map(serviceNumber => { return { serviceNumber }; });
|
||||||
},
|
},
|
||||||
async analyticalTripNumber(data) {
|
async analyticalTripNumber(data) {
|
||||||
this.tripNumberConfig.data = Object.keys(data || {})
|
this.tripNumberConfig.data = Object.keys(data || {})
|
||||||
.sort((a, b) => { return data[a].oldIndex - data[b].oldIndex })
|
.sort((a, b) => { return data[a].oldIndex - data[b].oldIndex; })
|
||||||
.map(tripNumber => { return { tripNumber } });
|
.map(tripNumber => { return { tripNumber }; });
|
||||||
},
|
},
|
||||||
async setPosition() {
|
async setPosition() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
let top = 3;
|
let top = 3;
|
||||||
let width = this.maxWidth * 0.85;
|
const width = this.maxWidth * 0.85;
|
||||||
let height = this.maxHeight;
|
let height = this.maxHeight;
|
||||||
|
|
||||||
let titleBar = document.getElementById('PlanTitleBar');
|
const titleBar = document.getElementById('PlanTitleBar');
|
||||||
let menuBar = document.getElementById('PlanMenuBar');
|
const menuBar = document.getElementById('PlanMenuBar');
|
||||||
let menuTool = document.getElementById('PlanMenuTool');
|
const menuTool = document.getElementById('PlanMenuTool');
|
||||||
let statusBar = document.getElementById('PlanStatusBar');
|
const statusBar = document.getElementById('PlanStatusBar');
|
||||||
|
|
||||||
if (titleBar) {
|
if (titleBar) {
|
||||||
top += (titleBar.offsetHeight || 0);
|
top += (titleBar.offsetHeight || 0);
|
||||||
@ -295,13 +305,13 @@
|
|||||||
if (this.height != height) {
|
if (this.height != height) {
|
||||||
this.height = height - 20 * 2;
|
this.height = height - 20 * 2;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
async loadChartPage() {
|
async loadChartPage() {
|
||||||
try {
|
try {
|
||||||
let series = [];
|
let series = [];
|
||||||
let stations = this.$store.state.runPlan.stations;
|
const stations = this.$store.state.runPlan.stations;
|
||||||
let planData = this.$store.state.runPlan.planData;
|
const planData = this.$store.state.runPlan.planData;
|
||||||
|
|
||||||
this.viewDisabled = true;
|
this.viewDisabled = true;
|
||||||
this.kmRangeCoordMap = this.PlanConvert.convertStationsToMap(stations);
|
this.kmRangeCoordMap = this.PlanConvert.convertStationsToMap(stations);
|
||||||
@ -329,7 +339,7 @@
|
|||||||
if (elem) {
|
if (elem) {
|
||||||
series.push(elem);
|
series.push(elem);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return series;
|
return series;
|
||||||
@ -337,11 +347,11 @@
|
|||||||
popModels(series, models) {
|
popModels(series, models) {
|
||||||
if (models && models.length) {
|
if (models && models.length) {
|
||||||
models.forEach(elem => {
|
models.forEach(elem => {
|
||||||
let index = series.indexOf(elem);
|
const index = series.indexOf(elem);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
series.split(index, 1);
|
series.split(index, 1);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return series;
|
return series;
|
||||||
@ -349,8 +359,8 @@
|
|||||||
loadInitChart(series) {
|
loadInitChart(series) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
let that = this;
|
const that = this;
|
||||||
//加载echart配置
|
// 加载echart配置
|
||||||
require.config(
|
require.config(
|
||||||
{
|
{
|
||||||
paths: {
|
paths: {
|
||||||
@ -362,13 +372,13 @@
|
|||||||
require(
|
require(
|
||||||
[
|
[
|
||||||
'echarts',
|
'echarts',
|
||||||
'echarts/lib/chart/line',
|
'echarts/lib/chart/line'
|
||||||
],
|
],
|
||||||
function (ec) {
|
function (ec) {
|
||||||
that.destroy();
|
that.destroy();
|
||||||
|
|
||||||
let startValue = 3600 + that.PlanConvert.TranslationTime;
|
let startValue = 3600 + that.PlanConvert.TranslationTime;
|
||||||
let offsetTime = 3600;
|
const offsetTime = 3600;
|
||||||
|
|
||||||
runDiagramGetTime(that.group).then(resp => {
|
runDiagramGetTime(that.group).then(resp => {
|
||||||
startValue = resp.data - that.PlanConvert.TranslationTime;
|
startValue = resp.data - that.PlanConvert.TranslationTime;
|
||||||
@ -381,7 +391,7 @@
|
|||||||
that.reSize({ width: that.$store.state.runPlan.width, height: that.$store.state.runPlan.height });
|
that.reSize({ width: that.$store.state.runPlan.width, height: that.$store.state.runPlan.height });
|
||||||
that.myChart.on('click', that.mouseClick);
|
that.myChart.on('click', that.mouseClick);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
resolve(true);
|
resolve(true);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -405,13 +415,13 @@
|
|||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
xAxisInit() {
|
xAxisInit() {
|
||||||
let list = [];
|
const list = [];
|
||||||
for (var time = 0 + this.PlanConvert.TranslationTime; time < 3600 * 24 + this.PlanConvert.TranslationTime; time++) {
|
for (var time = 0 + this.PlanConvert.TranslationTime; time < 3600 * 24 + this.PlanConvert.TranslationTime; time++) {
|
||||||
list.push(time);
|
list.push(time);
|
||||||
}
|
}
|
||||||
|
|
||||||
let startValue = 3600 * 6;
|
const startValue = 3600 * 6;
|
||||||
let offsetTime = 3600 * 1;
|
const offsetTime = 3600 * 1;
|
||||||
|
|
||||||
this.option.xAxis[0].data = list;
|
this.option.xAxis[0].data = list;
|
||||||
if (!this.option.dataZoom[0].startValue) {
|
if (!this.option.dataZoom[0].startValue) {
|
||||||
@ -429,7 +439,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
axisTooltip(param) {
|
axisTooltip(param) {
|
||||||
let station = this.stations[Math.floor((param.data[1] - this.PlanConvert.EdgeHeight) / this.PlanConvert.CoordMultiple)] || { name: '', kmRange: '' };
|
const station = this.stations[Math.floor((param.data[1] - this.PlanConvert.EdgeHeight) / this.PlanConvert.CoordMultiple)] || { name: '', kmRange: '' };
|
||||||
return [
|
return [
|
||||||
`Point Data <hr size=1 style=" margin: 3px 0">`,
|
`Point Data <hr size=1 style=" margin: 3px 0">`,
|
||||||
`车站名称: ${station.name}<br>`,
|
`车站名称: ${station.name}<br>`,
|
||||||
@ -438,9 +448,9 @@
|
|||||||
].join('');
|
].join('');
|
||||||
},
|
},
|
||||||
mouseClick(params) {
|
mouseClick(params) {
|
||||||
let model = {
|
const model = {
|
||||||
serviceNumber: params.seriesName
|
serviceNumber: params.seriesName
|
||||||
}
|
};
|
||||||
this.$store.dispatch('runPlan/setSelected', model);
|
this.$store.dispatch('runPlan/setSelected', model);
|
||||||
},
|
},
|
||||||
reSize(opt) {
|
reSize(opt) {
|
||||||
@ -465,7 +475,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped rel="stylesheet/scss" lang="scss" scoped>
|
<style scoped rel="stylesheet/scss" lang="scss" scoped>
|
||||||
@import "src/styles/mixin.scss";
|
@import "src/styles/mixin.scss";
|
||||||
|
@ -1,326 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-dialog class="chengdou-03__systerm train-control" :title="title" :visible.sync="show" width="480px"
|
|
||||||
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
|
|
||||||
<div class="el-dialog-div">
|
|
||||||
<el-form size="small" label-width="80px" :model="addModel" :rules="rules" ref="form" label-position="left">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item prop="stationName">
|
|
||||||
<span slot="label">车站</span>
|
|
||||||
<el-input v-model="addModel.stationName"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11" :offset="1">
|
|
||||||
<el-form-item v-if="this.operation != '70c'" prop="sectionCode">
|
|
||||||
<span slot="label">轨道</span>
|
|
||||||
<el-input v-model="addModel.sectionCode"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-else prop="trainWindowCode">
|
|
||||||
<span slot="label">车次窗</span>
|
|
||||||
<el-input v-model="addModel.trainWindowCode"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="车组号:" prop="groupNumber">
|
|
||||||
<el-select v-model="addModel.groupNumber" filterable>
|
|
||||||
<el-option v-for="train in trainList" :key="train.groupNumber" :label="train.groupNumber"
|
|
||||||
:value="train.groupNumber">
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item v-if="this.operation == '708'" prop="serviceNumber">
|
|
||||||
<span slot="label">服务号</span>
|
|
||||||
<el-input v-model="addModel.serviceNumber"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-else-if="this.operation == '70c'" prop="targetCode">
|
|
||||||
<span slot="label">目的地</span>
|
|
||||||
<el-input v-model="addModel.targetCode"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11" :offset="1">
|
|
||||||
<el-form-item v-if="this.operation == '708'" prop="trainCode">
|
|
||||||
<span slot="label">序列号</span>
|
|
||||||
<el-input v-model="addModel.trainCode"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-else-if="this.operation == '70c'" prop="serviceNumber">
|
|
||||||
<span slot="label">服务号</span>
|
|
||||||
<el-input v-model="addModel.serviceNumber"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col>
|
|
||||||
<el-form-item v-if="this.operation == '70c'" prop="trainType">
|
|
||||||
<span slot="label">运行模式</span>
|
|
||||||
<br/>
|
|
||||||
<el-radio-group v-model="addModel.runningMode" style="margin-left: 15px;">
|
|
||||||
<el-radio :label="'01'">普通</el-radio>
|
|
||||||
<el-radio :label="'02'">专列</el-radio>
|
|
||||||
<el-radio :label="'03'">不停站直达</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
<el-row justify="center" class="button-group">
|
|
||||||
<el-col :span="10" :offset="2">
|
|
||||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :offset="4">
|
|
||||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<confirm-train ref="confirmTrain"></confirm-train>
|
|
||||||
<notice-info ref="noticeInfo"></notice-info>
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { mapGetters } from 'vuex';
|
|
||||||
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
|
||||||
import { getPublishTrainList } from '@/api/jmap/map';
|
|
||||||
import { mouseCancelState } from '../utils/menuItemStatus';
|
|
||||||
import ConfirmTrain from './childDialog/confirmTrain';
|
|
||||||
import NoticeInfo from './childDialog/childDialog/noticeInfo'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'TrainControl',
|
|
||||||
components: {
|
|
||||||
ConfirmTrain,
|
|
||||||
NoticeInfo
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
trainList: [],
|
|
||||||
selected: null,
|
|
||||||
addModel: {
|
|
||||||
stationName:'',
|
|
||||||
sectionCode:'',
|
|
||||||
trainWindowCode:'',
|
|
||||||
groupNumber:'',
|
|
||||||
serviceNumber:'',
|
|
||||||
targetCode:'',
|
|
||||||
trainCode:'',
|
|
||||||
runningMode:'',
|
|
||||||
},
|
|
||||||
|
|
||||||
rules: {
|
|
||||||
stationName: [
|
|
||||||
{ required: true, message: '请输入车站', trigger: 'blur'}
|
|
||||||
],
|
|
||||||
sectionCode: [
|
|
||||||
{ required: true, message: '请输入轨道', trigger: 'blur'}
|
|
||||||
],
|
|
||||||
trainWindowCode:[
|
|
||||||
{ required: true, message: '请输入车次窗', trigger: 'blur'}
|
|
||||||
],
|
|
||||||
groupNumber: [
|
|
||||||
{ required: true, message: '请选择车组号', trigger: 'change' }
|
|
||||||
],
|
|
||||||
serviceNumber: [
|
|
||||||
{ required: true, message: '请输入服务号', trigger: 'blur'}
|
|
||||||
],
|
|
||||||
targetCode: [
|
|
||||||
{ required: true, message: '请输入目的地号', trigger: 'blur'}
|
|
||||||
],
|
|
||||||
trainCode: [
|
|
||||||
{ required: true, message: '请输入序列号', trigger: 'blur'}
|
|
||||||
],
|
|
||||||
runningMode: [
|
|
||||||
{ required: true, message: '请选择运行模式', trigger: 'blur'}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
operation: null,
|
|
||||||
|
|
||||||
dialogShow: false,
|
|
||||||
loading: false,
|
|
||||||
direction: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapGetters('map', [
|
|
||||||
'map'
|
|
||||||
]),
|
|
||||||
show() {
|
|
||||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
|
||||||
},
|
|
||||||
domIdCancel() {
|
|
||||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
|
||||||
},
|
|
||||||
domIdConfirm() {
|
|
||||||
if (this.dialogShow) {
|
|
||||||
if (this.operation == OperationEvent.Train.destinationTrainId.menu.operation) {
|
|
||||||
/*设目的地*/
|
|
||||||
return OperationEvent.Train.destinationTrainId.menu.domId;
|
|
||||||
} else if (this.operation == OperationEvent.Train.setPlanTrainId.menu.operation) {
|
|
||||||
/*设计划车*/
|
|
||||||
return OperationEvent.Train.setPlanTrainId.menu.domId;
|
|
||||||
} else if (this.operation == OperationEvent.Train.artificialTrainId.menu.operation) {
|
|
||||||
/*设人工车*/
|
|
||||||
return OperationEvent.Train.artificialTrainId.menu.domId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title() {
|
|
||||||
if ( this.operation == OperationEvent.Train.destinationTrainId.menu.operation) {
|
|
||||||
return '设目的地车';
|
|
||||||
} else if ( this.operation == OperationEvent.Train.setPlanTrainId.menu.operation ){
|
|
||||||
return '设计划车';
|
|
||||||
} else if ( this.operation == OperationEvent.Train.artificialTrainId.menu.operation ){
|
|
||||||
return '设人工车';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$store.dispatch('training/tipReload');
|
|
||||||
})
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
loadInitData(map) {
|
|
||||||
if (map) {
|
|
||||||
getPublishTrainList(map.skinStyle).then(resp => {
|
|
||||||
this.trainList = resp.data;
|
|
||||||
}).catch(error => {
|
|
||||||
this.$messageBox(`获取列车车组号失败`);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
doShow(operate, selected) {
|
|
||||||
this.selected = selected;
|
|
||||||
//如果不是断点激活,则需要对初始值进行初始化
|
|
||||||
if (!this.dialogShow) {
|
|
||||||
this.operation = operate.operation;
|
|
||||||
}
|
|
||||||
this.addModel = {
|
|
||||||
tripNumber: '',
|
|
||||||
groupNumber: '',
|
|
||||||
trainType: '01',
|
|
||||||
serviceNumber: '',
|
|
||||||
targetCode: '',
|
|
||||||
};
|
|
||||||
/** 加载列车数据*/
|
|
||||||
this.loadInitData(this.map);
|
|
||||||
this.dialogShow = true;
|
|
||||||
this.$nextTick(function () {
|
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
doClose() {
|
|
||||||
this.loading = false;
|
|
||||||
this.dialogShow = false;
|
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
|
||||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
|
||||||
mouseCancelState(this.selected);
|
|
||||||
},
|
|
||||||
commit() {
|
|
||||||
if ( this.operation == OperationEvent.Train.destinationTrainId.menu.operation ) {
|
|
||||||
this.destinationTrainId();
|
|
||||||
} else if (this.operation == OperationEvent.Train.setPlanTrainId.menu.operation ) {
|
|
||||||
this.setPlanTrainId();
|
|
||||||
} else if (this.operation == OperationEvent.Train.artificialTrainId.menu.operation ) {
|
|
||||||
this.artificialTrainId();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
//设目的地车
|
|
||||||
destinationTrainId() {
|
|
||||||
this.$refs['form'].validate((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
let operate = {
|
|
||||||
type: MapDeviceType.Train.type,
|
|
||||||
operation: OperationEvent.Train.destinationTrainId.menu.operation,
|
|
||||||
message: [`设目的地车:成功`],
|
|
||||||
val: '',
|
|
||||||
};
|
|
||||||
this.loading = true;
|
|
||||||
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
|
||||||
this.doClose();
|
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
|
||||||
}).catch(error => {
|
|
||||||
this.loading = false;
|
|
||||||
this.doClose();
|
|
||||||
this.$refs.noticeInfo.doShow(operate);
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//设计划车
|
|
||||||
setPlanTrainId() {
|
|
||||||
this.$refs['form'].validate((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
let operate = {
|
|
||||||
type: MapDeviceType.Train.type,
|
|
||||||
operation: OperationEvent.Train.setPlanTrainId.menu.operation,
|
|
||||||
message: [`设计划车:成功`],
|
|
||||||
val: '',
|
|
||||||
};
|
|
||||||
this.loading = true;
|
|
||||||
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
|
||||||
this.doClose();
|
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
|
||||||
}).catch(error => {
|
|
||||||
this.loading = false;
|
|
||||||
this.doClose();
|
|
||||||
this.$refs.noticeInfo.doShow(operate);
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//设人工车
|
|
||||||
artificialTrainId() {
|
|
||||||
this.$refs['form'].validate((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
let operate = {
|
|
||||||
type: MapDeviceType.Train.type,
|
|
||||||
operation: OperationEvent.Train.artificialTrainId.menu.operation,
|
|
||||||
message: [`设人工车:成功`],
|
|
||||||
val: '',
|
|
||||||
};
|
|
||||||
this.loading = true;
|
|
||||||
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
|
||||||
this.doClose();
|
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
|
||||||
}).catch(error => {
|
|
||||||
this.loading = false;
|
|
||||||
this.doClose();
|
|
||||||
this.$refs.noticeInfo.doShow(operate);
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
cancel() {
|
|
||||||
let operate = {
|
|
||||||
type: MapDeviceType.Train.type,
|
|
||||||
operation: OperationEvent.Command.cancel.menu.operation,
|
|
||||||
}
|
|
||||||
|
|
||||||
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
|
||||||
if (valid) {
|
|
||||||
this.doClose();
|
|
||||||
}
|
|
||||||
}).catch(error => {
|
|
||||||
this.doClose();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style scoped>
|
|
||||||
.el-dialog-div {
|
|
||||||
height: 400px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
342
src/jmap/theme/chengdu_03/menus/dialog/trainControl.vue
Normal file
342
src/jmap/theme/chengdu_03/menus/dialog/trainControl.vue
Normal file
@ -0,0 +1,342 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-dialogDrag
|
||||||
|
class="chengdou-03__systerm train-control"
|
||||||
|
:title="title"
|
||||||
|
:visible.sync="show"
|
||||||
|
width="480px"
|
||||||
|
:before-close="doClose"
|
||||||
|
:z-index="2000"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
>
|
||||||
|
<div class="el-dialog-div">
|
||||||
|
<el-form ref="form" size="small" label-width="80px" :model="addModel" :rules="rules" label-position="left">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="11">
|
||||||
|
<el-form-item prop="stationName">
|
||||||
|
<span slot="label">车站</span>
|
||||||
|
<el-input v-model="addModel.stationName" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="11" :offset="1">
|
||||||
|
<el-form-item v-if="operation != '70c'" prop="sectionCode">
|
||||||
|
<span slot="label">轨道</span>
|
||||||
|
<el-input v-model="addModel.sectionCode" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-else prop="trainWindowCode">
|
||||||
|
<span slot="label">车次窗</span>
|
||||||
|
<el-input v-model="addModel.trainWindowCode" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="11">
|
||||||
|
<el-form-item label="车组号:" prop="groupNumber">
|
||||||
|
<el-select v-model="addModel.groupNumber" filterable>
|
||||||
|
<el-option
|
||||||
|
v-for="train in trainList"
|
||||||
|
:key="train.groupNumber"
|
||||||
|
:label="train.groupNumber"
|
||||||
|
:value="train.groupNumber"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="11">
|
||||||
|
<el-form-item v-if="operation == '708'" prop="serviceNumber">
|
||||||
|
<span slot="label">服务号</span>
|
||||||
|
<el-input v-model="addModel.serviceNumber" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-else-if="operation == '70c'" prop="targetCode">
|
||||||
|
<span slot="label">目的地</span>
|
||||||
|
<el-input v-model="addModel.targetCode" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="11" :offset="1">
|
||||||
|
<el-form-item v-if="operation == '708'" prop="trainCode">
|
||||||
|
<span slot="label">序列号</span>
|
||||||
|
<el-input v-model="addModel.trainCode" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-else-if="operation == '70c'" prop="serviceNumber">
|
||||||
|
<span slot="label">服务号</span>
|
||||||
|
<el-input v-model="addModel.serviceNumber" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<el-form-item v-if="operation == '70c'" prop="trainType">
|
||||||
|
<span slot="label">运行模式</span>
|
||||||
|
<br>
|
||||||
|
<el-radio-group v-model="addModel.runningMode" style="margin-left: 15px;">
|
||||||
|
<el-radio :label="'01'">普通</el-radio>
|
||||||
|
<el-radio :label="'02'">专列</el-radio>
|
||||||
|
<el-radio :label="'03'">不停站直达</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<el-row justify="center" class="button-group">
|
||||||
|
<el-col :span="10" :offset="2">
|
||||||
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" :offset="4">
|
||||||
|
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<confirm-train ref="confirmTrain" />
|
||||||
|
<notice-info ref="noticeInfo" />
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
import { getPublishTrainList } from '@/api/jmap/map';
|
||||||
|
import { mouseCancelState } from '../utils/menuItemStatus';
|
||||||
|
import ConfirmTrain from './childDialog/confirmTrain';
|
||||||
|
import NoticeInfo from './childDialog/childDialog/noticeInfo';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'TrainControl',
|
||||||
|
components: {
|
||||||
|
ConfirmTrain,
|
||||||
|
NoticeInfo
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
trainList: [],
|
||||||
|
selected: null,
|
||||||
|
addModel: {
|
||||||
|
stationName: '',
|
||||||
|
sectionCode: '',
|
||||||
|
trainWindowCode: '',
|
||||||
|
groupNumber: '',
|
||||||
|
serviceNumber: '',
|
||||||
|
targetCode: '',
|
||||||
|
trainCode: '',
|
||||||
|
runningMode: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
stationName: [
|
||||||
|
{ required: true, message: '请输入车站', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
sectionCode: [
|
||||||
|
{ required: true, message: '请输入轨道', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
trainWindowCode: [
|
||||||
|
{ required: true, message: '请输入车次窗', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
groupNumber: [
|
||||||
|
{ required: true, message: '请选择车组号', trigger: 'change' }
|
||||||
|
],
|
||||||
|
serviceNumber: [
|
||||||
|
{ required: true, message: '请输入服务号', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
targetCode: [
|
||||||
|
{ required: true, message: '请输入目的地号', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
trainCode: [
|
||||||
|
{ required: true, message: '请输入序列号', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
runningMode: [
|
||||||
|
{ required: true, message: '请选择运行模式', trigger: 'blur'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
operation: null,
|
||||||
|
|
||||||
|
dialogShow: false,
|
||||||
|
loading: false,
|
||||||
|
direction: 0
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters('map', [
|
||||||
|
'map'
|
||||||
|
]),
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
domIdCancel() {
|
||||||
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
|
},
|
||||||
|
domIdConfirm() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation == OperationEvent.Train.destinationTrainId.menu.operation) {
|
||||||
|
/* 设目的地*/
|
||||||
|
return OperationEvent.Train.destinationTrainId.menu.domId;
|
||||||
|
} else if (this.operation == OperationEvent.Train.setPlanTrainId.menu.operation) {
|
||||||
|
/* 设计划车*/
|
||||||
|
return OperationEvent.Train.setPlanTrainId.menu.domId;
|
||||||
|
} else if (this.operation == OperationEvent.Train.artificialTrainId.menu.operation) {
|
||||||
|
/* 设人工车*/
|
||||||
|
return OperationEvent.Train.artificialTrainId.menu.domId;
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
if ( this.operation == OperationEvent.Train.destinationTrainId.menu.operation) {
|
||||||
|
return '设目的地车';
|
||||||
|
} else if ( this.operation == OperationEvent.Train.setPlanTrainId.menu.operation ) {
|
||||||
|
return '设计划车';
|
||||||
|
} else if ( this.operation == OperationEvent.Train.artificialTrainId.menu.operation ) {
|
||||||
|
return '设人工车';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
loadInitData(map) {
|
||||||
|
if (map) {
|
||||||
|
getPublishTrainList(map.skinStyle).then(resp => {
|
||||||
|
this.trainList = resp.data;
|
||||||
|
}).catch(() => {
|
||||||
|
this.$messageBox(`获取列车车组号失败`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doShow(operate, selected) {
|
||||||
|
this.selected = selected;
|
||||||
|
// 如果不是断点激活,则需要对初始值进行初始化
|
||||||
|
if (!this.dialogShow) {
|
||||||
|
this.operation = operate.operation;
|
||||||
|
}
|
||||||
|
this.addModel = {
|
||||||
|
tripNumber: '',
|
||||||
|
groupNumber: '',
|
||||||
|
trainType: '01',
|
||||||
|
serviceNumber: '',
|
||||||
|
targetCode: ''
|
||||||
|
};
|
||||||
|
/** 加载列车数据*/
|
||||||
|
this.loadInitData(this.map);
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||||
|
mouseCancelState(this.selected);
|
||||||
|
},
|
||||||
|
commit() {
|
||||||
|
if ( this.operation == OperationEvent.Train.destinationTrainId.menu.operation ) {
|
||||||
|
this.destinationTrainId();
|
||||||
|
} else if (this.operation == OperationEvent.Train.setPlanTrainId.menu.operation ) {
|
||||||
|
this.setPlanTrainId();
|
||||||
|
} else if (this.operation == OperationEvent.Train.artificialTrainId.menu.operation ) {
|
||||||
|
this.artificialTrainId();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 设目的地车
|
||||||
|
destinationTrainId() {
|
||||||
|
this.$refs['form'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const operate = {
|
||||||
|
type: MapDeviceType.Train.type,
|
||||||
|
operation: OperationEvent.Train.destinationTrainId.menu.operation,
|
||||||
|
message: [`设目的地车:成功`],
|
||||||
|
val: ''
|
||||||
|
};
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.doClose();
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
}).catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 设计划车
|
||||||
|
setPlanTrainId() {
|
||||||
|
this.$refs['form'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const operate = {
|
||||||
|
type: MapDeviceType.Train.type,
|
||||||
|
operation: OperationEvent.Train.setPlanTrainId.menu.operation,
|
||||||
|
message: [`设计划车:成功`],
|
||||||
|
val: ''
|
||||||
|
};
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.doClose();
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
}).catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 设人工车
|
||||||
|
artificialTrainId() {
|
||||||
|
this.$refs['form'].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const operate = {
|
||||||
|
type: MapDeviceType.Train.type,
|
||||||
|
operation: OperationEvent.Train.artificialTrainId.menu.operation,
|
||||||
|
message: [`设人工车:成功`],
|
||||||
|
val: ''
|
||||||
|
};
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.doClose();
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
}).catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
const operate = {
|
||||||
|
type: MapDeviceType.Train.type,
|
||||||
|
operation: OperationEvent.Command.cancel.menu.operation
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.el-dialog-div {
|
||||||
|
height: 400px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,52 +1,43 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="plan-schedule" style="width: 100%">
|
<div class="plan-schedule" style="width: 100%">
|
||||||
<title-bar ref="titleBar" @back="back"></title-bar>
|
<title-bar ref="titleBar" @back="back" />
|
||||||
<menu-bar ref="menuBar" :skinStyle="skinStyle" @dispatchDialog="dispatchDialog"></menu-bar>
|
<menu-bar ref="menuBar" :skin-style="skinStyle" @dispatchDialog="dispatchDialog" />
|
||||||
<!-- <menu-tool ref="menuTool" :skinStyle="skinStyle"></menu-tool> -->
|
<!-- <menu-tool ref="menuTool" :skinStyle="skinStyle"></menu-tool> -->
|
||||||
<schedule ref="schedule" :group="group" :skinStyle="skinStyle" :maxHeight="height" :maxWidth="width"></schedule>
|
<schedule ref="schedule" :group="group" :skin-style="skinStyle" :max-height="height" :max-width="width" />
|
||||||
<status-bar ref="statusBar" :maxTop="height" @setPosition="setPosition"></status-bar>
|
<status-bar ref="statusBar" :max-top="height" @setPosition="setPosition" />
|
||||||
|
|
||||||
<manage-plan-list ref="managePlanList" @dispatchDialog="dispatchDialog"></manage-plan-list>
|
<manage-plan-list ref="managePlanList" @dispatchDialog="dispatchDialog" />
|
||||||
<create-week-plan ref="createWeekPlan" @reloadTable="reloadTable"></create-week-plan>
|
<create-week-plan ref="createWeekPlan" @reloadTable="reloadTable" />
|
||||||
<create-today-plan ref="createTodayPlan"></create-today-plan>
|
<create-today-plan ref="createTodayPlan" />
|
||||||
<modifying-plan ref="modifyingPlan" @dispatchDialog="dispatchDialog"></modifying-plan>
|
<modifying-plan ref="modifyingPlan" @dispatchDialog="dispatchDialog" />
|
||||||
<add-task ref="addTask"></add-task>
|
<add-task ref="addTask" />
|
||||||
<delete-task ref="deleteTask"></delete-task>
|
<delete-task ref="deleteTask" />
|
||||||
<modifying-task ref="modifyingTask"></modifying-task>
|
<modifying-task ref="modifyingTask" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
// import { mapGetters } from 'vuex';
|
||||||
import TitleBar from './titleBar';
|
import TitleBar from './titleBar';
|
||||||
import MenuBar from './menuBar';
|
import MenuBar from './menuBar';
|
||||||
import MenuTool from './menuTool';
|
// import MenuTool from './menuTool';
|
||||||
import StatusBar from './statusBar';
|
import StatusBar from './statusBar';
|
||||||
import Schedule from './schedule';
|
import Schedule from './schedule';
|
||||||
import ManagePlanList from '../menusPlan/managePlanList'
|
import ManagePlanList from '../menusPlan/managePlanList';
|
||||||
import CreateWeekPlan from '../menusPlan/createWeekPlan';
|
import CreateWeekPlan from '../menusPlan/createWeekPlan';
|
||||||
import CreateTodayPlan from '../menusPlan/createTodayPlan';
|
import CreateTodayPlan from '../menusPlan/createTodayPlan';
|
||||||
import ModifyingPlan from '../menusPlan/modifyingPlan';
|
import ModifyingPlan from '../menusPlan/modifyingPlan';
|
||||||
import AddTask from '../menusPlan/addTask';
|
import AddTask from '../menusPlan/addTask';
|
||||||
import DeleteTask from '../menusPlan/deleteTask'
|
import DeleteTask from '../menusPlan/deleteTask';
|
||||||
import ModifyingTask from '../menusPlan/modifyingTask';
|
import ModifyingTask from '../menusPlan/modifyingTask';
|
||||||
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
|
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Menus',
|
name: 'Menus',
|
||||||
mixins: [
|
|
||||||
WindowResizeHandler
|
|
||||||
],
|
|
||||||
props: {
|
|
||||||
group: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components: {
|
components: {
|
||||||
TitleBar,
|
TitleBar,
|
||||||
MenuBar,
|
MenuBar,
|
||||||
MenuTool,
|
// MenuTool,
|
||||||
StatusBar,
|
StatusBar,
|
||||||
Schedule,
|
Schedule,
|
||||||
ManagePlanList,
|
ManagePlanList,
|
||||||
@ -57,11 +48,20 @@
|
|||||||
DeleteTask,
|
DeleteTask,
|
||||||
ModifyingTask
|
ModifyingTask
|
||||||
},
|
},
|
||||||
|
mixins: [
|
||||||
|
WindowResizeHandler
|
||||||
|
],
|
||||||
|
props: {
|
||||||
|
group: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
width: 0,
|
width: 0,
|
||||||
height: 0
|
height: 0
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
skinStyle() {
|
skinStyle() {
|
||||||
@ -76,14 +76,14 @@
|
|||||||
setPosition() {
|
setPosition() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.schedule.setPosition();
|
this.$refs.schedule.setPosition();
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
dispatchDialog(dialogObj) {
|
dispatchDialog(dialogObj) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if (this.$refs[dialogObj.name]) {
|
if (this.$refs[dialogObj.name]) {
|
||||||
this.$refs[dialogObj.name].doShow(dialogObj.params);
|
this.$refs[dialogObj.name].doShow(dialogObj.params);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
reloadTable(dialogObj) {
|
reloadTable(dialogObj) {
|
||||||
if (this.$refs[dialogObj.name]) {
|
if (this.$refs[dialogObj.name]) {
|
||||||
@ -96,7 +96,7 @@
|
|||||||
this.$emit('back');
|
this.$emit('back');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@ -207,7 +207,6 @@
|
|||||||
background: #ECE9D8 !important;
|
background: #ECE9D8 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.beijing-01__schedule .el-dialog .el-button {
|
.beijing-01__schedule .el-dialog .el-button {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
@ -244,7 +243,6 @@
|
|||||||
text-align: center !important;
|
text-align: center !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.beijing-01__schedule .el-dialog .el-input {
|
.beijing-01__schedule .el-dialog .el-input {
|
||||||
border: 2px inset #E9E9E9;
|
border: 2px inset #E9E9E9;
|
||||||
}
|
}
|
@ -228,7 +228,7 @@
|
|||||||
])
|
])
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.PlanConvert = this.$theme().loadPlanConvert(this.skinStyle);
|
this.PlanConvert = this.$theme.loadPlanConvert(this.skinStyle);
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.destroy();
|
this.destroy();
|
381
src/jmap/theme/chengdu_04/menus/dialog/alxeEffective.vue
Normal file
381
src/jmap/theme/chengdu_04/menus/dialog/alxeEffective.vue
Normal file
@ -0,0 +1,381 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm alxe-effective" :title="title" :visible.sync="show" width="420px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
|
||||||
|
<div style="padding: 10px 20px;border: 1px solid lightgray;">
|
||||||
|
<span class="base-label">准备</span>
|
||||||
|
<div style="margin-top: 10px">
|
||||||
|
<el-row type="flex" justify="left">
|
||||||
|
<el-col :span="9">车站</el-col>
|
||||||
|
<el-col :span="9">轨道/计轴</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row type="flex" justify="left">
|
||||||
|
<el-col :span="9">
|
||||||
|
<el-input :type="type" v-model="model.stationName" size="mini" :disabled="true"></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="9">
|
||||||
|
<el-input :type="type" v-model="model.sectionName" size="mini" :disabled="true"></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4" :offset="1">
|
||||||
|
<el-button :id="domIdConfirm1" size="mini" @click="commitOnce" :disabled="type==='password'">确认
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="padding: 10px 20px;border: 1px solid lightgray;margin-top: 10px">
|
||||||
|
<span class="base-label">确认</span>
|
||||||
|
<div>
|
||||||
|
<el-row type="flex" justify="left">
|
||||||
|
<el-col :span="9">车站</el-col>
|
||||||
|
<el-col :span="9">轨道/计轴</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row type="flex" justify="left">
|
||||||
|
<el-col :span="9">
|
||||||
|
<el-select :id="domIdChoose1" v-model="model.confirmStationName" filterable size="mini"
|
||||||
|
@change="stationSelectChange" :disabled="type==='text'">
|
||||||
|
<el-option v-for="(option,index) in filterStationList" :key="index" :label="option.name"
|
||||||
|
:value="option.name">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="9">
|
||||||
|
<el-select :id="domIdChoose2" v-model="model.confirmSectionName" filterable size="mini"
|
||||||
|
@change="sectionSelectChange" :disabled="type==='text'">
|
||||||
|
<el-option v-for="(option,index) in randomSectionList" :key="index" :label="option.name"
|
||||||
|
:value="option.name">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4" :offset="1">
|
||||||
|
<el-button :id="domIdConfirm2" size="mini" :loading="loading" @click="commit"
|
||||||
|
:disabled="type==='text'">确认</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-row type="flex" justify="left" style="margin-top:20px">
|
||||||
|
<el-col :span="6" :offset="1"> 操作倒计时</el-col>
|
||||||
|
<el-col :span="16">
|
||||||
|
<el-input v-model="model.time" size="mini" :readonly="true"></el-input>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :offset="1"> 状态</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :offset="1" :span="23">
|
||||||
|
<el-input type="textarea" :rows="2" placeholder="" v-model="model.status">
|
||||||
|
</el-input>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row class="botton-group" style="margin-top:20px">
|
||||||
|
<el-col :span="4" :offset="10">
|
||||||
|
<el-button :id="domIdCancel" @click="cancel">关闭</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<notice-info ref="noticeInfo"></notice-info>
|
||||||
|
<popup-alarm ref="popupAlarm"></popup-alarm>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
|
import { MapDeviceType, OperationEvent, getDomIdByOperation } from '@/scripts/ConstDic';
|
||||||
|
import { mouseCancelState } from '../utils/menuItemStatus';
|
||||||
|
import NoticeInfo from './childDialog/childDialog/noticeInfo'
|
||||||
|
import PopupAlarm from './childDialog/popupAlarm';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'AlxeEffective',
|
||||||
|
components: {
|
||||||
|
NoticeInfo,
|
||||||
|
PopupAlarm
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
loading: false,
|
||||||
|
type: 'text',
|
||||||
|
timeout: 1000,
|
||||||
|
timenum: 30,
|
||||||
|
stepNum: 0,
|
||||||
|
task: null,
|
||||||
|
model: {
|
||||||
|
stationName: '',
|
||||||
|
sectionName: '',
|
||||||
|
confirmStationName: '',
|
||||||
|
confirmSectionName: '',
|
||||||
|
status: '',
|
||||||
|
time: 0,
|
||||||
|
},
|
||||||
|
selected: null,
|
||||||
|
operate: null,
|
||||||
|
operation: '',
|
||||||
|
randomSectionList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters('map', [
|
||||||
|
'stationList',
|
||||||
|
'sectionList'
|
||||||
|
]),
|
||||||
|
filterStationList() {
|
||||||
|
let i = 0, list = [];
|
||||||
|
if (this.stationList) {
|
||||||
|
this.stationList.forEach(elem => {
|
||||||
|
if (list.findIndex(it => { return it.name == elem.name }) < 0) {
|
||||||
|
list.push({ name: elem.name });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
},
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
domIdConfirm1() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
|
||||||
|
return OperationEvent.Section.alxeEffective.confirm1.domId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdConfirm2() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
|
||||||
|
return OperationEvent.Section.alxeEffective.confirm2.domId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdChoose1() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
|
||||||
|
return OperationEvent.Section.alxeEffective.choose1.domId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdChoose2() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
|
||||||
|
return OperationEvent.Section.alxeEffective.choose2.domId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdCancel() {
|
||||||
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
this.earlyDepar = false;
|
||||||
|
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
|
||||||
|
return '确认计轴恢复工作';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'model.sectionName': function (name) {
|
||||||
|
let index = Math.floor(Math.random(1) * 5);
|
||||||
|
for (var i = 0; i < 5; i++) {
|
||||||
|
if (i == index) {
|
||||||
|
this.randomSectionList.push({ name });
|
||||||
|
} else {
|
||||||
|
let section = this.sectionList[Math.floor(Math.random(1) * this.sectionList.length)];
|
||||||
|
if (section.type != '02') {
|
||||||
|
if (this.randomSectionList.findIndex(it => { return it.name == section.name }) < 0) {
|
||||||
|
this.randomSectionList.push({ name: section.name });
|
||||||
|
} else {
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
stopTask() {
|
||||||
|
if (this.task) {
|
||||||
|
clearInterval(this.task);
|
||||||
|
this.task = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.stepNum < 3) {
|
||||||
|
this.$store.dispatch('training/backSteps', this.stepNum);
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
this.model.name = '';
|
||||||
|
this.model.time = '';
|
||||||
|
this.type = 'text';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doShow(operate, selected) {
|
||||||
|
this.selected = selected;
|
||||||
|
this.operate = operate || {};
|
||||||
|
this.operation = operate.operation;
|
||||||
|
this.status = '';
|
||||||
|
this.model.stationName = '';
|
||||||
|
this.model.sectionName = '';
|
||||||
|
this.model.confirmStationName = '';
|
||||||
|
this.model.confirmSectionName = '';
|
||||||
|
if (selected) {
|
||||||
|
if (selected && selected._type.toUpperCase() === 'Section'.toUpperCase()) {
|
||||||
|
if (selected.isSwitchSection) {
|
||||||
|
let section = this.$store.getters['map/getDeviceByCode'](selected.parentCode);
|
||||||
|
if (section) {
|
||||||
|
this.model.sectionName = section.name;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let section = this.$store.getters['map/getDeviceByCode'](selected.parentCode);
|
||||||
|
if (section) {
|
||||||
|
this.model.sectionName = section.name;
|
||||||
|
this.model.sectionName = `${section.name}-${selected.name}`;
|
||||||
|
} else {
|
||||||
|
this.model.sectionName = `${selected.name}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (selected._type.toUpperCase() === 'Switch'.toUpperCase()) {
|
||||||
|
let section = this.$store.getters['map/getDeviceByCode'](selected.switchSectionCode);
|
||||||
|
if (section) {
|
||||||
|
this.model.sectionName = section.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||||
|
if (station) {
|
||||||
|
this.model.stationName = station.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.stepNum = 0;
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.stopTask();
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
mouseCancelState(this.selected);
|
||||||
|
},
|
||||||
|
waitSelectEvent() {
|
||||||
|
if (!this.$store.state.menuOperation.break) {
|
||||||
|
this.model.time -= 1;
|
||||||
|
if (this.model.time <= 0) {
|
||||||
|
this.stopTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
commitOnce() {
|
||||||
|
this.stepNum = 1;
|
||||||
|
let operate = {
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Section.alxeEffective.confirm1.operation
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.type = 'password';
|
||||||
|
this.model.time = this.timenum;
|
||||||
|
this.task = setInterval(this.waitSelectEvent, this.timeout);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
stationSelectChange(val) {
|
||||||
|
if (this.model.confirmStationName === this.model.stationName) {
|
||||||
|
this.stepNum = 2;
|
||||||
|
} else {
|
||||||
|
this.model.time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
let operate = {
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Section.alxeEffective.choose1.operation,
|
||||||
|
val: val
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
})
|
||||||
|
},
|
||||||
|
sectionSelectChange(val) {
|
||||||
|
if (this.model.confirmSectionName === this.model.sectionName) {
|
||||||
|
this.stepNum = 2;
|
||||||
|
} else {
|
||||||
|
this.model.time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
let operate = {
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Section.alxeEffective.choose2.operation,
|
||||||
|
val: val
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 确认计轴恢复工作*/
|
||||||
|
commit() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Section.alxeEffective.confirm2.operation,
|
||||||
|
val: this.selected.code
|
||||||
|
}
|
||||||
|
|
||||||
|
this.model.status = '';
|
||||||
|
if (this.model.stationName == this.model.confirmStationName &&
|
||||||
|
this.model.sectionName == this.model.confirmSectionName) {
|
||||||
|
this.stepNum = 3;
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.type = 'text';
|
||||||
|
this.stopTask();
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.$refs.popupAlarm.doShow(Object.assign(this.operate, { val: operate.val }),
|
||||||
|
[`集中站 ${this.model.stationName} 区段 ${this.model.sectionName}报告恢复计轴有效`]);
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
if (this.model.stationName != this.model.confirmStationName) {
|
||||||
|
this.model.status = '车站选择错误';
|
||||||
|
} else if (this.model.sectionName != this.model.confirmSectionName) {
|
||||||
|
this.model.status = '区段选择错误';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
let operate = {
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Command.cancel.menu.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.alxe-effective .context {
|
||||||
|
height: 80px !important;
|
||||||
|
}
|
||||||
|
</style>
|
355
src/jmap/theme/chengdu_04/menus/dialog/cancelAllLimit.vue
Normal file
355
src/jmap/theme/chengdu_04/menus/dialog/cancelAllLimit.vue
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm stand-detain-train" :title="title" :visible.sync="show" width="380px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
|
||||||
|
<div class="head_content content">
|
||||||
|
<span class="base-label" style="left: 0px;">会话管理</span>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-button class="status">查询会话状态</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="15" :offset="1">
|
||||||
|
<el-input :value="messageText" placeholder="" size="mini" disabled></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-button class="status_btn" :id="openMessageId" @click="handleMessage('open')"
|
||||||
|
:disabled="isOpenMessage">打开会话</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-button class="status_btn" :id="closeMessageId" @click="handleMessage('close')"
|
||||||
|
:disabled="!isOpenMessage">关闭会话
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
</div>
|
||||||
|
<div class="content cotnent_body">
|
||||||
|
<span class="base-label" style="left: 0px;">操作</span>
|
||||||
|
<el-col :span="3">
|
||||||
|
<div class="text">操作</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="11" :offset="1">
|
||||||
|
<el-input :value="messageText1" placeholder="" size="mini" disabled></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" :offset="1">
|
||||||
|
<el-button class="status_btn" :id="confirmId1" @click="confirm1" :disabled="disabledConfirm1">确认
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
</div>
|
||||||
|
<div class="content cotnent_body">
|
||||||
|
<span class="base-label" style="left: 0px;">确认</span>
|
||||||
|
<el-col :span="3">
|
||||||
|
<div class="text">操作</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="11" :offset="1">
|
||||||
|
<el-input :value="messageText2" placeholder="" size="mini" disabled></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" :offset="1">
|
||||||
|
<el-button class="status_btn" :id="confirmId2" @click="confirm2" :disabled="disabledConfirm2">确认
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
</div>
|
||||||
|
<div class="body_cont">
|
||||||
|
<el-col :span="7">
|
||||||
|
<div class="text">操作倒计时</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="17">
|
||||||
|
<div style="border: 2px inset #E9E9E9; height: 30px; width: 100%;">
|
||||||
|
{{timeCountConfirm == -1 ? '' : timeCountConfirm}}</div>
|
||||||
|
</el-col>
|
||||||
|
</div>
|
||||||
|
<div class="body_cont">
|
||||||
|
<div class="status_text">状态</div>
|
||||||
|
<div class="textarea_content"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-button class="close_btn" :id="domIdConfirm" type="primary" @click="commit">关闭</el-button>
|
||||||
|
<confirm-tip ref='ConfirmTip' @close="closeMessage"></confirm-tip>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { MapDeviceType, OperationEvent, getDomIdByOperation } from '@/scripts/ConstDic';
|
||||||
|
import { mouseCancelState } from '../utils/menuItemStatus';
|
||||||
|
import ConfirmTip from './childDialog/confirmTip';
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'StandDetainTrain',
|
||||||
|
components: {
|
||||||
|
ConfirmTip
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
standName: '',
|
||||||
|
stationName: '',
|
||||||
|
selected: null,
|
||||||
|
operation: null,
|
||||||
|
radio: '1',
|
||||||
|
radio1: '1',
|
||||||
|
earlyDepar: false,
|
||||||
|
|
||||||
|
messageText: '',
|
||||||
|
messageText1: '',
|
||||||
|
messageText2: '',
|
||||||
|
isOpenMessage: false,
|
||||||
|
timeCountConfirm: -1,
|
||||||
|
disabledConfirm1: false,
|
||||||
|
disabledConfirm2: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
openMessageId() {
|
||||||
|
return this.dialogShow ? OperationEvent.LimitControl.CancelAllLimit.openMessage.domId : '';
|
||||||
|
},
|
||||||
|
closeMessageId() {
|
||||||
|
return this.dialogShow ? OperationEvent.LimitControl.CancelAllLimit.closeMessage.domId : '';
|
||||||
|
},
|
||||||
|
confirmId1() {
|
||||||
|
return this.dialogShow ? OperationEvent.LimitControl.CancelAllLimit.confirm1.domId : '';
|
||||||
|
},
|
||||||
|
confirmId2() {
|
||||||
|
return this.dialogShow ? OperationEvent.LimitControl.CancelAllLimit.confirm2.domId : '';
|
||||||
|
},
|
||||||
|
domIdConfirm() {
|
||||||
|
return this.dialogShow ? OperationEvent.LimitControl.CancelAllLimit.confirm.domId : '';
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
return '取消全线临时限速';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
})
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
if (this.timeCountConfirm > 0) {
|
||||||
|
this.timeCountConfirm--;
|
||||||
|
} else if (this.timeCountConfirm == 0) { // 关闭会话
|
||||||
|
this.timeCountConfirm = -1;
|
||||||
|
this.disabledConfirm2 = true;
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow(operate, selected) {
|
||||||
|
this.selected = selected;
|
||||||
|
if (!this.dialogShow) {
|
||||||
|
this.standName = '';
|
||||||
|
this.stationName = '';
|
||||||
|
|
||||||
|
this.operation = operate.operation;
|
||||||
|
}
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
mouseCancelState(this.selected);
|
||||||
|
},
|
||||||
|
handleMessage(message) {
|
||||||
|
if (message == 'open') {
|
||||||
|
let operate = {
|
||||||
|
type: MapDeviceType.LimitControl.type,
|
||||||
|
operation: OperationEvent.LimitControl.CancelAllLimit.openMessage.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.isOpenMessage = true;
|
||||||
|
this.messageText1 = '取消全线临时限速';
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
let operate = {
|
||||||
|
type: MapDeviceType.LimitControl.type,
|
||||||
|
operation: OperationEvent.LimitControl.CancelAllLimit.closeMessage.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.isOpenMessage = false;
|
||||||
|
this.messageText1 = '';
|
||||||
|
this.messageText2 = '';
|
||||||
|
this.disabledConfirm1 = false;
|
||||||
|
this.disabledConfirm2 = false;
|
||||||
|
this.timeCountConfirm = -1; // 倒计时
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
confirm1() {
|
||||||
|
let operate = {
|
||||||
|
type: MapDeviceType.LimitControl.type,
|
||||||
|
operation: OperationEvent.LimitControl.CancelAllLimit.confirm1.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.isOpenMessage = true;
|
||||||
|
this.messageText1 = '**************';
|
||||||
|
this.messageText2 = '取消全线临时限速';
|
||||||
|
this.disabledConfirm1 = true;
|
||||||
|
this.timeCountConfirm = 60; // 倒计时
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
confirm2() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: MapDeviceType.LimitControl.type,
|
||||||
|
operation: OperationEvent.LimitControl.CancelAllLimit.confirm2.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.isOpenMessage = true;
|
||||||
|
this.messageText2 = '**************';
|
||||||
|
this.disabledConfirm2 = true;
|
||||||
|
this.timeCountConfirm = -1;
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
commit() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: MapDeviceType.LimitControl.type,
|
||||||
|
operation: OperationEvent.LimitControl.CancelAllLimit.confirm.operation,
|
||||||
|
}
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
if (!this.isOpenMessage) {
|
||||||
|
this.doClose();
|
||||||
|
} else {
|
||||||
|
let operate = {
|
||||||
|
message: `是否关闭会话,并关闭窗口`,
|
||||||
|
confirmId: OperationEvent.LimitControl.CancelAllLimit.close.domId,
|
||||||
|
}
|
||||||
|
this.$refs.ConfirmTip.doShow(operate);
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
console.log(error);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
closeMessage() {
|
||||||
|
let operate = {
|
||||||
|
type: MapDeviceType.LimitControl.type,
|
||||||
|
operation: OperationEvent.LimitControl.CancelAllLimit.close.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.$refs.ConfirmTip.doClose();
|
||||||
|
this.isOpenMessage = false;
|
||||||
|
this.messageText1 = '';
|
||||||
|
this.messageText2 = '';
|
||||||
|
this.disabledConfirm1 = false;
|
||||||
|
this.disabledConfirm2 = false;
|
||||||
|
this.timeCountConfirm = -1; // 倒计时
|
||||||
|
this.doClose();
|
||||||
|
}).catch(error => {
|
||||||
|
console.log(error);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.stand-detain-train .context {
|
||||||
|
height: 80px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
padding: 18px 5px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.base-label {
|
||||||
|
position: absolute;
|
||||||
|
top: -5px;
|
||||||
|
left: 20px;
|
||||||
|
background-color: #F0F0F0;
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-button {
|
||||||
|
width: 100%;
|
||||||
|
line-height: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status_btn {
|
||||||
|
width: 110px;
|
||||||
|
margin: 15px auto 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.head_content {
|
||||||
|
height: 110px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cotnent_body {
|
||||||
|
height: 60px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
.text {
|
||||||
|
line-height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status_btn {
|
||||||
|
width: 80px;
|
||||||
|
margin: 0 auto
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.close_btn {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body_cont {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding: 0 3px;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.text {
|
||||||
|
line-height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status_text {
|
||||||
|
margin-bottom: 3px;
|
||||||
|
font-size: 14px;
|
||||||
|
padding-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textarea_content {
|
||||||
|
height: 85px;
|
||||||
|
width: 100%;
|
||||||
|
border: 2px solid #E9E9E9;
|
||||||
|
box-shadow: 2px 2px #959595 inset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,77 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm notice-info" :title="title" :visible.sync="show" width="360px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||||
|
<div class="context">
|
||||||
|
<template v-for="message in messages">
|
||||||
|
<span>{{message}}</span><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<el-row justify="center" class="button-group">
|
||||||
|
<el-col :span="10" :offset="8">
|
||||||
|
<el-button :id="domIdSure" type="primary" @click="commit">确定</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'NoticeInfo',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
messages: ['命令下达失败'],
|
||||||
|
operate: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
return '提示';
|
||||||
|
},
|
||||||
|
domIdSure() {
|
||||||
|
return this.dialogShow ? OperationEvent.Command.close.notice.domId : '';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow(operate, messages) {
|
||||||
|
this.operate = operate || {};
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.messages = ['命令下达失败'];
|
||||||
|
if (messages) {
|
||||||
|
this.messages = messages;
|
||||||
|
}
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
},
|
||||||
|
commit() {
|
||||||
|
this.doClose();
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.notice-info .context {
|
||||||
|
padding-bottom: 40px !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,360 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm confirm-control" :title="title" :visible.sync="show" width="360px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||||
|
<div class="context">
|
||||||
|
<template v-for="message in messages">
|
||||||
|
<span>{{message}}</span>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<el-row justify="center" class="button-group">
|
||||||
|
<el-col :span="10" :offset="2">
|
||||||
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" :offset="4">
|
||||||
|
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<notice-info ref="noticeInfo"></notice-info>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
import NoticeInfo from './childDialog/noticeInfo'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'ConfirmControl',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
loading: false,
|
||||||
|
operate: {},
|
||||||
|
messages: '',
|
||||||
|
operation: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
NoticeInfo
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
if (this.operation === OperationEvent.Signal.arrangementRoute.menu.operation) {
|
||||||
|
return '进路设置';
|
||||||
|
} else if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
|
||||||
|
return '信号关灯';
|
||||||
|
} else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
|
||||||
|
return '信号重开';
|
||||||
|
} else if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
|
||||||
|
return '取消进路';
|
||||||
|
} else if (this.operation === OperationEvent.Signal.humanControl.menu.operation) {
|
||||||
|
return '进路交人工控';
|
||||||
|
} else if (this.operation === OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||||
|
return '进路交ATS自动控'
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setRunLevel.menu.operation) {
|
||||||
|
return '设置运行等级';
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setStopTime.menu.operation) {
|
||||||
|
return '停站时间';
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setBackStrategy.menu.operation) {
|
||||||
|
return '设置折返策略';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdCancel() {
|
||||||
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
|
},
|
||||||
|
domIdConfirm() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation === OperationEvent.Signal.arrangementRoute.menu.operation) {
|
||||||
|
/** 进路设置*/
|
||||||
|
return OperationEvent.Signal.arrangementRoute.confirm.domId
|
||||||
|
} else if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
|
||||||
|
/** 信号关灯*/
|
||||||
|
return OperationEvent.Signal.signalClose.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
|
||||||
|
/** 信号重开*/
|
||||||
|
return OperationEvent.Signal.reopenSignal.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
|
||||||
|
/** 取消进路*/
|
||||||
|
return OperationEvent.Signal.cancelTrainRoute.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Signal.humanControl.menu.operation) {
|
||||||
|
/** 进路交人工控*/
|
||||||
|
return OperationEvent.Signal.humanControl.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||||
|
/** 进路交ATS自动控*/
|
||||||
|
return OperationEvent.Signal.atsAutoControl.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setRunLevel.menu.operation) {
|
||||||
|
/** 设置运行等级*/
|
||||||
|
return OperationEvent.StationStand.setRunLevel.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setStopTime.menu.operation) {
|
||||||
|
/** 设置停战时间*/
|
||||||
|
return OperationEvent.StationStand.setStopTime.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setBackStrategy.menu.operation) {
|
||||||
|
/** 设置折返策略*/
|
||||||
|
return OperationEvent.StationStand.setBackStrategy.confirm.domId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow(operate) {
|
||||||
|
if (!this.dialogShow) {
|
||||||
|
this.loading = false;
|
||||||
|
this.operate = operate || {};
|
||||||
|
this.messages = operate.messages;
|
||||||
|
this.operation = operate.operation;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
},
|
||||||
|
commit() {
|
||||||
|
if (this.operation === OperationEvent.Signal.arrangementRoute.menu.operation) {
|
||||||
|
/** 进路设置*/
|
||||||
|
this.routeSetting();
|
||||||
|
} else if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
|
||||||
|
/** 信号关灯*/
|
||||||
|
this.signalClose();
|
||||||
|
} else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
|
||||||
|
/** 信号重开*/
|
||||||
|
this.reopenSignal();
|
||||||
|
} else if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
|
||||||
|
/** 取消进路*/
|
||||||
|
this.cancelTrainRoute();
|
||||||
|
} else if (this.operation === OperationEvent.Signal.humanControl.menu.operation) {
|
||||||
|
/** 进路交人工控*/
|
||||||
|
this.humanControl();
|
||||||
|
} else if (this.operation === OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||||
|
/** 进路交ATS自动控*/
|
||||||
|
this.atsAutoControl();
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setRunLevel.menu.operation) {
|
||||||
|
/** 设置运行等级*/
|
||||||
|
this.setRunLevel();
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setStopTime.menu.operation) {
|
||||||
|
/** 停站时间*/
|
||||||
|
this.setStopTime();
|
||||||
|
} else if (this.operation === OperationEvent.StationStand.setBackStrategy.menu.operation) {
|
||||||
|
/** 设置折返策略*/
|
||||||
|
this.setBackStrategy();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//进路设置
|
||||||
|
routeSetting() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Signal.arrangementRoute.confirm.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//信号关灯
|
||||||
|
signalClose() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Signal.signalClose.confirm.operation
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//信号重开
|
||||||
|
reopenSignal() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Signal.reopenSignal.confirm.operation
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//取消进路
|
||||||
|
cancelTrainRoute() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Signal.cancelTrainRoute.confirm.operation
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//进路交人工控
|
||||||
|
humanControl() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: MapDeviceType.Signal.type,
|
||||||
|
operation: OperationEvent.Signal.humanControl.menu.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//进路交ATS自动控
|
||||||
|
atsAutoControl() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: MapDeviceType.Signal.type,
|
||||||
|
operation: OperationEvent.Signal.atsAutoControl.menu.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//设置运行等级
|
||||||
|
setRunLevel() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.StationStand.setRunLevel.confirm.operation,
|
||||||
|
val: this.operate.val
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//停站时间
|
||||||
|
setStopTime() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.StationStand.setStopTime.confirm.operation,
|
||||||
|
val: this.operate.val,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//设置折返策略
|
||||||
|
setBackStrategy() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.StationStand.setBackStrategy.confirm.operation,
|
||||||
|
val: this.operate.val,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
let operate = {
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Command.cancel.menu.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.confirm-control .context {
|
||||||
|
padding-bottom: 40px !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,153 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm confirm-control-speed" :title="title" :visible.sync="show" width="540px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||||
|
<div style="height: 60px; padding-left: 20px">
|
||||||
|
<span style="font-size: 18px">{{message}}</span>
|
||||||
|
</div>
|
||||||
|
<el-row justify="center" class="button-group">
|
||||||
|
<el-col :span="6" :offset="6">
|
||||||
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="10" :offset="2">
|
||||||
|
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'ConfirmControlSpeed',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
loading: false,
|
||||||
|
type: '',
|
||||||
|
operation: '',
|
||||||
|
message: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
|
||||||
|
return "区段设置限速";
|
||||||
|
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
|
||||||
|
return "区段取消限速";
|
||||||
|
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
|
||||||
|
return "道岔设置限速";
|
||||||
|
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
|
||||||
|
return "道岔取消限速";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdCancel() {
|
||||||
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
|
},
|
||||||
|
domIdConfirm() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
|
||||||
|
/** 区段设置限速*/
|
||||||
|
return OperationEvent.Section.setSpeed.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
|
||||||
|
/** 区段取消限速*/
|
||||||
|
return OperationEvent.Section.cancelSpeed.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
|
||||||
|
/** 道岔设置限速*/
|
||||||
|
return OperationEvent.Switch.setSpeed.confirm.domId;
|
||||||
|
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
|
||||||
|
/** 道岔取消限速*/
|
||||||
|
return OperationEvent.Switch.cancelSpeed.confirm.domId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow(operate) {
|
||||||
|
if (!this.dialogShow) {
|
||||||
|
this.type = operate.type;
|
||||||
|
this.operation = operate.operation;
|
||||||
|
this.message = operate.message;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
},
|
||||||
|
commit() {
|
||||||
|
let operate = {
|
||||||
|
type: this.type
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
|
||||||
|
/** 区段设置限速*/
|
||||||
|
operate.operation = OperationEvent.Section.setSpeed.confirm.operation;
|
||||||
|
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
|
||||||
|
/** 区段取消限速*/
|
||||||
|
operate.operation = OperationEvent.Section.cancelSpeed.confirm.operation;
|
||||||
|
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
|
||||||
|
/** 道岔设置限速*/
|
||||||
|
operate.operation = OperationEvent.Switch.setSpeed.confirm.operation;
|
||||||
|
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
|
||||||
|
/** 道岔取消限速*/
|
||||||
|
operate.operation = OperationEvent.Switch.cancelSpeed.confirm.operation;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
if (valid) {
|
||||||
|
this.$emit('setOperate', { step: 1, success: true });
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.$emit('setOperate', { step: 0, success: false });
|
||||||
|
this.doClose();
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
let operate = {
|
||||||
|
type: this.type,
|
||||||
|
operation: OperationEvent.Command.cancel.menu.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
if (valid) {
|
||||||
|
this.$emit('setOperate', { step: 0, success: false });
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.confirm-control-speed .context {
|
||||||
|
padding-bottom: 40px !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,25 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog class="default__systerm" title="信号重开" :visible.sync="show" width="360px" :before-close="cancel"
|
<el-dialog class="chengdou-03__systerm route-unlock-confirm" :title="title" :visible.sync="show" width="500px"
|
||||||
:zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||||
<el-form size="small" label-position="top">
|
<div style="height: 60px; padding-left: 20px">
|
||||||
<el-row>
|
<span>在{{stationName}}【{{signalName}}】信号机,信号解锁,确认下达吗?</span>
|
||||||
<el-col :span="10" :offset="1">
|
</div>
|
||||||
<el-form-item label="集中站">
|
<el-row justify="center" class="button-group">
|
||||||
<el-input v-model="model.stationName" :disabled="true"></el-input>
|
<el-col :span="6" :offset="6">
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="10" :offset="2">
|
|
||||||
<el-form-item label="信号机">
|
|
||||||
<el-input v-model="model.signalName" :disabled="true"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
<el-row class="botton-group" style="margin-top:20px">
|
|
||||||
<el-col :span="4" :offset="10">
|
|
||||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="3" :offset="3">
|
<el-col :span="10" :offset="2">
|
||||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -27,28 +16,30 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { MapDeviceType, OperationEvent, getDomIdByOperation } from '@/scripts/ConstDic';
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SignalReopen',
|
name: 'RouteUnlockConfirm',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dialogShow: false,
|
dialogShow: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
domIdConfirm: '',
|
|
||||||
model: {
|
|
||||||
operation: '',
|
|
||||||
stationName: '',
|
|
||||||
signalName: '',
|
signalName: '',
|
||||||
signalCode: '',
|
stationName: ''
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
show() {
|
show() {
|
||||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
},
|
},
|
||||||
|
title() {
|
||||||
|
return '信号解封'
|
||||||
|
},
|
||||||
domIdCancel() {
|
domIdCancel() {
|
||||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
|
},
|
||||||
|
domIdConfirm() {
|
||||||
|
return this.dialogShow ? OperationEvent.Signal.unlock.confirm.domId : '';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -57,44 +48,47 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
doShow(operation, selected) {
|
doShow(operate, selected) {
|
||||||
this.model.signalName = '';
|
this.stationName = ''
|
||||||
this.model.stationName = '';
|
this.signalName = '';
|
||||||
if (selected && selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
|
if (selected) {
|
||||||
this.model.signalName = selected.name
|
this.signalName = selected.name;
|
||||||
let station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
let station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||||
if (station) {
|
if (station) {
|
||||||
this.model.stationName = station.name;
|
this.stationName = station.name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.model.operation = operation;
|
|
||||||
this.domIdConfirm = getDomIdByOperation(operation);
|
this.loading = false;
|
||||||
this.dialogShow = true;
|
this.dialogShow = true;
|
||||||
this.$nextTick(function () {
|
this.$nextTick(function () {
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
doClose() {
|
doClose() {
|
||||||
|
this.loading = false;
|
||||||
this.dialogShow = false;
|
this.dialogShow = false;
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
},
|
},
|
||||||
commit() {
|
commit() {
|
||||||
let operate = {
|
let operate = {
|
||||||
send: true,
|
|
||||||
type: MapDeviceType.Signal.type,
|
type: MapDeviceType.Signal.type,
|
||||||
operation: OperationEvent.Signal.reopenSignal.menu.operation
|
operation: OperationEvent.Signal.unlock.confirm.operation
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
this.$emit('setOperate', { step: 1, success: true });
|
||||||
this.doClose();
|
this.doClose();
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch((error) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
this.$emit('setOperate', { step: 0, success: false });
|
||||||
this.doClose();
|
this.doClose();
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
let operate = {
|
let operate = {
|
||||||
@ -103,7 +97,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
this.$emit('setOperate', { step: 0, success: false });
|
||||||
this.doClose();
|
this.doClose();
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
@ -114,6 +110,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
<style>
|
||||||
@import "src/styles/mixin.scss";
|
.route-unlock-confirm .context {
|
||||||
|
padding-bottom: 40px !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
@ -0,0 +1,68 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm confirm-control-speed" :title="title" :visible.sync="show" width="340px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||||
|
<div style="height: 60px; padding-left: 20px">
|
||||||
|
<span style="font-size: 18px">{{message}}</span>
|
||||||
|
</div>
|
||||||
|
<el-row justify="center" class="button-group">
|
||||||
|
<el-col :span="11">
|
||||||
|
<el-button type="primary" :id="confirmId" @click="confirm">确定</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="11" :offset="2">
|
||||||
|
<el-button @click="doClose">取 消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'ConfirmTip',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
message: '',
|
||||||
|
confirmId: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
return "提示";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow(operate) {
|
||||||
|
this.message = operate.message;
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.confirmId = operate.confirmId;
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
this.$emit('close');
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogShow = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.confirm-control-speed .context {
|
||||||
|
padding-bottom: 40px !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
}
|
||||||
|
.chengdou-03__systerm .el-dialog .el-button{
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,168 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog class="chengdou-03__systerm confirm-control" :title="title" :visible.sync="show" width="360px"
|
||||||
|
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||||
|
<div class="context">
|
||||||
|
<template v-for="message in messages">
|
||||||
|
<span>{{message}}</span>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<el-row justify="center" class="button-group">
|
||||||
|
<el-col :span="10" :offset="2">
|
||||||
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" :offset="4">
|
||||||
|
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<notice-info ref="noticeInfo"></notice-info>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
|
||||||
|
import NoticeInfo from './childDialog/noticeInfo'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'ConfirmTrain',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow: false,
|
||||||
|
loading: false,
|
||||||
|
operate: {},
|
||||||
|
messages: '',
|
||||||
|
operation: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
NoticeInfo
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
|
||||||
|
return '添加列车识别号';
|
||||||
|
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
|
||||||
|
return '修改列车识别号';
|
||||||
|
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
|
||||||
|
return '删除列车识别号';
|
||||||
|
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
|
||||||
|
return '移动列车识别号';
|
||||||
|
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
|
||||||
|
return '交换列车识别号';
|
||||||
|
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
|
||||||
|
return '修改车组号'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
domIdCancel() {
|
||||||
|
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||||
|
},
|
||||||
|
domIdConfirm() {
|
||||||
|
if (this.dialogShow) {
|
||||||
|
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
|
||||||
|
/** 添加列车识别号*/
|
||||||
|
return OperationEvent.Train.addTrainId.confirm.domId
|
||||||
|
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
|
||||||
|
/** 修改列车识别号*/
|
||||||
|
return OperationEvent.Train.editTrainId.confirm.domId
|
||||||
|
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
|
||||||
|
/** 删除列车识别号*/
|
||||||
|
return OperationEvent.Train.delTrainId.confirm.domId
|
||||||
|
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
|
||||||
|
/** 移动列车识别号*/
|
||||||
|
return OperationEvent.Train.moveTrainId.confirm.domId
|
||||||
|
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
|
||||||
|
/** 交换列车识别号*/
|
||||||
|
return OperationEvent.Train.switchTrainId.confirm.domId
|
||||||
|
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
|
||||||
|
/** 修改车组号*/
|
||||||
|
return OperationEvent.Train.editTrainNo.confirm.domId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch('training/tipReload');
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow(operate) {
|
||||||
|
if (!this.dialogShow) {
|
||||||
|
this.loading = false;
|
||||||
|
this.operate = operate || {};
|
||||||
|
this.messages = operate.messages;
|
||||||
|
this.operation = operate.operation;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dialogShow = true;
|
||||||
|
this.$nextTick(function () {
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogShow = false;
|
||||||
|
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||||
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
},
|
||||||
|
commit() {
|
||||||
|
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
|
||||||
|
this.routeSetting();
|
||||||
|
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
|
||||||
|
this.routeSetting();
|
||||||
|
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
|
||||||
|
this.routeSetting();
|
||||||
|
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
|
||||||
|
this.routeSetting();
|
||||||
|
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
|
||||||
|
this.routeSetting();
|
||||||
|
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
|
||||||
|
this.routeSetting();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//进路设置
|
||||||
|
routeSetting() {
|
||||||
|
let operate = {
|
||||||
|
send: true,
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Train.addTrainId.confirm.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loading = true;
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.doClose();
|
||||||
|
this.$refs.noticeInfo.doShow(operate);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
let operate = {
|
||||||
|
type: this.operate.type,
|
||||||
|
operation: OperationEvent.Command.cancel.menu.operation,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$store.dispatch('training/next', operate).then(({ valid }) => {
|
||||||
|
if (valid) {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.doClose();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.confirm-control .context {
|
||||||
|
padding-bottom: 40px !important;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
}
|
||||||
|
</style>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user