89 lines
3.1 KiB
Plaintext
89 lines
3.1 KiB
Plaintext
<!--pages/ai-assistant/ai-assistant.wxml-->
|
|
<view class="ai-container">
|
|
<!-- 智能场景选择 -->
|
|
<view class="scenario-bar" wx:if="{{messages.length === 0}}">
|
|
<scroll-view class="scenario-scroll" scroll-x="{{true}}" show-scrollbar="{{false}}">
|
|
<view class="scenario-item"
|
|
wx:for="{{scenarios}}"
|
|
wx:key="id"
|
|
data-id="{{item.id}}"
|
|
bindtap="selectScenario">
|
|
<view class="scenario-icon">{{item.icon}}</view>
|
|
<view class="scenario-name">{{item.name}}</view>
|
|
</view>
|
|
</scroll-view>
|
|
</view>
|
|
|
|
<!-- 欢迎界面 -->
|
|
<view class="welcome-section" wx:if="{{messages.length === 0}}">
|
|
<view class="welcome-icon">🤖</view>
|
|
<view class="welcome-title">启思AI</view>
|
|
<view class="welcome-subtitle">启迪思维·智慧学习·与你同行</view>
|
|
<view class="welcome-tips">
|
|
<view class="tip-item">💡 智能解答学习疑问</view>
|
|
<view class="tip-item">📚 个性化学习建议</view>
|
|
<view class="tip-item">🎯 高效学习计划</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 聊天消息列表 -->
|
|
<scroll-view class="message-list"
|
|
scroll-y="{{true}}"
|
|
scroll-into-view="{{scrollIntoView}}"
|
|
scroll-with-animation="{{true}}"
|
|
wx:if="{{messages.length > 0}}">
|
|
<view class="message-item {{item.role}}"
|
|
wx:for="{{messages}}"
|
|
wx:key="index"
|
|
id="msg-{{index}}">
|
|
<view class="avatar">
|
|
<view wx:if="{{item.role === 'user'}}" class="user-avatar">👤</view>
|
|
<view wx:else class="ai-avatar">🤖</view>
|
|
</view>
|
|
<view class="message-content">
|
|
<view class="message-text">{{item.content}}</view>
|
|
<view class="message-time">{{item.time}}</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- AI思考中 -->
|
|
<view class="message-item assistant thinking" wx:if="{{isThinking}}">
|
|
<view class="avatar">
|
|
<view class="ai-avatar">🤖</view>
|
|
</view>
|
|
<view class="message-content">
|
|
<view class="thinking-dots">
|
|
<view class="dot"></view>
|
|
<view class="dot"></view>
|
|
<view class="dot"></view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
|
|
<!-- 输入区域 -->
|
|
<view class="input-bar">
|
|
<view class="input-wrapper">
|
|
<textarea class="message-input"
|
|
placeholder="{{inputPlaceholder}}"
|
|
value="{{inputValue}}"
|
|
bindinput="onInput"
|
|
auto-height
|
|
maxlength="500"
|
|
adjust-position="{{true}}"></textarea>
|
|
<view class="char-count">{{inputValue.length}}/500</view>
|
|
</view>
|
|
<button class="send-btn {{inputValue.length > 0 ? 'active' : ''}}"
|
|
bindtap="sendMessage"
|
|
disabled="{{isThinking || inputValue.length === 0}}">
|
|
<text wx:if="{{!isThinking}}">发送</text>
|
|
<text wx:else>...</text>
|
|
</button>
|
|
</view>
|
|
|
|
<!-- 清空对话按钮 -->
|
|
<view class="clear-btn" wx:if="{{messages.length > 0}}" bindtap="clearMessages">
|
|
<text>🗑️ 清空对话</text>
|
|
</view>
|
|
</view>
|