diff --git a/src/components/DriverView/DriverPropositions.vue b/src/components/DriverView/DriverPropositions.vue index e7c57e3..a10e2e8 100644 --- a/src/components/DriverView/DriverPropositions.vue +++ b/src/components/DriverView/DriverPropositions.vue @@ -45,20 +45,61 @@
{{ t('trains.number-propositions-empty') }}
-
+

{{ t('cargo-warnings.title') }}

- {{ t('cargo-warnings.' + warning) }} + {{ t('cargo-warnings.' + warningKey) }}
+ +
+
+
+

Analiza (PL):

+
+ + +
+
+ +
+ +
@@ -160,22 +201,41 @@ const chosenCategory = computed(() => { return availableCategories.value[chosenCategoryIndex.value]; }); -const getCargoWarnings = computed(() => { +const cargoWarnings = computed(() => { const stockList = props.chosenTrain.stockList; - let warnings: Set = new Set(); + let warnings: Record = {}; stockList.forEach((stockVehicle) => { const [vehicleName, vehicleCargo] = stockVehicle.split(':'); - if (vehicleName.startsWith('WB117')) warnings.add(vehicleCargo ? 'twr-un1965' : 'tn-un1965'); - else if (vehicleName.startsWith('445Rb')) - warnings.add(vehicleCargo ? 'tn-un1202' : 'tn-un1202-empty'); - else if (vehicleName.startsWith('EDK80')) warnings.add('pn-edk80'); + if (/^WB117/.test(vehicleName)) { + if (vehicleCargo) { + // warnings.add('twr-un1965'); + warnings['zags-loaded-twr'] = (warnings['zags-loaded-twr'] || 0) + 1; + } else { + // warnings.add('tn-un1965'); + warnings['zags-empty-tn'] = (warnings['zags-empty-tn'] || 0) + 1; + } + } else if (/^445Rb/.test(vehicleName)) { + if (vehicleCargo) { + // warnings.add(vehicleCargo ? 'tn-un1202' : 'tn-un1202-empty'); + warnings['zans-loaded-tn'] = (warnings['zans-loaded-tn'] || 0) + 1; + } else { + // warnings.add(vehicleCargo ? 'tn-un1202' : 'tn-un1202-empty'); + warnings['zans-empty-tn'] = (warnings['zans-empty-tn'] || 0) + 1; + } + } else if (/^EDK80/.test(vehicleName)) { + // warnings.add('pn-edk80'); + warnings['edk80-all-pn'] = (warnings['edk80-all-pn'] || 0) + 1; + } - if (vehicleCargo) { - if (vehicleCargo.startsWith('wt_20')) warnings.add('pn-innofreight'); - else if (/^(tank|vehicles_01|truck)/.test(vehicleCargo)) warnings.add('pn-military'); + if (/^wt_20/.test(vehicleCargo)) { + warnings['innofreight-all-pn'] = (warnings['innofreight-all-pn'] || 0) + 1; + } + + if (/^(tank|vehicles_01|truck)/.test(vehicleCargo)) { + warnings['military-all-pn'] = (warnings['military-all-pn'] || 0) + 1; } }); @@ -254,6 +314,42 @@ function selectCategory(i: number) { chosenCategoryIndex.value = i; generateNumberPropositions(); } + +const analysisString = computed(() => { + let analysisStr = 'Analiza: '; + + analysisStr = `$number, ${chosenCategory.value} (${props.chosenTrain.stockList[0]}, ${(props.chosenTrain.mass / 1000).toFixed(1)}t, ${props.chosenTrain.length}m)`; + + if (Object.keys(cargoWarnings.value).length > 0) { + if (Object.keys(cargoWarnings.value).some((k) => k.includes('-twr'))) + analysisStr += `
${t('cargo-warnings.has-twr')}`; + + if (Object.keys(cargoWarnings.value).some((k) => k.includes('-tn'))) + analysisStr += `
${t('cargo-warnings.has-tn')}`; + + if (cargoWarnings.value['zags-loaded-twr'] || cargoWarnings.value['zags-empty-tn']) { + analysisStr += `
33UN1965 ${cargoWarnings.value['zags-loaded-twr'] || 0}/${cargoWarnings.value['zags-empty-tn'] || 0} Zags`; + } + + if (cargoWarnings.value['zans-loaded-tn'] || cargoWarnings.value['zans-empty-tn']) { + analysisStr += `
33UN1203 ${cargoWarnings.value['zans-loaded-tn'] || 0}/${cargoWarnings.value['zans-empty-tn'] || 0} Zans`; + } + + if (Object.keys(cargoWarnings.value).some((k) => k.includes('-pn'))) { + analysisStr += `${t('cargo-warnings.has-pn')}:`; + + if (cargoWarnings.value['innofreight-all-pn']) { + analysisStr += `
- Innofreight - przekroczona skrajnia`; + } + + if (cargoWarnings.value['military-all-pn']) { + analysisStr += `
- transport wojskowy`; + } + } + } + + return analysisStr; +});