Axure疑难杂症:完美解决中继器筛选问题(时间条件筛选、任性筛选)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!

 Axure产品经理精品视频课已登录优快云可点击学习https://edu.youkuaiyun.com/course/detail/40420

课程主题:中继器筛选专题

主要内容:时间条件筛选、多条件组合筛选、多个单一条件混合筛选

应用场景:各类数据表的多条件筛选均可使用

案例展示:

案例视频:

Axure中继器多条件筛选


正文内容:

Axure中继器条件筛选中有两个普遍的学习难点:

1、对于通过时间区间,来筛选中继器得到结果;

2、输入多个条件,来筛选中继器得到结果;在这种条件下,“我们认为的选择多个条件,把满足条件的结果,显示出来就可以了”,但是Axure提供是两种选择:满足全部条件,筛选出结果;支持单一条件的搜索;可见我们认为的,和Axure的软件支持是不一样的;

我尝试过通过<情形>来应对这种问题,但是无法实现,可能是Axure的技术支持原因。

今天终于找到解决方案,下面进入具体的设计过程,在本文结尾再来总结整体解决方案。

一、建设整体页面布局及中继器,做好准备工作

图1

二、组合筛选、时间筛选区解决方案

Axure组合筛选的思考逻辑是:设置输入多个条件的元件文本与中继器里的内容比对,输出一致的内容作为筛选结果,这里Axure软件提供的支持是必须满足全部筛选条件,对于组合筛选唯一注意的就是移除其他筛选选项的√要去掉;

图2

图3

图4

图5

下面是时间筛选,这里需要注意的是我们选择Date.parse()函数来比对时间,往期课程有详细的教程,提示大家的是注意空格以及英文小括号,有时候写对了,这些细节没注意一样出不来结果。这条函数极容易写错,我敲到文中,大家可以复制粘贴:

[[Date.parse(Item.Ctime) >= Date.parse(LVAR1.text) && Date.parse(Item.Ctime) <= Date.parse(LVAR2.text)]]

图6

以上是多条件筛选的解决方案,详细看看图里的交互就可以做出来。

三、任性筛选解决方案

在实际筛选场景下,用户不可能全部都输全,那么就会用到在筛选框里自己输内容,这就要求我们做人性化的设计,上文说了我打算通过情形来判断在各种条件下输出不同的筛选结果,但是axure不支持这种筛选。那么还需要实现这种设计,怎么办呢?

解决方案:通过输入区文本框的输入内容来判断用户输入的内容属于中继器中哪类的内容,然后我们在做筛选,为了实现这种目的,我们就需要用到失去焦点时和动态面板;根据判定的用户输入内容,显示不同的面板来做筛选,这样很好的区分开了不同条件对应的结果,与axure软件支持理念相符(要么你就满足全部条件,要么就做单一查询!):做多个单一查询。

图7

图8

图9

图10

按以上逻辑还可以设置很多条件,因为篇幅我只做了三个

做好了动态面板后,我们就可以制作输入框的交互

图11

图12

图13

图14


Axure中继器时间条件筛选注意事项

核心注意事项

1. 时间格式标准化

  • 统一格式:确保中继器内时间数据格式一致(如YYYY-MM-DD或时间戳)

  • 时区处理:考虑是否需要统一时区或标注时区信息

  • 示例:所有日期存储为"2023-12-31"而非混合使用"31/12/2023"等格式

2. 筛选逻辑设计

  • 边界条件:明确是否包含筛选的起止时间点(闭区间/开区间)

  • 空值处理:定义时间字段为空时的处理规则

  • 跨日处理:特别注意跨越午夜的时间段筛选(如23:00-01:00)

3. 交互设计要点

  • 动态更新:筛选条件变化时应实时刷新中继器显示

  • 状态反馈:显示当前生效的时间筛选范围

  • 重置功能:提供清除时间筛选的便捷操作

4. 性能优化

  • 数据量控制:大数据集时考虑分页加载或虚拟滚动

  • 索引优化:对时间字段建立排序索引提升筛选速度

  • 缓存策略:频繁访问的时间段数据可考虑缓存机制

本课小结:本次课难点是时间条件的筛选和多个单一条件的分别筛选;组合筛选不难;时间条件筛选需要使用Date.parse()函数,搞不懂的直接粘贴文中我的表达式;多个单一条件筛选使用动态面板来作为分割使用,有效符合axure对于筛选的设计逻辑。


相关课程直通车:

Axure疑难杂症:统计分析页面引入Echarts示例动态效果-优快云博客

Axure疑难杂症:中继器制作下拉菜单(多级中继器高级交互)-优快云博客

Axure疑难杂症:完美解决中继器数据互通、增删改查(玩转中继器)-优快云博客

Axure疑难杂症:利用中继器制作三级下拉菜单(逻辑判断进阶)-优快云博客

Axure疑难杂症:中继器制作下拉菜单(多级中继器高级交互)-优快云博客

如有其他相关问题,欢迎私信沟通,关注  结构化知识课堂-优快云博客

明天的产品大咖就是你,创作不易,麻烦关注一下,点赞+收藏,感谢大家!

### 如何在 Axure 中使用中继器进行时间筛选 #### 准备工作 为了实现在 Axure 中通过中继器进行时间筛选的功能,需先准备好相应的组件和数据源。创建一个包含日期字段的数据集,并将其加载到中继器内。 #### 数据处理 对于原始数据中的日期格式可能不统一的情况,在显示之前应该对其进行标准化转换以便于后续操作。具体做法是在设置目标项(TargetItem.ZCSJ)时应用字符串替换方法`replace('-', '/')`来调整分隔符从而获得更易解析的形式[^1]。 ```javascript var formattedDate = TargetItem.ZCSJ.replace(/-/g, "/"); ``` 此段脚本的作用在于将所有出现的短横线("-")替换成斜杠("/"),使得最终得到的结果更加符合常见的日期表示方式,便于进一步的操作与展示。 #### 添加筛选控件 接下来向页面添加用于触发筛选动作的选择框或其他交互元素,比如下拉菜单。为这些元件配置好初始状态下可供用户选取的不同时间段作为过滤条件的一部分。 #### 编写事件逻辑 针对上述提到的选择框定义其“On Change”(当值发生变化时)的动作响应机制。编写一段JavaScript代码片段用来捕获当前所选的时间范围并据此更新关联列表内的可见条目集合: ```javascript // 假设有一个名为 'datePicker' 的选择框以及一个叫作 'repeaterWidget' 的重复器部件 if (event.target.value === "all") { repeaterWidget.dataSet = originalDataSet; // 显示全部记录 } else { var filteredData = []; for (let i = 0; i < originalDataSet.length; ++i) { let itemDate = new Date(originalDataSet[i].ZCSJ); if ((itemDate >= startDate && itemDate <= endDate)) { // 根据实际需求设定起始结束日期变量 filteredData.push(originalDataSet[i]); } } repeaterWidget.dataSet = filteredData; } ``` 这段伪代码展示了如何基于选定的时间区间动态刷新中继器的内容。注意这里假设已经存在两个全局级别的 `startDate` 和 `endDate` 来存储由前端界面获取来的边界值。 #### 测试验证 完成以上步骤之后记得保存项目文件并通过快捷键F8启动预览模式来进行功能性的检验,确保一切按预期运行正常[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结构化知识课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值