<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 '@/utils/runPlan';

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>
