1
This commit is contained in:
88
pages/ai-assistant/ai-assistant.wxml
Normal file
88
pages/ai-assistant/ai-assistant.wxml
Normal file
@@ -0,0 +1,88 @@
|
||||
<!--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>
|
||||
Reference in New Issue
Block a user