多条件筛选(单选、多选、综合筛选)

2023-02-22  本文已影响0人  Smile_smile_

需求简介

具体交互逻辑

  1. 清空和确定只控制当前条件,点击“清空”,条件恢复到上一次提交状态、点击“确定”,提交当前条件,其他选项条件保持不变,一同提交,点击页面其他区域,下拉框关闭,本次修改条件不提交;
  2. 各条件有默认选项(默认勾选),每次打开筛选下拉,自动勾选上一次提交的选项;
  3. 多选条件提交(确定按钮点击)后,上面条件栏文案相应变动,具体规则是:单选点击后 显示单选项文案;多选点击后 显示多选项文案(选全部除外,超过1个选项或文案超过4个字时后面以…显示);
  4. 条件项点击的逻辑:每次只修改一个下拉框的条件(一般是一个,更多筛选中全部条件同步修改);点击各条件项,切换对应下拉框内容;连续点击同一条件项,下拉框显示或隐藏;
  5. 选项点击的逻辑:多选项可选中或取消,只有一个选项被选中时不可取消,点击全部时 其他选项全部取消;单选项只能选中,不可取消,点击选中某选项 其他选项要取消勾选;
  6. 弹框的展示与隐藏:
    • 点击顶部筛选栏,展示条件弹框;
    • 点击条件弹框以外区域,关闭条件弹框(不提交);
    • 单选及多选提交后关闭弹框;

实现过程

筛选条件及选项下拉框抽出为单独组件,渲染时条件数据由外部页面传入,条件选项提交时由回调方法传出。

Dom设计

条件栏嵌入在页面顶部,fix布局;下拉选项弹框外面有一层遮罩(处理点击关闭事件),遮罩高度为100% 减去条件栏高度,下拉选项内容部分最大高度按设计要求设为75%(底部剩余25%内容可点击关闭)

JS交互处理
上一篇 下一篇

猜你喜欢

热点阅读