$(function(){
var cid = $.trim($('#cid').val());
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
}
});
//自动添加清单数据到localstorage里
if($('#changelist').val() != ''){
var clist = $('#changelist').val().split(',');
$.each(clist,function(k,v){
var vmsg = v.split('_');
localStorage.setItem('update_'+cid+'_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 +'_new_clistid_'+vmsg[0],vmsg[1]);
})
}
$('.addlistbtn').on('click',function(){
//获取小数位的设置点数
var decimalsetarr = $('#changedecimalnum').val().split('_');
var decimal = decimalsetarr[0];
//var step = makedecimals(decimalsetarr[1]);
//设置数量0. n位数初始值
var zero = makedecimalzero(decimalsetarr[1]);
//设置金额0. n位数初始值
var costzero = makedecimalzero(decimal);
var html = '';
//获取清单列表
var totalnum = 0;
var clist = new Array();
$('.checklist').find('.listcheckbox').each(function(){
if($(this).prop("checked")){
var id = $(this).parents('.checklist').children('td').eq(0).attr('list_id');
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();
//获取localstorage里的数据
var scnum = 0;
var sctotal = 0;
if(localStorage.hasOwnProperty('update_'+cid+'_clistid_'+id)){
scnum = localStorage.getItem('update_'+cid+'_clistid_'+id);
sctotal = roundnum(parseFloat(price).mul(parseFloat(scnum)),decimal);
clist.push(id+'_'+scnum);
}else{
//新增一个localstorage
scnum = zero;
localStorage.setItem('update_'+ cid +'_clistid_'+id,zero);
clist.push(id+'_'+zero);
}
sctotal = parseFloat(sctotal) != 0 ? roundnum(sctotal,decimal) : costzero;
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.toString().length;
for(var i = 0; i < storage.length; i++){
var key = storage.key(i);
if(key.substring(0,n) == 'update_'+ cid +'_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 +'_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 != '' ? roundnum(parseFloat(price2).mul(parseFloat(oamount2)),decimal) : '';
var sctotal2 = price2 != '' && scnum != '' ? roundnum(parseFloat(price2).mul(parseFloat(scnum)),decimal) : '';
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(','));
//获取添加的空白清单
if($(this).hasClass('btn-default')){
var optionlist2 = '';
for(var j = 0; j < optionselect.length; j++){
optionlist2 += '';
}
var addtr = ' | | | | | '+ costzero +' | | '+ costzero +' |
';
html += addtr;
}
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
}
});
totalamount(decimal);
$('#addlist').modal('hide');
});
$('body').on("valuechange", '.clist input', function (e, previous) {
//获取小数位的设置点数
var decimalsetarr = $('#changedecimalnum').val().split('_');
var decimal = decimalsetarr[0];
//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) != '' ? roundnum(parseFloat(unitprice).mul(parseFloat(num)),decimal) : '';
$(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) != '' ? roundnum(parseFloat(unitprice).mul(parseFloat(onum)),decimal) : '';
var total = $.trim(num) != '' && $.trim(unitprice) != '' ? roundnum(parseFloat(unitprice).mul(parseFloat(num)),decimal) : '';
$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) != '' ? roundnum(parseFloat(unitprice).mul(parseFloat(onum)),decimal) : '';
$(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());
}
//统计合计金额
totalamount(decimal);
//更改localstorage
//if 签约清单
if($(this).parents('.clist').hasClass('clid')){
var id = $(this).parents('.clist').attr('list_id');
if($.trim($(this).val()) != ''){
localStorage.setItem('update_'+cid+'_clistid_'+id, $.trim($(this).val()));
var cnum = $.trim($(this).val());
updatelist(id,cnum);
}else{
localStorage.removeItem('update_'+cid+'_clistid_'+id);
removelist(id);
}
}
//else 新增空白清单
else{
var newid = $(this).parents('.clist').attr('newlist_tid');
var $thisstr = $('#list tr[newlist_tid="'+newid+'"]');
var listtrmsg = updateandgetwhitelist(newid,$thisstr);
localStorage.setItem('update_'+ cid +'_new_clistid_'+newid,listtrmsg);
}
});
//单位选择要另外处理
$('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 listtrmsg = updateandgetwhitelist(newid,$thisstr);
localStorage.setItem('update_'+ cid +'_new_clistid_'+newid,listtrmsg);
});
//小数位数设置提交到本变更令中
$('#setdnum').click(function(){
if(/^[0-6]$/.test(parseInt($('#costdnum').val())) && /^[0-6]$/.test(parseInt($('#numberdnum').val()))){
var costdnum = parseInt($('#costdnum').val()),
numbernum = parseInt($('#numberdnum').val());
decimalnumsetmodal(costdnum,numbernum,'update');
}else{
toastr.error('请输入范围内正确的位数要求');
}
});
});
var updateflag = 0;
var cid = $.trim($('#cid').val());
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.toString().length;
for(var i = 0; i < storage.length; i++){
var key = storage.key(i);
if(key.substring(0,20+n) == 'update_'+ cid +'_new_clistid_' || key.substring(0,16+n) == 'update_'+ cid +'_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},
async: false,
dataType: 'json',
success: function(result){
if(result.code == 400){
toastr.error(result.msg);
ajaxflag = 1;
}
}
});
if(ajaxflag != 0){
return false;
}
return true;
}