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