axure商城

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

我们在做产品时,很多时候都会需要对报表进行汇总,而且汇总的维度都是灵活的,根据拖动字段且根据顺序来进行汇总。

这里对拖动字段到需要汇总到列表中,并且对汇总顺序进行排序到效果进行一个Axure实现。

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

演示效果https://tr5k1p.axshare.com/

一、先说思路
要实现这样的效果,其实可以利用中继器的排序/过滤的功能来实现。被拖走字段的中继器,则设置当前被拖走字段的行(hang)为不可见(通过过滤条件实现),拖动字段目标中继器则添加一行记录即可。当把字段从目标中继器拖走时,则删除目标中继器的当前行,原中继器的行(hang)则设置为可见即可。
排序的效果,只需要拖动某个字段,在结束拖动时,判断拖到那个位置后,然后重新设置序列号就可以了。

二、需要的组件说明
1、总的组件说明:
两个中继器(一个放原字段数据;一个放目标数据)、一个目标的区域Box(RECT)、一个在拖动排序时用于显示拖动内容的面板(Panel)。
特别说明:在中继器里面,显示内容的都需要放一个面板(Panel),因为在Axure中,只有面板支持拖动交互。如图:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

两个中继器的属性设置如下:

原中继器(本按例中命名为:rpDataSrc)

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

目标中继器(本按例中命名为:rpData)

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

中继器里面的组件说明,见下图:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

2、设置两个全局变量:CurNo(拖动排序时,保存拖动后的当前序号),finialNo(拖动排序时,用于计算保存被拖动的字段最后应该是第几的序号)

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

三、交互说明

1、原中继器加载的交互(rpDataSrc):

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

目的是:增加过滤器,被拖走的字段,则把See的值设置为0,就不会显示了

2、目标中继器的加载交互(rpData)

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果增加排序功能,就是通过改变这个OrderNo的值来实现拖动排序的效果。另外rpData的数据显示方式要设置为水平,如图:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

3、从原中继器中拖动字段到目标中继器的交互

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

重点说明:

1、如果拖动字段到了目标中继器的范围内(范围我用一个RectBox组件框起来,并且命名为:ShowArea则做如下动作:
a.原中继器中被拖动的行(一行就是一个字段),设置see = 0,目的是隐藏这个被拖走的字段;
b.目标中继器中增加一行数据,如下图:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

4、开始拖动目标中继器中的字段交互:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

说明:

当拖动是,需要把被拖动字段的内容赋值给 用于显示拖动的面板

5、拖动目标中继器中的字段,有两种场景:

5.1把字段从目标中继器中拖离目标区域,就是第三个交互的反操作,如下图:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

5.2 如果没有离开目标区域,则认为是拖动排序的操作。拖动排序的基本思路就是:判断被拖动的字段当前的序号,在判断是往右拖动还是往左拖动;如果是往右拖动,则拖动某个地方的序号之后所有的序号都 加1,往左则减一,如下图所示:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

交互如下:

【Axure中继器】利用中继器的排序和过滤功能实现拖动字段磁吸的效果

 

–完–

给TA打赏
共{{data.count}}人
人已打赏
Axure教程案例教程高级教程

大爆炸:Axure 也能“炸”文本

2024-12-23 10:02:27

Axure教程

继续使用Axure Cloud的临时办法

2025-2-17 9:40:36

axure商城
5 条回复 A文章作者 M管理员
  1. 不畏将来,不念过去

    如果作者本人看到了,并且我的解决方案与你不同,烦请提供你的方案,我学习一下。

  2. 不畏将来,不念过去

    请问Panel_Data_Drag这个隐藏的动态面板是怎么被拖动的?
    【4、开始拖动目标中继器中的字段交互:】这段只是给Panel_Data_Drag的文本赋值了,然后显示出来,但是拖动的时候如何从目标中继器的字段变成拖动这个隐藏的Panel_Data_Drag的操作设置没看到,按上述示例操作,只能显示,并不能移动这个原件。

  3. Sister

    这个是axure几呀

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索