This commit is contained in:
ival 2021-04-15 16:26:19 +08:00
commit f1f2013b27
5 changed files with 416 additions and 45 deletions

View File

@ -0,0 +1,91 @@
<template>
<div style="height: 100%;">
<big-route-draft
ref="routeEdit"
:selected="selected"
:map-info="mapInfo"
:route-data="routeData"
@setCenter="setCenter"
/>
<!-- <route-detail ref="routeDetail" :map-info="mapInfo" @routeSelected="routeSelected" /> -->
</div>
</template>
<script>
import BigRouteDraft from './route';
// import BigRouteDetail from './detail';
export default {
name: 'BigRouteOperate',
components: {
BigRouteDraft
// BigRouteDetail
},
props: {
mapInfo: {
type: Object,
default() {
return null;
}
},
selected: {
type: Object,
default() {
return null;
}
}
},
data() {
return {
enabledTab: 'Route',
routeData: null
};
},
methods: {
clickEvent(e, model) {
this.onSelect(model);
},
onSelect(model) {
if (model) {
this.selected = model;
} else {
this.selected = null;
}
},
setDelayUnlockStatus(data, status) {
if (data && data.delayShowList) {
data.delayShowList.forEach(elem => {
elem.status = status;
});
}
},
routeSelected: function (data) {
this.routeData = data;
if (this.$refs && this.$refs.routeEdit) {
this.$refs.routeEdit.isSave = !data.id;
}
},
previewRouteEvent: function () {
if (this.$refs && this.$refs.routeDetail) {
this.$refs.routeDetail.doShow();
}
},
initLoad() {
this.$refs.routeEdit && this.$refs.routeEdit.initLoad();
},
createRouteEvent: function () {
if (this.$refs && this.$refs.routeEdit) {
this.$refs.routeEdit.clear();
}
},
setSelected(selected) {
this.$refs.routeEdit.setSelected(selected);
},
setCenter(code) {
this.$emit('setCenter', code);
},
batchSectionListFocus(flag) {
this.$refs.routeEdit.batchSectionListFocus(flag);
}
}
};
</script>

View File

