// 子流程默认数据 nodeType = 12
export const subEventDefaultData = {
  subDefinitionId: null,
  paramSendSubFlag: true,
  paramSendParentFlag: true,
  deptCounterSignFlag: true,
  deptCounterSignType: 1,
  submitterType: 1,
  deptCounterSignFormDefinitionId: null,
  deptCounterSignFormVariableCode: null,
  deptCounterSignModelVariableCode: null,
  submitterFormDefinitionId: null,
  submitterFormVariableCode: null,
  submitterModelVariableCode: null,
  cycleType: 1,
  leaveType: 1,
  cycleNumber: 1,
  submitterUserName: '',
  submitterUserId: ''
}

// 发起人默认数据 nodeType = 13
export const promoterEventDefaultData = {
  // 操作权限
  nodeButtonPermission: {
    // 抄送
    copyTo: true,
    copyToAliasName: '抄送',
    // 保存
    save: true,
    saveAliasName: '保存',
    // 提交
    submit: true,
    submitAliasName: '提交',
    // 撤回
    retract: true,
    retractAliasName: '撤回',
    // 撤销
    cancel: false,
    cancelAliasName: '撤销',
    // 是否可以撤回已审批流程
    retractAlreadyApprovedFlag: false,
  },
  // 表单权限
  formPermission: [],
  // 流程事件
  nodeEventList: []
}

// 消息监听默认数据 nodeType = 20
export const messageListeningDefaultData = {
  nodeListener: {
    listenerHttpMethod: 'POST',
    listenerType: 10,
    listenerUrl: import.meta.env.VITE_API_URL
  }
}

// 审批默认数据 nodeType = 30
export const approveEventDefaultData = {
  // 审批
  approverConfig: {
    // 审批策略
    approverJumpStrategy: {
      adjacentApproverSkipPolicy: 20, //相邻审批节点为同一人时的策略
      emptyApproverPointUserId: null, //指定人（当审批人为空的策略是20时需要填写）
      emptyApproverPointUserName: null, // 指定人名称
      emptyApproverStrategy: 60, //审批人为空时的策略
      samePersonApprovalPolicy: 5, //审批人与发起人为同一人时的策略
      allowSelfSelect: true //是否允许发起人自选
    },
    // 基本配置
    approverStrategy: {
      approverNodeLeaveCount: null, //离开条件值：参与者超过几个已处理"
      approverNodeLeavePercent: null, //离开条件值：百分比配置
      approverNodeLeaveType: null, //离开方式：10-超过多少%，自动离开，20-参与者超过几个已处理，30-某个参与者已处理，40-指定参与者全部处理，50-拓展规则
      approverNodeType: 10, //节点类型：10-单人活动，20-多人单一，30-多人并行，40-多人顺序，50-内部循环
      customExpandRuleClass: null, //指定的拓展规则类
      customExpandRuleClass: '', //指定的拓展规则类
      personAllAddressedList: [], //指定参与者全部处理
      personAlreadyAddressedList: [] //指定某个参与者处理
    },
    // 协办人员配置
    assistantApprover: {
      approverType: 10, // 审批类型
      nodeApproverPersonList: [], //用户
      nodeApproverPolicyList: [], //部门
      nodeApproverPositionList: [], //职位
      nodeApproverRoleList: [], //角色
      nodeApproverFormList: [], //表单
      nodeApproverCustom: {}, // 自定义规则
      nodeApproverVariableList: [], // 自定义变量中获取的审批人配置
      submitterSelfFlag: false // 是否是发起人自己
    },
    // 主办配置
    mainApprover: {
      approverType: 10, // 审批类型
      nodeApproverPersonList: [], //用户
      nodeApproverPolicyList: [], //部门
      nodeApproverPositionList: [], //职位
      nodeApproverRoleList: [], //角色
      nodeApproverFormList: [], //表单
      nodeApproverCustom: {}, // 自定义规则
      nodeApproverVariableList: [], // 自定义变量中获取的审批人配置
      submitterSelfFlag: false // 是否是发起人自己
    },
    // 读者配置
    readerApprover: {
      approverType: 10, // 审批类型
      nodeApproverPersonList: [], //用户
      nodeApproverPolicyList: [], //部门
      nodeApproverPositionList: [], //职位
      nodeApproverRoleList: [], //角色
      nodeApproverFormList: [], //表单
      nodeApproverCustom: {}, // 自定义规则
      nodeApproverVariableList: [], // 自定义变量中获取的审批人配置
      submitterSelfFlag: false // 是否是发起人自己
    }
  },
  // 操作权限
  nodeButtonPermission: {
    // 同意
    agree: true,
    agreeAliasName: '同意',
    // 拒绝
    refuse: true,
    refuseAliasName: '拒绝',
    // 抄送
    copyTo: true,
    copyToAliasName: '抄送',
    // 转交
    handOver: true,
    handOverAliasName: '转交',
    // 退回
    backTo: false,
    backToAliasName: '退回',
    // 撤回
    retract: false,
    retractAliasName: '撤回',
    // 加签
    addSign: false,
    addSignAliasName: '加签',
    // 是否可以撤回已审批流程
    retractAlreadyApprovedFlag: false
  },
  // 表单权限
  formPermission: [],
  // 流程事件
  nodeEventList: [],
  // 通知设置
  nodeNotice: {
    contentTemplate: '',
    // 邮箱
    emailMessage: false,
    // 短信
    shortMessage: false,
    // 站内
    siteMessage: true
  }
}

