叶签形式的表格制作

第一步:制作表格

  

   var data = ${empty data ? "‘‘" : data};
	 var kpiTabData = data["kpiTabData"];
	 var kpiObjectList = data["kpiObjectList"];

var row3 = ‘<tr name="data_row">‘;
	    row3 += ‘<td name="row_checkbox" height="26px" style="text-align:center"><a class="icon-remove" title="Delete" style="cursor:pointer;"></a><input name="id" type="hidden" value="" /><input name="sno" type="hidden" value="" /></td>‘;
		row3 += ‘<td name="level"><input type="text" value="" /></td>‘;
		row3 += ‘<td name="M-1"><input type="text" value="" /></td>‘;
		row3 += ‘<td name="remark" class="bg_green" style="width:200px;"><textarea class="bg_green" style="width:100%;border:0px solid" maxlength="500"></textarea></td>‘;
	    row3 += ‘</tr>‘;

  

第二步:遍历list,将数据传入表格中

if(kpiObjectList){
	    	addKpiListRows();
	    }else{
	    	addRow3(1,1,projectCode);
	    }

    function addKpiListRows(){
	    	if(kpiObjectList.length > 0){
	    		for(var k=0;k<kpiTabData.length;k++){
			    	for(var i=0;i<kpiObjectList.length;i++){
			    		var rowobj = $(row3);
				    	$(rowobj).attr("id","row_"+ i);
				    	$(rowobj).find("td[name=‘row_checkbox‘]").find("input[name=‘sno‘]").val(kpiObjectList[i]["sort"]);
				    	$(rowobj).find("td[name=‘row_checkbox‘]").find("input[name=‘id‘]").val(kpiObjectList[i]["id"]);
						$(rowobj).find("td[name=‘level‘]").find("input").val(kpiObjectList[i]["kpiIndName"]);
						$(rowobj).find("td[name=‘M-1‘]").find("input").val(kpiObjectList[i]["kpiIndRequire"]);
						$(rowobj).find("td[name=‘remark‘]").children("textarea").val(kpiObjectList[i]["remarks"]);
						if(kpiObjectList[i]["kpiIndTypeValue"]==kpiTabData[k]["value"]){ // 判断语句十分关键   会从这个判断语句找到相应的叶签将数据放上去
							$("#kpi"+kpiTabData[k]["value"]).append($(rowobj));    //将数据添加到相应的标签上
						}
			    	}

		    	}
		    }else{
		    	addRow3(1,1,projectCode);
		    }
	    }

  

