chat.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <div class="chat-window">
  3. <!-- 显示聊天消息的容器 -->
  4. <div class="message-container">
  5. <div v-for="message in messages" :key="message.id" class="message">
  6. <div v-if="message.isMe" class="message-text mine">{{ message.text }}</div>
  7. <div v-else class="message-text">{{ message.text }}</div>
  8. </div>
  9. </div>
  10. <!-- 输入消息的表单 -->
  11. <form @submit.prevent="sendMessage" class="input-form">
  12. <input v-model="inputText" type="text" placeholder="输入消息" />
  13. <button type="submit">发送</button>
  14. </form>
  15. </div>
  16. </template>
  17. <script>
  18. export default {
  19. data() {
  20. return {
  21. inputText: '',
  22. messages: [
  23. { id: 1, text: '你好', isMe: false },
  24. { id: 2, text: 'Hi', isMe: true },
  25. ],
  26. };
  27. },
  28. methods: {
  29. sendMessage() {
  30. if (this.inputText.trim()) {
  31. this.messages.push({ id: Date.now(), text: this.inputText, isMe: true });
  32. this.inputText = '';
  33. }
  34. },
  35. },
  36. };
  37. </script>
  38. <style scoped>
  39. .chat-window {
  40. max-width: 400px;
  41. margin: 0 auto;
  42. }
  43. .message-container {
  44. margin-bottom: 10px;
  45. }
  46. .message {
  47. padding: 5px;
  48. margin-bottom: 5px;
  49. }
  50. .message-text {
  51. padding: 10px;
  52. border-radius: 5px;
  53. }
  54. .mine {
  55. background-color: lightblue;
  56. }
  57. </style>