我需要一个有颜色的前端页面,页面包含数据表格使用HTML和JS编写,具有以下功能: 退仓单号和箱号绑定提交功能,可以手动添加或扫描添加。 扫描添加功能调用访问相机,可以扫描退仓单号或箱号,并将其添加到输入框中。 输入一个箱号,可以同时添加多个退仓单号,但箱号只能输入一次。 提交按钮,只有输入的箱号进行提交,才能进行下一个箱号和退仓单号的添加。 查询按钮,可以查询出所有的退仓单号和箱号数据。
时间: 2024-02-20 14:56:21 浏览: 81
XX铝业有限公司WMS系统项目方案书(完整版).docx
好的,根据您的要求,我可以给您提供以下思路和代码示例:
HTML代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>退仓单号和箱号绑定页面</title>
</head>
<body>
<h1>退仓单号和箱号绑定页面</h1>
<table id="data-table">
<tr>
<th>退仓单号</th>
<th>箱号</th>
</tr>
</table>
<br>
<label for="tno-input">退仓单号:</label>
<input type="text" id="tno-input">
<br>
<label for="cno-input">箱号:</label>
<input type="text" id="cno-input">
<button id="add-btn">添加</button>
<button id="scan-btn">扫描添加</button>
<button id="submit-btn">提交</button>
<button id="query-btn">查询</button>
<script src="main.js"></script>
</body>
</html>
```
JS代码示例:
```js
// 获取页面元素
const tnoInput = document.getElementById('tno-input');
const cnoInput = document.getElementById('cno-input');
const addBtn = document.getElementById('add-btn');
const scanBtn = document.getElementById('scan-btn');
const submitBtn = document.getElementById('submit-btn');
const queryBtn = document.getElementById('query-btn');
const dataTable = document.getElementById('data-table');
// 定义变量
let cnoSet = new Set(); // 存储已经输入过的箱号
// 添加按钮点击事件
addBtn.addEventListener('click', function() {
const tno = tnoInput.value.trim(); // 获取输入的退仓单号
const cno = cnoInput.value.trim(); // 获取输入的箱号
if (!tno || !cno) {
alert('退仓单号和箱号不能为空!');
return;
}
if (cnoSet.has(cno)) {
alert('该箱号已经输入过,请勿重复输入!');
return;
}
// 添加数据行
const tr = document.createElement('tr');
const tnoTd = document.createElement('td');
tnoTd.innerText = tno;
const cnoTd = document.createElement('td');
cnoTd.innerText = cno;
tr.appendChild(tnoTd);
tr.appendChild(cnoTd);
dataTable.appendChild(tr);
// 将箱号添加到集合中
cnoSet.add(cno);
// 清空输入框
tnoInput.value = '';
cnoInput.value = '';
});
// 扫描按钮点击事件
scanBtn.addEventListener('click', function() {
// TODO: 调用访问相机的函数,获取扫描结果
const scanResult = 'scan_result'; // 假设扫描结果为 'scan_result'
if (/^\d{10}$/.test(scanResult)) {
tnoInput.value = scanResult;
} else if (/^\d{11}$/.test(scanResult)) {
cnoInput.value = scanResult;
} else {
alert('扫描结果格式不正确!');
}
});
// 提交按钮点击事件
submitBtn.addEventListener('click', function() {
const cno = cnoInput.value.trim(); // 获取输入的箱号
if (!cnoSet.has(cno)) {
alert('该箱号未输入过,请先输入!');
return;
}
// TODO: 提交数据到后端
alert('数据提交成功!');
// 清空输入框和集合
tnoInput.value = '';
cnoInput.value = '';
cnoSet.clear();
});
// 查询按钮点击事件
queryBtn.addEventListener('click', function() {
// TODO: 查询后端数据,渲染到表格中
});
```
以上代码是一个简单的示例,您可以根据自己的实际需求进行修改和优化。另外,扫描功能需要调用浏览器的 API,不同浏览器的 API 可能有所不同,您需要根据不同浏览器进行适配。
阅读全文