第三步:制作活体叶签

  <div class="page_step2">

						<div class="page_con">
							<h1>
								<div class="accordion-heading">
									<a class="accordion-toggle collapsed" data-toggle="collapse"
										data-href="collapsekpi" href="#collapsekpi"> <i
										class="icon-chevron-right"></i> <span class="projectCss">合同要求KPI/KQI</span>
									</a>
								</div>
							</h1>
							<div style="height:10px;">
							</div>

                          <!---  //叶签制作 -->
							<div id="collapsekpi" class="panel-collapse collapse">

								<ul id="myTab" class="nav nav-tabs">
									<c:forEach items="${kpiTabList}" var="item" varStatus="status">

										<li><a href="#tab${item.value}" data-toggle="tab">${item.label}</a></li>

									</c:forEach>
								</ul>
								<div id="myTabContent" class="tab-content">
								<!---遍历list将叶签放在表头位置,实现活(叶签)样式 -->
									<c:forEach items="${kpiTabList}" var="item" varStatus="status">
										<div class="tab-pane fade" id="tab${item.value}">
								<!---将table的id的名称附上活的id值 便于对应相应的表格,便于js遍历处的数据放在相应得table表格上 -->
											<table id="kpi${item.value}" width="100%" cellpadding="0"
												cellspacing="0">
												<tr class="tb_tt">
													<td style="width: 80px;">操作</td>
													<td>KPI 指标名称<font color="red">*</font></td>
													<td>指标要求<font color="red">*</font></td>
													<td>计算公式描述<font color="red">*</font></td>
												</tr>
											</table>
											<!---将其设置成按钮的格式,点击的时候执行mytable(str)函数,将当前遍历的值传入函数,便于找到相应的表格,将空白栏添加进去-->
											<a href="#javascript:;" id="kpi_add${item.value}"
												name="kpi_add${item.value}" style="display: inline-block;"
												class="btn_add" type="button"
												onclick="mytable(${item.value});"></a>
										</div>

									</c:forEach>
								</div>
								<script>
							    $(function () {
							        $(‘#myTab li:eq(0) a‘).tab(‘show‘);
							    });
							</script>
							</div>

						</div>

					</div>

  

add按钮请求的方法  将添加的表格放在相应的列表中   
		function mytable(str,projectCode){

					var lastRow = $("#kpi"+str+" tr").length;   //最后一行的长度
					var sno = $("#kpi"+str+" tr:last").find("td[name=‘row_checkbox‘]").find("input[name=‘sno‘]").val()*1+1;

			var row3 = ‘<tr name="data_row">‘;
			    row3 += ‘<td name="row_checkbox" height="26px" style="text-align:center"><a class="icon-remove" title="Delete" style="cursor:pointer;"></a><input name="id" type="hidden" value="" /><input name="sno" type="hidden" value="" /></td>‘;
				row3 += ‘<td name="level"><input type="text" value="" /></td>‘;
				row3 += ‘<td name="M-1"><input type="text" value="" /></td>‘;
				row3 += ‘<td name="remark" class="bg_green" style="width:200px;"><textarea class="bg_green" style="width:100%;border:0px solid" maxlength="500"></textarea></td>‘;
			    row3 += ‘</tr>‘;

							var objRow = $(row3);
							if(isNaN(sno)){   //当有些遍历出来的标签其下面没有数据的时,添加新数据第一条的sno将会是NaN这个值,传入后端遍历将会出错,必须判断很重要这一步。
								sno=1;
							}
							objRow.find("td[name=‘row_checkbox‘]").find("input[name=‘sno‘]").val(sno);
								$("#kpi"+str).append(objRow);

		}

  

 

第四步:存入数据传入后台

//注意的是定义变量的时候一定要注意作用域,不然很多都是无效的引入,到处是undefined
                  var data = ${empty data ? "‘‘" : data};
					var kpiTabData = data["kpiTabData"];
					var kpiData =[];
					for(var p=0;p<kpiTabData.length;p++){

					$("#kpi"+kpiTabData[p]["value"]).find("tr[name=‘data_row‘]").each(function(index,elment){
						var obj = {};
						obj.id = $(elment).find("td[name=‘row_checkbox‘]").find("input[name=‘id‘]").val();
						obj.sort = $(elment).find("td[name=‘row_checkbox‘]").find("input[name=‘sno‘]").val();
						obj.projectBasicId = projectId;
						//将对应的kpiTabData[p]["label"]放进去,因为前台的kpiIndType是隐藏的,但是数据库中需要值
						obj.kpiIndType = kpiTabData[p]["label"];
						obj.kpiIndName = $(elment).find("td[name=‘level‘]").find("input").val();
						obj.kpiIndRequire = $(elment).find("td[name=‘M-1‘]").find("input").val();
						obj.remarks = $(elment).find("td[name=‘remark‘]").children("textarea").val();
						kpiData.push(obj);

						if($(elment).find("td[name=‘level‘]").find("input").val() == ‘‘) {
							oo = $(elment).find("td[name=‘level‘]").find("input");
							oox = "请输入KPI指标名称!";
							isnext = true;
							return false;
						}

						if($(elment).find("td[name=‘M-1‘]").find("input").val() == ‘‘) {
							oo = $(elment).find("td[name=‘M-1‘]").find("input");
							oox = "请输入指标要求!";
							isnext = true;
							return false;
						}

						/*if($(elment).find("td[name=‘remark‘]").children("textarea").val() == ‘‘) {
							oo = $(elment).find("td[name=‘remark‘]").children("textarea");
							oox = "请输入计算公式描述!";
							isnext = true;
							return false;
						}*/
					});

					}

					kpiData = JSON.stringify(kpiData);
// 					window.alert("kpiDatas%%%%%"+kpiDatas);
					if(isnext && kpiData != "[]"){
						alert(oox);
						oo.focus();
						return false;
					}
					$.post("${ctx}/delivery/platform/saveContractInfoData",{projectId:"${projectInfo.id}",manageData:manageData,serviceData:serviceData,slaData:slaData,kpiData:kpiData},function(result){
						if(result=="success"){
							if(resultType == ‘2‘){
								alert("Save data success!");
								window.location.reload();
							}
						}else if(result == "fail"){
							if(resultType == ‘2‘){
								alert("Save data fail!");
							}
						}
					});
				}else{
					if(resultType == ‘2‘){
						alert("Please select a project!");
					}
				}
			}

  

