diff --git a/src/components/NumberGeneratorTab.vue b/src/components/NumberGeneratorTab.vue index cf9d7c6..721b82d 100644 --- a/src/components/NumberGeneratorTab.vue +++ b/src/components/NumberGeneratorTab.vue @@ -7,9 +7,14 @@
- + + + + +
-

+
Wygenerowany numer pociągu: {{ trainNumber }} -

+
- +
+ +
@@ -33,20 +40,31 @@ import { useStore } from '../store'; import genData from '../constants/numberGeneratorData.json'; +type RegionName = keyof typeof genData.regionNumbers; + const store = useStore(); -const regionNumbers = ref(null) as Ref; +const beginRegionName = ref(null) as Ref; +const endRegionName = ref(null) as Ref; const categoryRules = ref(null) as Ref; const trainNumber = ref(null) as Ref; const randomizeTrainNumber = () => { - if (regionNumbers.value == null || categoryRules.value == null) return ''; + if (beginRegionName.value == null || endRegionName.value == null || categoryRules.value == null) return ''; let number = ''; - const randRegionNumber = regionNumbers.value[Math.floor(Math.random() * regionNumbers.value.length)]; - number += randRegionNumber.toString(); + if (beginRegionName.value == endRegionName.value) { + const sameRegionsNumbers = genData.sameRegions[beginRegionName.value]; + const randRegionNumber = sameRegionsNumbers[Math.floor(Math.random() * sameRegionsNumbers.length)]; + number += randRegionNumber.toString(); + } else { + const beginRegionNumber = genData.regionNumbers[beginRegionName.value]; + const endRegionNumber = genData.regionNumbers[endRegionName.value]; + + number += `${beginRegionNumber}${endRegionNumber}`; + } const rulesArray = categoryRules.value.split(';').map((r) => ({ index: r.split(':')[0], @@ -72,14 +90,36 @@ const randomizeTrainNumber = () => { diff --git a/src/constants/numberGeneratorData.json b/src/constants/numberGeneratorData.json index e1a351d..0e639a8 100644 --- a/src/constants/numberGeneratorData.json +++ b/src/constants/numberGeneratorData.json @@ -1,5 +1,16 @@ { - "regions": { + "regionNumbers": { + "Warszawa": 1, + "Lublin": 2, + "Kraków": 3, + "Sosnowiec": 4, + "Gdańsk": 5, + "Wrocław": 6, + "Poznań": 7, + "Szczecin": 8, + "Rezerwa": 9 + }, + "sameRegions": { "Losowy": [ 10, 11, 19, 91, 93, 97, 99, 20, 22, 29, 30, 33, 39, 40, 44, 49, 94, 50, 55, 59, 90, 95, 96, 66, 60, 69, 77, 70, 79, 88, 80, 89, 92, 98 @@ -26,4 +37,3 @@ } } - diff --git a/src/styles/tab.scss b/src/styles/tab.scss index 8b008e6..6e8f818 100644 --- a/src/styles/tab.scss +++ b/src/styles/tab.scss @@ -1,5 +1,6 @@ .tab { height: 100%; + margin-top: 1px; &_header { display: flex;