# Conflicts:
#	src/jmapNew/theme/xian_02/menus/index.vue
This commit is contained in:
zyy 2020-04-27 18:35:44 +08:00
commit 9ea5cefdc0
17 changed files with 902 additions and 199 deletions

View File

@ -232,7 +232,7 @@ export default {
position: fixed; position: fixed;
padding: 5px 0px; padding: 5px 0px;
border: 1px solid gray; border: 1px solid gray;
z-index: 2; z-index: 9999;
.dsp-block { .dsp-block {
display: block; display: block;

View File

@ -0,0 +1,213 @@
<template>
<el-dialog
v-dialogDrag
class="xian-02__system warning-confirm"
:title="title"
:visible.sync="show"
width="500px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
center
>
<el-form ref="form" size="small" label-width="120px" :model="addModel" :rules="rules" label-position="left">
<el-row style="margin-top: 10px;">
<el-col :span="16">
<el-form-item label="车站" prop="location">
<el-input v-model="addModel.stationName" />
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="14">
<el-form-item label="">
<el-input v-model="addModel.direction" />
</el-form-item>
</el-col>
</el-row>
<hr style="height:1px;border:none;border-top:1px solid #555555;width: 492px; position: absolute;left: 3px; margin-top: 0">
<el-row style="margin-top: 10px;">
<el-col :span="24">
<el-form-item label="原停车曲线">
<el-input v-model="addModel.oldStopProfileLabel" />
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="24">
<el-form-item label="停车曲线">
<el-radio-group v-model="addModel.stopProfile" size="small">
<template v-for="item in stopProfileList">
<el-radio :key="item.value" :label="item.value">{{ item.label }}</el-radio><br>
</template>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10%">
<el-form-item label-width="0" prop="notes">
<el-input v-model="addModel.notes" type="textarea" :rows="3" />
</el-form-item>
</el-row>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="20" :offset="2">
<el-button :id="domIdConfirm" style="margin-right: 50px;" @click="commit">确定</el-button>
<el-button :id="domIdCancel" style="margin-right: 50px;" @click="cancel">取消</el-button>
<el-button>帮助</el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex';
export default {
name: 'PlatformDwell',
props: {
selected: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
addModel: {
stationName: '',
standCode: '',
direction: '',
oldStopProfile: '',
oldStopProfileLabel: '',
stopProfile: '',
notes: ''
},
stopProfileList: [
{label: '1 - 0.8 m/s/s Normal Braking Profile', value: '0.8'},
{label: '2 - 0.76 m/s/s', value: '0.76'},
{label: '3 - 0.72 m/s/s', value: '0.72'},
{label: '4 - 0.68 m/s/s', value: '0.68'},
{label: '5 - 0.64 m/s/s', value: '0.64'},
{label: '6 - 0.60 m/s/s', value: '0.60'},
{label: '7 - 0.56 m/s/s', value: '0.56'},
{label: '8 - 0.52 m/s/s', value: '0.52'},
{label: '9 - 0.48 m/s/s Min Braking Profile', value: '0.48'}
],
loading: false,
rules: {},
dialogShow: false,
leftSelect: null
};
},
computed: {
...mapGetters('map', [
'stationList',
'mapConfig'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.StationStand.setStopTime.choose1.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.StationStand.setStopTime.choose2.domId : '';
},
title() {
return '站停曲线';
},
speedList() {
const list = [];
for (var i = 0; i * this.speedSpace <= this.maxSpeed; i++) {
list.push(i * this.speedSpace);
}
return list;
}
},
methods: {
selectedLeftRow(index) {
this.leftSelect = index;
},
updateData() {
this.testData2.push(this.testData1[this.leftSelect]);
this.testData1.splice(this.leftSelect, 1);
},
rest() {
this.leftSelect = null;
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
doShow(step, selected, direction ) {
this.dialogShow = true;
this.selected = selected;
this.addModel.standCode = selected.code;
this.addModel.direction = direction === 'up' ? '上行方向' : '下行方向';
this.addModel.oldStopProfile = '';
this.oldStopProfileLabel = '';
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
if ((this.mapConfig.upDirection === 'right' && this.selected.right) || (this.mapConfig.upDirection === 'left' && !this.selected.right)) {
this.addModel.stationName = station.name + '-上行站台';
} else {
this.addModel.stationName = station.name + '-下行站台';
}
},
cancel() {
this.doClose();
},
commit() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$store.dispatch('menuOperation/pushRequestList', {device: this.selected, operation:{ code: OperationEvent.StationStand.setStopTime.menu.operation, name: '设置站台停站时间'}});
}
// if (valid) {
// const operate = {
// send: true,
// operation: OperationEvent.Command.planTrain.addPlanTrain.operation
// };
// this.loading = true;
// this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
// this.loading = false;
// if (valid) {
// this.doClose();
// } else {
// this.$refs.noticeInfo.doShow(operate);
// }
// }).catch(() => {
// this.loading = false;
// this.doClose();
// this.$refs.noticeInfo.doShow(operate);
// });
// } else {
// return false;
// }
});
}
}
};
</script>
<style lang="scss" scoped>
.transfer_header {
text-align: center;
color: #000;
font-size: 16px;
}
.transfer_body {
height: 180px;
/*overflow-y: scroll;*/
border-top: 2px solid #2F4F50;
border-left: 2px solid #2F4F50;
border-bottom: 2px solid #B7D4D5;
border-right: 2px solid #B7D4D5;
text-align: center;
font-size: 16px;
color: #000;
}
</style>

View File

