mirror of
https://gitlab.com/bramw/baserow.git
synced 2024-11-25 00:46:46 +00:00
73 lines
1.9 KiB
Vue
73 lines
1.9 KiB
Vue
<template>
|
|
<div
|
|
class="grid-view__groups"
|
|
:style="{
|
|
paddingTop: `${bufferStartIndex * rowHeight}px`,
|
|
}"
|
|
>
|
|
<div
|
|
v-for="({ groupBy, groupSpans }, index) in groupByValueSets"
|
|
:key="'group-by-' + index"
|
|
:style="{ width: groupBy.width + 'px' }"
|
|
>
|
|
<div
|
|
v-for="(groupSpan, groupSpanIndex) in groupSpans"
|
|
:key="'group-by-span-' + groupSpanIndex"
|
|
class="grid-view__group-span"
|
|
:style="{
|
|
height: `${rowHeight * groupSpan.rowSpan}px`,
|
|
}"
|
|
>
|
|
<GridViewGroup
|
|
:group-by="groupBy"
|
|
:all-fields-in-table="allFieldsInTable"
|
|
:value="groupSpan.value"
|
|
:count="groupSpan.count"
|
|
></GridViewGroup>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapGetters } from 'vuex'
|
|
|
|
import gridViewHelpers from '@baserow/modules/database/mixins/gridViewHelpers'
|
|
import GridViewGroup from '@baserow/modules/database/components/view/grid/GridViewGroup'
|
|
|
|
export default {
|
|
name: 'GridViewGroups',
|
|
components: { GridViewGroup },
|
|
mixins: [gridViewHelpers],
|
|
props: {
|
|
/**
|
|
* All the fields in the table, regardless of the visibility, or whether they
|
|
* should be rendered.
|
|
*/
|
|
allFieldsInTable: {
|
|
type: Array,
|
|
required: true,
|
|
},
|
|
groupByValueSets: {
|
|
type: Array,
|
|
required: true,
|
|
},
|
|
},
|
|
beforeCreate() {
|
|
this.$options.computed = {
|
|
...(this.$options.computed || {}),
|
|
...mapGetters({
|
|
rows: this.$options.propsData.storePrefix + 'view/grid/getRows',
|
|
allRows: this.$options.propsData.storePrefix + 'view/grid/getAllRows',
|
|
rowHeight:
|
|
this.$options.propsData.storePrefix + 'view/grid/getRowHeight',
|
|
bufferStartIndex:
|
|
this.$options.propsData.storePrefix + 'view/grid/getBufferStartIndex',
|
|
activeGroupBys:
|
|
this.$options.propsData.storePrefix + 'view/grid/getActiveGroupBys',
|
|
}),
|
|
}
|
|
},
|
|
}
|
|
</script>
|