forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-13 dfbe28b1ebcb18d4cc427e432b78cda0464883c0
gz-customerSystem/src/components/Layout/index.jsx
@@ -20,6 +20,17 @@
   return $$.ax.request({ url: `ctRole/getById?id=${roleId}`, type: 'get', service: 'cust' });
}
//对接单点登录,获取token
function gridLogin(data) {
   return $$.ax.request({ url: `ctAccount/gridLogin`, type: 'post', service: 'cust', isGrid: true, data });
}
// 角色选择
function switchRoleApi(data) {
   return $$.ax.request({ url: 'ctAccount/switchRole', type: 'get', data, service: 'cust' });
}
const Layout = ({ isNotNav, headerUserChange }) => {
   const location = useLocation() || {};
@@ -40,6 +51,9 @@
   // 当前选中的角色 及其 权限
   const [roleActive, setRoleActive] = useState({ id: null, powerMap: {} });
   //网格跳转请求状态
   const [gridStatus, setGridStatus] = useState(false)
   // 切换头部menu
   function handleClickHeaderMenu(values) {
@@ -97,8 +111,38 @@
      }
   }
   //请求网格token
   const getGridToken = async (token) => {
      const res = await gridLogin({
         token
      })
      if (res.type) {
         setGridStatus(true)
         $$.setSessionStorage('gridToken', '')
         $$.setSessionStorage('customerSystemToken', res.data?.token);
         $$.setLocal('customerSystemUser', res.data || {});
         let ctUseroleList = res.data?.ctUseroleList || [];
         const roleId = ctUseroleList[0]?.roleId
         const roleName = ctUseroleList[0]?.roleName
         const roleCode = ctUseroleList[0]?.roleCode
         $$.setSessionStorage('role', { roleId: roleId, roleName: roleName });
         setRoleActive({ id: roleId, roleName: roleName, powerMap: {} });
         const res = await switchRoleApi({ roleCode: roleCode });
         if (res.type) {
            $$.setSessionStorage('customerSystemToken', res.data);
            navigate('/mediate/visit/visitWorkBench');
         }
      }
   }
   // 初始化 格式化数据适应菜单栏
   useEffect(() => {
      //单点登录,网格传一个token在session,如果有就请求接口
      const gridToken = $$.getSessionStorage('gridToken');
      if (gridToken) {
         getGridToken(gridToken)
      } else {
         setGridStatus(true)
      let role = $$.getSessionStorage('role');
      if (role) {
         setRoleActive({ id: role.roleId, roleName: role.roleName, powerMap: {} });
@@ -108,6 +152,7 @@
      let ctUseroleList = customerSystemUser?.ctUseroleList || [];
      if (ctUseroleList[0]?.roleId) {
         setRoleActive({ id: ctUseroleList[0]?.roleId, roleName: ctUseroleList[0]?.roleName, powerMap: {} });
         }
      }
   }, []);
@@ -173,11 +218,11 @@
            headerUserChange={headerUserChange}
            handleChangeRole={handleChangeRole}
         />
         {isNotNav ? (
         {gridStatus && isNotNav ? (
            <main className="layout-main" id="layoutMain">
               <Outlet />
            </main>
         ) : (
         ) : gridStatus ? (
            <main className="layout-main" id="layoutMain" ref={layoutRef}>
               <Navigation powerMap={roleActive.powerMap} roleActive={roleActive} sideMenu={sideMenu} />
               <main id="layoutChild" className="layout-child">
@@ -185,7 +230,8 @@
               </main>
               <SOP />
            </main>
         )}
         ) : <></>
         }
      </>
   );
};