Ant-Design-Pro-V5 :QueryFilter高级筛选组件、Table以及Pagination组件结合实现查询。

需求:根据 分类条件选择不同类型, table表格调取不同接口,展示不同数据。
在这里插入图片描述
代码:

import React, { useRef, useState, Fragment, useEffect } from 'react';
import { getNoticeInfo, getBannerList, delNotice } from './service';
import { getCodeSelecBytybe } from '@/services/globalServices';
import {ProFormSelect,QueryFilter,PageContainer,ProFormText,ProTable,
} from '@ant-design/pro-components';
import { Button, Form, message, Table, Pagination, Spin, Card } from 'antd';
import { FormattedMessage } from 'umi';
import { twoToneColor } from '@/utils/twoToneColor';
const TableList = () => {const ref = useRef();const [classifyInitialValue, setClassifyInitialValue] = useState('fees'); // 分类类型const [managecomnameParam, setManagecomnameParam] = useState(''); // 搜索条件管理机构参数const [bankcodenameParam, setBankcodenameParam] = useState(''); // 搜索条件渠道参数const [displayStatus, setDisplayStatus] = useState('1'); // 显示状态const [xgStatus, setXgStatus] = useState('1'); // 销管状态const [currentPage, setCurrentPage] = useState(1); // 当前页码const [curPageSize, setCurPageSize] = useState(10); // 当前页码展示条数const [loading, setLoading] = useState(false); // 加载中const [data1, setData1] = useState([]); // 手续费和协议 数据const [curPage1, setCurPage1] = useState(1); // 手续费和协议 当前页码const [data1Total, setData1Total] = useState(0); // 手续费和协议 数据总数目const [data2, setData2] = useState([]); // 协议管理 数据const [curPage2, setCurPage2] = useState(1); // 协议管理 当前页码const [data2Total, setData2Total] = useState(0); // 协议管理 数据总数目const [manageComList, setManageComList] = useState([]);const [managecomObj, setManagecomObj] = useState({}); // 机构对象const [bankcodenameArray, setBankcodenameArray] = useState([]);useEffect(() => {getCodeSelecBytybe({ codeType: 'managecomshortname2' }).then((res) => {if (res && res.success) {setManageComList(res.data);// 机构转成对象const obj = {};res.data.map((item) => {obj[item.value] = item.title;return true;});setManagecomObj(managecomObj);} else {setManageComList([]);}});getCodeSelecBytybe({ codeType: 'agentcomshortname' }).then((res) => {if (res && res.success) {setBankcodenameArray(res.data);} else {setBankcodenameArray([]);}});}, []);const [param, setParmam] = useState({current: currentPage,pageSize: curPageSize,// manageCom: managecomnameParam, // 管理机构// bankCode: bankcodenameParam, // 渠道f2: displayStatus, // 显示状态f1: xgStatus, // 销管状态}); // 手续费和协议 请求参数// const [param2, setParmam2] = useState({//   current: 1,//   pageSize: 10,//   manageCom: managecomnameParam, // 管理机构//   bankCode: bankcodenameParam, // 渠道//   f2: displayStatus, // 显示状态//   f1: xgStatus, // 销管状态// }); // 协议管理 请求参数// 参数重置const rest = () => {setManagecomnameParam('');setBankcodenameParam('');setCurrentPage(1);setCurPageSize(10);setData1([]);setCurPage1(1);setData1Total(0);setData2([]);setCurPage2(1);setData2Total(0);setParmam({current: 1,pageSize: 10,// manageCom: '', // 管理机构// bankCode: '', // 渠道f2: 1, // 显示状态f1: 1, // 销管状态});if (ref.current) {ref.current.setFieldsValue({managecomname: '',bankcodename: '',});}};// 分类切换方法const classifyChange1 = (value) => {// console.log('value分类切换方法', value);setClassifyInitialValue(value);rest();};// 请求数据useEffect(() => {setLoading(true);if (classifyInitialValue == 'fees') {getData1();} else if (classifyInitialValue == 'agreement') {getData2();}}, [classifyInitialValue, param]);// 手续费和协议const getData1 = () => {getNoticeInfo(param).then((res) => {// console.log(res);const { data, success, total, page } = res;if (success) {setData1(data);setData1Total(total);setCurPage1(page);setLoading(false);}});};// 协议管理const getData2 = () => {getBannerList(param).then((res) => {// console.log(res);const { data, success, total, page } = res;if (success) {setData2(data);setData2Total(total);setCurPage2(page);setLoading(false);}});};// 页码切换const onShowSizeChange = (current, pageSize) => {// console.log(current, pageSize);setCurrentPage(current);setCurPageSize(pageSize);setParmam({current: current,pageSize: pageSize,manageCom: managecomnameParam, // 管理机构bankCode: bankcodenameParam, // 渠道f2: displayStatus, // 显示状态f1: xgStatus, // 销管状态});};// 查询按钮const QueryFilterOnFinish = (values) => {const { classify, managecomname, bankcodename, f2, f1 } = values;// console.log(values);setManagecomnameParam(managecomname);setBankcodenameParam(bankcodename);setDisplayStatus(f2); // 显示状态setXgStatus(f1); // 销管状态setParmam({current: currentPage,pageSize: curPageSize,manageCom: managecomname, // 管理机构bankCode: bankcodename, // 渠道f2: f2, // 显示状态f1: f1, // 销管状态});};const ProTable = () => {return (<Spin spinning={loading}><Card><h3>查询列表</h3><Tablecolumns={classifyInitialValue == 'fees' ? columns1 : columns2}dataSource={classifyInitialValue == 'fees' ? data1 : data2}scroll={{x: 1300,}}pagination={false}/><div style={{ marginTop: 10, display: 'flex', justifyContent: 'flex-end' }}><Pagination// showSizeChanger={false}// onChange={classifyInitialValue == 'fees' ? onShowSizeChange1 : onShowSizeChange2}// onShowSizeChange={//   classifyInitialValue == 'fees' ? onShowSizeChange1 : onShowSizeChange2// }showSizeChangeronChange={onShowSizeChange}onShowSizeChange={onShowSizeChange}current={classifyInitialValue == 'fees' ? curPage1 : curPage2}total={classifyInitialValue == 'fees' ? data1Total : data2Total}showTotal={(total, range) => `${range[0]}-${range[1]} 条/总共 ${total}`}/></div></Card></Spin>);};const columns1 = [{title: '管理机构',dataIndex: 'managecomname',align: 'center',valueType: 'select',fieldProps: {options: manageComList, //后台取下拉字典的数组fieldNames: {// 别名label: 'codeName',value: 'codeValue',},},search: false,},{title: '渠道',dataIndex: 'bankcodename',align: 'center',valueType: 'select',fieldProps: {options: bankcodenameArray, //后台取下拉字典的数组fieldNames: {// 别名label: 'codeName',value: 'codeValue',},},search: false,},{title: '产品名称',dataIndex: 'riskname',align: 'center',search: false,},{title: '手续费',dataIndex: 'feeradix',align: 'center',search: false,},{title: '缴费年期',dataIndex: 'payyears',align: 'center',search: false,render: (text) => {return text === '1000' ? '趸交' : text;},},{title: '有效日期(起期-止期)',dataIndex: 'caldate',align: 'center',search: false,},{title: '销管状态',dataIndex: 'f1',align: 'center',valueType: 'select',initialValue: '1',valueEnum: {1: { text: '有效', status: 'Success' },2: { text: '无效', status: 'Error' },},search: false,},{title: '显示状态',dataIndex: 'f2',align: 'center',valueType: 'select',// initialValue: ['1'],valueEnum: {1: { text: '已显示' },2: { text: '未显示' },},search: false,},{title: <FormattedMessage id="pages.searchTable.titleOption" />,dataIndex: 'option',valueType: 'option',align: 'center',width: 180,render: (_, record) => [<div key={record.id}><Fragment></Fragment></div>,],},];const columns2 = [{title: '管理机构',dataIndex: 'managecomname',align: 'center',valueType: 'select',fieldProps: {options: manageComList, //后台取下拉字典的数组fieldNames: {// 别名label: 'codeName',value: 'codeValue',},},search: false,},{title: '渠道',dataIndex: 'bankcodename',align: 'center',valueType: 'select',fieldProps: {options: bankcodenameArray, //后台取下拉字典的数组fieldNames: {// 别名label: 'codeName',value: 'codeValue',},},search: false,},{title: '协议名称',dataIndex: 'protocononame',align: 'center',search: false,},{title: '有效日期(起期-止期)',dataIndex: 'caldate',align: 'center',search: false,},{title: '销管状态',dataIndex: 'f1',align: 'center',valueType: 'select',initialValue: '1',valueEnum: {1: { text: '有效', status: 'Success' },2: { text: '无效', status: 'Error' },},search: false,},{title: '显示状态',dataIndex: 'f2',align: 'center',valueType: 'select',// initialValue: ['1'],valueEnum: {1: { text: '已显示' },2: { text: '未显示' },},search: false,},{title: <FormattedMessage id="pages.searchTable.titleOption" />,dataIndex: 'option',valueType: 'option',align: 'center',width: 180,render: (_, record) => [<div key={record.id}><Fragment></Fragment></div>,],},];return (<PageContainer breadcrumb={false}><div style={{ background: '#fff', paddingTop: 20, paddingRight: 50 }}><QueryFilterlabelWidth={125}formRef={ref}defaultCollapsed={false}collapseRender={false}onFinish={async (values) => {QueryFilterOnFinish(values);}}submitter={{// 完全自定义整个区域render: (props, doms) => {// console.log(props);return [<Buttonkey="rest"onClick={() => {props.form?.resetFields();rest();}}>重置</Button>,<Button type="primary" key="submit" onClick={() => props.form?.submit?.()}>查询</Button>,];},}}><ProFormSelectname="classify"label="分类"width="lg"initialValue={classifyInitialValue}fieldProps={{options: [{ label: '手续费管理', value: 'fees' },{ label: '协议管理', value: 'agreement' },],onChange: (value) => {// console.log(value);classifyChange1(value);},}}/><ProFormSelectname="managecomname"label="管理机构"width="lg"fieldProps={{options: manageComList,fieldNames: {// 树属性重命名label: 'codeName',value: 'codeValue',},}}/><ProFormSelectname="bankcodename"label="渠道"width="lg"fieldProps={{options: bankcodenameArray,fieldNames: {// 树属性重命名label: 'codeName',value: 'codeValue',},}}/><ProFormSelectname="f2"label="显示状态"width="lg"initialValue={'1'}valueEnum={{1: '已显示',2: '未显示',}}/><ProFormSelectname="f1"label="销管状态"width="lg"initialValue={'1'}valueEnum={{1: '有效',2: '无效',}}/></QueryFilter></div><div style={{ marginTop: 15 }}>{ProTable()}</div></PageContainer>);
};export default TableList;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows系统ntp服务器一键开启

