创建ChatRoom同步AI数据

This commit is contained in:
2025-12-23 17:31:34 +08:00
parent d2e141f17c
commit d3ef2f0d60
3 changed files with 135 additions and 40 deletions

View File

@@ -51,47 +51,19 @@
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import type { ChatRoomVO } from '@/types/workcase'
import { workcaseChatAPI } from '@/api'
import type { ChatRoomVO, TbChatRoomDTO, PageRequest } from '@/types'
// 导航栏
const navPaddingTop = ref<number>(0)
const navHeight = ref<number>(44)
const capsuleHeight = ref<number>(32)
// 加载状态
const loading = ref<boolean>(false)
// 聊天室列表
const chatRooms = ref<ChatRoomVO[]>([
{
roomId: 'room001',
roomName: '控制系统故障咨询',
guestId: '1',
guestName: '李经理',
status: 'active',
lastMessage: '好的,工程师会尽快联系您',
lastMessageTime: '2024-12-17 16:30:00',
unreadCount: 2,
workcaseId: 'TH20241217001'
},
{
roomId: 'room002',
roomName: '设备维修咨询',
guestId: '2',
guestName: '王工',
status: 'closed',
lastMessage: '问题已解决,感谢您的咨询',
lastMessageTime: '2024-12-16 14:20:00',
unreadCount: 0
},
{
roomId: 'room003',
roomName: '新设备安装咨询',
guestId: '3',
guestName: '张总',
status: 'waiting',
lastMessage: '您好,请问有什么可以帮助您的?',
lastMessageTime: '2024-12-17 10:15:00',
unreadCount: 0
}
])
const chatRooms = ref<ChatRoomVO[]>([])
// 生命周期
onMounted(() => {
@@ -117,15 +89,45 @@ onMounted(() => {
})
// 加载聊天室列表
function loadChatRooms() {
console.log('加载聊天室列表')
// TODO: 调用 workcaseChatAPI.getChatRoomPage() 获取数据
async function loadChatRooms() {
loading.value = true
try {
// 获取当前用户ID
const userId = uni.getStorageSync('userId') || ''
const pageRequest: PageRequest<TbChatRoomDTO> = {
filter: {
guestId: userId // 查询当前用户的聊天室
},
pageParam: {
pageNumber: 1,
pageSize: 50
}
}
const res = await workcaseChatAPI.getChatRoomPage(pageRequest)
if (res.success && res.pageDomain?.dataList) {
chatRooms.value = res.pageDomain.dataList
}
} catch (error) {
console.error('加载聊天室列表失败:', error)
uni.showToast({
title: '加载失败',
icon: 'none'
})
} finally {
loading.value = false
}
}
// 格式化时间
// 格式化时间(兼容 iOS
function formatTime(time?: string): string {
if (!time) return ''
const date = new Date(time)
// iOS 不支持 "yyyy-MM-dd HH:mm:ss" 格式,需要转换为 "yyyy-MM-ddTHH:mm:ss"
const iosCompatibleTime = time.replace(' ', 'T')
const date = new Date(iosCompatibleTime)
if (isNaN(date.getTime())) return ''
const now = new Date()
const diff = now.getTime() - date.getTime()