mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-03 13:28:11 +00:00
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
<div class="g-separator"></div>
|
<div class="g-separator"></div>
|
||||||
|
|
||||||
<div class="stock-specs">
|
<div class="timetable-specs">
|
||||||
<span class="badge specs-badge" v-if="timetable.authorName">
|
<span class="badge specs-badge" v-if="timetable.authorName">
|
||||||
<span>{{ $t('journal.dispatcher-name') }}</span>
|
<span>{{ $t('journal.dispatcher-name') }}</span>
|
||||||
<span>{{ timetable.authorName }}</span>
|
<span>{{ timetable.authorName }}</span>
|
||||||
@@ -254,6 +254,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.timetable-specs,
|
||||||
.stock-specs {
|
.stock-specs {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@@ -300,7 +301,7 @@ hr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@include smallScreen() {
|
@include smallScreen() {
|
||||||
.stock-specs {
|
.timetable-specs {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -187,17 +187,12 @@ import { defineComponent } from 'vue';
|
|||||||
import { useMainStore } from '../../store/mainStore';
|
import { useMainStore } from '../../store/mainStore';
|
||||||
import { useApiStore } from '../../store/apiStore';
|
import { useApiStore } from '../../store/apiStore';
|
||||||
import { Train } from '../../typings/common';
|
import { Train } from '../../typings/common';
|
||||||
import speedLimits from '../../data/speedLimits.json';
|
|
||||||
import styleMixin from '../../mixins/styleMixin';
|
import styleMixin from '../../mixins/styleMixin';
|
||||||
import trainInfoMixin from '../../mixins/trainInfoMixin';
|
import trainInfoMixin from '../../mixins/trainInfoMixin';
|
||||||
import trainCategoryMixin from '../../mixins/trainCategoryMixin';
|
import trainCategoryMixin from '../../mixins/trainCategoryMixin';
|
||||||
import ProgressBar from '../Global/ProgressBar.vue';
|
import ProgressBar from '../Global/ProgressBar.vue';
|
||||||
import StockList from '../Global/StockList.vue';
|
import StockList from '../Global/StockList.vue';
|
||||||
|
import { speedLimits } from '../../data/speedLimits';
|
||||||
export type SpeedLimitLocoType = keyof typeof speedLimits;
|
|
||||||
|
|
||||||
const isCompatibleLoco = (locoType: string): locoType is SpeedLimitLocoType =>
|
|
||||||
locoType in speedLimits;
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
mixins: [trainInfoMixin, styleMixin, trainCategoryMixin],
|
mixins: [trainInfoMixin, styleMixin, trainCategoryMixin],
|
||||||
@@ -239,19 +234,22 @@ export default defineComponent({
|
|||||||
|
|
||||||
const headLoco = this.train.stockList[0].slice(0, this.train.stockList[0].indexOf('-'));
|
const headLoco = this.train.stockList[0].slice(0, this.train.stockList[0].indexOf('-'));
|
||||||
|
|
||||||
if (!isCompatibleLoco(headLoco)) return vehicleMaxSpeed;
|
if (speedLimits[headLoco] === undefined) return vehicleMaxSpeed;
|
||||||
|
|
||||||
if (this.train.stockList.length == 1) return speedLimits[headLoco]['none'];
|
if (this.train.stockList.length == 1) return speedLimits[headLoco]['none'];
|
||||||
|
|
||||||
const speedTable = speedLimits[headLoco][isPassenger ? 'passenger' : 'cargo'];
|
const speedTable: Record<string, number> =
|
||||||
|
speedLimits[headLoco][isPassenger ? 'passenger' : 'cargo'];
|
||||||
|
|
||||||
if (!speedTable) return vehicleMaxSpeed;
|
if (!speedTable) return vehicleMaxSpeed;
|
||||||
|
|
||||||
let massKey = Object.keys(speedTable).findLast(
|
const massKey = Object.keys(speedTable).findLast(
|
||||||
(massKey) => this.train.mass >= Number(massKey)
|
(massKey) => this.train.mass >= Number(massKey)
|
||||||
);
|
);
|
||||||
|
|
||||||
return massKey ? ((speedTable as any)[massKey] as number) : vehicleMaxSpeed;
|
const massMaxSpeed = massKey ? speedTable[massKey] : Infinity;
|
||||||
|
|
||||||
|
return Math.min(massMaxSpeed, vehicleMaxSpeed);
|
||||||
},
|
},
|
||||||
journalRouteLocation() {
|
journalRouteLocation() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,156 +0,0 @@
|
|||||||
{
|
|
||||||
"EU07": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 125
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"2000000": 70
|
|
||||||
},
|
|
||||||
"none": 110
|
|
||||||
},
|
|
||||||
"4E": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 125
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"2000000": 70
|
|
||||||
},
|
|
||||||
"none": 110
|
|
||||||
},
|
|
||||||
"EU07E": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 125
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"2000000": 70
|
|
||||||
},
|
|
||||||
"none": 110
|
|
||||||
},
|
|
||||||
"EP07": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 125
|
|
||||||
},
|
|
||||||
"cargo": null,
|
|
||||||
"none": 110
|
|
||||||
},
|
|
||||||
"EP08": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 140
|
|
||||||
},
|
|
||||||
"cargo": null,
|
|
||||||
"none": 110
|
|
||||||
},
|
|
||||||
"EP09": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 160
|
|
||||||
},
|
|
||||||
"cargo": null,
|
|
||||||
"none": 160
|
|
||||||
},
|
|
||||||
"ET22": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 125
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"1200000": 100,
|
|
||||||
"3100000": 70
|
|
||||||
},
|
|
||||||
"none": 125
|
|
||||||
},
|
|
||||||
"201E": {
|
|
||||||
"passenger": {
|
|
||||||
"650000": 125
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"1200000": 100,
|
|
||||||
"3100000": 70
|
|
||||||
},
|
|
||||||
"none": 125
|
|
||||||
},
|
|
||||||
"ET41": {
|
|
||||||
"passenger": {
|
|
||||||
"700000": 125
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"4000000": 70,
|
|
||||||
"3500000": 80,
|
|
||||||
"2500000": 90,
|
|
||||||
"2000000": 100
|
|
||||||
},
|
|
||||||
"none": 110
|
|
||||||
},
|
|
||||||
"SM42": {
|
|
||||||
"passenger": {
|
|
||||||
"95000": 90,
|
|
||||||
"200000": 80,
|
|
||||||
"300000": 70,
|
|
||||||
"450000": 60,
|
|
||||||
"750000": 50,
|
|
||||||
"1130000": 40,
|
|
||||||
"1720000": 30,
|
|
||||||
"2400000": 20
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"95000": 90,
|
|
||||||
"200000": 80,
|
|
||||||
"300000": 70,
|
|
||||||
"450000": 60,
|
|
||||||
"750000": 50,
|
|
||||||
"1130000": 40,
|
|
||||||
"1720000": 30,
|
|
||||||
"2400000": 20
|
|
||||||
},
|
|
||||||
"none": 90
|
|
||||||
},
|
|
||||||
"M62": {
|
|
||||||
"passenger": {
|
|
||||||
"500000": 100,
|
|
||||||
"800000": 80,
|
|
||||||
"1200000": 60,
|
|
||||||
"2000000": 40,
|
|
||||||
"3000000": 20
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"500000": 100,
|
|
||||||
"800000": 80,
|
|
||||||
"1200000": 60,
|
|
||||||
"2000000": 40,
|
|
||||||
"3000000": 20
|
|
||||||
},
|
|
||||||
"none": 100
|
|
||||||
},
|
|
||||||
"ST44": {
|
|
||||||
"passenger": {
|
|
||||||
"500000": 100,
|
|
||||||
"800000": 80,
|
|
||||||
"1200000": 60,
|
|
||||||
"2000000": 40,
|
|
||||||
"3000000": 20
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"500000": 100,
|
|
||||||
"800000": 80,
|
|
||||||
"1200000": 60,
|
|
||||||
"2000000": 40,
|
|
||||||
"3000000": 20
|
|
||||||
},
|
|
||||||
"none": 100
|
|
||||||
},
|
|
||||||
"CTLR4C": {
|
|
||||||
"passenger": {
|
|
||||||
"500000": 100,
|
|
||||||
"800000": 80,
|
|
||||||
"1200000": 60,
|
|
||||||
"2000000": 40,
|
|
||||||
"3000000": 20
|
|
||||||
},
|
|
||||||
"cargo": {
|
|
||||||
"500000": 100,
|
|
||||||
"800000": 80,
|
|
||||||
"1200000": 60,
|
|
||||||
"2000000": 40,
|
|
||||||
"3000000": 20
|
|
||||||
},
|
|
||||||
"none": 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
export const speedLimits: Record<string, any> = {
|
||||||
|
EU07: {
|
||||||
|
passenger: {
|
||||||
|
'650000': 125
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'2000000': 70
|
||||||
|
},
|
||||||
|
none: 110
|
||||||
|
},
|
||||||
|
'4E': {
|
||||||
|
passenger: {
|
||||||
|
'650000': 125
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'2000000': 70
|
||||||
|
},
|
||||||
|
none: 110
|
||||||
|
},
|
||||||
|
EU07E: {
|
||||||
|
passenger: {
|
||||||
|
'650000': 125
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'2000000': 70
|
||||||
|
},
|
||||||
|
none: 110
|
||||||
|
},
|
||||||
|
EP07: {
|
||||||
|
passenger: {
|
||||||
|
'650000': 125
|
||||||
|
},
|
||||||
|
cargo: null,
|
||||||
|
none: 110
|
||||||
|
},
|
||||||
|
EP08: {
|
||||||
|
passenger: {
|
||||||
|
'650000': 140
|
||||||
|
},
|
||||||
|
cargo: null,
|
||||||
|
none: 110
|
||||||
|
},
|
||||||
|
EP09: {
|
||||||
|
passenger: {
|
||||||
|
'650000': 160
|
||||||
|
},
|
||||||
|
cargo: null,
|
||||||
|
none: 160
|
||||||
|
},
|
||||||
|
ET22: {
|
||||||
|
passenger: {
|
||||||
|
'650000': 125
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'1200000': 100,
|
||||||
|
'1800000': 90,
|
||||||
|
'2500000': 80,
|
||||||
|
'3100000': 70
|
||||||
|
},
|
||||||
|
none: 100
|
||||||
|
},
|
||||||
|
'201E': {
|
||||||
|
passenger: {
|
||||||
|
'650000': 125
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'1200000': 100,
|
||||||
|
'3100000': 70
|
||||||
|
},
|
||||||
|
none: 125
|
||||||
|
},
|
||||||
|
ET41: {
|
||||||
|
passenger: {
|
||||||
|
'700000': 125
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'4000000': 70,
|
||||||
|
'3500000': 80,
|
||||||
|
'2500000': 90,
|
||||||
|
'2000000': 100
|
||||||
|
},
|
||||||
|
none: 110
|
||||||
|
},
|
||||||
|
SM42: {
|
||||||
|
passenger: {
|
||||||
|
'95000': 90,
|
||||||
|
'200000': 80,
|
||||||
|
'300000': 70,
|
||||||
|
'450000': 60,
|
||||||
|
'750000': 50,
|
||||||
|
'1130000': 40,
|
||||||
|
'1720000': 30,
|
||||||
|
'2400000': 20
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'95000': 90,
|
||||||
|
'200000': 80,
|
||||||
|
'300000': 70,
|
||||||
|
'450000': 60,
|
||||||
|
'750000': 50,
|
||||||
|
'1130000': 40,
|
||||||
|
'1720000': 30,
|
||||||
|
'2400000': 20
|
||||||
|
},
|
||||||
|
none: 90
|
||||||
|
},
|
||||||
|
M62: {
|
||||||
|
passenger: {
|
||||||
|
'500000': 100,
|
||||||
|
'800000': 80,
|
||||||
|
'1200000': 60,
|
||||||
|
'2000000': 40,
|
||||||
|
'3000000': 20
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'500000': 100,
|
||||||
|
'800000': 80,
|
||||||
|
'1200000': 60,
|
||||||
|
'2000000': 40,
|
||||||
|
'3000000': 20
|
||||||
|
},
|
||||||
|
none: 100
|
||||||
|
},
|
||||||
|
ST44: {
|
||||||
|
passenger: {
|
||||||
|
'500000': 100,
|
||||||
|
'800000': 80,
|
||||||
|
'1200000': 60,
|
||||||
|
'2000000': 40,
|
||||||
|
'3000000': 20
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'500000': 100,
|
||||||
|
'800000': 80,
|
||||||
|
'1200000': 60,
|
||||||
|
'2000000': 40,
|
||||||
|
'3000000': 20
|
||||||
|
},
|
||||||
|
none: 100
|
||||||
|
},
|
||||||
|
CTLR4C: {
|
||||||
|
passenger: {
|
||||||
|
'500000': 100,
|
||||||
|
'800000': 80,
|
||||||
|
'1200000': 60,
|
||||||
|
'2000000': 40,
|
||||||
|
'3000000': 20
|
||||||
|
},
|
||||||
|
cargo: {
|
||||||
|
'500000': 100,
|
||||||
|
'800000': 80,
|
||||||
|
'1200000': 60,
|
||||||
|
'2000000': 40,
|
||||||
|
'3000000': 20
|
||||||
|
},
|
||||||
|
none: 100
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user