interface ApprovalStatus { modifyType: "delete" | "update"; status: number; } /** * 数据管控文案 */ export const DataControlTexts = { tableTop: "存在触发流程审批的操作,审批通过后才生效,列表只显示已生效的信息!申请信息,请查看流程详情!", // 在表格上方、查询条件下方显示 otherPlaceholder: "请详细说明申请理由,申请理由会影响审批人员的判断!", // 其他场景(新增、编辑、查看、导出、上下架、修改状态)申请理由输入框的placeholder deletePlaceholder: "请详细说明申请理由和操作的数据内容!申请理由会影响审批人员的判断,操作的数据内容未描述清楚时,会导致审批不通过!", // 仅删除场景申请理由输入框的placeholder editPageTop: "提交申请后,会触发流程审批,审批通过后才生效,页面显示已生效的信息!
申请信息,请查看流程详情!", // 在编辑页顶部显示 approving: "流程状态为审批中,不允许再次提交申请,操作失败!请刷新页面!", // 编辑页流程审批中时,点击提交按钮的提示 otherTop: "确定后,将触发流程审批,审批通过后才生效!", // 其他场景(删除、查看、导出、上下架、修改状态)弹窗顶部文案提示 exportTop: "您确定要导出吗?
确定后,将触发流程审批,审批通过后才生效!
请到下载中心查看进展,流程审批通过后,请手动下载!", // 导出场景弹窗顶部文案提示 viewTop: "您确定要查看吗?
确定后,将触发流程审批,审批通过后,需要刷新页面才生效!
", // 查看场景弹窗顶部文案提示 exportToast: "下载文件生成中,请到下载中心查看进展,生成成功后,请手动下载!", // 导出场景点击确定后的toast提示 unique: "不允许重复的字段,判断范围包含审批中的记录!", // 唯一性校验的提示 viewApproving: "流程审批中,不允许再次操作!", // 查看场景流程审批中时,按钮移入的提示 }; /** * 管控类型 */ export const ControlOptType = { submitted: "submitted", // 已提交 approving: "approving", // 审批中 view: "view", // 查看 viewIDIcon: "viewIDIcon", // 查看身份联系数据icon提示文字 viewOtherIcon: "viewOtherIcon", // 查看其他数据icon提示文字 }; type TypeControlOptType = (typeof ControlOptType)[keyof typeof ControlOptType]; /** * 得到管控文案 * @param type 管控类型 * @param txt 补充文案 * @returns */ export function getDataControlText(type: TypeControlOptType, txt: string) { switch (type) { case ControlOptType.submitted: return `已提交【${txt}】的流程申请,您可在流程中查看进展!`; // 只要触发流程申请的,点击提交按钮后,都会toast提示这个文案 case ControlOptType.approving: return `流程【${txt}】审批中,不允许再次提交申请!
请撤回流程后,或等待流程审批结束后操作!`; case ControlOptType.view: return `限制查看时间为审批通过后的${txt}`; case ControlOptType.viewIDIcon: return `有效期=流程审批通过的时间+${txt}`; case ControlOptType.viewOtherIcon: return `有效期=点击按钮操作成功的时间+${txt}`; default: return ""; } } /** * 审批实例状态 0、未发起(用户已操作,流程未发起) * 0、未发起(用户已操作,流程未发起) * 1、审批中(流程已发起,审批中) * 2、已通过(流程已发起,审批通过) * 3、已驳回(流程已发起,审批驳回) * 4、无需审批 */ export const ControlApprovalStatus = { unSend: 0, approving: 1, approved: 2, rejected: 3, noNeed: 4, }; /** 管控类型策略: 0飞书审批,1飞书消息,2只记录日志 */ export const DataControlType = { approval: 0, message: 1, log: 2, }; /** 数据行为: 1查看,2导出,3修改 */ export const DataActionType = { view: 1, export: 2, update: 3, }; /** 操作类型,都会触发飞书流程审批 */ export const ControlOperationType = { add: "add", edit: "edit", update: "update", // 兼容服务端写法 delete: "delete", export: "export", }; /** 记录增删改操作日志,是否需要diff。0 - 不需要,1 - 需要 */ export const CrudNeedDiff = { no: 0, yes: 1, }; /** 记录增删改操作日志,是否需要接入审批。0 - 不需要,1 - 需要 */ export const CrudNeedApproval = { no: 0, yes: 1, }; /** 数据是否处于编辑审批中 */ export const isEditApproving = (list: ApprovalStatus[]) => { return list.some( (item) => item.modifyType === "update" && item.status === ControlApprovalStatus.approving ); };