脚本 echo off REM 自动判断权限问题&#xff0c;主动获取管理员权限 echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if %errorlevel% NEQ 0 ( goto UACPrompt ) else ( goto gotAdmin ) …

探索随机森林: 机器学习中的集成学习神器

机器学习 第七课 随机森林 概述机器学习机器学习的主要分类监督学习无监督学习强化学习 集成学习提高准确性增强稳定性提升泛化能力 集成学习的主要方法BaggingBoostingStacking 随机森林的理论基础决策树的基本原理随机森林的生成过程随机森林的优势与局限性 随机森林的实际应…

vue2.0项目中组件和iframe之间如何传值

vue2.0项目中组件和iframe之间如何传值 一、vue组件二、iframe组件 一、vue组件 mounted() {// 注册 message 事件监听器&#xff0c;只注册一次window.addEventListener(message, this.handleFromIframeMessage) }, beforeDestroy() {// 移除事件监听器window.removeEventList…

C#实现数据导出任一Word图表的通用呈现方法及一些体会

疲惫的修改 应人才测评产品的需求&#xff0c;导出测评报告是其中一个重要的环节&#xff0c;报告的文件类型也多种多样&#xff0c;其中WORD输出也扮演了一个重要的角色。 实现方法比较简单&#xff0c;结合分析结果数据&#xff0c;通过WORD模板文件进行替换输出。在实现的…

关于报错java.util.ConcurrentModificationException: null的源码分析和解决

一般有这种问题,方法中至少会有List或者Map下的至少两个子类,有可能参数类型相同,也有可能不同都有可能触发这个问题!其主要原因是使用了ArrayList进行删除操作或者使用iterator遍历集合的同时对集合进行修改都有可能会出现这个问题 ArrayList属于List下的子类 需要区分的是Li…

qt的一些自绘控件

https://download.csdn.net/download/venice0708/88469835

嵌入式Linux_学习路线+基础知识

嵌入式Linux_学习路线基础知识 一、学习路线 说明&#xff1a;u-boot是一大块学起来需要三到六个月比较耗时&#xff0c;也属于比较落后的知识点&#xff0c;所以暂时不学习&#xff0c;内核也是如此暂时不学习&#xff0c;从应用层入手&#xff0c;先入门再深入 二、Shell指令…

MongoDB 的集群架构与设计

一、前言 MongoDB 有三种集群架构模式&#xff0c;分别为主从复制&#xff08;Master-Slaver&#xff09;、副本集&#xff08;Replica Set&#xff09;和分片&#xff08;Sharding&#xff09;模式。 Master-Slaver 是一种主从复制的模式&#xff0c;目前已经不推荐使用。Re…

ARM | 传感器必要总线IIC

IIC总线介绍 1.谈谈你对IIC总线理解&#xff1f; 1&#xff09;IIC总线是串行半双工同步总线,主要用于连接整体电路 2&#xff09;SCL/SDA作用:IIC是两线制,一根是时钟线SCK,用于控制什么时候进行进行数据传输,时钟信号由主机发出; 另一根是数据线SDA,用于进行数据传输,可以从…

C# Winform编程(9)网络编程

网络编程 HTTP网络编程IPAddress IP地址类WebClient类WebRequest类和WebResponse类 WebBrowser网页浏览器控件TCP网络编程TcpClient类TcpListener类NetworkStream类Socket类 HTTP网络编程 IPAddress IP地址类 IPAddress类代表IP地址&#xff0c;可在十进制表示法和实际的整数…

N——>BatchSize 数据维度理解和处理(chun, cat, squeeze, unsqueeze)

数据处理之N——>BatchSize N——>batch_size train_data TensorDataset(torch.Tensor(x_train).double(), torch.Tensor(y_train).double()) train_loader DataLoader(train_data, batch_sizeargs.bs, shuffleTrue, drop_lastTrue) for batch_idx, (inputs, results…

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

用JAVA代码编写 704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12]…

Haproxy 服务

Haproxy&#xff1a;他也是常用的负载均衡软件 nginx 支持四层转发&#xff0c;七层转发 haproxy 也是四层和七层转发 LVS的DR和NAT都是基于四层转发 都是基于流量的转发。 tun:四层和七层都有。 基于四层的转发&#xff1a; 1&#xff0c;lvs 2&#xff0c;nginx 3&…

JAVA代码审计-纵向越权漏洞分析

查看这个cms系统后台管理员 添加用户的页面 点击添加管理员 这个模块只有管理员拥有&#xff0c;普通用户没有这个模块。 打开源码分析是否存在越权漏洞。 ------------------------------------------------------------------------------------------------------------ …

对python中切片详解

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 Python中什么可以切片 Python中符合序列的有序序列都支持切片(slice) 如:列表,字符,元祖 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视…

Python 自动化(十五)请求和响应

准备工作 将不同day下的代码分目录管理&#xff0c;方便后续复习查阅 (testenv) [rootlocalhost projects]# ls mysite1 (testenv) [rootlocalhost projects]# mkdir day01 day02 (testenv) [rootlocalhost projects]# cp -rf mysite1/ day01/ (testenv) [rootlocalhost proj…

Spring Cloud Config

Spring Cloud Config 服务端:一个集中化配置中心,可以是一个独立的服务,也可以注册到服务治理中心,它可以集中管理各个 微服务的配置; 作用原理是从某个地方读取(本地/云端)提供给其客户端作为配置; 客户端:作为一个服务端,通过读取Config的服务端来获取自己的配置文件; 服务…

计算机视觉中的数据预处理与模型训练技巧总结

计算机视觉主要问题有图像分类、目标检测和图像分割等。针对图像分类任务&#xff0c;提升准确率的方法路线有两条&#xff0c;一个是模型的修改&#xff0c;另一个是各种数据处理和训练的技巧(tricks)。图像分类中的各种技巧对于目标检测、图像分割等任务也有很好的作用&#…

【AGC】更新应用信息报未知错误解决方法

【问题描述】 最近有几个开发者遇到了一个问题&#xff0c;他们在AGC控制台配置好应用信息的图标和截图之后&#xff0c;点击保存按钮会弹出“未知错误&#xff0c;请稍后再试”的异常报错&#xff0c;导致无法正确保存应用配置信息。 出错页面如图所示。 ​​ 【解决方案】 …

debian、ubuntu打包deb包工具,图形界面deb打包工具mkdeb

debian、ubuntu打包deb包工具&#xff0c;图形界面deb打包工具mkdeb&#xff0c;目前版本1.0 下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1QX6jXNMYRybI9Cx-1N_1xw?pwd8888 md5&#xff1a; b6c6658408226a8d1a92a7cf93834e66 mkdeb_1.0-1_all.deb