44 lines
734 B
Vue
44 lines
734 B
Vue
<template>
|
|
<div class="loading-overlay" v-if="show">
|
|
<div class="spinner"></div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: "LoadingSpinner",
|
|
props: {
|
|
show: { type: Boolean, default: false }
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.loading-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: rgba(0,0,0,0.2);
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 99999;
|
|
}
|
|
|
|
.spinner {
|
|
border: 6px solid #f3f3f3;
|
|
border-top: 6px solid #007bff;
|
|
border-radius: 50%;
|
|
width: 50px;
|
|
height: 50px;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
</style>
|