微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

完整日历 删除重复发生的事件

如何解决完整日历 删除重复发生的事件

我有一个复杂的场景,我想在其中实施。我使用的是完整日历 v4.4.0,为了显示重复事件,我使用了 rrule 插件。我正在从 MysqL 加载事件。我成功加载它们并在网站上显示它们。它工作得很好,但现在客户提出了另一个要求。

如前所述,我使用 rrule 插件显示重复事件。在我的门户中只有 2 个重复事件

  1. 每周
  2. 每月

现在客户想要删除一个事件,例如一个每周发生的事件,他想删除它一次。例如,在 4 月 13 日添加一个事件并且每周重复一次。也就是说,他只想删除 4 月 27 日的事件,并希望按原样继续序列。我如何实现它,因为所有重复事件的事件 ID 都相同。

需要说明的是,我在事件发生的地方使用了 MysqL

我的加载事件代码

$model = Event::find()->all(); // getting all events
    foreach ($model as $mod)
    {
        $day=array();
        if ($mod->event_frequency==2)
        {
            $start=date('N',strtotime($mod->start_time));
            $end=date('N',strtotime($mod->end_time));
            if($start==$end)
            {
                $day[]=$start;
            }
            else
            {
                $day[]=$start;
                $day[]=$end;
            }
            $data[]=[
                'id' =>$mod->id,'title'=>$mod->event_name,// 'start'           => $mod->start_time,// 'end'             => $mod->end_time,'backgroundColor' => $mod->event_tag_color,'textColor'       => '#FFF','rrule'=> [
                        'freq'=> 'WEEKLY','interval'=> 1,'dtstart'=> $mod->start_time,'until' => '2022-12-31',],];
           
        }
        else if($mod->event_frequency==3)
        {
            $start=date('N','rrule'=> [
                        'freq'=> 'MONTHLY',];
        }
        else
        {
        
            $data[]=[
                'id' =>$mod->id,'start'           => $mod->start_time,'end'             => $mod->end_time,];
        }
        
       
    }

    return JSON::encode($data);

加载的calender.js如下

var calendarEl = document.getElementById('calendar-event');

var calendar = new FullCalendar.Calendar(calendarEl,{
    plugins: ['interaction','dayGrid','timeGrid','list','rrule'],header: {
        left: 'prev,next today',center: 'title',right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
    },navLinks: true,// can click day/week names to navigate views
    businessHours: true,// display business hours
    editable: true,//uncomment to have a default date
    //defaultDate: '2020-04-07',events: url+'calender/load',// loading events
    }

删除服务器上的事件

$event_id=Yii::$app->request->post('event_id');
        $model= Event::findOne($event_id);
        $model->delete();
        $response= array();
        $response['status']="ok";
        return JSON::encode($response);

调用动作删除动作的js文件

$(".delete-event-calender").on("click",function(evt) {
    $data=$('form').serialize();
    $url=$(this).data('url');
    
    
        $.ajax({
            type: "POST",url: $url,data: $data,dataType: "json",Traditional: true,success: function (response) {
                //alert(response.status);
            
                if (response.status==="ok"){
                    
                    calendar.refetchEvents();
                    
                    $(".ajax_form").trigger("reset");
                    

            }
            else 
            {
                
            }
            },error: function (response) {
                debugger;
                alert(response.d);
            }

    });
});

如果我尝试删除 4 月 27 日的事件,它将采用主事件的事件 ID(设置日期)并删除整个序列?我该如何预防。

我怎样才能实现它?有什么建议请

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?