西安二操作调整

This commit is contained in:
fan 2020-04-28 16:17:42 +08:00
parent af5567d598
commit 1457492257
6 changed files with 158 additions and 161 deletions

View File

@ -1,6 +1,6 @@
<template>
<div v-show="show" class="pop-menu pop_menu_tip" :style="{ height: height, left: tPosition.x+'px', top: tPosition.y+'px' }">
<div v-if="tipMsg" class="tip-top">
<div v-if="tipMsg" class="tip-top" :style="{textAlign: textAlign}">
<div>{{ tipMsg }}</div>
<div>{{ tipSubhead }}</div>
</div>
@ -116,6 +116,12 @@ export default {
default() {
return '';
}
},
textAlign: {
type: String,
default() {
return 'center';
}
}
},
data() {
@ -140,6 +146,12 @@ export default {
// fontNum = elem.label.length;
}
});
if (this.tipMsg) {
newLabel = this.tipMsg.replace(/[^\u0000-\u00ff]/g, 'aa');
if (newLabel.length > fontNum) {
fontNum = newLabel.length;
}
}
var width = fontNum / 2 * this.defaultFontSize + 60 + 'px';
// if(this.$t('global.lanuage')==='en'){
// width = fontNum/2 * this.defaultFontSize + 40 + 'px';
@ -151,7 +163,6 @@ export default {
},
methods: {
resetShowPosition(point) {
console.log(this.tipMsg, '====================');
if (point) {
this.show = true;
const self = this;
@ -273,9 +284,8 @@ export default {
width: 100%;
background: #000;
color: #fff;
text-align: center;
font-size: 14px;
padding: 2px 0;
padding: 2px 15px;
}
}

View File

@ -14,8 +14,8 @@
<menu-limit ref="menuLimit" :selected="selected" />
<passive-contorl ref="passiveControl" />
<menu-request ref="menuRequest" />
<menu-station-stand ref="menuStationStand" :selected="selected" @popMenuStationStand="popMenuStationStand" />
<pop-station-stand ref="popStationStand" :selected="selected" @closeMenuStationStand="closeMenuStationStand" @standOperationCallback="standOperationCallback" />
<menu-station-stand ref="menuStationStand" :selected="selected" @popMenuStationStand="popMenuStationStand" @totalMenuEvent="totalMenuEvent" />
<pop-station-stand ref="popStationStand" :selected="selected" @closeMenuStationStand="closeMenuStationStand" />
</template>
</div>
</template>
@ -99,8 +99,8 @@ export default {
closeMenuStationStand() {
this.$refs.menuStationStand.doClose();
},
standOperationCallback(val) {
this.$refs.menuStationStand.callback(val);
totalMenuEvent(param) {
this.$refs.menuCancel.doShow(param);
}
}
};
@ -175,11 +175,8 @@ export default {
opacity: 1;
}
.xian-02__system .el-dialog .el-dialog__title {
font-size: 16px;
font-size: 18px;
color: #fff;
position: absolute;
top: 4px;
left:25px;
}
.xian-02__menus .stand-stop-time .el-dialog .el-dialog__title {
font-size: 16px;
@ -189,11 +186,14 @@ export default {
top: 4px;
left:550px;
}
.xian-02__system .el-dialog .el-dialog__header {
padding: 2px 1px;
}
.xian-02__system .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff;
border-radius: 4px;
top: 6px;
top: 2px;
right: 3px;
line-height: 16px;
}

View File

@ -20,7 +20,7 @@ export default {
menuNormal: [
{
label: '发送',
handler: this.undeveloped
handler: this.sendRequestList
},
{
label: '取消',
@ -148,6 +148,32 @@ export default {
callback: action => {
}
});
},
sendRequestList() {
const requestList = this.$store.state.menuOperation.requestList;
if (requestList && requestList.length > 0) {
this.commitEachCommand(requestList);
}
},
commitEachCommand(requestList) {
const eachCmd = requestList[0];
const operate = {
send: true,
operation: eachCmd.operation.code,
cmdType: eachCmd.cmdType,
param: eachCmd.param //
};
this.$store.dispatch('menuOperation/spliceRequestList', {deviceCode:eachCmd.device.code, operateCode:eachCmd.operation.code});
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
if (requestList.length) {
this.commitEachCommand(requestList);
}
}
}).catch(() => {
this.loading = false;
});
}
}
};

