ant design pro 本事之实现列表页多标签

[复制链接]
发表于 2026-2-4 09:58:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


      
  • ant design pro 怎样去生存颜色  
  • ant design pro v6 怎样做好脚色管理  
  • ant design 的 tree 怎样作为脚色中的权限选择之一  
  • ant design 的 tree 怎样作为脚色中的权限选择之二  
  • ant design pro access.ts 是怎样控制多脚色的权限的  
  • ant design pro 中用户的表单怎样控制多个脚色  
  • ant design pro 怎样实现动态菜单带上 icon 的  
  • ant design pro 的表分层级如那边理  
  • ant design pro 如那边理权限管理  
  • ant design pro 本事之自制复制到剪贴板组件
像上图那样,我们常常给列表页做分类的,



这种多标签如那边理呢?
肯定是要得到动态数据对吧。
每次点击的时间要发哀求,得到差别的数据。
实在 ant design pro 是支持的。
在 index.tsx 中的 protable 里加上这个就好。
  1. toolbar={
  2.    
  3.    {
  4.    
  5.    
  6.           menu: {
  7.    
  8.    
  9.             type: 'tab',
  10.             activeKey: activeKey,
  11.             items: [
  12.               {
  13.    
  14.    
  15.                 label: <FormattedMessage id="platform.all" defaultMessage="All" />,
  16.                 key: '',
  17.               },
  18.               {
  19.    
  20.    
  21.                 label: <FormattedMessage id="platform.online" defaultMessage="Online" />,
  22.                 key: 'true',
  23.               },
  24.               {
  25.    
  26.    
  27.                 label: <FormattedMessage id="platform.offline" defaultMessage="Offline" />,
  28.                 key: 'false',
  29.               },
  30.             ],
  31.             onChange: (key: any) => {
  32.    
  33.    
  34.               setActiveKey(key);
  35.               if (actionRef.current) {
  36.    
  37.    
  38.                 actionRef.current.reload();
  39.               }
  40.             },
  41.           },
  42.         }}
复制代码
完备代码是如许的:
  1. import {
  2.    
  3.     addItem, queryList, removeItem, updateItem } from '@/services/ant-design-pro/api';
  4. import {
  5.    
  6.     PlusOutlined } from '@ant-design/icons';
  7. import type {
  8.    
  9.     ActionType, ProColumns, ProDescriptionsItemProps } from '@ant-design/pro-components';
  10. import {
  11.    
  12.     FooterToolbar, PageContainer, ProTable } from '@ant-design/pro-components';
  13. import {
  14.    
  15.     FormattedMessage, useAccess } from '@umijs/max';
  16. import {
  17.    
  18.     Button, message, Modal, Switch, Tooltip } from 'antd';
  19. import React, {
  20.    
  21.     useRef, useState } from 'react';
  22. import type {
  23.    
  24.     FormValueType } from './components/Update';
  25. import Update from './components/Update';
  26. import Create from './components/Create';
  27. import Show from './components/Show';
  28. import {
  29.    
  30.     useIntl } from '@umijs/max';
  31. import {
  32.    
  33.     carTypeMap } from '@/utils/constants';
  34. import CopyToClipboard from '@/components/CopyToClipboard';
  35. import ConfigureForm from './components/ConfigureForm';
  36. /**
  37. * @en-US Add node
  38. * @zh-CN 添加节点
  39. * @param fields
  40. */
  41. const handleAdd = async (fields: API.ItemData) => {
  42.    
  43.    
  44.   const hide = message.loading(<FormattedMessage id="adding" defaultMessage="Adding..." />);
  45.   try {
  46.    
  47.    
  48.     await addItem('/platforms', {
  49.    
  50.     ...fields });
  51.     hide();
  52.     message.success(<FormattedMessage id="add.success" defaultMessage="Added successfully" />);
  53.     return true;
  54.   } catch (error: any) {
  55.    
  56.    
  57.     hide();
  58.     message.error(
  59.       error?.response?.data?.message ?? (
  60.         <FormattedMessage id="add.failed" defaultMessage="Adding failed, please try again!" />
  61.       ),
  62.     );
  63.     return false;
  64.   }
  65. };
  66. /**
  67. * @en-US Update node
  68. * @zh-CN 更新节点
  69. *
  70. * @param fields
  71. */
  72. const handleUpdate = async (fields: FormValueType) => {
  73.    
  74.    
  75.   const hide = message.loading(<FormattedMessage id="updating" defaultMessage="Updating..." />);
  76.   try {
  77.    
  78.    
  79.     await updateItem(`/platforms/${
  80.      
  81.      fields._id}`, fields);
  82.     hide();
  83.     message.success(<FormattedMessage id="update.success" defaultMessage="Updated successfully" />);
  84.     return true;
  85.   } catch (error: any) {
  86.    
  87.    
  88.     hide();
  89.     message.error(
  90.       error?.response?.data?.message ?? (
  91.         <FormattedMessage id="update.failed" defaultMessage="Update failed, please try again!" />
  92.       ),
  93.     );
  94.     return false;
  95.   }
  96. };
  97. /**
  98. *  Delete node
  99. * @zh-CN 删除节点
  100. *
  101. * @param selectedRows
  102. */
  103. const handleRemove = async (ids: string[]) => {
  104.    
  105.    
  106.   const hide = message.loading(<FormattedMessage id="deleting" defaultMessage
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表