approval_status.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. enum ApprovalStatus {
  2. draft,
  3. pending,
  4. approved,
  5. rejected,
  6. withdrawn;
  7. String get label {
  8. switch (this) {
  9. case ApprovalStatus.draft:
  10. return '草稿';
  11. case ApprovalStatus.pending:
  12. return '待审批';
  13. case ApprovalStatus.approved:
  14. return '已通过';
  15. case ApprovalStatus.rejected:
  16. return '已拒绝';
  17. case ApprovalStatus.withdrawn:
  18. return '已撤回';
  19. }
  20. }
  21. }
  22. class ApprovalRecord {
  23. final String id;
  24. final String bizId;
  25. final String bizType;
  26. final String approverId;
  27. final String approverName;
  28. final int approvalLevel;
  29. final String action;
  30. final String opinion;
  31. final DateTime approvalTime;
  32. const ApprovalRecord({
  33. required this.id,
  34. required this.bizId,
  35. required this.bizType,
  36. required this.approverId,
  37. required this.approverName,
  38. required this.approvalLevel,
  39. required this.action,
  40. required this.opinion,
  41. required this.approvalTime,
  42. });
  43. factory ApprovalRecord.fromJson(Map<String, dynamic> json) {
  44. return ApprovalRecord(
  45. id: json['id'] as String,
  46. bizId: json['bizId'] as String,
  47. bizType: json['bizType'] as String,
  48. approverId: json['approverId'] as String,
  49. approverName: json['approverName'] as String,
  50. approvalLevel: json['approvalLevel'] as int,
  51. action: json['action'] as String,
  52. opinion: json['opinion'] as String? ?? '',
  53. approvalTime: DateTime.parse(json['approvalTime'] as String),
  54. );
  55. }
  56. Map<String, dynamic> toJson() => {
  57. 'id': id,
  58. 'bizId': bizId,
  59. 'bizType': bizType,
  60. 'approverId': approverId,
  61. 'approverName': approverName,
  62. 'approvalLevel': approvalLevel,
  63. 'action': action,
  64. 'opinion': opinion,
  65. 'approvalTime': approvalTime.toIso8601String(),
  66. };
  67. }