View File

@ -7,7 +7,7 @@
</div>
</div>
<div class="content-box" :class="{'is-active': unfold}">
<el-table ref="table" :data="tempData" border :cell-style="tableStyle" style="width: 100%;background: #000;border: none;outline: none; height: 120px;" size="mini" highlight-current-row :show-header="false" @row-click="clickEvent">
<el-table ref="table" :data="tempData" border :cell-style="tableStyle" style="width: 100%;background: #000;border: none;outline: none;" height="120" size="mini" highlight-current-row :show-header="false" @row-click="clickEvent">
<el-table-column prop="station" style="margin-left:10px" />
<el-table-column prop="operation" style="margin-left:10px" />
</el-table>
@ -98,24 +98,23 @@ export default {
commit() {
const requestList = this.$store.state.menuOperation.requestList;
if (requestList && requestList.length > 0) {
this.commitEachCommand(requestList, 0);
this.commitEachCommand(requestList);
}
},
commitEachCommand(requestList, index) {
const eachCmd = requestList[index];
commitEachCommand(requestList) {
const eachCmd = requestList[0];
const operate = {
over: true,
send: true,
operation: eachCmd.operation.code,
cmdType: eachCmd.operation.cmdType,
param: eachCmd.operation.param //
cmdType: eachCmd.cmdType,
param: eachCmd.param //
};
this.$store.dispatch('menuOperation/spliceRequestList', {deviceCode:eachCmd.device.code, operateCode:eachCmd.operation.code});
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
this.$store.dispatch('menuOperation/spliceRequestList', {deviceCode:eachCmd.device.code, operateCode:eachCmd.operation.code});
const nextIndex = index++;
if (nextIndex < requestList.length) {
this.commitEachCommand(requestList, nextIndex);
if (requestList.length) {
this.commitEachCommand(requestList);
}
// this.doClose();
}

View File

@ -13,7 +13,7 @@
:close-on-click-modal="false"
>
<el-row>
<el-col :span="24"><div style="text-align: center;width: 100%;height: 50px" @contextmenu="menuEvent('totalMenu')">{{ title }}</div></el-col>
<el-col :span="24"><div style="text-align: center;width: 100%;height: 50px;" @contextmenu="totalMenuEvent"><div style="display: initial;font-size: 18px" :style="{background: bgColor, color: fontColor}">{{ title }}</div></div></el-col>
</el-row>
<el-row style="margin-top: 20px">
<el-col :span="8"><div style="text-align: center;">设备</div></el-col>
@ -49,10 +49,10 @@
<div class="left-table-cell"><span>跳停</span></div>
</el-col>
<el-col :span="8">
<div class="center-table-cell"><span :style="{color: stopJumpColor}" @contextmenu="menuEvent('stopJumping')">设置/取消 所有列车跳停本站</span></div>
<div class="center-table-cell"><span @contextmenu="menuEvent('stopJumping')">设置/取消 所有列车跳停本站</span></div>
</el-col>
<el-col :span="8">
<div class="right-table-cell"><span :style="{color: allStopJumpColor}" @contextmenu="menuEvent('allTrainStopJump')">所有列车跳停本站</span></div>
<div class="right-table-cell"><span @contextmenu="menuEvent('allTrainStopJump')">所有列车跳停本站</span></div>
</el-col>
</el-row>
<el-row>
@ -60,10 +60,10 @@
<div class="left-table-cell"><span @click="clickEvent()">ATS站台扣车</span></div>
</el-col>
<el-col :span="8">
<div class="center-table-cell"><span :style="{color:standDetainColor}" @contextmenu="menuEvent('standDetain')">设置/取消 所有列车本站扣车</span></div>
<div class="center-table-cell"><span :style="{color:detainInterval ? standDetainColor :detainStatusColor}" @contextmenu="menuEvent('standDetain')">设置/取消 所有列车本站扣车</span></div>
</el-col>
<el-col :span="8">
<div class="right-table-cell"><span :style="{color:allDetainColor}" @click="clickEvent()">所有列车本站扣车</span></div>
<div class="right-table-cell"><span :style="{color: detainStatusColor}">所有列车本站扣车</span></div>
</el-col>
</el-row>
<el-row>
@ -146,9 +146,10 @@ export default {
position: '',
title: '',
standDetainColor: '#FFF',
allDetainColor: '#FFF',
stopJumpColor: '#FFF',
allStopJumpColor: '#FFF'
detainStatusColor: '#FFF',
bgColor: '#000',
fontColor: '#FFF',
detainInterval: ''
};
},
computed: {
@ -185,6 +186,14 @@ export default {
} else {
this.doClose();
}
},
'$store.state.menuOperation.requestList': function (list) {
this.initStatus(list);
},
'$store.state.socket.equipmentStatus': function (val) {
if (this.selected) {
this.detainStatusColor = this.selected.centerHoldTrain || this.selected.stationHoldTrain ? '#FF0' : '#FFF';
}
}
},
mounted() {
@ -195,27 +204,48 @@ export default {
methods: {
doShow(position) {
// this.operate = operate || {};
const requestList = this.$store.state.menuOperation.requestList;
this.initStatus(requestList || []);
this.position = position;
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
initStatus(requestList) {
this.standDetainColor = '#FFF';
this.bgColor = '#000';
this.fontColor = '#FFF';
if (this.detainInterval) {
clearInterval(this.detainInterval);
this.detainInterval = '';
}
requestList.forEach(item => {
if (item.device && item.device.code === this.selected.code) {
if (item.operation.code === OperationEvent.StationStand.setDetainTrain.menu.operation || item.operation.code === OperationEvent.StationStand.cancelDetainTrain.menu.operation) {
this.standDetain();
}
}
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
if (this.detainInterval) {
clearTimeout(this.detainInterval);
}
if (this.stopJumpInterval) {
clearTimeout(this.stopJumpInterval);
clearInterval(this.detainInterval);
this.detainInterval = '';
}
},
menuEvent(val) {
if (val) {
this.$emit('popMenuStationStand', {position:{x: event.clientX, y: event.clientY}, type:val});
event.stopPropagation();
event.preventDefault();
}
},
totalMenuEvent() {
this.$emit('totalMenuEvent', {x: event.clientX, y: event.clientY});
},
clickEvent(val) {
this.dialogShow = true;
@ -272,28 +302,11 @@ export default {
// }
// });
},
callback(val) {
if (val === 'standDetain') {
this.setStandDetain(true);
} else if (val === 'stopJumping') {
this.setStopJumping(true);
}
},
setStopJumping(flag) {
this.stopJumpColor = '#FF0';
if (flag && !this.stopJumpInterval) {
this.stopJumpInterval = setInterval(() => {
if (this.stopJumpColor !== '#FF0') {
this.stopJumpColor = '#FF0';
} else {
this.stopJumpColor = '#000';
}
}, 1000);
}
},
setStandDetain(flag) {
standDetain() {
this.standDetainColor = '#FF0';
if (flag && !this.detainInterval) {
this.bgColor = '#FFF';
this.fontColor = '#000';
if (!this.detainInterval) {
this.detainInterval = setInterval(() => {
if (this.standDetainColor !== '#FF0') {
this.standDetainColor = '#FF0';

View File

@ -1,6 +1,6 @@
<template>
<div>
<pop-menu ref="popMenu" :menu="menu" trigger="click" :tip-msg="topTip" pop-class="xian-02__pop_tip_station" />
<pop-menu ref="popMenu" :menu="menu" trigger="click" :tip-msg="topTip" text-align="left" pop-class="xian-02__pop_tip_station" />
<notice-info ref="noticeInfo" />
<update-stand-plan ref="updateStandPlan" :selected="selected" />
<warning-confirm ref="warningConfirm" :selected="selected" />
@ -40,76 +40,6 @@ export default {
return {
menu: [],
topTip: '',
totalMenu: {
Local: [],
Center: [
{
label: '发送',
handler: this.doClose,
cmdType: ''
},
{
label: '取消',
handler: this.doClose,
cmdType: ''
},
{
label: '全部扣车',
handler: this.doClose,
cmdType: ''
},
{
label: '全部发车',
handler: this.doClose,
cmdType: ''
},
{
label: '列车选择',
handler: this.doClose,
cmdType: ''
},
{
label: '缩放',
handler: this.doClose,
cmdType: ''
},
{
label: '显示控制',
handler: this.doClose,
cmdType: ''
},
{
label: '下一窗口',
handler: this.doClose,
cmdType: ''
},
{
label: '上一窗口',
handler: this.doClose,
cmdType: ''
},
{
label: '激活所有菜单',
handler: this.doClose,
cmdType: ''
},
{
label: '取消激活菜单',
handler: this.doClose,
cmdType: ''
},
{
label: '进路模式-授权车站',
handler: this.doClose,
cmdType: ''
},
{
label: '关闭窗口',
handler: this.closeMenuStationStand,
cmdType: ''
}
]
},
updateStandPlan: {
Local: [],
Center: [
@ -135,7 +65,7 @@ export default {
},
{
label: '取消列车跳停本站',
handler: this.setStopTime,
handler: this.cancelJumpStop,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
},
{
@ -148,12 +78,6 @@ export default {
allTrainStopJump: {
Local: [],
Center: [
{
label: '所有列车跳停本站',
handler: this.setStopTime,
disabled: true,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
},
{
label: '设备标签',
handler: this.setStopTime,
@ -169,21 +93,17 @@ export default {
standDetain: {
Local: [],
Center: [
{
label: '站台扣车 SET/CANCEL',
handler: this.setStopTime,
disabled: true,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
},
{
label: '扣车',
handler: this.setStandDetain,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME,
disabled: this.selected && this.selected.centerHoldTrain
},
{
label: '发车',
handler: this.setStopTime,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
handler: this.cancelStandDetain,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME,
disabled: this.selected && !this.selected.centerHoldTrain
}
]
},
@ -294,22 +214,20 @@ export default {
},
initMenu(type) {
//
this.topTip = '';
switch (type) {
case 'updateStandPlan':
// this.menu = MenuContextHandler.covert(this.updateStandPlan);
this.topTip = '';
this.menu = this.updateStandPlan.Center;
break;
case 'stopJumping':
this.menu = this.stopJumping.Center;
break;
case 'totalMenu':
this.menu = this.totalMenu.Center;
break;
case 'allTrainStopJump':
this.topTip = '所有列车跳停本站';
this.menu = this.allTrainStopJump.Center;
break;
case 'standDetain':
this.topTip = '站台扣车 SET/CANCEL';
this.menu = this.standDetain.Center;
break;
case 'psdInfoConfirm':
@ -324,7 +242,6 @@ export default {
break;
}
// this.menu = MenuContextHandler.covert(this.menuNormal);
console.log(this.menu, type, this.topTip);
//
if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce;
@ -406,9 +323,12 @@ export default {
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: OperationEvent.StationStand.setJumpStop.menu.operation});
// this.$refs.standControl.doShow(step, this.selected);
this.$emit('standOperationCallback', 'stopJumping');
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: { code: OperationEvent.StationStand.setJumpStop.menu.operation, name: '跳停本站请求成功'},
cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP,
param: step.param
});
}
});
},
@ -425,8 +345,12 @@ export default {
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: { code: OperationEvent.StationStand.cancelJumpStop.menu.operation, name: '取消跳停'}});
// this.$refs.standControl.doShow(step, this.selected);
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: { code: OperationEvent.StationStand.cancelJumpStop.menu.operation, name: '取消跳停请求成功'},
cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP,
param: step.param
});
}
});
},
@ -479,13 +403,38 @@ export default {
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
// this.$refs.warningConfirm.doShow(step, this.selected);
this.$emit('standOperationCallback', 'standDetain');
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: { code: OperationEvent.StationStand.setDetainTrain.menu.operation, name: '设置扣车'},
cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN,
param: step.param
});
}
}).catch(() => {
this.$refs.noticeInfo.doShow(step);
});
},
cancelStandDetain() {
const step = {
start: true,
code: this.selected.code,
operation: OperationEvent.StationStand.cancelDetainTrain.menu.operation,
param: {
standCode: `${this.selected.code}`
}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {code: OperationEvent.StationStand.cancelDetainTrain.menu.operation, name: '取消扣车'},
cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN,
param: step.param
});
}
});
},
setUpStopProfile() {
const step = {
start: true,