写一个HTML工程计价程序,程序中包含一个列表,列表表头包含序号、项目名称、项目特征、清单编码、单价和合价,且表格有横竖线分界,表格上方有添加、修改、保存和删除按钮
时间: 2024-05-11 22:17:51 浏览: 68
以下是一个简单的 HTML 工程计价程序,包含了一个表格和添加、修改、保存和删除按钮。请注意,这只是一个示例,需要根据实际需求进行修改和完善。
```html
<!DOCTYPE html>
<html>
<head>
<title>工程计价程序</title>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: center;
}
th {
background-color: lightgray;
}
button {
margin: 10px;
padding: 8px;
}
</style>
</head>
<body>
<h1>工程计价程序</h1>
<table>
<thead>
<tr>
<th>序号</th>
<th>项目名称</th>
<th>项目特征</th>
<th>清单编码</th>
<th>单价</th>
<th>合价</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>基础工程</td>
<td>地基处理</td>
<td>010101</td>
<td>100.00</td>
<td>10000.00</td>
</tr>
<tr>
<td>2</td>
<td>结构工程</td>
<td>钢筋混凝土结构</td>
<td>020101</td>
<td>200.00</td>
<td>20000.00</td>
</tr>
<tr>
<td>3</td>
<td>建筑工程</td>
<td>外墙装饰</td>
<td>030201</td>
<td>150.00</td>
<td>15000.00</td>
</tr>
</tbody>
</table>
<button id="add-button">添加</button>
<button id="edit-button">修改</button>
<button id="save-button">保存</button>
<button id="delete-button">删除</button>
<script>
var selectedRow = null;
var table = document.getElementsByTagName('table')[0];
var addButton = document.getElementById('add-button');
var editButton = document.getElementById('edit-button');
var saveButton = document.getElementById('save-button');
var deleteButton = document.getElementById('delete-button');
addButton.onclick = function() {
selectedRow = null;
clearForm();
toggleButtons(true, false, true, false);
};
editButton.onclick = function() {
if (selectedRow) {
toggleButtons(false, true, true, true);
} else {
alert('请先选择要修改的行!');
}
};
saveButton.onclick = function() {
if (selectedRow) {
updateRow();
} else {
addRow();
}
clearForm();
toggleButtons(true, false, true, false);
};
deleteButton.onclick = function() {
if (selectedRow) {
if (confirm('确定要删除所选行吗?')) {
table.deleteRow(selectedRow.rowIndex);
selectedRow = null;
}
} else {
alert('请先选择要删除的行!');
}
};
for (var i = 1; i < table.rows.length; i++) {
table.rows[i].onclick = function() {
if (selectedRow) {
selectedRow.classList.remove('selected');
}
this.classList.add('selected');
selectedRow = this;
toggleButtons(true, true, false, true);
fillForm();
};
}
function clearForm() {
document.getElementById('name').value = '';
document.getElementById('feature').value = '';
document.getElementById('code').value = '';
document.getElementById('price').value = '';
}
function fillForm() {
document.getElementById('name').value = selectedRow.cells[1].innerHTML;
document.getElementById('feature').value = selectedRow.cells[2].innerHTML;
document.getElementById('code').value = selectedRow.cells[3].innerHTML;
document.getElementById('price').value = selectedRow.cells[4].innerHTML;
}
function addRow() {
var newRow = table.insertRow();
var cells = [];
for (var i = 0; i < 6; i++) {
cells.push(newRow.insertCell());
}
cells[0].innerHTML = table.rows.length - 1;
cells[1].innerHTML = document.getElementById('name').value;
cells[2].innerHTML = document.getElementById('feature').value;
cells[3].innerHTML = document.getElementById('code').value;
cells[4].innerHTML = document.getElementById('price').value;
cells[5].innerHTML = parseFloat(cells[3].innerHTML) * parseFloat(cells[4].innerHTML);
}
function updateRow() {
selectedRow.cells[1].innerHTML = document.getElementById('name').value;
selectedRow.cells[2].innerHTML = document.getElementById('feature').value;
selectedRow.cells[3].innerHTML = document.getElementById('code').value;
selectedRow.cells[4].innerHTML = document.getElementById('price').value;
selectedRow.cells[5].innerHTML = parseFloat(selectedRow.cells[3].innerHTML) * parseFloat(selectedRow.cells[4].innerHTML);
}
function toggleButtons(add, edit, save, del) {
addButton.disabled = !add;
editButton.disabled = !edit;
saveButton.disabled = !save;
deleteButton.disabled = !del;
}
</script>
<form>
<label for="name">项目名称:</label>
<input type="text" id="name"><br>
<label for="feature">项目特征:</label>
<input type="text" id="feature"><br>
<label for="code">清单编码:</label>
<input type="text" id="code"><br>
<label for="price">单价:</label>
<input type="text" id="price"><br>
</form>
</body>
</html>
```
在这个程序中,我们使用了一个表格来展示项目清单,表格的每一行包含了项目的序号、名称、特征、清单编码、单价和合价。我们还添加了四个按钮:添加、修改、保存和删除。这些按钮可以帮助用户对项目清单进行增删改查操作。
当用户点击添加按钮时,程序会清空表单并启用保存按钮,以便用户添加新的项目。当用户点击修改按钮时,程序会将用户选择的行的数据填入表单,并启用保存和删除按钮,以便用户修改或删除该行数据。当用户点击保存按钮时,程序会根据表单中的数据添加新的行或更新已有的行。当用户点击删除按钮时,程序会删除用户选择的行。
在这个程序中,我们使用了 JavaScript 来实现按钮的响应和表格的操作。我们还使用了一些 CSS 样式来美化表格和按钮。
阅读全文