This commit is contained in:
fan 2022-06-21 13:21:33 +08:00
commit 80361b40a5
8 changed files with 309 additions and 14 deletions

View File

@ -14,7 +14,8 @@ const mapDeviceStyle = {
'13': 'race_01', // 2020国赛线路 '13': 'race_01', // 2020国赛线路
'14':'nanjing_02', // 南京二号线 '14':'nanjing_02', // 南京二号线
'15': 'datie_01', // 大铁线路一 '15': 'datie_01', // 大铁线路一
'16': 'datie_02' // 大铁线路二 '16': 'datie_02', // 大铁线路二
'17':'datie_tky' // 铁科院大铁线路
}; };
export function selectLineCode(code) { export function selectLineCode(code) {

View File

@ -0,0 +1,148 @@
import defaultStyle from '../defaultStyle';
import deviceType from '../../constant/deviceType';
class SkinCode extends defaultStyle {
constructor() {
super();
this.fontFamily = '宋体';
this[deviceType.Section] = {
elemnetType:['name', 'line', 'separator', 'badShunt', 'derailer'],
name: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 10, // 文字离区段距离
fontSize: 12, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: 'rgb(192,192,192)', // 字体颜色 (银白)
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle', // 文字垂直对齐方式
approachColor: '#FFFFFF'
},
logicText: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 12, // 文字离区段距离
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: '#FFFFFF', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle' // 文字垂直对齐方式
},
line: {
z: 0,
width: 3, // 区段宽度
beyondWidth: 0, // 区段宽超出宽度
invadeColor: '#FF0000', // 区段侵入颜色 (红色)
spareColor: 'rgb(85,120,182)', // 区段空闲颜色 (浅蓝)
communicationOccupiedColor: '#FF0000', // 区段通信车占用颜色 (红色)
unCommunicationOccupiedColor: '#FF0000', // 区段非通讯车占用颜色 (红色)
routeLockColor: '#FFFFFF', // 区段进路锁定颜色 (白色)
faultLockColor: '#006400', // 区段故障锁定颜色
undefinedColor: '#0071C1', // 区段未定义颜色
blockColor: '#00FF00', // 区段封锁颜色
atcExcisionColor: '#A0522D', // 区段atc切除颜色
atsExcisionColor: '#A0522D', // 区段ats切除颜色
timeReleaseColor: '#3F3F3F', // 区段延时释放颜色
protectiveLockColor: '#FFFF00', // 区段保护锁闭
protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
logicalTextColor: '#C0C0C0', // 逻辑区段名称颜色 (未用)
invalidColor: '#B18E38' // 区段ARB故障颜色
}
};
this[deviceType.Signal] = {
distance: 10
};
this[deviceType.Psd] = {
elemnetType:['safetyDoorNormal'],
safetyDoorNormal: { // 屏蔽门
z:0,
height: 3, // 站台屏蔽门高度
distance: 8, // 站台和屏蔽门之间的距离
defaultColor: '#00FF00', // 屏蔽门默认颜色
splitDoorColor: '#C00808' // 屏蔽门切除颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
}
};
this[deviceType.StationStand] = {
// 站台元素 站台
elemnetType:['lineStand'],
// 站台
lineStand:{
// 层级
z:0,
spareColor: '#02cc3d', // 站台空闲颜色
lineWidth:2 // 线宽
// jumpStopColor: '#808080', // 站台跳停颜色
// designatedJumpStopColor: '#808080', // 站台指定列车跳停颜色
// headFontSize: 10, // 站台首端字体大小
// stopColor: '#FFF000' // 站台列车停站颜色
},
common: { // 通用属性
textFontSize: 10, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件prdType
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
}
};
this[deviceType.Station] = {
// 车站元素 车站名称
elemnetType:['stationText'],
stationText:{
z:0,
fontWeight:'normal', // 字体粗细
textPadding:[0, 0], // 字体边距
borderColor:'', // 字体边框颜色
textBorderWidth:0 // 字体边框宽度
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
}
};
this[deviceType.Switch] = {
text: {
show: true, // 道岔名称显示
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
offset: {x: 5, y: -10}, // 道岔名称与区段距离
fontSize: 11, // 字体大小
fontColor: '#fff', // 道岔名称颜色
fontWeight: 'normal', // 字体粗细
borderColor: '#FE0000', // 道岔边框颜色
lossColor: '#C00808', // 道岔失去颜色
locateColor: '#00FF00', // 道岔定位颜色
inversionColor: '#FFFF00', // 道岔反位颜色
monolockLocationColor: '#00FF00', // 道岔单锁'定位'颜色 (绿色)
monolockInversionColor: '#FFFF00', // 道岔单锁'反位'颜色 (黄色)
faultFlashing: false // 故障闪烁
}
};
this[deviceType.Train] = {
};
}
}
export default new SkinCode();

