Skip to content

Commit 4a5d33b

Browse files
authored
Merge pull request #464 from AOEpeople/bugfix/#263719-cash-input
Bugfix/#263719 cash input
2 parents ee2ad87 + f7ba4fe commit 4a5d33b

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed
Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,48 @@
11
<template>
22
<input
33
v-model="value"
4-
type="text"
5-
pattern="\d*([.,]?\d{0,2})"
4+
type="number"
65
required
6+
min="0.00"
7+
step=".01"
78
class="h-[46px] rounded-full border-[2px] border-solid border-[#CAD6E1] bg-white text-center"
9+
@focus="(e) => selectAllAndPlaceCursor(e.target as HTMLInputElement)"
810
/>
911
</template>
1012

1113
<script setup lang="ts">
1214
import { computed } from 'vue';
13-
import { useI18n } from 'vue-i18n';
1415
1516
const props = defineProps<{
1617
modelValue: number;
1718
}>();
1819
19-
const { locale } = useI18n();
20-
2120
const emit = defineEmits(['update:modelValue']);
2221
2322
const value = computed({
2423
get() {
25-
return locale.value === 'en' ? props.modelValue.toFixed(2) : props.modelValue.toFixed(2).replace(/\./g, ',');
24+
return props.modelValue;
2625
},
2726
set(value) {
28-
emit('update:modelValue', parseFloat(value.replace(/,/, '.')));
27+
emit('update:modelValue', parseFloat(value.toFixed(2)));
2928
}
3029
});
30+
31+
function selectAllAndPlaceCursor(element: HTMLInputElement) {
32+
element.select();
33+
element.focus();
34+
element.setSelectionRange(0, 0);
35+
}
3136
</script>
37+
38+
<style scoped>
39+
input::-webkit-outer-spin-button,
40+
input::-webkit-inner-spin-button {
41+
-webkit-appearance: none;
42+
margin: 0;
43+
}
44+
45+
input[type='number'] {
46+
-moz-appearance: textfield;
47+
}
48+
</style>

0 commit comments

Comments
 (0)