ProTable search form表单属性用法详解

Protable自带表单筛选,一般场景适用.
也提供了一些api,方便不同场景使用.这里列出几种常用的属性
api:

 

 
1. labelWidth form表单label的宽度,可以是number或者'auto'.默认是80px,实际使用设置为auto更好
   
设置方法
<ProTable
  ...
  search={{ labelWidth: 'auto' }}
/>

 

2. span栅格个数,同antd的Row Col组件,这里要注意,搜索表单有一览按钮操作,如果同一行,也算一列.不设置时会根据页面宽度自动计算个数
 
设置方法
<ProTable
  ...
  search={{ span: 6 }}
/>

 

3. collapsed是否折叠,表单查询项过多时会默认折叠,可以通过属性控制.注意,如果变为可控,折叠状态失效,点击折叠图标时需要手动改变值. 如果只需要页面在初始化改变,可以使用defaultCollapsed设置

 

设置方法
const [collapsed, setCollapsed] = useState<boolean>(true)
<ProTable
  ...
  search={{ 
    collapsed, // 状态可控
    onCollapse: (value: boolean) => { // 通过方法手动修改状态
      setCollapsed(value)
    }
  }}
/>

 

4. searchText,resetText查询,重置按钮的文本.表单搜索默认有两个dom.查询和重置,内置了相关事件方法.可以改变文本
设置方法
<ProTable
  ...
  search={{ 
    searchText: '提交'
  }}
/>

 

5. optionRender,自定义搜索操作组件. searchText,resetText只能修改文字,如果想加入icon或者多添加按钮,可以通过optionRender自定义.optionRender返回3个参数searchConfig,就是search里的api,例如前面所设置的属性 formProps,就是search这个form表单示例 dom就是自带的两个组件搜索和提交

 

设置方法
<ProTable
  ...
  search={{ 
    optionRender: ({ searchText }, { form }) => {
      // console.log(searchConfig, formProps, dom)
      return [
        <Button
          key="reset"
          icon={<RedoOutlined />}
          onClick={() => {
            form?.resetFields();
          }}
        >
          重置
        </Button>,
        <Button
          key="sub"
          icon={<SearchOutlined />}
          onClick={() => {
            form?.submit();
          }}
        >
          {searchText}
        </Button>,
        <Button key="out" onClick={() => console.log(6668)}>
          导出
        </Button>,
      ];
    },
  })
  }}
/>

 

6. 设置form表单值.设置默认值可以通过设置columns里面的initialValue.如果不是在初始化赋值.可以使用方法在指定时刻赋值.赋值方法和antdesign的form表单一样
设置方法
const formRef = useRef<ProFormInstance>()

  // 设置form值
  const changeTitle = (value: string) => {
    formRef?.current?.setFieldsValue({
      title: value,
      number: 800,
    })
  }

<ProTable
  ...
  formRef={formRef} // 赋值ref
/>

 

源码地址: https://github.com/shengbid/antdpro-demo/tree/main/src/pages/proTable/search

posted @ 2022-01-25 16:55  潇湘羽西  阅读(12628)  评论(0编辑  收藏  举报