chat.wxml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <!--pages/chat/chat.wxml-->
  2. <view class="container">
  3. <!-- 消息列表 -->
  4. <scroll-view
  5. class="messages-container"
  6. scroll-y="true"
  7. scroll-into-view="{{scrollIntoView}}"
  8. id="messages"
  9. >
  10. <view class="messages" wx:if="{{messages.length > 0}}">
  11. <view
  12. class="message-item {{item.role === 'user' ? 'user-message' : 'assistant-message'}}"
  13. wx:for="{{messages}}"
  14. wx:key="index"
  15. id="msg-{{index}}"
  16. >
  17. <view class="message-row {{item.role === 'user' ? 'row-right' : 'row-left'}}">
  18. <view class="avatar {{item.role === 'user' ? 'avatar-user' : 'avatar-assistant'}}">
  19. <text>{{item.role === 'user' ? '我' : '老'}}</text>
  20. </view>
  21. <view class="message-content">
  22. <text class="message-text">{{item.content}}</text>
  23. </view>
  24. </view>
  25. <view class="message-time {{item.role === 'user' ? 'time-right' : 'time-left'}}">{{formatTime(item.timestamp)}}</view>
  26. </view>
  27. </view>
  28. <!-- 加载中 -->
  29. <view class="loading" wx:if="{{loading}}">
  30. <text>加载中...</text>
  31. </view>
  32. <!-- 空状态 -->
  33. <view class="empty" wx:if="{{!loading && messages.length === 0}}">
  34. <view class="empty-icon">💬</view>
  35. <text class="empty-title">老舅AI智能客服</text>
  36. <text class="empty-tip">开始对话吧~</text>
  37. </view>
  38. </scroll-view>
  39. <!-- 输入区域 -->
  40. <view class="input-container">
  41. <input
  42. class="input-box"
  43. type="text"
  44. placeholder="输入消息..."
  45. value="{{inputMessage}}"
  46. bindinput="onInput"
  47. bindconfirm="sendMessage"
  48. disabled="{{sending}}"
  49. />
  50. <button
  51. class="send-btn"
  52. bindtap="sendMessage"
  53. disabled="{{sending || !inputMessage.trim()}}"
  54. >
  55. {{sending ? '发送中...' : '发送'}}
  56. </button>
  57. </view>
  58. </view>