吉光研途前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

114 lines
2.4 KiB

<template>
<view :style="style" @click="onClick">
<view class="module">
<image class="module-bg" :src="configList.page_serve_module_bg" mode="widthFix"></image>
<image class="module-bg absolute" :src="configList.page_serve_module_bg_0" mode="widthFix"></image>
<image class="module-bg absolute" :src="configList.page_serve_module_bg_1" mode="widthFix"></image>
<image class="module-bg absolute" :src="configList.page_serve_module_bg_2" mode="widthFix"></image>
<view class="flex module-fg">
<view class="flex module-info">
<view class="title">{{ data.title }}</view>
<image class="icon" src="@/static/image/serve-icon.png" mode="widthFix"></image>
</view>
<button class="flex btn">
<view>更多</view>
<uv-icon name="arrow-down-fill" color="#808080" size="10rpx"></uv-icon>
</button>
</view>
</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">
.module {
font-size: 0;
width: 100%;
height: auto;
position: relative;
&-bg {
width: 100%;
height: auto;
}
&-fg {
position: absolute;
top: 0;
left: 0;
justify-content: space-between;
width: 100%;
padding: 30rpx 30rpx 0 22rpx;
box-sizing: border-box;
}
&-info {
column-gap: 16rpx;
.title {
font-size: 32rpx;
font-weight: 700;
line-height: 1;
font-family: PingFang SC;
color: transparent;
background-image: linear-gradient(to right, #6851A7, #AA87F0);
background-clip: text;
display: inline-block;
}
.icon {
width: 30rpx;
height: auto;
}
}
.btn {
column-gap: 10rpx;
font-size: 22rpx;
color: #808080;
}
}
.absolute {
position: absolute;
top: 0;
left: 0;
}
</style>