(function () { let isTimes = [] let viewState = z.ui.comm.getUrlParam("_o"); let read = z.ui.comm.getUrlParam("read"); let finance = z.ui.comm.getUrlParam("finance"); window.onload = function (ex) { let timeObject = document.querySelector('#detailList') let arrays = JSON.parse(timeObject.value) $("#addData").click(function () { let obj = { amount: "", bz1: "", costType: "", commonCostId: "", costContent: "", costDate: "", createTime: "", id: "", invoiceNums: "", isvalid: "", latestModifyTime: "", } isTimes.push(obj) updateView() buildQjsjSeq(); detailTotalInit() }) $("#selectProject").click(function () { selectProject(null, setProject); }) initCompany(); bindEvents(); //根据返回的json对象渲染 if (arrays.length > 0) { for (let i = 0; i < arrays.length; i++) { let obj = { amount: arrays[i].amount, bz1: arrays[i].bz1, costType: arrays[i].costType, commonCostId: arrays[i].commonCostId, costContent: arrays[i].costContent, costDate: arrays[i].costDate, createTime: arrays[i].createTime, id: arrays[i].id, invoiceNums: arrays[i].invoiceNums, isvalid: arrays[i].isvalid, latestModifyTime: arrays[i].latestModifyTime, } isTimes.push(obj) } updateView() } } function updateView() { let tbodyQjsq = document.querySelector('.tbodyQjsq') let html = '' for (let i = 0; i < isTimes.length; i++) { html += '' + '' + (i + 1) + '' + '' + '
' + '
' + '
' + '' + '
' + '
' + '
' + '' + '' + '
' + '
' + '
' + '' + '
' + '' + '
' + '
' + '
' + '
' + '' + '' + '
' + '
' + '' + '
' + '
' + '' + '' + '
' + '
' + '' + '
' + '
' + '' + '' + '
' + '
' + '' + '
' + '
' + '' + '' + '
' + '
' + '' + '
' + '
' + '' + '' + '
' + '删除' + '
' + ''; } tbodyQjsq.innerHTML = html let costTypeJSON = JSON.parse(document.querySelector('#costTypeJSON').value) for (let i = 0; i < isTimes.length; i++) { costTypeJSON.forEach(obj => { obj.treeName = 'CommonCostDetailDO[' + i + ']$costType'; }) selecttree("[name='costType[" + i + "]']", costTypeJSON, clickCostType, allowChildClick) z.ui.date("[name='CommonCostDetailDO[" + i + "]$costDate']").init() z.ui.selecttree("[name='costType[" + i + "]']").setValue(isTimes[i].costType) $("[name='CommonCostDetailDO[" + i + "]$costType']").val(isTimes[i].costType); $("#delBtn_" + i).click(function () { z.ui.confirm("compid").init({ content: "确定删除吗?", onConfirm: function () { var element = document.getElementById("qjsj_" + i); element.remove(); buildQjsjSeq(); isTimes.splice(i, 1) updateView() jeSumInit(i) }, onCancel: function () { } }) }) if(viewState === 'v' || read===1){ detailReadonly(i) } } detailTotalInit() } function detailReadonly(i){ //财务审核时可以核减修改金额 if(finance === 1){ //如果单据金额发生修改就代表核减了 } $("#delBtn_" + i).css("display","none"); $("[name='costType[" + i + "]']").addClass("z-readonly"); $("[name='costType[" + i + "]']").css("pointer-events", "none"); let detailElement = document.getElementById("qjsj_" + i); let detailInput = detailElement.getElementsByTagName("input"); for (let j = 0; j < detailInput.length; j++){ detailInput[j].disabled = true; detailInput[j].className += "z-readonly" } } function detailTotalInit() { let obj = { amount: "", bz1: "", commonCostId: "", costContent: "", costDate: "", createTime: "", id: "", invoiceNums: "", isvalid: "", latestModifyTime: "", } for (let i = 0; i < isTimes.length; i++) { let inpsJe = $("[name='CommonCostDetailDO[" + i + "]$amount']")[0].children[0]; //金额 let inpsPj = $("[name='CommonCostDetailDO[" + i + "]$invoiceNums']")[0].children[0];//单据张数 inpsJe.addEventListener("blur", e => { let event = e || window.event; let inputInfo = event.target.value; if (!(inputInfo > 0)) { z.ui.alertWarning(`金额不能为负数、0`) inpsJe.value = '' } else { obj.amount = inputInfo jeSumInit() } }); inpsPj.addEventListener("blur", e => { let event = e || window.event; let inputInfo = event.target.value; if (!(inputInfo > 0) || (String(inputInfo).indexOf('.') > -1)) { z.ui.alertWarning(`单据张数不能为负数、0、小数`) inpsPj.value = '' } else { obj.invoiceNums = inputInfo } }); } } function jeSumInit(idx) { let jeSum = 0 //金额汇总 for (let i = 0; i < isTimes.length; i++) { if (idx == i) { return } else { let inpsJe = $("[name='CommonCostDetailDO[" + i + "]$amount']")[0].children[0]; //金额 jeSum += Number(inpsJe.value) } } z.ui.input("[name='createReqVO$totalAmount']").setValue(jeSum); z.ui.input("[name='createReqVO$totalAmountCn']").setValue(convertCurrency(jeSum)); } //注册业务保存事件 function bindEvents() { z.workflow.saveBtn.addListener("onSaveClick", saveForm); } function buildQjsjSeq() { let elementsByName = document.getElementsByName("qjsj_seq"); for (let i = 0; i < elementsByName.length; i++) { const seqElement = elementsByName[i]; seqElement.innerHTML = i + 1; } } /* * all 工作流js传递到业务的参数 success执行的方法 * istransfer 工作流js传递到业务的参数 是否转件 * */ function saveForm(all, istransfer) { var postData = z.ui.form.getFormFields($("[name=createReqVO]")); if (postData == false) return; postData.createReqVO.instanceId = z.ui.comm.getUrlParam("flowInstanceId"); var detailList = new Array() for (let key of Object.keys(postData)) { let mealName = postData[key]; if (key.startsWith("CommonCostDetailDO")) { mealName.costDate = Date.parse(mealName.costDate); detailList.push(z.ui.form.childStringify(mealName)); } } postData.createReqVO.detailList = detailList; z.ui.ajax({ type: "post", url: "/CommonCost/update", data: JSON.stringify(postData.createReqVO), contentType: "application/json", success: function () { all({ success: true }); }, error: function () { all({ success: false }); } }) } function setProject(res) { if (res.data) { $("[name='createReqVO$projectId']").val(res.data.id); z.ui.input("[name='createReqVO$projectName']").setValue(res.data.xmmc); z.ui.input("[name='createReqVO$xmbh']").setValue(res.data.xmbh); z.ui.input("[name='createReqVO$xmzrbm']").setValue(res.data.zrbm); } } function initCompany() { z.ui.ajax({ type: "get", url: "/common/company-tree", data: {}, success: function (res) { if (res && res.data.length > 0) { selecttree("[name='paymentCompany']", res.data, clickCompany) } }, error: function () { } }) } function clickCompany(even, treeId, treeNode) { $("[name='createReqVO$paymentCompanyId']").val(treeNode.id); } function clickCostType(even, treeId, treeNode) { $("[name='" + treeNode.treeName + "']").val(treeNode.id); } }());