process.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { CptModelName, SubModelName, ActionType } from './base';
  2. // 环节类型
  3. export enum SectorType {
  4. APPROVAL = 'approval', // 审批
  5. CONDITION = 'condition', // 条件
  6. }
  7. // 审批方式
  8. export enum ApprovalWay {
  9. ACCOUNT = 'account', // 指定用户
  10. JOINTLYSIGN = 'jointlySign', // 会签
  11. ORSIGN = 'orSign', // 或签
  12. ORDERAPPROVAL = 'orderApproval', // 依次审批
  13. PREACCOUNT = 'prevAccount', // 上一审批人设置
  14. }
  15. // 参与者模式
  16. export enum ParticipantMode {
  17. ACCOUNT = 'account', // 用户模式
  18. ROLE = 'role', // 角色模式(未来)
  19. }
  20. export enum AccountConfigure {
  21. SKIP = 'skip',
  22. RETURN = 'return',
  23. REVOKE = 'revoke',
  24. ASSISTAUDIT = 'assistAudit',
  25. ADDSIGN = 'addSign',
  26. }
  27. export interface IProcessAccount {
  28. // ID 账号ID name 名称institutionID 企事业ID
  29. ID: string;
  30. name: string;
  31. institutionID?: string; // 可能不会用到
  32. configure: AccountConfigure[];
  33. remark?: string; // 审批意见
  34. }
  35. // 参与者信息
  36. export interface IParticipantInfo {
  37. approvalWay: ApprovalWay;
  38. participantMode: ParticipantMode;
  39. accounts: IProcessAccount[];
  40. }
  41. // 流程中的一个环节
  42. export interface IProcess {
  43. ID: string;
  44. name: string;
  45. sectorType: SectorType;
  46. seq?: number;
  47. participantInfo: IParticipantInfo;
  48. }
  49. export interface IApproval {
  50. ID: string;
  51. name: string;
  52. created: string;
  53. createdID: string;
  54. createdTime: number;
  55. process: IProcess[];
  56. }
  57. export enum ApprovalState {
  58. CREATED = 'created', // 创建
  59. PROCESSING = 'processing', // 正在审批
  60. APPROVED = 'approved', // 审批通过
  61. FAILED = 'failed', // 失败
  62. }
  63. // 复制到项目里的流程
  64. export interface IProjectApproval extends IApproval {
  65. projectIDs: string[]; // 包含在流程里的项目
  66. state: ApprovalState; // 状态
  67. approvalTime?: number; // 审批通过时间
  68. currentProcessID?: string; // 当前正处于哪个环节ID
  69. }
  70. // 流程过程中存储的数据
  71. export interface IProcessData {
  72. ID: string;
  73. module: CptModelName | SubModelName; // 编辑的模块
  74. action: ActionType; // 动作,增删改等
  75. oDoc: any; // 存放删除时或者修改时的数据
  76. createTime: number; // 创建时间
  77. }
  78. // 备份数据集合
  79. export interface IProcessDataDoc {
  80. projectID: string;
  81. processID: string;
  82. index: number;
  83. processData: IProcessData[];
  84. }