// 类型 enum SettingType { // 关闭 close('close'), // 我的 mine('mine'), // 好友 friend('friend'), // 群聊 group('group'), // 删除 delete('delete'), // 消息 message('message'), // 删除消息 remove('remove'), // 清空消息 clear('clear'), ; const SettingType(this.value); final String value; static SettingType init(String value) { return SettingType.values.firstWhere( (e) => e.value == value, orElse: () => SettingType.close, ); } } // 对象枚举 enum ChatTalk { // 单聊 friend('friend'), // 群聊 group('group'), ; const ChatTalk(this.value); final String value; static ChatTalk init(String value) { return ChatTalk.values.firstWhere( (e) => e.value == value, orElse: () => ChatTalk.friend, ); } } // 消息枚举 enum MsgType { // 未知 none('none', '[未知消息]'), // 提示 tips('tips', '[提示消息]'), // 文本 text('text', '[文本消息]'), // 图片 image('image', '[图片消息]'), // 视频 video('video', '[视频消息]'), // 声音 voice('voice', '[声音消息]'), // 文件 file('file', '[文件消息]'), // 名片 card('card', '[名片消息]'), ; const MsgType( this.value, this.label, ); final String value; final String label; static MsgType init(String value) { return MsgType.values.firstWhere( (e) => e.value == value, orElse: () => MsgType.none, ); } } // 状态枚举 enum MiddleStatus { // 登录 login('login'), // 正常 normal('normal'), ; const MiddleStatus(this.value); final String value; static MiddleStatus init(String value) { return MiddleStatus.values.firstWhere( (e) => e.value == value, orElse: () => MiddleStatus.login, ); } }