调整临时限速绘图逻辑,调整宁波线车次窗流程操作

This commit is contained in:
zyy 2020-03-03 12:57:26 +08:00
parent 79734147e8
commit 8729905299
10 changed files with 304 additions and 184 deletions

View File

@ -118,7 +118,7 @@ class SkinCode extends defaultStyle {
distance: 5, // 限速线距离区段距离
lineColor: '#C0C000', // 限速线颜色 (黄色透明光)
nameBackground: '#C0C000', // 限速名称背景颜色
nameShow: true, // 名称显示
nameShow: false, // 名称显示
nameNumberColor: '#C00808', // 限速值颜色
nameNumberFontSize: 11, // 限速值大小
kilometerColor: '#fff', // 公里标颜色

View File

@ -2,10 +2,11 @@ import Group from 'zrender/src/container/Group';
import BezierCurve from 'zrender/src/graphic/shape/BezierCurve';
import Line from 'zrender/src/graphic/shape/Line';
import JTriangle from '../../utils/JTriangle';
import Vue from 'vue';
// import Path from 'zrender/src/graphic/Path';
// 创建区段限速限集合
// export const ELimitLines = Path.extend({
// export default const ELimitLines = Path.extend({
// type: 'ELimitLines',
// shape: {
// points: null
@ -114,23 +115,21 @@ export default class ELimitLines extends Group {
}
}));
} else {
// const beg = Object.assign({}, model.points[0]);
// const end = Object.assign({}, model.points[model.points.length - 1]);
const swPadding = model.style.Switch.core.length; // 定位和反位时区段距离岔芯的距离
var switchWidth = model.style.Section.line.width + model.style.Section.line.beyondWidth; // 道岔宽度
const beg = Object.assign({}, model.points[0]);
const end = Object.assign({}, model.points[model.points.length - 1]);
if (model.isSwitchSection && beg.y !== end.y) {
const swch = model.switch;
if (swch) {
const swch = Vue.prototype.$jlmap.mapDevice[model.switch.code]; // 获取道岔model 及状态数据
if (swch && swch.instance) {
const traingle = new JTriangle(swch.intersection, swch.skew);
if ((swch.intersection.x === beg.x) && (swch.intersection.y === beg.y)) {
if ((swch.intersection.x === beg.x) && (swch.intersection.y === beg.y) && !swch.normalPosition && swch.sectionCCode == model.code) {
beg.x = beg.x + traingle.drictx * (swPadding + switchWidth) * traingle.getCotRate();
beg.y = beg.y + traingle.dricty * (swPadding + switchWidth);
}
if ((swch.intersection.x === end.x) && (swch.intersection.y === end.y)) {
if ((swch.intersection.x === end.x) && (swch.intersection.y === end.y) && swch.normalPosition && swch.sectionCCode == model.code) {
end.x = end.x + traingle.drictx * (swPadding + switchWidth) * traingle.getCotRate();
end.y = end.y + traingle.dricty * (swPadding + switchWidth);
}

View File

@ -192,6 +192,7 @@ export default class Section extends Group {
position: [x, -y],
style: style,
switch: model.switch,
code: model.code,
isSwitchSection: model.switchSection,
relSwitchCode: model.relSwitchCode,
isCurve: model.curve, // 是否曲线
@ -203,6 +204,7 @@ export default class Section extends Group {
position: [-x, y],
style: style,
switch: model.switch,
code: model.code,
isSwitchSection: model.switchSection,
relSwitchCode: model.relSwitchCode,
isCurve: model.curve, // 是否曲线
@ -801,6 +803,7 @@ export default class Section extends Group {
/** 区段切除*/
model.cutOff && this.sectionCutOff();
/** 是否限速*/
// model.speedUpLimit = 1;
model.speedUpLimit && this.setSpeedUpperLimit();
/** 道岔区段更新岔心颜色 */
if (model.type === '03' && model.switch) {

View File

@ -82,7 +82,7 @@ export default {
return this.dialogShow ? OperationEvent.Train.addTrainId.menu.domId : '';
},
title() {
return '定义车组号';
return '设置车体号';
}
},
mounted() {

View File

@ -82,7 +82,7 @@ export default {
return this.dialogShow ? OperationEvent.Train.addTrainId.menu.domId : '';
},
title() {
return '移车组号';
return '车组号';
}
},
mounted() {

View File

@ -11,23 +11,23 @@
:close-on-click-modal="false"
>
<el-row>
<el-col :span="12">车组号</el-col>
<el-col :span="11">车组号</el-col>
<el-col :span="11" :offset="2">服务号</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="11">
<el-input :id="domIdInput" v-model="addModel.groupNumber" @change="inputGroupNumber" />
</el-col>
<el-col :span="11" :offset="2">
<el-input :id="domIdInput" v-model="addModel.groupNumber" @change="inputGroupNumber" />
</el-col>
</el-row>
<el-row>
<el-col :span="12">目的地号</el-col>
<el-col :span="11" :offset="1">车次号</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-input v-model="addModel.targetCode" :disabled="true" />
</el-col>
<el-col :span="11" :offset="1">
<el-input v-model="addModel.tripNumber" :disabled="true" />
<el-input v-model="addModel.targetCode" />
</el-col>
</el-row>
<el-row justify="center" class="button-group">

View File

@ -11,14 +11,22 @@
:close-on-click-modal="false"
>
<el-row>
<el-col :span="12">车组号</el-col>
<el-col :span="11" :offset="1">车次号</el-col>
<el-col :span="11">车组号</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-col :span="11">
<el-input v-model="addModel.groupNumber" />
</el-col>
<el-col :span="11" :offset="1">
</el-row>
<el-row>
<el-col :span="11">服务号</el-col>
<el-col :span="11" :offset="2">序列号</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-input v-model="addModel.groupNumber" />
</el-col>
<el-col :span="11" :offset="2">
<el-input :id="domIdInput" v-model="addModel.tripNumber" @change="inputGroupNumber" />
</el-col>
</el-row>

View File

@ -11,7 +11,7 @@
:close-on-click-modal="false"
>
<el-row>
<el-col :span="6">车组号:</el-col>
<el-col :span="6" style="line-height: 44px;">车组号:</el-col>
<el-col :span="18">
<el-input :id="domIdInput" v-model="addModel.groupNumber" @change="inputGroupNumber" />
</el-col>

View File

@ -0,0 +1,175 @@
<template>
<el-dialog
v-dialogDrag
class="ningbo-01__systerm train-set-work"
:title="title"
:visible.sync="show"
width="320px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<el-row>
<el-col :span="6">车组号:</el-col>
</el-row>
<el-row>
<el-col :span="18">
<el-input :id="domIdInput" v-model="addModel.groupNumber" @change="inputGroupNumber" />
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-radio v-model="radio" label="01">标记ATP切除</el-radio>
</el-col>
<el-col :span="11" :offset="2">
<el-radio v-model="radio" label="02">标记APT恢复</el-radio>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
</el-col>
<el-col :span="8" :offset="5">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" />
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
import NoticeInfo from './childDialog/childDialog/noticeInfo';
export default {
name: 'TrainSetWork',
components: {
NoticeInfo
},
data() {
return {
trainNoList: [],
selected: null,
addModel: {
groupNumber: ''
},
radio: '01',
dialogShow: false,
loading: false
};
},
computed: {
...mapGetters('map', [
'stationStandList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdInput() {
return this.dialogShow ? OperationEvent.Train.editTrainId.input.domId : '';
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Train.editTrainId.menu.domId : '';
},
title() {
return 'ATP切除功能';
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
//
if (!this.dialogShow) {
const section = this.$store.getters['map/getDeviceByCode'](selected.sectionCode);
if (section) {
const station = this.$store.getters['map/getDeviceByCode'](section.stationCode);
if (station) {
this.addModel.stationName = station.name;
}
}
this.addModel.trainWindowCode = selected.code;
}
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);
this.mouseCancelState(this.selected);
},
inputGroupNumber() {
const operate = {
type: MapDeviceType.Train.type,
operation: OperationEvent.Train.editTrainId.input.operation,
val: this.addModel.tripNumber
};
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
commit() {
const operate = {
send: true,
type: MapDeviceType.Train.type,
operation: OperationEvent.Train.editTrainId.menu.operation,
val: this.addModel.tripNumber
};
this.loading = true;
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
this.doClose();
}
}).catch(() => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow(operate);
});
},
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 rel="stylesheet/scss" lang="scss" scoped>
/deep/ .el-row {
margin: 10px
}
.ningbo-01__systerm .el-dialog .base-label {
// background: rgba(0, 0, 0, x);
position: relative;
left: -5px;
top: -18px;
padding: 0 5px;
background-color: #F0F0F0;
}
</style>

View File

@ -5,14 +5,14 @@
<train-delete ref="trainDelete" />
<train-define ref="trainDefine" />
<train-move ref="trainMove" />
<train-edit ref="trainEdit" />
<!-- <train-edit ref="trainEdit" /> -->
<train-set-plan ref="trainSetPlan" />
<train-add-plan ref="trainAddPlan" />
<train-move-evently ref="trainMoveEvently" />
<train-delete-plan ref="trainDeletePlan" />
<!-- <train-move-evently ref="trainMoveEvently" /> -->
<!-- <train-delete-plan ref="trainDeletePlan" /> -->
<train-set-head ref="trainSetHead" />
<train-set-work ref="trainSetWork" />
<train-flag ref="trainFlag" />
<trainSetWorkATP ref="trainSetWorkATP" />
</div>
</template>
@ -23,14 +23,15 @@ import { MenuDisabledState, menuConvert, trainMenuFiltration } from './utils/men
import TrainDelete from './dialog/trainDelete';
import TrainDefine from './dialog/trainDefine';
import TrainMove from './dialog/trainMove';
import TrainEdit from './dialog/trainEdit';
// import TrainEdit from './dialog/trainEdit';
import TrainSetPlan from './dialog/trainSetPlan';
import TrainAddPlan from './dialog/trainAddPlan';
import TrainMoveEvently from './dialog/trainMoveEvently';
import TrainDeletePlan from './dialog/trainDeletePlan';
// import TrainMoveEvently from './dialog/trainMoveEvently';
// import TrainDeletePlan from './dialog/trainDeletePlan';
import TrainSetHead from './dialog/trainSetHead';
import TrainSetWork from './dialog/trainSetWork';
import TrainFlag from './dialog/trainFlag';
import trainSetWorkATP from './dialog/trainSetWorkATP';
// import TrainFlag from './dialog/trainFlag';
import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
@ -46,14 +47,14 @@ export default {
TrainDelete,
TrainDefine,
TrainMove,
TrainEdit,
// TrainEdit,
TrainSetPlan,
TrainAddPlan,
TrainMoveEvently,
TrainDeletePlan,
// TrainMoveEvently,
// TrainDeletePlan,
TrainSetHead,
TrainSetWork,
TrainFlag
trainSetWorkATP
},
props: {
selected: {
@ -68,101 +69,19 @@ export default {
menu: [],
menuNormal: {
Local: [
{
{
label: '设置车组号',
handler: this.addTrainId,
cmdType: ''
},
{
label: '删除车组号',
handler: this.delTrainId,
cmdType: ''
},
// {
// label: '',
// handler: this.editTrainId,
// cmdType: ''
// },
{
label: '移动车组号',
handler: this.moveTrainId,
cmdType: ''
},
{
type: 'separator'
},
{
label: '设置计划车',
handler: this.setPlanTrain,
cmdType: ''
},
// {
// label: '',
// handler: this.setHeadTrain,
// cmdType: ''
// },
// {
// label: '',
// handler: this.setWorkTrain,
// cmdType: ''
// },
// {
// type: 'separator'
// },
{
label: '新建计划车',
handler: this.addPlanTrain,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
// {
// label: '',
// handler: this.deletePlanTrain,
// cmdType: ''
// },
// {
// label: '',
// handler: this.moveEventlyTrain,
// cmdType: ''
// },
// {
// type: 'separator'
// },
// {
// label: '',
// handler: this.trainToFlag,
// cmdType: ''
// },
// {
// label: '',
// handler: this.trainUnFlag,
// cmdType: ''
// },
// {
// type: 'separator'
// },
// {
// label: '',
// handler: this.undeveloped,
// cmdType: ''
// }
],
Center: [
{
label: '设置车组号',
handler: this.addTrainId,
// handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '删除车组号',
handler: this.delTrainId,
// handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '移动车组号',
handler: this.moveTrainId,
// handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
@ -176,24 +95,20 @@ export default {
{
label: '设置计划车',
handler: this.setPlanTrain,
// handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '设置头码车',
handler: this.setHeadTrain,
// handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '设置人工车',
handler: this.setWorkTrain,
// handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '设乘务组号',
// handler: this.setHeadTrain,
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
@ -202,14 +117,85 @@ export default {
},
{
label: '标记ATP切除',
handler: this.undeveloped,
handler: this.setTrainATPdel,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '标记ATP恢复',
handler: this.setTrainATPRec,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
{
label: '旅行冲突列车',
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '列车信息',
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
}
],
Center: [
{
label: '设置车组号',
handler: this.addTrainId,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '删除车组号',
handler: this.delTrainId,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '移动车组号',
handler: this.moveTrainId,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '新建计划车',
handler: this.addPlanTrain,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
{
label: '设置计划车',
handler: this.setPlanTrain,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '设置头码车',
handler: this.setHeadTrain,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '设置人工车',
handler: this.setWorkTrain,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '设乘务组号',
handler: this.undeveloped,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
{
label: '标记ATP切除',
handler: this.setTrainATPdel,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
label: '标记ATP恢复',
handler: this.setTrainATPRec,
cmdType: CMD.TrainWindow.CMD_Train_Init_Plan
},
{
type: 'separator'
},
@ -365,7 +351,7 @@ export default {
}
});
},
//
//
addTrainId() {
const operate = {
start: true,
@ -383,7 +369,7 @@ export default {
}
});
},
//
//
delTrainId() {
const operate = {
start: true,
@ -400,7 +386,7 @@ export default {
}
});
},
//
//
moveTrainId() {
const operate = {
start: true,
@ -417,23 +403,6 @@ export default {
}
});
},
//
editTrainId() {
const operate = {
start: true,
code: this.selected.code,
operation: OperationEvent.Train.editTrainId.menu.operation,
param: {
sectionCode: this.$store.state.map.trainWindowSectionCode
}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainEdit.doShow(operate, this.selected);
}
});
},
//
setPlanTrain() {
const operate = {
@ -451,7 +420,7 @@ export default {
}
});
},
//
// ()
addPlanTrain() {
const step = {
start: true,
@ -469,40 +438,6 @@ export default {
}
});
},
//
moveEventlyTrain() {
const operate = {
start: true,
code: this.selected.code,
operation: OperationEvent.Train.moveEventlyTrainId.menu.operation,
param: {
sectionCode: this.$store.state.map.trainWindowSectionCode
}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainMoveEvently.doShow(operate, this.selected);
}
});
},
//
deletePlanTrain() {
const operate = {
start: true,
code: this.selected.code,
operation: OperationEvent.Train.deletePlanTrainId.menu.operation,
param: {
sectionCode: this.$store.state.map.trainWindowSectionCode
}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainDeletePlan.doShow(operate, this.selected);
}
});
},
//
setHeadTrain() {
const operate = {
@ -537,8 +472,8 @@ export default {
}
});
},
//
trainToFlag() {
// ATP
setTrainATPdel() {
const operate = {
start: true,
code: this.selected.code,
@ -550,12 +485,12 @@ export default {
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainFlag.doShow(operate, this.selected);
this.$refs.trainSetWorkATP.doShow(operate, this.selected);
}
});
},
//
trainUnFlag() {
// ATP
setTrainATPRec() {
const operate = {
start: true,
code: this.selected.code,
@ -567,7 +502,7 @@ export default {
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.trainFlag.doShow(operate, this.selected);
this.$refs.trainSetWorkATP.doShow(operate, this.selected);
}
});
}