let currentPage = 1; const rowsPerPage = 10; let currentEditingRow = null; let areaData = []; let areaData_bak = []; //网络信息 let wired_type; let wired_ip; let wired_mask; let wired_gateway; let wired_dns; let wireless_type; let wireless_ip; let wireless_mask; let wireless_gateway; let wireless_dns; let wireless_ssid; let wireless_passwd; let wifi_list = []; //页面加载初始化 document.addEventListener('DOMContentLoaded', function () { fetchSystemData(); //初始化系统信息 fetchAreaData();//初始化区域信息 //升级按钮 document.getElementById('upsystem').addEventListener('click',function () {upgrade_system();}); //设备IP配置按钮--显示模态框 document.getElementById('showIPConfig').addEventListener('click',function () {show_IPConfigModel();}); //设备IP配置模态框--保存按钮 document.getElementById('saveIPConfig').addEventListener('click',function () {save_IPConfig();}); document.getElementById('connectWifi').addEventListener('click',function () {connect_wifi();}); //服务器IP配置 document.getElementById('showServerIP').addEventListener('click',function () {show_ServerIPConfig();}); document.getElementById('saveServerIP').addEventListener('click',function () {save_ServerIPConfig();}); //区域管理 document.getElementById('addAreaButton').addEventListener('click',function () {show_AreaManager();}); document.getElementById('addArea').addEventListener('click',function () {add_Area();}); //修改区域模态框 document.getElementById('modifArea').addEventListener('click',function () {modify_Area();}); }); //刷新系统信息 async function fetchSystemData() { try{ let response = await fetch('/api/system/info'); if (!response.ok) { throw new Error('Network response was not ok'); } data = await response.json(); document.getElementById('system_version').textContent = data.version; document.getElementById('dev_ID').textContent = data.ID; document.getElementById('service_ip').value = data.service_ip; document.getElementById('service_port').value = data.service_port; //网络信息 wired_type = data.wired_type; wired_ip = data.wired_ip; wired_mask = data.wired_mask; wired_gateway = data.wired_gateway; wired_dns = data.wired_dns; wireless_type = data.wireless_type; wireless_ip = data.wireless_ip; wireless_mask = data.wireless_mask; wireless_gateway = data.wireless_gateway; wireless_dns = data.wireless_dns; wireless_ssid = data.ssid; wireless_passwd = data.wifi_passwd; //wifi -list wifi_list = data.wifi_list; wifi_list.unshift("请选择"); document.getElementById('dev_IP').textContent = `有线--${wired_ip} 无线--${wireless_ip}`; }catch (error) { console.error('Error fetching model data:', error); } } //刷新区域信息-- async function fetchAreaData() { try{ let response = await fetch('/api/system/area'); if (!response.ok) { throw new Error('Network response was not ok'); } areaData = await response.json(); areaData_bak = areaData; currentPage = 1; // 重置当前页为第一页 renderTable(); //刷新表格 renderPagination(); }catch (error) { console.error('Error fetching model data:', error); } } //刷新表格 function renderTable(){ const tableBody = document.getElementById('table-body-area'); tableBody.innerHTML = ''; const start = (currentPage - 1) * rowsPerPage; const end = start + rowsPerPage; const pageData = areaData.slice(start, end); const surplus_count = rowsPerPage - pageData.length; pageData.forEach((area) => { const row = document.createElement('tr'); row.innerHTML = ` ${area.ID} ${area.area_name} `; tableBody.appendChild(row); row.querySelector('.modify-btn').addEventListener('click', () => show_modify_Area(row)); row.querySelector('.delete-btn').addEventListener('click', () => del_Area(row)); }); } //刷新分页标签 function renderPagination() { const pagination = document.getElementById('pagination-area'); pagination.innerHTML = ''; const totalPages = Math.ceil(areaData.length / rowsPerPage); for (let i = 1; i <= totalPages; i++) { const pageItem = document.createElement('li'); pageItem.className = 'page-item' + (i === currentPage ? ' active' : ''); pageItem.innerHTML = `${i}`; pageItem.addEventListener('click', (event) => { event.preventDefault(); currentPage = i; renderTable(); renderPagination(); }); pagination.appendChild(pageItem); } } //系统升级 async function upgrade_system(){ alert("点击了系统升级按钮"); } //设备IP地址配置 --- 显示模态框--------------------- function show_IPConfigModel(){ //wired页面 const el_wired_dhcp = document.getElementById('dhcp_lan'); const el_wired_static = document.getElementById('static_lan'); const el_wired_ip = document.getElementById('wiredIpAddress'); const el_wired_mask = document.getElementById('wiredSubnetMask'); const el_wired_gateway = document.getElementById('wiredGateway'); const el_wired_dns = document.getElementById('wiredDNS'); if(wired_type==0){ //dhcp el_wired_dhcp.checked = true; }else{ el_wired_static.checked = true; } el_wired_ip.value = wired_ip; el_wired_mask.value = wired_mask; el_wired_gateway.value = wired_gateway; el_wired_dns.value = wired_dns; //wireless页面 //document.getElementById('wirelessNetwork'); const el_wireless_passwd = document.getElementById('wifi_passwd'); const el_wireless_dhcp = document.getElementById('dhcp_wifi'); const el_wireless_static = document.getElementById('static_wifi'); const el_wireless_ip = document.getElementById('wirelessIpAddress'); const el_wireless_mask = document.getElementById('wirelessSubnetMask'); const el_wireless_gateway = document.getElementById('wirelessGateway'); const el_wireless_dns = document.getElementById('wirelessDNS'); //wireless_ssid = data.ssid; //wireless_passwd = data.wifi_passwd; if(wired_type==0){ //dhcp el_wireless_dhcp.checked = true; }else{ el_wireless_static.checked = true; } set_select_data("wirelessNetwork",wifi_list); if(wireless_ssid == null || wireless_ssid == ""){ //控件不可操作 el_wireless_dhcp.disabled=true; el_wireless_static.disabled=true; el_wireless_ip.disabled=true; el_wireless_mask.disabled=true; el_wireless_gateway.disabled=true; el_wireless_dns.disabled=true; }else{ let bfind = set_select_selct("wirelessNetwork",wireless_ssid); if(bfind== false){ el_wireless_dhcp.disabled=true; el_wireless_static.disabled=true; el_wireless_ip.disabled=true; el_wireless_mask.disabled=true; el_wireless_gateway.disabled=true; el_wireless_dns.disabled=true; }else{ el_wireless_passwd.value = wireless_passwd; el_wireless_ip.value = wireless_ip; el_wireless_mask.value = wireless_mask; el_wireless_gateway.value = wireless_gateway; el_wireless_dns.value = wireless_dns; } } $('#ipConfigModal').modal('show'); } //点击连接wifi 按钮 async function connect_wifi(){ alert("点击了连接wifi按钮"); } //设备IP地址配置 --- 点击保存按钮 async function save_IPConfig(){ alert("点击了设备IP保存按钮"); } //IP配置模态框,单选按钮点击 function handleRadioClick_lan(event){ const selectedRadio = event.target; const el_ip = document.getElementById('wiredIpAddress'); const el_mask = document.getElementById('wiredSubnetMask'); const el_gateway = document.getElementById('wiredGateway'); const el_dns = document.getElementById('wiredDNS'); let net_type = 0; //0--dhcp,1--static if (selectedRadio.id === 'dhcp_lan') { net_type = 1; el_ip.disabled = true; el_mask.disabled = true; el_gateway.disabled = true; el_dns.disabled = true; } else if(selectedRadio.id === 'static_lan'){ net_type = 2; el_ip.disabled = false; el_mask.disabled = false; el_gateway.disabled = false; el_dns.disabled = false; } } //IP配置模态框,单选按钮点击 function handleRadioClick_wifi(event){ const selectedRadio = event.target; let wifi_type = 0; //0--dhcp,1--static const el_ip = document.getElementById('wirelessIpAddress'); const el_mask = document.getElementById('wirelessSubnetMask'); const el_gateway = document.getElementById('wirelessGateway'); const el_dns = document.getElementById('wirelessDNS'); if (selectedRadio.id === 'dhcp_wifi') { net_type = 1; el_ip.disabled = true; el_mask.disabled = true; el_gateway.disabled = true; el_dns.disabled = true; } else if(selectedRadio.id === 'static_wifi'){ net_type = 2; el_ip.disabled = false; el_mask.disabled = false; el_gateway.disabled = false; el_dns.disabled = false; } } //服务器IP配置----------------------------------------- function show_ServerIPConfig(){ const el_serviceIP = document.getElementById('serviceIP_model'); const el_servicePort = document.getElementById('servicePort_model'); el_serviceIP.value = document.getElementById('service_ip').value; el_servicePort.value = document.getElementById('service_port').value; $('#ServerIPModal').modal('show'); } async function save_ServerIPConfig(){ const el_serverIP = document.getElementById('serviceIP_model'); const el_serverPort = document.getElementById('servicePort_model'); const btn = document.getElementById('saveServerIP'); serverIP = el_serverIP.value; serverPort = el_serverPort.value; if(serverIP==="" || serverPort===""){ alert("服务端IP和端口号不能为空!") } else{ if(isValidIP(serverIP)){ btn.disabled = true; const formData = new FormData(); formData.append('ip', serverIP); formData.append('port', serverPort); fetch("/api/system/changeserver", { method: 'POST', body: formData, }) .then(response => response.json()) .then(data => { btn.disabled = false; const istatus = data.status; alert(data.msg); if(istatus == 1){ fetchSystemData(); $('#ServerIPModal').modal('hide'); } }) .catch(error => { console.error('Error:', error); alert('修改失败,请重试。'); btn.disabled = false; }); } else{ alert("请输入正确的IP地址!") } } } //区域管理------------------------------------------- function show_AreaManager(){ $('#addAreaModal').modal('show'); } async function add_Area(){ const el_ereaname = document.getElementById('area_name'); const btn = document.getElementById('addArea'); area_name = el_ereaname.value; if(area_name===""){ alert("请输入区域名称"); }else{ btn.disabled = true; //提交数据 const url = '/api/channel/area/add'; const data = {"name":area_name}; // 发送 POST 请求 fetch(url, { method: 'POST', // 指定请求方法为 POST headers: { 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON }, body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 }) .then(response => response.json()) // 将响应解析为 JSON .then(data => { btn.disabled = false; const istatus = data.status; alert(data.msg); if(istatus == 1){ fetchAreaData(); $('#addAreaModal').modal('hide'); } }) .catch((error) => { alert(`Error: ${error.message}`); btn.disabled = false; }); } } //显示修改区域信息 function show_modify_Area(row){ currentEditingRow = row; area_name = row.cells[1].innerText; const el_areaname = document.getElementById('area_name_modif'); el_areaname.value = area_name; $('#modifyAreaModal').modal('show'); } //点击修改模态框的保存按钮 async function modify_Area(){ area_id = currentEditingRow.cells[0].innerText; area_name = document.getElementById('area_name_modif').value; const btn = document.getElementById('modifArea'); if(area_name===""){ alert("请输入区域名称!") }else{ btn.disabled = true; //提交数据 const url = '/api/channel/area/change'; const formData = new FormData(); formData.append('name', area_name); formData.append('id', area_id); //const data = {"name":area_name,"id":area_id}; // 发送 POST 请求 fetch(url, { method: 'POST', body: formData, }) .then(response => response.json()) // 将响应解析为 JSON .then(data => { btn.disabled = false; const istatus = data.status; alert(data.msg); if(istatus == 1){ fetchAreaData(); $('#modifyAreaModal').modal('hide'); } }) .catch((error) => { alert(`Error: ${error.message}`); btn.disabled = false; }); } } //删除区域信息 async function del_Area(row){ if (confirm('确定删除此区域吗?')){ currentEditingRow = row; area_id =row.cells[0].innerText; const url = '/api/channel/area/del'; const formData = new FormData(); formData.append('id', area_id); //const data = {"name":area_name,"id":area_id}; // 发送 POST 请求 fetch(url, { method: 'POST', body: formData, }) .then(response => response.json()) // 将响应解析为 JSON .then(data => { const istatus = data.status; alert(data.msg); if(istatus == 1){ //刷新列表 row.remove(); } }) .catch((error) => { alert(`Error: ${error.message}`); btn.disabled = false; }); } }