<template>
|
|
<view class="module" @click="onClick">
|
|
<image class="module-bg" :src="data.image" mode="scaleToFill"></image>
|
|
<view class="flex module-fg">
|
|
<button class="flex btn">
|
|
<view>更多</view>
|
|
<uv-icon name="arrow-down-fill" color="#808080" size="10rpx"></uv-icon>
|
|
</button>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
value: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
data: {
|
|
type: Object,
|
|
default() {
|
|
return {}
|
|
}
|
|
},
|
|
style: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
},
|
|
computed: {
|
|
isFold: {
|
|
set(val) {
|
|
this.$emit('input', val)
|
|
},
|
|
get() {
|
|
return this.value
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
onClick() {
|
|
const isFold = !this.isFold
|
|
this.isFold = isFold
|
|
this.$emit('change', isFold)
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
$w: calc(100vw - 38rpx*2);
|
|
|
|
.module {
|
|
font-size: 0;
|
|
width: $w;
|
|
height: auto;
|
|
position: relative;
|
|
font-size: 0;
|
|
border-radius: 25rpx;
|
|
overflow: hidden;
|
|
box-shadow: 0rpx 3rpx 6rpx 0rpx rgba(0,0,0,0.16);
|
|
|
|
&-bg {
|
|
width: $w;
|
|
height: calc(#{$w} * 179 / 714);
|
|
}
|
|
|
|
&-fg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 0 22rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.btn {
|
|
column-gap: 10rpx;
|
|
font-size: 22rpx;
|
|
color: #808080;
|
|
}
|
|
}
|
|
|
|
</style>
|