这是我需要解决的问题:
-
我有两个“袋子”对象列表,它们在屏幕上分开显示。左侧的列表是“目标”列表,右侧的列表是“源”列表。
-
“袋子”对象中包含“产品”对象列表
-
右侧的“货源列表”将始终显示其中装有一种产品的购物袋
-
“目的地列表”上的袋子可以有一个或多个产品
-
当用户将袋子从目标列表拖到源列表时,会发生两种情况:
1-袋子从左到右简单地复制。这是角度材质cdk拖放组件的默认行为。没问题。
2-如果用户将包装袋向左拖动,而不是放下它,只需将其保持静止3秒钟,现在的行为就是合并目标包装袋的产品和源包装袋的产品。目的地中的袋子将展开,以可视方式向用户显示将要发生的情况,当用户最终放下袋子时,产品将被添加到该袋子中。
另一个要求是,可以通过简单的拖放来重新排序左侧列表中的包(同样,这是默认的角材料cdk拖放组件行为)。但是,如果一个袋子中有多个产品,则可以将每个袋子拖到袋子中并在其中重新排序,或者将其从袋子中拖出,并遵循上述相同的“ 3”秒行为(如果刚刚掉落,则放在一个新袋子中) ,但如果将光标保持3秒钟,则可以将其放入另一个包中。)