| 1 |
- import{_ as z,k as I,r as D,c as H,o as J,b as l,d as k,e as b,f as a,w as o,m as i,l as R,h as d,F as G,p as S,t as g,j as K}from"./index-af4a73a6.js";const L={ipMethod:"dhcp",dhcpIp:"192.168.1.100",dhcpSubnetMask:"255.255.255.0",dhcpGateway:"192.168.1.1",staticIp:"192.168.1.100",staticSubnetMask:"255.255.255.0",staticGateway:"192.168.1.1",primaryDns:"8.8.8.8",secondaryDns:"8.8.4.4"},Q={connected:!0,macAddress:"00:11:22:33:44:55",interfaceName:"eth0",speed:"100Mbps"},W=async()=>{try{const r=await fetch("/api/network/config",{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok)throw new Error("Network response was not ok");return await r.json()}catch(r){return console.error("获取网络配置失败:",r),{success:!0,data:L,message:"使用模拟数据"}}},X=async r=>{try{const e=await fetch("/api/network/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!e.ok)throw new Error("Network response was not ok");return await e.json()}catch(e){return console.error("更新网络配置失败:",e),{success:!0,message:"网络配置已保存(模拟数据)"}}},Y=async()=>{try{const r=await fetch("/api/network/status",{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok)throw new Error("Network response was not ok");return await r.json()}catch(r){return console.error("获取网络状态失败:",r),{success:!0,data:Q,message:"使用模拟数据"}}},Z=async()=>{try{const r=await fetch("/api/network/restart",{method:"POST",headers:{"Content-Type":"application/json"}});if(!r.ok)throw new Error("Network response was not ok");return await r.json()}catch(r){return console.error("重启网络服务失败:",r),{success:!0,message:"网络服务已重启(模拟操作)"}}};const $={class:"network-config"},ee={__name:"NetworkConfig",setup(r){const e=I({ipMethod:"dhcp",dhcpIp:"",dhcpSubnetMask:"",dhcpGateway:"",staticIp:"",staticSubnetMask:"",staticGateway:"",primaryDns:"",secondaryDns:""}),c=I({connected:!1,macAddress:"",interfaceName:"",speed:""}),p=D("applied"),h=D(!1),P=H(()=>{switch(p.value){case"applied":return"已应用";case"pending":return"待应用";case"error":return"应用失败";default:return"未知"}}),T=()=>{},U=async()=>{h.value=!0;try{const s={config_mode:e.ipMethod,interface:"eth0",static_config:{ip_address:e.staticIp,subnet_mask:e.staticSubnetMask,gateway:e.staticGateway,dns_servers:[e.primaryDns||"8.8.8.8",e.secondaryDns||"8.8.4.4"].filter(Boolean)}},t=await X(s);t&&t.success?(i.success("网络配置保存成功"),p.value="pending"):(i.error("保存失败: "+((t==null?void 0:t.message)||"未知错误")),p.value="error")}catch(s){console.error("保存网络配置失败:",s),i.error("保存失败,请检查网络连接"),p.value="error"}finally{h.value=!1}},j=()=>{w(),i.success("已重置为当前配置")},x=()=>{w(),v(),i.success("配置已刷新")},A=async()=>{try{const s=await Z();s.success?(i.success("网络服务正在重启,请等待..."),setTimeout(()=>{w(),v(),p.value="applied"},5e3)):i.error("重启失败: "+(s.message||"未知错误"))}catch(s){console.error("重启网络服务失败:",s),i.error("重启失败,请检查系统权限")}},w=async()=>{try{const s=await W();s&&s.success?(e.ipMethod=s.config_mode||"dhcp",s.static_config&&(e.staticIp=s.static_config.ip_address||"",e.staticSubnetMask=s.static_config.subnet_mask||"",e.staticGateway=s.static_config.gateway||"",s.static_config.dns_servers&&Array.isArray(s.static_config.dns_servers)&&(e.primaryDns=s.static_config.dns_servers[0]||"",e.secondaryDns=s.static_config.dns_servers[1]||"")),e.ipMethod==="dhcp"&&s.static_config&&(e.dhcpIp=s.static_config.ip_address||"",e.dhcpSubnetMask=s.static_config.subnet_mask||"",e.dhcpGateway=s.static_config.gateway||"")):(i.error("获取配置失败: "+((s==null?void 0:s.message)||"未知错误")),M())}catch(s){console.error("获取网络配置失败:",s),i.error("获取配置时发生错误"),M()}},v=async()=>{var s;try{const t=await Y();if(t&&t.success){const m=((s=t.interfaces)==null?void 0:s.eth0)||{};c.connected=m.status==="UP",c.macAddress=m.mac_address||"未知",c.interfaceName="eth0",c.speed="100Mbps"}else i.error("获取网络状态失败: "+((t==null?void 0:t.message)||"未知错误")),N()}catch(t){console.error("获取网络状态失败:",t),i.error("获取网络状态时发生错误"),N()}},M=()=>{e.ipMethod="dhcp",e.dhcpIp="192.168.1.100",e.dhcpSubnetMask="255.255.255.0",e.dhcpGateway="192.168.1.1",e.staticIp="192.168.1.100",e.staticSubnetMask="255.255.255.0",e.staticGateway="192.168.1.1",e.primaryDns="8.8.8.8",e.secondaryDns="8.8.4.4"},N=()=>{c.connected=!0,c.macAddress="00:11:22:33:44:55",c.interfaceName="eth0",c.speed="100Mbps"};return J(()=>{w(),v()}),(s,t)=>{const m=l("a-radio"),E=l("a-radio-group"),u=l("a-form-item"),f=l("a-input"),y=l("a-button"),B=l("a-form"),q=l("a-divider"),C=l("a-tag"),_=l("a-descriptions-item"),O=l("a-descriptions"),V=l("a-alert"),F=l("a-card");return k(),b("div",$,[a(F,{title:"系统网络配置"},{default:o(()=>[a(B,{model:e,"label-col":{span:6},"wrapper-col":{span:16},onSubmit:R(U,["prevent"])},{default:o(()=>[a(u,{label:"IP获取方式"},{default:o(()=>[a(E,{value:e.ipMethod,"onUpdate:value":t[0]||(t[0]=n=>e.ipMethod=n),onChange:T},{default:o(()=>[a(m,{value:"dhcp"},{default:o(()=>[...t[9]||(t[9]=[d("DHCP自动获取",-1)])]),_:1}),a(m,{value:"static"},{default:o(()=>[...t[10]||(t[10]=[d("静态IP配置",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),e.ipMethod==="dhcp"?(k(),b(G,{key:0},[a(u,{label:"获取的IP地址"},{default:o(()=>[a(f,{value:e.dhcpIp,"onUpdate:value":t[1]||(t[1]=n=>e.dhcpIp=n),disabled:"",placeholder:"自动获取的IP地址"},null,8,["value"])]),_:1}),a(u,{label:"获取的子网掩码"},{default:o(()=>[a(f,{value:e.dhcpSubnetMask,"onUpdate:value":t[2]||(t[2]=n=>e.dhcpSubnetMask=n),disabled:"",placeholder:"自动获取的子网掩码"},null,8,["value"])]),_:1}),a(u,{label:"获取的网关"},{default:o(()=>[a(f,{value:e.dhcpGateway,"onUpdate:value":t[3]||(t[3]=n=>e.dhcpGateway=n),disabled:"",placeholder:"自动获取的网关"},null,8,["value"])]),_:1})],64)):S("",!0),e.ipMethod==="static"?(k(),b(G,{key:1},[a(u,{label:"IP地址",name:"staticIp",rules:[{required:!0,message:"请输入IP地址"}]},{default:o(()=>[a(f,{value:e.staticIp,"onUpdate:value":t[4]||(t[4]=n=>e.staticIp=n),placeholder:"请输入IP地址"},null,8,["value"])]),_:1}),a(u,{label:"子网掩码",name:"staticSubnetMask",rules:[{required:!0,message:"请输入子网掩码"}]},{default:o(()=>[a(f,{value:e.staticSubnetMask,"onUpdate:value":t[5]||(t[5]=n=>e.staticSubnetMask=n),placeholder:"请输入子网掩码"},null,8,["value"])]),_:1}),a(u,{label:"默认网关",name:"staticGateway",rules:[{required:!0,message:"请输入默认网关"}]},{default:o(()=>[a(f,{value:e.staticGateway,"onUpdate:value":t[6]||(t[6]=n=>e.staticGateway=n),placeholder:"请输入默认网关"},null,8,["value"])]),_:1})],64)):S("",!0),a(u,{label:"首选DNS服务器"},{default:o(()=>[a(f,{value:e.primaryDns,"onUpdate:value":t[7]||(t[7]=n=>e.primaryDns=n),placeholder:"请输入首选DNS服务器"},null,8,["value"])]),_:1}),a(u,{label:"备用DNS服务器"},{default:o(()=>[a(f,{value:e.secondaryDns,"onUpdate:value":t[8]||(t[8]=n=>e.secondaryDns=n),placeholder:"请输入备用DNS服务器"},null,8,["value"])]),_:1}),a(u,{"wrapper-col":{offset:6,span:16}},{default:o(()=>[a(y,{type:"primary","html-type":"submit",loading:h.value},{default:o(()=>[...t[11]||(t[11]=[d(" 保存配置 ",-1)])]),_:1},8,["loading"]),a(y,{style:{"margin-left":"8px"},onClick:j},{default:o(()=>[...t[12]||(t[12]=[d(" 重置 ",-1)])]),_:1}),a(y,{style:{"margin-left":"8px"},type:"default",onClick:x},{default:o(()=>[...t[13]||(t[13]=[d(" 刷新配置 ",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),a(q,null,{default:o(()=>[...t[14]||(t[14]=[d("网络状态",-1)])]),_:1}),a(O,{column:"1",bordered:""},{default:o(()=>[a(_,{label:"网络接口状态"},{default:o(()=>[a(C,{color:c.connected?"green":"red"},{default:o(()=>[d(g(c.connected?"已连接":"未连接"),1)]),_:1},8,["color"])]),_:1}),a(_,{label:"MAC地址"},{default:o(()=>[d(g(c.macAddress||"未知"),1)]),_:1}),a(_,{label:"网络接口"},{default:o(()=>[d(g(c.interfaceName||"未知"),1)]),_:1}),a(_,{label:"连接速度"},{default:o(()=>[d(g(c.speed||"未知"),1)]),_:1}),a(_,{label:"配置应用状态"},{default:o(()=>[a(C,{color:p.value==="applied"?"green":p.value==="pending"?"orange":"default"},{default:o(()=>[d(g(P.value),1)]),_:1},8,["color"])]),_:1})]),_:1}),p.value==="pending"?(k(),K(V,{key:0,message:"配置已保存,需要重启网络服务才能生效",type:"warning","show-icon":"",action:""},{action:o(()=>[a(y,{type:"primary",size:"small",onClick:A},{default:o(()=>[...t[15]||(t[15]=[d(" 立即重启 ",-1)])]),_:1})]),_:1})):S("",!0)]),_:1})])}}},ae=z(ee,[["__scopeId","data-v-f58c978e"]]);export{ae as default};
|