0

我有一个项目。并且item对于item.start是固定的,item不能移动。我只需要更改 item.end。

我在尝试一些东西。例如,如果 item.class 名称是 record-scheduled,则 item.start 应该在将来。该代码有效。但我无法构建开始是恒定的。

  onMoving: function (item, callback) {

    if(item.className == 'record-scheduled'){
      var min = moment()
      var max = moment(item.start).add(6,'hours')
      if (item.start < min) item.start = min;
      if (item.start > max) item.start = max;
      if (item.end   > max) item.end   = max;
      callback(item); // send back the (possibly) changed item
    }else if(item.className == 'record-finished'){
      callback(null)
    }else if(item.className =='record-active'){
      callback(item)
    }
    else{
      callback(item)

    }
    


  },

我的时间线选项:

options: {
    editable: true,
    stack: false,
    start:moment().format(), 
}

简要说明:

else if(item.className =='record-active'){

item.start = 'cannot be changed'
item.end = 'can be change'
item.draggable = 'cannot be draggable'
}

我该如何解决?

感谢和问候。

4

1 回答 1

0

我在打开线程时想到了一个新的解决方案。也许这不是最好的方式,但这种方式对我有用。但是你必须数据库。我没有找到如何以其他方式获取 beforeItemStart 。也许有人可以帮助我们。我的解决方案是这样的;

    else if(item.className =='record-active'){

      axios
      .get('http://localhost:3000/' + item.id)
      .then(response => (this.selectedItem = response.data))
      var findstarttime = new Long(this.selectedItem.StartDateTime.Ticks.low, 
      this.selectedItem.StartDateTime.Ticks.high,false).toNumber();
      var oneZeroGoneFindStartTime = findstarttime / 10000
      var findedstarttime = moment(oneZeroGoneFindStartTime)
      console.log(findedstarttime)



      var beforeItemStart = findedstarttime
      if(beforeItemStart < item.start) item.start = beforeItemStart;
      if(beforeItemStart > item.start) item.start = beforeItemStart;
      callback(item)

      
    }

我发现 beforeItemStart 总是 item.start = beforeItemStart。而且它不能拖动,只是我可以改变结束范围。但是这里 axios 会导致太多查询。我需要解决这个问题。在更好的答案出现之前,也许这对某人来说是一个解决方案。

感谢和问候。

于 2022-02-02T04:47:50.710 回答