筛选组件Screen

举报
云会议运营喵大人 发表于 2020/03/10 15:50:58 2020/03/10
【摘要】 Screen筛选漏斗。Screen UI UI提供与WeLink规范一致的视图。参数说明Selection名称类型默认值说明valuestring选中的值dataSourcearray组件数据显示数据placeholderstring未选择是显示字样onChangefunc组件选中事件ScreenSort名称类型默认值说明titlestring显示的文本sortstring上下箭头显示效果,...

Screen


筛选漏斗。Screen UI UI提供与WeLink规范一致的视图。

参数说明

Selection

名称类型默认值说明
valuestring
选中的值
dataSourcearray
组件数据显示数据
placeholderstring
未选择是显示字样
onChangefunc
组件选中事件

ScreenSort

名称类型默认值说明
titlestring
显示的文本
sortstring
上下箭头显示效果,升序:asc,降序:desc
onClickfunc
组件的onclik事件

Screen

名称类型默认值说明
activeboolfalse选中状态
defaultSelectarray
选中的值
groupsarray
组件数据显示数据
onOkClickfunc
确认按钮事件
resetTextstring'重置条件'重置按钮文本
okTextstring'确定'确认按钮文本

import React from 'react';

import {

  Selection, ScreenArea, Screen, ScreenSort

} from '@wecode/react-weui';


export default class ScreenDemo extends React.Component {

  state = {

    defaultValue1: 'Jose Robinson',

    defaultValue2: '',

    arrayList: [

      { label: 'Elizabeth Anderson', value: 'Elizabeth Anderson' },

      { label: 'Sarah Martin', value: 'Sarah Martin' },

      { label: 'Cynthia Hall', value: 'Cynthia Hall' },

      { label: 'Anthony Miller', value: 'Anthony Miller' },

      { label: 'Karen Hall', value: 'Karen Hall' },

      { label: 'Steven Jones', value: 'Steven Jones' },

      { label: 'Jennifer Martinez', value: 'Jennifer Martinez' },

      { label: 'Joseph Jones', value: 'Joseph Jones' },

      { label: 'Maria Davis', value: 'Maria Davis' },

      { label: 'Jose Robinson', value: 'Jose Robinson' },

      { label: 'Brenda Harris', value: 'Brenda Harris' },

      { label: 'Charles Martin', value: 'Charles Martin' },

      { label: 'Eric Lopez', value: 'Eric Lopez' },

      { label: 'Anna Smith', value: 'Anna Smith' },

      { label: 'Jose Lopez', value: 'Jose Lopez' },

      { label: 'Michelle Perez', value: 'Michelle Perez' },

      { label: 'Angela Smith', value: 'Angela Smith' },

      { label: 'Susan Clark', value: 'Susan Clark' },

      { label: 'Lisa Martin', value: 'Lisa Martin' },

      { label: 'Sandra Williams', value: 'Sandra Williams' },

      { label: 'Dorothy Thomas', value: 'Dorothy Thomas' },

      { label: 'Kenneth Perez', value: 'Kenneth Perez' },

      { label: 'Larry Lewis', value: 'Larry Lewis' },

      { label: 'Frank Taylor', value: 'Frank Taylor' }

    ],

    screenArray: [

      { title: '维度一', data: [{ value: '1', label: '选项1' }, '选项名称长', '选项3', '选项4', '选项5', '选项名称长', '选项7', '选项8'] },

      { title: '维度二', data: [{ value: '1', label: '选项1' }, '选项名称长', '选项3', '选项名称长', '选项名称长', '选项6', '选项7'] },

      { title: '维度三', data: [{ value: '1', label: '选项1' }, '选项名称长', '选项3', '选项4', '选项名称长', '选项名称长', '选项7', '选项8'] }

    ],

    active: true

  }


  handleChangeValue = (key, value) => {

    this.setState({ [key]: value });

  }


  render() {

    const {

      defaultValue1, defaultValue2,

      arrayList, screenArray, sort, active

    } = this.state;

    return (

      <div>

        <ScreenArea>

          <Selection

            key="1"

            value={defaultValue1}

            dataSource={arrayList}

            placeholder="请选择数据"

            onChange={value => this.handleChangeValue('defaultValue1', value)}

          />

          <ScreenSort title="发布时间" sort={sort} onClick={()=> this.setState({ sort: (sort === 'asc' ? 'desc' : 'asc') })} />

          <Selection

            key="2"

            value={defaultValue2}

            dataSource={arrayList}

            placeholder="请选择数据"

            onChange={value => this.handleChangeValue('defaultValue2', value)}

          />

          <Screen

            groups={screenArray}

            active={active}

            resetText="Reset"

            okText="OK"

            defaultSelect={[[0, 3], 3, 4, 2]}

            onOkClick={selects=>{

              if (selects && selects.length > 0) {

                const selectgrounds = selects.filter(select=>{

                  if (Array.isArray(select)) {

                    return select.filter(val=>val || val === 0);

                  }

                  return select || select === 0;

                });

                console.log('selectgrounds:', selectgrounds);

                this.setState({ active: (selectgrounds && selectgrounds.length > 0) }, ()=>{ const { active } = this.state; console.log('------active', active) ; });

                return;

              }

              this.setState({ active: false });

            }}

          >

            筛选

          </Screen>

        </ScreenArea>

      </div>

    );

  }

}


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。