二维码池批量上传与认证图片预览修复

- 后端新增批量创建二维码接口 POST /admin/chats/qrcodes/batch
- 前端二维码管理页支持多图拖拽批量上传
- 注册 qrcode 图片压缩场景(maxSide=2560, quality=0.95)
- 后端 normalizeScene 注册 qrcode scene
- 增强 AuthImage 组件支持 el-image 大图预览(previewSrcList)
- 修复 WithdrawalDetailDialog 提现凭证图片 401 问题
- 删除重复的 components/AuthImage.vue,统一使用共享组件
- 提交3剩余: 会话列表群类型图标、发布成功跳群、管理端路由等
This commit is contained in:
yml
2026-06-17 17:57:05 +08:00
parent 54f550b8be
commit 12f589f0df
20 changed files with 715 additions and 33 deletions
@@ -75,6 +75,13 @@ function roleLabel(role: string) {
return map[role] || '成员'
}
// 按会话类型返回图标前缀与标签:发布群 / 订单群 / 平台客服
function conversationTypeMeta(item: ChatConversation) {
if (item.type === 'listing_group') return { icon: '📢', label: '账号群' }
if (item.type === 'order_group' || item.order_id) return { icon: '📦', label: '订单' }
return { icon: '🎧', label: '平台客服' }
}
function previewText(item: ChatConversation) {
return (
item.last_message_preview ||
@@ -124,16 +131,17 @@ function previewText(item: ChatConversation) {
</div>
<div class="conversation-body">
<div class="conversation-head">
<h2>{{ item.title }}</h2>
<h2>
<span class="conv-type-icon">{{ conversationTypeMeta(item).icon }}</span>
{{ item.title }}
</h2>
<span class="conversation-time">{{
formatDateMinute(item.last_message_at || item.created_at)
}}</span>
</div>
<div class="conversation-meta">
<span class="role-chip">{{ roleLabel(item.role) }}</span>
<span class="order-id">{{
item.order_id ? `订单 #${item.order_id}` : '平台客服'
}}</span>
<span class="order-id">{{ conversationTypeMeta(item).label }}</span>
</div>
<p class="conversation-preview">{{ previewText(item) }}</p>
</div>
@@ -263,6 +271,10 @@ function previewText(item: ChatConversation) {
white-space: nowrap;
}
.conv-type-icon {
margin-right: 4px;
}
.conversation-time {
flex: none;
color: #9ca3af;