315 lines
13 KiB
Vue
315 lines
13 KiB
Vue
<template>
|
||
<el-dialog class="fuzhou-01__schedule add-task" :title="title" :visible.sync="dialogShow" width="1000px"
|
||
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
|
||
<div style="margin: 10px">
|
||
<el-row>
|
||
<el-col :span="4">
|
||
<el-row>
|
||
<el-col :span="9">
|
||
<span>车次号:</span>
|
||
</el-col>
|
||
<el-col :span="15">
|
||
<el-select style="display: inline-black" v-model="model.tripNumber" placeholder="请选择">
|
||
<el-option v-for="item in tripNumberList" :key="item.value" :label="item.label"
|
||
:value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="2">
|
||
<el-row>
|
||
<el-col :offset="4">
|
||
<el-checkbox v-model="model.trainManual">手工</el-checkbox>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="5">
|
||
<el-row>
|
||
<el-col :span="12">
|
||
<span>缺省停站时间:</span>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-select style="display: inline-black" v-model="model.time" placeholder="请选择">
|
||
<el-option v-for="item in timeList" :key="item.value" :label="item.label"
|
||
:value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="5">
|
||
<el-row>
|
||
<el-col :span="9" :offset="2">
|
||
<span>表号:</span>
|
||
</el-col>
|
||
<el-col :span="13">
|
||
<el-input v-model="model.serviceNumber"></el-input>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-row>
|
||
<el-col :span="22" :offset="2">
|
||
<el-row>
|
||
<el-col :span="6">
|
||
<el-checkbox v-model="model.clearGuest">清客</el-checkbox>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-checkbox v-model="model.continuationPlan">延续计划</el-checkbox>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-checkbox v-model="model.firstTrain">首班车</el-checkbox>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="4">
|
||
<el-row>
|
||
<el-col :span="9">
|
||
<span>序列号:</span>
|
||
</el-col>
|
||
<el-col :span="15">
|
||
<el-select style="display: inline-black" v-model="model.serialNumber" placeholder="请选择">
|
||
<el-option v-for="item in serialNumberList" :key="item.value" :label="item.label"
|
||
:value="model.value">
|
||
</el-option>
|
||
</el-select>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="2">
|
||
<el-row>
|
||
<el-col :offset="4">
|
||
<el-checkbox v-model="model.serialManual">手工</el-checkbox>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="5">
|
||
<el-row>
|
||
<el-col :span="12">
|
||
<span>缺省运行等级:</span>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-select style="display: inline-black" v-model="model.level" placeholder="请选择">
|
||
<el-option v-for="item in levelList" :key="item.value" :label="item.label"
|
||
:value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="5">
|
||
<el-row>
|
||
<el-col :span="9" :offset="2">
|
||
<span>开始时间:</span>
|
||
</el-col>
|
||
<el-col :span="13">
|
||
<el-time-select v-model="model.startTime" placeholder="选择时间" :clearable="false">
|
||
</el-time-select>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-row>
|
||
<el-col :span="22" :offset="2">
|
||
<el-row>
|
||
<el-col :span="6">
|
||
<el-checkbox v-model="model.inStock">入库</el-checkbox>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-checkbox v-model="model.outStock">出库</el-checkbox>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-checkbox v-model="model.lastTrain">末班车</el-checkbox>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row style="margin-bottom: 5px;">
|
||
交路:
|
||
</el-row>
|
||
<el-row>
|
||
<el-table :data="model.route" border :height="140">
|
||
<el-table-column prop="beginStationCode" label="起始站">
|
||
<template slot-scope="scope">
|
||
{{ formatName(scope.row.beginStationCode) }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="beginStationStandCode" label="起始站台">
|
||
</el-table-column>
|
||
<el-table-column prop="endStationCode" label="终到站">
|
||
<template slot-scope="scope">
|
||
{{ formatName(scope.row.endStationCode) }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="endStationStandCode" label="终到站台">
|
||
</el-table-column>
|
||
<el-table-column prop="describe" label="描述" :width="280">
|
||
</el-table-column>
|
||
<el-table-column :width="40">
|
||
</el-table-column>
|
||
</el-table>
|
||
</el-row>
|
||
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
|
||
详情:
|
||
</el-row>
|
||
<el-row>
|
||
<el-table :data="model.detail" border :height="140">
|
||
<el-table-column prop="stationCode" label="站台" :width="160">
|
||
<template slot-scope="scope">
|
||
{{ formatName(scope.row.stationCode) }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="startTime" label="到点">
|
||
<template slot-scope="scope">
|
||
{{ formatTime(scope.row.startTime) }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="stopTime" label="停站时间">
|
||
<template slot-scope="scope">
|
||
{{ formatTime(scope.row.stopTime) }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="endTime" label="发点">
|
||
<template slot-scope="scope">
|
||
{{ formatTime(scope.row.endTime) }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="level" label="运行等级">
|
||
</el-table-column>
|
||
<el-table-column width="280">
|
||
</el-table-column>
|
||
</el-table>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :offset="16">
|
||
<el-checkbox v-model="model.default">显示默认停站时间和运行等级</el-checkbox>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
<el-row type="flex" justify="center" class="button-group">
|
||
<el-button @click="commit">确 定</el-button>
|
||
<el-button @click="doClose">取 消</el-button>
|
||
</el-row>
|
||
</el-dialog>
|
||
</template>
|
||
|
||
<script>
|
||
import { formatTime, formatName } from '@/utils/runPlan';
|
||
|
||
export default {
|
||
name: 'ModifyingTask',
|
||
components: {
|
||
},
|
||
data() {
|
||
return {
|
||
dialogShow: false,
|
||
loading: false,
|
||
model: {
|
||
tripNumber: '',
|
||
serialNumber: '',
|
||
trainManual: false,
|
||
serialManual: false,
|
||
clearGuest: false,
|
||
continuationPlan: false,
|
||
firstTrain: false,
|
||
lastTrain: false,
|
||
inStock: false,
|
||
outStock: false,
|
||
startTime: '',
|
||
route: [],
|
||
detail: []
|
||
},
|
||
timeList: [],
|
||
levelList: [],
|
||
tripNumberList: [],
|
||
serialNumberList: [],
|
||
}
|
||
},
|
||
computed: {
|
||
title() {
|
||
return '修改任务'
|
||
}
|
||
},
|
||
mounted() {
|
||
},
|
||
methods: {
|
||
formatTime(time) {
|
||
return formatTime(time);
|
||
},
|
||
formatName(code) {
|
||
return formatName(code);
|
||
},
|
||
loadInitData(params) {
|
||
this.model.tripNumber = params.tripNumber;
|
||
this.model.serviceNumber = params.serviceNumber;
|
||
let editData = this.$store.state.runPlan.editData[params.serviceNumber]
|
||
if (editData) {
|
||
let tripNumberList = Object.keys(editData.trainMap).sort((a, b) => { return editData.trainMap[a].oldIndex - editData.trainMap[b].oldIndex });
|
||
let trainInfo = editData.trainMap[params.tripNumber];
|
||
let lastIndex = trainInfo.stationTimeList.length - 1;
|
||
let taskObj = {
|
||
tripNumber: params.tripNumber,
|
||
beginStationCode: trainInfo.stationTimeList[0].stationCode,
|
||
beginStationStandCode: '',
|
||
endStationCode: trainInfo.stationTimeList[lastIndex].stationCode,
|
||
endStationStandCode: ''
|
||
}
|
||
this.model.route.push(taskObj);
|
||
|
||
trainInfo.stationTimeList.forEach((elem, index) => {
|
||
let stationObj = {
|
||
stationCode: elem.stationCode,
|
||
startTime: index == 0 ? null : trainInfo.stationTimeList[index - 1].secondTime,
|
||
stopTime: index == 0 ? null : elem.secondTime - trainInfo.stationTimeList[index - 1].secondTime,
|
||
endTime: elem.secondTime,
|
||
level: '',
|
||
}
|
||
this.model.detail.push(stationObj);
|
||
})
|
||
}
|
||
},
|
||
doShow(params) {
|
||
this.loadInitData(params);
|
||
this.dialogShow = true;
|
||
},
|
||
doClose() {
|
||
this.loading = false;
|
||
this.dialogShow = false;
|
||
},
|
||
commit() {
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||
@import "src/styles/mixin.scss";
|
||
|
||
|
||
|
||
/deep/ {
|
||
.el-button {
|
||
margin-left: 40px !important;
|
||
margin-right: 40px !important;
|
||
}
|
||
|
||
.el-row {
|
||
margin-bottom: 5px !important;
|
||
}
|
||
|
||
.el-input__inner {
|
||
height: 20px !important;
|
||
line-height: 20px !important;
|
||
}
|
||
|
||
.el-input {
|
||
width: 110px !important;
|
||
}
|
||
}
|
||
</style> |