修复 : 数据为空的时候,创建按钮不显示
This commit is contained in:
@@ -51,8 +51,17 @@
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<!-- 表格 -->
|
||||
<!-- 表格主体:状态占位与表格分离,工具栏始终展示 -->
|
||||
<PageState
|
||||
:status="status"
|
||||
:loading-text="loadingText"
|
||||
:empty-text="emptyText"
|
||||
:error-text="errorText"
|
||||
:partial-text="partialText"
|
||||
@retry="emit('retry')"
|
||||
>
|
||||
<a-table
|
||||
v-if="status === 'success' || status === 'partial'"
|
||||
row-key="id"
|
||||
:loading="loading"
|
||||
:pagination="pagination"
|
||||
@@ -72,6 +81,7 @@
|
||||
<slot :name="col.slotName" v-bind="slotProps" />
|
||||
</template>
|
||||
</a-table>
|
||||
</PageState>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -140,6 +150,26 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
status: {
|
||||
type: String as PropType<'loading' | 'empty' | 'error' | 'success' | 'partial' | 'unauthorized'>,
|
||||
default: 'success',
|
||||
},
|
||||
loadingText: {
|
||||
type: String,
|
||||
default: '加载中',
|
||||
},
|
||||
emptyText: {
|
||||
type: String,
|
||||
default: '暂无数据',
|
||||
},
|
||||
errorText: {
|
||||
type: String,
|
||||
default: '数据暂时不可用,请稍后重试。',
|
||||
},
|
||||
partialText: {
|
||||
type: String,
|
||||
default: '部分数据加载失败,当前页面展示可用数据。',
|
||||
},
|
||||
downloadButtonText: {
|
||||
type: String,
|
||||
default: '下载',
|
||||
@@ -167,6 +197,7 @@ const emit = defineEmits<{
|
||||
(e: 'download'): void
|
||||
(e: 'density-change', size: SizeProps): void
|
||||
(e: 'column-change', columns: TableColumnData[]): void
|
||||
(e: 'retry'): void
|
||||
}>()
|
||||
|
||||
const size = ref<SizeProps>('medium')
|
||||
|
||||
@@ -19,17 +19,8 @@
|
||||
|
||||
<a-divider style="margin-top: 0" />
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<PageState
|
||||
:status="stateStatus"
|
||||
:empty-text="emptyText"
|
||||
:error-text="errorText"
|
||||
:partial-text="partialText"
|
||||
:loading-text="loadingText"
|
||||
@retry="handleRefresh"
|
||||
>
|
||||
<!-- 数据表格:工具栏始终展示,表格主体随状态切换 -->
|
||||
<DataTable
|
||||
v-if="stateStatus !== 'empty' && stateStatus !== 'error' && stateStatus !== 'unauthorized'"
|
||||
:data="data"
|
||||
:columns="columns"
|
||||
:loading="loading"
|
||||
@@ -46,6 +37,11 @@
|
||||
:refresh-tooltip-text="refreshTooltipText"
|
||||
:density-tooltip-text="densityTooltipText"
|
||||
:column-setting-tooltip-text="columnSettingTooltipText"
|
||||
:status="stateStatus"
|
||||
:loading-text="loadingText"
|
||||
:empty-text="emptyText"
|
||||
:error-text="errorText"
|
||||
:partial-text="partialText"
|
||||
@page-change="handlePageChange"
|
||||
@page-size-change="handlePageSizeChange"
|
||||
@selection-change="handleSelectionChange"
|
||||
@@ -54,6 +50,7 @@
|
||||
@download="handleDownload"
|
||||
@density-change="handleDensityChange"
|
||||
@column-change="handleColumnChange"
|
||||
@retry="handleRefresh"
|
||||
>
|
||||
<template #toolbar-left>
|
||||
<slot name="toolbar-left" />
|
||||
@@ -66,7 +63,6 @@
|
||||
<slot :name="col.slotName" v-bind="slotProps" />
|
||||
</template>
|
||||
</DataTable>
|
||||
</PageState>
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user