1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-16 01:54:12 +00:00
bramw_baserow/web-frontend/modules/database/components/field/FieldFormulaNumberSubForm.vue
2021-11-24 10:53:00 +00:00

109 lines
2.9 KiB
Vue

<template>
<div>
<div class="control">
<label class="control__label control__label--small">{{
$t('fieldFormulaNumberSubForm.typeLabel')
}}</label>
<div class="control__elements">
<Dropdown
:class="{ 'dropdown--error': $v.numberType.$error }"
:value="numberType"
@input="changeNumberType($event)"
@hide="$v.numberType.$touch()"
>
<DropdownItem
:name="$t('fieldFormulaNumberSubForm.integer') + ' (1)'"
value="INTEGER"
></DropdownItem>
<DropdownItem
:name="$t('fieldFormulaNumberSubForm.decimal') + ' (1.0)'"
value="DECIMAL"
></DropdownItem>
</Dropdown>
</div>
</div>
<div v-show="numberType === 'DECIMAL'" class="control">
<label class="control__label control__label--small">{{
$t('fieldFormulaNumberSubForm.decimalPlacesLabel')
}}</label>
<div class="control__elements">
<Dropdown
v-model="values.number_decimal_places"
:class="{ 'dropdown--error': $v.values.number_decimal_places.$error }"
@hide="$v.values.number_decimal_places.$touch()"
>
<DropdownItem name="1.0" :value="1"></DropdownItem>
<DropdownItem name="1.00" :value="2"></DropdownItem>
<DropdownItem name="1.000" :value="3"></DropdownItem>
<DropdownItem name="1.0000" :value="4"></DropdownItem>
<DropdownItem name="1.00000" :value="5"></DropdownItem>
</Dropdown>
</div>
</div>
</div>
</template>
<script>
import { required } from 'vuelidate/lib/validators'
import form from '@baserow/modules/core/mixins/form'
import fieldSubForm from '@baserow/modules/database/mixins/fieldSubForm'
export default {
name: 'FieldNumberSubForm',
mixins: [form, fieldSubForm],
data() {
return {
allowedValues: ['number_decimal_places'],
values: {
number_decimal_places: 0,
},
}
},
computed: {
numberType() {
return this.values.number_decimal_places === 0 ? 'INTEGER' : 'DECIMAL'
},
},
methods: {
changeNumberType(newValue) {
if (newValue === 'INTEGER') {
this.values.number_decimal_places = 0
} else {
this.values.number_decimal_places = 1
}
},
},
validations: {
values: {
number_decimal_places: { required },
},
numberType: {
required,
},
},
}
</script>
<i18n>
{
"en": {
"fieldFormulaNumberSubForm": {
"typeLabel": "Number type",
"integer": "Integer",
"decimal": "Decimal",
"decimalPlacesLabel": "Decimal places",
"allowNegative": "Allow negative"
}
},
"fr": {
"fieldFormulaNumberSubForm": {
"typeLabel": "Type numérique",
"integer": "Entier",
"decimal": "Décimal",
"decimalPlacesLabel": "Précision",
"allowNegative": "Autoriser les nombres négatifs"
}
}
}
</i18n>