甘特图
This commit is contained in:
parent
ed12e2f634
commit
9a1d82934b
@ -1,7 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- saved from url=(0049)http://www.plusgantt.com/gantt/demo/ExtGantt.html -->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" class=" ext-strict x-viewport">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Ext甘特图</title>
|
||||
@ -18,72 +17,6 @@
|
||||
</head>
|
||||
|
||||
<body class="ext-webkit ext-chrome ext-mac x-border-layout-ct" id="ext-gen3">
|
||||
<!-- <div id="ext-comp-1001" class=" x-border-panel" style="height: 32px; left: 0px; top: 0px; width: 1920px;"><b
|
||||
style="padding:8px;">Ext甘特图集成示例</b></div>
|
||||
<div id="west-panel" class=" x-panel x-border-panel" style="width: 200px; left: 5px; top: 32px;">
|
||||
<div class="x-panel-header x-unselectable" id="ext-gen4">
|
||||
<div class="x-tool x-tool-toggle x-tool-collapse-west" id="ext-gen7"> </div><span
|
||||
class="x-panel-header-text" id="ext-gen8">West</span>
|
||||
</div>
|
||||
<div class="x-panel-bwrap" id="ext-gen5">
|
||||
<div class="x-panel-body" id="ext-gen6" style="width: 198px; height: 862px;">
|
||||
<div id="ext-comp-1004" class=" x-panel x-panel-noborder" style="width: auto;">
|
||||
<div class="x-panel-header x-panel-header-noborder x-unselectable x-accordion-hd" id="ext-gen18"
|
||||
style="cursor: pointer;">
|
||||
<div class="x-tool x-tool-toggle" id="ext-gen21"> </div><img
|
||||
src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
|
||||
class="x-panel-inline-icon nav"><span class="x-panel-header-text"
|
||||
id="ext-gen22">Navigation</span>
|
||||
</div>
|
||||
<div class="x-panel-bwrap" id="ext-gen19">
|
||||
<div class="x-panel-body x-panel-body-noborder" id="ext-gen20"
|
||||
style="width: auto; height: 814px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ext-comp-1005" class=" x-panel x-panel-noborder x-panel-collapsed" style="width: auto;">
|
||||
<div class="x-panel-header x-panel-header-noborder x-unselectable x-accordion-hd" id="ext-gen23"
|
||||
style="cursor: pointer;">
|
||||
<div class="x-tool x-tool-toggle" id="ext-gen26"> </div><img
|
||||
src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
|
||||
class="x-panel-inline-icon settings"><span class="x-panel-header-text"
|
||||
id="ext-gen27">Settings</span>
|
||||
</div>
|
||||
<div class="x-panel-bwrap" id="ext-gen24" style="display: none;">
|
||||
<div class="x-panel-body x-panel-body-noborder" id="ext-gen25">
|
||||
<p>Some settings in here.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ext-comp-1002" class=" x-tab-panel x-border-panel" style="left: 210px; top: 32px; width: 1710px;">
|
||||
<div class="x-tab-panel-header x-unselectable" id="ext-gen10" style="width: 1708px;">
|
||||
<div class="x-tab-strip-wrap" id="ext-gen13" style="width: 1708px;">
|
||||
<ul class="x-tab-strip x-tab-strip-top" id="ext-gen15">
|
||||
<li class=" x-tab-strip-active" id="ext-comp-1002__extwrap"><a class="x-tab-strip-close"
|
||||
onclick="return false;"></a><a class="x-tab-right"
|
||||
href="http://www.plusgantt.com/gantt/demo/ExtGantt.html#" onclick="return false;"><em
|
||||
class="x-tab-left"><span class="x-tab-strip-inner"><span
|
||||
class="x-tab-strip-text ">普加甘特图</span></span></em></a></li>
|
||||
<li class="x-tab-edge" id="ext-gen16"></li>
|
||||
<div class="x-clear" id="ext-gen17"></div>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="x-tab-strip-spacer" id="ext-gen14"></div>
|
||||
</div>
|
||||
<div class="x-tab-panel-bwrap" id="ext-gen11">
|
||||
<div class="x-tab-panel-body x-tab-panel-body-top" id="ext-gen12"
|
||||
style="overflow: auto; width: 1708px; height: 857px;">
|
||||
<div id="extwrap" style="width: 1708px; height: 857px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
|
||||
<!--引入ExtJS-->
|
||||
<script type="text/javascript" src="./Ext甘特图_files/ext-base.js"></script>
|
||||
<script type="text/javascript" src="./Ext甘特图_files/ext-all.js"></script>
|
||||
@ -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<br/>String",
|
||||
width: 50,
|
||||
editor: {
|
||||
type: "textbox"
|
||||
}
|
||||
};
|
||||
columns.push(idColumn);
|
||||
var stringColumn = {
|
||||
name: "name",
|
||||
header: "任务名称<br/>String",
|
||||
field: "taskName",
|
||||
width: 150,
|
||||
editor: {
|
||||
type: "textbox"
|
||||
}
|
||||
};
|
||||
columns.push(stringColumn);
|
||||
var linkColumn = {
|
||||
name: "predecessorLink",
|
||||
header: "前置任务<br/>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: "计划开始日期<br/>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: "计划完成日期<br/>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: "实际开始日期<br/>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: "实际完成日期<br/>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: "工期<br/>String",
|
||||
field: "duration",
|
||||
width: 60,
|
||||
editor: {
|
||||
type: "textbox"
|
||||
}
|
||||
};
|
||||
columns.push(durationColumn);
|
||||
var proColumn = {
|
||||
name: "percentComplete",
|
||||
header: "进度比例<br/>String",
|
||||
field: "progressRatio",
|
||||
width: 60,
|
||||
editor: {
|
||||
type: "textbox"
|
||||
}
|
||||
};
|
||||
columns.push(proColumn);
|
||||
var remarkColumn = {
|
||||
name: "remark",
|
||||
header: "备注<br/>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
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@ -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);
|
||||
// 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);
|
||||
// }
|
||||
// },
|
||||
|
||||
//加到子任务
|
||||
//gantt.addTask(task, "append", targetTask);
|
||||
},
|
||||
__OnEdit: function (e) {
|
||||
var gantt = this.owner;
|
||||
var task = gantt.getSelected();
|
||||
if (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,)
|
||||
|
||||
}
|
||||
},
|
||||
__OnRemove: function (e) {
|
||||
var gantt = this.owner;
|
||||
var task = gantt.getSelected();
|
||||
if (task) {
|
||||
if (confirm("确定删除任务 \"" + task.Name + "\" ?")) {
|
||||
gantt.removeTask(task);
|
||||
}
|
||||
} else {
|
||||
alert("请选择要删除的任务");
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
__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("请选择要删除的任务");
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
42
public/doc/ExtGantt/Ext甘特图_files/add.html
Normal file
42
public/doc/ExtGantt/Ext甘特图_files/add.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="editWindow" class="mini-window" title="Window" style="width:650px;"
|
||||
showModal="true" allowResize="true" allowDrag="true">
|
||||
<div id="editform" class="form" >
|
||||
<input class="mini-hidden" name="id"/>
|
||||
<table style="width:100%;">
|
||||
<tr>
|
||||
<td style="width:80px;">员工帐号:</td>
|
||||
<td style="width:150px;"><input name="loginname" class="mini-textbox" /></td>
|
||||
<td style="width:80px;">姓名:</td>
|
||||
<td style="width:150px;"><input name="name" class="mini-textbox" /></td>
|
||||
<td style="width:80px;">薪资:</td>
|
||||
<td style="width:150px;"><input name="salary" class="mini-textbox" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>性别:</td>
|
||||
<td><input name="gender" class="mini-combobox" url="mini_JSPath + '../../demo/data/genders.txt'"/></td>
|
||||
<td>年龄:</td>
|
||||
<td><input name="age" class="mini-spinner" minValue="0" maxValue="200" value="25" /></td>
|
||||
<td>出生日期:</td>
|
||||
<td><input name="birthday" class="mini-datepicker" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;padding-top:5px;padding-right:20px;" colspan="6">
|
||||
<a class="Update_Button" href="javascript:updateRow()">Update</a>
|
||||
<a class="Cancel_Button" href="javascript:cancelRow()">Cancel</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -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);// 获取详情信息
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -52,38 +52,36 @@
|
||||
{{$t('message.projectManage.completed')}}
|
||||
</el-button>
|
||||
</div>
|
||||
<el-form ref="form" label-width="150px" style="width: 80%">
|
||||
<el-form ref="form" :model="itemForm" label-width="150px" style="width: 80%">
|
||||
<!-- 分部分项工程名称 -->
|
||||
<el-form-item :label="$t('message.projectManage.NameOfSubProject')+':'">{{
|
||||
itemForm.branchProjectName
|
||||
<el-form-item prop="taskName" :label="$t('message.projectManage.NameOfSubProject')+':'">
|
||||
{{itemForm.taskName}}
|
||||
</el-form-item>
|
||||
<el-form-item prop="startDate" label="计划开始时间:">{{
|
||||
itemForm.startDate
|
||||
}}</el-form-item>
|
||||
<!-- 施工位置 -->
|
||||
<el-form-item :label="$t('message.projectManage.constructionLocation')+':'">{{
|
||||
itemForm.buildPosition
|
||||
<el-form-item prop="actualStartDate" label="实际开始时间:">{{
|
||||
itemForm.actualStartDate
|
||||
}}</el-form-item>
|
||||
<!-- 开始日期 -->
|
||||
<el-form-item :label="$t('message.projectManage.startData')+':'">{{
|
||||
itemForm.startTime
|
||||
<el-form-item prop="actualFinishDate" label="实际完成时间:">{{
|
||||
itemForm.actualFinishDate
|
||||
}}</el-form-item>
|
||||
<!-- 截止完成日期 -->
|
||||
<el-form-item :label="$t('message.projectManage.completionDate')+':'">{{
|
||||
itemForm.endTime
|
||||
<el-form-item prop="dutyUserName" label="负责人名称:">{{
|
||||
itemForm.dutyUserName
|
||||
}}</el-form-item>
|
||||
<!-- 重要程度 -->
|
||||
<!-- "一般" -->
|
||||
<!-- "重要" -->
|
||||
<!-- "很重要" -->
|
||||
<el-form-item :label="$t('message.projectManage.degreeOfImportance')+':'">{{
|
||||
itemForm.importance == "1"
|
||||
? $t('message.projectManage.ordinary')
|
||||
: itemForm.importance == "2"
|
||||
? $t('message.projectManage.importent')
|
||||
: $t('message.projectManage.veryImportent')
|
||||
<el-form-item prop="isOverdue" label="是否预期:">
|
||||
{{itemForm.isOverdue == '0' ? '否' : itemForm.isOverdue == '1' ? '是' :'逾期已处理' }}
|
||||
</el-form-item>
|
||||
<el-form-item prop="progressRatio" label="进度比例:">{{
|
||||
itemForm.progressRatio
|
||||
}}</el-form-item>
|
||||
<!-- 负责人 -->
|
||||
<el-form-item :label="$t('message.projectManage.principal')+':'">{{
|
||||
itemForm.personChargeName
|
||||
<el-form-item prop="resourceName" label="资源名称:">{{
|
||||
itemForm.resourceName
|
||||
}}</el-form-item>
|
||||
|
||||
<el-form-item prop="taskTypeId" label="任务模式:">
|
||||
{{itemForm.taskTypeId == '0' ? '手动' : '自动'}}
|
||||
</el-form-item>
|
||||
<!-- 上传的附件 -->
|
||||
<el-form-item :label="$t('message.projectManage.uploadedAttachments')+':'">
|
||||
<img
|
||||
@ -94,16 +92,8 @@
|
||||
style="height: 50px; width: auto; margin-right: 10px; cursor: pointer;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="创建人:">{{
|
||||
itemForm.createrUser
|
||||
}}</el-form-item> -->
|
||||
<!-- 创建日期 -->
|
||||
<el-form-item :label="$t('message.projectManage.createDate')+':'">{{
|
||||
itemForm.createTime
|
||||
}}</el-form-item>
|
||||
<!-- 任务描述 -->
|
||||
<el-form-item :label="$t('message.projectManage.taskDescription')+':'">{{
|
||||
itemForm.taskDescription
|
||||
<el-form-item prop="remark" label="备注:">{{
|
||||
itemForm.remark
|
||||
}}</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
@ -256,7 +246,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getProgressTaskApi,getDetailInfoApi, addPlanInfoApi } from "@/assets/js/api/scheduleInfo";
|
||||
import { getProgressTaskApi, addPlanInfoApi } from "@/assets/js/api/scheduleInfo";
|
||||
export default {
|
||||
props: ["id"],
|
||||
mounted() {},
|
||||
@ -266,7 +256,9 @@ export default {
|
||||
projectSn: "",
|
||||
uploadUrl: "",
|
||||
fileUrl: "",
|
||||
itemForm: {},
|
||||
itemForm: {
|
||||
taskName:"",
|
||||
},
|
||||
planList: [],
|
||||
fileList: [],
|
||||
dialogVisible: false,
|
||||
@ -346,8 +338,8 @@ export default {
|
||||
getProgressTaskApi(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
console.log('查看详情',res)
|
||||
// this.itemForm = res.result.itemDetail;
|
||||
// this.planList = res.result.feedbackList;
|
||||
this.itemForm = res.result
|
||||
this.planList = res.result.feedbackList;
|
||||
// //获取项目的基本信息的附件
|
||||
// this.fileList = res.result.itemDetail.fileUrl
|
||||
// ? [JSON.parse(res.result.itemDetail.fileUrl)]
|
||||
|
||||
@ -165,6 +165,7 @@
|
||||
prop="startDate"
|
||||
>
|
||||
<el-date-picker
|
||||
@change="time1"
|
||||
v-model="workerInfo.startDate"
|
||||
type="date"
|
||||
placeholder="计划开始日期"
|
||||
@ -178,6 +179,7 @@
|
||||
prop="finishDate"
|
||||
>
|
||||
<el-date-picker
|
||||
@change="time2"
|
||||
v-model="workerInfo.finishDate"
|
||||
type="date"
|
||||
placeholder="计划完成时间"
|
||||
@ -208,17 +210,16 @@
|
||||
<!-- 负责人 -->
|
||||
<el-form-item
|
||||
:label="$t('message.projectManage.principal')"
|
||||
prop="personCharge"
|
||||
prop="dutyUserName"
|
||||
>
|
||||
<el-select
|
||||
v-model="workerInfo.personCharge"
|
||||
filterable
|
||||
v-model="workerInfo.dutyUserId"
|
||||
:placeholder="$t('message.projectManage.pleaseChoose')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in principalLsit"
|
||||
:key="item.userId"
|
||||
:label="item.workerName"
|
||||
:label="item.realName"
|
||||
:value="item.userId"
|
||||
>
|
||||
</el-option>
|
||||
@ -292,6 +293,7 @@
|
||||
size="medium"
|
||||
>{{ $t("message.personnelPosition.cancel") }}
|
||||
</el-button>
|
||||
<!-- 确定 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-circle-check"
|
||||
@ -318,16 +320,9 @@
|
||||
import {
|
||||
getProgressListDataApi,
|
||||
editProgressListDataApi,
|
||||
addProgressManageApi,
|
||||
addProgressItemApi,
|
||||
getPrincipalLsitApi,
|
||||
editProgressManageApi,
|
||||
editProgressItemApi,
|
||||
deleteProgressManageApi,
|
||||
deletetProgressItemApi,
|
||||
} from "@/assets/js/api/scheduleInfo";
|
||||
import detailpage from "./projectNodeDetail";
|
||||
import axios from "axios";
|
||||
export default {
|
||||
components: {
|
||||
detailpage,
|
||||
@ -354,6 +349,7 @@ export default {
|
||||
status: "",
|
||||
taskTypeId: "",
|
||||
progressRatio: "",
|
||||
dutyUserId:"",
|
||||
fileUrl: "",
|
||||
duration: "",
|
||||
remark: "",
|
||||
@ -400,6 +396,12 @@ export default {
|
||||
this.getProgressListData();
|
||||
},
|
||||
methods: {
|
||||
time1(val){
|
||||
console.log('开始时间',val)
|
||||
},
|
||||
time2(val){
|
||||
console.log('结束时间',val)
|
||||
},
|
||||
// 下载模板
|
||||
downloadFn() {
|
||||
this.downUrl =
|
||||
@ -438,7 +440,7 @@ export default {
|
||||
};
|
||||
getProgressListDataApi(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
console.log("获取到的列表", res);
|
||||
// console.log("获取到的列表", res);
|
||||
this.listData = res.result;
|
||||
}
|
||||
});
|
||||
@ -450,7 +452,6 @@ export default {
|
||||
};
|
||||
getPrincipalLsitApi(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
console.log("负责人", res);
|
||||
this.principalLsit = res.result;
|
||||
}
|
||||
});
|
||||
@ -481,10 +482,11 @@ export default {
|
||||
|
||||
// 编辑按钮
|
||||
editBefore(val) {
|
||||
console.log("=====", val);
|
||||
this.workerInfo = JSON.parse(JSON.stringify(val));
|
||||
console.log('当前点击的行',val)
|
||||
this.fileList = val.fileUrl ? JSON.parse(val.fileUrl) : [];
|
||||
this.dialogVisible = true;
|
||||
this.getPrincipalLsit()
|
||||
},
|
||||
//编辑
|
||||
submitBtn() {
|
||||
@ -502,9 +504,8 @@ export default {
|
||||
//赋值
|
||||
let data = this.workerInfo;
|
||||
data.projectSn = this.projectSn;
|
||||
console.log('编辑的参数',data)
|
||||
// console.log('编辑的参数',data)
|
||||
editProgressListDataApi(data).then((res)=>{
|
||||
console.log('编辑成功了吗',res)
|
||||
if(res.code == 200){
|
||||
this.$message.success("编辑成功!");
|
||||
this.dialogVisible = false
|
||||
@ -529,5 +530,9 @@ export default {
|
||||
display: inline-block !important;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.table_wrap{
|
||||
height: 800px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -30,47 +30,43 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" :data="tableList">
|
||||
<!-- 序号 -->
|
||||
<el-table-column
|
||||
type='index'
|
||||
:label="$t('message.projectManage.serialNumber')"
|
||||
align="center"
|
||||
width="50"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- 分布分项工程名称 -->
|
||||
<el-table-column
|
||||
width="200"
|
||||
prop="subitemProjectName"
|
||||
align="center"
|
||||
:label="$t('message.projectManage.NameOfSubProject2')"
|
||||
></el-table-column>
|
||||
<!-- 责任人 -->
|
||||
<el-table-column
|
||||
prop="personCharge"
|
||||
:label="$t('message.projectManage.principal2')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- 开始日期 -->
|
||||
<el-table-column
|
||||
prop="startTime"
|
||||
:label="$t('message.projectManage.startData')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- 预计截止日期 -->
|
||||
<el-table-column
|
||||
prop="endTime"
|
||||
:label="$t('message.projectManage.predictDate')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- 逾期天数 -->
|
||||
<el-table-column
|
||||
prop="daynum"
|
||||
:label="$t('message.projectManage.daysOverdue')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
<vue-scroll>
|
||||
<el-table class="tables" :data="tableList">
|
||||
<el-table-column
|
||||
type="index"
|
||||
:label="$t('message.projectManage.serialNumber')"
|
||||
align="center"
|
||||
width="50"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="taskName"
|
||||
align="center"
|
||||
label="任务名称"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="alarmDetails"
|
||||
width="500"
|
||||
align="center"
|
||||
label="报警详情"
|
||||
></el-table-column>
|
||||
<el-table-column prop="alarmType" align="center" label="报警类型">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.alarmType == 1 ? '逾期未开始' : scope.row.alarmType == 2 ? '逾期未完成' :'前置任务未完成' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createDate"
|
||||
align="center"
|
||||
label="创建时间"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="updateDate"
|
||||
align="center"
|
||||
label="更新时间"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
</vue-scroll>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="SizeChange"
|
||||
@ -86,19 +82,14 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
import {
|
||||
getWarningListDataApi
|
||||
} from "@/assets/js/api/scheduleInfo";
|
||||
import { getTaskAlarmApi } from "@/assets/js/api/scheduleInfo";
|
||||
|
||||
export default {
|
||||
mounted() {
|
||||
},
|
||||
mounted() {},
|
||||
data() {
|
||||
return {
|
||||
projectSn: "",
|
||||
tableList:[],
|
||||
|
||||
projectSn: "",
|
||||
tableList: [],
|
||||
deviceIdArr: [],
|
||||
queryInfo: {},
|
||||
pagInfo: {
|
||||
@ -107,27 +98,28 @@ export default {
|
||||
total: 0, //总条数
|
||||
},
|
||||
List: [],
|
||||
daterange:[]
|
||||
daterange: [],
|
||||
};
|
||||
},
|
||||
created(){
|
||||
this.projectSn = this.$store.state.projectSn;
|
||||
this.getWarningListData();
|
||||
created() {
|
||||
this.projectSn = this.$store.state.projectSn;
|
||||
this.getWarningListData();
|
||||
},
|
||||
methods: {
|
||||
//获取列表数据
|
||||
getWarningListData(){
|
||||
getWarningListData() {
|
||||
let data = {
|
||||
projectSn:this.projectSn,
|
||||
pageNo:this.pagInfo.pageNo,
|
||||
pageSize:this.pagInfo.pageSize,
|
||||
}
|
||||
getWarningListDataApi(data).then(res=>{
|
||||
if(res.code==200){
|
||||
projectSn: this.projectSn,
|
||||
pageNo: this.pagInfo.pageNo,
|
||||
pageSize: this.pagInfo.pageSize,
|
||||
};
|
||||
getTaskAlarmApi(data).then((res) => {
|
||||
console.log("返回的值", res);
|
||||
if (res.code == 200) {
|
||||
this.tableList = res.result.records;
|
||||
this.pagInfo.total = res.result.total;
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
//刷新按钮
|
||||
refresh() {
|
||||
@ -137,8 +129,6 @@ export default {
|
||||
this.getWarningListData();
|
||||
},
|
||||
|
||||
|
||||
|
||||
SizeChange(val) {
|
||||
this.pagInfo.pageSize = val;
|
||||
this.getWarningListData();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user