leaf-document-web/src/views/documents/List.vue
2023-12-07 22:52:49 +08:00

125 lines
2.9 KiB
Vue

<template>
<div v-if="loading">
<v-row>
<v-col cols="12" md="4" xl="2" v-for="n in 6" :key="n">
<v-skeleton-loader
v-for="n in 2"
:key="n"
class="mx-auto border mt-3"
max-width="300"
type="article,actions"
:elevation="24"
></v-skeleton-loader>
</v-col>
</v-row>
</div>
<div v-else>
<div class="mb-3">
<v-btn @click="goto_create_document">创建</v-btn>
<v-btn class="ml-2" @click="goto_query_library">查询</v-btn>
</div>
<v-row>
<v-col
cols="12"
md="4"
xl="2"
v-for="document in documents.Data"
:key="document.id"
>
<v-card>
<v-card-title>{{ document.Title }}</v-card-title>
<v-card-subtitle>{{
document.Chunked ? "分块的文档" : "还没有处理"
}}</v-card-subtitle>
<v-card-subtitle>
{{ new Date(document.CreatedAt).toLocaleString() }}
</v-card-subtitle>
<v-card-text>{{ document.content }}</v-card-text>
<v-card-actions>
<v-btn text color="primary" @click="goto_document(document.ID)"
>预览</v-btn
>
<v-btn text color="secondary">编辑</v-btn>
</v-card-actions>
</v-card>
</v-col>
</v-row>
</div>
<div v-if="documents.Total == 0" class="mt-5">
<v-alert text="看样子你还没有创建任何文档。"></v-alert>
</div>
<div class="text-center">
<v-container>
<v-row justify="center">
<v-col cols="8">
<v-container class="max-width">
<v-pagination
v-model="page"
class="my-4"
:length="documents.Total"
:disabled="loading"
@update:model-value="load"
></v-pagination>
</v-container>
</v-col>
</v-row>
</v-container>
</div>
</template>
<script setup>
import { document } from "@/plugins/api";
import router from "@/router";
import { ref } from "vue";
const libraryId = router.currentRoute.value.params.LibraryId;
const page = ref(1);
const documents = ref({});
const loading = ref(false);
function load() {
loading.value = true;
document
.libraryLibraryIdDocumentsGet(page.value, libraryId)
.then((r) => {
documents.value = r.data;
})
.finally(() => {
loading.value = false;
});
}
load();
console.log(libraryId);
function goto_create_document() {
router.push({
name: "library.documents.create",
params: {
LibraryId: libraryId,
},
});
}
function goto_document(documentId) {
router.push({
name: "library.documents.view",
params: {
DocumentId: documentId,
},
});
}
function goto_query_library() {
router.push({
name: "library.query",
params: {
LibraryId: libraryId,
},
});
}
</script>