Files
taimed/uni_modules/hb-comment/components/hb-comment/emoji.vue
2025-08-14 16:49:58 +08:00

79 lines
1.8 KiB
Vue

<template>
<view class="emoji_blur" @click="emoji_blur" v-if="show">
<view class="emoji_box">
<scroll-view class="scrool" scroll-y="true">
<view class="emojis">
<text
@click.stop="tap(item)"
v-for="(item, index) in list"
:key="index"
>
{{ item }}
</text>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
export default {
props: {
show: Boolean
},
data() {
return {
list: [
'😃', '😆', '😅', '🤣', '😂', '🙂', '🙃', '😉', '😊', '😇', '🥰', '😍', '🤩', '😘', '😗', '☺️', '😚', '😙',
'😋', '😛', '😜', '🤪', '😝', '🤑', '😩', '😖', '😨', '😭', '😞', '🤓', '🤠', '😎', '🥳', '😵', '🤧', '🤕',
'🤗', '🤭', '🤫', '🤔', '🤐', '🤨', '😐', '😑', '😶', '😏', '😒', '🙄', '😬', '🤥', '😶‍🌫️', '😮‍🌫️', '😴',
'🤮', '❤️', '💯', '💔', '💩', '🤡', '🤖', '👻', '🙈', '🙉', '🙊', '💣', '💋', '😡', '🤬', '😠'
]
};
},
methods: {
tap(item) {
this.$emit('emoji', item); // 触发 emoji 事件,将选择的 emoji 传给父组件
},
emoji_blur() {
this.$emit('emojiblur'); // 触发 emojiblur 事件,告诉父组件关闭 emoji 选择器
}
}
};
</script>
<style scoped lang="less">
.emoji_blur {
height: 100vh;
width: 100%;
position: absolute;
top: 0;
background: transparent;
}
.emoji_box {
height: 430rpx;
background: #f6f6f6;
position: fixed;
bottom: 0;
left: 0;
}
.scrool {
height: 400rpx;
width: 100%;
margin-top: 30rpx;
}
.emojis {
width: 95%;
margin: 0 auto;
font-size: 40rpx;
display: flex;
flex-wrap: wrap;
gap: 10rpx 25rpx;
flex-shrink: 3;
padding-bottom: 50rpx;
}
</style>