@ -0,0 +1,276 @@
<template>
<div class="BigRouteInfo">
<el-form ref="form" :model="addModel" :rules="rules" label-width="140px" size="mini" class="bigDefinition">
<el-form-item v-if="isModify" label="编号:" prop="code">
<el-input v-model="addModel.code" style="width: 220px;" disabled />
</el-form-item>
<el-form-item label="名称:" prop="name">
<el-input v-model="addModel.name" style="width: 220px;" />
</el-form-item>
<el-form-item label="始端信号机:" prop="startSignalCode">
<el-select v-model="addModel.startSignalCode" clearable filterable :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in signalList"
:key="item.code"
:label="`${item.name}(${item.code})`"
:value="item.code"
/>
</el-select>
<el-button
:type=" field === 'startSignalCode' ? 'danger' : 'primary'"
@click="hover('startSignalCode')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item label="信号显示:" prop="signalAspect">
<el-select v-model="addModel.signalAspect" filterable :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in signalAspectList"
:key="item.value"
:label="`${item.label}`"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="起始区段:" prop="startSectionCode">
<el-select v-model="addModel.startSectionCode" clearable filterable :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in signalList"
:key="item.code"
:label="`${item.name}(${item.code})`"
:value="item.code"
/>
</el-select>
<el-button
:type=" field === 'startSectionCode' ? 'danger' : 'primary'"
@click="hover('startSectionCode')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item label="终到区段:" prop="endSectionCode">
<el-select v-model="addModel.endSectionCode" clearable filterable :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in signalList"
:key="item.code"
:label="`${item.name}(${item.code})`"
:value="item.code"
/>
</el-select>
<el-button
:type=" field === 'endSectionCode' ? 'danger' : 'primary'"
@click="hover('endSectionCode')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item label="途经道岔位置:" prop="pathSwitchPosition.switchCode">
<el-select v-model="addModel.pathSwitchPosition.switchCode" clearable filterable :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in switchList"
:key="item.code"
:label="`${item.name}(${item.code})`"
:value="item.code"
/>
</el-select>
<el-button
:type=" field === 'pathSwitch' ? 'danger' : 'primary'"
@click="hover('pathSwitch')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item prop="normal">
<el-select v-model="addModel.pathSwitchPosition.normal" :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in SwitchLocateTypeList"
:key="item.value"
:label="`${item.label}`"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="排列进路按钮:" prop="btnCodeList">
<el-select v-model="addModel.btnCodeList" clearable filterable multiple :placeholder="$t('map.pleaseSelect')">
<el-option
v-for="item in btnList"
:key="item.code"
:label="`${item.name}(${item.code})`"
:value="item.code"
/>
</el-select>
<el-button
:type=" field === 'btnCode' ? 'danger' : 'primary'"
@click="hover('btnCode')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<!-- -->
<!-- -->
</el-form>
<div class="bigDraft">
<el-button-group class="bigDraftBtn">
<el-button v-if="!isModify" type="primary" size="small" :loading="loading" @click="save">保存进路</el-button>
<el-button v-else type="warning" size="small" :loading="loading" @click="update">更新进路</el-button>
</el-button-group>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
name:'BigRouteInfo',
props: {
selected: {
type: Object,
default() {
return null;
}
},
mapInfo: {
type: Object,
default() {
return null;
}
},
routeData: {
type: Object,
default() {
return null;
}
}
},
data() {
return {
field: '',
loading: false,
isModify:false,
signalAspectList:[
{label:'红', value:1},
{label:'绿', value:2},
{label:'黄', value:3},
{label:'黄红', value:4},
{label:'绿绿', value:5},
{label:'绿黄', value:6},
{label:'黄黄', value:7},
{label:'黄闪黄', value:8},
{label:'白红', value:9},
{label:'蓝', value:10},
{label:'白', value:11},
{label:'红闪', value:12}
],
SwitchLocateTypeList: [
{ label: '定位', value: true },
{ label: '反位', value: false }
],
addModel:{
code:'',
name:'',
startSignalCode:'',
signalAspect:1,
startSectionCode:'',
endSectionCode:'',
pathSwitchPosition:{
switchCode:'',
normal:true
},
btnCodeList:[]
},
rules: {
'name': [
{ required: true, message: '请输入名称', trigger: 'blur' }
],
'startSignalCode':[
{ required: true, message: '请选择始端信号机', trigger: 'blur' },
{ required: true, message: '请选择始端信号机', trigger: 'change' }
],
'signalAspect':[
{ required: true, message: '请选择信号显示', trigger: 'blur' },
{ required: true, message: '请选择信号显示', trigger: 'change' }
],
'startSectionCode':[
{ required: true, message: '请选择起始区段', trigger: 'blur' },
{ required: true, message: '请选择起始区段', trigger: 'change' }
],
'endSectionCode':[
{ required: true, message: '请选择终到区段', trigger: 'blur' },
{ required: true, message: '请选择终到区段', trigger: 'change' }
],
'pathSwitchPosition.switchCode':[
{ required: true, message: '请选择途经道岔', trigger: 'blur' },
{ required: true, message: '请选择途经道岔', trigger: 'change' }
],
'btnCodeList':[
{ required: true, message: '请选择排列进路按钮', trigger: 'blur' },
{ required: true, message: '请选择排列进路按钮', trigger: 'change' }
]
}
};
},
computed: {
...mapGetters('map', [
'sectionList',
'switchList',
'signalList',
'signalButtonList'
]),
btnList() {
return [...this.signalList, ...this.signalButtonList];
}
},
methods:{
hover(field) {
this.field = field === this.field ? '' : field;
},
setSelected(selected) {
if (selected) {
if (selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
if ( this.field.toUpperCase() === 'startSignalCode'.toUpperCase()) {
this.addModel.startSignalCode = selected.code;
this.field = '';
} else if (this.field.toUpperCase() === 'btnCode'.toUpperCase()) {
if (this.addModel.btnCodeList.indexOf(selected.code) === -1) {
this.addModel.btnCodeList.push(selected.code);
}
}
} else if (selected._type.toUpperCase() === 'Section'.toUpperCase()) {
if (this.field.toUpperCase() === 'startSectionCode'.toUpperCase()) {
this.addModel.startSectionCode = selected.code;
this.field = '';
} else if (this.field.toUpperCase() === 'endSectionCode'.toUpperCase()) {
this.addModel.endSectionCode = selected.code;
this.field = '';
}
} else if (selected._type.toUpperCase() === 'Switch'.toUpperCase() && this.field.toUpperCase() === 'pathSwitch'.toUpperCase()) {
this.addModel.pathSwitchPosition.switchCode = selected.code;
this.field = '';
} else if (selected._type.toUpperCase() === 'SignalButton'.toUpperCase() && this.field.toUpperCase() === 'btnCode'.toUpperCase()) {
if (this.addModel.btnCodeList.indexOf(selected.code) === -1) {
this.addModel.btnCodeList.push(selected.code);
}
}
}
},
save() {
this.$refs.form.validate((valid) => {
if (valid) {
// this.loading = true;
}
});
},
update() {
}
}
};
</script>
<style lang="scss" scoped>
.BigRouteInfo{
height: 100%;
overflow:auto;
}
.bigDefinition{
}
.bigDraft{
position: absolute;
bottom: 0;
background: #fff;
box-shadow: 4px 5px 10px #565656;
width: 100%;
padding: 8px 10px;
}
.bigDraftBtn{float: right;}
</style>

