2 lines
6.8 KiB
JavaScript
2 lines
6.8 KiB
JavaScript
import{aE as G,b1 as X,b2 as Y,ay as g,bD as n,bn as D,bb as q,bc as N,b4 as u,aD as l,N as J,H as Q,aC as _,O as W,S as Z,E as ee,x as te,aA as k,ah as M,be as T,y as oe,v as ae,u as le,bk as S,e as ne,X as $,aj as se}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as ie,s as R,n as z,l as me}from"./ConfigPageBase-DmCcZeia.js";import{r as V,e as re}from"./reflection-CKXyOCM_.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */const ue=450,ce=G({__name:"OpsConfigView",setup(de){const c=q(re()),x=N([]),C=N([]),U=N([]),b=N(!1);let d=null,y=null;function A(t){y=t,d&&clearTimeout(d),d=setTimeout(()=>{E()},ue)}async function E(){if(d=null,b.value){d=setTimeout(()=>{E()},200);return}const t=y;if(y=null,!!t){b.value=!0;try{await R(t),$.success({message:"地图监控配置已自动保存",duration:1200,grouping:!0})}catch(e){$.error(`地图监控配置自动保存失败:${e instanceof Error?e.message:String(e)}`)}finally{b.value=!1,y&&A(y)}}}X(()=>{d&&(clearTimeout(d),d=null),y&&!b.value&&E()});function L(t){return z({monitor:t}).monitor}async function F(t,e){e(await me(t))}function h(t){return L(t.monitor)}function K(t,e,o,m,i){const f=h(e),r={...e,monitor:{...f,[o]:{...f[o],[m]:[...i]}}};t(r),A(r)}function I(t,e,o,m){const i=h(e),f={...i.carActionByType,[o.typeKey]:[...m]};o.shortTypeName!==o.typeKey&&delete f[o.shortTypeName];const r={...e,monitor:{...i,carActionByType:f}};t(r),A(r)}function w(t,e){const o=h(t);return o.carActionByType[e.typeKey]??o.carActionByType[e.shortTypeName]??[]}Y(async()=>{try{const t=await V.getMonitorConfig();c.car=t.available.car,c.site=t.available.site,c.track=t.available.track}catch{c.car={fields:[],status:[],methods:[]},c.site={fields:[],status:[],methods:[]},c.track={fields:[],status:[],methods:[]}}try{const t=await V.listMethodsByType("car");x.value=t.map(e=>({typeKey:e.fullTypeName??e.typeName,shortTypeName:e.typeName,title:`${e.typeLabel??e.typeName} / ${e.fullTypeName??e.typeName} [${e.assemblyName}]`,methods:e.methods.map(o=>({methodName:o.methodName,label:o.label||o.methodName})).filter(o=>!!o.methodName)})).filter(e=>e.methods.length>0).sort((e,o)=>e.title.localeCompare(o.title))}catch{x.value=[]}try{const t=await V.listMethodsByType("site");C.value=O(t.flatMap(e=>e.methods))}catch{C.value=c.site.methods.map(t=>({methodName:t,label:t}))}try{const t=await V.listMethodsByType("track");U.value=O(t.flatMap(e=>e.methods))}catch{U.value=c.track.methods.map(t=>({methodName:t,label:t}))}});function O(t){const e=new Map;for(const o of t)o.methodName&&(e.has(o.methodName)||e.set(o.methodName,{methodName:o.methodName,label:o.label||o.methodName}));return[...e.values()].sort((o,m)=>o.label.localeCompare(m.label))}return(t,e)=>{const o=Q,m=Z,i=W,f=ee,r=le,B=ae,H=oe,P=te,j=J;return u(),g(ie,{section:"ops",title:"运营维护",description:"调度回放、日志管理、版本维护(OpsConfig)",defaults:D(ne),"normalize-payload":D(z),"after-load":F,"before-save":D(R)},{default:n(({payload:s,update:p})=>[l(j,{"label-width":"200px",model:s},{default:n(()=>[l(o,{"content-position":"left"},{default:n(()=>[...e[0]||(e[0]=[_("调度回放",-1)])]),_:1}),l(i,{label:"保留时长 (天)"},{default:n(()=>[l(m,{"model-value":s.playback.retentionDays,min:1,max:3650,"onUpdate:modelValue":a=>p({...s,playback:{...s.playback,retentionDays:a??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(i,{label:"采样频率 (Hz)"},{default:n(()=>[l(m,{"model-value":s.playback.samplingHz,min:1,max:100,"onUpdate:modelValue":a=>p({...s,playback:{...s.playback,samplingHz:a??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(o,{"content-position":"left"},{default:n(()=>[...e[1]||(e[1]=[_("日志保留",-1)])]),_:1}),l(i,{label:"热数据 (天)"},{default:n(()=>[l(m,{"model-value":s.logRetention.hotDays,min:1,max:365,"onUpdate:modelValue":a=>p({...s,logRetention:{...s.logRetention,hotDays:a??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(i,{label:"冷数据 (天)"},{default:n(()=>[l(m,{"model-value":s.logRetention.coldDays,min:1,max:3650,"onUpdate:modelValue":a=>p({...s,logRetention:{...s.logRetention,coldDays:a??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(o,{"content-position":"left"},{default:n(()=>[...e[2]||(e[2]=[_("版本维护",-1)])]),_:1}),l(i,{label:"保留发布版本"},{default:n(()=>[l(m,{"model-value":s.version.keepReleases,min:1,max:100,"onUpdate:modelValue":a=>p({...s,version:{keepReleases:a??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(o,{"content-position":"left"},{default:n(()=>[...e[3]||(e[3]=[_("地图监控信息与动作管理",-1)])]),_:1}),l(f,{type:"info",closable:!1,"show-icon":"",title:b.value?"正在自动保存…":"支持直接多选,修改后会自动保存到地图监控(simple.json),无需点击上方「保存」。若某组不勾选,表示该组在地图监控中显示全部。",style:{"margin-bottom":"10px"}},null,8,["title"]),l(i,{label:"按车型动作配置"},{default:n(()=>[l(P,{class:"type-actions"},{default:n(()=>[(u(!0),k(M,null,T(x.value,a=>(u(),g(H,{key:a.typeKey,name:a.typeKey,title:`${a.title}(${a.methods.length})`},{default:n(()=>[l(B,{"model-value":w(s,a),class:"cfg-check-grid","onUpdate:modelValue":v=>I(p,s,a,v)},{default:n(()=>[(u(!0),k(M,null,T(a.methods,v=>(u(),g(r,{key:`${a.typeKey}-${v.methodName}`,label:v.methodName},{default:n(()=>[_(S(v.label),1)]),_:2},1032,["label"]))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["name","title"]))),128))]),_:2},1024)]),_:2},1024),l(i,{label:"站点动作显示项"},{default:n(()=>[l(B,{"model-value":h(s).site.actionKeys,class:"cfg-check-grid","onUpdate:modelValue":a=>K(p,s,"site","actionKeys",a)},{default:n(()=>[(u(!0),k(M,null,T(C.value,a=>(u(),g(r,{key:`sa-${a.methodName}`,label:a.methodName},{default:n(()=>[_(S(a.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(i,{label:"路径动作显示项"},{default:n(()=>[l(B,{"model-value":h(s).track.actionKeys,class:"cfg-check-grid","onUpdate:modelValue":a=>K(p,s,"track","actionKeys",a)},{default:n(()=>[(u(!0),k(M,null,T(U.value,a=>(u(),g(r,{key:`ta-${a.methodName}`,label:a.methodName},{default:n(()=>[_(S(a.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults","normalize-payload","before-save"])}}}),Be=se(ce,[["__scopeId","data-v-e66d9ef7"]]);export{Be as default};
|