$.event.special.valuechange = { teardown: function (namespaces) { $(this).unbind('.valuechange'); }, handler: function (e) { $.event.special.valuechange.triggerChanged($(this)); }, add: function (obj) { $(this).on('keyup.valuechange cut.valuechange paste.valuechange input.valuechange', obj.selector, $.event.special.valuechange.handler) }, triggerChanged: function (element) { var current = element[0].contentEditable === 'true' ? element.html() : element.val() , previous = typeof element.data('previous') === 'undefined' ? element[0].defaultValue : element.data('previous'); if (current !== previous) { element.trigger('valuechange', [element.data('previous')]); element.data('previous', current); } } }; function escapeTags( str ) { return String( str ) .replace( /&/g, '&' ) .replace( /"/g, '"' ) .replace( /'/g, ''' ) .replace( //g, '>' ); } $(function(){ toastr.options = { "closeButton": false, "debug": false, "newestOnTop": false, "progressBar": false, "positionClass": "toast-top-right", "preventDuplicates": false, "onclick": null, "showDuration": "300", "hideDuration": "1000", "timeOut": "5000", "extendedTimeOut": "1000", "showEasing": "swing", "hideEasing": "linear", "showMethod": "fadeIn", "hideMethod": "fadeOut" }; var table = $('#tablelist').removeAttr('width').DataTable({ columnDefs: [ { className: 'allwidth1', width: 150, targets: [0,2] }, { className: 'allwidth2', width: 200, targets: 1 }, { className: 'allwidth3',width: 100, targets: '_all' } ], fixedColumns: { leftColumns: 4 } }); //提出单位编辑 $('#addcompany').click(function(){ var newinput = '
'; $('#companyadddiv').append(newinput); }); $('#updatecompany').click(function(){ $(this).attr('disabled','disabled'); var addcompanyArr = new Array(); $('#companyadddiv').find('.form-control').each(function(){ addcompanyArr.push($(this).val()); }); var updatecompanyArr = new Array(); var updatecompanyidArr = new Array(); $('#companyshow').find('.form-control').each(function(){ updatecompanyArr.push($(this).val()); updatecompanyidArr.push($(this).attr('id')); }); $.ajax({ type: 'post', url: '/change/api/update/company', data:{ uci:updatecompanyidArr.length !== 0 ? updatecompanyidArr : '',uc:updatecompanyArr.length ? updatecompanyArr : '',ac:addcompanyArr.length !== 0 ? addcompanyArr : ''}, dataType: 'json', success: function(result){ if(result.code == 200){ $('#companyadddiv').html(''); $('#companyshow').append(result.addhtml); $('#company').html(result.selecthtml); $('#editcompany').modal('hide'); toastr.success('变更单位已更新'); }else{ toastr.error('添加或编辑单位出错'); } $('#updatecompany').attr('disabled',false); } }) }); //变更清单添加 $('.checklist').on('click',function(){ if($(this).find('.listcheckbox').prop("checked")){ $(this).find('.listcheckbox').prop("checked",false); $(this).removeClass('success'); }else{ $(this).find('.listcheckbox').prop("checked",true); $(this).addClass('success'); } }); $('.listcheckbox').on('click',function(){ if($(this).prop("checked")){ $(this).prop("checked",false); $(this).parents('.checklist').removeClass('success'); }else{ $(this).prop("checked",true); $(this).parents('.checklist').addClass('success'); } }); //自动添加清单数据到localstorage里 if($('#changelist').val() != ''){ var clist = $('#changelist').val().split(','); $.each(clist,function(k,v){ var vmsg = v.split('_'); localStorage.setItem('update_'+$('#cid').val()+'_clistid_'+vmsg[0],vmsg[1]); }) } if($('#changewhitelist').val() != ''){ var cwlist = $('#changewhitelist').val().split(','); $.each(cwlist,function(k,v){ var vmsg = v.split('->'); localStorage.setItem('update_'+ $('#cid').val() +'_new_clistid_'+vmsg[0],vmsg[1]); }) } $('.addlistbtn').on('click',function(){ var html = ''; //获取清单列表 var totalnum = 0; var sctotalnum = 0; var clist = new Array(); $('.checklist').find('.listcheckbox').each(function(){ if($(this).prop("checked")){ var id = $(this).parents('.checklist').children('td').eq(0).text(); var num = $(this).parents('.checklist').children('td').eq(1).text(); var name = $(this).parents('.checklist').children('td').eq(2).text(); var unit = $(this).parents('.checklist').children('td').eq(3).text(); var price = $(this).parents('.checklist').children('td').eq(4).text(); var oamount = $(this).parents('.checklist').children('td').eq(5).text(); var ototal = $(this).parents('.checklist').children('td').eq(6).text(); totalnum += parseFloat(ototal); //获取localstorage里的数据 var scnum = ''; var sctotal = 0; if(localStorage.hasOwnProperty('update_'+$('#cid').val()+'_clistid_'+id)){ scnum = localStorage.getItem('update_'+$('#cid').val()+'_clistid_'+id); sctotal = parseFloat(price)*parseFloat(scnum); sctotalnum += parseFloat(sctotal); clist.push(id+'_'+scnum); } sctotal = sctotal != 0 ? parseFloat(sctotal).toFixed(2) : ''; html += ''+ num +''+ name +''+ unit +''+ price +''+ oamount +''+ ototal +''+ sctotal +''; } }); //添加到form中list $('#changelist').val(clist.join(',')); //获取localstorage里的数据 var newid = 1; var addArr = new Array(); var storage = window.localStorage; var n = 20+$('#cid').val().toString().length; for(var i = 0; i < storage.length; i++){ var key = storage.key(i); if(key.substring(0,n) == 'update_'+ $('#cid').val() +'_new_clistid_'){ //排序 newid++; var id2 = key.split('_'); addArr.push(id2[4]); } } addArr.sort(function(a,b){ return a - b; }); var wlist = new Array(); var optionselect = ['m','km','m2','m3','kg','t','m3·km','总额','月','项','处','个','根','棵','块','每一试桩','桥长米','公路公里','株','组','座','元','工日','套','台班','艘班','m/处','m/道','m/座','m2/m','m3/m','m3/处','根/米','亩','m3/m2']; //按添加顺序输出localstorage的内容 for(var z= 0; z< addArr.length; z++){ var trlist = storage.getItem('update_'+ $('#cid').val() +'_new_clistid_'+addArr[z]).split(';'); var num2 = trlist[0]; var name2 = trlist[1]; var unit2 = trlist[2]; var price2 = trlist[3]; var oamount2 = trlist[4]; var scnum = trlist[5]; //不为空的就显示出来,全部为空的就自动删除 if(num2 != '' || name2 != '' || price2 != '' || oamount2 != '' || scnum != ''){ wlist.push(addArr[z]+'->'+trlist.join(';')); var ototal2 = price2 != '' && oamount2 != '' ? parseFloat(parseFloat(price2)*parseFloat(oamount2)).toFixed(2) : ''; totalnum = ototal2 != '' ? totalnum + parseFloat(ototal2) : totalnum; var sctotal2 = price2 != '' && scnum != '' ? parseFloat(parseFloat(price2)*parseFloat(scnum)).toFixed(2) : ''; sctotalnum = sctotal2 != '' ? sctotalnum + parseFloat(sctotal2) : sctotalnum; var optionlist = ''; for(var j = 0; j < optionselect.length; j++){ if(unit2 == optionselect[j]){ optionlist += ''; }else{ optionlist += ''; } } html += ''+ ototal2 +''+ sctotal2 +''; } } //添加到form中list $('#changewhitelist').val(wlist.join(',')); sctotalnum = sctotalnum != 0 ? sctotalnum.toFixed(2) : ''; //获取添加的空白清单 if($(this).hasClass('btn-default')){ var optionlist2 = ''; for(var j = 0; j < optionselect.length; j++){ optionlist2 += ''; } var addtr = ''; html += addtr; } $('.ctatalamount').eq(1).text(sctotalnum); $('.otatalamount').eq(1).text(totalnum != 0 ? totalnum.toFixed(2) : ''); //html += '合计'+ totalnum.toFixed(2) +''+ sctotalnum +''; table.destroy(); $('#list').html(html); table = $('#tablelist').removeAttr('width').DataTable({ columnDefs: [ { className: 'allwidth1', width: 150, targets: [0,2] }, { className: 'allwidth2', width: 200, targets: 1 }, { className: 'allwidth3', width: 100, targets: '_all' } ], fixedColumns: { leftColumns: 4 } }); $('#addlist').modal('hide'); }); $('body').on("valuechange", '.clist input', function (e, previous) { //if 输入变更数量 var site = $(this).parents('td').attr('sortnum'); if(site == 6) { var num = $(this).val(); var unitprice = $(this).parents('.clist').children('td').eq(3).text() || $(this).parents('.clist').children('td').eq(3).children('input').val(); var total = $.trim(num) != '' && $.trim(unitprice) != '' ? parseFloat(parseFloat(unitprice)*parseFloat(num)).toFixed(2) : ''; $(this).parents('.clist').children('td').eq(7).text(total); } //if 输入单价 else if(site == 3) { var unitprice = $(this).val(); var thistr = $(this).parents('tr').attr('newlist_tid'); var $thisstr = $('#list tr[newlist_tid="'+thistr+'"]'); $thisstr.children('td').eq(site).children('input').val(unitprice); var onum = $thisstr.children('td').eq(4).children('input').val(); var num = $thisstr.children('td').eq(6).children('input').val(); var ototal = $.trim(onum) != '' && $.trim(unitprice) != '' ? parseFloat(parseFloat(unitprice)*parseFloat(onum)).toFixed(2) : ''; var total = $.trim(num) != '' && $.trim(unitprice) != '' ? parseFloat(parseFloat(unitprice)*parseFloat(num)).toFixed(2) : ''; $thisstr.children('td').eq(5).text(ototal); $thisstr.children('td').eq(7).text(total); } //if 输入的是原设计数量 else if(site == 4) { var onum = $(this).val(); var unitprice = $(this).parents('.clist').children('td').eq(3).children('input').val(); var ototal = $.trim(onum) != '' && $.trim(unitprice) != '' ? parseFloat(parseFloat(unitprice)*parseFloat(onum)).toFixed(2) : ''; $(this).parents('.clist').children('td').eq(5).text(ototal); }else{ var thistr = $(this).parents('tr').attr('newlist_tid'); var $thisstr = $('#list tr[newlist_tid="'+thistr+'"]'); $thisstr.children('td').eq(site).children('input').val($(this).val()); } //统计合计金额 var ctotalnum = 0; var ototalnum = 0; $('.clist').each(function(){ var ctotal = $(this).children('td').eq(7).text(); ctotalnum = ctotal != '' ? parseFloat(ctotalnum)+parseFloat(ctotal) : parseFloat(ctotalnum); var ototal = $(this).children('td').eq(5).text(); ototalnum = ototal != '' ? parseFloat(ototalnum)+parseFloat(ototal) : parseFloat(ototalnum); }); $('.ctatalamount').eq(1).text(ctotalnum != 0 ? parseFloat(ctotalnum).toFixed(2) : ''); $('.otatalamount').eq(1).text(ototalnum != 0 ? parseFloat(ototalnum).toFixed(2) : ''); //更改localstorage //if 签约清单 if($(this).parents('.clist').hasClass('clid')){ var id = $(this).parents('.clist').attr('list_id'); if($.trim($(this).val()) != ''){ localStorage.setItem('update_'+$('#cid').val()+'_clistid_'+id, $.trim($(this).val())); var cnum = $.trim($(this).val()); //添加到form中list if($('#changelist').val() != ''){ var clist = $('#changelist').val().split(','); var exist = 0; $.each(clist,function(k,v){ var clistid = v.split('_')[0]; if(clistid == id){ exist = 1; clist.splice(k,1,id+'_'+cnum); return false; } }); if(exist == 0){ clist.push(id+'_'+cnum); } $('#changelist').val(clist.join(',')); }else{ $('#changelist').val(id+'_'+cnum); } }else{ localStorage.removeItem('update_'+$('#cid').val()+'_clistid_'+id); //清除form中list var clist = $('#changelist').val().split(','); $.each(clist,function(k,v){ var clistid = v.split('_')[0]; if(clistid == id){ clist.splice(k,1); return false; } }); $('#changelist').val(clist.join(',')); } } //else 新增空白清单 else{ var newid = $(this).parents('.clist').attr('newlist_tid'); var $thisstr = $('#list tr[newlist_tid="'+newid+'"]'); var adtrlist = new Array(6); adtrlist[0] = $thisstr.children('td').eq(0).children('input').val(); adtrlist[1] = $thisstr.children('td').eq(1).children('input').val(); adtrlist[2] = $thisstr.children('td').eq(2).children('select').val(); adtrlist[3] = $thisstr.children('td').eq(3).children('input').val(); adtrlist[4] = $thisstr.children('td').eq(4).children('input').val(); adtrlist[5] = $thisstr.children('td').eq(6).children('input').val(); localStorage.setItem('update_'+ $('#cid').val() +'_new_clistid_'+newid,adtrlist.join(';')); //添加到form中 if($('#changewhitelist').val() != ''){ var wlist = $('#changewhitelist').val().split(','); var exist = 0; $.each(wlist,function(k,v){ var wlistid = v.split('->')[0]; if(wlistid == newid){ exist = 1; var empty = 0; $.each(adtrlist,function(ak,av){ if(av != '' && ak != 2){ empty = 1; return false; } }); if(empty){ wlist.splice(k,1,newid+'->'+adtrlist.join(';')); }else{ wlist.splice(k,1); } return false; } }); if(exist == 0){ wlist.push(newid+'->'+adtrlist.join(';')); } $('#changewhitelist').val(wlist.join(',')); }else{ $('#changewhitelist').val(newid+'->'+adtrlist.join(';')); } } }); //单位选择要另外处理 $('body').on("change", '.clist select', function () { var newid = $(this).parents('.clist').attr('newlist_tid'); var $thisstr = $('#list tr[newlist_tid="'+newid+'"]'); $thisstr.children('td').eq(2).children('select').val($(this).val()); var adtrlist = new Array(6); adtrlist[0] = $thisstr.children('td').eq(0).children('input').val(); adtrlist[1] = $thisstr.children('td').eq(1).children('input').val(); adtrlist[2] = $thisstr.children('td').eq(2).children('select').val(); adtrlist[3] = $thisstr.children('td').eq(3).children('input').val(); adtrlist[4] = $thisstr.children('td').eq(4).children('input').val(); adtrlist[5] = $thisstr.children('td').eq(6).children('input').val(); localStorage.setItem('update_'+ $('#cid').val() +'_new_clistid_'+newid,adtrlist.join(';')); //添加到form中 if($('#changewhitelist').val() != ''){ var wlist = $('#changewhitelist').val().split(','); var exist = 0; $.each(wlist,function(k,v){ var wlistid = v.split('->')[0]; if(wlistid == newid){ exist = 1; var empty = 0; $.each(adtrlist,function(ak,av){ if(av != '' && ak != 2){ empty = 1; return false; } }); if(empty){ wlist.splice(k,1,newid+'->'+adtrlist.join(';')); }else{ wlist.splice(k,1); } return false; } }); if(exist == 0){ wlist.push(newid+'->'+adtrlist.join(';')); } $('#changewhitelist').val(wlist.join(',')); }else{ $('#changewhitelist').val(newid+'->'+adtrlist.join(';')); } }); //审批人选择 $('body').on('click','.alert-pnone .radio',function(e){ if($(e.target).is('label')){ return; } var uid = $(this).attr('data-uid'); if($(this).parents('.alert-pnone').hasClass('alert-success')){ $(this).parents('.alert-pnone').removeClass('alert-success'); $(this).children('label').children('input[type="radio"]').prop('checked',false); //移除form中 var auditlist = $('#selectauditlist').val().split('->'); $.each(auditlist,function(k,v){ var vid = v.split('_')[0]; if(uid == vid){ auditlist.splice(k,1); return false; } }); $('#selectauditlist').val(auditlist.join('->')); }else{ $(this).parents('.alert-pnone').addClass('alert-success'); $(this).children('label').children('input[type="radio"]').prop('checked','checked'); //添加 var name = $(this).attr('data-uname'); var company = $(this).attr('data-ucompany'); var jobs = $(this).attr('data-ujobs'); var adduser = uid+'_'+name+'_'+company+'_'+jobs; //添加到form中 if($('#selectauditlist').val() != ''){ var auditlist = $('#selectauditlist').val().split('->'); auditlist.push(adduser); $('#selectauditlist').val(auditlist.join('->')); }else{ $('#selectauditlist').val(adduser); } } }); //添加到审批流程中 $('#addaudit').click(function(){ $('#usertableshow').html(''); //添加到form中 if($('#selectauditlist').val() != ''){ var sort = 1; var auditlist = $('#selectauditlist').val().split('->'); var auditarray = new Array(); $.each(auditlist,function(k,v){ var vmsg = v.split('_'); var uid = vmsg[0]; var name = vmsg[1]; var company = vmsg[2]; var jobs = vmsg[3]; var addusertr = ''+sort+' 审

'+ jobs +' '+ name +'

'+ company +' '; $('#usertableshow').append(addusertr); auditarray.push(uid); sort++; }); $('#changeaudit').val(auditarray.join(',')); }else{ $('#changeaudit').val(''); } $('#addshenpi').modal('hide'); }); $('#searchbtn').click(function(){ var username = $.trim($('#searchname').val()); if(username == ''){ toastr.error('请输入审批人名称'); return false; }else{ var namelist = $('#usernamelist').val().split(','); for(var i = 0; i < namelist.length; i++){ if(username == namelist[i]){ toastr.error('列表或常用中已存在当前审批人'); return false; } } $.ajax({ type: 'post', url: '/change/user/search?name='+username, data: {namelist:namelist}, dataType: 'json', success: function(result){ if(result.code == 400){ toastr.error(result.msg); }else{ namelist.push(result.user.name); $('#usernamelist').val(namelist.join(',')); var adduserhtml = '
'+ result.user.jobs +'
'; $('#searchshow').append(adduserhtml); } } }) } }); //文件上传 var btn = document.getElementById('uploadBtn'), wrap = document.getElementById('pic-progress-wrap'), progressBar = document.getElementById('progressBar'), progressOuter = document.getElementById('progressOuter'), msgBox = document.getElementById('msgBox'), filenum = $('#filesshow tr').length+1; var uploader = new ss.SimpleUpload({ button: btn, url: '/change/file/upload/' + $('#pmid').val(), // sessionProgressUrl: '/code/ajaxuploader/sessionProgress.php', name: 'uploadfile', multipart: true, hoverClass: 'hover', focusClass: 'focus', responseType: 'json', startXHR: function() { progressOuter.style.display = 'block'; // make progress bar visible this.setProgressBar( progressBar ); }, onSubmit: function() { msgBox.innerHTML = ''; // empty the message box btn.innerHTML = '上传中...'; // change button text to "Uploading..." }, onComplete: function( filename, response ) { btn.innerHTML = '选择文件'; progressOuter.style.display = 'none'; // hide progress bar when upload is completed if ( !response ) { toastr.error('无法上传文件'); msgBox.innerHTML = '无法上传文件'; return; } if ( response.success === true ) { toastr.success('附件上传成功。'); msgBox.innerHTML = '' + escapeTags( filename ) + '' + ' 上传成功。'; var filestr = ''+ filenum +''+ response.files.filename +''+ response.files.size +''+ response.files.time +''; $('#filesshow').append(filestr); //添加到form中 if($('#changeatt').val() != ''){ var attlist = $('#changeatt').val().split(','); attlist.push(response.files.id); $('#changeatt').val(attlist.join(',')); }else{ $('#changeatt').val(response.files.id); } filenum++; setTimeout(function(){ msgBox.innerHTML = ''; },3000); } else { if ( response.msg ) { toastr.error(response.msg); msgBox.innerHTML = escapeTags( response.msg ); } else { toastr.error('发生错误,上传失败。'); msgBox.innerHTML = '发生错误,上传失败。'; } } }, onError: function() { progressOuter.style.display = 'none'; toastr.error('无法上传文件'); msgBox.innerHTML = '无法上传文件'; } }); //删除附件 $('body').on('click',"a[id^='delatt_']",function (){ var fid = $(this).attr('file_id'); $(this).parents('tr').remove(); var newsort = 1; $('#filesshow tr').each(function(){ $(this).children('td').eq(0).text(newsort); newsort++; }); filenum = newsort; var attlist = $('#changeatt').val().split(','); $.each(attlist,function(k,v){ if(v == fid){ attlist.splice(k,1); return false; } }); $('#changeatt').val(attlist.join(',')); $.ajax({ type: 'post', url: '/change/file/delete', data:{fid: fid}, dataType: 'json', success: function(result){ } }) }); }); var updateflag = 0; function checkform(){ if($.trim($('#pnum').val()) == ''){ var str = updateflag == 0 ? '至少' : ''; toastr.error('请'+str+'输入申请编号'); return false; } if($('#pname').val() == ''){ var str = updateflag == 0 ? '至少' : ''; toastr.error('请'+str+'输入工程名称'); return false; } if(updateflag == 1){ if($('#description').val() == ''){ toastr.error('请输入工程变更理由及内容'); return false; } if($('#changelist').val() == '' && $('#changewhitelist').val() == ''){ toastr.error('请至少添加一项变更清单或空白清单'); return false; } if($('#changelist').val() != '' || $('#list .clid').length/2 != 0){ var clistnum = $('#list .clid').length/2; if($('#changelist').val() == '' || $('#changelist').val().split(',').length != clistnum){ toastr.error('请输入所有所需变更的签约清单的申报变更数量'); return false; } } if($('#changewhitelist').val() != ''){ var wlist = $('#changewhitelist').val().split(','); var existempty = 0; var emptysite = 0; var pnum = ''; $.each(wlist,function(k,v){ var adtrlist = v.split('->')[1].split(';'); if(existempty == 1){ return false; } $.each(adtrlist,function(ak,av){ if(av == '' && ak != 2){ existempty = 1; emptysite = k+1; pnum = adtrlist[0]; return false; } }); }); if(existempty){ var currnum = emptysite + $('#list .clid').length/2; toastr.error('变更清单第'+ currnum +'行,清单编号为:'+ pnum +' 存在未填写的内容,请填写完整。若不需要此空白清单请把整行填写过的内容清除'); return false; } } if($('#changeaudit').val() == ''){ toastr.error('请添加审批人'); return false; } var addArr = new Array(); var storage = window.localStorage; var n = $('#cid').val().toString().length; for(var i = 0; i < storage.length; i++){ var key = storage.key(i); if(key.substring(0,20+n) == 'update_'+ $('#cid').val() +'_new_clistid_' || key.substring(0,16+n) == 'update_'+ $('#cid').val() +'_clistid_'){ addArr.push(key); } } if(addArr){ $.each(addArr,function(k,v){ storage.removeItem(v); }) } } var ajaxflag = 0; $.ajax({ type: 'post', url: '/change/check/pnum', data: {pnum:$.trim($('#pnum').val()),status:'update',pmid:$('#pmid').val(),cid:$('#cid').val()}, async: false, dataType: 'json', success: function(result){ if(result.code == 400){ toastr.error(result.msg); ajaxflag = 1; } } }); if(ajaxflag != 0){ return false; } return true; }