• ant-design 实现 搜索功能


    1.逻辑代码

    list.js

    /**
     * 用户列表页
     */
    import React,{ PureComponent } from 'react'
    import {connect} from 'react-redux'
    import {history} from '../../store'
    import styles from './index.less'
    import { Row, Col, Card, Form, Input, Select, Button } from 'antd';
    
    const FormItem = Form.Item;
    const { Option } = Select;
    const statusMap = ['success', 'error'];
    const status = ['启用', '禁用',];
    
    /**
     *  用户列表
     */
    @Form.create()
    class UserList extends PureComponent{
      state = {
        //
      };
    
      renderAdvancedForm() {
        const { getFieldDecorator } = this.props.form;
        return (
          <Form onSubmit={this.handleSearch.bind(this)} layout="inline">
            {/*搜索条件*/}
            <Row gutter={{ md: 8, lg: 24, xl: 48 }}>
              <Col md={8} sm={24}>
                <FormItem label="账号">
                  {getFieldDecorator('username')(
                    <Input placeholder="请输入" />
                  )}
                </FormItem>
              </Col>
              <Col md={8} sm={24}>
                <FormItem label="姓名">
                  {getFieldDecorator('name')(
                    <Input placeholder="请输入" />
                  )}
                </FormItem>
              </Col>
              <Col md={8} sm={24}>
                <FormItem label="状态">
                  {getFieldDecorator('status')(
                    <Select placeholder="请选择">
                      <Option value="0">启用</Option>
                      <Option value="1">禁用</Option>
                    </Select>
                  )}
                </FormItem>
              </Col>
            </Row>
            {/*按钮*/}
            <div style={{ marginBottom: 10 }}>
              <span>
                <Button 
                  icon="plus"
                  type="primary"
                  onClick={()=>(
                    history.push("/syster/user/add")
                  )}
                >
                  新建
                </Button>
              </span>
              <span style={{ float: 'right' }}>
                <Button
                  icon="search"
                  type="primary"
                  htmlType="submit"
                >查询</Button>
                <Button
                  icon="sync"
                  style={{ marginLeft: 8 }}
                  onClick={this.handleFormReset.bind(this)}
                >重置</Button>
              </span>
            </div>
          </Form>
        );
      }
    
      // 查询
      handleSearch(e){
        // 禁止默认行为
        e.preventDefault();
        // 获取 form 表单的值
        console.log(this.props.form.getFieldsValue());
      }
    
      // 重置
      handleFormReset(){
        this.props.form.resetFields();
      }
    
    
      render(){
    
        return(
          <Card bordered={false}>
            <div className={styles.tableList}>
              <div className={styles.tableListForm}>
                {this.renderAdvancedForm()}
              </div>
            </div>
          </Card>
        )
      }
    }
    
    export default connect (({ user })=>(
      user
    ))(UserList)

    2.样式

    @import "~antd/lib/style/themes/default.less";
    @import "../../utils/utils.less";
    
    .tableList {
      .tableListOperator {
        margin-bottom: 16px;
        button {
          margin-right: 8px;
        }
      }
    }
    
    .tableListForm {
      :global {
        .ant-form-item {
          margin-bottom: 24px !important;
          margin-right: 0;
          display: flex;
          > .ant-form-item-label {
             auto;
            line-height: 32px;
            padding-right: 8px;
          }
          .ant-form-item-control {
            line-height: 32px;
          }
        }
        .ant-form-item-control-wrapper {
          flex: 1;
        }
      }
      .submitButtons {
        white-space: nowrap;
        margin-bottom: 24px;
      }
    }
    
    @media screen and (max- @screen-lg) {
      .tableListForm :global(.ant-form-item) {
        margin-right: 24px;
      }
    }
    
    @media screen and (max- @screen-md) {
      .tableListForm :global(.ant-form-item) {
        margin-right: 8px;
      }
    }

    3.效果图

  • 相关阅读:
    sql日期操作
    用户活跃状态模型
    R基于Bayes理论实现中文人员特性的性别判定
    python的一点小常识
    [工作技能]SVN
    北大计算所词性标注集简表
    c++ boost 汉字和模式串混用的例子
    SVN文本文件报二进制属性的问题
    我的R代码备份
    FaceBook Twitter实习生简历求内推
  • 原文地址:https://www.cnblogs.com/crazycode2/p/9678053.html
Copyright © 2020-2023  润新知