8
回答
有关xgcalendar的个人日程插件的修改
注册华为云得mate10,2.9折抢先购!>>>   

@假正经哥哥 你好,想跟你请教个问题:

我现在基于xgcalendar插件在做一个小的日程管理系统,默认时间是00:00~~23:00,我们现在是改成8:00~~21:00,现在日程时间填写没有问题,但是时间的定位有点问题,该如何修改呢


举报
cui_angel
发帖于5年前 8回/406阅
共有8个答案 最后回答: 5年前
因为原来的控件没有提供这个功能,所以你这样问,我一时不能给你准确的答案,但是思路是每个日程的div在生成时都是就算位置的,你可以在原有计算的基础上减去8*48 (应该是这个高度)应该来实现。既然你已经改了那么多了,找那个方法我觉得应该不困难哦。
--- 共有 5 条评论 ---
cui_angel@假正经哥哥 这个高度改好以后拖拽就会出现一个问题。比如,我减去300px,拖动的时候就会出现鼠标与弹出层300px的距离 5年前 回复
假正经哥哥回复 @cui_angel : 我帮你看一下,应该在onmove 里面的方法 5年前 回复
cui_angel也就是弹出弹出层,没有填写内容的时候显示的时间喔 5年前 回复
cui_angel谢谢假正经哥哥,这个已经改过了,不过还有一个问题不知道如何解决,就是我拖拽的时候会显示一个时间,这个时间应该是根据位置控制的,我一直没有找到这个方法去解决。 5年前 回复
回复 @cui_angel :  function getdata(chip) {
            var hddata = chip.find("div.dhdV");
            if (hddata.length == 1) {
                var str = hddata.text();
                return parseED(str.split("$"));
            }
            return null;
        }
拖拽时的数据 通过这个方法获取的,你看看是不是存的不对
--- 共有 2 条评论 ---
cui_angel好像不是这里呢。 5年前 回复
cui_angel时间的数据也是在这里显示的么 5年前 回复
case "dw3": //周日视图的拖拽和查看事件 单日
                    var evid = obj.parent().attr("id").replace("tgCol", "");
                    var p = obj.parent();
                    var pos = p.offset();
                    var w = p.width() + 10;
                    var h = obj.height();
                    var data = getdata(obj);
                    _dragdata = { type: 4, target: obj, sx: e.pageX, sy: e.pageY,
                        pXMin: pos.left, pXMax: pos.left + w, pw: w, h: h,
                        cdi: parseInt(evid), fdi: parseInt(evid), data: data
                    };
                    break;
 case 4:
                        var data = d.data;
                        if (data != null && data[8] == 1) {
                            var sx = d.sx;
                            var x = e.pageX;
                            var sy = d.sy;
                            var y = e.pageY;
                            var diffx = x - sx;
                            var diffy = y - sy;
                            if (diffx > 5 || diffx < -5 || diffy > 5 || diffy < -5 || d.cpwrap) {
                                var gh, ny, tempdata;
                                if (!d.cpwrap) {
                                    gh = { sh: data[2].getHours(),
                                        sm: data[2].getMinutes(),
                                        eh: data[3].getHours(),
                                        em: data[3].getMinutes(),
                                        h: d.h
                                    };
                                    d.target.hide();
                                    ny = gP(gh.sh, gh.sm);
                                    d.top = ny;
                                    tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h, data[1], false, false, data[7]);
                                    var cpwrap = $("<div class='ca-evpi drag-chip-wrapper' style='top:" + ny + "px'/>").html(tempdata);
                                    var evid = d.target.parent().attr("id").replace("tgCol", "#tgOver");
                                    $(evid).append(cpwrap);
                                    d.cpwrap = cpwrap;
                                    d.ny = ny;
                                }
                                else {
                                    var pd = 0;
                                    if (x < d.pXMin) {
                                        pd = -1;
                                    }
                                    else if (x > d.pXMax) {
                                        pd = 1;
                                    }
                                    if (pd != 0) {


                                        d.cdi = d.cdi + pd;
                                        var ov = $("#tgOver" + d.cdi);
                                        if (ov.length == 1) {
                                            d.pXMin = d.pXMin + d.pw * pd;
                                            d.pXMax = d.pXMax + d.pw * pd;
                                            ov.append(d.cpwrap);
                                        }
                                        else {
                                            d.cdi = d.cdi - pd;
                                        }
                                    }
                                    ny = d.top + diffy;
                                    var pny = ny % 21;
                                    if (pny != 0) {
                                        ny = ny - pny;
                                    }
                                    if (d.ny != ny) {
                                        //log.info("ny=" + ny);
                                        gh = gW(ny, ny + d.h);
                                        //log.info("sh=" + gh.sh + ",sm=" + gh.sm);
                                        tempdata = buildtempdayevent(gh.sh, gh.sm, gh.eh, gh.em, gh.h, data[1], false, false, data[7]);
                                        d.cpwrap.css("top", ny + "px").html(tempdata);
                                    }
                                    d.ny = ny;
                                }
                            }
                        }


                        break;
这两段代码你看看 应该是没错的,就是getdate

重新看下了上面的两个代码 这里应该有两个逻辑 一个cpwrap 还没创建的时候是gh 来自于data的,另外一个逻辑是创建好了之后 gh =gW(ny,ny+d.h)  是根据位置来计算的

--- 共有 1 条评论 ---
cui_angel恩,已经改好了,谢谢假正经哥哥 5年前 回复
这个问题我觉得也要翻过来查,现在的字段是怎么展示到页面上。。。如果你要定制化太多的话,我不可能一点点帮你去看代码 自己先看着,(⌒▽⌒)
顶部