Files
tuiche/lib/enum/APPQuickCheckStatus.dart
2026-03-14 10:44:28 +08:00

155 lines
4.7 KiB
Dart

import 'package:ef/ef.dart';
enum APPQuickCheckStatus {
notFound, // 404: 未找到快检信息
inProgress, // 200: 快检进行中
completed, // 201: 快检完成
timeout, // 202: 快检超时
cancelled, // 203: 已取消
calculateError, // 500: 计算错误
insufficientData, // 501: 有效数据不足
}
extension APPQuickCheckStatusExtension on APPQuickCheckStatus {
/// 获取整型值
int get value {
switch (this) {
case APPQuickCheckStatus.notFound:
return 404;
case APPQuickCheckStatus.inProgress:
return 200;
case APPQuickCheckStatus.completed:
return 201;
case APPQuickCheckStatus.timeout:
return 202;
case APPQuickCheckStatus.cancelled:
return 203;
case APPQuickCheckStatus.calculateError:
return 500;
case APPQuickCheckStatus.insufficientData:
return 501;
}
}
/// 根据整型值解析为枚举
static APPQuickCheckStatus? fromInt(int? type) {
switch (type) {
case 404:
return APPQuickCheckStatus.notFound;
case 200:
return APPQuickCheckStatus.inProgress;
case 201:
return APPQuickCheckStatus.completed;
case 202:
return APPQuickCheckStatus.timeout;
case 203:
return APPQuickCheckStatus.cancelled;
case 500:
return APPQuickCheckStatus.calculateError;
case 501:
return APPQuickCheckStatus.insufficientData;
default:
return null;
}
}
/// 根据整型值返回对应名称字符串
static String? nameFromInt(int? type) {
final status = fromInt(type);
return status?.description;
}
/// 获取描述文本
String get description {
switch (this) {
case APPQuickCheckStatus.notFound:
return "未找到快检信息".tr;
case APPQuickCheckStatus.inProgress:
return "快检进行中".tr;
case APPQuickCheckStatus.completed:
return "快检完成".tr;
case APPQuickCheckStatus.timeout:
return "快检超时".tr;
case APPQuickCheckStatus.cancelled:
return "已取消".tr;
case APPQuickCheckStatus.calculateError:
return "计算错误".tr;
case APPQuickCheckStatus.insufficientData:
return "有效数据不足".tr;
}
}
/// 判断是否为结束状态(已完成、错误、超时、取消等)
bool get isFinished {
switch (this) {
case APPQuickCheckStatus.completed:
case APPQuickCheckStatus.timeout:
case APPQuickCheckStatus.cancelled:
case APPQuickCheckStatus.calculateError:
case APPQuickCheckStatus.insufficientData:
return true;
case APPQuickCheckStatus.inProgress:
case APPQuickCheckStatus.notFound:
return false;
}
}
/// 判断是否为错误状态
bool get isError {
switch (this) {
case APPQuickCheckStatus.timeout:
case APPQuickCheckStatus.cancelled:
case APPQuickCheckStatus.calculateError:
case APPQuickCheckStatus.insufficientData:
return true;
case APPQuickCheckStatus.completed:
case APPQuickCheckStatus.inProgress:
case APPQuickCheckStatus.notFound:
return false;
}
}
/// 下拉选项用 - label 列表(展示)
static List<String> get labelList =>
APPQuickCheckStatus.values.map((e) => e.description).toList();
/// 下拉选项用 - value 列表(对应值)
static List<int> get valueList =>
APPQuickCheckStatus.values.map((e) => e.value).toList();
/// 下拉选项用 - map 列表
static List<Map<String, dynamic>> get list => APPQuickCheckStatus.values
.map((e) => {"id": e.value, "name": e.description})
.toList();
/// 获取指定状态的列表(可过滤)
static List<Map<String, dynamic>> getFilteredList({
bool includeNotFound = true,
bool includeInProgress = true,
bool includeCompleted = true,
bool includeTimeout = true,
bool includeCancelled = true,
bool includeCalculateError = true,
bool includeInsufficientData = true,
}) {
final List<APPQuickCheckStatus> filteredStatus = [];
if (includeNotFound) filteredStatus.add(APPQuickCheckStatus.notFound);
if (includeInProgress) filteredStatus.add(APPQuickCheckStatus.inProgress);
if (includeCompleted) filteredStatus.add(APPQuickCheckStatus.completed);
if (includeTimeout) filteredStatus.add(APPQuickCheckStatus.timeout);
if (includeCancelled) filteredStatus.add(APPQuickCheckStatus.cancelled);
if (includeCalculateError)
filteredStatus.add(APPQuickCheckStatus.calculateError);
if (includeInsufficientData)
filteredStatus.add(APPQuickCheckStatus.insufficientData);
return filteredStatus
.map((e) => {
"id": e.value,
"name": e.description,
})
.toList();
}
}