123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942 |
- (function () {
- var lists = [];
- let viewState = z.ui.comm.getUrlParam("_o");
- let isKp = z.ui.comm.getUrlParam("kp");
- let read = z.ui.comm.getUrlParam("read");
- var totalContractAmount = 0;
- var totalReturnAmount =0;
- var totalInvoiceAmount = 0;
- var contractInvoiceList = [];
- let flowInstanceId = "";
- var contractId = $("[name='contractInvoice$contractId']").val()
- var contractInvoiceId = $("[name='contractInvoice$id']").val()
- var contractMilestoneId = $("[name='contractInvoice$contractMilestoneId']").val()
- var contractMilestoneName = $("[name='contractInvoice$contractMilestoneName']").val()
- let isView = "";
- window.onload = function () {
- flowInstanceId = z.ui.comm.getUrlParam("flowInstanceId");
- bindEvents();
- };
- function bindEvents() {
- initData();
- bindGenerateSerial();
- bindSelectMilestone();
- initContractReturnMoney();
- initContractInvoiceList();
- bindCalcInvoiceAmount();
- bindReturnMoney();
- initReturnReg();
- z.workflow.saveBtn.addListener("onSaveClick", submit);
- }
- function initData(){
- initPayCompany();
- initInvoiceCompany();
- initLpr();
- }
- function initLpr() {
- z.ui.ajax({
- type: "get",
- url: "/common/user-tree",
- data: {},
- success: function (res) {
- if (res && res.length > 0) {
- selecttree("[name='lpr']", res, clickLpr, allowChildClick,null,setLpr);
- }
- },
- error: function () {
- }
- })
- }
- function setLpr(){
- var id = $("[name='contractInvoice$lprId']").val();
- if(id){
- z.ui.selecttree("[name='lpr']").setValue(id);
- }
- }
- function clickLpr(even, treeId, treeNode) {
- if (treeNode.type === 3) {
- $("[name='contractInvoice$lpr']").val(treeNode.name);
- $("[name='contractInvoice$lprId']").val(treeNode.id);
- }
- }
- function initReturnReg(){
- let register = z.ui.comm.getUrlParam("registerReturn");
- if(register === '1'){
- $("[name=addData]").show().removeClass("z-hide").removeClass("z-readonly");
- $("[name=return-header]").css("display", "flex").removeClass("z-hide").removeClass("z-readonly");
- $("[name=return-body]").css("display", "flex").removeClass("z-hide").removeClass("z-readonly");
- $("[name=returnStats]").css("display", "flex").removeClass("z-hide").removeClass("z-readonly");
- }
- }
- function bindGenerateSerial(){
- $("#generateSerial").on("click",function(){
- var serial = $("[name='contractInvoice$invoiceNumber'] input").val();
- var postdata = {"name": '开票单号'};
- 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='contractInvoice$invoiceNumber'] input").val(res.data)
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- }
- })
- },
- 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='contractInvoice$invoiceNumber'] input").val(res.data)
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- }
- })
- }
- })
- }
- function bindSelectMilestone(){
- $("#selectMilestone").click(function () {
- var contractId = $("[name='contractInvoice$contractId']").val();
- selectMilestone(contractId, setMilestone);
- })
- }
- function setMilestone(res) {
- if (res.data) {
- $("[name='contractInvoice$contractMilestoneName']").val(res.data.name);
- $("[name='contractInvoice$contractMilestoneId']").val(res.data.id);
- contractMilestoneName = res.data.name;
- contractMilestoneId = res.data.id;
- }
- }
- function submit(all, istransfer) {
- var invoiceAmount = $('[name="contractInvoice$invoiceAmount"] input').val();
- var contractBalance = $('[name="amount$contractBalance"] input').val();
- if( !contractBalance ){
- contractBalance = $('[name="contract$contractAmount"] input').val();
- if(!contractBalance){
- contractBalance = '0';
- }
- }
- if(parseFloat(invoiceAmount) > parseFloat(contractBalance)){
- all({success: false, errorMsg: "开票金额超出合同余额!"});
- return;
- }
- var postData = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: istransfer});
- if (postData === false) {
- all({success: false});
- return;
- }
- let allInvoiceAmount = 0;
- for (let key of Object.keys(postData)) {
- let mealName = postData[key];
- if (key.startsWith("Contract")) {
- allInvoiceAmount += Number(mealName.invoiceAmount);
- }
- }
- if(contractInvoiceList.length>1){
- if(Number(postData.contractInvoice.invoiceAmount).toFixed(2) != Number(allInvoiceAmount).toFixed(2)){
- all({success: false, errorMsg: "开票金额与所有项目开票金额之和不相等!"});
- return;
- }
- }
- for (let key of Object.keys(postData)) {
- let mealName = postData[key];
- if (key.startsWith("Contract")) {
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/contract-invoice-relation"),
- type: 'put',
- contentType: 'application/json',
- data: JSON.stringify({
- 'id': mealName.id,
- 'returnAmount': mealName.returnAmount,
- 'invoiceAmount': mealName.invoiceAmount
- }),
- success: function (res) {
- },
- error: function () {
- }
- })
- }
- }
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/flow/invoice/update"),
- data: z.ui.form.childStringify(postData),
- success: function () {
- all({success: true});
- },
- error: function () {
- all({success: false});
- }
- })
- }
- function initContractInvoiceList(){
- var contractList = JSON.parse(window.contractList);
- if(!contractList || contractList.length<2){
- $("[name=invoice-header]").hide();
- $("[name=invoice-body]").hide();
- return ;
- }
- if (contractList.length > 0) {
- for (let i = 0; i < contractList.length; i++) {
- let obj = {
- type: contractList[i].contractType || "",
- zrbm: contractList[i].zrbm || "",
- xmjl: contractList[i].xmjl || "",
- virtualAmount: contractList[i].virtualAmount || "",
- invoiceAmount: contractList[i].invoiceAmount || "",
- returnAmount: contractList[i].returnAmount || "",
- id: contractList[i].id || "",
- contractId: contractList[i].contractId || "",
- }
- contractInvoiceList.push(obj)
- }
- }
- updateContractInoviceListView()
- }
- function updateContractInoviceListView() {
- let tbodyQjsq = document.querySelector('[name=contractInvoiceList]')
- let html = ''
- for (let i = 0; i < contractInvoiceList.length; i++) {
- var type = contractInvoiceList[i].type === 1? '主合同': '子合同'
- html += '<tr class="qjsjClass" id="contract_invoce_list' + i + '" style="background:#fff">'
- + '<td name="contract_invoce_list_seq">' + (i + 1) + '</td>'
- + '<td>'
- + '<div class="form-flex">'
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
- + '<input type="hidden" name="Contract[' + i + ']$id" value="'+contractInvoiceList[i].id+'"/>'
- + '<input type="hidden" name="Contract[' + i + ']$contractId" value="'+contractInvoiceList[i].contractId+'"/>'
- + '<div class="z-comp-input" name="Contract[' + i + ']$type">'
- + '<input type="text" value="'+type+'">'
- + '</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="Contract[' + i + ']$zrbm">'
- + '<input type="text" value="'+contractInvoiceList[i].zrbm+'">'
- + '</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="Contract[' + i + ']$xmjl">'
- + '<input type="text" value="'+contractInvoiceList[i].xmjl+'">'
- + '</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="Contract[' + i + ']$virtualAmount">'
- + '<input type="text" class="contractAmount" value="'+contractInvoiceList[i].virtualAmount+'">'
- + '</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="Contract[' + i + ']$invoiceAmount">'
- + '<input type="text" class="contractInvoice" value="'+contractInvoiceList[i].invoiceAmount+'">'
- + '</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="Contract[' + i + ']$returnAmount">'
- + '<input type="text" class="invoiceReturnAmount" value="'+contractInvoiceList[i].returnAmount+'">'
- + '</div>'
- + '</div>'
- + '</div>'
- + '</td>'
- + '<td>';
- if(viewState !== "v") {
- html += '<div id="invoiceEditBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
- + '<span>编辑</span>'
- + '</div>';
- }
- html += '</td>'
- + '</tr>';
- }
- tbodyQjsq.innerHTML = html
- for (let i = 0; i < contractInvoiceList.length; i++) {
- if(viewState !== "v") {
- $("#invoiceEditBtn_" + i).click(function () {
- const span = $(this).find("span");
- const html = span.html();
- var tr = $("#contract_invoce_list" + i);
- var invoiceInput = tr.find("[name='Contract[" + i + "]$invoiceAmount'] input");
- if (html === '编辑') {
- span.html('保存')
- invoiceInput.removeAttr('disabled').removeClass("z-readonly").addClass("z-write");
- return;
- }
- if (html === '保存') {
- var invoiceAmount = invoiceInput.val();
- var returnAmount = tr.find("[name='Contract[" + i + "]$returnAmount'] input").val();
- var id = tr.find("[name='Contract[" + i + "]$id']").val();
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/contract-invoice-relation"),
- type: 'put',
- contentType: 'application/json',
- data: JSON.stringify({
- 'id': id,
- 'returnAmount': returnAmount,
- 'invoiceAmount': invoiceAmount
- }),
- success: function (res) {
- if (res.code === 0) {
- z.ui.alertSuccess("保存成功");
- invoiceInput.addClass("z-readonly").removeClass("z-write");
- invoiceInput[0].disabled = true;
- span.html("编辑")
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- }
- })
- return;
- }
- })
- }
- detailReadonly(i,false,"contract_invoce_list")
- $("#contract_invoce_list" + i).addClass("form-table-disable")
- }
- }
- function bindCalcInvoiceAmount(){
- $("[name='contractInvoice$invoiceAmount'] input").change(function(){
- if(!parseFloat($(this).val())){
- return;
- }
- totalContractAmount = 0;
- let arr = $('.contractAmount');
- for (let i = 0; i < arr.length; i++) {
- if(parseFloat($(arr[i]).val())) {
- totalContractAmount += parseFloat($(arr[i]).val())
- }
- }
- for (let i = 0; i < arr.length; i++) {
- var dom = $(arr[i]).closest("tr").find(".contractInvoice");
- $(dom).val(($(arr[i]).val() / totalContractAmount * $(this).val()).toFixed(2));
- }
- })
- }
- function bindReturnMoney(){
- var arr = $('.contractInvoice');
- for(var i =0 ;i < arr.length;i++){
- $(arr[i]).change(function(){
- calcReturnAmount();
- })
- }
- $("[name=returnMoney]").delegate('.returnAmount',"propertychange input",function(){
- calcReturnAmount();
- })
- // var arr = $('.returnAmount');
- // for(var i =0 ;i < arr.length;i++){
- // $(arr[i]).change(function(){
- // calcReturnAmount();
- // })
- // }
- }
- function calcReturnAmount(){
- calcTotalReturnAmount();
- calcTotalInvoiceAmount()
- let arr = $('.invoiceReturnAmount');
- for (let i = 0; i < arr.length; i++) {
- var ia = $(arr[i]).closest("tr").find(".contractInvoice").val();
- $(arr[i]).val((ia / totalInvoiceAmount * totalReturnAmount).toFixed(2));
- }
- }
- function calcTotalInvoiceAmount(){
- totalInvoiceAmount = 0;
- let arr = $('.contractInvoice');
- for (let i = 0; i < arr.length; i++) {
- if(parseFloat($(arr[i]).val())) {
- totalInvoiceAmount += parseFloat($(arr[i]).val());
- }
- }
- }
- function calcTotalReturnAmount(){
- totalReturnAmount = 0;
- let arr = $('.returnAmount');
- for (let i = 0; i < arr.length; i++) {
- if(parseFloat($(arr[i]).val())) {
- if(parseFloat($(arr[i]).val())){
- totalReturnAmount += parseFloat($(arr[i]).val())
- }
- }
- }
- }
- function initContractReturnMoney(){
- var returnMoney = JSON.parse(window.returnMoneyList);
- if (returnMoney.length > 0) {
- totalReturnAmount = 0;
- for (let i = 0; i < returnMoney.length; i++) {
- totalReturnAmount += returnMoney[i].returnAmount;
- let obj = {
- contractMilestoneName: returnMoney[i].contractMilestoneName || contractMilestoneName,
- contractMilestoneId: returnMoney[i].contractId || contractMilestoneId,
- returnAmount: returnMoney[i].returnAmount || "",
- returnDate: returnMoney[i].returnDate || "",
- bz: returnMoney[i].bz || "",
- id: returnMoney[i].id || "",
- contractId: returnMoney[i].contractId || contractId,
- contractInvoiceId: returnMoney[i].contractInvoiceId || contractInvoiceId,
- sortnum: returnMoney[i].sortnum || ""
- }
- lists.push(obj)
- }
- }
- $("#addData").click(function(){
- addContractReturnMoney();
- calcReturnAmount();
- })
- updateView()
- }
- 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("ContractReturnMoney")) {
- var dataObj = {
- contractMilestoneName: contractMilestoneName,
- contractMilestoneId: contractMilestoneId,
- returnAmount: mealName.returnAmount,
- returnDate: mealName.returnDate,
- bz: mealName.bz,
- id: mealName.id,
- contractId: contractId,
- contractInvoiceId: contractInvoiceId,
- sortnum: lists.length
- }
- lists.push(dataObj);
- }
- }
- }
- function getCurrentDate() {
- const now = new Date();
- const year = now.getFullYear();
- const month = (now.getMonth() + 1).toString().padStart(2, '0');
- const day = now.getDate().toString().padStart(2, '0');
- return `${year}-${month}-${day}`;
- }
- function addContractReturnMoney(){
- var trFragment = document.createDocumentFragment();
- let tbody = document.querySelectorAll('[name=returnMoney] tr')
- let qjsjElements = document.getElementsByName("contract_return_seq");
- var dataObj = {
- contractMilestoneName: contractMilestoneName,
- contractMilestoneId: contractMilestoneId,
- returnAmount: window.invoiceReceivable,
- returnDate: getCurrentDate(),
- bz: "",
- id: "",
- contractId: contractId,
- contractInvoiceId: contractInvoiceId,
- sortnum: ""
- }
- lists.push(dataObj);
- trFragment.appendChild(generateTableTrHtml(lists.length-1))
- var index = lists.length - 1;
- $("[name=returnMoney]").append(trFragment)
- $("#delBtn_" + index).click(function () {
- var i = this.id.substring(this.id.indexOf("_") + 1)
- var tr =$("#contract_return_" + i);
- var returnId = tr.find("[name='ContractReturnMoney["+i+"]$id']").val();
- z.ui.confirm("compid").init({
- content: "确定删除吗?",
- onConfirm: function () {
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/contract-return-money?id="+returnId),
- type: 'delete',
- contentType: 'application/json',
- data: {},
- success: function (res) {
- if(res.code === 0){
- z.ui.alertSuccess("删除成功");
- var element = document.getElementById("contract_return_" + i);
- element.remove();
- buildSeq();
- updateList();
- //lists.splice(i,1);
- updateView();
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- }
- })
- },
- onCancel: function () {
- }
- })
- })
- $("#editBtn_" + index).click(function () {
- var i = this.id.substring(this.id.indexOf("_") + 1)
- const span = $(this).find("span");
- const html = span.html();
- var tr =$("#contract_return_" + i);
- if (html === '保存') {
- var returnAmount = tr.find("[name='ContractReturnMoney["+i+"]$returnAmount'] input").val();
- var returnId = tr.find("[name='ContractReturnMoney["+i+"]$id']").val();
- var dom = $("[name^='ContractReturnMoney['][name$='$returnAmount'] input");
- var totalReturnAmount = 0;
- for (let j = 0; j < dom.length; j++) {
- var tmp = $(dom[j]).val()
- if(parseFloat(tmp)){
- totalReturnAmount += parseFloat(tmp);
- }
- }
- var invoiceAmount = $("[name='contractInvoice$invoiceAmount'] input").val();
- if(!returnAmount){
- z.ui.alertWarning("请填写回款金额");
- return;
- }
- if(!parseFloat(returnAmount)){
- z.ui.alertWarning("回款金额有误");
- return;
- }
- if(parseFloat(invoiceAmount) && (totalReturnAmount > parseFloat(invoiceAmount))){
- z.ui.alertWarning("回款金额不能超过开票金额");
- return;
- }
- var returnDate = tr.find("[name='ContractReturnMoney["+i+"]$returnDate'] input").val();
- if(!returnDate){
- z.ui.alertWarning("请填写回款日期");
- return;
- }
- var bz =tr.find("[name='ContractReturnMoney["+i+"]$bz'] input").val();
- var formInfo = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: false});
- var relationList = [];
- for (let key of Object.keys(formInfo)) {
- let mealName = formInfo[key];
- if (key.startsWith("Contract[")) {
- relationList.push(z.ui.form.childStringify(mealName));
- }
- }
- z.ui.loading(true, true, 0, "保存中...");
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/contract-return-money"),
- type: 'post',
- contentType: 'application/json',
- data: JSON.stringify({
- 'id': returnId,
- 'contractId' : contractId,
- 'contractInvoiceId' : contractInvoiceId,
- 'contractMilestoneId' : contractMilestoneId,
- 'contractMilestoneName' : contractMilestoneName,
- 'returnAmount': returnAmount,
- 'returnDate': returnDate,
- 'bz': bz,
- 'relationList': relationList
- }),
- success: function (res) {
- z.ui.loading(false);
- if(res.code === 0){
- if(!returnId){
- tr.find("[name='ContractReturnMoney["+i+"]$id']").val(res.data);
- }
- z.ui.alertSuccess("回款添加成功");
- detailReadonly(i, false,"contract_return_")
- $("#addData").removeAttr('disabled')
- tr.addClass("form-table-disable")
- span.html('编辑');
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- z.ui.loading(false);
- }
- })
- } else if (html === '编辑') {
- span.html('保存')
- detailWrite(i);
- $("#addData").attr('disabled', "true");
- tr.removeClass("form-table-disable")
- }
- })
- z.ui.date("[name='ContractReturnMoney[" + (lists.length-1) + "]$returnDate']").init()
- buildSeq();
- for (let i = 0; i < tbody.length; i++) {
- z.ui.date("[name='ContractReturnMoney[" + i + "]$returnDate']").init({
- done: function (value, date, endDate) {
- //改变日期后触发
- console.log(value);
- }
- });
- }
- }
- function buildSeq() {
- let elementsByName = document.getElementsByName("contract_return_seq");
- for (let i = 0; i < elementsByName.length; i++) {
- const seqElement = elementsByName[i];
- seqElement.innerHTML = i + 1;
- }
- }
- function initInvoiceCompany(){
- z.ui.ajax({
- type: "get",
- url: "/common/company-tree",
- data: {},
- success: function (res) {
- if(res && res.code === 0 && res.data.length > 0){
- selecttree("[name='invoiceCompany']",res.data,clickInvoiceCompany,null,null,setInvoiceCompany)
- }
- },
- error: function () {
- }
- })
- }
- function setInvoiceCompany(){
- var id = $("[name='contractInvoice$invoiceCompanyId']").val();
- if(id){
- z.ui.selecttree("[name='invoiceCompany']").setValue(id);
- }
- }
- function clickInvoiceCompany(even, treeId, treeNode) {
- $("[name='contractInvoice$invoiceCompany']").val(treeNode.name);
- $("[name='contractInvoice$invoiceCompanyId']").val(treeNode.id);
- }
- function initPayCompany(){
- z.ui.ajax({
- type: "get",
- url: "/customer-tree",
- data: {},
- success: function (res) {
- if(res && res.code === 0 && res.data.length > 0){
- selecttree("[name='payCompany']",res.data,clickPayCompany,null,null,setPayCompany);
- }
- },
- error: function () {
- }
- })
- }
- function setPayCompany(){
- var id = $("[name='contractInvoice$payCompanyId']").val();
- if(id){
- z.ui.selecttree("[name='payCompany']").setValue(id);
- }
- }
- function clickPayCompany(even, treeId, treeNode) {
- $("[name='contractInvoice$payCompany']").val(treeNode.name);
- $("[name='contractInvoice$payCompanyId']").val(treeNode.id);
- $("[name='contractInvoice$payTaxNumber'] input").val(treeNode.extendData.taxNumber);
- $("[name='contractInvoice$payAddress'] input").val(treeNode.extendData.payAddress);
- $("[name='contractInvoice$payBank'] input").val(treeNode.extendData.bankaccount);
- }
- function updateView() {
- let tbodyQjsq = document.querySelector('[name=returnMoney]')
- 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 += '<tr class="qjsjClass" id="contract_return_' + i + '" style="background:#fff">'
- + '<td name="contract_return_seq">' + (i + 1) + '</td>'
- + '<td>'
- + '<div class="form-flex">'
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
- + '<input type="hidden" name="ContractReturnMoney[' + i + ']$id" value="'+lists[i].id+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + i + ']$sortnum" value="'+lists[i].sortnum+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + i + ']$contractInvoiceId" value="'+lists[i].contractInvoiceId+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + i + ']$contractId" value="'+lists[i].contractId+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + i + ']$contractMilestoneId" value="'+lists[i].contractMilestoneId+'"/>'
- + '<div class="z-comp-input" name="ContractReturnMoney[' + i + ']$returnAmount">'
- + '<input type="text" class="returnAmount" value="'+lists[i].returnAmount+'">'
- + '</div>'
- + '</div>'
- + '</div>'
- + '</td>'
- + '<td>'
- + '<div class="form-flex">'
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
- + '<div class="z-comp-date" name="ContractReturnMoney[' + i + ']$returnDate">'
- + '<input type="text" value="'+lists[i].returnDate+'">'
- + '</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="ContractReturnMoney[' + i + ']$bz">'
- + '<input type="text" value="'+lists[i].bz+'">'
- + '</div>'
- + '</div>'
- + '</div>'
- + '</td>'
- + '<td>'
- + '<div style="display: flex;white-space: nowrap">'
- + '<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></div>'
- + '</td></tr>';
- }
- tbodyQjsq.innerHTML = html
- for (let i = 0; i < lists.length; i++) {
- z.ui.date("[name='ContractReturnMoney[" + i + "]$returnDate']").init()
- $("#delBtn_" + i).click(function () {
- var tr =$("#contract_return_" + i);
- var returnId = tr.find("[name='ContractReturnMoney["+i+"]$id']").val();
- z.ui.confirm("compid").init({
- content: "确定删除吗?",
- onConfirm: function () {
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/contract-return-money?id="+returnId),
- type: 'delete',
- contentType: 'application/json',
- data: {},
- success: function (res) {
- if(res.code === 0){
- z.ui.alertSuccess("删除成功");
- var element = document.getElementById("contract_return_" + i);
- element.remove();
- buildSeq();
- updateList();
- //lists.splice(i,1);
- updateView();
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- }
- })
- },
- onCancel: function () {
- }
- })
- })
- $("#editBtn_" + i).click(function () {
- const span = $(this).find("span");
- const html = span.html();
- var tr =$("#contract_return_" + i);
- var returnAmount = tr.find("[name='ContractReturnMoney["+i+"]$returnAmount'] input").val();
- var returnDate = tr.find("[name='ContractReturnMoney["+i+"]$returnDate'] input").val();
- var returnId = tr.find("[name='ContractReturnMoney["+i+"]$id']").val();
- var bz =tr.find("[name='ContractReturnMoney["+i+"]$bz'] input").val();
- var formInfo = z.ui.form.getFormFields("[name=flow-form]", {validatorRequired: false});
- var relationList = [];
- for (let key of Object.keys(formInfo)) {
- let mealName = formInfo[key];
- if (key.startsWith("Contract[")) {
- relationList.push(z.ui.form.childStringify(mealName));
- }
- }
- if (html === '保存') {
- z.ui.loading(true, true, 0, "保存中...");
- z.ui.ajax({
- url: z.ui.comm.getEntranceUrl("/contract-return-money"),
- type: 'post',
- contentType: 'application/json',
- data: JSON.stringify({
- 'id': returnId,
- 'contractId' : contractId,
- 'contractInvoiceId' : contractInvoiceId,
- 'contractMilestoneId' : contractMilestoneId,
- 'contractMilestoneName' : contractMilestoneName,
- 'returnAmount': returnAmount,
- 'returnDate': returnDate,
- 'bz': bz,
- 'relationList': relationList
- }),
- success: function (res) {
- z.ui.loading(false)
- if(res.code === 0){
- if(!returnId){
- tr.find("[name='ContractReturnMoney["+i+"]$id']").val(res.data);
- }
- z.ui.alertSuccess("回款添加成功");
- detailReadonly(i, false,"contract_return_")
- $("#addData").removeAttr('disabled')
- tr.addClass("form-table-disable")
- span.html('编辑');
- } else {
- z.ui.alertWarning(res.msg);
- }
- },
- error: function () {
- z.ui.loading(false)
- }
- })
- } else if (html === '编辑'){
- span.html('保存')
- detailWrite(i);
- $("#addData").attr('disabled', "true");
- tr.removeClass("form-table-disable")
- }
- })
- detailReadonly(i,false,"contract_return_")
- $("#contract_return_" + i).addClass("form-table-disable")
- }
- // detailTotalInit()
- }
- 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("contract_return_" + i);
- let detailInput = detailElement.getElementsByTagName("input");
- for (let j = 0; j < detailInput.length; j++) {
- detailInput[j].disabled = false;
- $(detailInput[j]).removeClass(" z-readonly")
- }
- }
- function generateTableTrHtml(index) {
- var trDom = document.createElement("tr");
- trDom.style.backgroundColor = "#fff";
- trDom.id = "contract_return_" + index;
- trDom.className = 'qjsjClass';
- trDom.innerHTML = '<td name="contract_return_seq">' + (index + 1) + '</td>'
- + '<td>'
- + '<div class="form-flex">'
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
- + '<input type="hidden" name="ContractReturnMoney[' + index + ']$id" value="'+lists[index].id+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + index + ']$sortnum" value="'+lists[index].sortnum+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + index + ']$contractInvoiceId" value="'+lists[index].contractInvoiceId+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + index + ']$contractId" value="'+lists[index].contractId+'"/>'
- + '<input type="hidden" name="ContractReturnMoney[' + index + ']$contractMilestoneId" value="'+lists[index].contractMilestoneId+'"/>'
- + '<div class="z-comp-input" name="ContractReturnMoney[' + index + ']$returnAmount">'
- + '<input type="text" class="returnAmount" value="'+lists[index].returnAmount+'">'
- + '</div>'
- + '</div>'
- + '</div>'
- + '</td>'
- + '<td>'
- + '<div class="form-flex">'
- + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
- + '<div class="z-comp-date" name="ContractReturnMoney[' + index + ']$returnDate">'
- + '<input type="text" value="'+lists[index].returnDate+'">'
- + '</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="ContractReturnMoney[' + index + ']$bz">'
- + '<input type="text" value="">'
- + '</div>'
- + '</div>'
- + '</div>'
- + '</td>'
- + '<td>'
- + '<div style="display: flex;white-space: nowrap">'
- + '<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></div>'
- + '</td>';
- return trDom;
- }
- }())
|