zcloud-gbs-eightwork-react/src/utils/useApplyDepartment.js

52 lines
1.8 KiB
JavaScript

import { useEffect, useState } from "react";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo";
export default function useApplyDepartment(props) {
const [departmentTree, setDepartmentTree] = useState([]);
const [serviceDepartmentData, setServiceDepartmentData] = useState([]);
const { entrance } = props;
const corpInfoListAll = props["corpInfoListAll"];
const query = useGetUrlQuery();
const { getUserInfo } = useGetUserInfo();
useEffect(() => {
const getInfoData = async () => {
const corpData = await getUserInfo();
const currentDepartment = { corpName: corpData.corpinfoName, id: corpData.corpinfoId };
if (entrance === "stakeholder") {
const { data = [] } = await corpInfoListAll({ inType: [0, 1] });
setServiceDepartmentData(data);
setDepartmentTree([currentDepartment, ...data]);
}
else if (
!entrance
) {
const [{ data: departmentTreeData = [] }, { data: departmentData = [] }] = await Promise.all([
corpInfoListAll({ inType: [3, 4, 5] }),
corpInfoListAll({ inType: [0, 1] }),
]);
setServiceDepartmentData(departmentData);
setDepartmentTree([currentDepartment, ...departmentTreeData]);
}
else if (entrance === "supervision") {
const [{ data: departmentTreeData = [] }, { data: departmentData = [] }] = await Promise.all([
corpInfoListAll({ inType: [3, 4, 5] }),
corpInfoListAll({ inType: [0, 1] }),
]);
setServiceDepartmentData(departmentData);
setDepartmentTree([{ corpName: query.corpName, id: query.corpinfoId }, ...departmentTreeData]);
}
};
getInfoData();
}, []);
return { departmentTree, serviceDepartmentData };
}