一种甘特图日历拖动方法、装置、存储介质及电子设备与流程
- 国知局
- 2024-10-21 15:26:37
本技术涉及甘特图,具体涉及一种甘特图日历拖动方法、装置、存储介质及电子设备。
背景技术:
1、甘特图,又被称为条状图(bar chart),它由亨利•甘特在 1917 年开发,甘特图的内在思想较为简单,其本质上就是一个线条图,其中纵轴表示项目中的任务或活动,横轴表示时间,能够直观地展示单位时间内的任务完成度。甘特图凭借其直观的可视化特性,在项目管理中广泛应用,帮助管理者轻松掌握项目的整体情况,及时发现潜在问题并作出调整。其中,甘特图中日历是将甘特图中的信息以日历展示的一种形式,它通过日历视图来呈现项目任务和时间安排,使得项目的时间管理更符合人们日常的时间管理习惯。
2、目前,通过甘特图进行任务的安排和统计时,甘特图横轴表示的时间通常是以天、周和月为单位,管理者们通过甘特图仅能安排单天、单周或单月的任务情况,安排任务的时间粒度偏大,导致任务安排的精细化程度较低。
技术实现思路
1、为了提高任务安排的精细化程度,本技术提供一种甘特图日历拖动方法、装置、存储介质及电子设备。
2、在本技术的第一方面提供了一种甘特图日历拖动方法,具体包括:
3、在用户的终端中目标甘特图启动时,对所述目标甘特图进行配置初始化,所述目标甘特图的横轴为包含单天24小时内各时刻的时间轴,所述目标甘特图的纵轴为包含不同日期的时间轴,所述目标甘特图中的日历包括至少一个任务条,所述任务条为对应的日期下在所述横轴方向上可拖动的时刻段,所述配置初始化包括监听所述终端的mousedown 事件;
4、若所述mousedown 事件触发,则确定所述终端界面中鼠标按下的初始位置并监听mousemove 事件,并在所述mousemove 事件触发时,确定拖动所述目标任务条过程中所述终端界面中鼠标拖动至的最终位置,所述目标任务条为目标对象待被拖动的任务条;
5、根据所述最终位置与所述初始位置,确定所述目标任务条的拖动距离,并基于所述拖动距离,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻;
6、根据所述拖动后开始时刻和所述拖动后结束时刻,对所述目标任务条在所述目标甘特图中的位置和宽度进行更新。
7、通过采用上述技术方案,如果监听到mousedown 事件触发,说明用户针对目标甘特图进行鼠标按下操作,那么确定终端界面中鼠标按下的初始位置。如果监听到mousemove事件触发,说明用户当前可能正准备拖动目标甘特图的日历中的任务条,即,目标任务条,其为目标对象待被拖动的任务条,进而表明用户准备对目标对象进行任务排班,那么确定目标任务条在拖动过程中终端界面中鼠标拖动至的最终位置。进一步地,根据终端界面中鼠标拖动时的初始位置和最终位置,确定目标任务条被拖动的拖动距离,进而确定目标任务条的拖动后开始时刻和拖动后结束时刻,即,目标任务条拖动完成后的全新任务条的起始时刻和结束时刻。最后根据拖动后开始时刻和拖动后结束时刻,确定拖动后的目标任务条在目标甘特图中日历的宽度和所处的位置,从而实现以24小时内的时刻为时间粒度,时间粒度偏小,使得任务安排时的精细化程度更高。
8、可选的,所述基于所述拖动距离,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻,具体包括:
9、根据所述拖动距离,确定所述目标任务条的拖动时长,并确定所述目标任务条的拖动类型;
10、若所述拖动类型为整体拖动类型,根据所述目标任务条的任务开始时刻与所述拖动时长,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻;
11、若所述拖动类型为边界拖动类型,则在拖动边界为所述任务开始时刻对应的边界时,根据所述任务开始时刻与所述拖动时长,确定所述目标任务条的拖动后开始时刻,并将所述目标任务条的任务结束时刻确定为所述目标任务条的拖动后结束时刻;
12、在拖动边界为所述任务结束时刻对应的边界时,将所述任务开始时刻确定为所述目标任务条的拖动后开始时刻,并根据所述任务结束时刻与所述拖动时长,确定所述目标任务条的拖动后结束时刻。
13、通过采用上述技术方案,如果拖动类型为整体拖动类型,说明目标任务条是整体被拖动,说明目标任务条的任务开始时刻和任务结束时刻均会发生相应的变化,那么根据任务开始时刻和拖动时长,确定目标任务条的拖动后开始时刻和拖动后结束时刻;如果拖动类型为边界拖动类型,说明在拖动边界为任务开始时刻对应的边界时,拖动前后目标任务条的结束时刻保持不变,将任务结束时刻确定为目标任务条的拖动后结束时刻。再根据任务开始时刻与拖动时长,确定目标任务条的拖动后开始时刻;在拖动边界为任务结束时刻对应的边界时,拖动前后目标任务条的开始时刻保持不变,将任务开始时刻确定为目标任务条的拖动后开始时刻,最后根据任务结束时刻与拖动时长,确定拖动后结束时刻,从而在不同拖动类型下,实现对拖动后开始时刻和拖动后结束时刻的精准确定。
14、可选的,所述根据所述目标任务条的任务开始时刻与所述拖动时长,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻,具体包括:
15、在所述目标任务条拖动时未超出对应的目标日期内的时刻范围时,根据所述目标任务条的拖动方向,将所述目标任务条的任务开始时刻减去或加上所述拖动时长,得到所述目标任务条的拖动后开始时刻;
16、将所述拖动后开始时刻加上所述目标任务条的总时长,得到所述目标任务条的拖动后结束时刻;
17、在所述目标任务条拖动时部分超出对应的目标日期内的时刻范围时,根据所述目标日期的前一天日期或后一天后期,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻。
18、通过采用上述技术方案,如果目标任务条拖动过程中未超过对应的目标日期的时刻范围,说明目标任务条的拖动仅限于目标日期当天24小时内,那么具体根据目标任务条的拖动方向,将任务开始时刻减去或加上拖动时长,得到目标任务条被拖动后的全新开始时刻,即,拖动后开始时刻。由于整体拖动目标任务条,目标任务条对应的总时长不变,因此拖动后开始时刻确定后,将拖动后开始时刻加上目标任务条的总时长,得到拖动后结束时刻。如果目标任务条拖动时部分超出对应的目标日期内的时刻范围时,说明可能存在目标任务条拖动中跨日期的情况,那么根据目标日期的前一天日期或后一天后期,确定目标任务条的拖动后开始时刻和拖动后结束时刻,从而准确的确定目标任务条整体拖动后的开始时刻和结束时刻。
19、可选的,所述根据所述目标日期的前一天日期或后一天后期,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻,具体包括:
20、在所述目标任务条的拖动方向为沿着所述横轴向靠近所述纵轴的方向时,将所述任务开始时刻减去所述目标日期的起始时刻,得到第一已拖动时长,并将所述拖动时长减去所述第一已拖动时长,得到第一剩余拖动时长;
21、所述目标日期的前一天日期中的末端时刻减去所述第一剩余拖动时长,得到所述目标任务条的拖动后开始时刻,并将所述目标任务条的任务结束时刻减去所述拖动时长,得到所述目标任务条的拖动后结束时刻;
22、在所述目标任务条的拖动方向为沿着所述横轴向远离所述纵轴的方向,将所述目标日期的末端时刻减去所述任务结束时刻,得到第二已拖动时长,并将所述拖动时长减去所述第二已拖动时长,得到第二剩余拖动时长;
23、将所述目标日期的后一天日期中的起始时刻加上所述第二剩余拖动时长,得到所述目标任务条的拖动后结束时刻,并将所述任务开始时刻加上所述拖动时长,得到所述目标任务条的拖动后开始时刻。
24、通过采用上述技术方案,在目标任务条的拖动方向为沿着横轴向靠近纵轴的方向,说明目标任务条可能跨向目标日期的前一天日期,将拖动时长减去第一已拖动时长,得到第一剩余拖动时长,即,在目标日期的前一天日期中往横轴上时刻变小的方向上继续拖动的时长,进一步地,将目标日期的前一天日期中的末端时刻减去第一剩余拖动时长,得到目标任务条的拖动后开始时刻,同时目标任务条的任务结束时刻对应的边界在整个拖动过程中均是在目标日期内,那么目标任务条的任务结束时刻减去拖动时长,得到目标任务条的拖动后结束时刻;在目标任务条的拖动方向为沿着横轴向远离纵轴的方向,说明目标任务条可能跨向目标日期的后一天日期,将拖动时长减去第二已拖动时长,得到第二剩余拖动时长,即,在目标日期的后一天日期中往横轴上时刻变大的方向上继续拖动的时长,进一步地,将目标日期的后一天日期中的起始时刻加上第二剩余拖动时长,得到目标任务条的拖动后开始时刻,最后将目标任务条的任务开始时刻加上拖动时长。
25、可选的,所述在拖动边界为所述任务开始时刻对应的边界时,根据所述任务开始时刻与所述拖动时长,确定所述目标任务条的拖动后开始时刻,具体包括:
26、在拖动边界为所述任务开始时刻对应的边界时,若所述目标任务条的拖动方向为沿着所述横轴向靠近所述纵轴的方向,则确定所述任务开始时刻与所述目标任务条所在的目标日期中的起始时刻之间的目标时长;
27、若所述拖动时长超过所述目标时长,则将所述目标日期的前一天日期中的末端时刻减去预设时长,得到所述目标任务条的拖动后开始时刻;
28、若所述拖动时长未超过所述目标时长,则将所述任务开始时刻减去所述拖动时长,得到所述目标任务条的拖动后开始时刻。
29、通过采用上述技术方案,如果拖动时长超过目标时长,说明目标任务条拖动过程中,涉及跨越不同日期的情况,那么将目标日期的前一天日期中的末端时刻减去预设时长,得到拖动后开始时刻,即拖动后的目标任务条的开始时刻;如果拖动时长未超过目标时长,说明目标任务条拖动过程中,不涉及跨越不同日期的情况,那么将目标任务条的任务开始时刻,即拖动前目标任务条的开始时刻减去拖动时长,得到拖动后开始时刻,从而实现在较小的时间粒度范畴内为目标对象安排任务条。
30、可选的,所述根据所述拖动距离,确定所述目标任务条的拖动时长,具体包括:
31、获取所述目标甘特图的容器宽度,并将所述容器宽度除以单天的总秒数,得到比值;
32、将所述拖动距离除以所述比值,得到所述目标任务条的初始拖动时长,并确定是否设置有拖动的步调,所述步调为鼠标拖动一次所述目标任务条时在所述横轴方向上的时长跨度;
33、若是,则在所述初始拖动时长为所述步调的倍数时,将所述初始拖动时长确定为所述目标任务条的拖动时长,在所述初始拖动时长不为所述步调的倍数时,将所述初始拖动时长除以所述步调的商值与所述步调的乘积确定为所述目标任务条的拖动时长;
34、若否,则将所述初始拖动时长确定为所述目标任务条的拖动时长。
35、通过采用上述技术方案,将容器宽度除以总秒数,得到比值,即每秒所占用的宽度,最后将拖动距离除以此比值,得到目标任务条的初始拖动时长。进一步地,如果拖动目标任务条时设置有步调,那么在初始拖动时长为步调的倍数时,直接将初始拖动时长确定为目标任务条被拖动的时长;在初始拖动时长不为步调的倍数,那么目标任务条被实际拖动的时长为商值与步调的乘积;如果没有设置有步调,说明拖动时长就为目标任务条被实际拖动的时长,从而较为准确地确定目标任务条的拖动时长。
36、可选的,所述配置初始化还包括监听所述终端中页面的 resize 事件,所述方法还包括:
37、若所述resize 事件触发,则重新获取所述终端的页面的全新尺寸;
38、根据所述全新尺寸,确定所述目标甘特图的全新容器宽度;
39、根据所述全新容器宽度、所述拖动后开始时刻和所述拖动后结束时刻,重新确定拖动后的所述目标任务条的宽度和位置。
40、通过采用上述技术方案,如果监听到resize 事件触发,说明当前显示目标甘特图的页面的尺寸大小发生变化,那么重新获取终端中页面的全新尺寸,进而随即确定页面中目标甘特图的全新容器宽度,最后,基于拖动后开始时刻和拖动后结束时刻,确定拖动时长,并根据全新容器宽度和拖动时长,重新确定拖动后的目标任务条的宽度和位置,从而实现在页面尺寸发生变化时,自适应调整拖动后的目标任务条的宽度和位置。
41、在本技术的第二方面提供了一种甘特图日历拖动装置,具体包括:
42、初始配置模块,用于在用户的终端中目标甘特图启动时,对所述目标甘特图进行配置初始化,所述目标甘特图的横轴为包含单天24小时内各时刻的时间轴,所述目标甘特图的纵轴为包含不同日期的时间轴,所述目标甘特图中的日历包括至少一个任务条,所述任务条为对应的日期下在所述横轴方向上可拖动的时刻段,所述配置初始化包括监听所述终端的mousedown 事件;
43、位置确定模块,用于若所述mousedown 事件触发,则确定所述终端界面中鼠标按下的初始位置并监听mousemove 事件,并在所述mousemove 事件触发时,确定拖动所述目标任务条过程中所述终端界面中鼠标拖动至的最终位置,所述目标任务条为目标对象待被拖动的任务条;
44、时刻确定模块,用于根据所述最终位置与所述初始位置,确定目标任务条的拖动距离,并基于所述拖动距离,确定所述目标任务条的拖动后开始时刻和拖动后结束时刻;
45、任务更新模块,用于根据所述拖动后开始时刻和所述拖动后结束时刻,对所述目标任务条在所述目标甘特图中的位置和宽度进行更新。
46、通过采用上述技术方案,初始配置模块对目标甘特图进行配置初始化,接着位置确定模块确定初始位置和最终位置,再由时刻确定模块根据最终位置和初始位置,确定目标任务条的拖动距离,并根据拖动距离,确定拖动后开始时刻和拖动结束时刻,最后任务更新模块,根据拖动后开始时刻和拖动后结束时刻,对目标任务条在目标甘特图中的位置和宽度进行更新。
47、在本技术的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被处理器加载并执行时,执行如第一方面中任意一项所述的方法步骤。
48、在本技术的第四方面提供了一种电子设备,具体包括:
49、处理器、存储器及存储在存储器中并能够在处理器上运行的计算机程序,所述处理器用于加载并执行所述存储器中存储的计算机程序,以使所述电子设备执行如第一方面中任意一项所述的方法。
50、综上所述,本技术包括以下至少一种有益技术效果:根据终端界面中鼠标拖动时的初始位置和最终位置,确定目标任务条被拖动的拖动距离,进而确定目标任务条的拖动后开始时刻和拖动后结束时刻,即,目标任务条拖动完成后的全新任务条的起始时刻和结束时刻。最后根据拖动后开始时刻和拖动后结束时刻,确定拖动后的目标任务条在目标甘特图中日历的宽度和所处的位置,从而实现以24小时内的时刻为时间粒度,时间粒度偏小,使得任务安排时的精细化程度更高。
本文地址:https://www.jishuxx.com/zhuanli/20241021/321553.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。