View File

@ -29,30 +29,32 @@
</template>
<script>
import RouteOperate from './routeoperate/index';
// import RouteOperate from './routeoperate/index';
import RoutingOperate from './routingoperate/index';
import AutomaticOperate from './automaticoperate/index';
import BigRoutingOperate from './bigroutingoperate/index';
// import AutomaticOperate from './automaticoperate/index';
// import PathOperate from './pathoperate/index';
import RunLevelOperate from './runLeveloperate/index';
import SignalOperate from './signaloperate/index';
import TurnedOperate from './turnedoperate/index';
import FlankProtectOperate from './flankProtectOperate/index';
import DwellTimeOperate from './dwellTimeOperate/index';
import DestinationOperate from './destinationOperate/index';
// import RunLevelOperate from './runLeveloperate/index';
// import SignalOperate from './signaloperate/index';
// import TurnedOperate from './turnedoperate/index';
// import FlankProtectOperate from './flankProtectOperate/index';
// import DwellTimeOperate from './dwellTimeOperate/index';
// import DestinationOperate from './destinationOperate/index';
export default {
name: 'DataRelation',
components: {
RouteOperate,
// RouteOperate,
RoutingOperate,
AutomaticOperate,
RunLevelOperate,
FlankProtectOperate,
BigRoutingOperate
// AutomaticOperate,
// RunLevelOperte,
// FlankProtectOperate
// PathOperate,
SignalOperate,
TurnedOperate,
DwellTimeOperate,
DestinationOperate
// SignalOperate,
// TurnedOperate,
// DwellTimeOperate
// DestinationOperate
},
props: {
selected: {
@ -68,16 +70,18 @@ export default {
},
data() {
return {
enabledTab: 'route',
enabledTab: 'bigRoutingOperate',
oldDevice: null,
lazy: true,
tabList:[
{label: this.$t('map.routeID'), name:'route', menus:RouteOperate},
{label: '侧防', name:'flankProtect', menus:FlankProtectOperate},
{label: '自动折返', name:'turned', menus:TurnedOperate},
{label: '目的地码', name:'destination', menus:DestinationOperate},
{label: this.$t('map.automaticSignal'), name:'automatic', menus:AutomaticOperate},
{label: this.$t('map.signalApprochSection'), name:'signal', menus:SignalOperate},
// {label: this.$t('map.routeID'), name:'route', menus:RouteOperate},
// {label: '', name:'turned', menus:TurnedOperate},
// {label: '', name:'destination', menus:DestinationOperate},
// {label: this.$t('map.automaticSignal'), name:'automatic', menus:AutomaticOperate},
// {label: this.$t('map.signalApprochSection'), name:'signal', menus:SignalOperate},
{label: '大铁进路', name:'bigRoutingOperate', menus:BigRoutingOperate},
// {label: '', name:'flankProtect', menus:FlankProtectOperate},
{label: this.$t('map.routing'), name:'routing', menus:RoutingOperate}
// {label: '', name:'dwellTime', menus:DwellTimeOperate},
// {label: '', name:'runLevel', menus:RunLevelOperate}

View File

@ -7,9 +7,9 @@
@refresh="refresh"
@dispatchDialog="dispatchDialog"
@loadingRunPlan="loadingRunPlan"
@checkIsLoadRunPlan="checkIsLoadRunPlan"
@modifyRunPlanName="modifyRunPlanName"
/>
<!-- @checkIsLoadRunPlan="checkIsLoadRunPlan" -->
<div class="scheduleIn">
<schedule
ref="schedule"
@ -119,7 +119,7 @@ export default {
}, 5000 * 60);
this.loadRunPlanName = this.$route.query.planName;
if (this.$route.query.mapId) {
this.refreshRunPlanList(true);
// this.refreshRunPlanList(true);
await this.loadMap();
}
},
@ -181,9 +181,9 @@ export default {
refresh() {
this.$store.dispatch('runPlan/refresh');
},
refreshRunPlanList(firstLoad) {
// refreshRunPlanList(firstLoad) {
},
// },
doClose() {
this.$emit('doClose');
},
@ -192,7 +192,7 @@ export default {
this.loadRunPlanName = param.planName;
},
checkIsLoadRunPlan(planId) {
this.refreshRunPlanList(planId === this.loadRunPlanId);
// this.refreshRunPlanList(planId === this.loadRunPlanId);
},
modifyRunPlanName() {
if (this.loadRunPlanId && this.loadRunPlanName) {

View File

@ -609,23 +609,23 @@ export default {
loadingRunPlan(param) {
this.$emit('loadingRunPlan', param);
},
deleteRunPlanOperate(param) {
//
this.$confirm(this.$t('planMonitor.openRunPlan.confirmDeleteRunPlan'), this.$t('tip.hint'), {
confirmButtonText: this.$t('tip.confirm'),
cancelButtonText: this.$t('tip.cancel'),
type: 'warning'
}).then(() => {
deleteRunPlan(param.planId).then(Response => {
this.$message.success(this.$t('planMonitor.openRunPlan.deleteSuccess'));
this.$emit('checkIsLoadRunPlan', param.planId);
}).catch(() => {
this.$messageBox(this.$t('tip.deleteOperationGraphFailed'));
});
}).catch(() => {
this.$message.error('删除运行图失败!');
});
},
// deleteRunPlanOperate(param) {
// //
// this.$confirm(this.$t('planMonitor.openRunPlan.confirmDeleteRunPlan'), this.$t('tip.hint'), {
// confirmButtonText: this.$t('tip.confirm'),
// cancelButtonText: this.$t('tip.cancel'),
// type: 'warning'
// }).then(() => {
// deleteRunPlan(param.planId).then(Response => {
// this.$message.success(this.$t('planMonitor.openRunPlan.deleteSuccess'));
// this.$emit('checkIsLoadRunPlan', param.planId);
// }).catch(() => {
// this.$messageBox(this.$t('tip.deleteOperationGraphFailed'));
// });
// }).catch(() => {
// this.$message.error('');
// });
// },
publishRunPlan(param) {
this.$confirm(this.$t('tip.publishRunPlanTips'), this.$t('tip.hint'), {
confirmButtonText: this.$t('tip.confirm'),