普加项目管理中间件是用于跨浏览器和跨平台应用程序的功能齐全的 Gantt 图表,可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。

许多用户在使用中会使用自定义列,经常在这自定义列上会有自动计算的需求。试用包内提供了这样一个实例demo/WBSCode.html,实现了自定义列WBSColumn的自动编码。这里用插件的形式集中了这个功能的代码,在demo/js/WBSCode.js内,使用的时候只要引用这个文件,并且如下调用就可以了。

new WBSCode(project, {
   field: "WBSCode" 
});

可以看一下这个js文件内的实现代码。

本质上是对内部方法orderProject的扩展,每次更新都会自动调用内部的orderProject方法来对相关联的数据进行自动计算,然后我们就把这个自定义编码的功能挂载在这个方法上,从而每次自动来计算。用户有其他的自动计算的方法也可以类似的处理,只要在内部方法内些清楚计算的逻辑即可。

syncWSBCode: function () {
        var me = this,
            project = me.project,
            options = me.options,
            field = options.field || "Code";
        function each(tasks, codePrev) {
            for (var i = 0, l = tasks.length; i < l; i++) {
                var task = tasks[i];
                var nextPrev = codePrev + (i + 1);
                task[field] = nextPrev;
                if (task.children) each(task.children, nextPrev + ".");
            }
        }
        each(project.tasks.root.children, "");       
    }