Add avatar prototype preview

This commit is contained in:
2026-04-11 22:23:37 +08:00
parent 0a764a3a86
commit 2a4d2c5e1b
8 changed files with 866 additions and 1 deletions
+3
View File
@@ -149,6 +149,9 @@
<span class="msg-time">({{ now()->format('H:i:s') }})</span>
</div>
</div>
{{-- 聊天窗口内嵌虚拟形象体验卡 --}}
@include('chat.partials.avatar-widget')
</div>
{{-- 底部输入工具栏(layout/ 子目录维护) --}}
@@ -0,0 +1,30 @@
<div class="chat-avatar-widget" id="chat-avatar-widget">
<div class="chat-avatar-widget__header">
<div class="chat-avatar-widget__title">
<strong>虚拟形象</strong>
<span>聊天窗口演示版</span>
</div>
<button type="button" class="chat-avatar-widget__minimize" onclick="window.toggleChatAvatarWidgetPanel && window.toggleChatAvatarWidgetPanel()">
收起
</button>
</div>
<div class="chat-avatar-widget__body">
<div class="chat-avatar-widget__speech" id="chat-avatar-speech">这次我改成真实二次元模型预览,不再用手搓的小人占位。</div>
<div class="chat-avatar-widget__stage" id="chat-avatar-stage">
<canvas id="chat-avatar-canvas" aria-label="聊天虚拟形象预览"></canvas>
<div class="chat-avatar-widget__status" id="chat-avatar-status">二次元角色加载中...</div>
</div>
<div class="chat-avatar-widget__controls">
<button type="button" onclick="window.chatAvatarWidget && window.chatAvatarWidget.cycleModel()">换角</button>
<button type="button" onclick="window.chatAvatarWidget && window.chatAvatarWidget.cycleExpression()">神态</button>
<button type="button" onclick="window.chatAvatarWidget && window.chatAvatarWidget.triggerWave()">招手</button>
</div>
</div>
<button type="button" class="chat-avatar-widget__dock" onclick="window.toggleChatAvatarWidgetPanel && window.toggleChatAvatarWidgetPanel()">
展开形象
</button>
</div>
@@ -24,6 +24,7 @@
<div class="tool-btn" onclick="openMarriageStatusModal()" title="婚姻状态">婚姻</div>
<div class="tool-btn" onclick="openFriendPanel()" title="好友列表">好友</div>
<div class="tool-btn" onclick="openAvatarPicker()" title="修改头像">头像</div>
<div class="tool-btn" onclick="window.toggleChatAvatarWidgetPanel && window.toggleChatAvatarWidgetPanel()" title="虚拟形象体验">形象</div>
<div class="tool-btn" onclick="document.getElementById('settings-modal').style.display='flex'" title="个人设置">设置
</div>
<div class="tool-btn" onclick="window.open('{{ route('feedback.index') }}', '_blank')" title="反馈">反馈</div>