Sfoglia il codice sorgente

feat(菜单管理): 添加三级菜单Icon

xieyonghong 3 anni fa
parent
commit
6cd4897ec9

+ 11 - 0
src/app.tsx

@@ -13,6 +13,7 @@ import ReconnectingWebSocket from 'reconnecting-websocket';
 import SystemConst from '@/utils/const';
 import { service as MenuService } from '@/pages/system/Menu';
 import getRoutes, { getMenus, handleRoutes, saveMenusCache } from '@/utils/menu';
+import { AIcon } from '@/components';
 
 const isDev = process.env.NODE_ENV === 'development';
 const loginPath = '/user/login';
@@ -195,6 +196,16 @@ export const layout: RunTimeLayoutConfig = ({ initialState }) => {
     menuDataRender: () => {
       return getMenus(extraRoutes);
     },
+    menuItemRender: (menuItemProps) => {
+      return (
+        <Link to={menuItemProps.path}>
+          <span className={`antd-pro-menu-item`}>
+            {menuItemProps.icon && <AIcon type={menuItemProps.icon as string} />}
+            <span className={`antd-pro-menu-item-title`}>{menuItemProps.name}</span>
+          </span>
+        </Link>
+      );
+    },
     links: isDev
       ? [
           <Link key={1} to="/umi/plugin/openapi" target="_blank">

+ 7 - 3
src/pages/device/Instance/index.tsx

@@ -19,7 +19,7 @@ import {
 import { model } from '@formily/reactive';
 import Service from '@/pages/device/Instance/service';
 import type { MetadataItem } from '@/pages/device/Product/typings';
-import { useIntl } from '@@/plugin-locale/localeExports';
+import { useIntl, useLocation } from 'umi';
 import Save from './Save';
 import Export from './Export';
 import Import from './Import';
@@ -30,6 +30,7 @@ import SystemConst from '@/utils/const';
 import Token from '@/utils/token';
 import DeviceCard from '@/components/ProTableCard/CardItems/device';
 import { getButtonPermission, getMenuPathByParams, MENUS_CODE } from '@/utils/menu';
+import { withRouter } from 'react-router-dom';
 
 export const statusMap = new Map();
 statusMap.set('在线', 'success');
@@ -54,7 +55,7 @@ export const InstanceModel = model<{
   params: new Set<string>(['test']),
 });
 export const service = new Service('device-instance');
-const Instance = () => {
+const Instance = (props: any) => {
   const actionRef = useRef<ActionType>();
   const [visible, setVisible] = useState<boolean>(false);
   const [exportVisible, setExportVisible] = useState<boolean>(false);
@@ -67,6 +68,9 @@ const Instance = () => {
   const [bindKeys, setBindKeys] = useState<any[]>([]);
   const history = useHistory<Record<string, string>>();
   const intl = useIntl();
+  const location = useLocation();
+
+  console.log(location, props.location.query);
 
   const tools = (record: DeviceInstance) => [
     <Button
@@ -593,4 +597,4 @@ const Instance = () => {
     </PageContainer>
   );
 };
-export default Instance;
+export default withRouter(Instance);

+ 10 - 9
src/pages/device/Product/Detail/index.tsx

@@ -1,5 +1,5 @@
 import { PageContainer } from '@ant-design/pro-layout';
-import { history, Link, useLocation, useParams } from 'umi';
+import { history, useLocation, useParams } from 'umi';
 import {
   Badge,
   Button,
@@ -203,16 +203,17 @@ const ProductDetail = observer(() => {
         <Spin spinning={loading}>
           <Descriptions size="small" column={2}>
             <Descriptions.Item label={'设备数量'}>
-              <Link
-                to={
-                  getMenuPathByCode(MENUS_CODE['device/Instance']) +
-                  '?productId=' +
-                  productModel.current?.id
-                }
+              <Button
+                type={'link'}
+                style={{ padding: 0, height: 'auto' }}
+                onClick={() => {
+                  history.push(getMenuPathByCode(MENUS_CODE['device/Instance']), {
+                    productId: productModel.current?.id,
+                  });
+                }}
               >
-                {' '}
                 {productModel.current?.count || 0}
-              </Link>
+              </Button>
             </Descriptions.Item>
           </Descriptions>
         </Spin>

+ 1 - 1
src/pages/media/Device/Channel/index.tsx

@@ -138,7 +138,7 @@ export default () => {
             <EditOutlined />
           </Button>
         </Tooltip>,
-        <Tooltip key={'live'} title={'播'}>
+        <Tooltip key={'live'} title={'播'}>
           <a
             onClick={() => {
               setChannelId(record.channelId);

+ 1 - 0
src/pages/media/Device/index.tsx

@@ -158,6 +158,7 @@ const Device = () => {
           text={record.state.text}
         />
       ),
+      valueType: 'select',
       valueEnum: {
         offline: {
           text: intl.formatMessage({

+ 1 - 1
src/pages/system/Department/Assets/deivce/bind.tsx

@@ -118,7 +118,7 @@ const Bind = observer((props: Props) => {
       visible={props.visible}
       onOk={handleBind}
       onCancel={props.onCancel}
-      width={990}
+      width={1300}
       title="绑定"
     >
       <PermissionModal

+ 1 - 1
src/pages/system/Department/Assets/product/bind.tsx

@@ -71,7 +71,7 @@ const Bind = observer((props: Props) => {
       visible={props.visible}
       onOk={handleBind}
       onCancel={props.onCancel}
-      width={990}
+      width={1300}
       title="绑定"
     >
       <PermissionModal

+ 1 - 1
src/pages/system/Department/Assets/productCategory/bind.tsx

@@ -71,7 +71,7 @@ const Bind = observer((props: Props) => {
       visible={props.visible}
       onOk={handleBind}
       onCancel={props.onCancel}
-      width={990}
+      width={1300}
       title="绑定"
     >
       <PermissionModal

+ 1 - 1
src/pages/system/Department/Member/bind.tsx

@@ -73,7 +73,7 @@ const Bind = observer((props: Props) => {
       visible={props.visible}
       onOk={handleBind}
       onCancel={props.onCancel}
-      width={990}
+      width={1300}
       title="绑定"
     >
       <SearchComponent<UserItem>