1, 父组件
调用子组件时,传递参数:函数
import useApprovalFlow from "/@/hooks/useApprovalFlow";
const {
getApproveBackSteps,
waitForApprove,
IsSaleManager,
flowStatus,
curFlowId,
stepCanEscalation,
waitApproveStepInfo,
operAuth,
execPointerId,
approveStepName,
workflowGuid,
lastestSteps,
allSteps,
backSteps
} = useApprovalFlow(
props.fn.resolveFunc,
props.fn.getFunc,
props.fn.getBackStepFunc
);
2. 子组件
定义函数:
export default function (
resolveApproveFunc: Function,
getApproveStepsFunc?: Function,
getBackStepFunc?: Function
) {
const approvePost = async (
businessId: string,
data: Object,
successCb: () => void,
failCb?: () => void
) => {
const loading2 = ElLoading.service({});
try {
const { Code, Message } = await resolveApproveFunc(businessId, [data]);
if (Code === 0) {
successCb && successCb();
} else {
errorMessage(Message);
failCb && failCb();
}
} catch (err) {
errorMessage(err);
} finally {
loading2.close();
}
};
const getApprovalSteps = async (businessId: string) => {
const loading = ElLoading.service();
try {
const { Code, Message, Data } = await getApproveStepsFunc(businessId);
if (Code === 0) {
lastestSteps.value = Data.LastestSteps;
allSteps.value = Data.Steps;
flowStatus.value = Data.FlowStatus;
operAuth.value = Data.OperAuth;
execPointerId.value = Data.ExecPointerId;
approveStepName.value = Data.ApproveStepName;
stepCanEscalation.value = Data.StepCanEscalation;
if (Data.Steps.length) {
workflowGuid.value =
Data.LastestSteps[Data.LastestSteps.length - 1].FlowId;
}
} else {
errorMessage(Message);
}
} catch (err) {
errorMessage(err);
} finally {
loading.close();
}
};
const getApproveBackSteps = async (
businessId: string,
executionId: string
) => {
try {
const { Code, Data, Message } = await getBackStepFunc(
businessId,
executionId
);
if (Code === 0) {
const data = Data || [];
backSteps.value = data.map(el => {
return { StepId: el.Id, StepName: el.Name };
});
} else {
errorMessage(Message);
}
} catch (err) {
errorMessage(err);
}
};
return{
approvePost
getApprovalSteps
getApproveBackSteps
}
}