多维表格
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.

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