2023-05-08 14:51:58 +00:00
|
|
|
{{define "component/passwordInput"}}
|
|
|
|
<template>
|
2025-03-08 15:41:27 +00:00
|
|
|
<a-input :value="value" :type="showPassword ? 'text' : 'password'" :placeholder="placeholder"
|
|
|
|
:autocomplete="autocomplete" :name="name" @input="$emit('input', $event.target.value)">
|
|
|
|
<template v-if="icon" #prefix>
|
|
|
|
<a-icon :type="icon" style="font-size: 16px;" />
|
|
|
|
</template>
|
|
|
|
<template #addonAfter>
|
|
|
|
<a-icon :type="showPassword ? 'eye-invisible' : 'eye'" @click="toggleShowPassword" style="font-size: 16px;" />
|
|
|
|
</template>
|
|
|
|
</a-input>
|
2023-05-08 14:51:58 +00:00
|
|
|
</template>
|
|
|
|
{{end}}
|
|
|
|
|
|
|
|
{{define "component/password"}}
|
|
|
|
<script>
|
2025-03-08 15:41:27 +00:00
|
|
|
Vue.component('a-password-input', {
|
|
|
|
props: {
|
|
|
|
'title': {
|
|
|
|
type: String,
|
|
|
|
required: false,
|
|
|
|
},
|
|
|
|
'value': {
|
|
|
|
type: String,
|
|
|
|
required: false,
|
|
|
|
},
|
|
|
|
'placeholder': {
|
|
|
|
type: String,
|
|
|
|
required: false,
|
|
|
|
},
|
|
|
|
'autocomplete': {
|
|
|
|
type: String,
|
|
|
|
required: false,
|
|
|
|
},
|
|
|
|
'name': {
|
|
|
|
type: String,
|
|
|
|
required: false,
|
|
|
|
},
|
|
|
|
'icon': {
|
|
|
|
type: undefined,
|
|
|
|
required: false
|
|
|
|
}
|
|
|
|
},
|
2023-05-08 14:51:58 +00:00
|
|
|
template: `{{template "component/passwordInput"}}`,
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
showPassword: false,
|
|
|
|
};
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
toggleShowPassword() {
|
|
|
|
this.showPassword = !this.showPassword;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
{{end}}
|