first commit
This commit is contained in:
commit
261f87e889
127
app.js
Normal file
127
app.js
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
function allowDrop(ev) {
|
||||||
|
ev.preventDefault();
|
||||||
|
}
|
||||||
|
function dragcol(ev) {
|
||||||
|
var data = ev.dataTransfer.setData("Text", ev.target.className);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dropcol(ev) {
|
||||||
|
var count = 0;
|
||||||
|
ev.preventDefault();
|
||||||
|
var data = ev.dataTransfer.getData("Text");
|
||||||
|
var parentdiv = ev.target.parentNode;
|
||||||
|
var newnode = document.getElementsByClassName(data);
|
||||||
|
|
||||||
|
//locate which element to land output number
|
||||||
|
for (var each of parentdiv.children) {
|
||||||
|
if (each === ev.target) {
|
||||||
|
render(count);
|
||||||
|
} else {
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function render() {
|
||||||
|
for (var each of newnode) {
|
||||||
|
each.parentNode.insertBefore(each, each.parentNode.children[count]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var classes = [
|
||||||
|
"客户",
|
||||||
|
"番茄酱",
|
||||||
|
"海鲜粉",
|
||||||
|
"酱油",
|
||||||
|
"麻油",
|
||||||
|
"牛奶",
|
||||||
|
"苹果汁",
|
||||||
|
"盐",
|
||||||
|
"番茄酱a",
|
||||||
|
"海鲜粉a",
|
||||||
|
"酱油a",
|
||||||
|
"麻油a",
|
||||||
|
"牛奶a",
|
||||||
|
"苹果汁a",
|
||||||
|
"盐a"
|
||||||
|
];
|
||||||
|
|
||||||
|
var rows = document.getElementsByClassName("row");
|
||||||
|
//set all neccessary class for each table data
|
||||||
|
function setrowclass() {
|
||||||
|
for (var row of rows) {
|
||||||
|
var count = 0;
|
||||||
|
for (var td of row.children) {
|
||||||
|
td.setAttribute("class", classes[count]);
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//set class and methods for ingrdient titles
|
||||||
|
var ingredient_title = document.getElementById("ingredient-title");
|
||||||
|
function setingtitleclass() {
|
||||||
|
var count = 0;
|
||||||
|
for (var th of ingredient_title.children) {
|
||||||
|
th.setAttribute("class", classes[count]);
|
||||||
|
th.setAttribute("draggable", "true");
|
||||||
|
th.setAttribute("ondragstart", "dragcol(event)");
|
||||||
|
count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addrowandcol() {
|
||||||
|
var submitbtn = document.getElementById("submit");
|
||||||
|
|
||||||
|
submitbtn.addEventListener("click", function(e) {
|
||||||
|
var tr = document.createElement("tr");
|
||||||
|
tr.setAttribute("class", "row");
|
||||||
|
var rowvalue = document.getElementById("row").value;
|
||||||
|
var colvalue = document.getElementById("col").value;
|
||||||
|
var td = document.createElement("td");
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
//document.getElementById("main_table").lastChild.appendChild(tr);
|
||||||
|
|
||||||
|
for (var i = 0; i < rowvalue; i++) {
|
||||||
|
document.getElementById("main_table").lastChild.appendChild(tr);
|
||||||
|
for (var x = 0; x < colvalue; x++) {
|
||||||
|
// document
|
||||||
|
// .getElementById("main_table")
|
||||||
|
// .lastChild.lastChild.appendChild(td);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(document.getElementById("main_table").lastChild);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
addrowandcol();
|
||||||
|
setrowclass();
|
||||||
|
setingtitleclass();
|
||||||
|
|
||||||
|
// function allowDrop(ev) {
|
||||||
|
// ev.preventDefault();
|
||||||
|
// }
|
||||||
|
// function dragcol(ev) {
|
||||||
|
// var data = ev.dataTransfer.setData("Text", ev.target.className);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// function dropcol(ev) {
|
||||||
|
// var count = 0;
|
||||||
|
// ev.preventDefault();
|
||||||
|
// var data = ev.dataTransfer.getData("Text");
|
||||||
|
// var parentdiv = ev.target.parentNode;
|
||||||
|
// var newnode = document.getElementsByClassName(data);
|
||||||
|
|
||||||
|
// //locate which element to land output number
|
||||||
|
// for (var each of parentdiv.children) {
|
||||||
|
// if (each === ev.target) {
|
||||||
|
// console.log(count);
|
||||||
|
// render(count);
|
||||||
|
// } else {
|
||||||
|
// count += 1;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// function render() {
|
||||||
|
// for (var each of newnode) {
|
||||||
|
// each.parentNode.insertBefore(each, each.parentNode.children[count]);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
123
index.html
Normal file
123
index.html
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>tables</title>
|
||||||
|
<link rel="stylesheet" href="./style.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<container>
|
||||||
|
<table class='table' id='main_table'>
|
||||||
|
<caption> 按客户与产品交叉分析报表</caption>
|
||||||
|
<tr id='main-title'>
|
||||||
|
<th></th>
|
||||||
|
<th colspan="7">数量</th>
|
||||||
|
<th colspan="7" class='highlight'>金额</th>
|
||||||
|
</tr>
|
||||||
|
<tr id='ingredient-title' ondragover="allowDrop(event)" ondrop="dropcol(event)">
|
||||||
|
|
||||||
|
<th>客户/产品</th>
|
||||||
|
<th>番茄酱</th>
|
||||||
|
<th>海鲜粉</th>
|
||||||
|
<th>酱油</th>
|
||||||
|
<th>麻油</th>
|
||||||
|
<th>牛奶</th>
|
||||||
|
<th>苹果汁</th>
|
||||||
|
<th>盐</th>
|
||||||
|
<th>番茄酱</th>
|
||||||
|
<th>海鲜粉</th>
|
||||||
|
<th>酱油</th>
|
||||||
|
<th>麻油</th>
|
||||||
|
<th>牛奶</th>
|
||||||
|
<th>苹果汁</th>
|
||||||
|
<th>盐</th>
|
||||||
|
</tr>
|
||||||
|
<tr class='row'>
|
||||||
|
<td>艾德高科技</td>
|
||||||
|
<td>20</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>40</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>720.00</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr class='row'>
|
||||||
|
<td>霸力建设</td>
|
||||||
|
<td>20</td>
|
||||||
|
<td>5</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>150.00</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>720.00</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr class='row'>
|
||||||
|
<td>保信人寿</td>
|
||||||
|
<td>70</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>20</td>
|
||||||
|
<td>54</td>
|
||||||
|
<td></td>
|
||||||
|
<td>560.00</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>304.00</td>
|
||||||
|
<td>972.00</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr class='row'>
|
||||||
|
<td>保信人寿abc</td>
|
||||||
|
<td>70</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>20</td>
|
||||||
|
<td>54</td>
|
||||||
|
<td></td>
|
||||||
|
<td>560.00</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td>304.00</td>
|
||||||
|
<td>972.00</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<sidebar>
|
||||||
|
<h1>tools box</h1>
|
||||||
|
<form>
|
||||||
|
<input type="number" placeholder="添加行" value='' id='row'>
|
||||||
|
<br>
|
||||||
|
<input type="number" placeholder="添加列" value='' id='col'>
|
||||||
|
<br>
|
||||||
|
<input type='button' id='submit' value='确定'>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</sidebar>
|
||||||
|
</container>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
<script src='./app.js '></script>
|
||||||
|
|
||||||
|
</html>
|
25
style.css
Normal file
25
style.css
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
container {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table,
|
||||||
|
th,
|
||||||
|
td {
|
||||||
|
border: solid black 1px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
background-color: lightgoldenrodyellow;
|
||||||
|
}
|
||||||
|
/* from table element's table class on 8th child th element and add 1 each time */
|
||||||
|
table.table th:nth-child(1n + 9) {
|
||||||
|
background-color: lightgoldenrodyellow;
|
||||||
|
}
|
||||||
|
table.table td:nth-child(1n + 9) {
|
||||||
|
background-color: lightgoldenrodyellow;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user