|
@@ -1,4 +1,8 @@
|
|
|
(function () {
|
|
|
+ var lists = [];
|
|
|
+ var projectId = $("[name='project$id']").val()
|
|
|
+ let viewState = z.ui.comm.getUrlParam("_o");
|
|
|
+ let read = z.ui.comm.getUrlParam("read");
|
|
|
let flowInstanceId = "";
|
|
|
let isView = "";
|
|
|
window.onload = function () {
|
|
@@ -19,6 +23,7 @@
|
|
|
initZrbm();
|
|
|
initProjectType();
|
|
|
initBelongCompany();
|
|
|
+ initProjectMilestone();
|
|
|
}
|
|
|
|
|
|
function bindGenerateSerial(){
|
|
@@ -67,6 +72,17 @@
|
|
|
all({ success: false });
|
|
|
return;
|
|
|
}
|
|
|
+ var milestoneList = new Array()
|
|
|
+ for (let key of Object.keys(postData)) {
|
|
|
+ let mealName = postData[key];
|
|
|
+ if (key.startsWith("ProjectMilestone")) {
|
|
|
+ mealName.projectId = projectId;
|
|
|
+ mealName.state = 0;
|
|
|
+ milestoneList.push(z.ui.form.childStringify(mealName));
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ postData.milestoneList = milestoneList;
|
|
|
z.ui.ajax({
|
|
|
url: z.ui.comm.getEntranceUrl("/flow/project/update"),
|
|
|
data: z.ui.form.childStringify(postData),
|
|
@@ -79,6 +95,27 @@
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ function initProjectMilestone(){
|
|
|
+ var milestoneList = JSON.parse(window.milestoneList);
|
|
|
+ if (milestoneList.length > 0) {
|
|
|
+ for (let i = 0; i < milestoneList.length; i++) {
|
|
|
+ let obj = {
|
|
|
+ name: milestoneList[i].name || "",
|
|
|
+ planFinishTime: milestoneList[i].planFinishTime || "",
|
|
|
+ actualFinishTime: milestoneList[i].actualFinishTime || "",
|
|
|
+ id: milestoneList[i].id || "",
|
|
|
+ projectId: milestoneList[i].projectId || projectId,
|
|
|
+ sortnum: milestoneList[i].sortnum || ""
|
|
|
+ }
|
|
|
+ lists.push(obj)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $("#addData").click(function(){
|
|
|
+ addProjectMilestone();
|
|
|
+ })
|
|
|
+ updateView()
|
|
|
+ }
|
|
|
+
|
|
|
function initLyfc(){
|
|
|
//利益分成JS交互
|
|
|
var lyfcGsDom = document.querySelector("#lyfcGs");
|
|
@@ -114,7 +151,7 @@
|
|
|
if(!ele) continue;
|
|
|
var val = ele.getAttribute('value');
|
|
|
var eleClass = ele.classList;
|
|
|
- if(val !== '0.4' && val !== '0.375' && val !== '0'){
|
|
|
+ if(val !== '0.42' && val !== '0.375' && val !== '0'){
|
|
|
lyfcBmDom.value = defaultVal * 100;
|
|
|
lyfcGsDom.value = 100 - defaultVal * 100;
|
|
|
break;
|
|
@@ -168,6 +205,206 @@
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ function addProjectMilestone(){
|
|
|
+ var trFragment = document.createDocumentFragment();
|
|
|
+ let tbody = document.querySelectorAll('.tbody tr')
|
|
|
+ let qjsjElements = document.getElementsByName("project_milestone_seq");
|
|
|
+ var dataObj = {
|
|
|
+ name: "",
|
|
|
+ actualFinishTime: "",
|
|
|
+ planFinishTime: "",
|
|
|
+ id: "",
|
|
|
+ projectId: projectId,
|
|
|
+ sortnum: ""
|
|
|
+ }
|
|
|
+ lists.push(dataObj);
|
|
|
+ trFragment.appendChild(generateTableTrHtml(lists.length-1))
|
|
|
+ var index = lists.length - 1;
|
|
|
+ $(".tbody").append(trFragment)
|
|
|
+ $("#delBtn_" + index).click(function () {
|
|
|
+ var i = this.id.substring(this.id.indexOf("_") + 1)
|
|
|
+ z.ui.confirm("compid").init({
|
|
|
+ content: "确定删除吗?",
|
|
|
+ onConfirm: function () {
|
|
|
+ var element = document.getElementById("project_milestone_" + i);
|
|
|
+ element.remove();
|
|
|
+ buildSeq();
|
|
|
+ lists.splice(i,1);
|
|
|
+ updateView();
|
|
|
+ },
|
|
|
+ onCancel: function () {
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ $("#editBtn_" + index).click(function () {
|
|
|
+ var i = this.id.substring(this.id.indexOf("_") + 1)
|
|
|
+ const span = $(this).find("span");
|
|
|
+ const html = span.html();
|
|
|
+ if (html === '编辑') {
|
|
|
+ span.html('保存')
|
|
|
+ detailWrite(i);
|
|
|
+ $("#addData").attr('disabled', "true");
|
|
|
+ $("#project_milestone_" + i).removeClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (html === '保存') {
|
|
|
+ span.html('编辑')
|
|
|
+ detailReadonly(i, false,"project_milestone_")
|
|
|
+ $("#addData").removeAttr('disabled')
|
|
|
+ $("#project_milestone_" + i).addClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ z.ui.date("[name='ProjectMilestone[" + (lists.length-1) + "]$planFinishTime']").init()
|
|
|
+ z.ui.date("[name='ProjectMilestone[" + (lists.length-1) + "]$actualFinishTime']").init()
|
|
|
+ buildSeq();
|
|
|
+ }
|
|
|
+
|
|
|
+ function buildSeq() {
|
|
|
+ let elementsByName = document.getElementsByName("project_milestone_seq");
|
|
|
+ for (let i = 0; i < elementsByName.length; i++) {
|
|
|
+ const seqElement = elementsByName[i];
|
|
|
+ seqElement.innerHTML = i + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function updateView() {
|
|
|
+ let tbodyQjsq = document.querySelector('.tbodyQjsq')
|
|
|
+ let html = ''
|
|
|
+ for (let i = 0; i < lists.length; i++) {
|
|
|
+ html += '<tr class="qjsjClass" id="project_milestone_' + i + '" style="background:#fff">'
|
|
|
+ + '<td name="project_milestone_seq">' + (i + 1) + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<input type="hidden" name="ProjectMilestone[' + i + ']$id" value="'+lists[i].id+'"/>'
|
|
|
+ + '<input type="hidden" name="ProjectMilestone[' + i + ']$sortnum" value="'+lists[i].sortnum+'"/>'
|
|
|
+ + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$name">'
|
|
|
+ + '<input type="text" value="'+lists[i].name+'">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$planFinishTime">'
|
|
|
+ + '<input type="text" value="'+lists[i].planFinishTime+'">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-input" name="ProjectMilestone[' + i + ']$actualFinishTime">'
|
|
|
+ + '<input type="text" value="'+lists[i].actualFinishTime+'">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
|
|
|
+ + '<span>编辑</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
|
|
|
+ + '<span>删除</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td></tr>';
|
|
|
+ }
|
|
|
+ tbodyQjsq.innerHTML = html
|
|
|
+ for (let i = 0; i < lists.length; i++) {
|
|
|
+ z.ui.date("[name='ProjectMilestone[" + i + "]$planFinishTime']").init()
|
|
|
+ z.ui.date("[name='ProjectMilestone[" + i + "]$actualFinishTime']").init()
|
|
|
+ $("#delBtn_" + i).click(function () {
|
|
|
+ z.ui.confirm("compid").init({
|
|
|
+ content: "确定删除吗?",
|
|
|
+ onConfirm: function () {
|
|
|
+ var element = document.getElementById("project_milestone_" + i);
|
|
|
+ element.remove();
|
|
|
+ buildSeq();
|
|
|
+ lists.splice(i, 1)
|
|
|
+ updateView();
|
|
|
+ },
|
|
|
+ onCancel: function () {
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+ $("#editBtn_" + i).click(function () {
|
|
|
+ const span = $(this).find("span");
|
|
|
+ const html = span.html();
|
|
|
+ if (html === '编辑') {
|
|
|
+ span.html('保存')
|
|
|
+ detailWrite(i);
|
|
|
+ $("#addData").attr('disabled', "true");
|
|
|
+ $("#project_milestone_" + i).removeClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (html === '保存') {
|
|
|
+ span.html('编辑')
|
|
|
+ detailReadonly(i, false,"project_milestone_")
|
|
|
+ $("#addData").removeAttr('disabled')
|
|
|
+ $("#project_milestone_" + i).addClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ detailReadonly(i,false,"project_milestone_")
|
|
|
+ $("#project_milestone_" + i).addClass("form-table-disable")
|
|
|
+ // if(viewState === 'v' || read=== '1'){
|
|
|
+ // detailReadonly(i)
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ // detailTotalInit()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ function generateTableTrHtml(index) {
|
|
|
+ var trDom = document.createElement("tr");
|
|
|
+ trDom.style.backgroundColor = "#fff";
|
|
|
+ trDom.id = "project_milestone_" + index;
|
|
|
+ trDom.className = 'qjsjClass';
|
|
|
+ trDom.innerHTML = '<td name="project_milestone_seq">' + (index + 1) + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$name">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$planFinishTime">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div class="form-flex">'
|
|
|
+ + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$actualFinishTime">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>'
|
|
|
+ + '<td>'
|
|
|
+ + '<div id="editBtn_' + (index) + '" class="table-btn editBtn_' + (index) + '" data-index="' + (index) + '">'
|
|
|
+ + '<span>保存</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div id="delBtn_' + (index) + '" class="table-btn delBtn_' + (index) + '" data-index="' + (index) + '">'
|
|
|
+ + '<span>删除</span>'
|
|
|
+ + '</div>'
|
|
|
+ + '</td>';
|
|
|
+ return trDom;
|
|
|
+ }
|
|
|
|
|
|
function initZrbm() {
|
|
|
z.ui.ajax({
|
|
@@ -184,6 +421,30 @@
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ function detailReadonly(i, isBool = true,prefix) {
|
|
|
+ if (isBool) {
|
|
|
+ $("#delBtn_" + i).css("display", "none");
|
|
|
+ $("#editBtn_" + i).css("display", "none");
|
|
|
+ }
|
|
|
+ let detailElement = document.getElementById(prefix + i);
|
|
|
+ let detailInput = detailElement.getElementsByTagName("input");
|
|
|
+ for (let j = 0; j < detailInput.length; j++) {
|
|
|
+ detailInput[j].disabled = true;
|
|
|
+ detailInput[j].className += "z-readonly"
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ function detailWrite(i) {
|
|
|
+ //财务审核时可以核减修改金额
|
|
|
+ let detailElement = document.getElementById("project_milestone_" + i);
|
|
|
+ let detailInput = detailElement.getElementsByTagName("input");
|
|
|
+ for (let j = 0; j < detailInput.length; j++) {
|
|
|
+ detailInput[j].disabled = false;
|
|
|
+ $(detailInput[j]).removeClass("z-readonly")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
function initProjectType() {
|
|
|
z.ui.ajax({
|
|
|
type: "get",
|