55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/**
|
|
* 会话列表「最后一条消息」预览文案(与患者端 ChatManager.getMessagePreview 对齐)
|
|
* @param {Object} message
|
|
* @returns {string}
|
|
*/
|
|
export function getMessagePreview(message) {
|
|
if (!message || message.message_type === undefined) {
|
|
return '您有一条新消息';
|
|
}
|
|
const messageType = message.message_type;
|
|
const content = message.message_content;
|
|
|
|
switch (messageType) {
|
|
case 0:
|
|
return content != null ? String(content) : '';
|
|
case 1:
|
|
return '[图片]';
|
|
case 2:
|
|
return '[语音消息]';
|
|
case 3:
|
|
return '[视频]';
|
|
case 4:
|
|
return '[处方单]';
|
|
case 5:
|
|
return '[文件]';
|
|
case 6:
|
|
return '[视频通话]';
|
|
case 7:
|
|
return '[语音通话]';
|
|
case 9:
|
|
try {
|
|
const parsed = typeof content === 'object' ? content : JSON.parse(content);
|
|
if (parsed.type === 'price_update') {
|
|
return parsed.message || '[价格更新]';
|
|
}
|
|
if (parsed.type === 'price_adjust') {
|
|
return parsed.message || '[价格调整]';
|
|
}
|
|
return '[系统消息]';
|
|
} catch (e) {
|
|
return '[系统消息]';
|
|
}
|
|
case 10:
|
|
return '[挂号信息]';
|
|
case 11:
|
|
return '[就诊信息]';
|
|
case 12:
|
|
return '[商品推荐]';
|
|
case 13:
|
|
return '[问诊已结束]';
|
|
default:
|
|
return '您有一条新消息';
|
|
}
|
|
}
|