From 9a1d82934b883a08c71b17d9d6f923ec4fb7f03c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AA=86=E4=B9=90?= <342503599@qq.com> Date: Sat, 5 Nov 2022 13:35:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=98=E7=89=B9=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/doc/ExtGantt/Ext甘特图.html | 497 ++++++++++-------- .../doc/ExtGantt/Ext甘特图_files/GanttMenu.js | 238 +++++---- public/doc/ExtGantt/Ext甘特图_files/add.html | 42 ++ src/assets/js/api/scheduleInfo.js | 5 +- .../projectFront/scheduleManage/ganttwo.vue | 74 +-- .../scheduleManage/projectNodeDetail.vue | 70 ++- .../scheduleManage/projectNodeManage2.vue | 39 +- .../projectFront/scheduleManage/warning.vue | 118 ++--- 8 files changed, 624 insertions(+), 459 deletions(-) create mode 100644 public/doc/ExtGantt/Ext甘特图_files/add.html diff --git a/public/doc/ExtGantt/Ext甘特图.html b/public/doc/ExtGantt/Ext甘特图.html index 0ab3373a..41aa88b2 100644 --- a/public/doc/ExtGantt/Ext甘特图.html +++ b/public/doc/ExtGantt/Ext甘特图.html @@ -1,7 +1,6 @@ - Ext甘特图 @@ -18,72 +17,6 @@ - - - - @@ -113,10 +46,10 @@ window.onload = () => { console.log('window.onload') var parentUrl = getParentUrl() - console.log('parentUrl',parentUrl) - if(parentUrl.indexOf('dataBoard')!=-1){ + console.log('parentUrl', parentUrl) + if (parentUrl.indexOf('dataBoard') != -1) { document.getElementById('ext-gen3').classList.add('greyBox') - }else{ + } else { document.getElementById('ext-gen3').classList.remove('greyBox') } @@ -129,6 +62,21 @@ var listData = []; //转换时间戳 + // function formatDateTime(inputTime) { + // var date = new Date(inputTime); + // var y = date.getFullYear(); + // var m = date.getMonth() + 1; + // m = m < 10 ? ('0' + m) : m; + // var d = date.getDate(); + // d = d < 10 ? ('0' + d) : d; + // var h = date.getHours(); + // h = h < 10 ? ('0' + h) : h; + // var minute = date.getMinutes(); + // var second = date.getSeconds(); + // minute = minute < 10 ? ('0' + minute) : minute; + // second = second < 10 ? ('0' + second) : second; + // return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; + // }; function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYear(); @@ -136,61 +84,93 @@ m = m < 10 ? ('0' + m) : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; - var h = date.getHours(); - h = h < 10 ? ('0' + h) : h; - var minute = date.getMinutes(); - var second = date.getSeconds(); - minute = minute < 10 ? ('0' + minute) : minute; - second = second < 10 ? ('0' + second) : second; - return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; + return y + '-' + m + '-' + d }; - - - //获取列表数据 getListData = () => { - axios.defaults.headers.common['Authorization'] = 'Bearer'+' '+ token; - axios.post(requestUrl + 'xmgl/progressManage/viewProjectProgressManageList', { projectSn }).then(res => { + axios.defaults.headers.common['Authorization'] = 'Bearer' + ' ' + token; + axios.get(requestUrl + 'xmgl/progressTask/getParentChildList', { params: { projectSn: projectSn }, }).then(res => { if (res.data.code == 200) { - console.log(res.data.result) + console.log('查询结果', res.data.result) let dataArr = res.data.result; let number = 0; - let type= false; + let type = false; for (let i = 0; i < dataArr.length; i++) { let data = { - "UID": dataArr[i].tempBranchId, //任务唯一标识符 - "PercentComplete": dataArr[i].progressRatio, //完成百分比 - "Duration": dataArr[i].duration, //工期 - "Finish": dataArr[i].branchEndTime, //完成日期 - "Start": dataArr[i].branchStartTime, //开始日期 - "Name": dataArr[i].branchProjectName, //任务名称 + "id": dataArr[i].id, + // "UID": dataArr[i].id, //任务唯一标识符 + "taskName": dataArr[i].taskName, //任务名称 + "progressRatio": dataArr[i].progressRatio, //完成百分比 + "duration": dataArr[i].duration, //工期 + "Start": dataArr[i].startDate, //计划开始日期 + "Finish": dataArr[i].finishDate, //计划完成日期 + "actualStartDate": dataArr[i].actualStartDate, //实际开始日期 + "actualFinishDate": dataArr[i].actualFinishDate, //实际完成日期 "children": [], //子级 - "Note": '', //备注 - 'branchId': dataArr[i].branchId, + "remark": dataArr[i].remark, //备注 + // "PredecessorLink":dataArr[i].predecessorIds, + "PredecessorLink": [ + { + "PredecessorUID": dataArr[i].predecessorIds + } + ], } + console.log('参数传进去了吗',data.PredecessorLink) if (dataArr[i].children.length > 0) { + let threeData = dataArr[i].children + let threeNum = 0 for (let j = 0; j < dataArr[i].children.length; j++) { + console.log('有关联的前置任务嘛', dataArr[i].children[j].predecessorIds) number++; let children = { - "UID":number, - "Name": dataArr[i].children[j].subitemProjectName, //名称 - "Duration": dataArr[i].children[j].duration, //工期 - "PercentComplete": dataArr[i].children[j].progressRatio, //进度 - "Finish": dataArr[i].children[j].endTime, //完成日期 - "Start": dataArr[i].children[j].startTime, //开始日期 + "id": dataArr[i].children[j].id, + "UID": number, //任务唯一标识符 + "taskName": dataArr[i].children[j].taskName, //任务名称 + "progressRatio": dataArr[i].children[j].progressRatio, //完成百分比 + "duration": dataArr[i].children[j].duration, //工期 + "Start": dataArr[i].children[j].startDate, //计划开始日期 + "Finish": dataArr[i].children[j].finishDate, //计划完成日期 + "actualStartDate": dataArr[i].children[j].actualStartDate, //实际开始日期 + "actualFinishDate": dataArr[i].children[j].actualFinishDate, //实际完成日期 + "children": [], //子级 + "remark": dataArr[i].children[j].remark, //备注 + // "PredecessorLink":dataArr[i].children[j].predecessorIds, "PredecessorLink": [ //前置任务字段 - { - "Type": 1, - "PredecessorUID": number-1 - } - ], - "Note": dataArr[i].children[j].taskDescription //备注 + { + "PredecessorUID": dataArr[i].children[j].predecessorIds + } + ], }; - + console.log('参数传进去了吗2222',children.PredecessorLink) data.children.push(children); + if (threeData[j].children.length > 0) { + for (let k = 0; k < threeData[j].children.length; k++) { + number++; + console.log('threeData[j].children', threeData[j].children[k]) + let children2 = { + "id": threeData[j].children[k].id, + "UID": number, + "taskName": threeData[j].children[k].taskName, //任务名称 + "progressRatio": threeData[j].children[k].progressRatio, //完成百分比 + "duration": threeData[j].children[k].duration, //工期 + "Start": threeData[j].children[k].startDate, //计划开始日期 + "Finish": threeData[j].children[k].finishDate, //计划完成日期 + "actualStartDate": threeData[j].children[k].actualStartDate, //实际开始日期 + "actualFinishDate": threeData[j].children[k].actualFinishDate, //实际完成日期 + "children": [], //子级 + "remark": threeData[j].children[k].remark, //备注 + // "PredecessorLink":threeData[j].children[k].predecessorIds, + "PredecessorLink": [ //前置任务字段 + { + "PredecessorUID": threeData[j].children[k].predecessorIds + } + ], + }; + data.children[0].children.push(children2) + } + } } }; - console.log(data) - // debugger; + console.log('此时递归后的data数据', data) number++; listData.push(data) } @@ -200,7 +180,6 @@ gantt.loadTasks(listData); gantt.unmask(); }) - } getListData(); @@ -272,9 +251,147 @@ gantt.setStyle("width:100%;height:100%"); gantt.render(extControl.dom); + var columns = []; + var idColumn = { + name: "id", + field: "id", + header: "ID
String", + width: 50, + editor: { + type: "textbox" + } + }; + columns.push(idColumn); + var stringColumn = { + name: "name", + header: "任务名称
String", + field: "taskName", + width: 150, + editor: { + type: "textbox" + } + }; + columns.push(stringColumn); + var linkColumn = { + name: "predecessorLink", + header: "前置任务
Array", + field: "predecessorLink", + width: 150, + editor: { + type: "textbox" + }, + // renderer: function (e) { + // console.log('前置任务',e) + // console.log('====e.value',e.value) + // if (!e.value) return ""; + // }, + }; + columns.push(linkColumn); + var dateColumn1 = { + header: "计划开始日期
Date", + field: "Start", + width: 100, + renderer: function (e) { + var date = e.value; + if (!date) return ""; + return formatDateTime(e.value) + }, + editor: { + type: "datepicker" + } + }; + columns.push(dateColumn1); + var dateColumn2 = { + header: "计划完成日期
Date", + field: "Finish", + width: 100, + renderer: function (e) { + var date = e.value; + if (!date) return ""; + return formatDateTime(e.value) + }, + editor: { + type: "datepicker" + } + }; + columns.push(dateColumn2); + var dateColumn3 = { + header: "实际开始日期
Date", + field: "actualStartDate", + width: 100, + renderer: function (e) { + var date = e.value; + if (!date) return ""; + return formatDateTime(e.value) + }, + editor: { + type: "datepicker" + } + }; + columns.push(dateColumn3); + var dateColumn4 = { + header: "实际完成日期
Date", + field: "actualFinishDate", + width: 100, + renderer: function (e) { + var date = e.value; + if (!date) return ""; + return formatDateTime(e.value) + }, + editor: { + type: "datepicker" + } + }; + columns.push(dateColumn4); + var durationColumn = { + name: "duration", + header: "工期
String", + field: "duration", + width: 60, + editor: { + type: "textbox" + } + }; + columns.push(durationColumn); + var proColumn = { + name: "percentComplete", + header: "进度比例
String", + field: "progressRatio", + width: 60, + editor: { + type: "textbox" + } + }; + columns.push(proColumn); + var remarkColumn = { + name: "remark", + header: "备注
String", + field: "remark", + width: 150, + editor: { + type: "textbox", + } + }; + columns.push(remarkColumn); + //将列集合数组设置给甘特图 + gantt.setColumns(columns); + gantt.setTreeColumn("name") + gantt.addTask({ + name: "11111" + }) + // // 新增时触发 + // var cellCommitAdd = (e) => { + // let uid = e.task.UID; //修改行的id + // let text = e.text; //修改 作用于时间 + // let field = e.field; //修改的字段 + // let value = e.value; //修改的内容 + // var task = e.task; //修改的内容 + // } + // console.log('====新增的参数',cellCommitAdd) + //右键菜单 var ganttMenu = new GanttMenu(); - console.log('右键菜单有哪些',ganttMenu) + console.log('右键菜单有哪些', ganttMenu) gantt.setContextMenu(ganttMenu); gantt.loading(); //渲染 @@ -283,97 +400,55 @@ gantt.loadTasks(data); gantt.unmask(); }, 3000) - //修改参数时触发 + var cellCommitEdit = (e) => { - let uid = e.task.UID; //修改行的id - let text = e.text; //修改 作用于时间 - let field = e.field; //修改的字段 - let value = e.value; //修改的内容 - var task = e.task; //修改的内容 - let stair = typeof (uid) != 'number' && uid.indexOf('b') == 0 ? true : false; //是不是一级 - let branchId = ''; - //是一级 循环获取一级的id; - if (stair) { - if(field == 'PercentComplete'){ - alert('这里修改进度无效,将不会保存') - return - } - if(field == 'Note'){ - alert('一级修改备注无效,将不会保存') - return - } - if(field == 'PredecessorLink'){ - alert('一级设置前置任务无效,将不会保存') - return - } - for (let i = 0; i < listData.length; i++) { - if (listData[i].UID == uid) { - branchId = listData[i].branchId; - } - } - //请求的内容 - let requestData = { - id: branchId, - projectSn: projectSn - } - field == 'Name' ? requestData.branchProjectName = value : ''; - // field == 'Note' ? requestData.taskDescription = value : ''; - // field == 'PercentComplete' ? requestData.progressRatio = value : ''; - setTimeout(() => { - axios.post(requestUrl + 'xmgl/progressManage/edit', requestData).then(res => { - if (res.data.code == 200) { - } - }) - }, 200) + var data = { + taskName: e.task.taskName, + Start: e.task.Start, + Finish: e.task.Finish, + actualStartDate: e.task.actualStartDate, + actualFinishDate: e.task.actualFinishDate, + duration: e.task.duration, + progressRatio: e.task.progressRatio, + remark: e.task.remark, + id: e.task.id, + projectSn: projectSn + } + data[e.field] = e.value + let data2={}; + for(let d in data){ + if(d=='Start'||d=='Finish'){ + if(d=='Start'){ + data2.startDate=data[d] + }else if(d=='finishDate'){ + data2.startDate=data[d] + } + }else{ + data2[d]=data[d] + } - } else { - //二级修改 - let requestData = { - id: uid, - projectSn: projectSn - }; - //修改的是工期时 - if (field == 'Duration') { - setTimeout(() => { - let startTime = formatDateTime(task.Start).substring(0, 10); - let endTime = formatDateTime(task.Finish).substring(0, 10); - requestData.duration = value; - requestData.startTime = startTime; - requestData.endTime = endTime; - }, 100) - } - //修改开始时间 或 结束时间 - if (field == 'Start' || field == 'Finish') { - setTimeout(() => { - let startTime = formatDateTime(task.Start).substring(0, 10); - let endTime = formatDateTime(task.Finish).substring(0, 10); - requestData.startTime = startTime; - requestData.endTime = endTime; - }, 100) - } - - if(field == 'PercentComplete'){ - alert('这里修改进度无效,将不会保存') - return - } - - field == 'Name' ? requestData.branchProjectName = value : ''; - field == 'PredecessorLink' ? requestData.predecessoruid = value : ''; - - field == 'Note' ? requestData.taskDescription = value : ''; - - setTimeout(() => { - axios.post(requestUrl + 'xmgl/progressItem/edit', requestData).then(res => { - if (res.data.code == 200) { - } - }) - }, 200) } - // var project = e.source; - // var task = e.task; - //e是事件对象, 具体请看每个事件的"参数类型" - }; + // let {Start:startDate,Finish:finishDate}=data + // let startDate=data. + + // let uid = e.task.UID; //修改行的id + // let text = e.text; //修改 作用于时间 + // let field = e.field; //修改的字段 + // let value = e.value; //修改的内容 + // var task = e.task; //修改的内容 + // // 请求接口的参数 + console.log('参数', data2) + setTimeout(() => { + axios.post(requestUrl + 'xmgl/progressTask/updateProgressTask', data2).then(res => { + console.log('修改返回', res) + if (res.data.code == 200) { + alert('编辑成功!') + } + }) + }, 500) + + } //右侧 拖拽 var itemdragcomplete = (e) => { @@ -397,23 +472,23 @@ gantt.on('itemdragcomplete', itemdragcomplete); } - function getParentUrl(){ + function getParentUrl() { var url = ""; - try { - url = window.top.document.location.href - } catch(M) { - if (window.parent) { - try { - url = window.parent.document.location.href - } catch(L) { - url = "" + try { + url = window.top.document.location.href + } catch (M) { + if (window.parent) { + try { + url = window.parent.document.location.href + } catch (L) { + url = "" + } } } - } - if (url === "") { - url = document.location.href - } - return url + if (url === "") { + url = document.location.href + } + return url } @@ -424,4 +499,4 @@ style="position: absolute; z-index: 1006; display: none; top: 580px; left: 802px; width: 100px;"> - + \ No newline at end of file diff --git a/public/doc/ExtGantt/Ext甘特图_files/GanttMenu.js b/public/doc/ExtGantt/Ext甘特图_files/GanttMenu.js index 1368dd05..b36f6fde 100644 --- a/public/doc/ExtGantt/Ext甘特图_files/GanttMenu.js +++ b/public/doc/ExtGantt/Ext甘特图_files/GanttMenu.js @@ -1,101 +1,151 @@ -var GanttMenu = function () { - GanttMenu.superclass.constructor.call(this); -} +var GanttMenu = function() { + GanttMenu.superclass.constructor.call(this); +}; mini.extend(GanttMenu, mini.Menu, { - _create: function () { - GanttMenu.superclass._create.call(this); + _create: function() { + GanttMenu.superclass._create.call(this); - var menuItems = [ - { type: "menuitem", iconCls: "icon-goto", text: mini.Gantt.Goto_Text, name: "goto"}, - '-', - { type: "menuitem", iconCls: "icon-upgrade", text: mini.Gantt.UpGrade_Text, name: "upgrade" }, - { type: "menuitem", iconCls: "icon-downgrade", text: mini.Gantt.DownGrade_Text, name: "downgrade" }, - '-', - { type: "menuitem", iconCls: "icon-add", text: mini.Gantt.Add_Text, name: "add" }, - { type: "menuitem", iconCls: "icon-edit", text: mini.Gantt.Edit_Text, name: "edit" }, - { type: "menuitem", iconCls: "icon-remove", text: mini.Gantt.Remove_Text, name: "remove" }, - '-', - { type: "menuitem", iconCls: "icon-zoomin", text: mini.Gantt.ZoomIn_Text, name: "zoomin" }, - { type: "menuitem", iconCls: "icon-zoomout", text: mini.Gantt.ZoomOut_Text, name: "zoomout" } - ]; - this.setItems(menuItems); + var menuItems = [ + // { type: "menuitem", iconCls: "icon-goto", text: mini.Gantt.Goto_Text, name: "goto"}, + // '-', + // { type: "menuitem", iconCls: "icon-upgrade", text: mini.Gantt.UpGrade_Text, name: "upgrade" }, + // { type: "menuitem", iconCls: "icon-downgrade", text: mini.Gantt.DownGrade_Text, name: "downgrade" }, + // '-', + { + type: "menuitem", + iconCls: "icon-add", + text: mini.Gantt.Add_Text, + name: "add", + }, + { + type: "menuitem", + iconCls: "icon-edit", + text: mini.Gantt.Edit_Text, + name: "edit", + }, + { + type: "menuitem", + iconCls: "icon-remove", + text: mini.Gantt.Remove_Text, + name: "remove", + }, + "-", + { + type: "menuitem", + iconCls: "icon-zoomin", + text: mini.Gantt.ZoomIn_Text, + name: "zoomin", + }, + { + type: "menuitem", + iconCls: "icon-zoomout", + text: mini.Gantt.ZoomOut_Text, + name: "zoomout", + }, + ]; + this.setItems(menuItems); - this.goto = mini.getbyName("goto", this); - this.zoomIn = mini.getbyName("zoomin", this); - this.zoomOut = mini.getbyName("zoomout", this); + // this.goto = mini.getbyName("goto", this); + this.zoomIn = mini.getbyName("zoomin", this); + this.zoomOut = mini.getbyName("zoomout", this); - this.upgrade = mini.getbyName("upgrade", this); - this.downgrade = mini.getbyName("downgrade", this); - this.add = mini.getbyName("add", this); - this.edit = mini.getbyName("edit", this); - this.remove = mini.getbyName("remove", this); + // this.upgrade = mini.getbyName("upgrade", this); + // this.downgrade = mini.getbyName("downgrade", this); + this.add = mini.getbyName("add", this); + this.edit = mini.getbyName("edit", this); + this.remove = mini.getbyName("remove", this); - this.goto.on("click", this.__OnGoto, this); - this.zoomIn.on("click", this.__OnZoomIn, this); - this.zoomOut.on("click", this.__OnZoomOut, this); - this.upgrade.on("click", this.__OnUpgrade, this); - this.downgrade.on("click", this.__OnDowngrade, this); - this.add.on("click", this.__OnAdd, this); - this.edit.on("click", this.__OnEdit, this); - this.remove.on("click", this.__OnRemove, this); - }, - __OnGoto: function (e) { - var gantt = this.owner; - var task = gantt.getSelected(); - if (task) { - gantt.scrollIntoView(task); - } - }, - __OnZoomIn: function (e) { - var gantt = this.owner; - gantt.zoomIn(); - }, - __OnZoomOut: function (e) { - var gantt = this.owner; - gantt.zoomOut(); - }, - __OnUpgrade: function (e) { - var gantt = this.owner; - var task = gantt.getSelected(); - if (task) { - gantt.upgradeTask(task); - } - }, - __OnDowngrade: function (e) { - var gantt = this.owner; - var task = gantt.getSelected(); - if (task) { - gantt.downgradeTask(task); - } - }, - __OnAdd: function (e) { - console.log('执行'); - var gantt = this.owner; - var targetTask = gantt.getSelected(); - var task = gantt.newTask(); - //加到选中任务之前 - gantt.addTask(task, "before", targetTask); - - //加到子任务 - //gantt.addTask(task, "append", targetTask); - }, - __OnEdit: function (e) { - var gantt = this.owner; - var task = gantt.getSelected(); - if (task) { - - } - }, - __OnRemove: function (e) { - var gantt = this.owner; - var task = gantt.getSelected(); - if (task) { - if (confirm("确定删除任务 \"" + task.Name + "\" ?")) { - gantt.removeTask(task); - } - } else { - alert("请选择要删除的任务"); - } + // this.goto.on("click", this.__OnGoto, this); + this.zoomIn.on("click", this.__OnZoomIn, this); + this.zoomOut.on("click", this.__OnZoomOut, this); + // this.upgrade.on("click", this.__OnUpgrade, this); + // this.downgrade.on("click", this.__OnDowngrade, this); + this.add.on("click", this.__OnAdd, this); + this.edit.on("click", this.__OnEdit, this); + this.remove.on("click", this.__OnRemove, this); + }, + // __OnGoto: function (e) { + // var gantt = this.owner; + // var task = gantt.getSelected(); + // if (task) { + // gantt.scrollIntoView(task); + // } + // }, + __OnZoomIn: function(e) { + var gantt = this.owner; + gantt.zoomIn(); + }, + __OnZoomOut: function(e) { + var gantt = this.owner; + gantt.zoomOut(); + }, + // __OnUpgrade: function (e) { + // var gantt = this.owner; + // var task = gantt.getSelected(); + // if (task) { + // gantt.upgradeTask(task); + // } + // }, + // __OnDowngrade: function (e) { + // var gantt = this.owner; + // var task = gantt.getSelected(); + // if (task) { + // gantt.downgradeTask(task); + // } + // }, + + __OnAdd: function(e) { + console.log("点击新增执行"); + var gantt = this.owner; + var targetTask = gantt.getSelected(); + var task = gantt.newTask(); + console.log("=====添加", task); + //加到选中任务之后 + // gantt.addTask(task, "after", targetTask); + // 新增弹窗 + // 没有父级的时候 + if (!targetTask) { + // var x; + // var name=prompt("请输入任务名称",""); //显示默认文本 "" + // var duration=prompt("请输入工期",""); //显示默认文本 "" + // var duration=prompt("请输入工期",""); //显示默认文本 "" + // var dutyUserName=prompt("请输入负责人名称",""); //显示默认文本 "" + // console.log('name',name,duration,dutyUserName,) + } - + }, + __OnEdit: function(e) { + var gantt = this.owner; + var task = gantt.getSelected(); + if (!task) { + alert("请先选中任务再编辑哦!"); + } + }, + __OnRemove: function(e) { + var gantt = this.owner; + var task = gantt.getSelected(); + //获取请求地址 + let url = window.parent.document.getElementById("iframe").contentWindow + .location.search; + var parameter = url.split("="); //所有参数 + var requestUrl = parameter[1].split("&")[0]; //请求服务器的地址 + console.log("=======task", task); + if (task) { + if (confirm('确定删除任务 "' + task.taskName + '" ?')) { + gantt.removeTask(task); + axios + .get(requestUrl + "xmgl/progressTask/deleteById", { + params: { id: task.id }, + }) + .then((res) => { + console.log("删除", res); + if (res.data.code == 200) { + alert("删除成功!"); + } + }); + } + } else { + alert("请选择要删除的任务"); + } + }, }); diff --git a/public/doc/ExtGantt/Ext甘特图_files/add.html b/public/doc/ExtGantt/Ext甘特图_files/add.html new file mode 100644 index 00000000..d8c1195a --- /dev/null +++ b/public/doc/ExtGantt/Ext甘特图_files/add.html @@ -0,0 +1,42 @@ + + + + + + + Document + + +
+
+ + + + + + + + + + + + + + + + + + + + + + +
员工帐号:姓名:薪资:
性别:年龄:出生日期:
+ Update + Cancel +
+
+
+ + \ No newline at end of file diff --git a/src/assets/js/api/scheduleInfo.js b/src/assets/js/api/scheduleInfo.js index 500012c5..24ca147b 100644 --- a/src/assets/js/api/scheduleInfo.js +++ b/src/assets/js/api/scheduleInfo.js @@ -16,13 +16,14 @@ export const deletetProgressItemApi = data => post('/xmgl/progressItem/delete', // 分布分项管理2 -- 页面 export const getProgressListDataApi = data => get('/xmgl/progressTask/getParentChildList', data);// 获取列表 export const editProgressListDataApi = data => post('/xmgl/progressTask/updateProgressTask', data);// 编辑 -export const getProgressTaskApi = data => get('/xmgl/progressTask/getById', data);// 查看详情 +export const getProgressTaskApi = data => get('/xmgl/progressTask/getDetailsById', data);// 查看详情 //进度预警--页面 -export const getWarningListDataApi = data => post('/xmgl/progressItem/selectProjectProgressWarningList', data);// 列表查询 +export const getTaskAlarmApi = data => get('/progressTaskAlarm/selectPage', data);// 列表查询 + //分布详情--组件 export const getDetailInfoApi = data => post('/xmgl/progressItem/getProjectProgressItemDetail', data);// 获取详情信息 diff --git a/src/views/projectFront/scheduleManage/ganttwo.vue b/src/views/projectFront/scheduleManage/ganttwo.vue index 1ce509ac..fb3ae49a 100644 --- a/src/views/projectFront/scheduleManage/ganttwo.vue +++ b/src/views/projectFront/scheduleManage/ganttwo.vue @@ -27,6 +27,24 @@ export default { tasks: { data: [], links: [] + // data: [ + // { + // id: 1, text: "Project #2", start_date: "01-04-2018", duration: 18, order: 10, + // progress: 0.4, open: true + // }, + // { + // id: 2, text: "Task #1", start_date: "02-04-2018", duration: 8, order: 10, + // progress: 0.6, parent: 1 + // }, + // { + // id: 3, text: "Task #2", start_date: "11-04-2018", duration: 8, order: 20, + // progress: 0.6, parent: 1 + // } + // ], + // links: [ + // {id: 1, source: 1, target: 2, type: "1"}, + // {id: 2, source: 2, target: 3, type: "0"} + // ] }, projectSn:'' }; @@ -41,7 +59,7 @@ export default { //左侧是否自适应 gantt.config.autofit = true; //左侧宽 - gantt.config.grid_width = 500; + gantt.config.grid_width = 800; //取消连线 gantt.config.drag_links = false; //只读 @@ -113,6 +131,13 @@ export default { section_text: "计划名称:", section_color: "颜色:", + section_duration: "工期", + section_actualStartDate: "实际开始时间", + section_actualFinishDate: "实际结束时间", + section_progressRatio: "进度比例", + section_remark: "备注", + + /* grid columns */ column_text: "计划名称", @@ -120,6 +145,9 @@ export default { column_duration: "持续时间", column_add: "", + // 添加看看 + + /* link confirmation */ link: "关联", @@ -139,9 +167,9 @@ export default { years: "年", }, }; - //左侧显示列名 + //配置左侧的表各项 gantt.config.columns = [ - { name: "text", label: "计划名称", tree: true, width: "*" }, + { name: "taskName", label: "计划名称", tree: true, width: "*" }, { name: "startDate", label: "预计开始时间", align: "center" }, { name: "finishDate", label: "预计结束时间", align: "center" }, { name: "actualStartDate", label: "实际开始时间", align: "center" }, @@ -159,39 +187,20 @@ export default { ]; //弹出层 gantt.config.lightbox.sections = [ - { - name: "text", - height: 70, - map_to: "text", - type: "textarea", - focus: true, - width: 200, - }, - { - name: "time", - height: 30, - map_to: "auto", - type: "time", - time_format: ["%Y", "%m", "%d"], - }, - { - name: "color", - height: 30, - map_to: "color", - type: "select", - options: [ + {name: "text",height: 70,map_to: "text",type: "textarea",focus: true, width: 200,}, //计划名称 + {name: "duration",height: 70,map_to: "text",type: "text",focus: true, width: 200,}, + {name: "actualStartDate", height: 40, map_to: "auto",type:"time", time_format: ["%Y", "%m", "%d"], focus: true}, + {name: "actualFinishDate", height: 40, map_to: "auto",type:"time", time_format: ["%Y", "%m", "%d"], focus: true}, + {name: "progressRatio", height: 40, map_to: "text", type: "textarea", focus: true}, + {name: "remark", height: 40, map_to: "text", type: "textarea", focus: true}, + {name: "time",height: 30,map_to: "auto",type: "time",time_format: ["%Y", "%m", "%d"]}, + {name: "color",height: 30,map_to: "color",type: "select",options: [ { key: "#3db9d3", label: "蓝色" }, { key: "#33cc33", label: "绿色" }, { key: "#FF8247", label: "橙色" }, { key: "#ff6633", label: "红色" }, ], }, - { - name: "description", - height: 70, - map_to: "description", - type: "textarea", - }, ]; //弹窗标题 日期范围 gantt.templates.task_time = function (start, end, task) { @@ -202,7 +211,8 @@ export default { ); }; //弹窗标题 计划名称 - gantt.templates.task_text = function (start, end, task) { + gantt.templates.task_text = function (start, end, task,a,b,c,d) { + console.log('start, end, task',start, end, task,a,b,c,d) return task.text; }; gantt.init(this.$refs.gantt); @@ -267,12 +277,12 @@ export default { }, changeTask() { const taskCount = gantt.getTaskCount(); - console.log('看一下',taskCount) let taskData = []; let openTask = []; for (let i = 0; i < taskCount; i++) { let taskOne = {}; const obj = gantt.getTaskByIndex(i); + console.log('======obj',obj) //打开状态继续打开 if (obj.$open == true) { openTask.push(obj.id); diff --git a/src/views/projectFront/scheduleManage/projectNodeDetail.vue b/src/views/projectFront/scheduleManage/projectNodeDetail.vue index b26410b4..e61a8b46 100644 --- a/src/views/projectFront/scheduleManage/projectNodeDetail.vue +++ b/src/views/projectFront/scheduleManage/projectNodeDetail.vue @@ -52,38 +52,36 @@ {{$t('message.projectManage.completed')}} - + - {{ - itemForm.branchProjectName + + {{itemForm.taskName}} + + {{ + itemForm.startDate }} - - {{ - itemForm.buildPosition + {{ + itemForm.actualStartDate }} - - {{ - itemForm.startTime + {{ + itemForm.actualFinishDate }} - - {{ - itemForm.endTime + {{ + itemForm.dutyUserName }} - - - - - {{ - itemForm.importance == "1" - ? $t('message.projectManage.ordinary') - : itemForm.importance == "2" - ? $t('message.projectManage.importent') - : $t('message.projectManage.veryImportent') + + {{itemForm.isOverdue == '0' ? '否' : itemForm.isOverdue == '1' ? '是' :'逾期已处理' }} + + {{ + itemForm.progressRatio }} - - {{ - itemForm.personChargeName + {{ + itemForm.resourceName }} + + + {{itemForm.taskTypeId == '0' ? '手动' : '自动'}} + - - - {{ - itemForm.createTime - }} - - {{ - itemForm.taskDescription + {{ + itemForm.remark }} @@ -256,7 +246,7 @@