mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-10 18:38:22 +00:00
36 lines
No EOL
856 B
Vue
36 lines
No EOL
856 B
Vue
<script setup lang="ts">
|
|
|
|
const props = defineModels<{
|
|
title: string,
|
|
loading: boolean,
|
|
columns?: {
|
|
heading: string,
|
|
path: string,
|
|
component?: Component,
|
|
}[],
|
|
data: Record<string, any>[],
|
|
tableProps: any,
|
|
selection?: number[],
|
|
}>();
|
|
|
|
let { title, loading, columns, data, selection, tableProps } = $(props);
|
|
|
|
const emit = defineEmits<{
|
|
(event: 'draggedRow', draggedRow: number, draggedOverRow: number): void,
|
|
}>();
|
|
|
|
async function draggedRow(draggedRow: number, draggedOverRow: number) {
|
|
emit('draggedRow', draggedRow, draggedOverRow);
|
|
}
|
|
|
|
</script>
|
|
|
|
<template>
|
|
<div>
|
|
<PageHeader :title="title">
|
|
<slot/>
|
|
</PageHeader>
|
|
<div v-if="loading" >Loading...</div>
|
|
<NiceTable v-else :columns="columns" v-model:selection="selection" @dragged-row="draggedRow" v-bind="tableProps" :data="data"/>
|
|
</div>
|
|
</template> |