jiuyiUniapp/shop/components/rf-emoji/rf-emoji.vue

117 lines
1.9 KiB
Vue

<template>
<view class="emotion-box">
<swiper
class="swiper"
disable-programmatic-animation="true"
indicator-dots="true"
>
<swiper-item
class="emotion-box-line"
v-for="(xItem, xIndex) in list"
:key="xIndex"
>
<view v-for="(yItem, yIndex) in xItem" :key="yIndex">
<view
v-for="(zItem, zIndex) in yItem"
:key="zIndex"
class="emotion-item"
@click="clickHandler(zItem)"
>
<image :src="`/static/emoji/${zItem}.png`"></image>
</view>
</view>
</swiper-item>
</swiper>
</view>
</template>
<script>
export default {
props: {},
data() {
return {
// 画矩阵
list: [
[
[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23],
[24, 25, 26, 27],
[28, 29, 30, 31]
],
[
[32, 33, 34, 35],
[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47],
[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59],
[60, 61, 62, 63]
],
[
[64, 65, 66, 67],
[68, 69, 70, 71],
[72, 73, 74, 75],
[76, 77, 78, 79],
[80, 81, 82, 83],
[84, 85, 86, 87],
[88, 89, 90, 91],
[92, 93, 94, 95]
],
[[96, 104], [97], [98], [99], [100], [101], [102], [103]]
],
item: [],
image_width: 0
};
},
mounted() {
this.image_width = 64;
},
methods: {
clickHandler(i) {
this.$emit('emotion', i);
}
}
};
</script>
<style lang="scss">
page {
}
.emotion-box {
margin: 0 auto;
overflow: hidden;
}
.swiper {
height: 460upx;
}
.icon {
width: 48upx;
height: 48upx;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
.emotion-box-line {
display: flex;
justify-content: center;
margin: 40upx 0;
}
.emotion-item {
flex: 1;
text-align: center;
cursor: pointer;
margin: 28upx 18upx;
image {
width: 46upx;
height: 46upx;
}
}
</style>