mizzkey/src/web/app/common/views/components/media-list.vue

64 lines
2 KiB
Vue
Raw Normal View History

2018-02-12 01:06:22 +01:00
<template>
<div class="mk-media-list">
<mk-media-image v-for="media in mediaList" ref="media" :image="media" :key="media.id"/>
2018-02-12 01:06:22 +01:00
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: ['mediaList'],
2018-02-12 01:06:22 +01:00
mounted() {
const tags = this.$refs.media as Vue[];
2018-02-12 01:06:22 +01:00
if (this.mediaList.length == 1) {
2018-02-13 01:27:57 +01:00
(this.$el.style as any).gridTemplateRows = '1fr';
2018-02-12 01:06:22 +01:00
2018-02-13 01:27:57 +01:00
(tags[0].$el.style as any).gridColumn = '1 / 2';
(tags[0].$el.style as any).gridRow = '1 / 2';
} else if (this.mediaList.length == 2) {
2018-02-13 01:27:57 +01:00
(this.$el.style as any).gridTemplateColumns = '1fr 1fr';
(this.$el.style as any).gridTemplateRows = '1fr';
2018-02-12 01:06:22 +01:00
2018-02-13 01:27:57 +01:00
(tags[0].$el.style as any).gridColumn = '1 / 2';
(tags[0].$el.style as any).gridRow = '1 / 2';
(tags[1].$el.style as any).gridColumn = '2 / 3';
(tags[1].$el.style as any).gridRow = '1 / 2';
} else if (this.mediaList.length == 3) {
2018-02-13 01:27:57 +01:00
(this.$el.style as any).gridTemplateColumns = '1fr 0.5fr';
(this.$el.style as any).gridTemplateRows = '1fr 1fr';
(tags[0].$el.style as any).gridColumn = '1 / 2';
(tags[0].$el.style as any).gridRow = '1 / 3';
(tags[1].$el.style as any).gridColumn = '2 / 3';
(tags[1].$el.style as any).gridRow = '1 / 2';
(tags[2].$el.style as any).gridColumn = '2 / 3';
(tags[2].$el.style as any).gridRow = '2 / 3';
} else if (this.mediaList.length == 4) {
2018-02-13 01:27:57 +01:00
(this.$el.style as any).gridTemplateColumns = '1fr 1fr';
(this.$el.style as any).gridTemplateRows = '1fr 1fr';
(tags[0].$el.style as any).gridColumn = '1 / 2';
(tags[0].$el.style as any).gridRow = '1 / 2';
(tags[1].$el.style as any).gridColumn = '2 / 3';
(tags[1].$el.style as any).gridRow = '1 / 2';
(tags[2].$el.style as any).gridColumn = '1 / 2';
(tags[2].$el.style as any).gridRow = '2 / 3';
(tags[3].$el.style as any).gridColumn = '2 / 3';
(tags[3].$el.style as any).gridRow = '2 / 3';
2018-02-12 01:06:22 +01:00
}
}
});
</script>
2018-02-15 07:14:28 +01:00
<style lang="stylus" scoped>
.mk-media-list
2018-02-15 07:14:28 +01:00
display grid
grid-gap 4px
height 256px
@media (max-width 500px)
height 192px
</style>