rt-sim-training-client/src/views/planSchedule/statusBar.vue
2021-03-17 13:35:15 +08:00

110 lines
3.5 KiB
Vue

<template>
<data-table
id="PlanStatusBar"
ref="dataTable"
:height="height-11"
:config="stationListConfig"
:close="false"
:style="{top: maxmini? maxTop-110+'px':maxTop-21+'px'}"
@touch="touch"
/>
</template>
<script>
import DataTable from './menusPlan/components/dataTable';
import { formatTime, formatName } from '@/jmapNew/theme/parser/util.js';
export default {
name: 'PlanStatusBar',
components: {
DataTable
},
props: {
maxTop: {
type: Number,
required: true
}
},
data() {
return {
maxmini: true,
height: 100,
stationListConfig: {
data: [],
showClose: true,
highlightCurrentRow: true,
columns: [
{
prop: 'stationName',
label: '站台',
width: 400
},
{
prop: 'endTime',
label: '到点'
},
{
prop: 'stopTime',
label: '停站时间'
},
{
prop: 'startTime',
label: '发点'
},
{
prop: 'level',
label: '运行等级'
}
]
}
};
},
watch: {
'$store.state.runPlan.selected': function (select) {
this.stationListConfig.data = [];
if (select) {
const serviceObj = this.$store.state.runPlan.editData[select.serviceNumber];
if (serviceObj) {
const trainMap = serviceObj.trainMap;
if (trainMap) {
const trainObj = trainMap[select.tripNumber];
if (trainObj) {
const stationTimeList = trainObj.stationTimeList;
if (stationTimeList && stationTimeList.length) {
for (var i = 0; i < stationTimeList.length; i += 2) {
const stationObj = {
stationName: formatName(stationTimeList[i].stationCode),
endTime : formatTime(i == 0 ? null : stationTimeList[i].secondTime + 7200),
stopTime: formatTime(i == 0 ? null : stationTimeList[i + 1].secondTime - stationTimeList[i].secondTime),
startTime: formatTime(stationTimeList[i + 1].secondTime + 7200),
level:formatTime(i == (stationTimeList.length - 2) ? null : (stationTimeList[i + 2].secondTime - stationTimeList[i + 1].secondTime))
};
this.stationListConfig.data.push(stationObj);
}
}
}
}
}
}
}
},
methods: {
touch(maxmini) {
this.maxmini = maxmini;
this.$emit('setPosition');
}
}
};
</script>
<style scoped rel="stylesheet/scss" lang="scss">
@import "src/styles/mixin.scss";
#PlanStatusBar {
z-index: 5;
position: absolute;
width: 100%;
}
</style>