@ -44,8 +44,8 @@
<el-col :span="10"> <el-col :span="10">
<div class="transfer_body"> <div class="transfer_body">
<template v-for="(item, index) in testData1"> <template v-for="(item, index) in testData1">
<el-row :key="index"> <el-row :key="index" :style="{background: index === leftSelect ? '#C0C0C0': '#5F9EA0'}" @click.native="selectedLeftRow(index)">
<el-col :span="8"><div>{{ item.plannedStop }}</div></el-col> <el-col :span="8"><div>{{ item.planned }}</div></el-col>
<el-col :span="8"><div>{{ item.plannedArrival }}</div></el-col> <el-col :span="8"><div>{{ item.plannedArrival }}</div></el-col>
<el-col :span="8"><div>{{ item.scheduledArrival }}</div></el-col> <el-col :span="8"><div>{{ item.scheduledArrival }}</div></el-col>
</el-row> </el-row>
@ -53,13 +53,17 @@
</div> </div>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button>穿梭</el-button> <div style="height: 180px; text-align: center; padding-top: 60px">
<el-button @click="updateData">&gt;&gt;</el-button>
<br>
<el-button style="margin-top: 10px" />
</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<div class="transfer_body"> <div class="transfer_body">
<template v-for="(item, index) in testData2"> <template v-for="(item, index) in testData2">
<el-row :key="index"> <el-row :key="index">
<el-col :span="8"><div>{{ item.plannedSkip }}</div></el-col> <el-col :span="8"><div>{{ item.planned }}</div></el-col>
<el-col :span="8"><div>{{ item.plannedArrival }}</div></el-col> <el-col :span="8"><div>{{ item.plannedArrival }}</div></el-col>
<el-col :span="8"><div>{{ item.scheduledArrival }}</div></el-col> <el-col :span="8"><div>{{ item.scheduledArrival }}</div></el-col>
</el-row> </el-row>
@ -67,7 +71,7 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin: 20px 0"><el-col :span="24"><div style="text-align: center"><el-button>复位</el-button></div></el-col></el-row> <el-row style="margin: 20px 0"><el-col :span="24"><div style="text-align: center"><el-button @click="rest">复位</el-button></div></el-col></el-row>
<el-row> <el-row>
<el-form-item label-width="0" prop="notes"> <el-form-item label-width="0" prop="notes">
<el-input v-model="addModel.notes" type="textarea" :rows="3" /> <el-input v-model="addModel.notes" type="textarea" :rows="3" />
@ -75,7 +79,7 @@
</el-row> </el-row>
</el-form> </el-form>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="12" :offset="7"> <el-col :span="12" :offset="9">
<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-button :id="domIdCancel" @click="cancel">取消</el-button> <el-button :id="domIdCancel" @click="cancel">取消</el-button>
<el-button>帮助</el-button> <el-button>帮助</el-button>
@ -106,11 +110,12 @@ export default {
standDirection: '', standDirection: '',
notes: '' notes: ''
}, },
testData1: [{plannedStop: '测试1', plannedArrival: '05:33:22', scheduledArrival: '06:11:31'}, {plannedStop: '测试2', plannedArrival: '07:33:22', scheduledArrival: '08:11:31'}], testData1: [{planned: '测试1', plannedArrival: '05:33:22', scheduledArrival: '06:11:31'}, {planned: '测试2', plannedArrival: '07:33:22', scheduledArrival: '08:11:31'}],
testData2: [{plannedSkip: '测试3', plannedArrival: '09:44:57', scheduledArrival: '10:00:00'}], testData2: [{planned: '测试3', plannedArrival: '09:44:57', scheduledArrival: '10:00:00'}],
loading: false, loading: false,
rules: {}, rules: {},
dialogShow: false dialogShow: false,
leftSelect: null
}; };
}, },
computed: { computed: {
@ -139,6 +144,16 @@ export default {
} }
}, },
methods: { methods: {
selectedLeftRow(index) {
this.leftSelect = index;
},
updateData() {
this.testData2.push(this.testData1[this.leftSelect]);
this.testData1.splice(this.leftSelect, 1);
},
rest() {
this.leftSelect = null;
},
doClose() { doClose() {
this.loading = false; this.loading = false;
this.dialogShow = false; this.dialogShow = false;

View File

@ -0,0 +1,215 @@
<template>
<el-dialog
v-dialogDrag
class="xian-02__system warning-confirm"
:title="title"
:visible.sync="show"
width="500px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
center
>
<el-form ref="form" size="small" label-width="120px" :model="addModel" :rules="rules" label-position="left">
<el-row>
<el-col :span="24">
<div style="width: 100%; text-align: center; color: #000;">{{ warningMessage }}</div>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="16">
<el-form-item label="外部名" prop="location">
<el-input v-model="addModel.outsideName" />
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="14">
<el-form-item label="设备识别号">
<el-input v-model="addModel.deviceId" />
</el-form-item>
</el-col>
<el-col :span="9" :offset="1">
<div style="margin-top: 4px;"><el-button>确认</el-button></div>
</el-col>
</el-row>
<el-row style="margin-top: 50px;">
<el-col :span="24">
<el-form-item label="确认ID">
<el-input v-model="addModel.confirmId" />
</el-form-item>
</el-col>
</el-row>
<hr style="height:1px;border:none;border-top:1px solid #555555;width: 492px; position: absolute;left: 3px; margin-top: 0">
<el-row style="margin-top: 20px;">
<el-col :span="24">
<el-form-item label="设备识别号">
<el-input v-model="addModel.deviceId2" />
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="24">
<el-form-item label="设备识别号">
<el-input v-model="addModel.confirmId2" />
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10px;">
<el-col :span="24">
<div style="width: 100%; text-align: center;"><el-button>确认</el-button></div>
</el-col>
</el-row>
<el-row style="margin-top: 10%">
<el-form-item label-width="0" prop="notes">
<el-input v-model="addModel.notes" type="textarea" :rows="3" />
</el-form-item>
</el-row>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="12" :offset="8">
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
<el-button>帮助</el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex';
export default {
name: 'PlatformDwell',
props: {
selected: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
addModel: {
outsideName: '',
deviceId: '',
confirmId: '',
deviceId2: '',
confirmId2: '',
notes: ''
},
warningMessage: '无报警数据',
loading: false,
rules: {},
dialogShow: false,
leftSelect: null
};
},
computed: {
...mapGetters('map', [
'stationList',
'mapConfig'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.StationStand.setStopTime.choose1.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.StationStand.setStopTime.choose2.domId : '';
},
title() {
return '报警确认';
},
speedList() {
const list = [];
for (var i = 0; i * this.speedSpace <= this.maxSpeed; i++) {
list.push(i * this.speedSpace);
}
return list;
}
},
methods: {
selectedLeftRow(index) {
this.leftSelect = index;
},
updateData() {
this.testData2.push(this.testData1[this.leftSelect]);
this.testData1.splice(this.leftSelect, 1);
},
rest() {
this.leftSelect = null;
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
doShow(step, selected) {
this.dialogShow = true;
this.selected = selected;
this.addModel.standCode = selected.code;
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
this.addModel.stationName = station.name;
if ((this.mapConfig.upDirection === 'right' && this.selected.right) || (this.mapConfig.upDirection === 'left' && !this.selected.right)) {
this.addModel.standDirection = '上行站台';
} else {
this.addModel.standDirection = '下行站台';
}
},
cancel() {
this.doClose();
},
commit() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$store.dispatch('menuOperation/pushRequestList', {device: this.selected, operation:{ code: OperationEvent.StationStand.setStopTime.menu.operation, name: '设置站台停站时间'}});
}
// if (valid) {
// const operate = {
// send: true,
// operation: OperationEvent.Command.planTrain.addPlanTrain.operation
// };
// this.loading = true;
// this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
// this.loading = false;
// if (valid) {
// this.doClose();
// } else {
// this.$refs.noticeInfo.doShow(operate);
// }
// }).catch(() => {
// this.loading = false;
// this.doClose();
// this.$refs.noticeInfo.doShow(operate);
// });
// } else {
// return false;
// }
});
}
}
};
</script>
<style lang="scss" scoped>
.transfer_header {
text-align: center;
color: #000;
font-size: 16px;
}
.transfer_body {
height: 180px;
/*overflow-y: scroll;*/
border-top: 2px solid #2F4F50;
border-left: 2px solid #2F4F50;
border-bottom: 2px solid #B7D4D5;
border-right: 2px solid #B7D4D5;
text-align: center;
font-size: 16px;
color: #000;
}
</style>

View File

@ -14,7 +14,7 @@
<menu-limit ref="menuLimit" :selected="selected" /> <menu-limit ref="menuLimit" :selected="selected" />
<passive-contorl ref="passiveControl" /> <passive-contorl ref="passiveControl" />
<menu-station-stand ref="menuStationStand" :selected="selected" @popMenuStationStand="popMenuStationStand" /> <menu-station-stand ref="menuStationStand" :selected="selected" @popMenuStationStand="popMenuStationStand" />
<pop-station-stand ref="popStationStand" :selected="selected" @closeMenuStationStand="closeMenuStationStand" /> <pop-station-stand ref="popStationStand" :selected="selected" @closeMenuStationStand="closeMenuStationStand" @standOperationCallback="standOperationCallback" />
</template> </template>
</div> </div>
</template> </template>
@ -95,6 +95,9 @@ export default {
}, },
closeMenuStationStand() { closeMenuStationStand() {
this.$refs.menuStationStand.doClose(); this.$refs.menuStationStand.doClose();
},
standOperationCallback(val) {
this.$refs.menuStationStand.callback(val);
} }
} }
}; };
@ -168,7 +171,6 @@ export default {
background: #5F9EA0; background: #5F9EA0;
opacity: 1; opacity: 1;
} }
.xian-02__system .el-dialog .el-dialog__title { .xian-02__system .el-dialog .el-dialog__title {
font-size: 16px; font-size: 16px;
color: #fff; color: #fff;
@ -176,7 +178,14 @@ export default {
top: 4px; top: 4px;
left:25px; left:25px;
} }
.xian-02__menus .stand-stop-time .el-dialog .el-dialog__title {
font-size: 16px;
color: #000;
font-weight: bold;
position: absolute;
top: 4px;
left:550px;
}
.xian-02__system .el-dialog .el-dialog__headerbtn { .xian-02__system .el-dialog .el-dialog__headerbtn {
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770); background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid #fff; border: 1px solid #fff;

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" trigger="click" pop-class="xian-02__pop_tip_station" />
<route-selection ref="routeSelection" /> <route-selection ref="routeSelection" />
<route-lock ref="routeLock" /> <route-lock ref="routeLock" />
<route-un-lock ref="routeUnLock" /> <route-un-lock ref="routeUnLock" />
@ -13,7 +13,7 @@
</template> </template>
<script> <script>
import PopMenu from '@/components/PopMenu'; import PopMenu from '@/components/PopMenu/popTip';
import RouteControl from './dialog/routeControl'; import RouteControl from './dialog/routeControl';
import RouteSelection from './dialog/routeSelection'; import RouteSelection from './dialog/routeSelection';
import RouteLock from './dialog/routeLock'; import RouteLock from './dialog/routeLock';
@ -66,21 +66,11 @@ export default {
handler: this.cancelTrainRoute, handler: this.cancelTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
}, },
{
label: '信号重开',
handler: this.reopenSignal,
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
},
{ {
label: '信号机引导办理', label: '信号机引导办理',
handler: this.guide, handler: this.guide,
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
}, },
{
label: '人工解锁进路', //
handler: this.humanTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE
},
{ {
label: '信号封锁', label: '信号封锁',
handler: this.lock, handler: this.lock,
@ -119,7 +109,7 @@ export default {
], ],
Center: [ Center: [
{ {
label: '排列进路', label: '始端/终端选择',
handler: this.arrangementRoute, handler: this.arrangementRoute,
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
}, },
@ -129,37 +119,48 @@ export default {
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
}, },
{ {
label: '人工解锁进路', // label: '开放自动进路',
handler: this.humanTrainRoute,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE
},
{
label: '信号重开',
handler: this.reopenSignal,
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
},
{
label: '进路交人工控',
handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
},
{
label: '进路交自动控',
handler: this.atsAutoControl, handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
}, },
{ {
label: '设置通过模式', label: '关闭自动进路',
handler: this.singalPassModel, handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
}, },
{ {
label: '取消通过模式', label: '终端信号封锁',
handler: this.singalCancelPassModel, handler: this.lock,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
}, },
{ {
label: '查询进路控制状态', label: '终端信号解封',
handler: this.unlock,
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
},
{
label: '设备标签',
children: [
{
label: '创建设备标签',
handler: this.atsAutoControlALL
},
{
label: '查看设备标签',
handler: this.atsAutoControlALL
},
{
label: '更改设备标签',
handler: this.atsAutoControlALL
},
{
label: '删除设备标签',
handler: this.atsAutoControlALL
}
]
},
{
label: '帮助',
handler: this.detail, handler: this.detail,
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
} }
@ -216,7 +217,8 @@ export default {
}; };
}, },
initMenu() { initMenu() {
this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = this.menuNormal.Center;
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce; this.menu = this.menuForce;
@ -321,14 +323,6 @@ export default {
} }
}); });
}, },
//
reopenSignal() {
commitOperate(menuOperate.Signal.reopenSignal, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}
});
},
// //
signalClose() { signalClose() {
commitOperate(menuOperate.Signal.signalClose, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{ commitOperate(menuOperate.Signal.signalClose, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
@ -377,14 +371,6 @@ export default {
} }
}); });
}, },
//
humanTrainRoute() {
commitOperate(menuOperate.Signal.cancelGuide, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.routerCommand.doShow(operate, this.selected, '是否执行人解列车进路命令?');
}
});
},
// //
guide() { guide() {
commitOperate(menuOperate.Signal.guide, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{ commitOperate(menuOperate.Signal.guide, {signalCode:this.selected.code}, 0).then(({valid, operate})=>{

View File

@ -26,7 +26,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="center-table-cell" style="height: 90px;"> <div class="center-table-cell" style="height: 90px;">
<span @click="clickEvent('adjustDwell')">站停时间调整</span><br><span>站台屏蔽门信息确认</span><br><span @contextmenu="menuEvent('updateStandPlan')">更新站台计划</span> <span @click="clickEvent('adjustDwell')">站停时间调整</span><br><span @contextmenu="menuEvent('psdInfoConfirm')">站台屏蔽门信息确认</span><br><span @contextmenu="menuEvent('updateStandPlan')">更新站台计划</span>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -35,10 +35,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="left-table-cell" style="height: 68px;"><span @click="clickEvent('stoppingProfile')">停站曲线</span></div> <div class="left-table-cell" style="height: 68px;"><span>停站曲线</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="center-table-cell" style="height: 68px;"><span @click="clickEvent('northbound')">上行方向</span><br><span @click="clickEvent('southbound')">下行方向</span></div> <div class="center-table-cell" style="height: 68px;"><span @contextmenu="menuEvent('upStopProfile')">上行方向</span><br><span @contextmenu="menuEvent('downStopProfile')">下行方向</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="right-table-cell" style="height: 68px;"><span>&nbsp</span></div> <div class="right-table-cell" style="height: 68px;"><span>&nbsp</span></div>
@ -46,13 +46,13 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="left-table-cell"><span @click="clickEvent()">跳停</span></div> <div class="left-table-cell"><span>跳停</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="center-table-cell"><span @click="clickEvent('stopJumping')">设置/取消 所有列车跳停本站</span></div> <div class="center-table-cell"><span :style="{color: stopJumpColor}" @contextmenu="menuEvent('stopJumping')">设置/取消 所有列车跳停本站</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="right-table-cell"><span @click="clickEvent('allTrainStopJump')">所有列车跳停本站</span></div> <div class="right-table-cell"><span :style="{color: allStopJumpColor}" @contextmenu="menuEvent('allTrainStopJump')">所有列车跳停本站</span></div>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -60,10 +60,10 @@
<div class="left-table-cell"><span @click="clickEvent()">ATS站台扣车</span></div> <div class="left-table-cell"><span @click="clickEvent()">ATS站台扣车</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="center-table-cell"><span @click="clickEvent('standDetain')">设置/取消 所有列车本站扣车</span></div> <div class="center-table-cell"><span :style="{color:standDetainColor}" @contextmenu="menuEvent('standDetain')">设置/取消 所有列车本站扣车</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="right-table-cell"><span @click="clickEvent()">所有列车本站扣车</span></div> <div class="right-table-cell"><span :style="{color:allDetainColor}" @click="clickEvent()">所有列车本站扣车</span></div>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -79,20 +79,20 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="left-table-cell" style="height: 90px;"><span @click="clickEvent()">上行方向驾驶模式禁止</span></div> <div class="left-table-cell" style="height: 90px;"><span>上行方向驾驶模式禁止</span></div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="center-table-cell" style="height: 90px;"> <div class="center-table-cell" style="height: 90px;">
<span @click="clickEvent()">禁止/释放 ATPM模式</span><br> <span @contextmenu="setRuningMode('ATPM', 'up')">禁止/释放 ATPM模式</span><br>
<span @click="clickEvent()">禁止/释放 AM模式</span><br> <span @contextmenu="setRuningMode('AM', 'up')">禁止/释放 AM模式</span><br>
<span @click="clickEvent()">禁止/释放 ATB模式</span> <span @contextmenu="setRuningMode('ATB', 'up')">禁止/释放 ATB模式</span>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="right-table-cell" style="height: 90px;"> <div class="right-table-cell" style="height: 90px;">
<span @click="clickEvent()">ATPM模式已禁止</span><br> <span>ATPM模式已禁止</span><br>
<span @click="clickEvent()">AM模式已禁止</span><br> <span>AM模式已禁止</span><br>
<span @click="clickEvent()">ATB模式已禁止</span> <span>ATB模式已禁止</span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -102,16 +102,16 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="center-table-cell" style="height: 90px;"> <div class="center-table-cell" style="height: 90px;">
<span @click="clickEvent()">禁止/释放 ATPM模式</span><br> <span @contextmenu="setRuningMode('ATPM', 'down')">禁止/释放 ATPM模式</span><br>
<span @click="clickEvent()">禁止/释放 AM模式</span><br> <span @contextmenu="setRuningMode('AM', 'down')">禁止/释放 AM模式</span><br>
<span @click="clickEvent()">禁止/释放 ATB模式</span> <span @contextmenu="setRuningMode('ATB', 'down')">禁止/释放 ATB模式</span>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="right-table-cell" style="height: 90px;"> <div class="right-table-cell" style="height: 90px;">
<span @click="clickEvent()">ATPM模式已禁止</span><br> <span>ATPM模式已禁止</span><br>
<span @click="clickEvent()">AM模式已禁止</span><br> <span>AM模式已禁止</span><br>
<span @click="clickEvent()">ATB模式已禁止</span> <span>ATB模式已禁止</span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -144,7 +144,11 @@ export default {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
position: '', position: '',
title: '' title: '',
standDetainColor: '#FFF',
allDetainColor: '#FFF',
stopJumpColor: '#FFF',
allStopJumpColor: '#FFF'
}; };
}, },
computed: { computed: {
@ -201,6 +205,12 @@ export default {
this.loading = false; this.loading = false;
this.dialogShow = false; this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
if (this.detainInterval) {
clearTimeout(this.detainInterval);
}
if (this.stopJumpInterval) {
clearTimeout(this.stopJumpInterval);
}
}, },
menuEvent(val) { menuEvent(val) {
this.$emit('popMenuStationStand', {position:{x: event.clientX, y: event.clientY}, type:val}); this.$emit('popMenuStationStand', {position:{x: event.clientX, y: event.clientY}, type:val});
@ -262,6 +272,54 @@ 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) {
this.standDetainColor = '#FF0';
if (flag && !this.detainInterval) {
this.detainInterval = setInterval(() => {
if (this.standDetainColor !== '#FF0') {
this.standDetainColor = '#FF0';
} else {
this.standDetainColor = '#000';
}
}, 1000);
}
},
setRuningMode(mode, direction) {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.StationStand.setJumpStop.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: OperationEvent.StationStand.setJumpStop.menu.operation});
// this.$refs.standControl.doShow(step, this.selected);
}
});
},
cancel() { cancel() {
const operate = { const operate = {

View File

@ -1,15 +1,19 @@
<template> <template>
<div> <div>
<pop-menu ref="popMenu" :menu="menu" /> <pop-menu ref="popMenu" :menu="menu" trigger="click" pop-class="xian-02__pop_tip_station" />
<notice-info ref="noticeInfo" /> <notice-info ref="noticeInfo" />
<update-stand-plan ref="updateStandPlan" :selected="selected" /> <update-stand-plan ref="updateStandPlan" :selected="selected" />
<warning-confirm ref="warningConfirm" :selected="selected" />
<stop-profile ref="stopProfile" :selected="selected" />
</div> </div>
</template> </template>
<script> <script>
import PopMenu from '@/components/PopMenu'; import PopMenu from '@/components/PopMenu/popTip';
import NoticeInfo from './dialog/childDialog/childDialog/noticeInfo'; import NoticeInfo from './dialog/childDialog/childDialog/noticeInfo';
import UpdateStandPlan from './dialog/updateStandPlan'; import UpdateStandPlan from './dialog/updateStandPlan';
import WarningConfirm from './dialog/warningConfirm';
import StopProfile from './dialog/stopProfile';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { OperateMode } from '@/scripts/ConstDic'; import { OperateMode } from '@/scripts/ConstDic';
@ -20,7 +24,9 @@ export default {
components: { components: {
PopMenu, PopMenu,
NoticeInfo, NoticeInfo,
UpdateStandPlan UpdateStandPlan,
WarningConfirm,
StopProfile
}, },
props: { props: {
selected: { selected: {
@ -123,7 +129,7 @@ export default {
Center: [ Center: [
{ {
label: '列车跳停本站', label: '列车跳停本站',
handler: this.setStopTime, handler: this.setJumpStop,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
}, },
{ {
@ -170,7 +176,7 @@ export default {
}, },
{ {
label: '扣车', label: '扣车',
handler: this.setStopTime, handler: this.setStandDetain,
cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME cmdType: CMD.Stand.CMD_STAND_SET_PARK_TIME
}, },
{ {
@ -190,12 +196,72 @@ export default {
}, },
{ {
label: '站台停站', label: '站台停站',
handler: '', handler: this.setStopTime,
cmdType: '' cmdType: ''
}, },
{ {
label: '帮助', label: '帮助',
handler: '', handler: this.setStopTime,
cmdType: ''
}
]
},
psdInfoConfirm: {
Local: [],
Center: [
{
label: '站台屏蔽门报警-站台屏蔽门信息确认',
handler: this.setStopTime,
cmdType: ''
},
{
label: '站台屏蔽门报警确认',
handler: this.confirmPsdWarning,
cmdType: ''
},
{
label: '帮助',
handler: this.setStopTime,
cmdType: ''
}
]
},
upStopProfile: {
Local: [],
Center: [
{
label: '站台停站曲线',
handler: this.setStopTime,
cmdType: ''
},
{
label: '站台停站曲线',
handler: this.setUpStopProfile,
cmdType: ''
},
{
label: '帮助',
handler: this.setUpStopProfile,
cmdType: ''
}
]
},
downStopProfile: {
Local: [],
Center: [
{
label: '站台停站曲线',
handler: this.setDownStopProfile,
cmdType: ''
},
{
label: '站台停站曲线',
handler: this.setDownStopProfile,
cmdType: ''
},
{
label: '帮助',
handler: this.setDownStopProfile,
cmdType: '' cmdType: ''
} }
] ]
@ -249,9 +315,18 @@ export default {
case 'standDetain': case 'standDetain':
this.menu = this.standDetain.Center; this.menu = this.standDetain.Center;
break; break;
case 'psdInfoConfirm':
this.menu = this.psdInfoConfirm.Center;
break;
case 'upStopProfile':
this.menu = this.upStopProfile.Center;
break;
case 'downStopProfile':
this.menu = this.downStopProfile.Center;
break;
} }
// this.menu = MenuContextHandler.covert(this.menuNormal); // this.menu = MenuContextHandler.covert(this.menuNormal);
console.log(this.menu, type);
// //
if (this.operatemode === OperateMode.FAULT) { if (this.operatemode === OperateMode.FAULT) {
this.menu = this.menuForce; this.menu = this.menuForce;
@ -335,6 +410,7 @@ export default {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: OperationEvent.StationStand.setJumpStop.menu.operation}); this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: OperationEvent.StationStand.setJumpStop.menu.operation});
// this.$refs.standControl.doShow(step, this.selected); // this.$refs.standControl.doShow(step, this.selected);
this.$emit('standOperationCallback', 'stopJumping');
} }
}); });
}, },
@ -374,6 +450,75 @@ export default {
}).catch(() => { }).catch(() => {
this.$refs.noticeInfo.doShow(step); this.$refs.noticeInfo.doShow(step);
}); });
},
confirmPsdWarning() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.StationStand.setStopTime.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.$refs.warningConfirm.doShow(step, this.selected);
}
}).catch(() => {
this.$refs.noticeInfo.doShow(step);
});
},
setStandDetain() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.StationStand.setDetainTrain.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.$refs.warningConfirm.doShow(step, this.selected);
this.$emit('standOperationCallback', 'standDetain');
}
}).catch(() => {
this.$refs.noticeInfo.doShow(step);
});
},
setUpStopProfile() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.StationStand.setDetainTrain.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.$refs.stopProfile.doShow(step, this.selected, 'up');
}
});
},
setDownStopProfile() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.StationStand.setDetainTrain.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.$refs.stopProfile.doShow(step, this.selected, 'down');
}
});
} }
} }
}; };

