|
@@ -1,4 +1,5 @@
|
|
|
(function () {
|
|
|
+ var addDataThat = null;
|
|
|
let isTimes = []
|
|
|
let costTypeJSON = JSON.parse(document.querySelector('#costTypeJSON').value)
|
|
|
let detailProjectIndex = 0;
|
|
@@ -7,8 +8,10 @@
|
|
|
bindEvents();
|
|
|
let timeObject = document.querySelector('#detailList')
|
|
|
let arrays = JSON.parse(timeObject.value)
|
|
|
+ addDataThat = $("#addData")
|
|
|
//根据返回的json对象渲染
|
|
|
$("#addData").click(function () {
|
|
|
+ addDataThat.attr('disabled', "true");
|
|
|
let obj = {
|
|
|
costType: "",
|
|
|
costContent: "",
|
|
@@ -18,12 +21,12 @@
|
|
|
id: "",
|
|
|
projectId: "",
|
|
|
projectName: "",
|
|
|
- projectDeptName: ""
|
|
|
+ projectDeptName: "",
|
|
|
+ useMoneyId:""
|
|
|
}
|
|
|
isTimes.push(obj)
|
|
|
generateTableTrHtml(isTimes.length-1)
|
|
|
buildQjsjSeq();
|
|
|
- detailTotalInit();
|
|
|
})
|
|
|
if (arrays.length > 0) {
|
|
|
for (let i = 0; i < arrays.length; i++) {
|
|
@@ -36,11 +39,14 @@
|
|
|
id: arrays[i].id?arrays[i].id:'',
|
|
|
projectId: arrays[i].projectId || '',
|
|
|
projectName: arrays[i].projectName || '',
|
|
|
- projectDeptName: arrays[i].projectDeptName || ''
|
|
|
+ projectDeptName: arrays[i].projectDeptName || '',
|
|
|
+ useMoneyId: arrays[i].useMoneyId ?arrays[i].useMoneyId:'',
|
|
|
}
|
|
|
isTimes.push(obj)
|
|
|
}
|
|
|
- updateView()
|
|
|
+ for (let i = 0; i < isTimes.length; i++) {
|
|
|
+ generateTableTrHtml(i);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//注册业务保存事件
|
|
@@ -61,137 +67,6 @@
|
|
|
$("#glcghtml").html(html);
|
|
|
z.workflow.saveBtn.addListener("onSaveClick", saveForm);
|
|
|
}
|
|
|
-
|
|
|
- function updateView() {
|
|
|
- let tbodyQjsq = document.querySelector('.tbodyQjsq')
|
|
|
- let html = ''
|
|
|
- for (let i = 0; i < isTimes.length; i++) {
|
|
|
- html += '<tr class="qjsjClass" id="qjsj_' + i + '" style="background:#fff">'
|
|
|
- + '<td name="qjsj_seq">' + (i + 1) + '</td>'
|
|
|
- + '<td style="display:none">'
|
|
|
- + '<div class="form-flex">'
|
|
|
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
- + '<div class="z-comp-date" name="UserMoneyDetailDO[' + i + ']$id">'
|
|
|
- + '<input type="text" value="' + isTimes[i].id + '">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-flex">'
|
|
|
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
- + '<input type="hidden" name="UserMoneyDetailDO[' + i + ']$projectId" value="">'
|
|
|
- + '<div class="z-comp-input z-readonly" id="selectProject_' + i + '" name="UserMoneyDetailDO[' + i + ']$projectName">'
|
|
|
- + '<input readonly type="text" value="">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-item">'
|
|
|
- + '<div class="z-comp-input z-readonly" name="UserMoneyDetailDO[' + i + ']$xmzrbm">'
|
|
|
- + '<input readonly type="text" value="">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-flex">'
|
|
|
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
- + '<div class="z-comp-selecttree" name="costType[' + i + ']">'
|
|
|
- + '<input type="hidden" name="UserMoneyDetailDO[' + i + ']$costType">'
|
|
|
- + '<div class="z-inputselect-bar">'
|
|
|
- + '<span></span><i></i>'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-item">'
|
|
|
- + '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$costContent">'
|
|
|
- + '<input type="text" value="' + isTimes[i].costContent + '">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-item">'
|
|
|
- + '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$invoiceNums">'
|
|
|
- + '<input type="number" value="' + isTimes[i].invoiceNums + '">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-item">'
|
|
|
- + '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$amount">'
|
|
|
- + '<input type="number" value="' + isTimes[i].amount + '">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div class="form-item">'
|
|
|
- + '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$remark">'
|
|
|
- + '<input type="text" value="' + isTimes[i].remark + '">'
|
|
|
- + '</div>'
|
|
|
- + '</div>'
|
|
|
- + '</td>'
|
|
|
- + '<td>'
|
|
|
- + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
|
|
|
- + '<span>删除</span>'
|
|
|
- + '</div>'
|
|
|
- + '</td></tr>';
|
|
|
- }
|
|
|
- tbodyQjsq.innerHTML = html
|
|
|
- var userData="";
|
|
|
- z.ui.ajax({
|
|
|
- type: "get",
|
|
|
- url: "/common/user-tree",
|
|
|
- data: {},
|
|
|
- success: function (res) {
|
|
|
- if (res && res.length > 0) {
|
|
|
- userData=res;
|
|
|
- }
|
|
|
- for (let i = 0; i < isTimes.length; i++) {
|
|
|
- costTypeJSON.forEach(obj => {
|
|
|
- obj.treeName = 'UserMoneyDetailDO[' + i + ']$costType';
|
|
|
- })
|
|
|
- selecttree("[name='costType[" + i + "]']", costTypeJSON, clickCostType, allowChildClick)
|
|
|
- z.ui.selecttree("[name='costType[" + i + "]']").setValue(isTimes[i].costType);
|
|
|
- $("[name='UserMoneyDetailDO[" + i + "]$costType']").val(isTimes[i].costType);
|
|
|
- $("[name='UserMoneyDetailDO[" + i + "]$projectId']").val(isTimes[i].projectId);
|
|
|
- z.ui.input("[name='UserMoneyDetailDO[" + i + "]$projectName']").setValue(isTimes[i].projectName);
|
|
|
- z.ui.input("[name='UserMoneyDetailDO[" + i + "]$xmzrbm']").setValue(isTimes[i].projectDeptName);
|
|
|
- $("#selectProject_" + i).click(function () {
|
|
|
- detailProjectIndex = i;
|
|
|
- selectProjectAll(null, setProject);
|
|
|
- })
|
|
|
- $("#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 (z.ui.comm.getUrlParam("_o") == "v"||$("#sfsqd").val()=='2') {
|
|
|
- detailReadonly(i)
|
|
|
- }
|
|
|
- }
|
|
|
- detailTotalInit()
|
|
|
- },
|
|
|
- error: function () {
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- }
|
|
|
function generateTableTrHtml(i) {
|
|
|
var trDom = document.createElement("tr");
|
|
|
trDom.style.backgroundColor = "#fff";
|
|
@@ -202,7 +77,7 @@
|
|
|
+ '<div class="form-flex">'
|
|
|
+ '<div class="form-item" style="width: 100%;margin-right: 5px;">'
|
|
|
+ '<div class="z-comp-date" name="UserMoneyDetailDO[' + i + ']$id">'
|
|
|
- + '<input type="text" value="' + isTimes[i].id + '">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ '</div>'
|
|
|
+ '</div>'
|
|
|
+ '</div>'
|
|
@@ -239,32 +114,35 @@
|
|
|
+ '<td>'
|
|
|
+ '<div class="form-item">'
|
|
|
+ '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$costContent">'
|
|
|
- + '<input type="text" value="' + isTimes[i].costContent + '">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ '</div>'
|
|
|
+ '</div>'
|
|
|
+ '</td>'
|
|
|
+ '<td>'
|
|
|
+ '<div class="form-item">'
|
|
|
+ '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$invoiceNums">'
|
|
|
- + '<input type="number" value="' + isTimes[i].invoiceNums + '">'
|
|
|
+ + '<input type="number" value="">'
|
|
|
+ '</div>'
|
|
|
+ '</div>'
|
|
|
+ '</td>'
|
|
|
+ '<td>'
|
|
|
+ '<div class="form-item">'
|
|
|
+ '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$amount">'
|
|
|
- + '<input type="number" value="' + isTimes[i].amount + '">'
|
|
|
+ + '<input type="number" value="">'
|
|
|
+ '</div>'
|
|
|
+ '</div>'
|
|
|
+ '</td>'
|
|
|
+ '<td>'
|
|
|
+ '<div class="form-item">'
|
|
|
+ '<div class="z-comp-input" name="UserMoneyDetailDO[' + i + ']$remark">'
|
|
|
- + '<input type="text" value="' + isTimes[i].remark + '">'
|
|
|
+ + '<input type="text" value="">'
|
|
|
+ '</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>'
|
|
@@ -276,10 +154,60 @@
|
|
|
obj.treeName = 'UserMoneyDetailDO[' + i + ']$costType';
|
|
|
})
|
|
|
selecttree("[name='costType[" + i + "]']", costTypeJSON, clickCostType, allowChildClick)
|
|
|
+ z.ui.selecttree("[name='costType[" + i + "]']").setValue(isTimes[i].costType);
|
|
|
+ $("[name='UserMoneyDetailDO[" + i + "]$costType']").val(isTimes[i].costType);
|
|
|
+ if (!(!isTimes[i].id || isTimes[i].id.trim() === '')) {
|
|
|
+ $("[name='UserMoneyDetailDO[" + i + "]$id']").val(isTimes[i].id);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].projectId || isTimes[i].projectId.trim() === '')) {
|
|
|
+ $("[name='UserMoneyDetailDO[" + i + "]$projectId']").val(isTimes[i].projectId);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].projectName || isTimes[i].projectName.trim() === '')) {
|
|
|
+ z.ui.input("[name='UserMoneyDetailDO[" + i + "]$projectName']").setValue(isTimes[i].projectName);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].projectDeptName || isTimes[i].projectDeptName.trim() === '')) {
|
|
|
+ z.ui.input("[name='UserMoneyDetailDO[" + i + "]$xmzrbm']").setValue(isTimes[i].projectDeptName);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].costContent || isTimes[i].costContent.trim() === '')) {
|
|
|
+ z.ui.input("[name='UserMoneyDetailDO[" + i + "]$costContent']").setValue(isTimes[i].costContent);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].invoiceNums )) {
|
|
|
+ z.ui.input("[name='UserMoneyDetailDO[" + i + "]$invoiceNums']").setValue(isTimes[i].invoiceNums);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].amount)) {
|
|
|
+ z.ui.input("[name='UserMoneyDetailDO[" + i + "]$amount']").setValue(isTimes[i].amount);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].remark || isTimes[i].remark.trim() === '')) {
|
|
|
+ z.ui.input("[name='UserMoneyDetailDO[" + i + "]$remark']").setValue(isTimes[i].remark);
|
|
|
+ }
|
|
|
+ if (!(!isTimes[i].useMoneyId || isTimes[i].useMoneyId.trim() === '')) {
|
|
|
+ $("#editBtn_" + i).find("span").html("编辑")
|
|
|
+ detailReadonly(i, false)
|
|
|
+ $("#qjsj_" + i).addClass("form-table-disable")
|
|
|
+ }
|
|
|
$("#selectProject_" + i).click(function () {
|
|
|
detailProjectIndex = i;
|
|
|
selectProjectAll(null, setProject);
|
|
|
})
|
|
|
+ detailTotalInit(i)
|
|
|
+ $("#editBtn_" + i).click(function () {
|
|
|
+ const span = $(this).find("span");
|
|
|
+ const html = span.html();
|
|
|
+ if (html === '编辑') {
|
|
|
+ span.html('保存')
|
|
|
+ detailWrite(i);
|
|
|
+ addDataThat.attr('disabled', "true");
|
|
|
+ $("#qjsj_" + i).removeClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (html === '保存') {
|
|
|
+ span.html('编辑')
|
|
|
+ detailReadonly(i, false)
|
|
|
+ addDataThat.removeAttr('disabled')
|
|
|
+ $("#qjsj_" + i).addClass("form-table-disable")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ })
|
|
|
$("#delBtn_" + i).click(function () {
|
|
|
z.ui.confirm("compid").init({
|
|
|
content: "确定删除吗?",
|
|
@@ -287,9 +215,9 @@
|
|
|
var element = document.getElementById("qjsj_" + i);
|
|
|
element.remove();
|
|
|
buildQjsjSeq();
|
|
|
- isTimes.splice(i, 1)
|
|
|
- updateView()
|
|
|
- jeSumInit(i)
|
|
|
+ isTimes = isTimes.splice(i, 1)
|
|
|
+ jeSumInit(i);
|
|
|
+ addDataThat.removeAttr('disabled')
|
|
|
},
|
|
|
onCancel: function () {
|
|
|
|
|
@@ -298,12 +226,11 @@
|
|
|
|
|
|
})
|
|
|
}
|
|
|
- function detailReadonly(i) {
|
|
|
- //财务审核时可以核减修改金额
|
|
|
- //if (finance === 1) {
|
|
|
- //如果单据金额发生修改就代表核减了
|
|
|
- //}
|
|
|
- $("#delBtn_" + i).css("display", "none");
|
|
|
+ function detailReadonly(i, isBool = true) {
|
|
|
+ if (isBool) {
|
|
|
+ $("#delBtn_" + i).css("display", "none");
|
|
|
+ $("#editBtn_" + i).css("display", "none");
|
|
|
+ }
|
|
|
$("[name='costType[" + i + "]']").addClass("z-readonly");
|
|
|
$("#selectProject_" + i).css("pointer-events", "none");
|
|
|
$("[name='costType[" + i + "]']").css("pointer-events", "none");
|
|
@@ -314,7 +241,19 @@
|
|
|
detailInput[j].className += "z-readonly"
|
|
|
}
|
|
|
}
|
|
|
- function detailTotalInit() {
|
|
|
+ function detailWrite(i) {
|
|
|
+ //财务审核时可以核减修改金额
|
|
|
+ $("[name='costType[" + i + "]']").removeClass("z-readonly");
|
|
|
+ $("#selectProject_" + i).css("pointer-events", "auto");
|
|
|
+ $("[name='costType[" + i + "]']").css("pointer-events", "auto");
|
|
|
+ let detailElement = document.getElementById("qjsj_" + i);
|
|
|
+ let detailInput = detailElement.getElementsByTagName("input");
|
|
|
+ for (let j = 0; j < detailInput.length; j++) {
|
|
|
+ detailInput[j].disabled = false;
|
|
|
+ $(detailInput[j]).removeClass("z-readonly")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function detailTotalInit(i) {
|
|
|
let obj = {
|
|
|
costType: "",
|
|
|
costContent: "",
|
|
@@ -324,33 +263,32 @@
|
|
|
id: "",
|
|
|
projectId: "",
|
|
|
projectName: "",
|
|
|
- projectDeptName: ""
|
|
|
- }
|
|
|
- for (let i = 0; i < isTimes.length; i++) {
|
|
|
- let inpsJe = $("[name='UserMoneyDetailDO[" + i + "]$amount']")[0].children[0]; //金额
|
|
|
- let inpsPj = $("[name='UserMoneyDetailDO[" + 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
|
|
|
- }
|
|
|
- });
|
|
|
+ projectDeptName: "",
|
|
|
+ useMoneyId:""
|
|
|
}
|
|
|
+ let inpsJe = $("[name='UserMoneyDetailDO[" + i + "]$amount']")[0].children[0]; //金额
|
|
|
+ let inpsPj = $("[name='UserMoneyDetailDO[" + 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 buildQjsjSeq() {
|
|
|
let elementsByName = document.getElementsByName("qjsj_seq");
|