75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
/**
|
||
* 聊天室配置文件
|
||
* 统一管理聊天室相关配置
|
||
*/
|
||
|
||
/**
|
||
* 聊天室配置
|
||
*/
|
||
export const chatConfig = {
|
||
/**
|
||
* 消息类型映射
|
||
* 将消息类型名称映射到数字类型
|
||
*/
|
||
messageTypes: {
|
||
text: 0, // 文本消息
|
||
image: 1, // 图片消息
|
||
audio: 2, // 语音消息
|
||
video: 3, // 视频消息
|
||
prescription: 4, // 处方消息
|
||
file: 5, // 文件消息
|
||
register: 10, // 挂号消息
|
||
'patient-experience': 11, // 患者体验消息
|
||
'product-card': 12, // 产品卡片消息
|
||
'end-consultation': 13 // 结束问诊消息
|
||
},
|
||
|
||
/**
|
||
* 根据消息类型名称获取数字类型
|
||
* @param {string} typeName - 消息类型名称
|
||
* @returns {number} 消息类型数字
|
||
*/
|
||
getMessageType(typeName) {
|
||
return this.messageTypes[typeName] || 0;
|
||
},
|
||
|
||
/**
|
||
* 根据数字类型获取消息类型名称
|
||
* @param {number} type - 消息类型数字
|
||
* @returns {string} 消息类型名称
|
||
*/
|
||
getMessageTypeName(type) {
|
||
const entries = Object.entries(this.messageTypes);
|
||
const found = entries.find(([name, value]) => value === type);
|
||
return found ? found[0] : 'text';
|
||
},
|
||
|
||
/**
|
||
* 房间配置
|
||
*/
|
||
room: {
|
||
messagePageSize: 20, // 每页消息数量
|
||
maxCacheSize: 100 // 最大缓存消息数
|
||
},
|
||
|
||
/**
|
||
* 未读数配置
|
||
*/
|
||
unread: {
|
||
maxCount: 99 // 最大未读数显示(超过显示99+)
|
||
},
|
||
|
||
/**
|
||
* 格式化未读数显示
|
||
* @param {number} count - 未读数
|
||
* @returns {string} 格式化后的未读数
|
||
*/
|
||
formatUnreadCount(count) {
|
||
if (count <= 0) return '';
|
||
if (count > this.unread.maxCount) {
|
||
return `${this.unread.maxCount}+`;
|
||
}
|
||
return count.toString();
|
||
}
|
||
};
|