SsChatSendMessage.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <view class="ss-chat-send-message">
  3. <view class="message">
  4. <image class="message-icon" mode="aspectFit" :src="getStaticImageUrl('/images/copy.png')" @tap="copyMessage" />
  5. <image class="message-icon" mode="aspectFit" :src="getStaticImageUrl('/images/edit.png')" @tap="editMessage" />
  6. <view class="bubble">{{ message }}</view>
  7. </view>
  8. </view>
  9. </template>
  10. <script>
  11. export default {
  12. name: 'SsChatSendMessage',
  13. props: {
  14. message: {
  15. type: String,
  16. default: ''
  17. }
  18. },
  19. methods: {
  20. copyMessage() {
  21. uni.setClipboardData({
  22. data: this.message,
  23. success: () => {
  24. uni.showToast({
  25. title: '复制成功',
  26. icon: 'none'
  27. });
  28. }
  29. });
  30. },
  31. editMessage() {
  32. this.$emit('editMessage', this.message);
  33. }
  34. }
  35. };
  36. </script>
  37. <style scoped lang="scss">
  38. .ss-chat-send-message {
  39. display: flex;
  40. justify-content: end;
  41. justify-content: flex-end;
  42. margin-bottom: 32rpx;
  43. .message {
  44. max-width: 100%;
  45. display: flex;
  46. justify-content: end;
  47. align-items: center;
  48. cursor: pointer;
  49. .message-icon {
  50. width: 32rpx;
  51. height: 32rpx;
  52. margin-right: 16rpx;
  53. color: #7e8aa2;
  54. font-size: 38rpx;
  55. opacity: 1;
  56. transition: opacity 0.2s linear;
  57. }
  58. .bubble {
  59. padding: 12rpx 24rpx;
  60. border-radius: 20rpx 0 20rpx 20rpx;
  61. background-color: rgba(41, 67, 214, 0.1);
  62. color: #545764;
  63. font-size: 30rpx;
  64. line-height: 48rpx;
  65. }
  66. }
  67. }
  68. </style>