import{aI as te,b6 as oe,aC as b,bJ as n,bt as P,b9 as u,aH as s,N as le,H as ae,aG as h,O as ne,S as se,bK as R,aE as C,E as ie,x as re,ai as E,bj as T,y as ue,aB as ce,v as me,u as de,bq as D,bB as fe,aD as pe,bA as ve,e as _e,bp as $,bh as S,X as j,ak as ye}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as be,n as w,c as he,d as ge,s as W,l as ke}from"./ConfigPageBase-MHa7yfOO.js";import{r as Ce}from"./reflection-B_glb6eT.js";import{f as Ve}from"./monitorConfigCache-BigdkiFw.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-BlMEkqrL.js";/* empty css */function Ne(V,m,d){if(!V)return[];const g=V[m]??V[d];if(g?.length)return[...g];for(const[c,f]of Object.entries(V))if(f?.length){if(c===m||c===d)return[...f];if(m.endsWith("."+c)||c.endsWith("."+d))return[...f];if(m.endsWith("."+d)&&(c===d||c.endsWith("."+d)))return[...f]}return[]}const xe={class:"monitor-section"},Ae={key:0,class:"muted empty-hint"},G="simple-platform-methods-by-type-car-v1",Se=500,Ee=te({__name:"OpsConfigView",setup(V){const m=$([]),d=$([]),g=$([]),c=S(!1),f=S(!1),U=S([]),N=S(null),x=S(!1);let _=null,k=null;function M(l){k=l,_&&clearTimeout(_),_=setTimeout(()=>{K()},Se)}async function K(){if(_=null,x.value){_=setTimeout(()=>{K()},200);return}const l=k;if(k=null,!!l){x.value=!0;try{const e=await W(l,{cachedRoot:N.value});N.value=e,j.success({message:"地图监控配置已自动保存",duration:1200,grouping:!0})}catch(e){j.error(`地图监控配置自动保存失败:${e instanceof Error?e.message:String(e)}`)}finally{x.value=!1,k&&M(k)}}}oe(()=>{_&&(clearTimeout(_),_=null),k&&!x.value&&K()});async function J(l,e){c.value=!0,f.value=!0;try{const t=await Ve(),[{config:i,cache:r},p]=await Promise.all([ke(l,t),L()]);N.value=r,d.value=I(t.available.site.methods),g.value=I(t.available.track.methods),e(i)}catch{e(w(l)),d.value=[],g.value=[],await L()}finally{c.value=!1,f.value=!1}}async function Y(l){N.value=await W(l,{cachedRoot:N.value})}async function L(){try{const l=sessionStorage.getItem(G);if(l){const e=JSON.parse(l);if(Array.isArray(e)&&e.length){m.value=e;return}}}catch{}try{const e=(await Ce.listMethodsByType("car")).map(t=>({typeKey:t.fullTypeName??t.typeName,shortTypeName:t.typeName,title:`${t.typeLabel??t.typeName} / ${t.fullTypeName??t.typeName} [${t.assemblyName}]`,methods:t.methods.map(i=>({methodName:i.methodName,label:i.label||i.methodName})).filter(i=>!!i.methodName)})).filter(t=>t.methods.length>0).sort((t,i)=>t.title.localeCompare(i.title));m.value=e;try{sessionStorage.setItem(G,JSON.stringify(e))}catch{}}catch{m.value=[]}}function I(l){return l?.length?l.map(e=>({methodName:e,label:e})):[]}function O(l){return l.monitor??ge()}function F(l,e){const t=O(l).carActionByType;return Ne(t,e.typeKey,e.shortTypeName)}function q(l,e){const t=F(l,e).slice().sort().join("\0");return`${e.typeKey}\0${t}`}function H(l,e,t,i,r){const p=O(e),v={...e,monitor:{...p,[t]:{...p[t],[i]:[...r]}}};l(v),M(v)}function X(l,e,t,i){const r=O(e),p=he(r.carActionByType);p[t.typeKey]=[...i],t.shortTypeName!==t.typeKey&&delete p[t.shortTypeName];const v={...e,monitor:{...r,carActionByType:p}};l(v),M(v)}return(l,e)=>{const t=ae,i=se,r=ne,p=ie,v=de,B=me,Q=ue,Z=re,ee=le,z=ve;return u(),b(be,{section:"ops",title:"运营维护",description:"调度回放、日志管理、版本维护(OpsConfig)",defaults:P(_e),"normalize-payload":P(w),"after-load":J,"before-save":Y},{default:n(({payload:a,update:y})=>[s(ee,{"label-width":"200px",model:a},{default:n(()=>[s(t,{"content-position":"left"},{default:n(()=>[...e[1]||(e[1]=[h("调度回放",-1)])]),_:1}),s(r,{label:"保留时长 (天)"},{default:n(()=>[s(i,{"model-value":a.playback.retentionDays,min:1,max:3650,"onUpdate:modelValue":o=>y({...a,playback:{...a.playback,retentionDays:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),s(r,{label:"采样频率 (Hz)"},{default:n(()=>[s(i,{"model-value":a.playback.samplingHz,min:1,max:100,"onUpdate:modelValue":o=>y({...a,playback:{...a.playback,samplingHz:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),s(t,{"content-position":"left"},{default:n(()=>[...e[2]||(e[2]=[h("日志保留",-1)])]),_:1}),s(r,{label:"热数据 (天)"},{default:n(()=>[s(i,{"model-value":a.logRetention.hotDays,min:1,max:365,"onUpdate:modelValue":o=>y({...a,logRetention:{...a.logRetention,hotDays:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),s(r,{label:"冷数据 (天)"},{default:n(()=>[s(i,{"model-value":a.logRetention.coldDays,min:1,max:3650,"onUpdate:modelValue":o=>y({...a,logRetention:{...a.logRetention,coldDays:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),s(t,{"content-position":"left"},{default:n(()=>[...e[3]||(e[3]=[h("版本维护",-1)])]),_:1}),s(r,{label:"保留发布版本"},{default:n(()=>[s(i,{"model-value":a.version.keepReleases,min:1,max:100,"onUpdate:modelValue":o=>y({...a,version:{keepReleases:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),s(t,{"content-position":"left"},{default:n(()=>[...e[4]||(e[4]=[h("地图监控信息与动作管理",-1)])]),_:1}),R((u(),C("div",xe,[s(p,{type:"info",closable:!1,"show-icon":"",title:x.value?"正在自动保存…":"支持直接多选,修改后会自动保存到地图监控(simple.json),无需点击上方「保存」。若某组不勾选,表示该组在地图监控中显示全部。",style:{"margin-bottom":"10px"}},null,8,["title"]),R((u(),b(r,{label:"按车型动作配置"},{default:n(()=>[s(Z,{modelValue:U.value,"onUpdate:modelValue":e[0]||(e[0]=o=>U.value=o),class:"type-actions"},{default:n(()=>[(u(!0),C(E,null,T(m.value,o=>(u(),b(Q,{key:o.typeKey,name:o.typeKey,title:`${o.title}(${o.methods.length})`},{default:n(()=>[R(ce("div",null,[(u(),b(B,{key:q(a,o),"model-value":F(a,o),class:"cfg-check-grid","onUpdate:modelValue":A=>X(y,a,o,A)},{default:n(()=>[(u(!0),C(E,null,T(o.methods,A=>(u(),b(v,{key:`${o.typeKey}-${A.methodName}`,label:A.methodName},{default:n(()=>[h(D(A.label),1)]),_:2},1032,["label"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"]))],512),[[fe,U.value.includes(o.typeKey)]])]),_:2},1032,["name","title"]))),128))]),_:2},1032,["modelValue"]),!c.value&&!f.value&&!m.value.length?(u(),C("p",Ae," 暂未扫描到带 MethodMember 的车型(请确认 SimpleLite 已连接并已加载插件)。 ")):pe("",!0)]),_:2},1024)),[[z,f.value]]),s(r,{label:"站点动作显示项"},{default:n(()=>[s(B,{"model-value":a.monitor?.site?.actionKeys??[],class:"cfg-check-grid","onUpdate:modelValue":o=>H(y,a,"site","actionKeys",o)},{default:n(()=>[(u(!0),C(E,null,T(d.value,o=>(u(),b(v,{key:`sa-${o.methodName}`,label:o.methodName},{default:n(()=>[h(D(o.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),s(r,{label:"路径动作显示项"},{default:n(()=>[s(B,{"model-value":a.monitor?.track?.actionKeys??[],class:"cfg-check-grid","onUpdate:modelValue":o=>H(y,a,"track","actionKeys",o)},{default:n(()=>[(u(!0),C(E,null,T(g.value,o=>(u(),b(v,{key:`ta-${o.methodName}`,label:o.methodName},{default:n(()=>[h(D(o.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024)])),[[z,c.value]])]),_:2},1032,["model"])]),_:1},8,["defaults","normalize-payload"])}}}),Ye=ye(Ee,[["__scopeId","data-v-bf134df3"]]);export{Ye as default};