(function () { var lists = []; let flowInstanceId = ""; let viewState = z.ui.comm.getUrlParam("_o"); let isFirst = z.ui.comm.getUrlParam("first"); var contractId = $("[name='contract$id']").val() var contractAmount = $("[name='contract$contractAmount'] input").val() window.onload = function () { flowInstanceId = z.ui.comm.getUrlParam("flowInstanceId"); bindEvents(); }; function bindEvents() { initData(); initCalcTax(); initContractMilestone(); initSelectMainType(); bindGenerateSerial(); z.workflow.saveBtn.addListener("onSaveClick", submit); } function initData(){ initClient(); initAssignee() initAreaManager(); } function initSelectMainType() { z.ui.select("[name='contract$mainType']").bindEvents({ onAfterSelect:function(value,data){ if(value === '5' ){ $("#attach").show(); } else { $("#attach").hide(); } } }); var now = z.ui.select("[name='contract$mainType']").getValue(); if (now ==='5'){ $("#attach").show(); } else { $("#attach").hide(); } } function bindGenerateSerial(){ $("#generateSerial").on("click",function(){ var serial = $("[name='contract$contractNumber'] input").val(); var projectTypeCode = $("[name=projectTypeCode]").val(); var xzqh = $("[name=xzqh]").val(); var params = {"projectType": projectTypeCode,"xzqh": xzqh}; var postdata = {"name": '合同编号',"params": params} if(serial) { z.ui.confirm("confirm").init({ content: '已有编号[' +serial + '],重新生成会覆盖原有编号,是否继续?', onConfirm: function() { z.ui.ajax({ type: "post", contentType: "application/json", url: "/common/generate-serial-number", data: JSON.stringify(postdata), success: function (res) { if(res && res.code === 0){ $("[name='contract$contractNumber'] input").val(res.data) } else { z.ui.alertWarning(res.msg); } }, error: function (res) { } }) }, onCancel: function () { } }) } else { z.ui.ajax({ type: "post", contentType: "application/json", url: "/common/generate-serial-number", data: JSON.stringify(postdata), success: function (res) { if(res && res.code === 0){ $("[name='contract$contractNumber'] input").val(res.data) } else { z.ui.alertWarning(res.msg); } }, error: function (res) { } }) } }) } function initClient(){ z.ui.ajax({ type: "get", url: "/customer-tree", data: {}, success: function (res) { if(res && res.code === 0 && res.data.length > 0){ selecttree("[name='client']",res.data,clickClient) } }, error: function () { } }) } function initAssignee(){ z.ui.ajax({ type: "get", url: "/common/company-tree", data: {}, success: function (res) { if(res && res.code === 0 && res.data.length > 0){ selecttree("[name='assignee']",res.data,clickAssignee) } }, error: function () { } }) } function initCalcTax(){ $('[name="contract$taxHsjeJskf"] input').on('change',function (){ calcTax(); }) $('[name="contract$taxHsjeFw"] input').on('change',function (){ calcTax(); }) $('[name="contract$taxHsjeRjcp"] input').on('change',function (){ calcTax(); }) $('[name="contract$taxHsjeYj"] input').on('change',function (){ calcTax(); }) } function initContractMilestone(){ var milestoneList = JSON.parse(window.milestoneList); if (milestoneList.length > 0) { for (let i = 0; i < milestoneList.length; i++) { let obj = { name: milestoneList[i].name || "", returnAmount: milestoneList[i].returnAmount || "", actualReturnAmount: milestoneList[i].actualReturnAmount || "", planReturnTime: milestoneList[i].planReturnTime || "", description: milestoneList[i].description || "", id: milestoneList[i].id || "", contractId: milestoneList[i].contractId || contractId, sortnum: milestoneList[i].sortnum || "" } lists.push(obj) } } $("#addData").click(function(){ addContractMilestone(); }) updateView() } function submit(all, istransfer) { var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: istransfer}); if (postData === false) { all({success: false}); return; } var milestoneFlag = false; var milestoneList = new Array() for (let key of Object.keys(postData)) { let mealName = postData[key]; if (key.startsWith("ContractMilestone")) { if(parseFloat(mealName.actualReturnAmount) && parseFloat(mealName.actualReturnAmount) > 0 ){ all({success: false, errorMsg: "里程碑回款金额不能大于0!"}); return; } mealName.contractId = contractId; milestoneList.push(z.ui.form.childStringify(mealName)); milestoneFlag =true; } } if(istransfer && !milestoneFlag){ all({success: false, errorMsg: "请填写合同里程碑!"}); return; } postData.milestoneList = milestoneList; z.ui.ajax({ url: z.ui.comm.getEntranceUrl("/flow/contract/update"), data: z.ui.form.childStringify(postData), success: function () { all({success: true}); }, error: function () { all({success: false}); } }) } function calcTax() { var hsje_jskf = parseFloat($('[name="contract$taxHsjeJskf"] input').val()) || 0; var hsje_fw = parseFloat($('[name="contract$taxHsjeFw"] input').val()) || 0; var hsje_rjcp = parseFloat($('[name="contract$taxHsjeRjcp"] input').val()) || 0; var hsje_yj = parseFloat($('[name="contract$taxHsjeYj"] input').val()) || 0; var hsje_total = parseFloat((hsje_jskf + hsje_fw + hsje_rjcp + hsje_yj).toFixed(2)); $('[name="contract$taxHsjeTotal"] input').val(hsje_total); var bhsje_jskf = parseFloat(hsje_jskf.toFixed(2)); var bhsje_fw = parseFloat((hsje_fw / (1 + 0.06)).toFixed(2)); var bhsje_rjcp = parseFloat((hsje_rjcp / (1 + 0.13)).toFixed(2)); var bhsje_yj =parseFloat( (hsje_yj / (1 + 0.13)).toFixed(2)); var bhsje_total = parseFloat((bhsje_jskf + bhsje_fw + bhsje_rjcp + bhsje_yj).toFixed(2)); $('[name="contract$taxBhsze"] input').val(bhsje_total); $('[name="contract$taxZhsl"] input').val(((hsje_total - bhsje_total) / bhsje_total).toFixed(6)); var zhsl = 0; var htje = parseFloat($('[name="contract$contractAmount"] input').val()) || 0; if (htje == 0){ zhsl = 1; } else { zhsl = (1 - parseFloat(bhsje_total / htje)).toFixed(2); } } function initAreaManager(){ z.ui.ajax({ type: "get", url: "/common/user-tree", data: {}, success: function (res) { if(res && res.length > 0){ // selecttree("[name='areaManager']",res,onClear,clickAreaManager,setAreaManager,allowUserClick,{ "Y": "s", "N": "s" }) selecttree("[name='areaManager']",res,clickAreaManager,allowUserClick,onClear,setAreaManager) } }, error: function () { } }) } function onClear(){ $("[name='contract$areaManagerId']").val(''); $("[name='contract$areaManager']").val(''); } function setAreaManager(){ var ids = $("[name='contract$areaManagerId']").val(); if(ids){ z.ui.selecttree("[name='areaManager']").setValue(ids.split(",")); } } // function clickAreaManager(even, treeId, treeNode) { // var ids = []; // var names = []; // var nodes = z.ui.selecttree("[name='areaManager']").tree.getCheckedNodes(); // for(var i in nodes){ // ids.push(nodes[i].id); // names.push(nodes[i].name); // } // if(ids.length > 0){ // $("[name='contract$areaManagerId']").val(ids.join(",")); // $("[name='contract$areaManager']").val(names.join(",")); // } // } function clickAreaManager(even, treeId, treeNode) { $("[name='contract$areaManagerId']").val(treeNode.id); $("[name='contract$areaManager']").val(treeNode.name); } function clickClient(even, treeId, treeNode) { $("[name='contract$clientName']").val(treeNode.name); $("[name='contract$clientId']").val(treeNode.id); $("[name='contract$clientNumber'] input").val(treeNode.extendData.customerNumber); } function clickAssignee(even, treeId, treeNode) { $("[name='contract$assigneeName']").val(treeNode.name); $("[name='contract$assigneeId']").val(treeNode.id); } function updateList(){ lists = []; var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: false}); for (let key of Object.keys(postData)) { let mealName = postData[key]; if (key.startsWith("ContractMilestone")) { var dataObj = { name: mealName.name, returnAmount: mealName.returnAmount, actualReturnAmount: mealName.actualReturnAmount, planReturnTime: mealName.planReturnTime, description: mealName.description, id: mealName.id, contractId: contractId, sortnum: lists.length } lists.push(dataObj); } } } function addContractMilestone(){ var trFragment = document.createDocumentFragment(); let tbody = document.querySelectorAll('.tbody tr') let qjsjElements = document.getElementsByName("contract_milestone_seq"); var dataObj = { name: "", returnAmount: "", actualReturnAmount: 0, planReturnTime: "", description: "", id: "", contractId: contractId, sortnum: lists.length - 1 } 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("contract_milestone_" + i); element.remove(); buildSeq(); updateList(); //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"); $("#contract_milestone_" + i).removeClass("form-table-disable") return; } if (html === '保存') { span.html('编辑') detailReadonly(i, false,"contract_milestone_") $("#addData").removeAttr('disabled') $("#contract_milestone_" + i).addClass("form-table-disable") return; } }) z.ui.date("[name='ContractMilestone[" + (lists.length-1) + "]$planReturnTime']").init() buildSeq(); for (let i = 0; i < tbody.length; i++) { z.ui.date("[name='ContractMilestone[" + i + "]$planReturnTime']").init({ done: function (value, date, endDate) { //改变日期后触发 console.log(value); } }); } } function buildSeq() { let elementsByName = document.getElementsByName("contract_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++) { var ratio = ''; if(parseFloat(contractAmount) && parseFloat(contractAmount) > 0 ){ ratio = ((lists[i].returnAmount / parseFloat(contractAmount)) * 100).toFixed(2) + '%'; } html += '