index.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <view>
  3. <view class="emotion-box" :style="{height: height + 'px'}">
  4. <view class="emotion-box-line" v-for="(line, i) in lists" :key="i">
  5. <view class="emotion-item" v-for="(item, index) in line" :key="index" @click="clickHandler(item)">
  6. <image :src="'/static/emoji/'+item.name+'.gif'" style="width: 50rpx;height: 50rpx;"></image>
  7. </view>
  8. </view>
  9. </view>
  10. </view>
  11. </template>
  12. <script>
  13. export default {
  14. props: {
  15. height: {
  16. type: Number,
  17. default: 200
  18. }
  19. },
  20. data() {
  21. return {
  22. list: [
  23. // [{'name':'微笑'}, {'name':撇嘴'}, {'色'}, {'发呆'}, {'得意'}, {'流泪'}, {'害羞'}, {'闭嘴'}],
  24. ['微笑', '撇嘴', '色', '发呆', '得意', '流泪', '害羞', '闭嘴'],
  25. ['睡', '大哭', '尴尬', '发怒', '调皮', '呲牙', '惊讶', '难过'],
  26. ['酷', '冷汗', '抓狂', '吐', '偷笑', '可爱', '白眼', '傲慢'],
  27. ['饥饿', '困', '惊恐', '流汗', '憨笑', '大兵', '奋斗', '咒骂'],
  28. ['疑问', '嘘', '晕', '折磨', '衰', '骷髅', '敲打', '再见'],
  29. ['擦汗', '抠鼻', '鼓掌', '糗大了', '坏笑', '左哼哼', '右哼哼', '哈欠'],
  30. ['鄙视', '委屈', '快哭了', '阴险', '亲亲', '吓', '可怜', '菜刀'],
  31. ['西瓜', '啤酒', '篮球', '乒乓', '咖啡', '饭', '猪头', '玫瑰', ],
  32. ['凋谢', '示爱', '爱心', '心碎', '蛋糕', '闪电', '炸弹', '刀'],
  33. ['足球', '瓢虫', '便便', '月亮', '太阳', '礼物', '拥抱', '强'],
  34. ['弱', '握手', '胜利', '抱拳', '勾引', '拳头', '差劲', '爱你'],
  35. ['NO', 'OK', '爱情', '飞吻', '跳跳', '发抖', '怄火', '转圈'],
  36. ['磕头', '回头', '跳绳', '挥手', '激动', '街舞', '左太极', '右太极'],
  37. ],
  38. reg: /\S{1,3}/gi,
  39. lists:[],
  40. listss:[]
  41. // item: []
  42. }
  43. },
  44. mounted() {
  45. // function get_img('[weixiao]')
  46. //
  47. // list[0].
  48. var value = '';
  49. this.list = this.list.map((line,index) => {
  50. this.listss = [];
  51. line = line.map((item,idx) => {
  52. value = item;
  53. item = item.replace(/\S{1,3}/gi,this.emotion(item));
  54. this.listss.push({"name":item,"index":index,"value":value,"idx":idx})
  55. return item;
  56. })
  57. this.lists.push(this.listss);
  58. return line;
  59. })
  60. // console.log(this.lists);
  61. },
  62. methods: {
  63. clickHandler(i) {
  64. // console.log(i)
  65. // let emotion = `#${i};`
  66. console.log(i.value)
  67. let emotion = `${i}`
  68. this.$emit('emotion', i.value)
  69. },
  70. emotion(res) {
  71. //let word = res.replace(/\#|\;/gi,'')
  72. const list =['微笑','撇嘴', '色', '发呆', '得意', '流泪', '害羞', '闭嘴', '睡', '大哭', '尴尬', '发怒', '调皮', '呲牙', '惊讶', '难过', '酷', '冷汗', '抓狂', '吐', '偷笑', '可爱', '白眼', '傲慢', '饥饿', '困', '惊恐', '流汗', '憨笑', '大兵', '奋斗', '咒骂', '疑问', '嘘', '晕', '折磨', '衰', '骷髅', '敲打', '再见', '擦汗', '抠鼻', '鼓掌', '糗大了', '坏笑', '左哼哼', '右哼哼', '哈欠', '鄙视', '委屈', '快哭了', '阴险', '亲亲', '吓', '可怜', '菜刀', '西瓜', '啤酒', '篮球', '乒乓', '咖啡', '饭', '猪头', '玫瑰', '凋谢', '示爱', '爱心', '心碎', '蛋糕', '闪电', '炸弹', '刀', '足球', '瓢虫', '便便', '月亮', '太阳', '礼物', '拥抱', '强', '弱', '握手', '胜利', '抱拳', '勾引', '拳头', '差劲', '爱你', 'NO', 'OK', '爱情', '飞吻', '跳跳', '发抖', '怄火', '转圈', '磕头', '回头', '跳绳', '挥手', '激动', '街舞', '献吻', '左太极', '右太极']
  73. let index = list.indexOf(res)
  74. var index1=index+100;
  75. return index1
  76. }
  77. }
  78. }
  79. </script>
  80. <style scoped>
  81. .emotion-box {
  82. margin: 0 auto;
  83. width: 98%;
  84. box-sizing: border-box;
  85. padding: 2px;
  86. overflow: hidden;
  87. overflow-y: auto;
  88. }
  89. .emotion-box-line {
  90. display: flex;
  91. }
  92. .emotion-item {
  93. flex: 1;
  94. text-align: center;
  95. cursor: pointer;
  96. }
  97. </style>