<template>
|
<a-spin :loading="loading" style="width: 100%">
|
<a-card class="general-card" :header-style="{ paddingBottom: '14px' }">
|
<template #title>
|
{{ $t('dataAnalysis.popularAuthor') }}
|
</template>
|
<template #extra>
|
<a-link>{{ $t('workplace.viewMore') }}</a-link>
|
</template>
|
<a-table
|
:data="tableData.list"
|
:pagination="false"
|
:bordered="false"
|
style="margin-bottom: 20px"
|
:scroll="{ x: '100%', y: '350px' }"
|
>
|
<template #columns>
|
<a-table-column
|
:title="$t('dataAnalysis.popularAuthor.column.ranking')"
|
data-index="ranking"
|
>
|
</a-table-column>
|
<a-table-column
|
:title="$t('dataAnalysis.popularAuthor.column.author')"
|
data-index="author"
|
>
|
</a-table-column>
|
<a-table-column
|
:title="$t('dataAnalysis.popularAuthor.column.content')"
|
data-index="contentCount"
|
:sortable="{
|
sortDirections: ['ascend', 'descend'],
|
}"
|
>
|
</a-table-column>
|
<a-table-column
|
:title="$t('dataAnalysis.popularAuthor.column.click')"
|
data-index="clickCount"
|
:sortable="{
|
sortDirections: ['ascend', 'descend'],
|
}"
|
>
|
</a-table-column>
|
</template>
|
</a-table>
|
</a-card>
|
</a-spin>
|
</template>
|
|
<script lang="ts" setup>
|
import { ref } from 'vue';
|
import useLoading from '@/hooks/loading';
|
import { queryPopularAuthor, PopularAuthorRes } from '@/api/visualization';
|
|
const { loading, setLoading } = useLoading();
|
const tableData = ref<PopularAuthorRes>({ list: [] });
|
const fetchData = async () => {
|
try {
|
setLoading(true);
|
const { data } = await queryPopularAuthor();
|
tableData.value = data;
|
} catch (err) {
|
// you can report use errorHandler or other
|
} finally {
|
setLoading(false);
|
}
|
};
|
fetchData();
|
</script>
|
|
<style scoped lang="less">
|
.general-card {
|
max-height: 425px;
|
}
|
</style>
|