From 4be1387c62b34a7883b4fe8b7f6c2c11c2e90ccc Mon Sep 17 00:00:00 2001 From: scarqin Date: Tue, 7 Jan 2025 10:32:03 +0800 Subject: [PATCH] fix: system logs lack of edit permission --- .../IntelligentPluginList.tsx | 28 +-- .../packages/common/src/const/permissions.ts | 8 +- .../src/pages/logsettings/LogSettings.tsx | 178 +++++++++--------- .../resourcesettings/ResourceSettings.tsx | 170 ++++++++--------- 4 files changed, 190 insertions(+), 194 deletions(-) diff --git a/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginList.tsx b/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginList.tsx index d5b7ac46..c048accf 100644 --- a/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginList.tsx +++ b/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginList.tsx @@ -1,21 +1,21 @@ +import { LoadingOutlined } from '@ant-design/icons' +import { ActionType, ParamsType } from '@ant-design/pro-components' +import { DrawerWithFooter } from '@common/components/aoplatform/DrawerWithFooter.tsx' import PageList, { PageProColumns } from '@common/components/aoplatform/PageList.tsx' +import TableBtnWithPermission from '@common/components/aoplatform/TableBtnWithPermission.tsx' +import WithPermission from '@common/components/aoplatform/WithPermission.tsx' +import { BasicResponse, COLUMNS_TITLE, DELETE_TIPS, RESPONSE_TIPS, STATUS_CODE } from '@common/const/const.tsx' +import { EntityItem } from '@common/const/type.ts' +import { useBreadcrumb } from '@common/contexts/BreadcrumbContext.tsx' +import { useGlobalContext } from '@common/contexts/GlobalStateContext.tsx' +import { useFetch } from '@common/hooks/http.ts' +import { $t } from '@common/locales/index.ts' +import { RouterParams } from '@core/components/aoplatform/RenderRoutes.tsx' import { App, Divider, Spin } from 'antd' +import { DefaultOptionType } from 'antd/es/cascader' import { useEffect, useMemo, useRef, useState } from 'react' import { useLocation, useOutletContext, useParams } from 'react-router-dom' -import { useBreadcrumb } from '@common/contexts/BreadcrumbContext.tsx' -import { ActionType, ParamsType } from '@ant-design/pro-components' -import { RouterParams } from '@core/components/aoplatform/RenderRoutes.tsx' -import { DefaultOptionType } from 'antd/es/cascader' import { IntelligentPluginConfig, IntelligentPluginConfigHandle } from './IntelligentPluginConfig.tsx' -import { BasicResponse, COLUMNS_TITLE, DELETE_TIPS, RESPONSE_TIPS, STATUS_CODE } from '@common/const/const.tsx' -import { useFetch } from '@common/hooks/http.ts' -import { EntityItem } from '@common/const/type.ts' -import WithPermission from '@common/components/aoplatform/WithPermission.tsx' -import TableBtnWithPermission from '@common/components/aoplatform/TableBtnWithPermission.tsx' -import { DrawerWithFooter } from '@common/components/aoplatform/DrawerWithFooter.tsx' -import { LoadingOutlined } from '@ant-design/icons' -import { $t } from '@common/locales/index.ts' -import { useGlobalContext } from '@common/contexts/GlobalStateContext.tsx' type DynamicTableField = { name: string @@ -233,7 +233,7 @@ export default function IntelligentPluginList() { onClick={() => { openDrawer('edit', entity) }} - btnTitle={$t('查看')} + btnTitle={$t('查看 ')} />, , { + const { moduleId } = useParams() + const [menuItems, setMenuItems] = useState([]) + const [activeMenu, setActiveMenu] = useState() + const { fetchData } = useFetch() + const [loading, setLoading] = useState(true) + const navigateTo = useNavigate() + const { state } = useGlobalContext() -const LogSettings = ()=>{ - const {moduleId} = useParams(); - const [menuItems, setMenuItems ] = useState([]) - const [activeMenu, setActiveMenu] = useState() - const {fetchData} = useFetch() - const [loading, setLoading] = useState(true) - const navigateTo = useNavigate() - const {state} = useGlobalContext() - - const getDynamicMenuList = ()=>{ - return fetchData>(`simple/dynamics/log`,{method:'GET'}).then(response=>{ - const {code,data,msg} = response - if(code === STATUS_CODE.SUCCESS){ - - setMenuItems(data.dynamics) - if(!activeMenu || activeMenu.length === 0){ - navigateTo(`/logsettings/template/${data.dynamics[0].name}`) - } - return Promise.resolve(data.dynamics) - }else{ - message.error(msg || $t(RESPONSE_TIPS.error)) - return Promise.reject(msg || $t(RESPONSE_TIPS.error)) - } - }) - } - - const menuData = useMemo(()=>{ - const newMenu = menuItems?.map((x:DynamicMenuItem)=>{ - return getItem( - {$t(x.title)}, - x.name, - undefined, - undefined, - undefined, - 'system.settings.log_configuration.view') - }) - return newMenu - },[state.language,menuItems]) - - const onMenuClick: MenuProps['onClick'] = ({key}) => { - setActiveMenu(key) - }; - - - useEffect(() => { - setActiveMenu(moduleId) - }, [ moduleId]); - - useEffect(()=>{ - setLoading(true) - Promise.all([getDynamicMenuList()]).finally(()=>setLoading(false)) - },[]) - - return ( - <> - - -
- -
- -
-
-
-
- + const getDynamicMenuList = () => { + return fetchData>(`simple/dynamics/log`, { method: 'GET' }).then( + (response) => { + const { code, data, msg } = response + if (code === STATUS_CODE.SUCCESS) { + setMenuItems(data.dynamics) + if (!activeMenu || activeMenu.length === 0) { + navigateTo(`/logsettings/template/${data.dynamics[0].name}`) + } + return Promise.resolve(data.dynamics) + } else { + message.error(msg || $t(RESPONSE_TIPS.error)) + return Promise.reject(msg || $t(RESPONSE_TIPS.error)) + } + } ) + } + + const menuData = useMemo(() => { + const newMenu = menuItems?.map((x: DynamicMenuItem) => { + return getItem( + {$t(x.title)}, + x.name, + undefined, + undefined, + undefined, + 'system.settings.log_configuration.view' + ) + }) + return newMenu + }, [state.language, menuItems]) + + const onMenuClick: MenuProps['onClick'] = ({ key }) => { + setActiveMenu(key) + } + + useEffect(() => { + setActiveMenu(moduleId) + }, [moduleId]) + + useEffect(() => { + setLoading(true) + Promise.all([getDynamicMenuList()]).finally(() => setLoading(false)) + }, []) + + return ( + <> + + +
+ +
+ +
+
+
+
+ + ) } -export default LogSettings; \ No newline at end of file +export default LogSettings diff --git a/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx b/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx index fe24c935..7928f12d 100644 --- a/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx +++ b/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx @@ -1,95 +1,89 @@ +import InsidePage from '@common/components/aoplatform/InsidePage' +import { BasicResponse, RESPONSE_TIPS, STATUS_CODE } from '@common/const/const' +import { DynamicMenuItem } from '@common/const/type' +import { useGlobalContext } from '@common/contexts/GlobalStateContext' +import { useFetch } from '@common/hooks/http' +import { $t } from '@common/locales' +import { getItem } from '@common/utils/navigation' +import { RouterParams } from '@core/components/aoplatform/RenderRoutes' +import { Menu, MenuProps, Skeleton, message } from 'antd' +import { useEffect, useMemo, useState } from 'react' +import { Link, Outlet, useNavigate, useParams } from 'react-router-dom' -import { Menu, MenuProps, Skeleton, message } from "antd"; -import { Link, Outlet, useNavigate, useParams } from "react-router-dom"; -import InsidePage from "@common/components/aoplatform/InsidePage"; -import { useEffect, useMemo, useState } from "react"; -import { BasicResponse, RESPONSE_TIPS, STATUS_CODE } from "@common/const/const"; -import { DynamicMenuItem } from "@common/const/type"; -import { useFetch } from "@common/hooks/http"; -import { getItem } from "@common/utils/navigation"; -import { RouterParams } from "@core/components/aoplatform/RenderRoutes"; -import { $t } from "@common/locales"; -import { useGlobalContext } from "@common/contexts/GlobalStateContext"; +const LogSettings = () => { + const { moduleId } = useParams() + const [menuItems, setMenuItems] = useState([]) + const [activeMenu, setActiveMenu] = useState() + const { fetchData } = useFetch() + const [loading, setLoading] = useState(true) + const navigateTo = useNavigate() + const { state } = useGlobalContext() -const LogSettings = ()=>{ - const {moduleId} = useParams(); - const [menuItems, setMenuItems ] = useState([]) - const [activeMenu, setActiveMenu] = useState() - const {fetchData} = useFetch() - const [loading, setLoading] = useState(true) - const navigateTo = useNavigate() - const {state} = useGlobalContext() - - const getDynamicMenuList = ()=>{ - setLoading(true) - fetchData>(`simple/dynamics/resource`,{method:'GET'}).then(response=>{ - const {code,data,msg} = response - if(code === STATUS_CODE.SUCCESS){ - - - setMenuItems(data.dynamics) - if(!activeMenu || activeMenu.length === 0){ - navigateTo(`/resourcesettings/template/${data.dynamics[0].name}`) - } - }else{ - message.error(msg || $t(RESPONSE_TIPS.error)) - } - }).finally(()=>setLoading(false)) - } + const getDynamicMenuList = () => { + setLoading(true) + fetchData>(`simple/dynamics/resource`, { method: 'GET' }) + .then((response) => { + const { code, data, msg } = response + if (code === STATUS_CODE.SUCCESS) { + setMenuItems(data.dynamics) + if (!activeMenu || activeMenu.length === 0) { + navigateTo(`/resourcesettings/template/${data.dynamics[0].name}`) + } + } else { + message.error(msg || $t(RESPONSE_TIPS.error)) + } + }) + .finally(() => setLoading(false)) + } - - const menuData = useMemo(()=>{ - const newMenu = menuItems?.map((x:DynamicMenuItem)=>{ - - return getItem( - {$t(x.title)}, - x.name, - undefined, - undefined, - undefined, - 'system.settings.log_configuration.view') - }) - return newMenu - },[state.language,menuItems]) + const menuData = useMemo(() => { + const newMenu = menuItems?.map((x: DynamicMenuItem) => { + return getItem( + {$t(x.title)}, + x.name, + undefined, + undefined, + undefined, + 'system.settings.log_configuration.view' + ) + }) + return newMenu + }, [state.language, menuItems]) + const onMenuClick: MenuProps['onClick'] = ({ key }) => { + setActiveMenu(key) + } - const onMenuClick: MenuProps['onClick'] = ({key}) => { - setActiveMenu(key) - }; - - useEffect(() => { - setActiveMenu(moduleId) - }, [ moduleId]); - - useEffect(()=>{ - setLoading(true) - getDynamicMenuList() - },[]) - - - return ( - <> - - -
- -
- -
-
-
-
- - ) + useEffect(() => { + setActiveMenu(moduleId) + }, [moduleId]) + + useEffect(() => { + setLoading(true) + getDynamicMenuList() + }, []) + + return ( + <> + + +
+ +
+ +
+
+
+
+ + ) } -export default LogSettings; \ No newline at end of file +export default LogSettings