table 实现新增一列,删除一列,上移,下移

	
jQuery("#operate-step-table").on("click","i",function(){
	var clickIndex = jQuery(this).closest("tr").index();
	if(jQuery(this).hasClass("icon-operate-add")){
		insertRowAfter(clickIndex)
	}else if(jQuery(this).hasClass("icon-operate-up")){
		upRow(clickIndex);
	}else if(jQuery(this).hasClass("icon-operate-down")){
		downRow(clickIndex);
	}else if(jQuery(this).hasClass("icon-operate-delete")){
		deleteRow(clickIndex);
	}else if(jQuery(this).hasClass("icon-new")){
		 addRow();
	}
});

//向后插入一行
function insertRowAfter(trIndex,data){
	jQuery("#operate-step-table tbody tr:eq("+trIndex+")").after(getStepTr(trIndex+1,data));
	comtop.UI.scan();
	sortStep();
	if(jQuery("#operationClass").val() == "1" &&  jQuery("#billingLink").val() == "0" && jQuery("#operate-step-tbody tr").length >1){
		jQuery(".icon-operate-delete").show();
	}
}
//新增一行
function addRow(data){
	var operateBody =jQuery("#operate-step-table tbody");
	insertRowAfter(jQuery("#operate-step-table tbody tr").length -1,data );
	if(operateBody.find(".noStep").length >0){
		operateBody.find(".noStep").remove();
		sortStep();
	}
	if(jQuery("#operationClass").val() == "1" &&  jQuery("#billingLink").val() == "0" && jQuery("#operate-step-tbody tr").length >1){
		jQuery(".icon-operate-delete").show();
	}
}
//上移
function upRow(trIndex){
	var curTr = jQuery("#operate-step-table tbody tr:eq("+trIndex+")")
	if(curTr.prev().length > 0){
		jQuery(curTr).insertBefore(curTr.prev());
		sortStep()
	}
}
//下移
function downRow(trIndex){
	var curTr = jQuery("#operate-step-table tbody tr:eq("+trIndex+")")
	if(curTr.next().length > 0){
		jQuery(curTr).insertAfter(curTr.next());
		sortStep()
	}
}
//删除
function deleteRow(trIndex){
	cui.confirm("确认删除该操作项?", {
        onYes: function () {
        	doDeleteRow(trIndex);
        	if(jQuery("#operationClass").val() == "1" &&  jQuery("#billingLink").val() == "0" && jQuery("#operate-step-tbody tr").length == 1){
        		jQuery(".icon-operate-delete").hide();
        	}
        },
        onNo: function () {
        }
    });
}
//删除步骤
function doDeleteRow(trIndex){
	var deleteTRs = new Array();
	var deleteTR = jQuery("#operate-step-table tbody tr:eq("+trIndex+")");
	var deviceId = deleteTR.find('input[id^=switchId]').val();
	deleteTRs.push(deleteTR);
	//删除当前开关相同的行
	if(null != deviceId && "" != deviceId){
		jQuery("#operate-step-table input[id^=switchId]").each(function(){
			if(jQuery(this).val() ==deviceId){
				deleteTRs.push(jQuery(this).parent("tr"));
			}
		});
	}
	if(deleteTRs.length > 0){
		for(var i=0; i < deleteTRs.length;i++){
			deleteTRs[i].find('span[validate]').each(function(subIndex){
				window.validater.disValid(jQuery(this).attr('id'),true);
			});
			deleteTRs[i].remove();
		}
	}
	//图还原
	if(deviceId != null && deviceId != ""){
		restoreSwitcth(deviceId);
	}
	sortStep();
	var operateBody =jQuery("#operate-step-table tbody");
	if(operateBody.find("tr").length ==0 ){
		operateBody.append('<tr class="noStep"><td style="text-align:center;" class="muted" colspan="4">暂无数据</td></tr>')
	}
}

