feat 搭建架构骨架
This commit is contained in:
72
src/api/service.ts
Normal file
72
src/api/service.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
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',
|
||||
},
|
||||
])
|
||||
}
|
||||
|
||||
/** 发送文本消息(echo 用户消息,携带当前时间) */
|
||||
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(),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user