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
);
};