| 
									
										
										
										
											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}} |