PageSourceSearch

https://www.jytkd.com/aiops/assets/index-u0Ux8V3o.js

js jytkd.com collected 2026-10-09 00:08:14 UTC 23,847 bytes, 3 lines download raw bytes

1import{a as Ct,r as w,A as $,a1 as ze,o as St,aV as Lt,e as b,f as g,l as s,J as i,w as u,V as H,aI as F,az as Mt,aS as kt,O as Dt,E as Tt,h as B,bl as Rt,bN as Nt,al as L,ba as Vt,a4 as At,R as N,m as zt,t as _,n as J,U as Oe,bc as Ot,bO as Bt,X as Be,aN as Ie,bP as It,H as K,aG as M,bt as $t,aC as Wt}from"./index-CBUIT0ef.js";import{a as Xt,E as Gt}from"./el-form-item-9x3oM6R2.js";import{E as Yt}from"./index-CvuVZvRB.js";import{E as Ut}from"./el-tag-1cCpDHnr.js";import{E as jt,a as Pt}from"./el-select-CwuacGIZ.js";import{E as Ht}from"./el-card-B4WCYE2l.js";import{E as Ft,a as Jt}from"./index-CKurocQg.js";import{E as Kt}from"./el-dialog-CobLbQ7W.js";import{E as Zt}from"./el-upload-C0HzqhhM.js";import{v as qt}from"./el-loading-DIR85vNR.js";import"./el-progress-CfdibLwl.js";/* empty css                       *//* empty css                        *//* empty css                  */import"./el-tooltip-l0sNRNKZ.js";import"./el-scrollbar-BWMkOFnX.js";import{i as $e}from"./index-B2fQ7N8P.js";import{l as Qt,s as eo,a as to,g as We,d as oo,i as ao}from"./topo-CHJ36KN8.js";import"./castArray-Ccqo-R0J.js";import"./_baseClone-CU2RmUAH.js";import"./isUndefined-DCTLXrZ8.js";import"./strings-8nE4e-Ik.js";import"./vnode-CDIyaJF6.js";import"./index-BhamHYaM.js";import"./_baseIteratee-BEtvfoHZ.js";import"./omit-DIAU5KYn.js";import"./use-dialog-c0q9nzFX.js";import"./refs-D6FW0B1r.js";import"./numbers-CXlhhiiX.js";const lo={class:"topo-container"},no={class:"filter-container"},so={class:"filter-actions"},io={class:"split-row"},ro={class:"split-left"},co={class:"topo-card__title"},uo={class:"topo-id"},mo={class:"topo-card__desc"},fo={class:"topo-card__meta"},_o={key:0},po={class:"topo-card__foot"},vo={class:"card-actions"},ho={class:"status-text"},go={key:0,class:"empty"},bo={class:"split-right"},yo={class:"detail-header"},xo={class:"header-left"},Eo={class:"detail-title"},wo={key:0,class:"toolbar"},Co={class:"chart-inner"},So={key:0,class:"chart-placeholder"},Lo={key:1,class:"legend"},Mo={key:2,class:"drill-tip"},ko={class:"edge-card__title"},Do={class:"edge-card__path"},To={key:0,class:"edge-card__agg"},Ro={class:"edge-card__items"},No={key:0,class:"edge-card__empty"},Vo={key:0,class:"info-bar"},Ao={class:"info-item"},zo={class:"info-value"},Oo={class:"info-item"},Bo={class:"info-value"},Io={class:"info-item"},$o={class:"info-value"},Wo={class:"info-item"},Xo={class:"info-value"},Go={class:"info-item"},Yo={class:"info-value"},Uo={class:"info-item"},jo={class:"info-value"},Po={class:"info-item"},Ho={class:"info-value"},Fo={class:"info-item"},Jo={class:"info-value"},Ko="path://M2,6 C2,3.8 6.5,2 12,2 C17.5,2 22,3.8 22,6 L22,18 C22,20.2 17.5,22 12,22 C6.5,22 2,20.2 2,18 Z M2,6 C2,8.2 6.5,10 12,10 C17.5,10 22,8.2 22,6 M2,12 C2,14.2 6.5,16 12,16 C17.5,16 22,14.2 22,12",k=8,Xe=26,Ge=26,le=11,Zo=8,qo=2,Qo=12,ea=1,ta="grab",oa=.01,aa=24,Ye=9,la=1.1,na=8,Ue=2,je="#ffffff",sa=150,ia=264,da=Ct({__name:"index",setup(ra){const ne={etc:"ETC收费系统",gantry:"门架",lane:"车道",service_area:"服务区",road:"路段",backbone:"骨干网"},ue=["process","device","datastore","external"],me={process:"处理过程",device:"外设",datastore:"数据存储",external:"外部实体"},se={process:{color:"#eef2ff",border:"#5b79e8",symbol:"roundRect"},device:{color:"#f0fdf4",border:"#16a34a",symbol:"rect"},datastore:{color:"#3B82F6",border:"#1d4ed8",symbol:Ko},external:{color:"#fff7ed",border:"#ea8a3b",symbol:"rect"}},Pe=[{id:"L5",name:"L5 上级中心层"},{id:"L4",name:"L4 路段层"},{id:"L3",name:"L3 站省层"},{id:"L2",name:"L2 门架层"},{id:"L1",name:"L1 车道层"},{id:"L0",name:"L0 外设层"}],He={detail:"详细图(1层)",context:"上下文图(0层·派生)"},Fe={min:.2,max:10},W=(e,t)=>(e==null?void 0:e.code)!==0?(M.error((e==null?void 0:e.message)||t),!1):!0,j=w(!1),ie=w(!1),Z=w([]),q=w(),Q=w(),ee=w(),te=w(""),fe=$(()=>Z.value.filter(e=>!(q.value&&e.topo_domain!==q.value||Q.value!==void 0&&e.status!==Q.value||ee.value&&e.source_type!==ee.value||te.value&&!e.topo_name.includes(te.value.trim())))),T=()=>{j.value=!0,Qt("dataflow").then(e=>{W(e,"加载数据流图列表失败")&&(Z.value=e.data||[],V.value&&!Z.value.some(t=>t.id===V.value)&&(V.value=null,h.value=null))}).catch(()=>{Z.value=[]}).finally(()=>{j.value=!1})},V=w(null),h=w(null),R=w("detail"),X=w(!0),z=w(null),I=$(()=>{var e,t,o;return(o=(t=(e=h.value)==null?void 0:e.content)==null?void 0:t.diagrams)==null?void 0:o.find(n=>n.id===R.value)}),Je=$(()=>He[R.value]),Ke=$(()=>{var t;const e=((t=h.value)==null?void 0:t.content_hash)||"";return e?e.slice(0,10):"-"}),_e=$(()=>{var t,o,n;const e=(n=(o=(t=h.value)==null?void 0:t.content)==null?void 0:o.containers
1)==null?void 0:n.find(a=>a.id===z.value);return(e==null?void 0:e.children)||[]}),Ze=e=>{var t,o,n,a;return((a=(n=(o=(t=h.value)==null?void 0:t.content)==null?void 0:o.containers)==null?void 0:n.find(r=>r.id===e))==null?void 0:a.name)||e},qe=e=>{V.value!==e.id&&(V.value=e.id,R.value="detail",X.value=!0,z.value=null,Y(),We(e.id).then(t=>{W(t,"加载数据流图详情失败")&&(h.value=t.data,K(()=>O()))}))},Qe=()=>{z.value=null,Y(),K(()=>O())},et=()=>{X.value=!X.value,K(()=>O())},tt=()=>{z.value=null,O()},G=w(null);let A=null;const ot=(e,t)=>e.length>t?`${e.slice(0,t)}…`:e,pe=(e,t,o)=>Math.max(t,Math.min(o,e));function ve(e){const t=e.nodes.map(c=>c.bounds).filter(Boolean),o=Math.min(...t.map(c=>c.x)),n=Math.max(...t.map(c=>c.x+c.w)),a=Math.min(...t.map(c=>c.y)),r=Math.max(...t.map(c=>c.y+c.h)),l=o+(n-o)/2,m=a+(r-a)/2;return e.nodes.map(c=>{const f=c.bounds;return{node:c,x:f.x+f.w/2-l,y:f.y+f.h/2-m,w:f.w,h:f.h}})}function he(e){const t=Pe.map(a=>{const r=e.filter(l=>l.node.layer===a.id);return r.length?{id:a.id,name:a.name,top:Math.min(...r.map(l=>l.y-l.h/2)),bottom:Math.max(...r.map(l=>l.y+l.h/2))}:null}).filter(Boolean),o=Math.min(...e.map(a=>a.x-a.w/2))-Ge,n=Math.max(...e.map(a=>a.x+a.w/2))+Ge;return t.map((a,r)=>{const l=r>0?t[r-1].bottom:a.top-14,m=r<t.length-1?t[r+1].top:a.bottom+14,c=(a.top+l)/2,f=(a.bottom+m)/2;return{id:a.id,name:a.name,cx:(o+n)/2,cy:(c+f)/2,w:n-o,h:Math.max(f-c,30)}})}function ge(e,t){return e.map((o,n)=>({id:`__band_${o.id}`,name:o.name,x:o.cx,y:o.cy,symbol:"rect",symbolSize:[o.w*t,o.h*t],silent:!0,z:-1,itemStyle:{color:n%2===0?"rgba(91,121,232,0.055)":"rgba(148,163,184,0.05)",borderWidth:0},label:{show:!0,position:"inside",color:"#94a3b8",fontSize:le*t,fontWeight:600},emphasis:{disabled:!0}}))}const de=e=>ue.includes(e.kind)?e.kind:"process",at=e=>{var n,a;
1const t=(n=e.flow_nos)==null?void 0:n.filter(Boolean);if(t&&t.length)return t.join("/");if(e.flow_no)return e.flow_no;const o=((a=e.data_items)==null?void 0:a[0])||e.label||"";return ot(o,Qo)},lt=e=>!!(e.flow_no||e.flow_nos&&e.flow_nos.length),be=(e,t)=>{const o=[...e.flatMap(a=>[a.x-a.w/2,a.x+a.w/2]),...t.flatMap(a=>[a.cx-a.w/2,a.cx+a.w/2])],n=[...e.flatMap(a=>[a.y-a.h/2,a.y+a.h/2]),...t.flatMap(a=>[a.cy-a.h/2,a.cy+a.h/2])];return{minX:Math.min(...o),maxX:Math.max(...o),minY:Math.min(...n),maxY:Math.max(...n)}},ye=e=>[[e.minX,e.minY],[e.maxX,e.maxY]].map(([t,o],n)=>({id:`__corner_${n}`,x:t,y:o,symbol:"rect",symbolSize:oa,silent:!0,z:-100,itemStyle:{opacity:0},label:{show:!1},emphasis:{disabled:!0}})),xe=(e,t)=>Math.max(e-(Zo-qo)*t,1),nt=(e,t,o,n)=>{const a=new Map(t.map(l=>[l.node.id,l])),r=new Set(n);return e.nodes.map(l=>{var v;const m=se[de(l)],c=a.get(l.id),f=r.has(l.id),E=de(l)==="datastore"?"#fff":"#1e293b";return{id:l.id,name:l.name||l.id,...c?{x:c.x,y:c.y,symbolSize:[c.w*o,c.h*o]}:{symbolSize:40},symbol:m.symbol,itemStyle:{color:m.color,borderColor:f?"#f59e0b":m.border,borderWidth:f?3:(v=l.members)!=null&&v.length?2.5:1.2},label:{show:!0,position:"inside",fontSize:le*o,fontWeight:f?700:500,color:E,width:c?xe(c.w*o,o):34,overflow:"truncate",lineHeight:Math.round(le*o*1.1)},_raw:l}})},st=(e,t)=>e.edges.map(o=>{const n=at(o),a=lt(o);return{source:o.source,target:o.target,lineStyle:{color:"#b8bfd0",width:la,opacity:.65,curveness:.08},label:{show:t,formatter:n,fontSize:Ye,fontWeight:a?700:400,color:a?"#fff":"#64748b",backgroundColor:a?"#5b79e8":"rgba(255,255,255,0.82)",padding:[2,4],borderRadius:3},emphasis:{label:{show:!0,fontWeight:700}},_raw:o}}),Ee=e=>({tooltip:{trigger:"item",confine:!0,backgroundColor:"rgba(255,255,255,0.96)",borderColor:"#e2e8f0",textStyle:{color:"#1e293b",fontSize:12},formatter:t=>{var o,n,a,r;if((a=(n=(o=t.data)==null?void 0:o.id)==null?void 0:n.startsWith)!=null&&a.call(n,"__"))return"";if(t.dataType==="node"){const l=t.data._raw,m=`<div style="font-weight:600">${l.name||l.id}</div><div>ID: ${l.id}</div><div>类型: ${me[de(l)]}</div>`,c=l.layer?`<div>层级: ${l.layer}</div>`:"",f=(r=l.members)!=null&&r.length?`<div style="color:#5b79e8">容器聚合点(${l.members.length} 节点)· 点击下钻详细图</div>`:"";return m+c+f}if(t.dataType==="edge"){const l=t.data._raw;return`<div style="font-weight:600">${l.flow_no||(l.flow_nos||[]).join("/")||"未编号"}</div>
2                <div>${re(l.source)} → ${re(l.target)}</div>
3                <div style="max-width:300px">${(l.data_items||[]).join(",")||"数据流"}</div>`}return""}},animationDuration:e.animation===!1?0:500,series:[{type:"graph",layout:e.useCoord?"none":"force",force:e.useCoord?void 0:{repulsion:420,edgeLength:[90,200],gravity:.05},...e.viewBox,zoom:1,nodeScaleRatio:ea,scaleLimit:Fe,labelLayout:e.useCoord?t=>{const o=e.f*e.zoomOf(),n=(t.dataType==="edge"?Ye:le)*o,a=t.dataIndex-e.data.length,r=t.dataType==="node"&&a>=0?e.boxWidthAt(a)*o:0;return r?{fontSize:n,width:xe(r,o)}:{fontSize:n}}:void 0,data:e.data.concat(nt(e.diagram,e.positioned,e.f,_e.value)),links:st(e.diagram,e.badge),roam:!0,draggable:!1,cursor:ta,emphasis:{focus:"adjacency",lineStyle:{width:3,color:"#5b79e8"}},edgeSymbol:["none","arrow"],edgeSymbolSize:[0,na]}]});function O(){const e=I.value;if(!G.value||!e||!e.nodes.length)return;const t=dt();if(!t)return;t.dispatchAction({type:"hideTip"}),Y(),t.resize();const o=t.getWidth(),n=t.getHeight(),a=X.value&&e.nodes.every(v=>v.bounds),r=R.value==="detail",l=a?ve(e):[],m=a&&r?he(l):[];let c=1,f={left:k,top:k,right:k,bottom:k},E=[];if(a){const v=be(l,m),y=Math.max(v.maxX-v.minX,1),C=Math.max(v.maxY-v.minY,1),D=Math.max(o-2*k,1),oe=Math.max(n-2*k-Xe,1);c=Math.min(D/y,oe/C);const ae=y*c,d=C*c;f={left:(o-ae)/2,top:k+Xe+Math.max(oe-d,0)/2,width:ae,height:d},E=ye(v)}t.setOption(Ee({diagram:e,useCoord:a,isDetail:r,positioned:l,bandRects:m,corners:E,f:c,viewBox:f,badge:e.edges.length<=aa,data:[...E,...r?ge(m,c):[]],boxWidthAt:v=>{var y;return((y=l.find(C=>{var D;return C.node.id===((D=e.nodes[v])==null?void 0:D.id)}))==null?void 0:y.w)||0},zoomOf:()=>{var v,y,C,D;return((D=(C=(y=(v=t.getModel())==null?void 0:v.getSeriesByIndex(0))==null?void 0:y.coordinateSystem)==null?void 0:C.getZoom)==null?void 0:D.call(C))||1}}),!0)}function it(e){const t=o=>{var m,c,f,E;const n=(m=o.data)==null?void 0:m._raw;if(!n)return;const a=((c=o.event)==null?void 0:c.event)||{},r=((f=G.value)==null?void 0:f.clientWidth)||800,l=((E=G.value)==null?void 0:E.
3clientHeight)||520;x.x=pe((a.offsetX??60)+12,8,Math.max(8,r-ia-12)),x.y=pe((a.offsetY??60)+12,8,Math.max(8,l-120)),x.edge=n,x.visible=!0};e.on("mouseover",{dataType:"edge"},t),e.on("click",{dataType:"edge"},t),e.on("click",{dataType:"node"},o=>{var a,r,l,m,c;if((l=(r=(a=o.data)==null?void 0:a.id)==null?void 0:r.startsWith)!=null&&l.call(r,"__band_"))return;const n=(m=o.data)==null?void 0:m._raw;R.value==="context"&&((c=n==null?void 0:n.members)!=null&&c.length)&&(R.value="detail",z.value=n.id,Y(),M.success(`下钻至详细图,已定位容器「${n.name||n.id}」`),K(()=>O()))}),e.getZr().on("click",o=>{o.target||Y()})}const dt=()=>(!A&&G.value&&(A=$e(G.value),it(A)),A),x=ze({visible:!1,x:0,y:0,edge:null}),Y=()=>{x.visible=!1,x.edge=null},re=e=>{var t,o;return((o=(t=I.value)==null?void 0:t.nodes.find(n=>n.id===e))==null?void 0:o.name)||e||"-"},we=e=>re(e),Ce=$(()=>{const e=x.edge;return(e==null?void 0:e.flow_no)||((e==null?void 0:e.flow_nos)||[]).filter(Boolean).join("/")||""}),Se=$(()=>{var e;return((e=x.edge)==null?void 0:e.aggregated_from)||0}),rt=()=>O(),Le=e=>{var o;const t=document.createElement("a");t.href=e,t.download=`${((o=h.value)==null?void 0:o.topo_name)||"dataflow"}-${R.value}.png`,t.click()},ct=()=>{const e=I.value;if(!e||!e.nodes.length)return;const t=e.nodes.every(v=>v.bounds),o=R.value==="detail",n=t?ve(e):[],a=t&&o?he(n):[];if(!t){A&&Le(A.getDataURL({type:"png",pixelRatio:Ue,backgroundColor:je}));return}const r=be(n,a),l=ye(r),m=Math.max(Math.ceil(r.maxX-r.minX)+2*k,1),c=Math.max(Math.ceil(r.maxY-r.minY)+2*k,1),f=document.createElement("div");f.style.cssText=`position:absolute;left:-10000px;top:0;width:${m}px;height:${c}px`,document.body.appendChild(f);const E=$e(f,void 0,{width:m,height:c});E.setOption(Ee({diagram:e,useCoord:t,isDetail:o,positioned:n,bandRects:a,corners:l,f:1,badge:!0,animation:!1,zoomOf:()=>1,data:[...l,...o?ge(a,1):[]],boxWidthAt:v=>{var y;return((y=n.find(C=>{var D;return C.node.id===((D=e.nodes[v])==null?void 0:D.id)}))==null?void 0:y.w)||0},viewBox:{left:k,top:k,width:m-2*k,height:c-2*k}}),!0),Le(E.getDataURL({type:"png",pixelRatio:Ue,backgroundColor:je})),E.dispose(),f.remove()},ut=()=>{ie.value=!0,eo("dataflow").then(e=>{W(e,"种子导入失败")&&(M.success(e.message||"种子导入完成"),T())}).catch(()=>{M.error("种子导入失败")}).finally(()=>{ie.value=!1})},mt=e=>{to(e.id).then(t=>{var o;W(t,"同步失败")&&(M.success(t.message||((o=t.data)!=null&&o.changed?"同步完成":"已是最新")),V.value===e.id&&We(e.id).then(n=>{h.value=n.data,K(()=>O())}),T())}).catch(()=>{M.error("同步失败")})},ft=e=>{$t.confirm(`确认删除数据流图「${e.topo_name}」?(仅删管理记录,不删源文件)`,"删除确认",{type:"warning"}).then(()=>{oo(e.id).then(t=>{W(t,"删除失败")&&(M.success(t.message||"删除成功"),V.value===e.id&&(V.value=null,h.value=null),T())}).catch(()=>{M.error("删除失败")})}).catch(()=>{})},ce=w(!1),Me=w(),p=ze({visible:!1,title:"添加数据流图",file:null,form:{topo_name:"",topo_domain:void 0,topo_location:""}}),_t=()=>{var e;p.visible=!0,p.form.topo_name="",p.form.topo_domain=void 0,p.form.topo_location="",p.file=null,(e=Me.value)==null||e.clearFiles()},pt=e=>{p.file=(e==null?void 0:e.raw)||null},vt=()=>{p.file=null},ht=()=>{M.warning("仅支持上传一个文件,请先移除已选文件")},gt=()=>{if(!p.form.topo_name.trim()){M.warning("请输入图名称");return}if(!p.file){M.warning("请选择规范 JSON 文件");return}ce.value=!0,ao(p.form.topo_name.trim(),p.file,p.form.topo_domain,p.form.topo_location.trim()||void 0,"dataflow").then(e=>{W(e,"添加失败")&&(M.success(e.message||"添加成功"),p.visible=!1,T())}).catch(()=>{M.error("添加失败")}).finally(()=>{ce.value=!1})},bt=e=>String(e).padStart(3,"0"),ke=e=>({json:"JSON",sync_json:"数据源同步"})[e]||e,yt=e=>e==="sync_json"?"tag-sync":"tag-json",xt=e=>e&&ne[e]||"未分类",Et=e=>`domain-${e||"other"}`;let P;function De(){P&&clearTimeout(P),P=setTimeout(O,sa)}return St(()=>{T(),window.addEventListener("resize",De)}),Lt(()=>{window.removeEventListener("resize",De),P&&clearTimeout(P),A&&(A.dispose(),A=null)}),(e,t)=>{const o=jt,n=Pt,a=kt,r=Tt,l=Dt,m=Yt,c=Ut,f=Ht,E=Jt,v=Ft,y=Gt,C=Zt,D=Xt,oe=Kt,ae=qt;return g(),b("div",lo,[s("div",no,[i(n,{modelValue:q.value,"onUpdate:modelValue":t[0]||(t[0]=d=>q.value=d),placeholder:"数据域",size:"default",class:"filter-item filter-select",clearable:"",onChange:T},{default:u(()=>[(g(),b(H,null,F(ne,(d,S)=>i(o,{key:S,label:d,value:S},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),i(n,{modelValue:Q.value,"onUpdate:modelValue":t[1]||(t[1]=d=>Q.value=d),placeholder:"状态",size:"default",class:"filter-item filter-select",clearable:"",onChange:T},{default:u(()=>[i(o,{label:"正常",value:1}),i(o,{label:"停用",value:0})]),_:1},8,["modelValue"]),i(n,{modelValue:ee.value,"onUpdate:modelValue":t[2]||(t[2]=d=>ee.value=d),placeholder:"来源",size:"default",class:"filter-item filter-select",clearable:"",onChange:T},{default:u(()=>[i(o,{label:"JSON",value:"json"}),i(o,{label:"数据源同步",value:"sync_json"})]),_:1},8,["modelValue"]),i(a,{modelValue:te.value,"onUpdate:modelValue":t[3]||(t[3]=d=>te.value=d),placeholder:"搜索数据流图名称",size:"default",class:"filter-item filter-search",clearable:"",onKeyup:Mt(T,["enter"])},null,8,["modelValue"]),i(m,{content:"搜索",placement:"top","show-after":300},{default:u(()=>[i(l,{type:"primary",size:"default",class:"filter-item filter-btn",onClick:T,loading:j.value},{default:u(()=>[i(r,null,{default:u(()=>[i(B(Rt))]),_:1})]),_:1},8,["loading"])]),_:1}),s("span",so,[i(m,{content:"默认种子导入(解析 doc/topology/dataflow/TopoDFDv2.0.json)",placement:"top","show-after":300},{default:u(()=>[i(l,{size:"default",class:"filter-item filter-btn",onClick:ut,loading:ie.value},{default:u(()=>[i(r,null,{default:u(()=>[i(B(Nt))]),_:1})]),_:1},8,["loading"])]),_:1}),i(l,{type:"primary",size:"default",class:"filter-item filter-btn",onClick:_t},{default:u(()=>[i(r,null,{default:u(()=>[i(B(Vt))]),_:1}),t[10]||(t[10]=L(" 添加数据流图 ",-1))]),_:1,__:[10]})])]),s("div",io,[At((g(),b("div",ro,[(g(!0),b(H,null,F(fe.value,d=>(g(),zt(f,{key:d.id,class:J(["topo-card",{"is-active":V.value===d.id}]),shadow:"hover",onClick:S=>qe(d)},{default:u(()=>[s("div",co,[s("span",uo,"#D-"+_(bt(d.id)),1),s("span",{class:J(["topo-domain",Et(
3d.topo_domain)])},_(xt(d.topo_domain)),3),i(c,{class:J(yt(d.source_type)),size:"small",effect:"dark"},{default:u(()=>[L(_(ke(d.source_type)),1)]),_:2},1032,["class"])]),s("div",mo,_(d.topo_name),1),s("div",fo,[L("节点 "+_(d.node_count)+" · 边 "+_(d.edge_count),1),d.topo_location?(g(),b("span",_o," · "+_(d.topo_location),1)):N("",!0)]),s("div",po,[s("span",null,_(d.updated_at),1),s("span",vo,[s("span",ho,_(d.status===1?"正常":"停用"),1),s("span",{class:J(["status-dot",d.status===1?"is-on":"is-off"])},null,2),i(m,{content:"一键重新同步",placement:"top"},{default:u(()=>[i(r,{class:"act-icon",onClick:Oe(S=>mt(d),["stop"])},{default:u(()=>[i(B(Ot))]),_:2},1032,["onClick"])]),_:2},1024),i(m,{content:"删除",placement:"top"},{default:u(()=>[i(r,{class:"act-icon danger",onClick:Oe(S=>ft(d),["stop"])},{default:u(()=>[i(B(Bt))]),_:2},1032,["onClick"])]),_:2},1024)])])]),_:2},1032,["class","onClick"]))),128)),fe.value.length===0&&!j.value?(g(),b("div",go,"暂无数据流图,请添加或执行默认种子导入")):N("",!0)])),[[ae,j.value]]),s("div",bo,[i(f,{shadow:"never",class:"detail-card"},{header:u(()=>{var d;return[s("div",yo,[s("div",xo,[s("span",Eo,_(((d=h.value)==null?void 0:d.topo_name)||"数据流图"),1),i(v,{modelValue:R.value,"onUpdate:modelValue":t[4]||(t[4]=S=>R.value=S),size:"small",onChange:Qe},{default:u(()=>[i(E,{value:"detail"},{default:u(()=>t[11]||(t[11]=[L("详细图",-1)])),_:1,__:[11]}),i(E,{value:"context"},{default:u(()=>t[12]||(t[12]=[L("上下文图",-1)])),_:1,__:[12]})]),_:1},8,["modelValue"])]),h.value?(g(),b("span",wo,[i(m,{content:X.value?"当前:bounds 坐标布局,点击切换力导向":"当前:力导向布局,点击切换坐标",placement:"top"},{default:u(()=>[i(l,{size:"small",onClick:et},{default:u(()=>[L(_(X.value?"坐标":"力导"),1)]),_:1})]),_:1},8,["content"]),i(l,{size:"small",onClick:rt},{default:u(()=>t[13]||(t[13]=[L("还原",-1)])),_:1,__:[13]}),i(l,{size:"small",onClick:ct},{default:u(()=>t[14]||(t[14]=[L("导出PNG",-1)])),_:1,__:[14]})])):N("",!0)])]}),default:u(()=>{var d,S,Te,Re,Ne,Ve,Ae;return[s("div",Co,[s("div",{ref_key:"chartRef",ref:G,class:"chart-canvas"},null,512),!h.value||!I.value?(g(),b("div",So,"请从左侧选择一条数据流图查看")):N("",!0),h.value&&I.value?(g(),b("div",Lo,[(g(),b(H,null,F(ue,U=>s("span",{key:U,class:"legend-item"},[s("i",{class:"legend-dot",style:Be({background:se[U].color,border:`1px solid ${se[U].border}`})},null,4),L(_(me[U]),1)])),64))])):N("",!0),z.value?(g(),b("div",Mo,[L(" 已定位容器:"+_(Ze(z.value))+"("+_(z.value)+")· "+_(_e.value.length)+" 个节点 ",1),i(r,{class:"drill-close",onClick:tt},{default:u(()=>[i(B(Ie))]),_:1})])):N("",!0),x.visible?(g(),b("div",{key:3,class:"edge-card",style:Be({left:x.x+"px",top:x.y+"px"})},[s("div",ko,[s("span",{class:J(Ce.value?"flow-badge":"flow-badge is-none")},_(Ce.value||"未编号"),3),s("span",{class:"edge-card__close",onClick:Y},[i(B(Ie))])]),s("div",Do,_(we((d=x.edge)==null?void 0:d.source))+" → "+_(we((S=x.edge)==null?void 0:S.target)),1),Se.value?(g(),b("div",To,"聚合自 "+_(Se.value)+" 条详细图边",1)):N("",!0),s("div",Ro,[(g(!0),b(H,null,F(((Te=x.edge)==null?void 0:Te.data_items)||[],(U,wt)=>(g(),b("div",{key:wt,class:"edge-card__item"},"· "+_(U),1))),128)),(((Re=x.edge)==null?void 0:Re.data_items)||[]).length?N("",!0):(g(),b("div",No,"无数据项描述"))])],4)):N("",!0)]),h.value?(g(),b("div",Vo,[s("div",Ao,[t[15]||(t[15]=s("span",{class:"info-label"},"名称",-1)),s("span",zo,_(h.value.topo_name),1)]),s("div",Oo,[t[16]||(t[16]=s("span",{class:"info-label"},"版本",-1)),s("span",Bo,_(((Ne=h.value.content)==null?void 0:Ne.version)||"-"),1)]),s("div",Io,[t[17]||(t[17]=s("span",{class:"info-label"},"当前视图",-1)),s("span",$o,_(Je.value),1)]),s("div",Wo,[t[18]||(t[18]=s("span",{class:"info-label"},"节点 / 边",-1)),s("span",Xo,_(((Ve=I.value)==null?void 0:Ve.nodes.length)||0)+" / "+_(((Ae=I.value)==null?void 0:Ae.edges.length)||0),1)]),s("div",Go,[t[19]||(t[19]=s("span",{class:"info-label"},"来源",-1)),s("span",Yo,_(ke(h.value.source_type)),1)]),s("div",Uo,[t[20]||(t[20]=s("span",{class:"info-label"},"源文件",-1)),s("span",jo,_(h.value.source_ref||"-"),1)]),s("div",Po,[t[21]||(t[21]=s("span",{class:"info-label"},"内容 Hash",-1)),s("span",Ho,_(Ke.value),1)]),s("div",Fo,[t[22]||(t[22]=s("span",{class:"info-label"},"更新时间",-1)),s("span",Jo,_(h.value.updated_at),1)])])):N("",!0)]}),_:1})])]),i(oe,{modelValue:p.visible,"onUpdate:modelValue":t[9]||(t[9]=d=>p.visible=d),title:p.title,width:"560px","close-on-click-modal":!1},{footer:u(()=>[i(l,{onClick:t[8]||(t[8]=d=>p.visible=!1)},{default:u(()=>t[25]||(t[25]=[L("取消",-1)])),_:1,__:[25]}),i(l,{type:"primary",loading:ce.value,onClick:gt},{default:u(()=>t[26]||(t[26]=[L("保存",-1)])),_:1,__:[26]},8,["loading"])]),default:u(()=>[i(D,{model:p.form,"label-width":"90px"},{default:u(()=>[i(y,{label:"图名称",required:""},{default:u(()=>[i(a,{modelValue:p.form.topo_name,"onUpdate:modelValue":t[5]||(t[5]=d=>p.form.topo_name=d),placeholder:"请输入数据流图名称",maxlength:"100"},null,8,["modelValue"])]),_:1}),i(y,{label:"数据域"},{default:u(()=>[i(n,{modelValue:p.form.topo_domain,"onUpdate:modelValue":t[6]||(t[6]=d=>p.form.topo_domain=d),placeholder:"选择数据域",clearable:"",class:"dialog-select"},{default:u(()=>[(g(),b(H,null,F(ne,(d,S)=>i(o,{key:S,label:d,value:S},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),i(y,{label:"位置/路段"},{default:u(()=>[i(a,{modelValue:p.form.topo_location,"onUpdate:modelValue":t[7]||(t[7]=d=>p.form.topo_location=d),placeholder:"如:XX收费站 / G0004 路段",maxlength:"100"},null,8,["modelValue"])]),_:1}),i(y,{label:"规范 JSON",required:""},{default:u(()=>[i(C,{ref_key:"uploadRef",ref:Me,class:"file-upload",drag:"","auto-upload":!1,limit:1,accept:".json","on-change":pt,"on-remove":vt,"on-exceed":ht},{default:u(()=>[i(r,{class:"el-icon--upload"},{default:u(()=>[i(B(It))]),_:1}),t[23]||(t[23]=s("div",{class:"el-upload__text"},[L("将文件拖到此处,或"),s("em",null,"点击选择")],-1))]),_:1,__:[23]},512),t[24]||(t[24]=s("div",{class:"file-hint"},"仅支持规范 JSON(.json,graph_kind=dataflow,含 containers/diagrams),后端 schema 校验通过后入库",-1))]),_:1,__:[24]})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),$a=Wt(da,[["__scopeId","data-v-3aacc4f5"]]);export{$a as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.