View File

@ -0,0 +1,5 @@
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default {
list: [
]
};

View File

@ -51,7 +51,8 @@ class Theme {
'13': 'race_01', '13': 'race_01',
'14': 'nanjing_02', // 南京二号线 '14': 'nanjing_02', // 南京二号线
'15': 'datie_01', '15': 'datie_01',
'16': 'datie_02' '16': 'datie_02',
'17': 'datie_tky'
}; };
this._runplan = { this._runplan = {
@ -71,7 +72,8 @@ class Theme {
'13': 'race_01', '13': 'race_01',
'14': 'nanjing_02', // 南京二号线 '14': 'nanjing_02', // 南京二号线
'15': 'datie_01', '15': 'datie_01',
'16': 'datie_02' '16': 'datie_02',
'17': 'datie_tky'
}; };
this._localShowMode = { // 现地显示模式 this._localShowMode = { // 现地显示模式
@ -90,7 +92,8 @@ class Theme {
'13':'all', '13':'all',
'14':'ecStation', '14':'ecStation',
'15':'all', '15':'all',
'16':'ecStation' '16':'ecStation',
'17': 'all'
}; };
} }

View File

@ -94,19 +94,14 @@
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button> <el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
</el-col> </el-col>
</el-row> </el-row>
<notice-info ref="noticeInfo" pop-class="datie-02__systerm" />
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default { export default {
name: 'TrainSetPlan', name: 'AddRunPlan',
components: {
NoticeInfo
},
data() { data() {
var validateTripNumber = (rule, value, callback) => { var validateTripNumber = (rule, value, callback) => {
if (value) { if (value) {

View File

@ -2,13 +2,13 @@
<div class="stationTrack" :style="{ height: height+'px' }"> <div class="stationTrack" :style="{ height: height+'px' }">
<!-- {{ '车站股道' }} --> <!-- {{ '车站股道' }} -->
<div class="stationTrackL"> <div class="stationTrackL">
<terminal-station-list ref="terminalStationList" /> <terminal-station-list ref="terminalStationList" @loadStationData="loadStationData" />
</div> </div>
<div class="stationTrackR"> <div class="stationTrackR">
<div class="stationTrackRMenu"> <div class="stationTrackRMenu">
<div class="stationTrackRMenuL"> <div class="stationTrackRMenuL">
<!-- :id="domIdConfirm" :loading="loading" @click="commit"--> <!-- :id="domIdConfirm" :loading="loading" @click="commit"-->
<el-button class="stationTrackButton" size="small">修改</el-button> <el-button class="stationTrackButton" size="small" @click="modifySection">修改</el-button>
</div> </div>
<div class="stationTrackRMenuR"> <div class="stationTrackRMenuR">
<span class="stationTrackRVer">版本号</span> <span class="stationTrackRVer">版本号</span>
@ -27,6 +27,8 @@
height="600px" height="600px"
highlight-current-row highlight-current-row
style="border:1px #ccc solid;width:1103px" style="border:1px #ccc solid;width:1103px"
@row-click="selectedSection"
@row-dblclick="rowDbClick"
> >
<!-- @cell-click="selectedTripNumber" --> <!-- @cell-click="selectedTripNumber" -->
<!-- @current-change="handleCurrentChange" --> <!-- @current-change="handleCurrentChange" -->
@ -88,18 +90,25 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<!-- -->
<track-information ref="trackInformation" @noticeInfo="noticeInfo" />
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex';
import TerminalStationList from './terminalStationList'; import TerminalStationList from './terminalStationList';
import TrackInformation from './trackInformation';
export default { export default {
name:'StationTrack', name:'StationTrack',
components: { components: {
TerminalStationList TerminalStationList,
TrackInformation
}, },
data() { data() {
return { return {
height: this.$store.state.app.height - 61, height: this.$store.state.app.height - 61,
currentStationCode:'',
filterSectionMap:{},
tableData:[ tableData:[
{trackName:'IG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'无', allowEMU:'否', waterEquip:'无', {trackName:'IG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'无', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否'}, sewageEquip:'无', military:'否'},
@ -108,11 +117,50 @@ export default {
] ]
}; };
}, },
computed:{
...mapGetters('map', [
'sectionList'
])
},
methods:{ methods:{
loadStation() { loadStation() {
this.$refs.terminalStationList.loadStation(); this.$refs.terminalStationList.loadStation();
}, },
loadStationData(stationCode) { loadStationData(stationCode) {
this.currentStationCode = stationCode;
this.filterSectionMap = {};
this.sectionList.forEach(section=>{
if (section.standTrack && section.belongStation == this.currentStationCode) {
this.filterSectionMap[section.code] = {code:section.code, name:section.name};
}
});
this.handleData();
},
handleData() {
this.tableData = [
{trackName:'IG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'无', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否'},
{trackName:'IIG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'低', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否' }
];
},
rowDbClick(row, column, event) {
this.currentRow = row;
this.modifySection();
},
selectedSection(row, column, event) {
this.currentRow = row;
},
modifySection() {
if (this.currentRow) {
this.$refs.trackInformation.doShow({
row:this.currentRow,
filterSectionMap:this.filterSectionMap
});
}
},
noticeInfo() {
this.$emit('noticeInfo');
} }
} }
}; };
@ -165,4 +213,11 @@ export default {
padding-bottom: 5px; padding-bottom: 5px;
border-color: #a5a5a5; border-color: #a5a5a5;
} }
// .el-table__body tr.current-row>td
// .el-table__body tr.current-row>td
// #runplanContentTable .el-table__body tr.current-row>td .el-input--mini .el-input__inner{
#stationTrackTableIn .el-table__body tr.current-row>td{
background-color: #6aa8ec;
color: #fff;
}
</style> </style>

View File

@ -0,0 +1,88 @@
<template>
<el-dialog
v-dialogDrag
class="datie-02__systerm"
:title="title"
:visible.sync="show"
width="560px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<div style="text-align:right;display:inline-block;width:100%;">
<div style="display:inline-block">
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
</div>
<div style="display:inline-block">
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default {
name: 'AddRunPlan',
data() {
return {
dialogShow: false,
loading: false
};
},
computed: {
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.CTCCommand.addTrainFixedPath.menu.domId : '';
},
title() {
return '股道信息';
}
},
methods:{
doShow({row, filterSectionMap}) {
this.filterSectionList = Object.values(filterSectionMap);
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
},
commit() {
// this.$refs.form.validate((valid) => {
// if (valid) {
// this.loading = true;
// const param = {stationCode:this.addModel.stationCode, runPlanParamList:[this.addModel]};
// commitOperate(menuOperate.CTC.addTrainFixedPath, param, 3).then(({valid})=>{
// if (valid) {
// this.doClose();
// }
// }).catch(() => {
// this.doClose();
// this.$emit('noticeInfo');
// });
// }
// });
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => { this.doClose(); });
}
}
};
</script>