|
@@ -1707,16 +1707,12 @@
|
|
|
<label>所属科室:</label>
|
|
<label>所属科室:</label>
|
|
|
<select id="equipmentDepartment" style="padding: 6px; border: 1px solid #ddd; border-radius: 4px; width: 120px;">
|
|
<select id="equipmentDepartment" style="padding: 6px; border: 1px solid #ddd; border-radius: 4px; width: 120px;">
|
|
|
<option value="">全部</option>
|
|
<option value="">全部</option>
|
|
|
- <option value="内科">内科</option>
|
|
|
|
|
- <option value="外科">外科</option>
|
|
|
|
|
</select>
|
|
</select>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<label>所属病区:</label>
|
|
<label>所属病区:</label>
|
|
|
<select id="equipmentWard" style="padding: 6px; border: 1px solid #ddd; border-radius: 4px; width: 120px;">
|
|
<select id="equipmentWard" style="padding: 6px; border: 1px solid #ddd; border-radius: 4px; width: 120px;">
|
|
|
<option value="">全部</option>
|
|
<option value="">全部</option>
|
|
|
- <option value="第一病区">第一病区</option>
|
|
|
|
|
- <option value="第二病区">第二病区</option>
|
|
|
|
|
</select>
|
|
</select>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
@@ -1801,6 +1797,10 @@
|
|
|
<label>Mac地址:</label>
|
|
<label>Mac地址:</label>
|
|
|
<input type="text" id="modalMacAddress" style="width: 100%; padding: 6px;">
|
|
<input type="text" id="modalMacAddress" style="width: 100%; padding: 6px;">
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label>设备位置:</label>
|
|
|
|
|
+ <input type="text" id="modalLocation" style="width: 100%; padding: 6px;">
|
|
|
|
|
+ </div>
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<label>在线状态:</label>
|
|
<label>在线状态:</label>
|
|
|
<select id="modalIsOnline" style="width: 100%; padding: 6px;">
|
|
<select id="modalIsOnline" style="width: 100%; padding: 6px;">
|
|
@@ -2076,10 +2076,6 @@
|
|
|
alert('显示新增患者表单');
|
|
alert('显示新增患者表单');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function showAddEquipmentForm() {
|
|
|
|
|
- alert('显示新增设备表单');
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
|
// 检查登录状态
|
|
// 检查登录状态
|
|
|
fetch('/shixian/api/status')
|
|
fetch('/shixian/api/status')
|
|
@@ -2761,13 +2757,17 @@
|
|
|
|
|
|
|
|
// 加载设备数据
|
|
// 加载设备数据
|
|
|
function loadEquipmentData() {
|
|
function loadEquipmentData() {
|
|
|
- fetch('/shixian/api/terminals')
|
|
|
|
|
- .then(response => response.json())
|
|
|
|
|
- .then(data => {
|
|
|
|
|
|
|
+ // 并行加载设备数据和科室数据
|
|
|
|
|
+ Promise.all([
|
|
|
|
|
+ fetch('/shixian/api/terminals').then(response => response.json()),
|
|
|
|
|
+ fetch('/shixian/api/departments').then(response => response.json())
|
|
|
|
|
+ ])
|
|
|
|
|
+ .then(([terminals, departments]) => {
|
|
|
|
|
+ // 更新设备表格
|
|
|
const tbody = document.getElementById('equipmentTableBody');
|
|
const tbody = document.getElementById('equipmentTableBody');
|
|
|
tbody.innerHTML = '';
|
|
tbody.innerHTML = '';
|
|
|
|
|
|
|
|
- data.forEach(terminal => {
|
|
|
|
|
|
|
+ terminals.forEach(terminal => {
|
|
|
const row = document.createElement('tr');
|
|
const row = document.createElement('tr');
|
|
|
const statusText = terminal.isOnline ? '在线' : '离线';
|
|
const statusText = terminal.isOnline ? '在线' : '离线';
|
|
|
|
|
|
|
@@ -2790,6 +2790,46 @@
|
|
|
`;
|
|
`;
|
|
|
tbody.appendChild(row);
|
|
tbody.appendChild(row);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ // 更新科室下拉框
|
|
|
|
|
+ const departmentSelect = document.getElementById('equipmentDepartment');
|
|
|
|
|
+ const currentDepartmentValue = departmentSelect.value;
|
|
|
|
|
+
|
|
|
|
|
+ // 保留默认选项
|
|
|
|
|
+ departmentSelect.innerHTML = '<option value="">全部</option>';
|
|
|
|
|
+
|
|
|
|
|
+ // 获取设备中存在的唯一科室列表
|
|
|
|
|
+ const existingDepartments = [...new Set(terminals.map(t => t.deptCode).filter(dept => dept))];
|
|
|
|
|
+
|
|
|
|
|
+ // 添加选项
|
|
|
|
|
+ existingDepartments.forEach(dept => {
|
|
|
|
|
+ const option = document.createElement('option');
|
|
|
|
|
+ option.value = dept;
|
|
|
|
|
+ option.textContent = dept;
|
|
|
|
|
+ departmentSelect.appendChild(option);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ departmentSelect.value = currentDepartmentValue;
|
|
|
|
|
+
|
|
|
|
|
+ // 更新病区下拉框
|
|
|
|
|
+ const wardSelect = document.getElementById('equipmentWard');
|
|
|
|
|
+ const currentWardValue = wardSelect.value;
|
|
|
|
|
+
|
|
|
|
|
+ // 保留默认选项
|
|
|
|
|
+ wardSelect.innerHTML = '<option value="">全部</option>';
|
|
|
|
|
+
|
|
|
|
|
+ // 获取设备中存在的唯一病区列表
|
|
|
|
|
+ const existingWards = [...new Set(terminals.map(t => t.wardCode).filter(ward => ward))];
|
|
|
|
|
+
|
|
|
|
|
+ // 添加选项
|
|
|
|
|
+ existingWards.forEach(ward => {
|
|
|
|
|
+ const option = document.createElement('option');
|
|
|
|
|
+ option.value = ward;
|
|
|
|
|
+ option.textContent = ward;
|
|
|
|
|
+ wardSelect.appendChild(option);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ wardSelect.value = currentWardValue;
|
|
|
})
|
|
})
|
|
|
.catch(error => {
|
|
.catch(error => {
|
|
|
console.error('加载设备数据失败:', error);
|
|
console.error('加载设备数据失败:', error);
|
|
@@ -2820,9 +2860,12 @@
|
|
|
|
|
|
|
|
url += params.join('&');
|
|
url += params.join('&');
|
|
|
|
|
|
|
|
- fetch(url)
|
|
|
|
|
- .then(response => response.json())
|
|
|
|
|
- .then(data => {
|
|
|
|
|
|
|
+ // 并行获取设备数据和科室数据
|
|
|
|
|
+ Promise.all([
|
|
|
|
|
+ fetch(url).then(response => response.json()),
|
|
|
|
|
+ fetch('/shixian/api/departments').then(response => response.json())
|
|
|
|
|
+ ])
|
|
|
|
|
+ .then(([data, departments]) => {
|
|
|
const tbody = document.getElementById('equipmentTableBody');
|
|
const tbody = document.getElementById('equipmentTableBody');
|
|
|
tbody.innerHTML = '';
|
|
tbody.innerHTML = '';
|
|
|
|
|
|
|
@@ -2852,6 +2895,46 @@
|
|
|
`;
|
|
`;
|
|
|
tbody.appendChild(row);
|
|
tbody.appendChild(row);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ // 更新科室下拉框
|
|
|
|
|
+ const departmentSelect = document.getElementById('equipmentDepartment');
|
|
|
|
|
+ const currentDepartmentValue = departmentSelect.value;
|
|
|
|
|
+
|
|
|
|
|
+ // 保留默认选项
|
|
|
|
|
+ departmentSelect.innerHTML = '<option value="">全部</option>';
|
|
|
|
|
+
|
|
|
|
|
+ // 获取设备中存在的唯一科室列表
|
|
|
|
|
+ const existingDepartments = [...new Set(terminals.map(t => t.deptCode).filter(dept => dept))];
|
|
|
|
|
+
|
|
|
|
|
+ // 添加选项
|
|
|
|
|
+ existingDepartments.forEach(dept => {
|
|
|
|
|
+ const option = document.createElement('option');
|
|
|
|
|
+ option.value = dept;
|
|
|
|
|
+ option.textContent = dept;
|
|
|
|
|
+ departmentSelect.appendChild(option);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ departmentSelect.value = currentDepartmentValue;
|
|
|
|
|
+
|
|
|
|
|
+ // 更新病区下拉框
|
|
|
|
|
+ const wardSelect = document.getElementById('equipmentWard');
|
|
|
|
|
+ const currentWardValue = wardSelect.value;
|
|
|
|
|
+
|
|
|
|
|
+ // 保留默认选项
|
|
|
|
|
+ wardSelect.innerHTML = '<option value="">全部</option>';
|
|
|
|
|
+
|
|
|
|
|
+ // 获取设备中存在的唯一病区列表
|
|
|
|
|
+ const existingWards = [...new Set(terminals.map(t => t.wardCode).filter(ward => ward))];
|
|
|
|
|
+
|
|
|
|
|
+ // 添加选项
|
|
|
|
|
+ existingWards.forEach(ward => {
|
|
|
|
|
+ const option = document.createElement('option');
|
|
|
|
|
+ option.value = ward;
|
|
|
|
|
+ option.textContent = ward;
|
|
|
|
|
+ wardSelect.appendChild(option);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ wardSelect.value = currentWardValue;
|
|
|
})
|
|
})
|
|
|
.catch(error => {
|
|
.catch(error => {
|
|
|
console.error('查询设备数据失败:', error);
|
|
console.error('查询设备数据失败:', error);
|
|
@@ -2889,10 +2972,12 @@
|
|
|
document.getElementById('modalSubnetMask').value = terminal.subnetMask || '';
|
|
document.getElementById('modalSubnetMask').value = terminal.subnetMask || '';
|
|
|
document.getElementById('modalGatewayAddress').value = terminal.gatewayAddress || '';
|
|
document.getElementById('modalGatewayAddress').value = terminal.gatewayAddress || '';
|
|
|
document.getElementById('modalMacAddress').value = terminal.macAddress || '';
|
|
document.getElementById('modalMacAddress').value = terminal.macAddress || '';
|
|
|
|
|
+ document.getElementById('modalLocation').value = '';
|
|
|
document.getElementById('modalIsOnline').value = terminal.isOnline ? 'true' : 'false';
|
|
document.getElementById('modalIsOnline').value = terminal.isOnline ? 'true' : 'false';
|
|
|
|
|
|
|
|
// 设置为只读模式
|
|
// 设置为只读模式
|
|
|
document.getElementById('modalTerminalType').readOnly = true;
|
|
document.getElementById('modalTerminalType').readOnly = true;
|
|
|
|
|
+ document.getElementById('modalTerminalNumberDisplay').readOnly = true;
|
|
|
document.getElementById('modalTerminalDesc').readOnly = true;
|
|
document.getElementById('modalTerminalDesc').readOnly = true;
|
|
|
document.getElementById('modalDeptCode').readOnly = true;
|
|
document.getElementById('modalDeptCode').readOnly = true;
|
|
|
document.getElementById('modalWardCode').readOnly = true;
|
|
document.getElementById('modalWardCode').readOnly = true;
|
|
@@ -2900,6 +2985,7 @@
|
|
|
document.getElementById('modalSubnetMask').readOnly = true;
|
|
document.getElementById('modalSubnetMask').readOnly = true;
|
|
|
document.getElementById('modalGatewayAddress').readOnly = true;
|
|
document.getElementById('modalGatewayAddress').readOnly = true;
|
|
|
document.getElementById('modalMacAddress').readOnly = true;
|
|
document.getElementById('modalMacAddress').readOnly = true;
|
|
|
|
|
+ document.getElementById('modalLocation').readOnly = true;
|
|
|
document.getElementById('modalIsOnline').disabled = true;
|
|
document.getElementById('modalIsOnline').disabled = true;
|
|
|
document.getElementById('saveEquipmentBtn').style.display = 'none';
|
|
document.getElementById('saveEquipmentBtn').style.display = 'none';
|
|
|
|
|
|
|
@@ -2935,10 +3021,12 @@
|
|
|
document.getElementById('modalSubnetMask').value = terminal.subnetMask || '';
|
|
document.getElementById('modalSubnetMask').value = terminal.subnetMask || '';
|
|
|
document.getElementById('modalGatewayAddress').value = terminal.gatewayAddress || '';
|
|
document.getElementById('modalGatewayAddress').value = terminal.gatewayAddress || '';
|
|
|
document.getElementById('modalMacAddress').value = terminal.macAddress || '';
|
|
document.getElementById('modalMacAddress').value = terminal.macAddress || '';
|
|
|
|
|
+ document.getElementById('modalLocation').value = '';
|
|
|
document.getElementById('modalIsOnline').value = terminal.isOnline ? 'true' : 'false';
|
|
document.getElementById('modalIsOnline').value = terminal.isOnline ? 'true' : 'false';
|
|
|
|
|
|
|
|
// 设置为可编辑模式
|
|
// 设置为可编辑模式
|
|
|
document.getElementById('modalTerminalType').readOnly = false;
|
|
document.getElementById('modalTerminalType').readOnly = false;
|
|
|
|
|
+ document.getElementById('modalTerminalNumberDisplay').readOnly = false;
|
|
|
document.getElementById('modalTerminalDesc').readOnly = false;
|
|
document.getElementById('modalTerminalDesc').readOnly = false;
|
|
|
document.getElementById('modalDeptCode').readOnly = false;
|
|
document.getElementById('modalDeptCode').readOnly = false;
|
|
|
document.getElementById('modalWardCode').readOnly = false;
|
|
document.getElementById('modalWardCode').readOnly = false;
|
|
@@ -2946,6 +3034,7 @@
|
|
|
document.getElementById('modalSubnetMask').readOnly = false;
|
|
document.getElementById('modalSubnetMask').readOnly = false;
|
|
|
document.getElementById('modalGatewayAddress').readOnly = false;
|
|
document.getElementById('modalGatewayAddress').readOnly = false;
|
|
|
document.getElementById('modalMacAddress').readOnly = false;
|
|
document.getElementById('modalMacAddress').readOnly = false;
|
|
|
|
|
+ document.getElementById('modalLocation').readOnly = false;
|
|
|
document.getElementById('modalIsOnline').disabled = false;
|
|
document.getElementById('modalIsOnline').disabled = false;
|
|
|
document.getElementById('saveEquipmentBtn').style.display = 'inline-block';
|
|
document.getElementById('saveEquipmentBtn').style.display = 'inline-block';
|
|
|
|
|
|
|
@@ -2979,6 +3068,7 @@
|
|
|
|
|
|
|
|
// 设置为可编辑模式
|
|
// 设置为可编辑模式
|
|
|
document.getElementById('modalTerminalType').readOnly = false;
|
|
document.getElementById('modalTerminalType').readOnly = false;
|
|
|
|
|
+ document.getElementById('modalTerminalNumberDisplay').readOnly = false;
|
|
|
document.getElementById('modalTerminalDesc').readOnly = false;
|
|
document.getElementById('modalTerminalDesc').readOnly = false;
|
|
|
document.getElementById('modalDeptCode').readOnly = false;
|
|
document.getElementById('modalDeptCode').readOnly = false;
|
|
|
document.getElementById('modalWardCode').readOnly = false;
|
|
document.getElementById('modalWardCode').readOnly = false;
|
|
@@ -3009,6 +3099,12 @@
|
|
|
isOnline: document.getElementById('modalIsOnline').value === 'true'
|
|
isOnline: document.getElementById('modalIsOnline').value === 'true'
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ // 验证必填字段
|
|
|
|
|
+ if (!terminalData.terminalNumber || terminalData.terminalNumber.trim() === '') {
|
|
|
|
|
+ alert('请输入设备编码');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
let url, method;
|
|
let url, method;
|
|
|
if (terminalNumber) {
|
|
if (terminalNumber) {
|
|
|
// 更新设备
|
|
// 更新设备
|
|
@@ -3053,7 +3149,7 @@
|
|
|
.then(data => {
|
|
.then(data => {
|
|
|
if (data.success) {
|
|
if (data.success) {
|
|
|
alert('删除成功');
|
|
alert('删除成功');
|
|
|
- loadEquipmentData(); // 重新加载数据
|
|
|
|
|
|
|
+ loadEquipmentData(); // 重新加载数据,确保下拉框同步更新
|
|
|
} else {
|
|
} else {
|
|
|
alert('删除失败: ' + data.message);
|
|
alert('删除失败: ' + data.message);
|
|
|
}
|
|
}
|
|
@@ -4727,43 +4823,7 @@
|
|
|
element.className = 'btn btn-primary';
|
|
element.className = 'btn btn-primary';
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 设备查询功能
|
|
|
|
|
- /*
|
|
|
|
|
- function searchEquipment() {
|
|
|
|
|
- const equipmentName = document.getElementById('equipmentName').value;
|
|
|
|
|
- const equipmentType = document.getElementById('equipmentType').value;
|
|
|
|
|
- const equipmentDepartment = document.getElementById('equipmentDepartment').value;
|
|
|
|
|
- const equipmentWard = document.getElementById('equipmentWard').value;
|
|
|
|
|
- const equipmentStatus = document.getElementById('equipmentStatus').value;
|
|
|
|
|
-
|
|
|
|
|
- // 这里应该发送请求到后端查询设备数据
|
|
|
|
|
- // 示例代码:
|
|
|
|
|
- // fetch(`/api/equipment?name=${equipmentName}&type=${equipmentType}&department=${equipmentDepartment}&ward=${equipmentWard}&status=${equipmentStatus}`)
|
|
|
|
|
- // .then(response => response.json())
|
|
|
|
|
- // .then(data => {
|
|
|
|
|
- // // 更新表格数据
|
|
|
|
|
- // })
|
|
|
|
|
-
|
|
|
|
|
- alert(`查询条件:
|
|
|
|
|
-设备名称: ${equipmentName}
|
|
|
|
|
-设备类型: ${equipmentType}
|
|
|
|
|
-所属科室: ${equipmentDepartment}
|
|
|
|
|
-所属病区: ${equipmentWard}
|
|
|
|
|
-在线状态: ${equipmentStatus}`);
|
|
|
|
|
- }
|
|
|
|
|
- */
|
|
|
|
|
-
|
|
|
|
|
- // 清空设备查询条件
|
|
|
|
|
- /*
|
|
|
|
|
- function clearEquipmentSearch() {
|
|
|
|
|
- document.getElementById('equipmentName').value = '';
|
|
|
|
|
- document.getElementById('equipmentType').value = '';
|
|
|
|
|
- document.getElementById('equipmentDepartment').value = '';
|
|
|
|
|
- document.getElementById('equipmentWard').value = '';
|
|
|
|
|
- document.getElementById('equipmentStatus').value = '';
|
|
|
|
|
- }
|
|
|
|
|
- */
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
</body>
|
|
</body>
|