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

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

CrazyPanda发表于:2024-02-20 16:25:54浏览:477次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】AntDesignPro使用原生js,箩筐地图的使用
项目需要把高德地图替换成箩筐地图,WEB前端使用的ant design pro,高德地图有相关的react demo,而箩筐地图只有原生js,结合上一篇文章【AntDesignPro】使用高德地图设置考勤区域,把高德地图修改为箩筐地图,实现考勤范围设置。1 html使用箩筐地图参考上一篇文章【html】箩筐地图的使用,设置考勤范围,了解实现考勤范围设置需要用到的箩筐地图接口。2 ant design pro加载原生js这个是实现功能的核心,只有js正确加载上了,地图的功能才能够正常使用。结合an
发表于:2024-02-08 浏览:465 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(二)
&nbsp;目录一、ModalForm高度设置二、ModalForm点击阴影背景,不隐藏弹框三、ProFormSelect联动四、ProFormText关联赋值一、ModalForm高度设置在modalProps中设置bodyStyle:{height:500,overflowY:&#39;scroll&#39;}编辑效果如下:编辑二、ModalForm点击阴影背景,不隐藏弹框同样在modalProps里面,配置maskClosable: false,就可以实现点击弹框外阴影,不隐藏弹框&lt;
发表于:2023-11-28 浏览:1179 TAG:
【AntDesignPro】Ant Design Pro学习记录—默认主题配色修改
&nbsp;版本:&nbsp;Ant Design Pro V5先参考下官网定制主题 - Ant Design再参考这篇文章antd pro 修改全局样式_tankpanv的博客-CSDN博客_antd修改全局样式最后自己实验:第一步,在config.ts文件中配置theme:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&#39;primary-color&#39;:&nbsp;defaultSettings.primaryColor, &nbsp;&nbsp;},这种配置需
发表于:2023-11-28 浏览:777 TAG:
【AntDesignPro】Ant Design Pro学习记录—前后端一体化部署
目录前言一、系统配置二、ant design pro访问路径配置三、站点访问路径配置前言好长时间没记录了,使用ant design pro有一年了,期间陆续做了好几个项目,从陌生到熟练,还有好多钻研成果没记录,后续有时间陆续补上。之前几个项目一直是前后端分开部署的,需要配置两个站点域名访问,还要解决跨域session问题,这次把一体化部署记录一下。一、系统配置服务端用的LNMP,使用tp6框架,使用宝塔面板管理。tp站点先正常部署,步骤省略,见下图:配置网站目录和运行目录:&nbsp;编辑配置伪
发表于:2023-11-28 浏览:819 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 浏览:701 TAG:
【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 浏览:354 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(三)
一、 Form.useForm()的使用之前使用表单的时候,一直在为表单赋值纠结,找了一些资料,也感觉很复杂,使用多了之后,感觉表单赋值也挺简单的。1、 创建一个formconst&nbsp;[theForm]&nbsp;=&nbsp;Form.useForm();2、 绑定表单组件无论是ProForm、ModalForm、还是DrawerForm,都可以绑定我们的theForm,使用属性form={theForm}绑定,代码如下&lt;ProForm &nbsp;&nbsp;&nbsp;&amp;nb
发表于:2024-02-20 浏览:466 TAG:
【React】使用React实现一个内容滑动组件
最近在做项目时遇到一个需求,需要让一个列表能够通过点击按钮进行滚动,每次都是一屏的距离,不足则结束。并且,这个列表项是在react-grid-layout中的某一个模块内。所以包裹这个列表的容器会随时发生变化。在完成这个组件后,通过这篇文章总结一下。UI/原型分析那么从上面的功能描述以及项目中的UI,我们可以分析得到这样一个假想图:我们需要实现一个容器来作为我们的可视区域,并且这个容器是可以伸缩的。列表内容如果超出容器的可视区域,那么就会被隐藏。需要左右都有按钮,来支持用户左右滑动内容来查看,每
发表于:2024-04-10 浏览:318 TAG:
【AntDesignPro】Ant Design Pro学习记录—ModalForm的使用(一)
目录前言一、ModalForm销毁二、ModalForm编辑赋值三、ProFormUploadButton赋值四、其它总结前言使用了AntDesignPro,仿照TableList创建了自己的列表,列表添加编辑确成了困扰,添加编辑使用了ModalForm,有两个问题,一个使用后,页面数据无法清除,再点弹框还是原来的数据,第二个编辑的时候,初始数据赋值问题。AntDesignPro版本V5,开发工具VsCode。一、ModalForm销毁参考ant design的关闭ModalForm和Modal
发表于:2023-11-28 浏览:631 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 浏览:879 TAG: #php