View File

@ -1,5 +1,5 @@
<template> <template>
<el-dialog v-dialogDrag class="autoSignal" :title="$t('map.automaticSignalList')" :visible.sync="show" width="85%" :before-do-close="doClose"> <el-dialog v-dialogDrag class="autoSignal" title="停站时间列表" :visible.sync="show" width="85%" :before-do-close="doClose">
<div> <div>
<QueryListPage <QueryListPage
ref="queryListPage" ref="queryListPage"
@ -13,7 +13,6 @@
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { listMap } from '@/api/jmap/mapdraft';
import { getStationParkTimeList, deleteStationParkTime, getStationParkTime } from '@/api/jmap/mapdraft'; import { getStationParkTimeList, deleteStationParkTime, getStationParkTime } from '@/api/jmap/mapdraft';
export default { export default {
@ -29,7 +28,6 @@ export default {
data() { data() {
return { return {
show: false, show: false,
mapList: [],
pagerConfig: { pagerConfig: {
pageSize: 'pageSize', pageSize: 'pageSize',
pageIndex: 'pageNum' pageIndex: 'pageNum'
@ -37,16 +35,9 @@ export default {
queryForm: { queryForm: {
labelWidth: '120px', labelWidth: '120px',
queryObject: { queryObject: {
code: { stationCode: {
type: 'text',
label: this.$t('map.autoSignalCode'),
config: {
data: []
}
},
signalCode: {
type: 'select', type: 'select',
label: this.$t('map.signal'), label: '经停车站',
config: { config: {
data: [] data: []
} }
@ -95,24 +86,17 @@ export default {
}, },
computed: { computed: {
...mapGetters('map', [ ...mapGetters('map', [
'sectionList', 'stationList'
'signalList',
'stationStandList'
]) ])
}, },
watch: {
signalList: function (val, old) {
const list = [];
if (val && val.length) {
for (let i = 0; i < val.length; i++) {
list.push({ label: val[i].uniqueName, value: val[i].code });
}
this.queryForm.queryObject.signalCode.config.data = list;
}
}
},
mounted() { mounted() {
this.acquireMapList(); const list = [];
if (this.stationList && this.stationList.length) {
for (let i = 0; i < this.stationList.length; i++) {
list.push({ label: this.stationList[i].name, value: this.stationList[i].code });
}
this.queryForm.queryObject.stationCode.config.data = list;
}
}, },
methods: { methods: {
doShow() { doShow() {
@ -143,26 +127,6 @@ export default {
return getStationParkTimeList(this.mapInfo.id, params); return getStationParkTimeList(this.mapInfo.id, params);
} }
}, },
acquireMapList() {
//
listMap({ drawWay:true}).then(response => {
this.mapList = response.data;
});
},
afterQuery(data) {
if (data && data.list) {
const that = this;
const list = data.list;
if (list) {
list.map(elem => {
that.$convertSpecifiedField(elem, that.mapList, 'id', 'name', ['mapId']);
elem.code = elem.signalCode;
elem.signalCode = that.formatName(elem.signalCode);
});
}
}
return data;
},
editObj(index, row) { editObj(index, row) {
getStationParkTime(row.id).then(response => { getStationParkTime(row.id).then(response => {
const data = response.data; const data = response.data;

View File

@ -4,7 +4,7 @@
<el-form ref="form" :model="addModel" :rules="rules" label-width="80px" size="mini"> <el-form ref="form" :model="addModel" :rules="rules" label-width="80px" size="mini">
<div class="definition"> <div class="definition">
<el-form-item label="停站车站" prop="stationCode"> <el-form-item label="停站车站" prop="stationCode">
<el-select v-model="addModel.stationCode" clearable :filterable="true"> <el-select v-model="addModel.stationCode" clearable :filterable="true" :disabled="editShow">
<el-option <el-option
v-for="item in stationList" v-for="item in stationList"
:key="item.code" :key="item.code"
@ -13,6 +13,7 @@
/> />
</el-select> </el-select>
<el-button <el-button
:disabled="editShow"
:type=" field === 'parkStationCode' ? 'danger' : 'primary'" :type=" field === 'parkStationCode' ? 'danger' : 'primary'"
@click="hover('parkStationCode')" @click="hover('parkStationCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
@ -60,7 +61,7 @@
<el-button <el-button
type="text" type="text"
size="small" size="small"
@click.native.prevent="deleteSection(addModel.routingSectionList, scope.$index)" @click.native.prevent="deleteSection(addModel.parkingTimeVOList, scope.$index)"
> >
{{ $t('map.remove') }} {{ $t('map.remove') }}
</el-button> </el-button>
@ -162,7 +163,6 @@ export default {
this.sectionCode = val.parkingTimeVOList[0].sectionCode; this.sectionCode = val.parkingTimeVOList[0].sectionCode;
this.parkingTime = val.parkingTimeVOList[0].parkingTime; this.parkingTime = val.parkingTimeVOList[0].parkingTime;
} }
this.editShow = true;
} }
} }
}, },
@ -175,8 +175,17 @@ export default {
formatName(code) { formatName(code) {
return formatName(code); return formatName(code);
}, },
editData() {
this.isSave = false;
this.editShow = true;
},
pushSection(list, data) { pushSection(list, data) {
list.push(data); const index = list.findIndex(elem => { return elem.sectionCode == data.sectionCode; });
if (index < 0) {
list.push(data);
} else {
this.$messageBox('该区段已经在列表中存在');
}
}, },
setSelected(selected) { setSelected(selected) {
if (selected) { if (selected) {
@ -191,6 +200,9 @@ export default {
} }
} }
}, },
deleteSection(list, index) {
list.splice(index, 1);
},
buildModel(code) { buildModel(code) {
const model = Object.assign({}, this.addModel); const model = Object.assign({}, this.addModel);
if (code) { model['code'] = code; } if (code) { model['code'] = code; }
@ -236,9 +248,10 @@ export default {
this.addModel.stationCode = ''; this.addModel.stationCode = '';
this.addModel.parkingTimeVOList = []; this.addModel.parkingTimeVOList = [];
this.sectionCode = ''; this.sectionCode = '';
this.parkingTime = 0; this.parkingTime = 30;
this.addModel.code = ''; this.addModel.code = '';
this.isSave = true; this.isSave = true;
this.editShow = false;
} }
} }
} }

View File

@ -60,7 +60,7 @@ export default {
autoMaticoSelected: function (data) { autoMaticoSelected: function (data) {
this.routeData = data; this.routeData = data;
if (this.$refs && this.$refs.routeEdit) { if (this.$refs && this.$refs.routeEdit) {
this.$refs.routeEdit.isSave = false; this.$refs.routeEdit.editData();
} }
}, },
previewRouteEvent: function () { previewRouteEvent: function () {

View File

@ -55,6 +55,20 @@ export default {
config: { config: {
data: [] data: []
} }
},
startSectionCode: {
type: 'select',
label: '起始区段',
config: {
data: []
}
},
endSectionCode: {
type: 'select',
label: '终到区段',
config: {
data: []
}
} }
} }
}, },
@ -74,7 +88,7 @@ export default {
}, },
{ {
title: this.$t('map.startStationCode'), title: '起始区段',
prop: 'startSectionCode' prop: 'startSectionCode'
}, },
{ {
@ -82,7 +96,7 @@ export default {
prop: 'endStationCode' prop: 'endStationCode'
}, },
{ {
title: this.$t('map.endStationCode'), title: '终到区段',
prop: 'endSectionCode' prop: 'endSectionCode'
}, },
{ {
@ -151,6 +165,16 @@ export default {
this.queryForm.queryObject.startStationCode.config.data = list; this.queryForm.queryObject.startStationCode.config.data = list;
this.queryForm.queryObject.endStationCode.config.data = list; this.queryForm.queryObject.endStationCode.config.data = list;
} }
},
sectionList: function (val, old) {
const list = [];
if (val && val.length) {
val.forEach(elem => {
list.push({ label: this.formatName(elem.code), value: elem.code });
});
this.queryForm.queryObject.startSectionCode.config.data = list;
this.queryForm.queryObject.endSectionCode.config.data = list;
}
} }
}, },
mounted() { mounted() {
@ -218,13 +242,19 @@ export default {
}, },
deleteObj(index, row) { deleteObj(index, row) {
if (this.mapInfo && this.mapInfo.id && row) { if (this.mapInfo && this.mapInfo.id && row) {
// this.$confirm('是否确认删除交路', this.$t('global.tips'), {
deleteRoutingData(row.id).then(response => { confirmButtonText: this.$t('global.confirm'),
this.$message.success(this.$t('map.successfullyDelete')); cancelButtonText: this.$t('global.cancel'),
this.reloadTable(); type: 'warning'
}).catch(() => { }).then(() => {
this.$messageBox(this.$t('map.failDelete')); //
}); deleteRoutingData(row.id).then(response => {
this.$message.success(this.$t('map.successfullyDelete'));
this.reloadTable();
}).catch(() => {
this.$messageBox(this.$t('map.failDelete'));
});
}).catch();
} }
}, },
generateData(index, row) { generateData(index, row) {
@ -234,16 +264,15 @@ export default {
this.$message.success(this.$t('map.generateStationRunDataSuccess')); this.$message.success(this.$t('map.generateStationRunDataSuccess'));
// //
this.reloadTable(); this.reloadTable();
}).catch(() => { }).catch((error) => {
// //
this.$messageBox(this.$t('map.generateStationRunDataFailed')); this.$messageBox(this.$t('map.generateStationRunDataFailed') + ': ' + error.message);
}); });
} }
}, },
sectionDetail(index, row) { sectionDetail(index, row) {
const sectionDict = {}; const sectionDict = {};
const stationDict = {}; const stationDict = {};
this.sectionList.forEach(elem => { sectionDict[elem.code] = elem.name; }); this.sectionList.forEach(elem => { sectionDict[elem.code] = elem.name; });
this.stationList.forEach(elem => { stationDict[elem.code] = elem.name; }); this.stationList.forEach(elem => { stationDict[elem.code] = elem.name; });
@ -257,7 +286,7 @@ export default {
items: [ items: [
{ prop: 'stationCode', label: this.$t('map.stationCodeClomn'), type: 'text' }, { prop: 'stationCode', label: this.$t('map.stationCodeClomn'), type: 'text' },
{ {
prop: 'stationCode', label: this.$t('map.sectionName'), type: 'select', options: stationDict prop: 'stationCode', label: '车站名称', type: 'select', options: stationDict
}, },
{ prop: 'sectionCode', label: this.$t('map.blockCodingClomn'), type: 'text' }, { prop: 'sectionCode', label: this.$t('map.blockCodingClomn'), type: 'text' },
{ {
@ -266,7 +295,7 @@ export default {
] ]
} }
}; };
this.$refs.previewField.doShow(fieldList, row.routingSectionList); this.$refs.previewField.doShow(fieldList, row.parkSectionCodeList);
}, },
reloadTable() { reloadTable() {
if (this.queryList && this.queryList.reload) { if (this.queryList && this.queryList.reload) {

View File

@ -60,7 +60,7 @@ export default {
routingSelected: function (data) { routingSelected: function (data) {
this.routeData = data; this.routeData = data;
if (this.$refs && this.$refs.routeEdit) { if (this.$refs && this.$refs.routeEdit) {
this.$refs.routeEdit.isSave = false; this.$refs.routeEdit.editData();
} }
}, },
previewRouteEvent: function () { previewRouteEvent: function () {

View File

@ -20,8 +20,8 @@
@click="hover('startStationCode')" @click="hover('startStationCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.startSectionColon')" prop="startSectionCode" @change="changeStartSection()"> <el-form-item :label="$t('map.startSectionColon')" prop="startSectionCode">
<el-select v-model="addModel.startSectionCode" clearable :filterable="true"> <el-select v-model="addModel.startSectionCode" clearable :filterable="true" :disabled="editShow" @change="changeStartSection()">
<el-option <el-option
v-for="item in filterSectionList" v-for="item in filterSectionList"
:key="item.code" :key="item.code"
@ -30,12 +30,13 @@
/> />
</el-select> </el-select>
<el-button <el-button
:disabled="editShow"
:type=" field === 'startSectionCode' ? 'danger' : 'primary'" :type=" field === 'startSectionCode' ? 'danger' : 'primary'"
@click="hover('startSectionCode')" @click="hover('startSectionCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.endStationColon')" prop="endStationCode" @change="changeEndStation()"> <el-form-item :label="$t('map.endStationColon')" prop="endStationCode">
<el-select v-model="addModel.endStationCode" clearable :filterable="true"> <el-select v-model="addModel.endStationCode" clearable :filterable="true" :disabled="!isStartSelected" @change="changeEndStation()">
<el-option <el-option
v-for="item in filterStationList" v-for="item in filterStationList"
:key="item.code" :key="item.code"
@ -44,12 +45,13 @@
/> />
</el-select> </el-select>
<el-button <el-button
:disabled="!isStartSelected"
:type=" field === 'endStationCode' ? 'danger' : 'primary'" :type=" field === 'endStationCode' ? 'danger' : 'primary'"
@click="hover('endStationCode')" @click="hover('endStationCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.endSectionColon')" prop="endSectionCode" @change="changeEndSection()"> <el-form-item :label="$t('map.endSectionColon')" prop="endSectionCode">
<el-select v-model="addModel.endSectionCode" clearable :filterable="true"> <el-select v-model="addModel.endSectionCode" clearable :filterable="true" :disabled="editShow || !isStartSelected" @change="changeEndSection()">
<el-option <el-option
v-for="item in filterSectionList" v-for="item in filterSectionList"
:key="item.code" :key="item.code"
@ -58,11 +60,12 @@
/> />
</el-select> </el-select>
<el-button <el-button
:disabled="editShow || !isStartSelected"
:type=" field === 'endSectionCode' ? 'danger' : 'primary'" :type=" field === 'endSectionCode' ? 'danger' : 'primary'"
@click="hover('endSectionCode')" @click="hover('endSectionCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.destinationCode')" prop="destinationCode"> <el-form-item :label="$t('map.destinationCode')" prop="destinationCode" :disabled="editShow">
<el-input v-model="addModel.destinationCode" /> <el-input v-model="addModel.destinationCode" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.routingDirection')" prop="directionCode"> <el-form-item :label="$t('map.routingDirection')" prop="directionCode">
@ -202,6 +205,7 @@ export default {
ViewMode: ViewMode, ViewMode: ViewMode,
field: '', field: '',
allowSelect:false, allowSelect:false,
isStartSelected:false,
stationCode: '', stationCode: '',
sectionCode: '', sectionCode: '',
isSave: true, isSave: true,
@ -272,7 +276,6 @@ export default {
routeData(val, old) { routeData(val, old) {
if (val) { if (val) {
this.addModel = val; this.addModel = val;
this.editShow = true;
} }
} }
}, },
@ -293,21 +296,27 @@ export default {
// }); // });
// } // }
// }, // },
editData() {
this.isSave = false;
this.allowSelect = true;
this.isStartSelected = true;
this.editShow = true;
},
changeStartStation() { changeStartStation() {
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addStartSectionData(); this.addStartSectionData(true);
}, },
changeStartSection() { changeStartSection() {
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addStartSectionData(); this.addStartSectionData(false);
}, },
changeEndStation() { changeEndStation() {
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addEndSectionData(); this.addEndSectionData(true);
}, },
changeEndSection() { changeEndSection() {
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addEndSectionData(); this.addEndSectionData(false);
}, },
judgeAllowSelected() { judgeAllowSelected() {
if (this.addModel.startStationCode != '' && this.addModel.startSectionCode != '' && this.addModel.endStationCode != '' && this.addModel.endSectionCode != '') { if (this.addModel.startStationCode != '' && this.addModel.startSectionCode != '' && this.addModel.endStationCode != '' && this.addModel.endSectionCode != '') {
@ -316,14 +325,15 @@ export default {
this.allowSelect = false; this.allowSelect = false;
} }
}, },
addStartSectionData() { addStartSectionData(isStation) {
if (this.addModel.startStationCode != '' && this.addModel.startSectionCode != '') { if (this.addModel.startStationCode != '' && this.addModel.startSectionCode != '') {
this.pushSection({stationCode: this.addModel.startStationCode, sectionCode: this.addModel.startSectionCode}, 'top'); this.isStartSelected = true;
this.pushSection({stationCode: this.addModel.startStationCode, sectionCode: this.addModel.startSectionCode}, 'top', isStation);
} }
}, },
addEndSectionData() { addEndSectionData(isStation) {
if (this.addModel.endStationCode != '' && this.addModel.endSectionCode != '') { if (this.addModel.endStationCode != '' && this.addModel.endSectionCode != '') {
this.pushSection({stationCode: this.addModel.endStationCode, sectionCode: this.addModel.endSectionCode}, 'bottom'); this.pushSection({stationCode: this.addModel.endStationCode, sectionCode: this.addModel.endSectionCode}, 'bottom', isStation);
} }
}, },
hover(field) { hover(field) {
@ -337,19 +347,19 @@ export default {
if (selected._type.toUpperCase() === 'Station'.toUpperCase() && this.field.toUpperCase() === 'startStationCode'.toUpperCase()) { if (selected._type.toUpperCase() === 'Station'.toUpperCase() && this.field.toUpperCase() === 'startStationCode'.toUpperCase()) {
this.addModel.startStationCode = selected.code; this.addModel.startStationCode = selected.code;
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addStartSectionData(); this.addStartSectionData(true);
} else if (selected._type.toUpperCase() === 'Station'.toUpperCase() && this.field.toUpperCase() === 'endStationCode'.toUpperCase()) { } else if (selected._type.toUpperCase() === 'Station'.toUpperCase() && this.field.toUpperCase() === 'endStationCode'.toUpperCase()) {
this.addModel.endStationCode = selected.code; this.addModel.endStationCode = selected.code;
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addEndSectionData(); this.addEndSectionData(true);
} else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'startSectionCode'.toUpperCase()) { } else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'startSectionCode'.toUpperCase()) {
this.addModel.startSectionCode = selected.code; this.addModel.startSectionCode = selected.code;
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addStartSectionData(); this.addStartSectionData(false);
} else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'endSectionCode'.toUpperCase()) { } else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'endSectionCode'.toUpperCase()) {
this.addModel.endSectionCode = selected.code; this.addModel.endSectionCode = selected.code;
this.judgeAllowSelected(); this.judgeAllowSelected();
this.addEndSectionData(); this.addEndSectionData(false);
this.addModel.destinationCode = selected.destinationCode || ''; this.addModel.destinationCode = selected.destinationCode || '';
} else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() == 'routingSection'.toUpperCase()) { } else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() == 'routingSection'.toUpperCase()) {
this.sectionCode = selected.code; this.sectionCode = selected.code;
@ -358,7 +368,7 @@ export default {
} }
} }
}, },
pushSection(data, type) { pushSection(data, type, isStation) {
const list = this.addModel.parkSectionCodeList; const list = this.addModel.parkSectionCodeList;
if (data && data.stationCode && data.sectionCode) { if (data && data.stationCode && data.sectionCode) {
const index = list.findIndex(elem => { return elem.sectionCode == data.sectionCode; }); const index = list.findIndex(elem => { return elem.sectionCode == data.sectionCode; });
@ -367,16 +377,52 @@ export default {
if (index < 0) { if (index < 0) {
list.splice(list.length - 1, 0, data); list.splice(list.length - 1, 0, data);
} else { } else {
this.$messageBox(this.$t('tip.routeSameID')); this.$messageBox('该区段已经在交路区段中存在');
} }
break; break;
} }
case 'top': { case 'top': {
list.splice(0, 1, data); if (isStation) {
list.splice(0, 1, data);
} else {
if (index < 0) {
list.splice(0, 1, data);
} else {
if (index == list.length - 1) {
this.$messageBox('起始区段和终到区段不能相同');
this.addModel.startSectionCode = list[0].sectionCode;
} else {
this.$messageBox('该区段已经在交路区段中存在');
}
}
}
break; break;
} }
case 'bottom': { case 'bottom': {
list.splice(list.length, 1, data); if (isStation) {
if (list.length >= 2) {
list.splice(list.length - 1, 1, data);
} else {
if (index < 0) {
list.push(data);
}
}
} else {
if (index < 0) {
if (list.length >= 2) {
list.splice(list.length - 1, 1, data);
} else {
list.push(data);
}
} else {
if (index == 0) {
this.$messageBox('起始区段和终到区段不能相同');
this.addModel.endSectionCode = list[list.length - 1].sectionCode;
} else {
this.$messageBox('该区段已经在交路区段中存在');
}
}
}
break; break;
} }
default: { default: {
@ -448,6 +494,9 @@ export default {
this.stationCode = ''; this.stationCode = '';
this.sectionCode = ''; this.sectionCode = '';
this.isSave = true; this.isSave = true;
this.allowSelect = false;
this.isStartSelected = false;
this.editShow = false;
} }
} }
} }

View File

@ -69,7 +69,7 @@ export default {
}, },
{ {
title: this.$t('map.startStationCode'), title: '起始区段',
prop: 'startSectionCode' prop: 'startSectionCode'
}, },
{ {
@ -77,7 +77,7 @@ export default {
prop: 'endStationCode' prop: 'endStationCode'
}, },
{ {
title: this.$t('map.endStationCode'), title: '终到区段',
prop: 'endSectionCode' prop: 'endSectionCode'
}, },
{ {
@ -89,7 +89,10 @@ export default {
}, },
{ {
title: '站间距离', title: '站间距离',
prop: 'distance' prop: 'distance',
type: 'tag',
columnValue: (row) => { return row.distance + ' m'; },
tagType: (row) => { return 'success'; }
}, },
{ {
title: '第一等级时间', title: '第一等级时间',

View File

@ -60,7 +60,7 @@ export default {
routingSelected: function (data) { routingSelected: function (data) {
this.routeData = data; this.routeData = data;
if (this.$refs && this.$refs.routeEdit) { if (this.$refs && this.$refs.routeEdit) {
this.$refs.routeEdit.isSave = false; this.$refs.routeEdit.editData();
} }
}, },
previewRouteEvent: function () { previewRouteEvent: function () {

View File

@ -19,7 +19,7 @@
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.startSectionColon')" prop="startSectionCode"> <el-form-item :label="$t('map.startSectionColon')" prop="startSectionCode">
<el-select v-model="addModel.startSectionCode" clearable :filterable="true"> <el-select v-model="addModel.startSectionCode" clearable :filterable="true" :disabled="editShow">
<el-option <el-option
v-for="item in filterSectionList" v-for="item in filterSectionList"
:key="item.code" :key="item.code"
@ -28,6 +28,7 @@
/> />
</el-select> </el-select>
<el-button <el-button
:disabled="editShow"
:type=" field === 'startSectionCode' ? 'danger' : 'primary'" :type=" field === 'startSectionCode' ? 'danger' : 'primary'"
@click="hover('startSectionCode')" @click="hover('startSectionCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
@ -47,7 +48,7 @@
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('map.endSectionColon')" prop="endSectionCode"> <el-form-item :label="$t('map.endSectionColon')" prop="endSectionCode">
<el-select v-model="addModel.endSectionCode" clearable :filterable="true"> <el-select v-model="addModel.endSectionCode" clearable :filterable="true" :disabled="editShow">
<el-option <el-option
v-for="item in filterSectionList" v-for="item in filterSectionList"
:key="item.code" :key="item.code"
@ -56,6 +57,7 @@
/> />
</el-select> </el-select>
<el-button <el-button
:disabled="editShow"
:type=" field === 'endSectionCode' ? 'danger' : 'primary'" :type=" field === 'endSectionCode' ? 'danger' : 'primary'"
@click="hover('endSectionCode')" @click="hover('endSectionCode')"
>{{ $t('map.activate') }}</el-button> >{{ $t('map.activate') }}</el-button>
@ -206,8 +208,6 @@ export default {
routeData(val, old) { routeData(val, old) {
if (val) { if (val) {
this.addModel = val; this.addModel = val;
this.display = true;
this.editShow = true;
this.runLevelId = ''; this.runLevelId = '';
if (val.id) { if (val.id) {
this.runLevelId = val.id; this.runLevelId = val.id;
@ -247,12 +247,16 @@ export default {
const endStation = this.$store.getters['map/getDeviceByCode'](this.addModel.endStationCode); const endStation = this.$store.getters['map/getDeviceByCode'](this.addModel.endStationCode);
this.addModel.distance = Math.abs(startStation.kmRange - endStation.kmRange); this.addModel.distance = Math.abs(startStation.kmRange - endStation.kmRange);
}, },
editData() {
this.isSave = false;
this.editShow = true;
this.display = true;
},
generateLevel() { // generateLevel() { //
this.$refs.form.validate(async (valid) => { this.$refs.form.validate(async (valid) => {
if (valid) { if (valid) {
postGenerateLevel(this.addModel).then(res=>{ postGenerateLevel(this.addModel).then(res=>{
if (res.code == 200) { if (res.code == 200) {
this.display = 2;
this.addModel.l1 = res.data.l1; this.addModel.l1 = res.data.l1;
this.addModel.l2 = res.data.l2; this.addModel.l2 = res.data.l2;
this.addModel.l3 = res.data.l3; this.addModel.l3 = res.data.l3;
@ -321,8 +325,7 @@ export default {
clear() { clear() {
if (this.$refs && this.$refs.form && this.mapInfo) { if (this.$refs && this.$refs.form && this.mapInfo) {
this.$refs.form.resetFields(); this.$refs.form.resetFields();
this.display = 1; this.display = false;
this.editShow = false;
this.addModel = { this.addModel = {
mapId: this.mapInfo.id, mapId: this.mapInfo.id,
code: setUID('RunLevel'), code: setUID('RunLevel'),
@ -339,6 +342,7 @@ export default {
l5: 0 l5: 0
}; };
this.loading = false; this.loading = false;
this.editShow = false;
} }
}, },
hover(field) { hover(field) {