From de9af0c23822aa7495255e542ce9ef2d617bf568 Mon Sep 17 00:00:00 2001
From: chenghongxing <1126263215@qq.com>
Date: Thu, 23 Jul 2020 12:52:20 +0800
Subject: [PATCH] feat: add slots support for StandardTable.vue; :star2:
---
src/components/table/StandardTable.vue | 27 ++++++++++++++++++++++----
src/pages/exception/403.vue | 2 +-
src/pages/exception/404.vue | 2 +-
src/pages/exception/500.vue | 2 +-
4 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/src/components/table/StandardTable.vue b/src/components/table/StandardTable.vue
index 27650a4..f9a9f39 100644
--- a/src/components/table/StandardTable.vue
+++ b/src/components/table/StandardTable.vue
@@ -20,11 +20,15 @@
:dataSource="dataSource"
:rowKey="rowKey"
:pagination="pagination"
+ @change="onChange"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: updateSelect}"
>
+
+
+
@@ -36,13 +40,14 @@ export default {
data () {
return {
needTotalList: [],
- scopedSlots: []
+ scopedSlots: [],
+ slots: []
}
},
methods: {
updateSelect (selectedRowKeys, selectedRows) {
this.$emit('update:selectedRows', selectedRows)
- this.$emit('change', selectedRowKeys, selectedRows)
+ this.$emit('selectedRowChange', selectedRowKeys, selectedRows)
},
initTotalList (columns) {
const totalList = []
@@ -54,16 +59,30 @@ export default {
return totalList
},
getScopedSlots(columns) {
- return columns.filter(item => item.scopedSlots && item.scopedSlots.customRender)
- .map(item => item.scopedSlots.customRender)
+ let scopedSlots = columns.filter(item => item.scopedSlots).map(item => item.scopedSlots)
+ scopedSlots = scopedSlots.flatMap(item => {
+ return Object.keys(item).map(key => item[key])
+ })
+ return scopedSlots
+ },
+ getSlots(columns) {
+ let slots = columns.filter(item => item.slots).map(item => item.slots)
+ slots = slots.flatMap(item => {
+ return Object.keys(item).map(key => item[key])
+ })
+ return slots
},
onClear() {
this.updateSelect([], [])
this.$emit('clear')
+ },
+ onChange(pagination, filters, sorter, {currentDataSource}) {
+ this.$emit('change', pagination, filters, sorter, {currentDataSource})
}
},
created () {
this.scopedSlots = this.getScopedSlots(this.columns)
+ this.slots = this.getSlots(this.columns)
this.needTotalList = this.initTotalList(this.columns)
},
watch: {
diff --git a/src/pages/exception/403.vue b/src/pages/exception/403.vue
index ca8fae0..92b8f7a 100644
--- a/src/pages/exception/403.vue
+++ b/src/pages/exception/403.vue
@@ -12,7 +12,7 @@ export default {
computed: {
...mapState('setting', ['multiPage']),
minHeight() {
- return this.multiPage ? this.layoutMinHeight : this.layoutMinHeight
+ return this.multiPage ? this.layoutMinHeight - 32 : this.layoutMinHeight
}
}
}
diff --git a/src/pages/exception/404.vue b/src/pages/exception/404.vue
index 3f7dc83..fa0dcb4 100644
--- a/src/pages/exception/404.vue
+++ b/src/pages/exception/404.vue
@@ -13,7 +13,7 @@ export default {
...mapState('setting', ['multiPage']),
minHeight() {
let layoutMinHeight = this.layoutMinHeight || window.innerHeight
- return this.multiPage ? layoutMinHeight: layoutMinHeight
+ return this.multiPage ? layoutMinHeight - 32 : layoutMinHeight
}
}
}
diff --git a/src/pages/exception/500.vue b/src/pages/exception/500.vue
index 2fc76d6..30e2593 100644
--- a/src/pages/exception/500.vue
+++ b/src/pages/exception/500.vue
@@ -12,7 +12,7 @@ export default {
computed: {
...mapState('setting', ['multiPage']),
minHeight() {
- return this.multiPage ? this.layoutMinHeight : this.layoutMinHeight
+ return this.multiPage ? this.layoutMinHeight - 24 : this.layoutMinHeight
}
}
}