99 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			99 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
|  | <template> | ||
|  |   <div class="form-input-container"> | ||
|  |     <div class="card-title"> | ||
|  |       {{ props.title }} | ||
|  |     </div> | ||
|  |     <div class="form-input-box"> | ||
|  |       <input | ||
|  |         v-model="text" | ||
|  |         class="form-input" | ||
|  |       > | ||
|  |       <button | ||
|  |         class="form-button" | ||
|  |         :disabled="disabled" | ||
|  |         @click="listItemClick" | ||
|  |       /> | ||
|  |     </div> | ||
|  |   </div> | ||
|  | </template> | ||
|  | 
 | ||
|  | <script lang="ts"> | ||
|  | import vue from '../../adapter-vue'; | ||
|  | 
 | ||
|  | const { ref } = vue; | ||
|  | 
 | ||
|  | interface Props { | ||
|  |   title: string; | ||
|  | } | ||
|  | export default { | ||
|  |   props: { | ||
|  |     title: { | ||
|  |       type: String, | ||
|  |       default: '', | ||
|  |     }, | ||
|  |   }, | ||
|  |   emits: ['input-submit'], | ||
|  |   setup(props: Props, { emit }) { | ||
|  |     const disabled = ref<boolean>(false); | ||
|  |     const text = ref<string>(''); | ||
|  | 
 | ||
|  |     const listItemClick = (): void => { | ||
|  |       disabled.value = true; | ||
|  |       emit('input-submit', text.value); | ||
|  |     }; | ||
|  |     return { | ||
|  |       disabled, | ||
|  |       text, | ||
|  |       listItemClick, | ||
|  |       props, | ||
|  |     }; | ||
|  |   }, | ||
|  | }; | ||
|  | </script> | ||
|  | <style lang="scss"> | ||
|  | .form-input-container { | ||
|  |   .card-title { | ||
|  |     margin-bottom: 8px; | ||
|  |   } | ||
|  | 
 | ||
|  |   .form-input-box { | ||
|  |     display: flex; | ||
|  | 
 | ||
|  |     button:disabled { | ||
|  |       background: #d8d8d8; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   .form-input { | ||
|  |     width: 100%; | ||
|  |     height: 36px; | ||
|  |     border-radius: 8px 0 0 8px; | ||
|  |     border: 1px rgba(221, 221, 221, 1) solid; | ||
|  |   } | ||
|  | 
 | ||
|  |   .form-button { | ||
|  |     position: relative; | ||
|  |     height: 40px; | ||
|  |     width: 42px; | ||
|  |     font-size: 16px; | ||
|  |     border-radius: 0 8px 8px 0; | ||
|  |     border: 0 rgba(221, 221, 221, 1) solid; | ||
|  |     background: #006eff; | ||
|  |     color: white; | ||
|  |     cursor: pointer; | ||
|  |   } | ||
|  | 
 | ||
|  |   .form-button::before { | ||
|  |     content: ""; | ||
|  |     position: absolute; | ||
|  |     width: 10px; | ||
|  |     height: 10px; | ||
|  |     top: 50%; | ||
|  |     right: 40%; | ||
|  |     border-left: 2px solid #fff; | ||
|  |     border-bottom: 2px solid #fff; | ||
|  |     transform: translate(0, -50%) rotate(-135deg); | ||
|  |   } | ||
|  | } | ||
|  | </style> |