76 lines
2.1 KiB
Vue
76 lines
2.1 KiB
Vue
<template>
|
|
<div id="app">
|
|
<div>
|
|
<h1>Ant Design Button Demo</h1>
|
|
<a-button type="primary" @click="handleClick">Click Me</a-button>
|
|
</div>
|
|
|
|
<div>
|
|
<h1>타입 선택</h1>
|
|
<div class="select-container">
|
|
<a-select v-model:value="selectedOption" placeholder="옵션을 선택하세요" style="width: 200px">
|
|
<a-select-option value="option1">옵션 1</a-select-option>
|
|
<a-select-option value="option2">옵션 2</a-select-option>
|
|
<a-select-option value="option3">옵션 3</a-select-option>
|
|
</a-select>
|
|
<br>
|
|
<p>선택한 옵션: {{ selectedOption }}</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<h2>옵션 선택</h2>
|
|
<a-radio-group v-model:value="radioOption">
|
|
<a-radio value="option1">옵션 1</a-radio>
|
|
<a-radio value="option2">옵션 2</a-radio>
|
|
<a-radio value="option3">옵션 3</a-radio>
|
|
</a-radio-group>
|
|
<br><br>
|
|
<p>선택한 옵션: {{ radioOption }}</p>
|
|
</div>
|
|
|
|
<h1>사용자 목록</h1>
|
|
<!-- 데이터가 로드되면 목록을 출력하고, 로드되지 않았으면 로딩 메시지를 표시 -->
|
|
<ul v-if="users.length">
|
|
<li v-for="user in users" :key="user.id">
|
|
{{ user.name }} - {{ user.phone }}
|
|
</li>
|
|
</ul>
|
|
<p v-else>Loading...</p>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, onMounted } from 'vue';
|
|
import axios from 'axios';
|
|
import { Button } from 'ant-design-vue';
|
|
|
|
const users = ref([]);
|
|
const selectedOption = ref('');
|
|
const radioOption = ref('option1'); // 기본 선택값 설정
|
|
|
|
const handleClick = () => {
|
|
alert('Button clicked!');
|
|
};
|
|
|
|
const fetchUsers = async () => {
|
|
try {
|
|
const response = await axios.get('/api/all'); // 엔드포인트를 적절히 변경
|
|
users.value = response.data; // 데이터를 users 배열에 저장
|
|
} catch (error) {
|
|
console.error('데이터를 가져오는 중 오류가 발생했습니다:', error);
|
|
}
|
|
};
|
|
|
|
onMounted(() => {
|
|
fetchUsers();
|
|
});
|
|
</script>
|
|
|
|
<style scoped>
|
|
.select-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-top: 20px;
|
|
}
|
|
</style> |