// 抄送默认数据 nodeType = 31
export const sendEventDefaultData = {
  // 审批
  approverConfig: {
    // 基本配置
    approverStrategy: {
      approverNodeLeaveCount: null, //离开条件值：参与者超过几个已处理"
      approverNodeLeavePercent: null, //离开条件值：百分比配置
      approverNodeLeaveType: null, //离开方式：10-超过多少%，自动离开，20-参与者超过几个已处理，30-某个参与者已处理，40-指定参与者全部处理，50-拓展规则
      approverNodeType: 10, //节点类型：10-单人活动，20-多人单一，30-多人并行，40-多人顺序，50-内部循环
      customExpandRuleClass: null, //指定的拓展规则类
      customExpandRuleClass: '', //指定的拓展规则类
      personAllAddressedList: [], //指定参与者全部处理
      personAlreadyAddressedList: [] //指定某个参与者处理
    },
    // 协办人员配置
    assistantApprover: {
      approverType: 10, // 审批类型
      nodeApproverPersonList: [], //用户
      nodeApproverPolicyList: [], //部门
      nodeApproverPositionList: [], //职位
      nodeApproverRoleList: [], //角色
      nodeApproverFormList: [], //表单
      nodeApproverCustom: {}, // 自定义规则
      nodeApproverVariableList: [], // 自定义变量中获取的审批人配置
      submitterSelfFlag: false // 是否是发起人自己
    },
    // 主办配置
    mainApprover: {
      approverType: 10, // 审批类型
      nodeApproverPersonList: [], //用户
      nodeApproverPolicyList: [], //部门
      nodeApproverPositionList: [], //职位
      nodeApproverRoleList: [], //角色
      nodeApproverFormList: [], //表单
      nodeApproverCustom: {}, // 自定义规则
      nodeApproverVariableList: [], // 自定义变量中获取的审批人配置
      submitterSelfFlag: false // 是否是发起人自己
    },
    // 读者配置
    readerApprover: {
      approverType: 10, // 审批类型
      nodeApproverPersonList: [], //用户
      nodeApproverPolicyList: [], //部门
      nodeApproverPositionList: [], //职位
      nodeApproverRoleList: [], //角色
      nodeApproverFormList: [], //表单
      nodeApproverCustom: {}, // 自定义规则
      nodeApproverVariableList: [], // 自定义变量中获取的审批人配置
      submitterSelfFlag: false // 是否是发起人自己
    }
  },
  // 表单权限
  formPermission: [],
  // 通知设置
  nodeNotice: {
    contentTemplate: '',
    // 邮箱
    emailMessage: false,
    // 短信
    shortMessage: false,
    // 站内
    siteMessage: true
  }
}

// 自定义活动默认数据 nodeType = 40
export const custonActivityDefaultData = {
  // 活动配置
  nodeActivity: {
    activityType: 10,
    syncType: 1,
    requestAfterType: 1,
    rpcServiceInterface: '',
    rpcServiceMethod: '',
    rpcServiceName: '',
    requestParams: {},
    httpUrl: '',
    httpMethod: 'GET'
  },
  // 流程事件
  nodeEventList: []
}

// 条件默认数据 nodeType = 60 | 248
export const conditionDefaultData = {
  nodeCondition: {
    expressionString: ''
  },
  bpmnConfig: {}
}
