Files
Migu2.0/MiGu.Server/wwwroot/assets/ConfigPageBase-B4fOVsSK.js
T
zhaowei.huangandCursor e2269e430d feat(platform): 合并车辆运维页并优化 3D 画布嵌入体验
将维护策略与车队生命周期并入车辆运维 Tab,补充旧路由重定向与 RBAC 页面 key 迁移;改进 Workspace3D 就绪探测与 wwwroot 静态资源。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 14:39:50 +08:00

2 lines
5.8 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{aS as E,e as J,aH as L,aG as R,bf as S,bG as V,b5 as j,aA as O,bH as r,b7 as k,aF as l,aC as D,bo as y,aB as w,az as p,a1 as G,w as H,t as I,bi as U,aE as u,ac as W,r as X,br as T,bg as q,ar as Q,av as z,X as m,aj as Y}from"./index-CC_hCGHZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as Z}from"./PermissionGuard-DxbOGfWF.js";import{b as tt,r as C}from"./reflection-CTDOoTn5.js";import{i as et}from"./monitorConfigCache-B5CZXjjB.js";async function at(t){const{data:e}=await E.get(`/config/${t}`);return e}async function ot(t,e){const{data:a}=await E.put(`/config/${t}`,e);return a}function h(){return JSON.parse(JSON.stringify(J.monitor))}function b(t){const e=JSON.parse(JSON.stringify(J));if(!t)return e;const a={...h(),...t.monitor??{},car:{...h().car,...t.monitor?.car??{}},site:{...h().site,...t.monitor?.site??{}},track:{...h().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 M(t){const e={};if(!t)return e;for(const[a,o]of Object.entries(t))!a||!Array.isArray(o)||(e[a]=[...o]);return e}function nt(t){return{carActionByType:M(t.carActionByType),siteActionKeys:[...t.site?.methods??[]],trackActionKeys:[...t.track?.methods??[]]}}async function kt(t,e){const a=b(t);let o=null;try{o=(e??await C.getMonitorConfig()).config;const d=nt(o);a.monitor.carActionByType=d.carActionByType,a.monitor.site.actionKeys=d.siteActionKeys,a.monitor.track.actionKeys=d.trackActionKeys}catch{}return{config:a,cache:o}}async function Ct(t,e){const a=b(t).monitor;let o=e?.cachedRoot??tt();if(!e?.cachedRoot)try{o=(await C.getMonitorConfig()).config}catch{}const c=await C.saveMonitorConfig({car:{fields:[...o.car?.fields??[]],status:[...o.car?.status??[]],methods:[...o.car?.methods??[]]},site:{fields:[...o.site?.fields??[]],status:[...o.site?.status??[]],methods:[...a.site.actionKeys]},track:{fields:[...o.track?.fields??[]],status:[...o.track?.status??[]],methods:[...a.track.actionKeys]},carActionByType:M(a.carActionByType)});return et(),c}const st=L("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 at(t);return t==="ops"&&a.payload&&(a.payload=b(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"?b(e):e,o=await ot(t,a);return this.cache[t]=o,o}finally{this.loading[t]=!1}}}}),it={class:"cpb-header"},rt={class:"cpb-title"},ct={key:0,class:"cpb-desc"},lt={class:"cpb-body"},dt={class:"cpb-json"},ft=R({__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=st(),o=S(null),c=S(JSON.parse(JSON.stringify(e.defaults))),d=S(!1),v=S(!1),P=z(()=>JSON.stringify(c.value,null,2)),$=z(()=>o.value?.updatedAt?new Date(o.value.updatedAt).toLocaleString("zh-CN"):"—");function A(i){c.value=i}function x(i){let n=JSON.parse(JSON.stringify(i||e.defaults));e.normalizePayload&&(n=e.normalizePayload(n)),c.value=n}async function B(i,n){d.value=!0;try{const s=await a.load(e.section,i);o.value=s,x(s.payload),e.afterLoad&&await e.afterLoad(c.value,A),n&&m.success("已重载")}catch(s){m.error(`加载失败:${s instanceof Error?s.message:String(s)}`)}finally{d.value=!1}}async function _(i=!1){await B(i,i)}async function F(){v.value=!0;let i=c.value;if(e.normalizePayload&&(i=e.normalizePayload(i)),e.beforeSave)try{await e.beforeSave(i)}catch(s){m.error(`地图监控配置保存失败:${s instanceof Error?s.message:String(s)}`),v.value=!1;return}let n="";try{const s=await a.save(e.section,i);if(o.value=s,c.value=i,e.afterSave)try{await e.afterSave(i)}catch(f){n=`(平台配置已保存,但 SimpleLite 同步失败:${f instanceof Error?f.message:String(f)}`}await B(!0,!1);const g=e.beforeSave||e.afterSave?",地图监控配置已写入 SimpleLite":"";m.success(`已保存 v${s.version}${g}${n}`)}catch(s){m.error(`保存失败:${s instanceof Error?s.message:String(s)}`)}finally{v.value=!1}}return V(()=>e.section,()=>_()),j(()=>_()),(i,n)=>{const s=W,g=X,f=I,N=H,K=G;return k(),O(Z,{"widget-id":"ConfigCenter"},{default:r(()=>[l(f,{shadow:"never"},{header:r(()=>[p("div",it,[p("span",rt,y(t.title),1),l(s,{size:"small",effect:"plain"},{default:r(()=>[u("section="+y(t.section),1)]),_:1}),l(s,{size:"small",type:"info",effect:"plain"},{default:r(()=>[u("v"+y(o.value?.version??"-"),1)]),_:1}),o.value?.updatedAt?(k(),O(s,{key:0,size:"small",type:"success",effect:"plain"},{default:r(()=>[u(y($.value),1)]),_:1})):w("",!0),n[3]||(n[3]=p("div",{class:"spacer"},null,-1)),l(g,{size:"small",icon:T(q),loading:d.value,onClick:n[0]||(n[0]=ut=>_(!0))},{default:r(()=>[...n[1]||(n[1]=[u("重载",-1)])]),_:1},8,["icon","loading"]),l(g,{size:"small",type:"primary",icon:T(Q),loading:v.value,onClick:F},{default:r(()=>[...n[2]||(n[2]=[u("保存",-1)])]),_:1},8,["icon","loading"])])]),default:r(()=>[t.description?(k(),D("p",ct,y(t.description),1)):w("",!0),p("div",lt,[l(K,{gutter:12},{default:r(()=>[l(N,{span:14},{default:r(()=>[l(f,{shadow:"never","body-style":"padding: 12px"},{header:r(()=>[...n[4]||(n[4]=[u("表单",-1)])]),default:r(()=>[U(i.$slots,"default",{payload:c.value,update:A},void 0,!0)]),_:3})]),_:3}),l(N,{span:10},{default:r(()=>[l(f,{shadow:"never","body-style":"padding: 0"},{header:r(()=>[...n[5]||(n[5]=[u("JSON 预览(保存即下发占位)",-1)])]),default:r(()=>[p("pre",dt,y(P.value),1)]),_:1})]),_:1})]),_:3})])]),_:3})]),_:3})}}}),At=Y(ft,[["__scopeId","data-v-1d51a575"]]);export{At as C,M as c,h as d,kt as l,b as n,Ct as s};