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