69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import type { ChatMessage } from '@/types/business/service'
|
|
|
|
// TODO(api): 待接口文档到位后,将以下 mock 替换为 request<T> 调用
|
|
|
|
let seq = 0
|
|
|
|
function nextId(prefix: string): string {
|
|
seq += 1
|
|
return `${prefix}-${Date.now()}-${seq}`
|
|
}
|
|
|
|
function nowTime(): string {
|
|
const date = new Date()
|
|
const pad = (n: number): string => (n < 10 ? `0${n}` : String(n))
|
|
return `今天 ${pad(date.getHours())}:${pad(date.getMinutes())}`
|
|
}
|
|
|
|
export function getChatHistory(): Promise<ChatMessage[]> {
|
|
return Promise.resolve([
|
|
{
|
|
id: 'chat-001',
|
|
role: 'assistant',
|
|
content: '您好,欢迎咨询智联智造平台!我是您的专属客服小助手,请问有什么可以帮您的?',
|
|
time: '今天 10:23',
|
|
},
|
|
{
|
|
id: 'chat-002',
|
|
role: 'user',
|
|
content: '我想咨询一下物联网全案开发的流程和周期',
|
|
time: '今天 10:23',
|
|
},
|
|
{
|
|
id: 'chat-003',
|
|
role: 'assistant',
|
|
content: '',
|
|
file: { name: '物联网全案服务介绍.pdf', size: 2.5 * 1024 * 1024 },
|
|
time: '今天 10:24',
|
|
},
|
|
])
|
|
}
|
|
|
|
export function sendChatMessage(content: string): Promise<ChatMessage> {
|
|
return Promise.resolve({
|
|
id: nextId('chat'),
|
|
role: 'user',
|
|
content,
|
|
time: nowTime(),
|
|
})
|
|
}
|
|
|
|
export function uploadChatFile(file: File): Promise<ChatMessage> {
|
|
return Promise.resolve({
|
|
id: nextId('chat'),
|
|
role: 'user',
|
|
content: '',
|
|
file: { name: file.name, size: file.size },
|
|
time: nowTime(),
|
|
})
|
|
}
|
|
|
|
export function mockAutoReply(): Promise<ChatMessage> {
|
|
return Promise.resolve({
|
|
id: nextId('chat'),
|
|
role: 'assistant',
|
|
content: '收到您的消息,专属客服稍后为您答复~',
|
|
time: nowTime(),
|
|
})
|
|
}
|