34 lines
1.2 KiB
Vue
34 lines
1.2 KiB
Vue
<template>
|
||
<div class="p-5 border-b border-gray-200 bg-white">
|
||
<div class="flex items-center">
|
||
<div
|
||
class="w-12 h-12 rounded-full flex items-center justify-center text-white font-bold text-lg mr-4"
|
||
:style="{ background: chatStore.currentFriend?.color }"
|
||
>
|
||
{{ chatStore.currentFriend?.name.charAt(0) }}
|
||
</div>
|
||
|
||
<div>
|
||
<h3 class="text-lg font-semibold text-gray-800">{{ chatStore.currentFriend?.name }}</h3>
|
||
<p class="text-sm flex items-center gap-1">
|
||
<span
|
||
class="w-2 h-2 rounded-full"
|
||
:class="isFriendOnline ? 'bg-green-500' : 'bg-red-500'"
|
||
></span>
|
||
<span :class="isFriendOnline ? 'text-green-600' : 'text-red-600'">
|
||
{{ isFriendOnline ? '在线' : '离线' }}
|
||
</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { ref } from 'vue';
|
||
import { useChatStore } from '@/stores/chat';
|
||
|
||
const chatStore = useChatStore();
|
||
const isFriendOnline = ref(true); // 简化处理,实际应该根据WebSocket状态判断
|
||
</script>
|