原文地址:https://www.cnblogs.com/jiajialeps/p/10163114.html

时间: 2024-11-07 20:15:12

叶签形式的表格制作的相关文章

iOS表格制作

由于项目上的需求,需要做一个表格出来,来显示流程状态.刚开始脑子一头雾水,没有一点思路,但是靠着自己的座右铭--"世上无难事,只怕有心人",克服了所有困难.好,不说了,讲正事. 制作表格,还是需要tableView来做. 1. 创建一个UIView对象 : UIView *tableViewHeadView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, kCount*kWidth, kHeight)]; self.myHeadView=ta

关于使用表格制作页面

在HTML中,表格的功能挺强大的.表格由 <table> 标签以及一个或多个 tr.th或td 元素组成.单元格可以包含文本.图片.列表.段落.表单.水平线.表格等等.所以,我们可以利用表格来制作一个网页页面.我在做相关练习时发现,若单单使用表格来进行页面的制作,是存在一定的困难.当然现在我们可以利用css来轻松布局.在用表格制作网页时,需要明确的是整个网页中,应该如何划分表格.哪些地方可以直接用一个表格表示,或者哪些地方需要将单元格合并才达到效果.有了清晰的思路后,做起来才不会乱套. 我在利

LaTeX表格制作备忘一

LaTeX的普通表格制作比较简单,但是,如果要精确控制格式,就有些麻烦了.今天在做一些文档,其中用到某一种表格,现把代码与说明记录于此以备忘. 环境:Ubuntu 16.04 64位桌面版 LaTeX编辑工具:TeXstudio 代码如下: \documentclass[oneside, AutoFakeBold]{article} \usepackage{geometry} % 用于页面设置 % 设置为A4纸,并按照MSOffice的默认尺寸设置四周边距 \geometry{ a4paper,

用表格制作百度首页

前一天学习了<table>和一系列的小指令用来制作表格,然后老师布置了制作百度首页的任务,看上去像是很简单结果还是弄了一天的时间,好在最后知道了错误修改的还算美观. 制作很简单,就是小细节上的东西容易出错,所以刚开始学一定要养成有了开头接着写结尾的好习惯. 最上面的一行导航栏还算简单,做好表格大小分配好百分比,剩下的超链接什么的都是再简单不过的内容了. 百度的logo和百度一下这一行起初是规划在了一个表格内,怎么调试都没办法弄好,早上尝试了把他们两个分成了两个表格就简单多了. 个人觉得最头疼的

Latex:表格制作全攻略

给出一个制作复杂表格的例子,制作表格主要用到multicolumn,multirow和cline,其中,要使用multirow,必须usepackage{multirow} 如果要制作出如下图所示的表格: 则可以通过如下的代码: \begin{table*} \begin{tabular}{|c|c|c|c|c|} hline hline multirow{2}{*}{Multi-Row} & multicolumn{2}{|c|}{Multi-Column} & multicolumn{

HTML之表格制作

如何制作一个表格? 如何制作一个表格呢?  观察如下代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>table</title> </head> <body> <table border='1' cellpadding="10" cellspacin

WPS表格 制作甘特图

一,数据 二,全选表格,插入堆积条形图 1. 删除"完成时间" 鼠标右击图表空隙->选择数据->删除完成时间->确定 2. 选中 蓝色框框(系列”起始时间”)右击->填充---> 无色 3. 记住最大值和最小值 A. 最小值具体看法:点击 最小起始时间 右击->设置单元格格式->数字->常规 最大值 一样. B. 点击X轴数据也就是显示日期的部分,坐标轴下填写最大值.最小值 3. 最后一步,点击Y轴数据选择坐标轴->逆序类别(就是上

学习10 table表格制作标签

<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>认识table表格标签</title> <style type="text/css"> table tr td,th{border:1px solid

考勤表格制作

前几天有个行政MM来找我哭诉,各种心软,于是周日花了时间修改一下网上大师代码. 首先感谢大师们! Sub kaoqinfenxi() Dim RowB, RowA, iRow, iCol, iRQ, jRow, jCol As Integer Dim sXM, x1, x2, y, m, n As String Dim Rng As Range     RowA = Sheets("考勤记录").Range("A65536").End(xlUp).Row     F