更新北京时间
This commit is contained in:
@@ -14,21 +14,9 @@
|
||||
|
||||
<!-- 国家和性别选择 -->
|
||||
<div class="select-box">
|
||||
<el-select-v2
|
||||
v-model="countryValue"
|
||||
:options="countryOptions"
|
||||
placeholder="国家"
|
||||
filterable
|
||||
clearable
|
||||
class="filter-select"
|
||||
/>
|
||||
<el-select-v2
|
||||
v-model="genderValue"
|
||||
:options="genderOptions"
|
||||
placeholder="性别"
|
||||
clearable
|
||||
class="filter-select"
|
||||
/>
|
||||
<el-select-v2 v-model="countryValue" :options="countryOptions" placeholder="国家" filterable clearable
|
||||
class="filter-select" />
|
||||
<el-select-v2 v-model="genderValue" :options="genderOptions" placeholder="性别" clearable class="filter-select" />
|
||||
</div>
|
||||
|
||||
<!-- 金币数量 -->
|
||||
@@ -46,15 +34,8 @@
|
||||
<!-- 时间选择 (仅PK大厅模式) -->
|
||||
<div class="time-box" :class="{ 'is-hidden': !isHallMode }">
|
||||
|
||||
<el-date-picker
|
||||
v-model="timeRange"
|
||||
type="datetimerange"
|
||||
range-separator="至"
|
||||
start-placeholder="最小PK时间"
|
||||
end-placeholder="最大PK时间"
|
||||
format="YYYY/MM/DD HH:mm"
|
||||
value-format="x"
|
||||
/>
|
||||
<el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" start-placeholder="最小PK时间"
|
||||
end-placeholder="最大PK时间" format="YYYY/MM/DD HH:mm" value-format="x" />
|
||||
</div>
|
||||
|
||||
<!-- 搜索和重置按钮 -->
|
||||
@@ -74,19 +55,10 @@
|
||||
<div class="content-area">
|
||||
<!-- 列表面板 -->
|
||||
<div class="list-panel">
|
||||
<div
|
||||
v-infinite-scroll="loadMore"
|
||||
:infinite-scroll-distance="100"
|
||||
:infinite-scroll-disabled="loading || noMore"
|
||||
class="pk-list"
|
||||
>
|
||||
<div
|
||||
v-for="(item, index) in pkList"
|
||||
:key="index"
|
||||
class="pk-card"
|
||||
:class="{ selected: selectedItem === item }"
|
||||
@click="handleItemClick(item)"
|
||||
>
|
||||
<div v-infinite-scroll="loadMore" :infinite-scroll-distance="100" :infinite-scroll-disabled="loading || noMore"
|
||||
class="pk-list">
|
||||
<div v-for="(item, index) in pkList" :key="index" class="pk-card" :class="{ selected: selectedItem === item }"
|
||||
@click="handleItemClick(item)">
|
||||
<!-- 头像 -->
|
||||
<div class="pk-avatar">
|
||||
<img :src="item.anchorIcon" alt="" />
|
||||
@@ -101,12 +73,14 @@
|
||||
<span class="pk-country">{{ item.country }}</span>
|
||||
</div>
|
||||
<!-- 时间 -->
|
||||
<div class="pk-time">PK时间(本地时间): {{ formatTime(item.pkTime * 1000) }}</div>
|
||||
<div class="pk-time">PK时间(本地时间): {{ formatTime(item.pkTime * 1000) }} · 北京时间: {{
|
||||
TimestampttoBeijingTime(item.pkTime * 1000) }}</div>
|
||||
<!-- PK信息 -->
|
||||
<div class="pk-stats">
|
||||
<img class="stat-icon" src="https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/gold.png" alt="" />
|
||||
<span>金币: {{ item.coin }}K</span>
|
||||
<img class="stat-icon session-icon" src="https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/session.png" alt="" />
|
||||
<img class="stat-icon session-icon"
|
||||
src="https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/session.png" alt="" />
|
||||
<span>场次: {{ item.pkNumber }}场</span>
|
||||
</div>
|
||||
<!-- 备注 -->
|
||||
@@ -125,13 +99,10 @@
|
||||
<span class="chat-header-label">聊天</span>
|
||||
<span v-if="chatUserInfo.nickName" class="chat-header-name">· {{ chatUserInfo.nickName }}</span>
|
||||
</div>
|
||||
<div class="chat-messages" ref="chatMessagesRef" :style="{ visibility: isScrollReady ? 'visible' : 'hidden' }">
|
||||
<div
|
||||
v-for="(msg, index) in messagesList"
|
||||
:key="index"
|
||||
class="message-item"
|
||||
:class="{ mine: msg.senderId == currentUser.id, 'pk-message': msg.type === 'pk' }"
|
||||
>
|
||||
<div class="chat-messages" ref="chatMessagesRef"
|
||||
:style="{ visibility: isScrollReady ? 'visible' : 'hidden' }">
|
||||
<div v-for="(msg, index) in messagesList" :key="index" class="message-item"
|
||||
:class="{ mine: msg.senderId == currentUser.id, 'pk-message': msg.type === 'pk' }">
|
||||
<div class="message-triangle" v-if="msg.type === 'text'"></div>
|
||||
<div class="message-content">
|
||||
<div v-if="msg.type === 'text'" class="text-message">{{ msg.payload.text }}</div>
|
||||
@@ -155,11 +126,7 @@
|
||||
<div class="send-btn" @click="sendMessage">发送</div>
|
||||
</div>
|
||||
<div class="input-box">
|
||||
<textarea
|
||||
v-model="inputText"
|
||||
placeholder="输入消息..."
|
||||
@keydown.enter.prevent="sendMessage"
|
||||
></textarea>
|
||||
<textarea v-model="inputText" placeholder="输入消息..." @keydown.enter.prevent="sendMessage"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -170,13 +137,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 隐藏的文件输入 -->
|
||||
<input
|
||||
ref="fileInputRef"
|
||||
type="file"
|
||||
accept="image/*"
|
||||
style="display: none"
|
||||
@change="handleFileSelect"
|
||||
/>
|
||||
<input ref="fileInputRef" type="file" accept="image/*" style="display: none" @change="handleFileSelect" />
|
||||
|
||||
<!-- PK邀请弹窗 -->
|
||||
<el-dialog v-model="inviteDialogVisible" title="选择主播发起PK邀请" width="500" align-center>
|
||||
@@ -185,13 +146,8 @@
|
||||
暂无可用主播,请先在"我的"页面添加主播
|
||||
</div>
|
||||
<div v-else class="anchor-list">
|
||||
<div
|
||||
v-for="anchor in myAnchorList"
|
||||
:key="anchor.id"
|
||||
class="anchor-item"
|
||||
:class="{ selected: selectedAnchor?.id === anchor.id }"
|
||||
@click="selectedAnchor = anchor"
|
||||
>
|
||||
<div v-for="anchor in myAnchorList" :key="anchor.id" class="anchor-item"
|
||||
:class="{ selected: selectedAnchor?.id === anchor.id }" @click="selectedAnchor = anchor">
|
||||
<img class="anchor-avatar" :src="anchor.anchorIcon" alt="" />
|
||||
<div class="anchor-info">
|
||||
<div class="anchor-name">{{ anchor.anchorId }}</div>
|
||||
@@ -201,7 +157,8 @@
|
||||
</span>
|
||||
<span class="anchor-coin">{{ anchor.coin }}K</span>
|
||||
</div>
|
||||
<div class="anchor-time">PK时间: {{ formatTime(anchor.pkTime * 1000) }}</div>
|
||||
<div class="anchor-time">PK时间(本地时间): {{ formatTime(anchor.pkTime * 1000) }} · 北京时间: {{
|
||||
TimestampttoBeijingTime(anchor.pkTime * 1000) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -222,7 +179,7 @@
|
||||
import { ref, onMounted, onUnmounted, onActivated, nextTick } from 'vue'
|
||||
import { getPkList, getUserInfo, getAnchorListById, createPkRecord } from '@/api/pk-mini'
|
||||
import { getCountryNamesArray } from '@/utils/pk-mini/countryUtil'
|
||||
import { TimestamptolocalTime } from '@/utils/pk-mini/timeConversion'
|
||||
import { TimestamptolocalTime, TimestampttoBeijingTime } from '@/utils/pk-mini/timeConversion'
|
||||
import { getMainUserData } from '@/utils/pk-mini/storage'
|
||||
import { isGoEasyEnabled } from '@/config/pk-mini'
|
||||
import {
|
||||
@@ -405,7 +362,7 @@ async function handleItemClick(item) {
|
||||
// 隐藏后滚到底部再显示,避免视觉跳动
|
||||
scrollToBottomHidden()
|
||||
// 标记消息已读
|
||||
goEasyMessageRead({ id: String(item.senderId) }).catch(() => {})
|
||||
goEasyMessageRead({ id: String(item.senderId) }).catch(() => { })
|
||||
} else {
|
||||
messagesList.value = []
|
||||
ElMessage.warning('聊天功能暂时不可用(GoEasy 订阅未续费)')
|
||||
@@ -463,14 +420,14 @@ async function sendMessage() {
|
||||
scrollToBottom()
|
||||
// 发送消息后标记已读,清除导航栏红点
|
||||
const senderId = String(selectedItem.value.senderId)
|
||||
goEasyMessageRead({ id: senderId }).catch(() => {})
|
||||
goEasyMessageRead({ id: senderId }).catch(() => { })
|
||||
unreadStore.decrease(1)
|
||||
} catch (e) {
|
||||
console.error('发送消息失败', e)
|
||||
if(e =='Error: id can not be the same as your id'){
|
||||
if (e == 'Error: id can not be the same as your id') {
|
||||
ElMessage.error('不能给自己发消息')
|
||||
}else{
|
||||
ElMessage.error('发送失败')
|
||||
} else {
|
||||
ElMessage.error('发送失败')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -741,7 +698,8 @@ onUnmounted(() => {
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.search-btn, .reset-btn {
|
||||
.search-btn,
|
||||
.reset-btn {
|
||||
width: 80px;
|
||||
height: 30px;
|
||||
border-radius: 5px;
|
||||
@@ -765,7 +723,8 @@ onUnmounted(() => {
|
||||
color: #2563eb; // blue-600
|
||||
}
|
||||
|
||||
.search-btn:hover, .reset-btn:hover {
|
||||
.search-btn:hover,
|
||||
.reset-btn:hover {
|
||||
transform: scale(1.05);
|
||||
opacity: 0.9;
|
||||
}
|
||||
@@ -1013,7 +972,7 @@ onUnmounted(() => {
|
||||
|
||||
.control-btn:hover {
|
||||
background: white;
|
||||
box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
|
||||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.control-btn img {
|
||||
@@ -1064,8 +1023,8 @@ onUnmounted(() => {
|
||||
|
||||
.time-box.is-hidden {
|
||||
opacity: 0;
|
||||
visibility: hidden; // 仍然占位,但看不见
|
||||
pointer-events: none; // 不能点击
|
||||
visibility: hidden; // 仍然占位,但看不见
|
||||
pointer-events: none; // 不能点击
|
||||
}
|
||||
|
||||
// 邀请弹窗样式
|
||||
|
||||
Reference in New Issue
Block a user