From cda6938d898dc9744cea408c6e34d591710f6003 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期一, 29 七月 2024 17:36:13 +0800 Subject: [PATCH] 2024.7.29 --- src/components/table/FYTable.vue | 31 ++++++++++++++++++++++--------- 1 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/components/table/FYTable.vue b/src/components/table/FYTable.vue index d87d4c8..e00929f 100644 --- a/src/components/table/FYTable.vue +++ b/src/components/table/FYTable.vue @@ -4,20 +4,27 @@ <template #options> <slot name="options"></slot> </template> + <template #buttons> + <slot name="buttons"></slot> + </template> </FYSearchBar> </el-row> - + <el-row ref="expandRef"> + <slot name="options-expand"></slot> + </el-row> <el-table :data="tableData" v-loading="loading" table-layout="fixed" :row-class-name="tableRowClassName" :height="tableHeight" + border > <slot name="table-column"></slot> </el-table> <el-pagination + v-if="pagination" ref="paginationRef" class="el-pagination" v-model:current-page="currentPage" @@ -41,6 +48,10 @@ export default { props: { rowClassName: undefined, + pagination: { + type: Boolean, + default: true + } }, data() { return { @@ -49,7 +60,7 @@ total: 0, currentPage: 1, pageSize: 20, - loading: false, + loading: false }; }, emits: ['search'], @@ -63,7 +74,7 @@ if (nValue != oValue) { this.onSearch(); } - }, + } }, methods: { /** @@ -77,20 +88,22 @@ 'search', { currentPage: this.currentPage, - pageSize: this.pageSize, + pageSize: this.pageSize }, (res) => { this.tableData = res.data; - this.total = res.total; + this.total = res.total ? res.total : 0; this.loading = false; } ); }, calcTableHeight() { const h1 = this.$refs.searchRef.$el.offsetHeight; - const h2 = this.$refs.paginationRef.$el.offsetHeight; + const h2 = this.$refs.paginationRef ? this.$refs.paginationRef.$el.offsetHeight : 0; + const h3 = this.$refs.expandRef.$el.offsetHeight; + const h = h1 + h2 + h3; // return `calc(100vh - ${h1}px - ${h2}px - var(--el-main-padding) * 2 - var(--el-header-height))`; - return `calc(100vh - ${h1}px - ${h2}px - 60px - var(--el-main-padding) * 2)`; + return `calc(100vh - ${h}px - 60px - var(--el-main-padding) * 2)`; }, tableRowClassName({ row }) { if (this.rowClassName) { @@ -102,12 +115,12 @@ } else { return row.extension1 != '0' ? 'online-row' : 'offline-row'; } - }, + } }, mounted() { this.tableHeight = this.calcTableHeight(); this.onSearch(); - }, + } }; </script> -- Gitblit v1.9.3