|
数据项
|
说明
|
|----| ----|
id| 编号
name|名称
isGroup|是否组任务(父任务)
iconColsVal| 图像对象(src, title)数组
resId|资源编号
resName|资源名称
plan|计划对象,包含start,end,dur属性
rsltStart|实际开始时间
rsltEnd|实际完成时间
pctComp|完成度
rsltDur|实际投入
planBarColor|甘特图条颜色(计划)
preNodes| 前置节点
parentId|父任务编号
caption|标题
isMS|是否里程碑
自定义列1|自定义列
自定义列2|自定义列
custRsltBars|分段进度条(name, title, start, end, html, style)数组
```javascript
// ****************** 弹框示例参考如下 ******************
// 第一步:使用弹框,弹框确认时构造如下数据
var task = {};
task.name = "测试任务1"; // (必须)任务名称
task.isGroup = 0; // (可选)是否父任务(组)
task.iconColsVal = [{"src": "./images/test.jpg","title": "",}]; // (可选)图标列值
task.resId = "01"; // (可选)担当者id
task.resName = "刘德华"; // (可选)担当者姓名(可选)
task.plan = [{"start": "2023-12-20","end": "2023-12-25","dur": 5}]; // (可选)计划数据
task.planBarColor = "#FF0000"; // (可选)进度条颜色
task.rsltStart = "2023-12-20"; // (可选)实际开始
task.rsltEnd = "2023-12-26"; // (可选)实际完成
task.pctComp = 90; // (可选)完成百分比
task.rsltDur = 6; // (可选)完成量
task.preNodes = [{"id":13,"type":"FS","gapDays":1}]; // (可选)前置任务(可多个)
task.parentId = ""; // (saveType为add/append/insert时可选;为addChild时必须)父任务
task.caption = "测试任务1"; // (可选)任务标题
task.isMS = 0; // (可选)是否里程碑任务
// 第二步: 更新任务行数据
var ret = MZGantt.updRows(saveType, createTaskModel()); // saveType: add/append/insert/edit/addChild
if (ret.code == 0) {
// 关闭任务输入框
} else {
// 提示错误消息
console.log(ret.msg);
return;
}
```
## 五. 高级功能
MZGantt支持更多高级功能,如多语言包设置,拖动建立并编辑任务关系等。
1. 语言包设置
```javascript
// 设置语言包
// 注意:设置语言类型,需要在甘特图显示方法(drawGantt)之前执行。
myGantt.setGanttLang("en"); // cn: 中文; en:英语; jp:日语;
// 字符重命名(以下字符可重命名)
// count_tab: "第",
// reserve_pic: "预约者",
// theme: "主题",
// loading:"加载中...",
// click_2_view:"查看图文",
// column_task: "任务名称",
// column_complete_ratio: "完成度",
// column_rslt: "实际起止日期",
// column_start_date: "计划开始时间",
// column_end_date: "计划完成时间",
// column_rslt_start_date: "实际开始时间",
// column_rslt_end_date: "实际完成时间",
// week: "周",
// quarter: "季度",
// menu_goto:"转到任务",
// menu_goto_today:"定位到今天",
// select_child:"选择所有子任务",
// menu_FF: "完成-完成(FF)",
// menu_FS: "完成-开始(FS)",
// menu_SF: "开始-完成(SF)",
// menu_SS: "开始-开始(SS)"
var labelDefs = {
"menu_SF":"开-完"}
;
myGantt.setMyLabels(labelDefs, "en");
```
2. 进度条消息框自定义
鼠标放在进度条上,会自动显示提示框,显示任务信息。也可以根据需求,自定义提示框。
```javascript
// 在甘特图配置中设置参数infoBoxItems和infoBoxStyle
var ganttConfig = {
...
infoBoxItems: [ // 信息框项目定义
{
title: '',value: "name",
titleStyle: "font-weight: bold;",
valStyle: "font-weight: bold;"},
{
title: '公式写法', expression: "((testCol1 * testCol3) + pctComp) + '天'",
titleStyle: "font-weight: bold;",
valStyle: "color: red;"},
{
title: '格式化字串', value: "这是格式化写法: {planStart}",
titleStyle: "font-weight: bold;",
valStyle: "color: red;"},
{
title: '计划开始', value: "planStart",
titleStyle: ""},
{
title: '计划结束', value: "planEnd",
titleStyle: "", },
{
title: '实际开始', value: "rsltStart",
titleStyle: ""},
{
title: '实际结束', value: "rsltEnd",
titleStyle: "", },
{
title: '标题', value: "title",
titleStyle: "", }
],
infoBoxStyle: // 信息框样式定义
"BORDER: #cdcdcd 1px solid;background:#FFFFFF;box-shadow: 3px 3px 2px #CDCDCD;border-radius:5px;padding:5px;",
...
}
```
信息项目的设置,可以选择以下任意一种方式:
1. 使用值(vulue)
2. 使用公式(expression)
* 日期/字符类型的值:须加上引号,比如:
> expression: "这是实际开始日: 'rsltStart'"
* 数值型的值:直接写在公式中即可,比如:
> expression: "((testCol1 * testCol3) + pctComp) + '天'"
3. 使用字符替换({...})
3. 任务关系
*