# Usage
# Default Install
import Vue from 'vue'
import currency from 'v-currency-field'
import 'v-currency-field/dist/index.css'
Vue.use(currency)
# Install for Tree Shaking
Webpack don't reconize v-text-field inside v-currency-field component. In this case we need to install v-text-field globally.
# Vue Cli
plugins/vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import { VTextField } from 'vuetify/lib';
import 'vuetify/dist/vuetify.min.css';
Vue.use(
Vuetify,
{ components: { VTextField } }
);
const opts = {}
export default new Vuetify(opts);
main.js
import Vue from 'vue';
import vuetify from './plugins/vuetify';
new Vue({
vuetify,
render: h => h(App),
}).$mount('#app');
# Nuxt
plugins/Vuetify.js
import Vue from 'vue'
import Vuetify, { VTextField } from 'vuetify/lib'
Vue.component('v-text-field', VTextField)
const opts = {}
export default new Vuetify(opts)
plugins/vCurrencyField.js
import Vue from 'vue'
import currency from 'v-currency-field'
import 'v-currency-field/dist/index.css'
Vue.use(currency)
nuxt.config.js
/*
** Plugins to load before mounting the App
*/
plugins: [
'~/plugins/Vuetify.js',
'~/plugins/vCurrencyField.js'
],
# Example
<template>
<div>
<v-currency-field label="Value" v-bind="currency_config" :error-messages="errors.price" v-model="price"></v-currency-field>
</div>
</template>
<script>
export default {
data () {
return {
errors: {},
price: 123.45,
currency_config: {
decimal: ',',
thousands: '.',
prefix: 'R$ ',
suffix: ' #',
precision: 2,
masked: false,
allowBlank: false
}
}
}
}
</script>
# Properties
All v-money properties
| property | Required | Type | Default | Description |
|---|---|---|---|---|
| precision | true | Number | 2 | How many decimal places |
| decimal | false | String | "." | Decimal separator |
| thousands | false | String | "," | Thousands separator |
| prefix | false | String | "" | Currency symbol followed by a Space, like "R$ " |
| suffix | false | String | "" | Percentage for example: " %" |
| masked | false | Boolean | false | If the component output should include the mask or not |
| allowBlank | false | Boolean | false | If the field can start blank and be cleared out by user |
And all v-text-field properties
| property | Required | Type | Observation |
|---|---|---|---|
| appendOuterIcon | false | String | |
| appendOuterIconCb | false | Function | Working but deprecated |
| @click:append-outer | false | Function | Not Working |
| autofocus | false | Boolean | |
| browserAutocomplete | false | String | Not Tested |
| clearable | false | Boolean | Not Working Event |
| clearIcon | false | String | |
| clearIconCb | false | Number | Working but deprecated |
| @click:clear | false | Number | Not Working |
| color | false | String | |
| flat | false | Boolean | |
| fullWidth | false | Boolean | |
| label | false | String | |
| prependInnerIcon | false | String | |
| prependInnerIconCb | false | Function | Working but deprecated |
| @click:prepend-inner | false | Function | Not Working |
| reverse | false | Boolean | |
| singleLine | false | Boolean | |
| solo | false | Boolean | |
| soloInverted | false | Boolean | |
| error-messages | false | [] | |
| disabled | false | Boolean | |
| readonly | false | Boolean | |
| dark | false | Boolean | |
| height | false | String | |
| hint | false | String | |
| light | false | Boolean | |
| background-color | false | String | |
| hide-details | false | Boolean | |
| dense | false | Boolean | |
| filled | false | Boolean | |
| id | false | String | |
| loader-height | false | Number,String | |
| loading | false | Boolean,String | |
| outlined | false | Boolean | |
| rounded | false | Boolean | |
| shaped | false | Boolean |