|
|
@@ -11,18 +11,21 @@ Champs de saisie de texte
|
|
|
:label="$t(label_field)"
|
|
|
:rules="rules"
|
|
|
:disabled="readonly"
|
|
|
- :type="type"
|
|
|
- :error="error || violations"
|
|
|
- :error-messages="errorMessage"
|
|
|
+ :type="type === 'password' ? (show ? 'text' : type) : type"
|
|
|
+ :error="error || !!violation"
|
|
|
+ :error-messages="errorMessage || violation ? $t(violation) : ''"
|
|
|
@change="onChange($event)"
|
|
|
v-mask="mask"
|
|
|
+ :append-icon="type === 'password' ? (show ? 'mdi-eye' : 'mdi-eye-off') : ''"
|
|
|
+ @click:append="show = !show"
|
|
|
/>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
-import {defineComponent, useContext} from '@nuxtjs/composition-api'
|
|
|
+import {defineComponent, ref, useContext} from '@nuxtjs/composition-api'
|
|
|
import {useError} from "~/composables/form/useError";
|
|
|
import {mask} from 'vue-the-mask';
|
|
|
+import {Num} from "@vuex-orm/core";
|
|
|
|
|
|
export default defineComponent({
|
|
|
props: {
|
|
|
@@ -72,11 +75,12 @@ export default defineComponent({
|
|
|
},
|
|
|
setup (props, {emit}) {
|
|
|
const {store} = useContext()
|
|
|
- const {error: violations, onChange} = useError(props.field, emit, store)
|
|
|
+ const {violation, onChange} = useError(props.field, emit, store)
|
|
|
|
|
|
return {
|
|
|
label_field: props.label ?? props.field,
|
|
|
- violations,
|
|
|
+ violation,
|
|
|
+ show: ref(false),
|
|
|
onChange
|
|
|
}
|
|
|
},
|