odf_new/web/assets/pages-rack-detail-index.v4UrVkEj.js
2026-03-05 10:52:04 +08:00

2 lines
13 KiB
JavaScript

import{e,v as a,x as l,o as t,c as s,w as o,a as i,b as u,u as n,t as c,g as d,s as r,d as f,I as m,i as p,y as _,S as v,z as b,A as k,l as y,F as g,m as h,f as C,B as x,j as R,n as V,q as T,h as F}from"./index-Cr_ht7z3.js";import{_ as w}from"./home_bg.BmQJoAoC.js";import{_ as U}from"./ic_back.BKIFUCMS.js";import{o as I}from"./uni-app.es.yixCAkvl.js";import{s as O,c as A,d as N}from"./machine.DB7S_sGk.js";import{s as P}from"./index.C_M5FNPz.js";import{_ as j}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./api.T7U6XU0r.js";const B=j({__name:"add-note-dialog",props:{visible:{type:Boolean,default:!1}},emits:["close","confirm"],setup(b,{emit:k}){const y=b,g=k,h=e(""),C=e(0),x=e(0),R=e(""),V=e(""),T=e(""),F=a((()=>P.dictUnitTypes.length>0&&C.value<P.dictUnitTypes.length?P.dictUnitTypes[C.value].dictLabel:"请选择")),w=a((()=>P.dictBusinessTypes.length>0&&x.value<P.dictBusinessTypes.length?P.dictBusinessTypes[x.value].dictLabel:"请选择"));function U(e){C.value=Number(e.detail.value)}function I(e){x.value=Number(e.detail.value)}function O(){g("close")}function A(){if(!h.value.trim())return void r({title:"请输入业务名称",icon:"none"});if(!R.value||!V.value||!T.value)return void r({title:"请输入端口号",icon:"none"});const e=P.dictUnitTypes.length>0?P.dictUnitTypes[C.value].dictLabel:"",a=P.dictBusinessTypes.length>0?P.dictBusinessTypes[x.value].dictLabel:"",l=`${h.value} ${e} ${a} ${R.value}/${V.value}/${T.value}`;g("confirm",l),g("close")}return l((()=>y.visible),(e=>{e&&(h.value="",C.value=0,x.value=0,R.value="",V.value="",T.value="")})),(e,a)=>{const l=f,r=m,k=p,y=_,g=v;return b.visible?(t(),s(k,{key:0,class:"add-note-overlay"},{default:o((()=>[i(k,{class:"add-note-content"},{default:o((()=>[i(l,{class:"dialog-title"},{default:o((()=>[u("添加备注")])),_:1}),i(g,{class:"scroll-area","scroll-y":""},{default:o((()=>[i(k,{class:"section"},{default:o((()=>[i(l,{class:"section-label"},{default:o((()=>[u("业务名称")])),_:1}),i(r,{class:"form-input",modelValue:h.value,"onUpdate:modelValue":a[0]||(a[0]=e=>h.value=e),placeholder:"请输入业务名称"},null,8,["modelValue"])])),_:1}),i(k,{class:"section"},{default:o((()=>[i(l,{class:"section-label"},{default:o((()=>[u("设备型号")])),_:1}),i(y,{mode:"selector",range:n(P).dictUnitTypes,"range-key":"dictLabel",value:C.value,onChange:U},{default:o((()=>[i(k,{class:"picker-box"},{default:o((()=>[i(l,{class:"picker-text"},{default:o((()=>[u(c(F.value),1)])),_:1})])),_:1})])),_:1},8,["range","value"])])),_:1}),i(k,{class:"section"},{default:o((()=>[i(l,{class:"section-label"},{default:o((()=>[u("业务类型")])),_:1}),i(y,{mode:"selector",range:n(P).dictBusinessTypes,"range-key":"dictLabel",value:x.value,onChange:I},{default:o((()=>[i(k,{class:"picker-box"},{default:o((()=>[i(l,{class:"picker-text"},{default:o((()=>[u(c(w.value),1)])),_:1})])),_:1})])),_:1},8,["range","value"])])),_:1}),i(k,{class:"section"},{default:o((()=>[i(l,{class:"section-label"},{default:o((()=>[u("端口号")])),_:1}),i(k,{class:"port-inputs"},{default:o((()=>[i(r,{class:"form-input port-input",modelValue:R.value,"onUpdate:modelValue":a[1]||(a[1]=e=>R.value=e),type:"number",placeholder:"1号端口数"},null,8,["modelValue"]),i(r,{class:"form-input port-input",modelValue:V.value,"onUpdate:modelValue":a[2]||(a[2]=e=>V.value=e),type:"number",placeholder:"2号端口数"},null,8,["modelValue"]),i(r,{class:"form-input port-input",modelValue:T.value,"onUpdate:modelValue":a[3]||(a[3]=e=>T.value=e),type:"number",placeholder:"3号端口数"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),i(k,{class:"btn-row"},{default:o((()=>[i(k,{class:"btn btn-cancel",onClick:O},{default:o((()=>[i(l,{class:"btn-text"},{default:o((()=>[u("取消")])),_:1})])),_:1}),i(k,{class:"btn btn-submit",onClick:A},{default:o((()=>[i(l,{class:"btn-text-white"},{default:o((()=>[u("提交")])),_:1})])),_:1})])),_:1})])),_:1})])),_:1})):d("",!0)}}},[["__scopeId","data-v-a5125bb3"]]),L=j({__name:"port-edit-dialog",props:{visible:{type:Boolean,default:!1},portId:{type:[Number,String],default:""}},emits:["close","saved"],setup(a,{emit:R}){const V=a,T=R,F=e(!1),w=e(!1),U=b({id:"",name:"",frameName:"",status:0,remarks:"",opticalAttenuation:"",opticalCableOffRemarks:"",historyRemarks:"",historyFault:[]}),I=b({status:0,remarks:"",opticalAttenuation:"",opticalCableOffRemarks:"",historyRemarks:"",historyFault:[]});function N(e){I.status=e,0===e&&(I.remarks="")}function j(){I.historyFault.push({faultTime:"",faultReason:""})}function L(e){I.remarks=I.remarks?I.remarks+"\n"+e:e,w.value=!1}function $(){T("close")}function S(){}async function H(){for(let a=0;a<I.historyFault.length;a++)if(!I.historyFault[a].faultTime||!I.historyFault[a].faultTime.trim())return void r({title:"请选择障碍发生时间!",icon:"none"});try{const e=await O({Id:U.id,Status:I.status,Remarks:I.remarks,OpticalAttenuation:I.opticalAttenuation,HistoryRemarks:I.historyRemarks,HistoryFault:I.historyFault,OpticalCableOffRemarks:I.opticalCableOffRemarks});200===e.code?(r({title:"保存成功",icon:"success"}),T("close"),T("saved")):r({title:e.msg||"保存失败",icon:"none"})}catch(e){r({title:"网络异常",icon:"none"})}}return l((()=>V.visible),(e=>{e&&V.portId&&async function(){F.value=!0;try{const e=await A(V.portId);if(200===e.code&&e.data){const a=e.data;Object.assign(U,{id:a.id,name:a.name||"",frameName:a.frameName||"",status:a.status,remarks:a.remarks||"",opticalAttenuation:a.opticalAttenuation||"",opticalCableOffRemarks:a.opticalCableOffRemarks||"",historyRemarks:a.historyRemarks||"",historyFault:a.historyFault||[]}),I.status=a.status,I.remarks=a.remarks||"",I.opticalAttenuation=a.opticalAttenuation||"",I.opticalCableOffRemarks=a.opticalCableOffRemarks||"",I.historyRemarks=a.historyRemarks||"",I.historyFault=(a.historyFault||[]).map((e=>({faultTime:e.faultTime||"",faultReason:e.faultReason||""})))}}finally{F.value=!1}}()})),(e,l)=>{const r=f,b=p,R=x,V=m,T=_,O=v;return a.visible?(t(),s(b,{key:0,class:"port-edit-overlay",onClick:C(S,["self"])},{default:o((()=>[i(b,{class:"port-edit-content"},{default:o((()=>[F.value?(t(),s(b,{key:0,class:"loading-box"},{default:o((()=>[i(r,{class:"loading-text"},{default:o((()=>[u("loading...")])),_:1})])),_:1})):(t(),s(O,{key:1,class:"scroll-area","scroll-y":""},{default:o((()=>[i(b,{class:"section"},{default:o((()=>[i(b,{class:"location-row"},{default:o((()=>[i(r,{class:"location-text"},{default:o((()=>[u("位置:"+c(U.frameName)+c(U.name),1)])),_:1}),i(b,{class:"status-badge"},{default:o((()=>[i(b,{class:k(["status-dot",1===U.status?"dot-green":"dot-red"])},null,8,["class"]),i(r,{class:"status-label"},{default:o((()=>[u(c(1===U.status?"已连接":"已断开"),1)])),_:1})])),_:1})])),_:1})])),_:1}),i(b,{class:"section"},{default:o((()=>[i(r,{class:"section-title"},{default:o((()=>[u("备注说明")])),_:1}),i(b,{class:"remarks-row"},{default:o((()=>[i(R,{class:"remarks-input",modelValue:I.remarks,"onUpdate:modelValue":l[0]||(l[0]=e=>I.remarks=e),maxlength:-1,placeholder:"请输入备注说明",disabled:!n(P).isPermission,rows:5},null,8,["modelValue","disabled"]),n(P).isPermission?(t(),s(b,{key:0,class:"add-note-btn",onClick:l[1]||(l[1]=e=>w.value=!0)},{default:o((()=>[i(r,{class:"add-note-text"},{default:o((()=>[u("添加备注")])),_:1})])),_:1})):d("",!0)])),_:1})])),_:1}),i(b,{class:"section"},{default:o((()=>[i(r,{class:"section-title"},{default:o((()=>[u("光衰信息")])),_:1}),i(V,{class:"form-input",modelValue:I.opticalAttenuation,"onUpdate:modelValue":l[2]||(l[2]=e=>I.opticalAttenuation=e),placeholder:"请输入光衰信息",disabled:!n(P).isPermission},null,8,["modelValue","disabled"])])),_:1}),i(b,{class:"section"},{default:o((()=>[i(r,{class:"section-title"},{default:o((()=>[u("历史障碍记录")])),_:1}),i(b,{class:"fault-list"},{default:o((()=>[(t(!0),y(g,null,h(I.historyFault,((e,a)=>(t(),s(b,{class:"fault-item",key:a},{default:o((()=>[i(b,{class:"fault-row"},{default:o((()=>[i(T,{mode:"date",value:e.faultTime?e.faultTime.substring(0,10):"",disabled:!n(P).isPermission,onChange:e=>function(e,a){I.historyFault[a].faultTime=e.detail.value}(e,a)},{default:o((()=>[i(b,{class:"date-picker"},{default:o((()=>[i(r,{class:k(e.faultTime?"date-text":"date-placeholder")},{default:o((()=>[u(c(e.faultTime||"选择日期"),1)])),_:2},1032,["class"])])),_:2},1024)])),_:2},1032,["value","disabled","onChange"]),i(V,{class:"fault-reason-input",modelValue:e.faultReason,"onUpdate:modelValue":a=>e.faultReason=a,placeholder:"故障原因",disabled:!n(P).isPermission},null,8,["modelValue","onUpdate:modelValue","disabled"]),n(P).isPermission?(t(),s(b,{key:0,class:"delete-btn",onClick:e=>function(e){I.historyFault.splice(e,1)}(a)},{default:o((()=>[i(r,{class:"delete-btn-text"},{default:o((()=>[u("-")])),_:1})])),_:2},1032,["onClick"])):d("",!0)])),_:2},1024)])),_:2},1024)))),128))])),_:1}),n(P).isPermission?(t(),s(b,{key:0,class:"add-record-link",onClick:j},{default:o((()=>[i(r,{class:"add-record-text"},{default:o((()=>[u("添加新记录")])),_:1})])),_:1})):d("",!0)])),_:1}),i(b,{class:"section"},{default:o((()=>[i(r,{class:"section-title"},{default:o((()=>[u("光缆段信息")])),_:1}),i(V,{class:"form-input",modelValue:I.opticalCableOffRemarks,"onUpdate:modelValue":l[3]||(l[3]=e=>I.opticalCableOffRemarks=e),placeholder:"请输入光缆段信息",disabled:!n(P).isPermission},null,8,["modelValue","disabled"])])),_:1}),n(P).isPermission?(t(),s(b,{key:0,class:"section"},{default:o((()=>[i(r,{class:"section-title"},{default:o((()=>[u("改变状态")])),_:1}),i(b,{class:"status-toggle-row"},{default:o((()=>[i(b,{class:k(["toggle-btn toggle-green",{"toggle-active":1===I.status}]),onClick:l[4]||(l[4]=e=>N(1))},{default:o((()=>[i(r,{class:"toggle-text"},{default:o((()=>[u("连接")])),_:1})])),_:1},8,["class"]),i(b,{class:k(["toggle-btn toggle-red",{"toggle-active":0===I.status}]),onClick:l[5]||(l[5]=e=>N(0))},{default:o((()=>[i(r,{class:"toggle-text"},{default:o((()=>[u("断开")])),_:1})])),_:1},8,["class"])])),_:1}),i(r,{class:"hint-text"},{default:o((()=>[u("断开后只清空备注说明,其他内容不影响")])),_:1})])),_:1})):d("",!0),i(b,{class:"btn-row"},{default:o((()=>[n(P).isPermission?(t(),y(g,{key:0},[i(b,{class:"btn btn-cancel",onClick:$},{default:o((()=>[i(r,{class:"btn-text"},{default:o((()=>[u("取消")])),_:1})])),_:1}),i(b,{class:"btn btn-submit",onClick:H},{default:o((()=>[i(r,{class:"btn-text-white"},{default:o((()=>[u("提交")])),_:1})])),_:1})],64)):(t(),s(b,{key:1,class:"btn btn-cancel btn-full",onClick:$},{default:o((()=>[i(r,{class:"btn-text"},{default:o((()=>[u("关闭")])),_:1})])),_:1}))])),_:1})])),_:1}))])),_:1}),i(B,{visible:w.value,onClose:l[6]||(l[6]=e=>w.value=!1),onConfirm:L},null,8,["visible"])])),_:1})):d("",!0)}}},[["__scopeId","data-v-f555bc22"]]),$=j({__name:"index",setup(a){const l=R().statusBarHeight||0,d=e(""),r=e(""),m=e(""),_=e([]),b=e(!1),C=e(!1),x=e("");let O="";async function A(){b.value=!0;try{const e=await N(d.value);200===e.code&&e.data&&(_.value=e.data)}finally{b.value=!1,O&&(x.value=O,C.value=!0,O="")}}function P(){T()}function j(){C.value=!1,A()}return I((e=>{e.rackId&&(d.value=e.rackId),e.rackName&&(r.value=decodeURIComponent(e.rackName)),e.roomName&&(m.value=decodeURIComponent(e.roomName)),e.portId&&(O=e.portId),A()})),(e,a)=>{const d=F,R=f,T=p,I=v;return t(),s(T,{class:"rack-detail-page"},{default:o((()=>[i(d,{class:"bg-image",src:w,mode:"aspectFill"}),i(T,{class:"content"},{default:o((()=>[i(T,{class:"nav-bar",style:V({paddingTop:n(l)+"px"})},{default:o((()=>[i(T,{class:"nav-bar-inner"},{default:o((()=>[i(d,{class:"nav-icon",src:U,mode:"aspectFit",onClick:P}),i(R,{class:"nav-title"},{default:o((()=>[u(c(r.value)+"详情",1)])),_:1}),i(T,{class:"nav-icon-placeholder"})])),_:1})])),_:1},8,["style"]),i(T,{class:"room-name-bar"},{default:o((()=>[i(R,{class:"room-name-text"},{default:o((()=>[u(c(m.value),1)])),_:1})])),_:1}),i(T,{class:"legend-bar"},{default:o((()=>[i(T,{class:"legend-item"},{default:o((()=>[i(T,{class:"legend-dot legend-dot-green"}),i(R,{class:"legend-label"},{default:o((()=>[u("已连接")])),_:1})])),_:1}),i(T,{class:"legend-item"},{default:o((()=>[i(T,{class:"legend-dot legend-dot-red"}),i(R,{class:"legend-label"},{default:o((()=>[u("已断开")])),_:1})])),_:1})])),_:1}),b.value?(t(),s(T,{key:0,class:"loading-box"},{default:o((()=>[i(R,{class:"loading-text"},{default:o((()=>[u("loading...")])),_:1})])),_:1})):(t(),s(T,{key:1,class:"frame-list"},{default:o((()=>[(t(!0),y(g,null,h(_.value,(e=>(t(),s(T,{class:"frame-card",key:e.id},{default:o((()=>[i(R,{class:"frame-name"},{default:o((()=>[u(c(e.name),1)])),_:2},1024),(t(!0),y(g,null,h(e.odfPortsList,((e,a)=>(t(),s(T,{class:"port-row",key:a},{default:o((()=>[i(R,{class:"row-name"},{default:o((()=>[u(c(e.name),1)])),_:2},1024),i(I,{class:"port-scroll","scroll-x":""},{default:o((()=>[i(T,{class:"port-list"},{default:o((()=>[(t(!0),y(g,null,h(e.rowList,(e=>(t(),s(T,{class:"port-item",key:e.id,onClick:a=>function(e){x.value=e.id,C.value=!0}(e)},{default:o((()=>[i(T,{class:k(["port-circle",1===e.status?"port-green":"port-red"])},{default:o((()=>[i(R,{class:"port-tips"},{default:o((()=>[u(c(e.tips),1)])),_:2},1024)])),_:2},1032,["class"]),i(R,{class:"port-name"},{default:o((()=>[u(c(e.name),1)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1024)))),128))])),_:1}))])),_:1}),i(L,{visible:C.value,portId:x.value,onClose:a[0]||(a[0]=e=>C.value=!1),onSaved:j},null,8,["visible","portId"])])),_:1})}}},[["__scopeId","data-v-ca4cc47d"]]);export{$ as default};