desc: 调整琏计划导入excel, 样式, 流程
This commit is contained in:
parent
bdfd65eadb
commit
01c97f45ae
@ -227,5 +227,7 @@ export default {
|
|||||||
startTime: 'Start time',
|
startTime: 'Start time',
|
||||||
endTime: 'End time',
|
endTime: 'End time',
|
||||||
editPlanningTrain: 'Edit planning train',
|
editPlanningTrain: 'Edit planning train',
|
||||||
runGraphName: 'Run graph name'
|
runGraphName: 'Run graph name',
|
||||||
|
tipOperationTime: '请先设置区段站间运行时间, 【文件】-> 【修改站间运行时间】',
|
||||||
|
serverTrainNum: '表号车次号'
|
||||||
};
|
};
|
||||||
|
@ -230,5 +230,7 @@ export default {
|
|||||||
task: '任务',
|
task: '任务',
|
||||||
startTime: '起始时间',
|
startTime: '起始时间',
|
||||||
endTime: '终到时间',
|
endTime: '终到时间',
|
||||||
editPlanningTrain: '编辑计划车'
|
editPlanningTrain: '编辑计划车',
|
||||||
|
tipOperationTime: '请先设置区段站间运行时间, 【文件】-> 【修改站间运行时间】',
|
||||||
|
serverTrainNum: '表号车次号'
|
||||||
};
|
};
|
||||||
|
@ -137,8 +137,9 @@ export default {
|
|||||||
lastPoint = train.stationTimeList[idx - 1];
|
lastPoint = train.stationTimeList[idx - 1];
|
||||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[1];
|
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[1];
|
||||||
num = this.computedReentryNumber(train.tripNumber);
|
num = this.computedReentryNumber(train.tripNumber);
|
||||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true, num), lastPoint.stationCode]);
|
const aa = `${train.directionCode}${train.tripNumber}`;
|
||||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, nextPoint, train.directionCode, true, num), nextPoint.stationCode]);
|
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true, num), lastPoint.stationCode, aa]);
|
||||||
|
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, nextPoint, train.directionCode, true, num), nextPoint.stationCode, aa]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 如果是备用车,按车次添加线*/
|
/** 如果是备用车,按车次添加线*/
|
||||||
|
@ -122,7 +122,6 @@
|
|||||||
import XLSX from 'xlsx';
|
import XLSX from 'xlsx';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { importRunPlan } from '@/api/runplan';
|
import { importRunPlan } from '@/api/runplan';
|
||||||
import { importData } from '../planConvert';
|
|
||||||
import { launchFullscreen } from '@/utils/screen';
|
import { launchFullscreen } from '@/utils/screen';
|
||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
|
|
||||||
|
@ -118,8 +118,9 @@ export default {
|
|||||||
lastPoint = train.stationTimeList[idx - 1];
|
lastPoint = train.stationTimeList[idx - 1];
|
||||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[1];
|
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[1];
|
||||||
num = this.computedReentryNumber(train.tripNumber);
|
num = this.computedReentryNumber(train.tripNumber);
|
||||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true, num), lastPoint.stationCode]);
|
const aa = `${train.directionCode}${train.tripNumber}`;
|
||||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, nextPoint, train.directionCode, true, num), nextPoint.stationCode]);
|
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true, num), lastPoint.stationCode, aa]);
|
||||||
|
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, nextPoint, train.directionCode, true, num), nextPoint.stationCode, aa]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 如果是备用车,按车次添加线*/
|
/** 如果是备用车,按车次添加线*/
|
||||||
|
@ -122,7 +122,6 @@
|
|||||||
import XLSX from 'xlsx';
|
import XLSX from 'xlsx';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { importRunPlan } from '@/api/runplan';
|
import { importRunPlan } from '@/api/runplan';
|
||||||
import { importData } from '../planConvert';
|
|
||||||
import { launchFullscreen } from '@/utils/screen';
|
import { launchFullscreen } from '@/utils/screen';
|
||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
|
|
||||||
|
@ -122,7 +122,6 @@
|
|||||||
import XLSX from 'xlsx';
|
import XLSX from 'xlsx';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { importRunPlan } from '@/api/runplan';
|
import { importRunPlan } from '@/api/runplan';
|
||||||
import { importData } from '../planConvert';
|
|
||||||
import { launchFullscreen } from '@/utils/screen';
|
import { launchFullscreen } from '@/utils/screen';
|
||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
|
|
||||||
|
@ -10,108 +10,149 @@ export default {
|
|||||||
/** 偏移时间*/
|
/** 偏移时间*/
|
||||||
TranslationTime: 60 * 60 * 2,
|
TranslationTime: 60 * 60 * 2,
|
||||||
|
|
||||||
|
/** excel解析配置*/
|
||||||
|
ExcelConfig: {
|
||||||
|
beginRow: 1,
|
||||||
|
beginCol: 0,
|
||||||
|
// fieldNum: 10,
|
||||||
|
columns: {
|
||||||
|
'默认上行折返轨': { key: 'upTrack', formatter: (val) => { return val; } },
|
||||||
|
'默认下行折返轨': { key: 'downTrack', formatter: (val) => { return val; } }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/** 解析exal数据转换为Json后台数据*/
|
/** 解析exal数据转换为Json后台数据*/
|
||||||
importData(Sheet, JsonData) {
|
importData(Sheet, JsonData) {
|
||||||
const dataList = convertSheetToList(Sheet, true);
|
const dataList = convertSheetToList(Sheet, true);
|
||||||
|
const needList = Object.keys(this.ExcelConfig.columns);
|
||||||
|
const tripObj = { upTrack: '', downTrack: '' };
|
||||||
if (dataList && dataList.length) {
|
if (dataList && dataList.length) {
|
||||||
const tIndex = dataList.findIndex(it => { return it[0]; });
|
const tIndex = dataList.findIndex(it => { return it[0]; });
|
||||||
|
if (dataList[0][0] == needList[0] && dataList[1][0] == needList[1]) {
|
||||||
|
for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += 1) {
|
||||||
|
var isContinue = true;
|
||||||
|
|
||||||
/** 解析二维数组为json对象*/
|
for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) {
|
||||||
const reg0 = /^[↑|↓|¡|ü|ý|]+(.*)/;
|
isContinue = false;
|
||||||
const reg1 = /^([▼|▲|¡ø|¨]+)\s*(\d+:\d+:\d+)/;
|
|
||||||
const reg2 = /^(\d+:\d+:\d+)\s*([▼|▲|¡ø|¨]+)/;
|
|
||||||
const reg3 = /^(\d+:\d+:\d+)\s*(\d+:\d+:\d+|)/;
|
|
||||||
const reg4 = /[▼|▲|¡|ø|¨|]+/;
|
|
||||||
|
|
||||||
dataList.forEach((elem, i) => {
|
var title = dataList[colIndex][0];
|
||||||
var begin = -1;
|
var value = dataList[colIndex][rowIndex];
|
||||||
/** 跳过名称所在的行*/
|
|
||||||
if (i != tIndex && elem && elem.length > 0) {
|
|
||||||
elem.forEach((item, j) => {
|
|
||||||
/** 过滤空值*/
|
|
||||||
if (item) {
|
|
||||||
var value = `${item}`.trim();
|
|
||||||
var title = `${dataList[tIndex][j]}`.trim();
|
|
||||||
/** 匹配到开始位置或者结束位置*/
|
|
||||||
if (reg0.test(value)) {
|
|
||||||
if (begin == -1) {
|
|
||||||
begin = value; // 设置初始索引
|
|
||||||
JsonData.push({
|
|
||||||
code: reg0.exec(value)[1],
|
|
||||||
arrivalList: []
|
|
||||||
});
|
|
||||||
} else if (begin === value) {
|
|
||||||
begin = -1; // 清空初始索引
|
|
||||||
}
|
|
||||||
} else if (begin !== -1) {
|
|
||||||
/** 匹配到中间位置*/
|
|
||||||
var begTime, endTime;
|
|
||||||
var runFlag = JsonData[JsonData.length - 1].code[2];
|
|
||||||
var stationName = title.replace(/\s/, '');
|
|
||||||
var need = false;
|
|
||||||
var flag = false;
|
|
||||||
if (reg1.test(value)) {
|
|
||||||
/** 含有特殊字符的时间格式*/
|
|
||||||
[, begTime, endTime] = reg1.exec(value);
|
|
||||||
|
|
||||||
begTime = reg4.test(begTime) ? '' : begTime;
|
if (title && value) {
|
||||||
endTime = reg4.test(endTime) ? '' : endTime;
|
// 数据列解析
|
||||||
|
isContinue = true;
|
||||||
|
var titleStr = `${title}`.replace(/\s*/g, '');
|
||||||
|
var valueStr = `${value}`.replace(/\s*/g, '');
|
||||||
|
|
||||||
/** 下行方向时间互换*/
|
// 取需要的字段
|
||||||
if (runFlag === '2') {
|
if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) {
|
||||||
[begTime, endTime] = [endTime, begTime];
|
tripObj[this.ExcelConfig.columns[titleStr].key] = this.ExcelConfig.columns[titleStr].formatter(valueStr);
|
||||||
}
|
|
||||||
|
|
||||||
/** 设置标志*/
|
|
||||||
[need, flag] = [true, true];
|
|
||||||
} else if (reg2.test(value)) {
|
|
||||||
/** 含有特殊字符的时间格式*/
|
|
||||||
[, begTime, endTime] = reg2.exec(value);
|
|
||||||
|
|
||||||
begTime = reg4.test(begTime) ? '' : begTime;
|
|
||||||
endTime = reg4.test(endTime) ? '' : endTime;
|
|
||||||
|
|
||||||
/** 下行方向时间互换*/
|
|
||||||
if (runFlag === '2') {
|
|
||||||
[begTime, endTime] = [endTime, begTime];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 设置标志*/
|
|
||||||
[need, flag] = [true, true];
|
|
||||||
} else if (reg3.test(value)) {
|
|
||||||
/** 正常时间格式*/
|
|
||||||
[, begTime, endTime] = reg3.exec(value);
|
|
||||||
|
|
||||||
/** 如果只存在一个数据时,则开始和结束设置一样*/
|
|
||||||
endTime = endTime || begTime;
|
|
||||||
|
|
||||||
/** 下行方向时间互换*/
|
|
||||||
if (runFlag === '2') {
|
|
||||||
[begTime, endTime] = [endTime, begTime];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 设置标志*/
|
|
||||||
[need, flag] = [true, false];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 添加json数据*/
|
|
||||||
if (need) {
|
|
||||||
var stationObj = {
|
|
||||||
stationName: stationName
|
|
||||||
};
|
|
||||||
|
|
||||||
if (begTime) { stationObj['arriveTime'] = prefixTime(begTime); }
|
|
||||||
if (endTime) { stationObj['departureTime'] = prefixTime(endTime); }
|
|
||||||
if (flag) { stationObj['flag'] = flag; }
|
|
||||||
JsonData[JsonData.length - 1].arrivalList.push(stationObj);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
} else {
|
||||||
|
/** 解析二维数组为json对象*/
|
||||||
|
const reg0 = /^[↑|↓|¡|ü|ý|]+(.*)/; // ↑|↓
|
||||||
|
const reg1 = /^([▼|▲|¡ø|¨]+)\s*(\d+:\d+:\d+)/; // ▲ 06:10:00
|
||||||
|
const reg2 = /^(\d+:\d+:\d+)\s*([▼|▲|¡ø|¨]+)/; // 06:10:00 ▲
|
||||||
|
const reg3 = /^(\d+:\d+:\d+)\s*(\d+:\d+:\d+|)/; // 06:10:00 06:12:00
|
||||||
|
const reg4 = /[▼|▲|¡|ø|¨|]+/; // ▲
|
||||||
|
|
||||||
|
dataList.forEach((elem, i) => {
|
||||||
|
var begin = -1;
|
||||||
|
/** 跳过名称所在的行*/
|
||||||
|
if (i != tIndex && elem && elem.length > 0) {
|
||||||
|
elem.forEach((item, j) => {
|
||||||
|
/** 过滤空值*/
|
||||||
|
if (item) {
|
||||||
|
var value = `${item}`.trim();
|
||||||
|
var title = `${dataList[tIndex][j]}`.replace(/\s*/g, '');
|
||||||
|
/** 匹配到开始位置或者结束位置*/
|
||||||
|
if (reg0.test(value)) {
|
||||||
|
if (begin == -1) {
|
||||||
|
begin = value; // 设置初始索引
|
||||||
|
JsonData.push({
|
||||||
|
code: reg0.exec(value)[1],
|
||||||
|
arrivalList: []
|
||||||
|
});
|
||||||
|
} else if (begin === value) {
|
||||||
|
begin = -1; // 清空初始索引
|
||||||
|
}
|
||||||
|
} else if (begin !== -1) {
|
||||||
|
/** 匹配到中间位置*/
|
||||||
|
var begTime, endTime;
|
||||||
|
var runFlag = JsonData[JsonData.length - 1].code[2];
|
||||||
|
var stationName = title.replace(/\s/, '');
|
||||||
|
var need = false;
|
||||||
|
var flag = false;
|
||||||
|
if (reg1.test(value)) {
|
||||||
|
/** 含有特殊字符的时间格式*/
|
||||||
|
[, begTime, endTime] = reg1.exec(value);
|
||||||
|
|
||||||
|
begTime = reg4.test(begTime) ? '' : begTime;
|
||||||
|
endTime = reg4.test(endTime) ? '' : endTime;
|
||||||
|
|
||||||
|
/** 下行方向时间互换*/
|
||||||
|
if (runFlag === '2') {
|
||||||
|
[begTime, endTime] = [endTime, begTime];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 设置标志*/
|
||||||
|
[need, flag] = [true, true];
|
||||||
|
} else if (reg2.test(value)) {
|
||||||
|
/** 含有特殊字符的时间格式*/
|
||||||
|
[, begTime, endTime] = reg2.exec(value);
|
||||||
|
|
||||||
|
begTime = reg4.test(begTime) ? '' : begTime;
|
||||||
|
endTime = reg4.test(endTime) ? '' : endTime;
|
||||||
|
|
||||||
|
/** 下行方向时间互换*/
|
||||||
|
if (runFlag === '2') {
|
||||||
|
[begTime, endTime] = [endTime, begTime];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 设置标志*/
|
||||||
|
[need, flag] = [true, true];
|
||||||
|
} else if (reg3.test(value)) {
|
||||||
|
/** 正常时间格式*/
|
||||||
|
[, begTime, endTime] = reg3.exec(value);
|
||||||
|
|
||||||
|
/** 如果只存在一个数据时,则开始和结束设置一样*/
|
||||||
|
endTime = endTime || begTime;
|
||||||
|
|
||||||
|
/** 下行方向时间互换*/
|
||||||
|
if (runFlag === '2') {
|
||||||
|
[begTime, endTime] = [endTime, begTime];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 设置标志*/
|
||||||
|
[need, flag] = [true, false];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 添加json数据*/
|
||||||
|
if (need) { // 储存非空 数据
|
||||||
|
var stationObj = {
|
||||||
|
stationName: stationName
|
||||||
|
};
|
||||||
|
|
||||||
|
if (begTime) { stationObj['arriveTime'] = prefixTime(begTime); }
|
||||||
|
if (endTime) { stationObj['departureTime'] = prefixTime(endTime); }
|
||||||
|
if (flag) { stationObj['flag'] = flag; } // 是否转换轨
|
||||||
|
JsonData[JsonData.length - 1].arrivalList.push(stationObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
JsonData.forEach(item => {
|
||||||
|
item['upTrack'] = tripObj.upTrack;
|
||||||
|
item['downTrack'] = tripObj.downTrack;
|
||||||
|
});
|
||||||
|
|
||||||
return JsonData;
|
return JsonData;
|
||||||
},
|
},
|
||||||
@ -154,8 +195,9 @@ export default {
|
|||||||
if (!train.backup && train.reentry && service.tripNumberDataList[j + 1] && service.tripNumberDataList[j + 1].stationTimeList) {
|
if (!train.backup && train.reentry && service.tripNumberDataList[j + 1] && service.tripNumberDataList[j + 1].stationTimeList) {
|
||||||
lastPoint = train.stationTimeList[idx];
|
lastPoint = train.stationTimeList[idx];
|
||||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[0];
|
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[0];
|
||||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true), lastPoint.stationCode]);
|
const aa = `${train.directionCode}${train.tripNumber}`;
|
||||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true), lastPoint.stationCode]);
|
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true), lastPoint.stationCode, aa, '折返轨']);
|
||||||
|
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true), lastPoint.stationCode, aa, '折返轨']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 如果是备用车,按车次添加线*/
|
/** 如果是备用车,按车次添加线*/
|
||||||
|
@ -122,7 +122,6 @@
|
|||||||
import XLSX from 'xlsx';
|
import XLSX from 'xlsx';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { importRunPlan } from '@/api/runplan';
|
import { importRunPlan } from '@/api/runplan';
|
||||||
import { importData } from '../planConvert';
|
|
||||||
import { launchFullscreen } from '@/utils/screen';
|
import { launchFullscreen } from '@/utils/screen';
|
||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
|
|
||||||
|
@ -230,14 +230,12 @@ function s2ab(s) {
|
|||||||
|
|
||||||
export function export_table_to_excel(id) {
|
export function export_table_to_excel(id) {
|
||||||
var theTable = document.getElementById(id);
|
var theTable = document.getElementById(id);
|
||||||
console.log('a')
|
|
||||||
var oo = generateArray(theTable);
|
var oo = generateArray(theTable);
|
||||||
var ranges = oo[1];
|
var ranges = oo[1];
|
||||||
|
|
||||||
/* original data */
|
/* original data */
|
||||||
var data = oo[0];
|
var data = oo[0];
|
||||||
var ws_name = "SheetJS";
|
var ws_name = "SheetJS";
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
||||||
|
|
||||||
|
@ -128,10 +128,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
// ruleList(list) {
|
|
||||||
// console.log(list, 1111);
|
|
||||||
// this.reloadTable();
|
|
||||||
// }
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.loadInitData();
|
this.loadInitData();
|
||||||
|
@ -39,7 +39,6 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
qrCodeShow(data) { // 生成二维码
|
qrCodeShow(data) { // 生成二维码
|
||||||
console.log(data);
|
|
||||||
this.url = data.url;
|
this.url = data.url;
|
||||||
},
|
},
|
||||||
turnback() {
|
turnback() {
|
||||||
|
@ -448,13 +448,13 @@ export default {
|
|||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
that.loading.close();
|
that.loading.close();
|
||||||
that.refresh();
|
that.refresh();
|
||||||
that.$message.warning(this.$t('tip.importRunGraphFailed') + error.message);
|
that.$message.warning(that.$t('tip.importRunGraphFailed') + error.message);
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
that.loading.close();
|
that.loading.close();
|
||||||
that.refresh();
|
that.refresh();
|
||||||
that.$message.warning(this.$t('tip.parseRunGraphFailed') + error.message);
|
that.$message.warning(that.$t('tip.parseRunGraphFailed') + error.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -11,14 +11,14 @@
|
|||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6" :offset="2" style="height: 30px; line-height: 30px;">{{$t('planMonitor.serviceNumber2')+$t('global.colon')}}</el-col>
|
<el-col :span="6" :offset="2" style="height: 30px; line-height: 30px;">{{ $t('planMonitor.serviceNumber2')+$t('global.colon') }}</el-col>
|
||||||
<el-col :span="10" :offset="1">
|
<el-col :span="10" :offset="1">
|
||||||
<el-input v-model="serviceNumber" size="mini" />
|
<el-input v-model="serviceNumber" size="mini" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="medium" @click="doClose">{{$t('global.cancel')}}</el-button>
|
<el-button size="medium" @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
<el-button type="primary" size="medium" @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button type="primary" size="medium" @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -4,18 +4,19 @@
|
|||||||
class="planEdit__tool add-task"
|
class="planEdit__tool add-task"
|
||||||
:title="title"
|
:title="title"
|
||||||
:visible.sync="dialogShow"
|
:visible.sync="dialogShow"
|
||||||
width="780px"
|
width="880px"
|
||||||
:before-close="doClose"
|
:before-close="doClose"
|
||||||
:z-index="2000"
|
:z-index="2000"
|
||||||
|
top="50px"
|
||||||
:modal="false"
|
:modal="false"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="3" style="height: 28px;line-height: 28px;">
|
<el-col :span="3" style="height: 28px;line-height: 28px;">
|
||||||
<el-radio v-model="addModel.addToFront" :label="true">{{$t('planMonitor.addToTheFront')}}</el-radio>
|
<el-radio v-model="addModel.addToFront" :label="true">{{ $t('planMonitor.addToTheFront') }}</el-radio>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4" style="margin-left: 10px;height: 28px;line-height: 28px;">
|
<el-col :span="3" style="margin-left: 10px;height: 28px;line-height: 28px;">
|
||||||
<span>{{$t('planMonitor.tripNumber')+$t('global.colon')}}</span>
|
<span>{{ $t('planMonitor.tripNumber')+$t('global.colon') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-select v-model="addModel.tripNumber" size="mini" :placeholder="this.$t('global.choose')">
|
<el-select v-model="addModel.tripNumber" size="mini" :placeholder="this.$t('global.choose')">
|
||||||
@ -27,8 +28,8 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4" style="margin-left: 20px;height: 28px;line-height: 28px;">
|
<el-col :span="3" style="margin-left: 20px;height: 28px;line-height: 28px;">
|
||||||
<span>{{$t('global.startTime')+$t('global.colon')}}</span>
|
<span>{{ $t('global.startTime')+$t('global.colon') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-time-picker v-model="addModel.startTime" size="mini" value-format="HH:mm:ss" :clearable="false" />
|
<el-time-picker v-model="addModel.startTime" size="mini" value-format="HH:mm:ss" :clearable="false" />
|
||||||
@ -36,10 +37,10 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="margin-top: 5px;height: 28px;line-height: 28px;">
|
<el-row style="margin-top: 5px;height: 28px;line-height: 28px;">
|
||||||
<el-col :span="3">
|
<el-col :span="3">
|
||||||
<el-radio v-model="addModel.addToFront" :label="false">{{$t('planMonitor.addToTheEnd')}}</el-radio>
|
<el-radio v-model="addModel.addToFront" :label="false">{{ $t('planMonitor.addToTheEnd') }}</el-radio>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4" style="margin-left: 10px;height: 28px;line-height: 28px;">
|
<el-col :span="3" style="margin-left: 10px;height: 28px;line-height: 28px;">
|
||||||
<span>{{$t('planMonitor.defaultStopTime')+$t('global.colon')}}</span>
|
<span>{{ $t('planMonitor.defaultStopTime') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-select v-model="addModel.defaultStopTime" size="mini" :placeholder="this.$t('global.choose')">
|
<el-select v-model="addModel.defaultStopTime" size="mini" :placeholder="this.$t('global.choose')">
|
||||||
@ -51,8 +52,8 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4" style="margin-left: 20px;height: 28px;line-height: 28px;">
|
<el-col :span="3" style="margin-left: 20px;height: 28px;line-height: 28px;">
|
||||||
<span>{{$t('planMonitor.defaultRunLevel')+$t('global.colon')}}</span>
|
<span>{{ $t('planMonitor.defaultRunLevel') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-select v-model="addModel.defaultSpeedLevel" size="mini" :placeholder="this.$t('global.choose')">
|
<el-select v-model="addModel.defaultSpeedLevel" size="mini" :placeholder="this.$t('global.choose')">
|
||||||
@ -67,14 +68,14 @@
|
|||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="margin-bottom: 5px;">
|
<el-row style="margin-bottom: 5px;">
|
||||||
{{$t('planMonitor.crossRailway')+$t('global.colon')}}
|
{{ $t('planMonitor.crossRailway')+$t('global.colon') }}
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-table
|
<el-table
|
||||||
:data="addModel.routingList"
|
:data="addModel.routingList"
|
||||||
border
|
border
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
:height="180"
|
:height="280"
|
||||||
@row-click="handleClick"
|
@row-click="handleClick"
|
||||||
>
|
>
|
||||||
<el-table-column prop="startStationCode" :label="this.$t('planMonitor.startingStation')">
|
<el-table-column prop="startStationCode" :label="this.$t('planMonitor.startingStation')">
|
||||||
@ -82,7 +83,7 @@
|
|||||||
{{ formatName(scope.row.startStationCode) }}
|
{{ formatName(scope.row.startStationCode) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="startSectionCode" :label="this.$t('planMonitor.startingSection')">
|
<el-table-column prop="startSectionCode" :label="this.$t('planMonitor.startingSection')" width="95">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ formatName(scope.row.startSectionCode) }}
|
{{ formatName(scope.row.startSectionCode) }}
|
||||||
</template>
|
</template>
|
||||||
@ -92,16 +93,16 @@
|
|||||||
{{ formatName(scope.row.endStationCode) }}
|
{{ formatName(scope.row.endStationCode) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="endSectionCode" :label="this.$t('planMonitor.endingSection')">
|
<el-table-column prop="endSectionCode" :label="this.$t('planMonitor.endingSection')" width="95">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ formatName(scope.row.endSectionCode) }}
|
{{ formatName(scope.row.endSectionCode) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="remarks" :label="this.$t('planMonitor.description')" />
|
<el-table-column prop="remarks" :label="this.$t('planMonitor.description')" width="315" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
|
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
|
||||||
{{$t('global.details')+$t('global.colon')}}
|
{{ $t('global.details')+$t('global.colon') }}
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-table :data="addModel.arriveConfigList" border :height="180">
|
<el-table :data="addModel.arriveConfigList" border :height="180">
|
||||||
@ -116,19 +117,23 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="arriveTime" :label="this.$t('planMonitor.arriveTime')" />
|
<el-table-column prop="arriveTime" :label="this.$t('planMonitor.arriveTime')" />
|
||||||
<el-table-column prop="stopTime" :label="this.$t('planMonitor.stopTime')" />
|
<el-table-column prop="stopTime" :label="this.$t('planMonitor.stopTime')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-model="scope.row.stopTime" placeholder="请输入时间" size="mini" @change="changeStopTime(scope.$index, scope.row.stopTime)" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="departureTime" :label="this.$t('planMonitor.departureTime')" />
|
<el-table-column prop="departureTime" :label="this.$t('planMonitor.departureTime')" />
|
||||||
<el-table-column prop="speedLevel" :label="this.$t('planMonitor.runLevel')" />
|
<el-table-column prop="speedLevel" :label="this.$t('planMonitor.runLevel')" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :offset="16">
|
<el-col :offset="16">
|
||||||
<el-checkbox v-model="showDefault">{{$t('planMonitor.showDefaultStopTimeAndRunLevel')}}</el-checkbox>
|
<el-checkbox v-model="showDefault">{{ $t('planMonitor.showDefaultStopTimeAndRunLevel') }}</el-checkbox>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="medium" @click="doClose">{{$t('global.cancel')}}</el-button>
|
<el-button size="medium" @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
<el-button type="primary" size="medium" @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button type="primary" size="medium" @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -163,14 +168,14 @@ export default {
|
|||||||
planId: '',
|
planId: '',
|
||||||
tripNumber: '',
|
tripNumber: '',
|
||||||
serviceNumber: '',
|
serviceNumber: '',
|
||||||
defaultStopTime: '',
|
defaultStopTime: '30',
|
||||||
defaultSpeedLevel: '',
|
defaultSpeedLevel: 'level3',
|
||||||
routingList: [],
|
routingList: [],
|
||||||
arriveConfigList: []
|
arriveConfigList: []
|
||||||
},
|
},
|
||||||
tripNumberList: [{ value: '', label: this.$t('planMonitor.automatic') }],
|
tripNumberList: [{ value: '', label: this.$t('planMonitor.automatic') }],
|
||||||
defaultStopTimeList: [{ value: '', label: this.$t('planMonitor.default') }],
|
defaultStopTimeList: [{ value: '30', label: this.$t('planMonitor.default') }, { value: '0', label: '0' }],
|
||||||
defaultSpeedLevelList: [{ value: '', label: this.$t('planMonitor.default') }]
|
defaultSpeedLevelList: [{ value: 'level3', label: this.$t('planMonitor.default') }]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -208,11 +213,24 @@ export default {
|
|||||||
|
|
||||||
const skinCode = this.$route.query.skinCode;
|
const skinCode = this.$route.query.skinCode;
|
||||||
if (skinCode) {
|
if (skinCode) {
|
||||||
getStationRunning(skinCode).then(resp => {
|
getStationRunning(skinCode).then(resp => { // 查询是否有站间运行时间
|
||||||
const list = resp.data;
|
const list = resp.data;
|
||||||
list.forEach(elem => {
|
list.forEach(elem => {
|
||||||
this.stopStationMap[[elem.startSectionCode, elem.endSectionCode].toString()] = elem;
|
this.stopStationMap[[elem.startSectionCode, elem.endSectionCode].toString()] = elem;
|
||||||
});
|
});
|
||||||
|
if (list && list.length) {
|
||||||
|
list.forEach(elem => {
|
||||||
|
if (!elem.runPlanLevelVO) {
|
||||||
|
this.$alert(`${this.$t('planMonitor.tipOperationTime')}`, {
|
||||||
|
confirmButtonText: this.$t('global.confirm'),
|
||||||
|
callback: action => {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -247,33 +265,37 @@ export default {
|
|||||||
|
|
||||||
return runTime;
|
return runTime;
|
||||||
},
|
},
|
||||||
|
changeStopTime(indexs, time) {
|
||||||
|
let tempTime = this.computedTimeByString(this.addModel.startTime) / 1000 - 30;
|
||||||
|
const runLevel = this.addModel.defaultSpeedLevel || 'level3'; // 默认等级三
|
||||||
|
this.addModel.arriveConfigList.forEach((elem, index) => {
|
||||||
|
if (indexs == index) {
|
||||||
|
elem.stopTime = time ? Number(time) : 0;
|
||||||
|
}
|
||||||
|
elem.arriveTime = index ? formatTime(tempTime) : '';
|
||||||
|
elem.departureTime = index == this.addModel.arriveConfigList.length - 1 ? '' : formatTime(tempTime + elem.stopTime);
|
||||||
|
elem.speedLevel = this.addModel.defaultSpeedLevel == 'level3' ? this.$t('planMonitor.default') : '';
|
||||||
|
tempTime = tempTime + elem.stopTime + this.compuntedRunTime(this.addModel.arriveConfigList, index, runLevel);
|
||||||
|
});
|
||||||
|
this.addModel.endTime = formatTime(tempTime - this.addModel.arriveConfigList[this.addModel.arriveConfigList.length - 1].stopTime);
|
||||||
|
},
|
||||||
computedDetailList() {
|
computedDetailList() {
|
||||||
if (this.addModel.routingCode) {
|
if (this.addModel.routingCode) {
|
||||||
querySectionListByRouting({ planId: this.$route.query.planId, routingCode: this.addModel.routingCode }).then(resp => {
|
querySectionListByRouting({ planId: this.$route.query.planId, routingCode: this.addModel.routingCode }).then(resp => {
|
||||||
const list = resp.data;
|
const list = resp.data;
|
||||||
const waitTime = this.addModel.defaultStopTime || 30; // 默认三十秒
|
const waitTime = Number(this.addModel.defaultStopTime) || 0; // 默认三十秒
|
||||||
let tempTime = this.computedTimeByString(this.addModel.startTime) / 1000 - 30;
|
let tempTime = this.computedTimeByString(this.addModel.startTime) / 1000 - 30;
|
||||||
const runLevel = this.addModel.defaultSpeedLevel || 'level3'; // 默认等级三
|
const runLevel = this.addModel.defaultSpeedLevel || 'level3'; // 默认等级三
|
||||||
list.forEach((elem, index) => {
|
list.forEach((elem, index) => {
|
||||||
elem.arriveTime = index ? formatTime(tempTime) : '';
|
elem.arriveTime = index ? formatTime(tempTime) : '';
|
||||||
elem.departureTime = index == list.length - 1 ? '' : formatTime(tempTime + waitTime);
|
elem.departureTime = index == list.length - 1 ? '' : formatTime(tempTime + waitTime);
|
||||||
elem.stopTime = this.addModel.defaultSpeedLevel || this.$t('planMonitor.default');
|
elem.speedLevel = this.addModel.defaultSpeedLevel == 'level3' ? this.$t('planMonitor.default') : '';
|
||||||
elem.speedLevel = this.addModel.defaultStopTime || this.$t('planMonitor.default');
|
elem.stopTime = this.addModel.defaultStopTime != '0' ? 30 : 0;
|
||||||
tempTime = tempTime + waitTime + this.compuntedRunTime(list, index, runLevel);
|
tempTime = tempTime + waitTime + this.compuntedRunTime(list, index, runLevel);
|
||||||
});
|
});
|
||||||
|
|
||||||
// let startSection = this.$store.getters['map/getDeviceByCode'](this.addModel.startSectionCode);
|
|
||||||
// if (startSection && startSection.isReentryTrack) {
|
|
||||||
// list.shift();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// let endSection = this.$store.getters['map/getDeviceByCode'](this.addModel.endSectionCode);
|
|
||||||
// if (endSection && endSection.isReentryTrack) {
|
|
||||||
// list.pop();
|
|
||||||
// }
|
|
||||||
|
|
||||||
this.addModel.arriveConfigList = list;
|
this.addModel.arriveConfigList = list;
|
||||||
this.addModel.endTime = formatTime(tempTime - waitTime);
|
this.addModel.endTime = formatTime(tempTime - list[list.length - 1].stopTime);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -230,16 +230,16 @@ export default {
|
|||||||
|
|
||||||
importRunPlan({ skinCode: that.$route.query.skinCode || '02', runPlanList: jsonData }).then(response => {
|
importRunPlan({ skinCode: that.$route.query.skinCode || '02', runPlanList: jsonData }).then(response => {
|
||||||
that.loadingDig.close();
|
that.loadingDig.close();
|
||||||
that.$message.success(this.$t('tip.importOperationGraphSuccessfully'));
|
that.$message.success(that.$t('tip.importOperationGraphSuccessfully'));
|
||||||
// this.$emit('dispatchDialog', { name: 'openRunPlan', params: {type: 'add'} });
|
// this.$emit('dispatchDialog', { name: 'openRunPlan', params: {type: 'add'} });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
that.loadingDig.close();
|
that.loadingDig.close();
|
||||||
that.$message.warning(`${this.$t('tip.importRunGraphFailed')} ${error.message}`);
|
that.$message.warning(`${that.$t('tip.importRunGraphFailed')} ${error.message}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
that.loadingDig.close();
|
that.loadingDig.close();
|
||||||
that.$message.warning(`${this.$t('tip.parseRunGraphFailed')} ${error.message}`);
|
that.$message.warning(`${that.$t('tip.parseRunGraphFailed')} ${error.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -11,26 +11,20 @@
|
|||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="3">{{$t('planMonitor.serviceNumber')+$t('global.colon')}}</el-col>
|
<el-col :span="3">{{ $t('planMonitor.serviceNumber')+$t('global.colon') }}</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-input v-model="model.serviceNumber" disabled size="mini" />
|
<el-input v-model="model.serviceNumber" disabled size="mini" />
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4" :offset="1">
|
<el-col :span="4" :offset="1">
|
||||||
<el-checkbox v-model="model.debugTrain">{{$t('planMonitor.commissioningTrain')}}</el-checkbox>
|
<el-checkbox v-model="model.debugTrain">{{ $t('planMonitor.commissioningTrain') }}</el-checkbox>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="margin-top: 5px">
|
<el-row style="margin-top: 5px">
|
||||||
{{$t('planMonitor.task')}}
|
{{ $t('planMonitor.task') }}
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<div style=" float: left; width: 78%">
|
<div style=" float: left; width: 78%">
|
||||||
<el-table
|
<el-table :data="model.tripConfigList" highlight-current-row border :height="380" @current-change="handleCurrentChange">
|
||||||
:data="model.tripConfigList"
|
|
||||||
highlight-current-row
|
|
||||||
border
|
|
||||||
:height="380"
|
|
||||||
@current-change="handleCurrentChange"
|
|
||||||
>
|
|
||||||
<el-table-column prop="beginStationCode" :label="this.$t('planMonitor.startingStation')">
|
<el-table-column prop="beginStationCode" :label="this.$t('planMonitor.startingStation')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ formatName(scope.row.startStationCode) }}
|
{{ formatName(scope.row.startStationCode) }}
|
||||||
@ -55,12 +49,12 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div style="float: right; width: 22%">
|
<div style="float: right; width: 22%">
|
||||||
<el-button class="view-button" :disabled="disabled" @click="handleEditTask">{{$t('planMonitor.modifyTask')}}</el-button>
|
<el-button class="view-button" :disabled="disabled" @click="handleEditTask">{{ $t('planMonitor.modifyTask') }}</el-button>
|
||||||
<el-button class="view-button" :disabled="disabled" @click="handleAddTask">
|
<el-button class="view-button" :disabled="disabled" @click="handleAddTask">
|
||||||
{{$t('planMonitor.addTask')}}
|
{{ $t('planMonitor.addTask') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button class="view-button" :disabled="disabled" @click="handleDeleteTask">{{$t('planMonitor.deleteTask')}}</el-button>
|
<el-button class="view-button" :disabled="disabled" @click="handleDeleteTask">{{ $t('planMonitor.deleteTask') }}</el-button>
|
||||||
<el-button class="view-button" :disabled="disabled" @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button class="view-button" :disabled="disabled" @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -119,7 +113,6 @@ export default {
|
|||||||
endTime: formatTime(trainInfo.stationTimeList[lastIndex].secondTime),
|
endTime: formatTime(trainInfo.stationTimeList[lastIndex].secondTime),
|
||||||
arriveConfigList: []
|
arriveConfigList: []
|
||||||
};
|
};
|
||||||
// console.log(editData.trainMap[tripNumber]);
|
|
||||||
this.model.tripConfigList.push(taskObj);
|
this.model.tripConfigList.push(taskObj);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -84,14 +84,14 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column :label="$t('planMonitor.modifying.operation')" width="100">
|
<el-table-column :label="$t('planMonitor.modifying.operation')" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="handleUpdate(scope.row)">{{$t('planMonitor.modifying.edit')}}</el-button>
|
<el-button type="text" size="small" @click="handleUpdate(scope.row)">{{ $t('planMonitor.modifying.edit') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div class="button-group" style="text-align: center; margin-top: 10px;">
|
<div class="button-group" style="text-align: center; margin-top: 10px;">
|
||||||
<el-button type="primary" @click="handleSave">{{$t('planMonitor.modifying.save')}}</el-button>
|
<el-button type="primary" @click="handleSave">{{ $t('planMonitor.modifying.save') }}</el-button>
|
||||||
<el-button @click="doClose">{{$t('planMonitor.modifying.cancelAndQuit')}}</el-button>
|
<el-button @click="doClose">{{ $t('planMonitor.modifying.cancelAndQuit') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<update-station-interval-time ref="updateStationIntervalTime" @handleConfirm="handleConfirm" />
|
<update-station-interval-time ref="updateStationIntervalTime" @handleConfirm="handleConfirm" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -121,7 +121,7 @@ export default {
|
|||||||
level5: 22
|
level5: 22
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
title() {
|
title() {
|
||||||
return this.$t('planMonitor.modifying.modifyRunLevel');
|
return this.$t('planMonitor.modifying.modifyRunLevel');
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
width="1000px"
|
width="1000px"
|
||||||
:before-close="doClose"
|
:before-close="doClose"
|
||||||
:z-index="2000"
|
:z-index="2000"
|
||||||
|
top="50px"
|
||||||
:modal="false"
|
:modal="false"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
@ -135,7 +136,7 @@
|
|||||||
<el-col :span="5" class="lineHeight">
|
<el-col :span="5" class="lineHeight">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="9" :offset="2">
|
<el-col :span="9" :offset="2">
|
||||||
<span>{{ $t('planMonitor.modifying.startTime') }}</span>
|
<span>{{ $t('planMonitor.modifying.startTime') }}:</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="13">
|
<el-col :span="13">
|
||||||
<el-time-picker
|
<el-time-picker
|
||||||
@ -183,15 +184,15 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="endSectionCode" :label="$t('planMonitor.modifying.endSection')" />
|
<el-table-column prop="endSectionCode" :label="$t('planMonitor.modifying.endSection')" />
|
||||||
<el-table-column prop="remarks" :label="$t('planMonitor.modifying.description')" :width="280" />
|
<el-table-column prop="remarks" :label="$t('planMonitor.modifying.description')" :width="315" />
|
||||||
<el-table-column :width="40" />
|
<!-- <el-table-column :width="40" /> -->
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
|
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
|
||||||
{{ $t('planMonitor.modifying.detail') }}
|
{{ $t('planMonitor.modifying.detail') }}
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-table :data="editModel.arriveConfigList" border :height="180">
|
<el-table :data="editModel.arriveConfigList" border :height="260">
|
||||||
<el-table-column prop="stationCode" :label="$t('planMonitor.modifying.station')">
|
<el-table-column prop="stationCode" :label="$t('planMonitor.modifying.station')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ formatName(scope.row.stationCode) }}
|
{{ formatName(scope.row.stationCode) }}
|
||||||
@ -298,7 +299,13 @@ export default {
|
|||||||
if (stopStationObj.runPlanLevelVO) {
|
if (stopStationObj.runPlanLevelVO) {
|
||||||
runTime = parseInt(stopStationObj.runPlanLevelVO[runLevel]);
|
runTime = parseInt(stopStationObj.runPlanLevelVO[runLevel]);
|
||||||
} else {
|
} else {
|
||||||
this.$messageBox(`${this.$t('planMonitor.modifying.setMessageTip1')} ${stopStationObj.startSectionCode} ${this.$t('planMonitor.modifying.setMessageTip2')} ${stopStationObj.endSectionCode} ${this.$t('planMonitor.modifying.setMessageTip3')}`);
|
// this.$messageBox(`${this.$t('planMonitor.modifying.setMessageTip1')} ${stopStationObj.startSectionCode} ${this.$t('planMonitor.modifying.setMessageTip2')} ${stopStationObj.endSectionCode} ${this.$t('planMonitor.modifying.setMessageTip3')}`);
|
||||||
|
this.$alert(`${this.$t('planMonitor.tipOperationTime')}`, {
|
||||||
|
confirmButtonText: this.$t('global.confirm'),
|
||||||
|
callback: action => {
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -369,7 +376,7 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.editModel.routingList = [];
|
this.editModel.routingList = [];
|
||||||
getRoutingBySDTNumber(model).then(resp => {
|
getRoutingBySDTNumber(model).then(resp => { // 根据车次号查询交路
|
||||||
const routingObj = resp.data;
|
const routingObj = resp.data;
|
||||||
this.editModel.routingCode = routingObj.code;
|
this.editModel.routingCode = routingObj.code;
|
||||||
this.editModel.routingList.push(routingObj);
|
this.editModel.routingList.push(routingObj);
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="medium" @click="doClose">{{$t('global.cancel')}}</el-button>
|
<el-button size="medium" @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
<el-button type="primary" size="medium" @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button type="primary" size="medium" @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -39,7 +39,7 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
title() {
|
title() {
|
||||||
return this.$t('planMonitor.updateStation.deletePlanCar');
|
return this.$t('planMonitor.updateStation.deletePlanCar');
|
||||||
},
|
},
|
||||||
width() {
|
width() {
|
||||||
if (this.params.width) {
|
if (this.params.width) {
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-row type="flex" justify="center" class="button-group">
|
<el-row type="flex" justify="center" class="button-group">
|
||||||
<el-button @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
<el-button @click="doClose">{{$t('global.cancel')}}</el-button>
|
<el-button @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
>
|
>
|
||||||
<el-input v-model="context" type="textarea" :rows="10" readonly />
|
<el-input v-model="context" type="textarea" :rows="10" readonly />
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="medium" @click="doClose">{{$t('global.cancel')}}</el-button>
|
<el-button size="medium" @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
<el-button type="primary" size="medium" @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button type="primary" size="medium" @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,42 +1,32 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog v-dialogDrag class="planEdit__tool update-station-interval-time" :title="title" :visible.sync="dialogShow" width="420px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||||
v-dialogDrag
|
|
||||||
class="planEdit__tool update-station-interval-time"
|
|
||||||
:title="title"
|
|
||||||
:visible.sync="dialogShow"
|
|
||||||
width="420px"
|
|
||||||
:before-close="doClose"
|
|
||||||
:z-index="2000"
|
|
||||||
:modal="false"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
>
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-form ref="form" :model="runPlanLevelVO" label-width="140px" size="mini" :rules="rules">
|
<el-form ref="form" :model="runPlanLevelVO" label-width="140px" size="mini" :rules="rules">
|
||||||
<el-form-item :label="$t('planMonitor.updateStation.level1')" prop="level1">
|
<el-form-item :label="$t('planMonitor.updateStation.level1')" prop="level1">
|
||||||
<el-input-number v-model="runPlanLevelVO.level1" :min="1" />
|
<el-input-number v-model="runPlanLevelVO.level1" :min="1" />
|
||||||
<span>{{$t('global.second')}}</span>
|
<span>{{ $t('global.second') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('planMonitor.updateStation.level2')" prop="level2">
|
<el-form-item :label="$t('planMonitor.updateStation.level2')" prop="level2">
|
||||||
<el-input-number v-model="runPlanLevelVO.level2" :min="1" />
|
<el-input-number v-model="runPlanLevelVO.level2" :min="1" />
|
||||||
<span>{{$t('global.second')}}</span>
|
<span>{{ $t('global.second') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('planMonitor.updateStation.level3')" prop="level3">
|
<el-form-item :label="$t('planMonitor.updateStation.level3')" prop="level3">
|
||||||
<el-input-number v-model="runPlanLevelVO.level3" :min="1" />
|
<el-input-number v-model="runPlanLevelVO.level3" :min="1" />
|
||||||
<span>{{$t('global.second')}}</span>
|
<span>{{ $t('global.second') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('planMonitor.updateStation.level4')" prop="level4">
|
<el-form-item :label="$t('planMonitor.updateStation.level4')" prop="level4">
|
||||||
<el-input-number v-model="runPlanLevelVO.level4" :min="1" />
|
<el-input-number v-model="runPlanLevelVO.level4" :min="1" />
|
||||||
<span>{{$t('global.second')}}</span>
|
<span>{{ $t('global.second') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('planMonitor.updateStation.level5')" prop="level5">
|
<el-form-item :label="$t('planMonitor.updateStation.level5')" prop="level5">
|
||||||
<el-input-number v-model="runPlanLevelVO.level5" :min="1" />
|
<el-input-number v-model="runPlanLevelVO.level5" :min="1" />
|
||||||
<span>{{$t('global.second')}}</span>
|
<span>{{ $t('global.second') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row type="flex" justify="center" class="button-group">
|
<el-row type="flex" justify="center" class="button-group">
|
||||||
<el-button @click="handleCommit">{{$t('global.confirm')}}</el-button>
|
<el-button @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
<el-button @click="doClose">{{$t('global.cancel')}}</el-button>
|
<el-button @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -118,13 +118,19 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
trigger: 'item',
|
// trigger: 'item',
|
||||||
type: 'cross',
|
type: 'cross',
|
||||||
snap: true
|
snap: true,
|
||||||
|
axis: 'x'
|
||||||
},
|
},
|
||||||
formatter: this.axisTooltip,
|
formatter: this.axisTooltip,
|
||||||
borderWidth: 1
|
borderWidth: 1,
|
||||||
|
position: function (pt) {
|
||||||
|
const data = pt[0] + 10;
|
||||||
|
return [data, '20%'];
|
||||||
|
}
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
{
|
{
|
||||||
@ -521,13 +527,23 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
axisTooltip(param) {
|
axisTooltip(param) {
|
||||||
const station = this.stations[Math.floor((param.data[1] - this.planConvert.EdgeHeight) / this.planConvert.CoordMultiple)] || { name: '', kmRange: '' };
|
let data = '';
|
||||||
return [
|
const arr = [];
|
||||||
`Point Data <hr size=1 style="margin: 3px 0">`,
|
param.forEach(item => {
|
||||||
`${this.$t('planMonitor.stationName')}${station.name}<br>`,
|
const station = this.stations[Math.floor((item.data[1] - this.planConvert.EdgeHeight) / this.planConvert.CoordMultiple)] || { name: '', kmRange: '' };
|
||||||
`${this.$t('planMonitor.stationKilometerMark')}${station.kmRange} km <br>`,
|
if (!arr.includes(`${item.data[0]}${item.data[1]}`)) {
|
||||||
`${this.$t('planMonitor.arriveTime')}${timeFormat(param.data[0] + this.planConvert.TranslationTime)} (${param.data[0]})<br>`
|
arr.push(`${item.data[0]}${item.data[1]}`);
|
||||||
].join('');
|
const list = [
|
||||||
|
`${this.$t('planMonitor.stationName')}${station.name}<br>`,
|
||||||
|
`${this.$t('planMonitor.stationKilometerMark')}${station.kmRange} km <br>`,
|
||||||
|
`${this.$t('planMonitor.arriveTime')}${timeFormat(item.data[0] + this.planConvert.TranslationTime)}<br>`,
|
||||||
|
`${this.$t('planMonitor.serverTrainNum')}: ${item.seriesName}${item.data[3]}(${item.data[3][0] == '2' ? '上行' : '下行'})`,
|
||||||
|
`<hr size=1 style="margin: 3px 0">`
|
||||||
|
];
|
||||||
|
data += list.join('');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return data;
|
||||||
},
|
},
|
||||||
// mouseClick(params) {
|
// mouseClick(params) {
|
||||||
// const model = {
|
// const model = {
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="PlanStatusBar">
|
<div class="PlanStatusBar">
|
||||||
<ul class="ul-box">
|
<ul class="ul-box">
|
||||||
<div class="li_plan" @click="showTrain">{{$t('planMonitor.serviceAndTripNumber')}}</div>
|
<div class="li_plan" @click="showTrain">{{ $t('planMonitor.serviceAndTripNumber') }}</div>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="ul-box">
|
<ul class="ul-box">
|
||||||
<div class="li_plan" @click="handleAddPlanningTrain">{{$t('planMonitor.addPlan')}}</div>
|
<div class="li_plan" @click="handleAddPlanningTrain">{{ $t('planMonitor.addPlan') }}</div>
|
||||||
<div class="li_plan" @click="handleDeletePlanningTrain">{{$t('planMonitor.deletePlan')}}</div>
|
<div class="li_plan" @click="handleDeletePlanningTrain">{{ $t('planMonitor.deletePlan') }}</div>
|
||||||
<div class="li_plan" @click="handleDuplicateTrain">{{$t('planMonitor.duplicatePlan')}}</div>
|
<div class="li_plan" @click="handleDuplicateTrain">{{ $t('planMonitor.duplicatePlan') }}</div>
|
||||||
<div class="li_plan" @click="handleAddTask">{{$t('planMonitor.addTask')}}</div>
|
<div class="li_plan" @click="handleAddTask">{{ $t('planMonitor.addTask') }}</div>
|
||||||
<div class="li_plan" @click="handleDeleteTask">{{$t('planMonitor.deleteTask')}}</div>
|
<div class="li_plan" @click="handleDeleteTask">{{ $t('planMonitor.deleteTask') }}</div>
|
||||||
<div class="li_plan" @click="handleModifyingTask">{{$t('planMonitor.modifyTask')}}</div>
|
<div class="li_plan" @click="handleModifyingTask">{{ $t('planMonitor.modifyTask') }}</div>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="ul-box tool">
|
<ul class="ul-box tool">
|
||||||
<div class="li_plan" @click="handlePlanEffectiveCheck">{{$t('planMonitor.validityCheck')}}</div>
|
<div class="li_plan" @click="handlePlanEffectiveCheck">{{ $t('planMonitor.validityCheck') }}</div>
|
||||||
<div class="li_plan" @click="handleTestRunPlan">{{$t('planMonitor.testRunning')}}</div>
|
<div class="li_plan" @click="handleTestRunPlan">{{ $t('planMonitor.testRunning') }}</div>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
v-model="form.course"
|
v-model="form.course"
|
||||||
:placeholder="$t('publish.selectTypeScope')"
|
:placeholder="$t('publish.selectTypeScope')"
|
||||||
:disabled="editOk"
|
:disabled="editOk"
|
||||||
style="width:240px;"
|
style="width:240px;"
|
||||||
@change="changeCourse(form.course)"
|
@change="changeCourse(form.course)"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@ -41,10 +41,10 @@
|
|||||||
placeholder=""
|
placeholder=""
|
||||||
style="width: calc(100% - 280px); float: left; margin-right: 10px;"
|
style="width: calc(100% - 280px); float: left; margin-right: 10px;"
|
||||||
/>
|
/>
|
||||||
<span style="width: 190px; float: left;">{{$t('publish.allNumberTipOne')}} {{ topicNum }} {{$t('publish.allNumberTipTwo')}}</span>
|
<span style="width: 190px; float: left;">{{ $t('publish.allNumberTipOne') }} {{ topicNum }} {{ $t('publish.allNumberTipTwo') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('publish.scorePerQuestion')" prop="mark">
|
<el-form-item :label="$t('publish.scorePerQuestion')" prop="mark">
|
||||||
<el-input v-model="form.mark" placeholder="" style="width:240px"/>
|
<el-input v-model="form.mark" placeholder="" style="width:240px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -239,9 +239,7 @@ export default {
|
|||||||
this.typeList = [];
|
this.typeList = [];
|
||||||
await getDetailList('training_type').then(res => {
|
await getDetailList('training_type').then(res => {
|
||||||
this.typeList = res.data;
|
this.typeList = res.data;
|
||||||
}).catch(() => {
|
}).catch((error) => { console.log(error.message); });
|
||||||
// console.log('获取列表失败:' + error.message);
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
async changeCourse(val) {
|
async changeCourse(val) {
|
||||||
const param = {
|
const param = {
|
||||||
@ -250,13 +248,13 @@ export default {
|
|||||||
operateType: ''
|
operateType: ''
|
||||||
};
|
};
|
||||||
this.operationTypeList = this.trainingOperateTypeMap[val];
|
this.operationTypeList = this.trainingOperateTypeMap[val];
|
||||||
if(this.operationTypeList){
|
if (this.operationTypeList) {
|
||||||
this.operationTypeList.forEach(item => {
|
this.operationTypeList.forEach(item => {
|
||||||
item.disabled = false;
|
item.disabled = false;
|
||||||
this.changeOperationDisabled(); // 禁用设置
|
this.changeOperationDisabled(); // 禁用设置
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.form.operateType="";
|
this.form.operateType='';
|
||||||
const resp = await getLessonTypeNum(param);
|
const resp = await getLessonTypeNum(param);
|
||||||
if (resp.code == 200) {
|
if (resp.code == 200) {
|
||||||
this.topicNum = resp.data;
|
this.topicNum = resp.data;
|
||||||
|
@ -3,7 +3,6 @@ var update = null
|
|||||||
function timedCount(){
|
function timedCount(){
|
||||||
|
|
||||||
onmessage = (e) => {
|
onmessage = (e) => {
|
||||||
// console.log(e.data);
|
|
||||||
if(e.data.type){
|
if(e.data.type){
|
||||||
for(let i=e.data.body.length-1;i>=0;i--){
|
for(let i=e.data.body.length-1;i>=0;i--){
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user