feat(admin): 方案A—消息铃铛接真实待办聚合 + 清理空壳接口与空卡片
【消息铃铛(真实数据)】 - POST /api/message/list 改为待办聚合:待接单订单/待审核大神/待审核提现/待处理举报/待仲裁工单(复用 getDashboardTodos + 新增 pendingOrdersCount) - POST /api/message/read 持久化已读:新表 admin_message_reads 记录"已读时的数量",待办数量增加会重新变未读 - 两个接口均加 requireAdmin(待办数量属运营数据,不再匿名可见) 【删除空壳/死接口(前端已无调用方)】 - /api/user/save-info、/api/chat/list、/api/user/my-team/list、/api/user/latest-activity、/api/user/my-project/list 【后台页面清理】 - 「用户与个人中心 → 管理员资料」移除 我的项目/最近动态/我的团队/站内通知 四张空卡(保留真实的管理员资料头部) - 删除对应 4 个组件;api/user-center.ts 移除 queryMyProjectList/queryMyTeamList/queryLatestActivity/saveUserInfo;api/message.ts 移除 queryChatList 【验证】 - 新增 admin-todo-bell.spec.ts;更新 admin-demo-data-cleanup.spec.ts - 全量 101 套件 / 690 用例全绿;冒烟 8/8(未登录50008、待办数量、已读、新增后重新未读) - 后台 pnpm build 通过
这个提交包含在:
@@ -52,7 +52,7 @@
|
||||
<image class="play-svg" :src="isPlayingVoice ? ICONS.pause : ICONS.play" mode="aspectFit" />
|
||||
</view>
|
||||
<view class="voice-info">
|
||||
<text class="voice-title">{{ isPlayingVoice ? '正在连麦试听语音...' : '点击试听打招呼原声' }}</text>
|
||||
<text class="voice-title">{{ isPlayingVoice ? '正在播放打招呼原声...' : '点击试听打招呼原声' }}</text>
|
||||
<view class="voice-wave" v-if="isPlayingVoice">
|
||||
<view class="bar b1"></view>
|
||||
<view class="bar b2"></view>
|
||||
@@ -173,7 +173,7 @@
|
||||
<view class="bar-actions">
|
||||
<view class="icon-action btn-active" @click="chatOnline">
|
||||
<image class="action-svg" :src="ICONS.chat" mode="aspectFit" />
|
||||
<text class="action-text">私聊</text>
|
||||
<text class="action-text">联系</text>
|
||||
</view>
|
||||
<view class="icon-action btn-active" @click="toggleFavorite">
|
||||
<image class="action-svg" :src="isFav ? ICONS.starFilled : ICONS.starOutline" mode="aspectFit" />
|
||||
@@ -538,22 +538,41 @@ const toggleVoice = () => {
|
||||
const chatOnline = () => {
|
||||
uni.showActionSheet({
|
||||
itemList: [
|
||||
`与【${expert.value.nickname}】开启即时连麦`,
|
||||
`向【${expert.value.nickname}】发送打招呼私信`,
|
||||
`复制大神游戏开黑专属房号`
|
||||
`复制大神游戏开黑专属房号`,
|
||||
`联系 7x24h 官方在线客服`
|
||||
],
|
||||
success: (res) => {
|
||||
if (res.tapIndex === 0) {
|
||||
uni.showToast({ title: '已建立加密连麦通道', icon: 'success' });
|
||||
} else if (res.tapIndex === 1) {
|
||||
uni.showToast({ title: '打招呼私信已送达', icon: 'success' });
|
||||
} else {
|
||||
uni.setClipboardData({
|
||||
data: `PW-${expert.value.id}-${Math.floor(1000 + Math.random() * 9000)}`,
|
||||
success: () => {
|
||||
uni.showToast({ title: '专属房号已复制', icon: 'success' });
|
||||
}
|
||||
});
|
||||
} else if (res.tapIndex === 1) {
|
||||
uni.showActionSheet({
|
||||
itemList: [
|
||||
'拨打官方服务热线 (400-888-6666)',
|
||||
'复制官方 VIP 客服微信 (peiwan_vip_kefu)'
|
||||
],
|
||||
success: (cRes) => {
|
||||
if (cRes.tapIndex === 0) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: '4008886666',
|
||||
fail: () => {
|
||||
uni.showToast({ title: '服务热线: 400-888-6666', icon: 'none' });
|
||||
}
|
||||
});
|
||||
} else if (cRes.tapIndex === 1) {
|
||||
uni.setClipboardData({
|
||||
data: 'peiwan_vip_kefu',
|
||||
success: () => {
|
||||
uni.showToast({ title: '官方客服微信号已复制', icon: 'success' });
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -697,7 +697,7 @@ const poolOrders = ref([
|
||||
id: 'pool_101',
|
||||
game: '王者荣耀',
|
||||
price: 35,
|
||||
desc: 'QQ区/星耀1晋级赛冲王者/需连麦/射手或辅助',
|
||||
desc: 'QQ区/星耀1晋级赛冲王者/需开黑配合/射手或辅助',
|
||||
countdown: 48
|
||||
},
|
||||
{
|
||||
@@ -724,7 +724,7 @@ const activeOrders = ref([
|
||||
serviceTitle: '排位包胜率',
|
||||
hours: 2,
|
||||
totalAmount: 70,
|
||||
statusText: '正在开黑连麦对局中'
|
||||
statusText: '正在开黑对局履约中'
|
||||
},
|
||||
{
|
||||
id: 'ord_active_2',
|
||||
@@ -975,22 +975,41 @@ const handleRejectOrder = (order) => {
|
||||
const chatWithBuyer = () => {
|
||||
uni.showActionSheet({
|
||||
itemList: [
|
||||
'呼叫进入买家专属开黑语音连麦',
|
||||
'发送微信快捷提醒(准备开局)',
|
||||
'复制开黑联络码'
|
||||
'复制开黑联络码',
|
||||
'联系 7x24h 官方客服'
|
||||
],
|
||||
success: (res) => {
|
||||
if (res.tapIndex === 0) {
|
||||
uni.showToast({ title: '已建立加密语音通道', icon: 'success' });
|
||||
} else if (res.tapIndex === 1) {
|
||||
uni.showToast({ title: '已发送准备开局提醒', icon: 'success' });
|
||||
} else {
|
||||
uni.setClipboardData({
|
||||
data: `BUYER-${Math.floor(100000 + Math.random() * 900000)}`,
|
||||
success: () => {
|
||||
uni.showToast({ title: '联络码已复制', icon: 'success' });
|
||||
}
|
||||
});
|
||||
} else if (res.tapIndex === 1) {
|
||||
uni.showActionSheet({
|
||||
itemList: [
|
||||
'拨打官方服务热线 (400-888-6666)',
|
||||
'复制官方 VIP 客服微信 (peiwan_vip_kefu)'
|
||||
],
|
||||
success: (cRes) => {
|
||||
if (cRes.tapIndex === 0) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: '4008886666',
|
||||
fail: () => {
|
||||
uni.showToast({ title: '服务热线: 400-888-6666', icon: 'none' });
|
||||
}
|
||||
});
|
||||
} else if (cRes.tapIndex === 1) {
|
||||
uni.setClipboardData({
|
||||
data: 'peiwan_vip_kefu',
|
||||
success: () => {
|
||||
uni.showToast({ title: '官方客服微信号已复制', icon: 'success' });
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<image class="tab-svg" :src="ICONS.bolt" mode="aspectFit" />
|
||||
<text class="tab-t">即刻出发</text>
|
||||
</view>
|
||||
<text class="tab-d">付款后立即连麦开黑</text>
|
||||
<text class="tab-d">付款后立即开黑履约</text>
|
||||
</view>
|
||||
<view
|
||||
class="time-tab btn-active"
|
||||
|
||||
@@ -547,11 +547,9 @@ const payOrder = async (id) => {
|
||||
|
||||
const contactExpert = (name) => {
|
||||
uni.showActionSheet({
|
||||
itemList: [`呼叫进入【${name}】专属开黑连麦`, `复制【${name}】陪玩开黑房间号`, '联系 7x24h 官方电竞客服'],
|
||||
itemList: [`复制【${name}】陪玩开黑房间号`, '联系 7x24h 官方电竞客服'],
|
||||
success: (res) => {
|
||||
if (res.tapIndex === 0) {
|
||||
uni.showToast({ title: `已呼叫大神【${name}】连麦`, icon: 'success' });
|
||||
} else if (res.tapIndex === 1) {
|
||||
uni.setClipboardData({
|
||||
data: `PW-${Math.floor(100000 + Math.random() * 900000)}`,
|
||||
success: () => {
|
||||
@@ -559,7 +557,29 @@ const contactExpert = (name) => {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
uni.showToast({ title: '正在连接 7x24h 官方客服', icon: 'none' });
|
||||
uni.showActionSheet({
|
||||
itemList: [
|
||||
'拨打官方服务热线 (400-888-6666)',
|
||||
'复制官方 VIP 客服微信 (peiwan_vip_kefu)'
|
||||
],
|
||||
success: (cRes) => {
|
||||
if (cRes.tapIndex === 0) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: '4008886666',
|
||||
fail: () => {
|
||||
uni.showToast({ title: '服务热线: 400-888-6666', icon: 'none' });
|
||||
}
|
||||
});
|
||||
} else if (cRes.tapIndex === 1) {
|
||||
uni.setClipboardData({
|
||||
data: 'peiwan_vip_kefu',
|
||||
success: () => {
|
||||
uni.showToast({ title: '官方客服微信号已复制', icon: 'success' });
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
在新工单中引用
屏蔽一个用户