(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);
}
}());