//操作步骤tr
function getStepTr(i,data){
	var positionId = 0;
	if(null == data || undefined == data){
		data = {};
	}else{
		positionId = data.positionId;
	}
	var html = new Array();
	html.push('<tr positionid="'+positionId+ '"> ');
	html.push('<input type="hidden" id="orderNo'+ i +'"  name="operateorderStepDTOs['+ i +'].orderNo" value='+i+'/> ');
	html.push('<input type="hidden" id="positionId'+ i +'"  name="operateorderStepDTOs['+ i +'].positionId" value="'+positionId+ '"/> ');
	html.push('<input type="hidden" id="lineId'+ i +'"  name="operateorderStepDTOs['+ i +'].lineId" value="'+checkBlan(data.lineId)+ '"/> ');
	html.push('<input type="hidden" id="optimisticLockVersion'+ i +'"  name="operateorderStepDTOs['+ i +'].optimisticLockVersion" value="0"/> ');
	html.push('<input type="hidden" id="authorizedUnitOid'+ i +'"  name="operateorderStepDTOs['+ i +'].authorizedUnitOid" value="'+checkBlan(data.authorizedUnitOid)+'"/>  ');
	html.push('<input type="hidden" id="switchId'+ i +'"  name="operateorderStepDTOs['+ i +'].switchId" value="'+checkBlan(data.switchId)+'"/> ');
	html.push('<input type="hidden" id="switchInitialState'+ i +'"  name="operateorderStepDTOs['+ i +'].switchInitialState" value="'+checkNumber(data.switchInitialState)+'"/> ');
	html.push('<input type="hidden" id="switchOperatedState'+ i +'"  name="operateorderStepDTOs['+ i +'].switchOperatedState" value="'+checkNumber(data.switchOperatedState)+'"/> ');
	html.push('<td style="text-align:center;" class="orderNo">'+ i +'</td> ');
	html.push('<td style="text-align:center;">		<span uitype="Input"  id="authorizedUnitOname'+ i +'" name="operateorderStepDTOs['+ i +'].authorizedUnitOname" width="90%"  validate="受令单位是必填项" maxlength="40" value="'+checkBlan(data.authorizedUnitOname)+'"></span> 		</td> ');
	html.push('<td style="text-align:center;"><span uitype="Textarea" autoheight="true" id="operateTask'+ i +'" name="operateorderStepDTOs['+ i +'].operateTask" width="98%" height="28px"		 maxlength="400" validate="操作项目是必填项"><textarea>'+checkBlan(data.operateTask)+'</textarea></span>	</td> ');
	html.push('<td style="text-align:center;">		<i class="icon-operate-add" title="插入"></i>		<i class="icon-operate-up" title="上移"></i>		<i class="icon-operate-down" title="下移"></i>		<i class="icon-operate-delete" title="删除"></i>	</td> ');
	html.push('</tr> ');
	return html.join(' ');
}

//从新排序
function sortStep(){
	var tableId = 'operate-step-table';
	var dtoName = 'operateorderStepDTOs';
	var item = "#"+ tableId +" tbody tr";
	var selectItem = "[name^="+ dtoName+"]";
	var rowIndex = 0;
	jQuery(item).each(function(index){
		jQuery(this).find(selectItem).each(function(subIndex){
			var name = jQuery(this).attr("name");
			var dotIndex = name.indexOf(".");
			var last = name.substring(dotIndex);
			name = dtoName + "[" + rowIndex +"]" + last;
			jQuery(this).attr("name",name);
			jQuery(this).attr("id",last.replace(".","")+rowIndex);
			if(last == ".orderNo"){
				jQuery(this).val(rowIndex+1);
			}
		});
		jQuery(this).find(".orderNo").text(rowIndex+1);
		rowIndex++;
	});
	jQuery(item).each(function(i){
		//处理cui的 id排序Query("span[id^='authorizedUnitOname']")
		jQuery(this).find("span[id^='authorizedUnitOname']").attr("id","authorizedUnitOname"+i);
		jQuery(this).find("span[id^='operateTask']").attr("id","operateTask"+i);
	});
}
//排序
function repsort(){
	jQuery("#operate-step-table tbody").append(jQuery("#operate-step-table tr[positionid=1]"));
	sortStep()
}

猜你喜欢

转载自blog.csdn.net/qq_31806719/article/details/80926856