|
|
- <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>
|