1. 医生端开方2.0测试

This commit is contained in:
李琦
2026-03-06 13:59:22 +08:00
parent e0a41940e3
commit 11b1c86a08
36 changed files with 11794 additions and 33 deletions

74
config/chat.js Normal file
View File

@@ -0,0 +1,74 @@
/**
* 聊天室配置文件
* 统一管理聊天室相关配置
*/
/**
* 聊天室配置
*/
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();
}
};

55
config/websocket.js Normal file
View File

@@ -0,0 +1,55 @@
/**
* WebSocket配置文件
* 统一管理WebSocket相关配置
*/
// 检查是否为开发环境
// 在uni-app中可以通过条件编译或manifest.json判断
const isDev = true; // TODO: 根据实际环境配置
/**
* WebSocket配置
*/
export const websocketConfig = {
/**
* WebSocket URL配置
* dev: 开发环境WebSocket地址
* prod: 生产环境WebSocket地址
*/
url: {
dev: 'ws://127.0.0.1:12080/ws',
prod: 'wss://api.ws.g.xiaokang88.com/ws'
},
/**
* 获取当前环境的WebSocket URL
* @returns {string} WebSocket URL
*/
getUrl() {
return isDev ? this.url.dev : this.url.prod;
},
/**
* 重连配置
*/
reconnect: {
maxAttempts: 5, // 最大重连次数
initialDelay: 1000, // 初始重连延迟(毫秒)
maxDelay: 30000 // 最大重连延迟(毫秒)
},
/**
* 心跳配置
*/
heartbeat: {
interval: 300000 // 心跳间隔毫秒5分钟
},
/**
* 用户标识配置
*/
user: {
prefix: 'doctor-', // 医生小程序使用doctor-前缀
platform: 'doctor-miniprogram' // 平台标识(医生小程序)
}
};