您的当前位置:首页>全部文章>文章详情

【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(三)

CrazyPanda发表于:2024-02-20 16:25:54浏览:483次TAG:

一、 自定义检索条件

部分列表页需要做一些简单的数据汇总统计,并能够跟随检索条件自动变化,protable自带的功能没有找到对应的实现方法,最后决定自己来实现这个功能。

1、关闭ProTable自带检索功能

search={false}

2、自定义检索表单

在ProTable上方加入自定义表单

<Card bordered={false} style={{ marginBottom: 15 }}>
          <ProForm
            hideRequiredMark
            style={{ marginTop: 8 }}
            layout="inline"
            onFinish={async (value) => {
              console.log(value);
              if (value.projects) {
                setProjectsData(value.projects.join(','));
              }
              if (value.month_start && value.month_end) {
                if (value.month_start > value.month_end) {
                  message.error('开始月份不能大于结束月份');
                  return false;
                }
              }
              setMonthStartData(value.month_start);
              setMonthEndData(value.month_end);
              monthTotal({
                projects: value.projects ? value.projects.join(',') : '',
                month_start: value.month_start,
                month_end: value.month_end,
              }).then((res) => {
                console.log(res);
                setData(res?.data);
              });
              if (actionRef.current) {
                actionRef.current?.reload();
              }
            }}
            submitter={{
              searchConfig: {
                resetText: '',
              },
            }}
          >
            <ProFormSelect
              name="projects"
              label="项目名称"
              options={projectSelect}
              placeholder="请选择项目"
              mode="multiple"
              style={{ minWidth: 200 }}
            />
            <ProFormDatePicker.Month
              name="month_start"
              label="开始月份"
              width={200}
              placeholder="请选择开始月份"
            />
            <ProFormDatePicker.Month
              name="month_end"
              label="结束月份"
              width={200}
              placeholder="请选择结束月份"
            />
          </ProForm>
        </Card>

这里需要配置ProForm的样式

layout="inline"

这样可以保证表单内容横向排列。

3、定义检索字段

把需要的检索条件都存储起来。

const [projectsData, setProjectsData] = useState<[]>();
const [monthStartData, setMonthStartData] = useState<[]>();
const [monthEndData, setMonthEndData] = useState<[]>();

然后再表单的提交方法里面onFinish,给这写内容赋值,同事调用数据统计的方法,将参数传过去获取新的统计结果。

4、 更新列表数据

在Proform的onFinish方法里面,给检索条件赋值成功后,刷新列表

if (actionRef.current) {
                actionRef.current?.reload();
              }

这个刷新需要给ProForm配置actionRef属性

<ProTable<API.CompanyList, API.PageParams>
            actionRef={actionRef}
            rowKey="key"
            search={false}
            request={async (params) => {
              params['projects'] = projectsData ? projectsData : '';
              params['month_start'] = monthStartData;
              params['month_end'] = monthEndData;
              const res = await monthCount(params);
              return res;
            }}
            columns={columns}
/>

这里我们在request的时候,将自定义的检索条件都给加到原参数上,然后调用列表数据接口,更新数据。

这样就完成了,在点击表单提交按钮的时候,获取汇总统计数据,同时刷新列表。展示效果如下:

image.png

有需要的还可以给自定义表单设置重置按钮,同时在reset方法里面同样给检索条件赋值,然后刷新表单即可。

猜你喜欢

