From f5747db62d840f9ec19a24f275090424febddc5f Mon Sep 17 00:00:00 2001 From: Spythere Date: Tue, 7 Oct 2025 14:00:17 +0200 Subject: [PATCH] chore: added new ID format; restored options of incrementing ID o save/copy --- src/components/Panels/OrderMessagePanel.vue | 15 +++++++++++---- src/components/Panels/OrderTrainPickerPanel.vue | 12 ++++++++---- src/utils/orderUtils.ts | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/components/Panels/OrderMessagePanel.vue b/src/components/Panels/OrderMessagePanel.vue index b0055bb..a60301e 100644 --- a/src/components/Panels/OrderMessagePanel.vue +++ b/src/components/Panels/OrderMessagePanel.vue @@ -92,6 +92,7 @@ import { LucideCopy, LucidePencil, LucideRotateCcw, LucideSave } from 'lucide-vu import { useStore } from '../../store/store'; import { IOrderHeader, IOrderFooter, IStorageOrderData } from '../../types/orderTypes'; import StorageManager from '../../managers/storageManager'; +import { getOrderFullId } from '../../utils/orderUtils'; type TActionMonitType = 'warning' | 'info' | 'success'; @@ -255,9 +256,15 @@ function hasHeaderFieldsComplete() { }); } -// TODO function incrementOrderNo() { - // store.orderData. = (Number(order.header.orderNo) + 1).toString(); + const idData = store.orderData.footer.Z.split('-'); + + if (idData.length == 4) { + const sceneryHash = idData[2]; + let orderNumber = Number(idData[1]) || 0; + + store.orderData.footer.Z = getOrderFullId(++orderNumber, sceneryHash); + } } function copyMessage() { @@ -270,7 +277,7 @@ function copyMessage() { navigator.clipboard.writeText(orderMessagePreview.value); - if (incrementOnCopy) incrementOrderNo(); + if (incrementOnCopy.value) incrementOrderNo(); showActionMonit(t('order-message.success-copy-html'), 'success'); } @@ -319,7 +326,7 @@ function saveOrder() { store.chosenLocalOrderId = nextOrderId; showActionMonit(t('order-message.success-save-html'), 'success'); - if (incrementOnSave) incrementOrderNo(); + if (incrementOnSave.value) incrementOrderNo(); } function updateOrder() { diff --git a/src/components/Panels/OrderTrainPickerPanel.vue b/src/components/Panels/OrderTrainPickerPanel.vue index baa9060..aa85c18 100644 --- a/src/components/Panels/OrderTrainPickerPanel.vue +++ b/src/components/Panels/OrderTrainPickerPanel.vue @@ -118,6 +118,7 @@ import { API } from '../../types/apiTypes'; import { ISceneryData } from '../../types/dataTypes'; import StorageManager from '../../managers/storageManager'; import { getRegionNameById } from '../../utils/sceneryUtils'; +import { getOrderFullId } from '../../utils/orderUtils'; const store = useStore(); const regions = ['eu', 'cae', 'usw', 'us', 'ru']; @@ -238,11 +239,14 @@ function fillOrderData(train: API.ActiveTrains.Data) { store.orderData.footer.V = train.driverName; store.orderData.footer.W = scenery.dispatcherName; - const sceneryAbbrev = sceneriesData.value - ? (sceneriesData.value.find(({ name }) => name === scenery.stationName)?.abbr ?? null) - : null; + const idData = store.orderData.footer.Z.split('-'); + + if (idData.length != 4) { + store.orderData.footer.Z = getOrderFullId(0, scenery.stationHash); + } else { + store.orderData.footer.Z = getOrderFullId(Number(idData[1]) || 0, scenery.stationHash); + } - store.orderData.footer.Z = `${sceneryAbbrev || scenery.stationName} ${StorageManager.getNumericValue('orderCount') || 1}`; store.panelMode = 'OrderMessagePanel'; } diff --git a/src/utils/orderUtils.ts b/src/utils/orderUtils.ts index a60b229..a27cf34 100644 --- a/src/utils/orderUtils.ts +++ b/src/utils/orderUtils.ts @@ -1,4 +1,4 @@ -export const getOrderFullId = (orderNumber: string, sceneryHash: string) => { +export const getOrderFullId = (orderNumber: number, sceneryHash: string) => { return `RD-${orderNumber}-${sceneryHash}-${new Date().getUTCFullYear().toString().slice(2)}`; };