Przeglądaj źródła

feat: 应用管理

wzyyy 3 lat temu
rodzic
commit
e265e56bd1

+ 1 - 1
src/app.tsx

@@ -356,7 +356,7 @@ export function patchRoutes(routes: any) {
       ],
     };
     basePath.routes = [...basePath.routes, baseRedirect];
-    // console.log(basePath.routes);
+    console.log(basePath.routes, 'basePath.routes,');
   }
 }
 

+ 6 - 2
src/pages/iframe/index.tsx

@@ -1,11 +1,15 @@
 import { PageContainer } from '@ant-design/pro-layout';
 import { useEffect } from 'react';
 import { useLocation } from 'umi';
+// import { service } from '../system/Apply'
 
 const Iframe = () => {
   const location = useLocation();
-  console.log(location, 22222);
-  useEffect(() => {}, []);
+
+  useEffect(() => {
+    console.log(location);
+  }, [location]);
+
   return (
     <PageContainer>
       <iframe

+ 60 - 19
src/pages/system/Apply/Menu/index.tsx

@@ -15,19 +15,64 @@ const MenuPage = (props: Props) => {
   const [keys, setKeys] = useState<any>([]);
   const [expandedKeys, setExpandedKeys] = useState<string[]>([]);
   const [half, setHalf] = useState<string[]>([]);
-  // const [owner, setOwner] = useState<string>('iot');
   const [ownerList, setOwenrList] = useState<any>([]);
-  // const [menu,setMenu] = useState<string>('')
 
-  const getTree = async () => {
-    const res = await service.queryOwner(['iot']);
+  // const getTree = async () => {
+  //   const res = await service.queryOwner(['iot']);
+  //   if (res.status === 200) {
+  //     setOwenrList(res.result);
+  //     console.log(res.result);
+  //     const resp = await service.queryOwnerTree(res.result?.[0]);
+  //     if (resp.status === 200) {
+  //       setTreeData(resp.result);
+  //       const pid = resp.result.map((item: any) => item.id);
+  //       setExpandedKeys(pid);
+  //     }
+  //   }
+  // };
+
+  const getMenus = async () => {
+    const res = await service.queryTree({
+      terms: [
+        {
+          column: 'appId',
+          value: data.id,
+        },
+      ],
+    });
     if (res.status === 200) {
-      setOwenrList(res.result);
       console.log(res.result);
-      // if (data.provider !== 'internal-standalone') {
-      //   setOwner(res.result?.[0])
-      // }
-      const resp = await service.queryOwnerTree(res.result?.[0]);
+      setTreeData(res.result);
+      const pid = res.result.map((item: any) => item.id);
+      setExpandedKeys(pid);
+      setKeys(pid);
+    }
+  };
+
+  const getOwner = async () => {
+    if (data.provider !== 'internal-standalone') {
+      const res = await service.queryOwner(['iot']);
+      if (res.status === 200) {
+        setOwenrList(res.result);
+      }
+    } else {
+      const resp = await service.queryOwnerStandalone(data.id, ['iot']);
+      if (resp.status === 200) {
+        setOwenrList(resp.result);
+      }
+    }
+  };
+
+  const getTree = async (parms: any) => {
+    if (data.provider !== 'internal-standalone') {
+      const res = await service.queryOwnerTree(parms);
+      if (res.status === 200) {
+        setTreeData(res.result);
+        const pid = res.result.map((item: any) => item.id);
+        setExpandedKeys(pid);
+      }
+    } else {
+      const resp = await service.queryOwnerTreeStandalone(data.id, parms);
       if (resp.status === 200) {
         setTreeData(resp.result);
         const pid = resp.result.map((item: any) => item.id);
@@ -36,13 +81,6 @@ const MenuPage = (props: Props) => {
     }
   };
 
-  // const getMenu = async ()=>{
-  //   const res = await service.queryOwner(['iot']);
-  //   if(res.status === 200){
-  //     setOwenrList(res.result)
-  //   }
-  // }
-
   const save = async (datalist: any) => {
     const res = await service.saveOwnerTree('iot', data.id, datalist);
     if (res?.status === 200) {
@@ -67,8 +105,8 @@ const MenuPage = (props: Props) => {
   };
 
   useEffect(() => {
-    // console.log(data);
-    getTree();
+    getOwner();
+    getMenus();
   }, []);
 
   return (
@@ -93,7 +131,10 @@ const MenuPage = (props: Props) => {
         style={{ width: 200, marginBottom: 20 }}
         placeholder="请选择集成系统"
         onChange={(value) => {
-          console.log(value);
+          // console.log(value);
+          if (value) {
+            getTree(value);
+          }
         }}
       >
         {ownerList.map((item: any) => (

+ 9 - 4
src/pages/system/Apply/service.ts

@@ -36,16 +36,21 @@ class Service extends BaseService<any> {
       method: 'PATCH',
       data,
     });
-  queryOwnerStandalone = (api: string, data: any) =>
-    request(`${api}/menu/owner`, {
+  queryOwnerStandalone = (appId: string, data: any) =>
+    request(`/${SystemConst.API_BASE}/application/${appId}/_/api/menu/owner`, {
       method: 'POST',
       data,
     });
-  queryOwnerTreeStandalone = (api: string, owner: string) =>
-    request(`${api}/menu/owner/tree/${owner}`, {
+  queryOwnerTreeStandalone = (appId: string, owner: string) =>
+    request(`{/${SystemConst.API_BASE}/application/${appId}/_/api/menu/owner/${owner}`, {
       method: 'POST',
       data: {},
     });
+  queryTree = (data: any) =>
+    request(`${SystemConst.API_BASE}/menu/_all/tree`, {
+      method: 'POST',
+      data,
+    });
 }
 
 export default Service;

+ 10 - 12
src/utils/menu/index.ts

@@ -192,10 +192,12 @@ const findExtraRoutes = (baseCode: string, children: any[], url: string) => {
  * @param level
  */
 export const handleRoutes = (routes?: MenuItem[], level = 1): MenuItem[] => {
+  // console.log(routes)
   return routes
     ? routes.map((item) => {
         // 判断当前是否有额外子路由
         const extraRoutes = extraRouteObj[item.code];
+
         if (extraRoutes) {
           if (extraRoutes.children) {
             const eRoutes = findExtraRoutes(item.code, extraRoutes.children, item.url);
@@ -214,6 +216,9 @@ export const handleRoutes = (routes?: MenuItem[], level = 1): MenuItem[] => {
         }
         item.level = level;
 
+        if (item.appId) {
+          item.url = `/iframe${item.url}`;
+        }
         return item;
       })
     : [];
@@ -228,21 +233,15 @@ const getRoutes = (extraRoutes: MenuItem[], level = 1): IRouteProps[] => {
   const allComponents = findComponents(require.context('@/pages', true, /index(\.tsx)$/));
   return extraRoutes.map((route) => {
     let component;
-    let _route: IRouteProps;
+    const _route: IRouteProps = {
+      key: route.url,
+      name: route.name,
+      path: route.url,
+    };
     if (route.appId) {
       component = allComponents['iframe'];
-      _route = {
-        key: `${route.url}`,
-        name: route.name,
-        path: `${route.url}`,
-      };
     } else {
       component = allComponents[route.code] || null;
-      _route = {
-        key: route.url,
-        name: route.name,
-        path: route.url,
-      };
     }
 
     // console.log(_route)
@@ -274,7 +273,6 @@ const getRoutes = (extraRoutes: MenuItem[], level = 1): IRouteProps[] => {
 export const getMenus = (extraRoutes: IRouteProps[]): any[] => {
   return extraRoutes.map((route) => {
     const children = route.children && route.children.length ? route.children : [];
-
     return {
       key: route.url,
       name: route.name,