【AntDesignPro】Ant Design Pro学习记录—自定义菜单选中
页面增删改查,打开子页面时,要让父页面菜单选中,参考官网给出的方案菜单的高级用法 - Ant Design Pro&nbsp;使用的V5版本,直接设置 parentKeys:[&#39;/product&#39;] 即可export&nbsp;default&nbsp;[ &nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;&#39;/product&#39;, &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;不展示菜单 &nbsp;
发表于:2023-11-28 浏览:766 TAG:
【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(二)
目录一、列表检索初始值设置二、字段缩略显示一、列表检索初始值设置使用initialValue属性,配置列表检索的初始值const&nbsp;columns:&nbsp;ProColumns&lt;API.RoomItem&gt;[]&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;&#39;名称&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;nb
发表于:2023-11-28 浏览:709 TAG:
【AntDesignPro】Ant Design Pro学习记录—搭建AntDesignPro脚手架
文章目录前言一、操作过程1.初始化2.完成后配置软连接3.继续执行4.进入应用5.安装依赖6.启动前言工作项目需要,使用了AntDesignPro开发,在此做一个学习研究记录。一、操作过程参考官网开始使用 - Ant Design Pro🏆 让中后台开发更简单 包含 table form 等多个组件。https://pro.ant.design/zh-CN/docs/getting-started在node.js npm yarn 环境配置好之后,按照官网操作运行1.初始化npm
发表于:2023-11-22 浏览:590 TAG: #前端 #antd #AntDesignPro
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(四)
一、 ModalForm自定义footer按钮参考官网,Modal弹框是可以自定义按钮的,原想着ModalForm的modalprops可以设置自定义footer,结果设置一直不生效,最终还是使用Modal嵌套了ProForm实现了功能,在此记录一下。ant design pro使用的V5版本。1、Modal自定义footer参考官网https://ant-design.antgroup.com/components/modal-cn?from=msidevs.net#components-mo
发表于:2024-02-20 浏览:360 TAG:
【AntDesignPro】Ant Design Pro学习记录—前后端分离跨域设置,解决跨域session不一致
目录前言一、为什么跨域二、跨域配置三、跨域请求session不一致前言第一次做前后端分离,也是踩了很多坑,记录一下AntDesignPro跨域解决的方式。服务器系统使用Nginx,服务端使用thinkphp6。AntDesignPro正式build放到服务器上后,提示登录成功,但一直登录不上,后来发现是跨域session不同导致的,登录的时候session和登录成功后session的id不同,导致提示登录成功,就是登录不进去的情况。一、为什么跨域不想知道为什么要跨域,只想知道怎么解决。二、跨域配
发表于:2023-11-28 浏览:564 TAG:
【React】16 个实用的 React 库
Web开发中,经常会需要使用第三方库来提高开发效率。今天给大家分享16个非常实用的React第三方库,使用好这些库你可以更轻松、更快速的开发项目,让我们一起看看吧!1.react-hook-formReact-hook-form 是一个用于构建 Web 应用程序的表单库。它支持多种表单类型,包括输入框、下拉框、单选框、多选框等。它还提供了一些自定义选项,可以自定义表单的外观和行为。官方地址:https://react-hook-form.com/2.rechartsRecharts 是一个用于构
发表于:2024-04-01 浏览:303 TAG:
【React】react面试题
React面试题文章目录React面试题一、react特性***React与Vue的区别*******1. Jsx的使用规范*******1.说说对 React 的理解?有哪些特性?DOM2.说说 Real DOM 和 Virtual DOM 的区别?优缺点?*******说说React中的虚拟dom?在虚拟dom计算的时候diff和key之间有什么关系*******3.说说React Jsx转换成真实DOM过程?4.说说你第mvc和mvvm的理解5.说说react中引入css的方式有哪几种?区
发表于:2023-12-05 浏览:1418 TAG:
【AntDesignPro】Ant Design Pro学习记录—ProTable的使用(三)
一、 自定义检索条件部分列表页需要做一些简单的数据汇总统计,并能够跟随检索条件自动变化,protable自带的功能没有找到对应的实现方法,最后决定自己来实现这个功能。1、关闭ProTable自带检索功能search={false}2、自定义检索表单在ProTable上方加入自定义表单&lt;Card&nbsp;bordered={false}&nbsp;style={{&nbsp;marginBottom:&nbsp;15&nbsp;}}&gt; &nbsp;&nbsp;&nbsp;&nbsp;
发表于:2024-02-20 浏览:485 TAG:
【AntDesignPro】Ant Design Pro学习记录—前后端一体化部署
目录前言一、系统配置二、ant design pro访问路径配置三、站点访问路径配置前言好长时间没记录了,使用ant design pro有一年了,期间陆续做了好几个项目,从陌生到熟练,还有好多钻研成果没记录,后续有时间陆续补上。之前几个项目一直是前后端分开部署的,需要配置两个站点域名访问,还要解决跨域session问题,这次把一体化部署记录一下。一、系统配置服务端用的LNMP,使用tp6框架,使用宝塔面板管理。tp站点先正常部署,步骤省略,见下图:配置网站目录和运行目录:&nbsp;编辑配置伪
发表于:2023-11-28 浏览:830 TAG:
【React】前端框架 React 学习总结
目录一、React在HTML里的运用二、React框架的常用操作项目打包1、JSX基础语法规则2、state数据的使用3、生命周期4、数据的双向绑定与Ref5、PropTypes验证规则6、React里的插槽7、错误边界8、直接操作refs元素9、高阶组件的运用案例10、性能优化11、Hook生命周期钩子的使用12、React里的计算属性三、组件之间的传值1、父子组件之间传值2、子向父传值3、context实现跨层级通信context hook案例四、网络请求框架使用五、React路由的使用声明
发表于:2023-12-05 浏览:892 TAG: #php