47 lines
1.9 KiB
TypeScript
47 lines
1.9 KiB
TypeScript
type DataFormProps = {
|
|
type: string;
|
|
column: string;
|
|
item: Record<string, unknown>;
|
|
}
|
|
|
|
export default function DataForm({ type, column, item }: DataFormProps) {
|
|
if(item) {
|
|
const value = item[column];
|
|
switch(type){
|
|
case 'date':
|
|
if(value && typeof value === 'string' && value.length >= 8)
|
|
item[column] = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8);
|
|
break;
|
|
case 'number':
|
|
if(value && value != '') {
|
|
item[column] = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
}
|
|
break;
|
|
case 'float1':
|
|
if(value) {
|
|
item[column] = String(value).includes('.')?String(Math.round(parseFloat(value.toString().replace(/,/g, '')) * 10) / 10).split('.').map((part, index) =>
|
|
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
|
|
).join('.')
|
|
: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
}
|
|
break;
|
|
case 'float2':
|
|
if(value) {
|
|
item[column] = String(value).includes('.')?String(Math.round(parseFloat(value.toString().replace(/,/g, '')) * 100) / 100).split('.').map((part, index) =>
|
|
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
|
|
).join('.')
|
|
: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
}
|
|
break;
|
|
case 'float3':
|
|
if(value) {
|
|
item[column] = String(value).includes('.')?String(Math.round(parseFloat(value.toString().replace(/,/g, '')) * 1000) / 1000).split('.').map((part, index) =>
|
|
index === 0 ? part.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : part
|
|
).join('.')
|
|
: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|