fix(number-fields): избегаем потери точности длинных чисел
- number-поля теперь рендерятся как text + inputMode=numeric, чтобы браузер не округлял значения через input type=number - пробелы при вставке в number-поля удаляются - бэкенд нормализует значения number-полей в строку перед сохранением - добавлен хелпер normalizeFieldValueForStorage Closes: искажение расчётного счёта и других длинных числовых полей
This commit is contained in:
11
server/utils/normalize-field-value.ts
Normal file
11
server/utils/normalize-field-value.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Нормализация значения перед сохранением в task_field_values.
|
||||
* Поля типа number храним как строку, чтобы избежать потери точности
|
||||
* при сериализации в JSON/JavaScript Number (IEEE 754).
|
||||
*/
|
||||
export function normalizeFieldValueForStorage(value: unknown, fieldType?: string): any {
|
||||
if (fieldType === 'number' && value !== null && value !== undefined && value !== '') {
|
||||
return String(value).replace(/\s/g, '');
|
||||
}
|
||||
return value;
|
||||
}
|
||||
Reference in New Issue
Block a user