You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
2.5 KiB
Vue
154 lines
2.5 KiB
Vue
<template>
|
|
<view class="tui-grid" :class="[bottomLine?'':'tui-grid-bottom',border?'':'tui-grid__unlined','tui-grid-'+(cell<2?3:cell)]" :hover-class="hover?'tui-item-hover':''"
|
|
:hover-stay-time="150" :style="{backgroundColor:backgroundColor}" @tap="handleClick">
|
|
<view class='tui-grid-bg'>
|
|
<slot></slot>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: "tuiGridItem",
|
|
emits: ['click'],
|
|
props: {
|
|
cell: {
|
|
type: [Number,String],
|
|
default: 3
|
|
},
|
|
backgroundColor: {
|
|
type: String,
|
|
default: "#fff"
|
|
},
|
|
//是否有点击效果
|
|
hover: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
//是否需要底部线条
|
|
bottomLine: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
//是否需要纵向边框线条
|
|
border:{
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
index: {
|
|
type: Number,
|
|
default: 0
|
|
}
|
|
},
|
|
methods: {
|
|
handleClick() {
|
|
this.$emit('click', {
|
|
index: this.index
|
|
});
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.tui-grid {
|
|
position: relative;
|
|
padding: 40rpx 20rpx;
|
|
box-sizing: border-box;
|
|
background: #fff;
|
|
float: left;
|
|
}
|
|
/* #ifdef MP-BAIDU */
|
|
.tui-grid:active{
|
|
background-color: #f7f7f9;
|
|
}
|
|
/* #endif */
|
|
|
|
.tui-grid-2 {
|
|
width: 50%;
|
|
}
|
|
|
|
.tui-grid-3 {
|
|
width: 33.333333333%;
|
|
}
|
|
|
|
.tui-grid-4 {
|
|
width: 25%;
|
|
padding: 30rpx 20rpx !important;
|
|
}
|
|
|
|
.tui-grid-5 {
|
|
width: 20%;
|
|
padding: 20rpx !important;
|
|
}
|
|
|
|
.tui-grid-2:nth-of-type(2n)::before {
|
|
width: 0;
|
|
border-right: 0;
|
|
}
|
|
|
|
.tui-grid-3:nth-of-type(3n)::before {
|
|
width: 0;
|
|
border-right: 0;
|
|
}
|
|
|
|
.tui-grid-4:nth-of-type(4n)::before {
|
|
width: 0;
|
|
border-right: 0;
|
|
}
|
|
|
|
.tui-grid-5:nth-of-type(5n)::before {
|
|
width: 0;
|
|
border-right: 0;
|
|
}
|
|
|
|
.tui-grid::before {
|
|
content: " ";
|
|
position: absolute;
|
|
right: 0;
|
|
top: 0;
|
|
width: 1px;
|
|
bottom: 0;
|
|
border-right: 1px solid #eaeef1;
|
|
-webkit-transform-origin: 100% 0;
|
|
transform-origin: 100% 0;
|
|
-webkit-transform: scaleX(0.5);
|
|
transform: scaleX(0.5);
|
|
}
|
|
|
|
.tui-grid__unlined::before{
|
|
width: 0 !important;
|
|
border-right: 0 !important;
|
|
}
|
|
|
|
.tui-grid::after {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
height: 1px;
|
|
border-bottom: 1px solid #eaeef1;
|
|
-webkit-transform-origin: 0 100%;
|
|
transform-origin: 0 100%;
|
|
-webkit-transform: scaleY(0.5);
|
|
transform: scaleY(0.5);
|
|
}
|
|
|
|
.tui-grid-bottom::after {
|
|
height: 0 !important;
|
|
border-bottom: 0 !important
|
|
}
|
|
|
|
.tui-grid-bg {
|
|
position: relative;
|
|
padding: 0;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.tui-item-hover {
|
|
background-color: #f7f7f9 !important;
|
|
}
|
|
</style>
|