Files
myprojplanet_vite/src/components/CNumericKeyboard/CNumericKeyboard.ts
Surya Paolo 89a8d10eae - verifica email se non è stata verificata (componente)
- altri aggiornamenti grafica PAGERIS.
- OLLAMA AI
2025-12-11 18:34:39 +01:00

85 lines
2.3 KiB
TypeScript
Executable File

import { defineComponent, onMounted, PropType, ref, watch, computed } from 'vue'
import { tools } from '@/store/Modules/tools'
import { useQuasar } from 'quasar'
import { useI18n } from 'vue-i18n'
import { costanti } from '@costanti'
export default defineComponent({
name: 'CNumericKeyboard',
props: {
modelValue: {
type: String,
required: false,
default: '',
},
showInput: {
type: Boolean,
required: false,
default: false,
}
},
components: {},
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
const inputValue = ref(props.modelValue);
watch(() => props.modelValue, (newVal) => {
inputValue.value = newVal;
});
const displayValue = computed(() => {
return inputValue.value === '' ? '0' : inputValue.value;
});
const handleInput = (value: string | number) => {
// console.log('value', value)
if (value === '⌫') {
inputValue.value = inputValue.value.slice(0, -1);
} else if (value === '.' && !inputValue.value.includes('.')) {
inputValue.value += value.toString();
} else if (typeof value === 'number') {
inputValue.value += value.toString();
}
// console.log('inputValue.value', inputValue.value)
// Verifica se inputValue contiene più di due cifre decimali
const decimalPattern = /^\d+(\.\d{0,2})?$/; // Regex per validare il numero
const newValue = inputValue.value;
// Se non rispetta il formato, tronca il numero a 2 cifre decimali
/*if (!decimalPattern.test(newValue)) {
// Se troviamo un punto decimale, manteniamo solo le prime 2 cifre
const parts = newValue.split('.'); // Dividi il numero in parte intera e decimale
if (parts.length > 1) {
// Ricomponi il numero con al massimo 2 cifre decimali
inputValue.value = `${parts[0]}.${parts[1].substring(0, 2)}`;
} else {
// Nessuna parte decimale, quindi usa solo la parte intera
inputValue.value = parts[0];
}
}*/
emit('update:modelValue', inputValue.value);
};
function created() {
// created
}
onMounted(created)
return {
t,
costanti,
tools,
displayValue,
handleInput,
}
},
})