Files
Migu2.0/MiGu.Server/wwwroot/assets/MapMonitorConfigView-BIPqxkT5.js
T

2 lines
6.7 KiB
JavaScript
Raw Normal View History

import{aG as D,b3 as d,aC as f,az as u,bj as S,aF as c,ad as F,bB as s,aE as i,aA as g,t as Y,s as I,aB as A,w as q,ai as G,bd as O,v as H,E as Q,av as $,al as K,bb as V,b1 as R,Y as k,ba as j,ac as W,a9 as X,bC as Z,bt as ee,bm as J,bc as te,as as le,u as ae}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as se}from"./PermissionGuard-BxagL6-4.js";/* empty css *//* empty css *//* empty css *//* empty css */import{a as L,r as P,e as ne}from"./reflection-Dr3WM5Rz.js";const oe={class:"mmcg"},ie={class:"mmcg-head"},ce={class:"mmcg-title"},de={key:0,class:"mmcg-empty muted"},ue={key:2,class:"mmcg-orphans"},re={class:"orphan-list"},me=D({__name:"MapMonitorConfigGroup",props:{title:{},available:{},selected:{},emptyTip:{}},emits:["update:selected"],setup(p,{emit:M}){const n=p,m=M,_=$(()=>n.available.length?n.selected.length?`${n.selected.length} / ${n.available.length}`:`白名单空 = 显示全部 (${n.available.length})`:"空"),l=$(()=>n.selected.filter(r=>!n.available.includes(r))),b=$(()=>n.available.length>n.selected.length);function y(r){const e=[...r.filter(a=>typeof a=="string"),...l.value];m("update:selected",e)}function E(){m("update:selected",[...n.available,...l.value])}function C(){m("update:selected",[...l.value])}function w(r){m("update:selected",n.selected.filter(t=>t!==r))}function z(){m("update:selected",n.selected.filter(r=>n.available.includes(r)))}return(r,t)=>{const e=F,a=I,x=Y,N=H,T=q,U=Q;return d(),f("section",oe,[u("header",ie,[u("span",ce,S(p.title),1),c(e,{size:"small",effect:"plain",type:"info"},{default:s(()=>[i(S(_.value),1)]),_:1}),t[2]||(t[2]=u("div",{class:"spacer"},null,-1)),p.available.length?(d(),g(x,{key:0},{default:s(()=>[c(a,{size:"small",disabled:!b.value,onClick:E},{default:s(()=>[...t[0]||(t[0]=[i("全选",-1)])]),_:1},8,["disabled"]),c(a,{size:"small",disabled:!p.selected.length,onClick:C},{default:s(()=>[...t[1]||(t[1]=[i("清空",-1)])]),_:1},8,["disabled"])]),_:1})):A("",!0)]),p.available.length?(d(),g(T,{key:1,"model-value":p.selected,class:"mmcg-grid","onUpdate:modelValue":y},{default:s(()=>[(d(!0),f(G,null,O(p.available,v=>(d(),g(N,{key:v,value:v,label:v,class:"mmcg-cb"},null,8,["value","label"]))),128))]),_:1},8,["model-value"])):(d(),f("p",de,S(p.emptyTip),1)),l.value.length?(d(),f("div",ue,[c(U,{type:"warning",closable:!1,"show-icon":"",title:`检测到 ${l.value.length} 个残留键(后端已经不再暴露,但仍在白名单中)`},{default:s(()=>[u("div",re,[(d(!0),f(G,null,O(l.value,v=>(d(),g(e,{key:v,type:"warning",size:"small",closable:"",onClose:o=>w(v)},{default:s(()=>[i(S(v),1)]),_:2},1032,["onClose"]))),128)),c(a,{link:"",type:"warning",size:"small",onClick:z},{default:s(()=>[...t[3]||(t[3]=[i("一键清理全部残留",-1)])]),_:1})])]),_:1},8,["title"])])):A("",!0)])}}}),B=K(me,[["__scopeId","data-v-c29d34fc"]]),pe={class:"mmc-header"},ve={class:"mmc-tab-body"},fe=D({__name:"MapMonitorConfigView",setup(p){const M=[{value:"car",label:"车辆 (Car)"},{value:"site",label:"站点 (Site)"},{value:"track",label:"路径 (Track)"}],n=V("car"),m=V(!1),_=V(!1),l=j(L()),b=j(ne()),y=V(JSON.stringify(L())),E=$(()=>y.value!==JSON.stringify(l));function C(t,e){for(const a of M)t[a.value].fields=[...e[a.value]?.fields??[]],t[a.value].status=[...e[a.value]?.status??[]],t[a.value].methods=[...e[a.value]?.methods??[]]}async function w(t=!1){m.value=!0;try{const e=await P.getMonitorConfig();C(l,e.config),C(b,e.available),y.value=JSON.stringify(l),t&&k.success("已重载")}catch(e){k.error(`加载失败:${e instanceof Error?e.message:String(e)}`)}finally{m.value=!1}}async function z(){_.value=!0;try{const t=await P.saveMonitorConfig({car:{...l.car},site:{...l.site},track:{...l.track}});C(l,t),y.value=JSON.stringify(l),k.success("已保存(已写入 simple.json")}catch(t){k.error(`保存失败:${t instanceof Error?t.messag