Files
Migu2.0/MiGu.Server/wwwroot/assets/ConfigPageBase-CPF7i-FB.js
T
zhaowei.huangandCursor 42978930ca feat: 迁入 MiGu.Server、平台前端与车辆列表 reflection 回退
从 Simple-FR 拆出 Platform.Server 并重命名为 MiGu.Server;frontends 源码与构建脚本迁入本仓库。地图监控在 projection/cars 失败或为空时回退 reflection 车辆列表;Simple 仓库已移除旧 Platform.Server。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 18:16:34 +08:00

2 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{aQ as T,f as J,aH as K,aG as L,bb as g,bA as R,b1 as V,aA as O,bB as i,b3 as k,aF as c,aC as j,bj as u,aB as w,az as p,a2 as D,x as G,u as I,be as H,aE as f,ad as Q,s as U,bm as z,bc as W,as as Y,av as E,Y as y,al as q}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as X}from"./PermissionGuard-BxagL6-4.js";import{r as C,a as Z}from"./reflection-Dr3WM5Rz.js";async function tt(t){const{data:e}=await T.get(`/config/${t}`);return e}async function et(t,e){const{data:a}=await T.put(`/config/${t}`,e);return a}function S(){return JSON.parse(JSON.stringify(J.monitor))}function h(t){const e=JSON.parse(JSON.stringify(J));if(!t)return e;const a={...S(),...t.monitor??{},car:{...S().car,...t.monitor?.car??{}},site:{...S().site,...t.monitor?.site??{}},track:{...S().track,...t.monitor?.track??{}},carActionByType:{...t.monitor?.carActionByType??{}}};return{...e,...t,playback:{...e.playback,...t.playback??{}},logRetention:{...e.logRetention,...t.logRetention??{}},version:{...e.version,...t.version??{}},monitor:a}}function at(t){return{carActionByType:{...t.carActionByType??{}},siteActionKeys:[...t.site?.methods??[]],trackActionKeys:[...t.track?.methods??[]]}}async function ht(t){const e=h(t);try{const a=await C.getMonitorConfig(),r=at(a.config);e.monitor.carActionByType=r.carActionByType,e.monitor.site.actionKeys=r.siteActionKeys,e.monitor.track.actionKeys=r.trackActionKeys}catch{}return e}async function bt(t){const e=h(t).monitor;let a=Z();try{a=(await C.getMonitorConfig()).config}catch{}await C.saveMonitorConfig({car:{fields:[...a.car?.fields??[]],status:[...a.car?.status??[]],methods:[...a.car?.methods??[]]},site:{fields:[...a.site?.fields??[]],status:[...a.site?.status??[]],methods:[...e.site.actionKeys]},track:{fields:[...a.track?.fields??[]],status:[...a.track?.status??[]],methods:[...e.track.actionKeys]},carActionByType:{...e.carActionByType}})}const ot=K("config",{state:()=>({cache:{},loading:{}}),actions:{async load(t,e=!1){if(!e&&this.cache[t])return this.cache[t];this.loading[t]=!0;try{const a=await tt(t);return t==="ops"&&a.payload&&(a.payload=h(a.payload)),this.cache[t]=a,a}finally{this.loading[t]=!1}},async save(t,e){this.loading[t]=!0;try{const a=t==="ops"?h(e):e,r=await et(t,a);return this.cache[t]=r,r}finally{this.loading[t]=!1}}}}),nt={class:"cpb-header"},st={class:"cpb-title"},it={key:0,class:"cpb-desc"},rt={class:"cpb-body"},ct={class:"cpb-json"},lt=L({__name:"ConfigPageBase",props:{section:{},title:{},description:{},defaults:{},normalizePayload:{type:Function},afterLoad:{type:Function},beforeSave:{type:Function},afterSave:{type:Function}},setup(t){const e=t,a=ot(),r=g(null),l=g(JSON.parse(JSON.stringify(e.defaults))),b=g(!1),m=g(!1),P=E(()=>JSON.stringify(l.value,null,2)),M=E(()=>r.value?.updatedAt?new Date(r.value.updatedAt).toLocaleString("zh-CN"):"—");function A(s){l.value=s}function $(s){let o=JSON.parse(JSON.stringify(s||e.defaults));e.normalizePayload&&(o=e.normalizePayload(o)),l.value=o}async function B(s,o){b.value=!0;try{const n=await a.load(e.section,s);r.value=n,$(n.payload),e.afterLoad&&await e.afterLoad(l.value,A),o&&y.success("已重载")}catch(n){y.error(`加载失败:${n instanceof Error?n.message:String(n)}`)}finally{b.value=!1}}async function _(s=!1){await B(s,s)}async function x(){m.value=!0;let s=l.value;if(e.normalizePayload&&(s=e.normalizePayload(s)),e.beforeSave)try{await e.beforeSave(s)}catch(n){y.error(`地图监控配置保存失败:${n instanceof Error?n.message:String(n)}`),m.value=!1;return}let o="";try{const n=await a.save(e.section,s);if(r.value=n,l.value=s,e.afterSave)try{await e.afterSave(s)}catch(d){o=`(平台配置已保存,但 SimpleLite 同步失败:${d instanceof Error?d.message:String(d)}`}await B(!0,!1);const v=e.beforeSave||e.afterSave?",地图监控配置已写入 SimpleLite":"";y.success(`已保存 v${n.version}${v}${o}`)}catch(n){y.error(`保存失败:${n instanceof Error?n.message:String(n)}`)}finally{m.value=!1}}return R(()=>e.section,()=>_()),V(()=>_()),(s,o)=>{const n=Q,v=U,d=I,N=G,F=D;return k(),O(X,{"widget-id":"ConfigCenter"},{default:i(()=>[c(d,{shadow:"never"},{header:i(()=>[p("div",nt,[p("span",st,u(t.title),1),c(n,{size:"small",effect:"plain"},{default:i(()=>[f("section="+u(t.section),1)]),_:1}),c(n,{size:"small",type:"info",effect:"plain"},{default:i(()=>[f("v"+u(r.value?.version??"-"),1)]),_:1}),r.value?.updatedAt?(k(),O(n,{key:0,size:"small",type:"success",effect:"plain"},{default:i(()=>[f(u(M.value),1)]),_:1})):w("",!0),o[3]||(o[3]=p("div",{class:"spacer"},null,-1)),c(v,{size:"small",icon:z(W),loading:b.value,onClick:o[0]||(o[0]=dt=>_(!0))},{default:i(()=>[...o[1]||(o[1]=[f("重载",-1)])]),_:1},8,["icon","loading"]),c(v,{size:"small",type:"primary",icon:z(Y),loading:m.value,onClick:x},{default:i(()=>[...o[2]||(o[2]=[f("保存",-1)])]),_:1},8,["icon","loading"])])]),default:i(()=>[t.description?(k(),j("p",it,u(t.description),1)):w("",!0),p("div",rt,[c(F,{gutter:12},{default:i(()=>[c(N,{span:14},{default:i(()=>[c(d,{shadow:"never","body-style":"padding: 12px"},{header:i(()=>[...o[4]||(o[4]=[f("表单",-1)])]),default:i(()=>[H(s.$slots,"default",{payload:l.value,update:A},void 0,!0)]),_:3})]),_:3}),c(N,{span:10},{default:i(()=>[c(d,{shadow:"never","body-style":"padding: 0"},{header:i(()=>[...o[5]||(o[5]=[f("JSON 预览(保存即下发占位)",-1)])]),default:i(()=>[p("pre",ct,u(P.value),1)]),_:1})]),_:1})]),_:3})])]),_:3})]),_:3})}}}),_t=q(lt,[["__scopeId","data-v-83b90685"]]);export{_t as C,ht as l,h as n,bt as s};