mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
1.9 KiB
94 lines
1.9 KiB
<template> |
|
<NuxtLayout> |
|
<v-navigation-drawer color="" permanent></v-navigation-drawer> |
|
<v-main> |
|
<v-container> |
|
<!-- tod |
|
o: move to layout or create a reusable component --> |
|
<!-- <div class="nc-container">--> |
|
<!-- <div class="nc-topbar shadow-2">--> |
|
<!-- </div>--> |
|
<!-- <div class="nc-sidebar shadow-2 p-4 overflow-y-auto">--> |
|
|
|
<!-- </div>--> |
|
<!-- <div class="nc-content p-4 overflow-auto">--> |
|
<v-row> |
|
<v-col cols="4" v-for="project in projects" :key="project.id"> |
|
|
|
<v-card @click="navigateToDashboard(project)"> |
|
<v-card-title> |
|
<div class="text-center"> |
|
<h3>{{ project.title }}</h3> |
|
</div> |
|
</v-card-title> |
|
</v-card> |
|
|
|
</v-col> |
|
</v-row> |
|
</v-container> |
|
<!-- </div>--> |
|
<!-- </div>--> |
|
|
|
|
|
</v-main> |
|
</NuxtLayout> |
|
</template> |
|
|
|
<script setup lang="ts"> |
|
|
|
import { useRouter } from "#app"; |
|
|
|
const { $api } = useNuxtApp(); |
|
const { user } = useUser(); |
|
|
|
|
|
const $router = useRouter(); |
|
|
|
const projects = ref(); |
|
|
|
const loadProjects = async () => { |
|
const projectsResponse = await $api.project.list({}, { |
|
headers: { |
|
"xc-auth": user.token |
|
} |
|
}); |
|
projects.value = projectsResponse.list; |
|
}; |
|
|
|
const navigateToDashboard = async (project) => { |
|
await $router.push("/dashboard/" + project.id); |
|
}; |
|
|
|
onMounted(async () => { |
|
await loadProjects(); |
|
}); |
|
</script> |
|
|
|
<style scoped lang="scss"> |
|
//.nc-container { |
|
// .nc-topbar { |
|
// position: fixed; |
|
// top: 0; |
|
// left: 0; |
|
// height: 50px; |
|
// width: 100%; |
|
// z-index: 5; |
|
// } |
|
// |
|
// .nc-sidebar { |
|
// position: fixed; |
|
// top: 50px; |
|
// left: 0; |
|
// height: calc(100% - 50px); |
|
// width: 250px; |
|
// } |
|
// |
|
// .nc-content { |
|
// position: fixed; |
|
// top: 50px; |
|
// left: 250px; |
|
// height: calc(100% - 50px); |
|
// width: calc(100% - 250px); |
|
// } |
|
//} |
|
</style>
|
|
|