From 1c03c7bd80cf251dd46fbf2f29a421501a129010 Mon Sep 17 00:00:00 2001 From: "zhaowei.huang" <228127304@qq.com> Date: Mon, 8 Jun 2026 18:18:48 +0800 Subject: [PATCH] build(frontend): sync compiled web assets --- .../wwwroot/assets/AnnotationView-BCpnjaJW.js | 1 + .../wwwroot/assets/AnnotationView-DixiuHnc.js | 1 - .../wwwroot/assets/AppShell-CAX-HJ2b.js | 1 - .../wwwroot/assets/AppShell-CFoRRXmz.css | 1 + .../wwwroot/assets/AppShell-CsAf-EtY.js | 1 + .../wwwroot/assets/AppShell-D28lCBtn.css | 1 - .../wwwroot/assets/AuthRoleView-BW7bVuKX.js | 1 - .../wwwroot/assets/AuthRoleView-CTEbfTF-.css | 1 - .../assets/BusinessConfigView-BfBO4uM6.js | 1 + .../assets/BusinessConfigView-mcy1bFqR.css | 1 + .../wwwroot/assets/CarPanelView-BiDARL2O.js | 1 + ...CYaApbj9.css => CarPanelView-CyQ-iKoo.css} | 2 +- .../wwwroot/assets/CarPanelView-DfcvV1b9.js | 1 - .../assets/ChargePolicyView-fgYXxU-T.js | 1 - ...MHa7yfOO.js => ConfigPageBase-CgfsngDp.js} | 2 +- .../assets/CustomWidgetView-Ch0BQYzJ.css | 1 - .../assets/CustomWidgetView-Ch7DIGUj.js | 1 - .../wwwroot/assets/DashboardView-C22mCfRB.css | 1 - .../wwwroot/assets/DashboardView-C5o_Ttf4.js | 60 ----------- .../wwwroot/assets/DashboardView-Rj8saK5Q.js | 22 ++++ .../wwwroot/assets/DashboardView-hw3Lq69B.css | 1 + .../wwwroot/assets/DeviceHubView-D6W4gbr_.js | 1 - .../ExternalIntegrationView-CVrzHPs8.js | 1 - .../assets/FacilityConfigView-BdZ62AIz.js | 1 + .../assets/FacilityConfigView-DTlQlSfB.css | 1 + .../wwwroot/assets/LocationView-r0d4EkyN.js | 1 - ...View-0TaDlGzh.js => LoginView-DR-JtkF-.js} | 2 +- .../wwwroot/assets/MapEditorView-BeHcrkSz.js | 1 + .../wwwroot/assets/MapEditorView-Bf_sv8Aw.js | 1 - ...Trk0FFM.css => MapEditorView-CBiaEgWL.css} | 2 +- .../assets/MapManagementView-BfnAn-Bv.js | 4 + .../assets/MapManagementView-CccyKhbv.js | 4 - .../assets/MapManagementView-DJMxI8po.css | 1 - .../assets/MapManagementView-DSxBVRvt.css | 1 + .../assets/MapMonitorConfigView-BC-sAP6v.css | 1 - .../assets/MapMonitorConfigView-CYlZhPX2.js | 1 - ...9_ePeE.css => MapMonitorView-7EMxOrDQ.css} | 2 +- .../wwwroot/assets/MapMonitorView-Bc6X9WQO.js | 2 - .../wwwroot/assets/MapMonitorView-CdBlKooR.js | 2 + .../assets/MissionEditorView-BNUdM9Ij.js | 1 - .../assets/MissionEditorView-DOR5c4wb.css | 1 - ...jL.js => MonitorDashboardView-BhyuAhkj.js} | 2 +- .../wwwroot/assets/MonitorMapView-D59BIz8C.js | 1 + .../wwwroot/assets/MonitorMapView-OvNLwhYc.js | 1 - ...81Kn.js => OpsActionPanelView-CYj4_682.js} | 4 +- .../wwwroot/assets/OpsCenterView-DK8hhBKP.css | 1 + .../wwwroot/assets/OpsCenterView-DSZVXypR.js | 2 + .../wwwroot/assets/OpsConfigView-Ch6itZUF.js | 1 - .../wwwroot/assets/OpsConfigView-Dn7upUIu.css | 1 - ...lMEkqrL.js => PermissionGuard-CR4qtxrh.js} | 2 +- .../wwwroot/assets/PlaybackView-BsrAVvYx.css | 1 - .../wwwroot/assets/PlaybackView-DVrgp4e4.js | 1 - .../assets/ProcessPanelView-Cb7rpouy.css | 1 + .../assets/ProcessPanelView-DLKKlZA4.css | 1 - .../assets/ProcessPanelView-Dh8TMlBL.js | 1 + .../assets/ProcessPanelView-DoD_u6oD.js | 1 - ...l.js => ProjectPropertiesView-wJsYQ6C1.js} | 4 +- .../assets/ReflectionManagerPanel-BZQZIz4T.js | 4 - .../ReflectionManagerPanel-Bsiwi559.css | 1 + .../ReflectionManagerPanel-Btm77NGt.css | 1 - .../assets/ReflectionManagerPanel-CqcqGxZI.js | 4 + .../assets/RoutingPolicyView-vyV201zY.js | 1 - .../assets/ScenarioTemplateView-CmTU4kEH.js | 1 - .../assets/ScenarioTemplateView-rv7Jf-RX.css | 1 - .../assets/ScriptPanelView-BHu191Ko.css | 1 + .../assets/ScriptPanelView-D8niLWli.js | 1 + .../assets/ScriptPanelView-DMd6Dq7p.js | 1 - .../assets/ScriptPanelView-zM2-1jjH.css | 1 - ...g6q_Q.js => ServiceStatusView-nxCKHggR.js} | 2 +- .../assets/StrategyConfigView-DCtZMQRi.css | 1 + .../assets/StrategyConfigView-DqIoZFxi.js | 1 + .../assets/SystemCenterView-Cj7be1bs.css | 1 + .../assets/SystemCenterView-DTMANlHu.js | 2 + .../assets/SystemConfigView-Cy7YXbTA.js | 2 - .../assets/SystemConfigView-zK_tPjiF.css | 1 - .../assets/TaskAllocationView-BoGL3AmK.js | 1 - .../assets/TaskTemplateView-0IwfArtT.css | 1 + .../assets/TaskTemplateView-BOoJh-Fl.js | 26 +++++ .../assets/TrackTableView-B2SrXZLA.css | 1 + .../wwwroot/assets/TrackTableView-B6xSRo4y.js | 1 + .../assets/TrackTableView-C-Cp6740.css | 1 - .../wwwroot/assets/TrackTableView-CKv4G01-.js | 1 - .../assets/TrafficRuleView-CZpyEJOL.js | 1 - ...1cdDkq5N.js => VehicleHubView-BC4ONtdY.js} | 2 +- ...iew-C7EOtEcB.js => WizardView-B-JxMvwI.js} | 2 +- ...3D-DpUfTJl7.js => Workspace3D-B9mv4VWE.js} | 2 +- .../assets/el-breadcrumb-item-DXfSxFSr.css | 1 + MiGu.Server/wwwroot/assets/index-D5GfLbIx.js | 100 ++++++++++++++++++ MiGu.Server/wwwroot/assets/index-Dg4NaXsE.js | 100 ------------------ .../wwwroot/assets/install-D_iTbSFG.js | 39 +++++++ ...apEdit-TNAQr3Be.js => mapEdit-BXIATxCI.js} | 2 +- ...kiFw.js => monitorConfigCache-DXn96T8F.js} | 2 +- MiGu.Server/wwwroot/assets/ops-C48uBBTk.js | 1 + MiGu.Server/wwwroot/assets/ops-CsVl7GhE.js | 1 - .../assets/projectSaveFlow-BOHSv3Vc.js | 4 + ...ion-BMms551H.js => projection-BHFE6Meg.js} | 2 +- ...ion-B_glb6eT.js => reflection-BwOBPyb9.js} | 2 +- .../assets/useMapEditStream-BgR6WvRg.js | 1 - .../assets/useProjectionStream-BBHmpNXC.js | 1 - .../assets/useProjectionStream-ayb6RvWW.js | 1 + .../assets/workspaceToolbar-abOZ7a24.js | 1 + MiGu.Server/wwwroot/index.html | 2 +- 102 files changed, 253 insertions(+), 232 deletions(-) create mode 100644 MiGu.Server/wwwroot/assets/AnnotationView-BCpnjaJW.js delete mode 100644 MiGu.Server/wwwroot/assets/AnnotationView-DixiuHnc.js delete mode 100644 MiGu.Server/wwwroot/assets/AppShell-CAX-HJ2b.js create mode 100644 MiGu.Server/wwwroot/assets/AppShell-CFoRRXmz.css create mode 100644 MiGu.Server/wwwroot/assets/AppShell-CsAf-EtY.js delete mode 100644 MiGu.Server/wwwroot/assets/AppShell-D28lCBtn.css delete mode 100644 MiGu.Server/wwwroot/assets/AuthRoleView-BW7bVuKX.js delete mode 100644 MiGu.Server/wwwroot/assets/AuthRoleView-CTEbfTF-.css create mode 100644 MiGu.Server/wwwroot/assets/BusinessConfigView-BfBO4uM6.js create mode 100644 MiGu.Server/wwwroot/assets/BusinessConfigView-mcy1bFqR.css create mode 100644 MiGu.Server/wwwroot/assets/CarPanelView-BiDARL2O.js rename MiGu.Server/wwwroot/assets/{CarPanelView-CYaApbj9.css => CarPanelView-CyQ-iKoo.css} (89%) delete mode 100644 MiGu.Server/wwwroot/assets/CarPanelView-DfcvV1b9.js delete mode 100644 MiGu.Server/wwwroot/assets/ChargePolicyView-fgYXxU-T.js rename MiGu.Server/wwwroot/assets/{ConfigPageBase-MHa7yfOO.js => ConfigPageBase-CgfsngDp.js} (69%) delete mode 100644 MiGu.Server/wwwroot/assets/CustomWidgetView-Ch0BQYzJ.css delete mode 100644 MiGu.Server/wwwroot/assets/CustomWidgetView-Ch7DIGUj.js delete mode 100644 MiGu.Server/wwwroot/assets/DashboardView-C22mCfRB.css delete mode 100644 MiGu.Server/wwwroot/assets/DashboardView-C5o_Ttf4.js create mode 100644 MiGu.Server/wwwroot/assets/DashboardView-Rj8saK5Q.js create mode 100644 MiGu.Server/wwwroot/assets/DashboardView-hw3Lq69B.css delete mode 100644 MiGu.Server/wwwroot/assets/DeviceHubView-D6W4gbr_.js delete mode 100644 MiGu.Server/wwwroot/assets/ExternalIntegrationView-CVrzHPs8.js create mode 100644 MiGu.Server/wwwroot/assets/FacilityConfigView-BdZ62AIz.js create mode 100644 MiGu.Server/wwwroot/assets/FacilityConfigView-DTlQlSfB.css delete mode 100644 MiGu.Server/wwwroot/assets/LocationView-r0d4EkyN.js rename MiGu.Server/wwwroot/assets/{LoginView-0TaDlGzh.js => LoginView-DR-JtkF-.js} (72%) create mode 100644 MiGu.Server/wwwroot/assets/MapEditorView-BeHcrkSz.js delete mode 100644 MiGu.Server/wwwroot/assets/MapEditorView-Bf_sv8Aw.js rename MiGu.Server/wwwroot/assets/{MapEditorView-DTrk0FFM.css => MapEditorView-CBiaEgWL.css} (98%) create mode 100644 MiGu.Server/wwwroot/assets/MapManagementView-BfnAn-Bv.js delete mode 100644 MiGu.Server/wwwroot/assets/MapManagementView-CccyKhbv.js delete mode 100644 MiGu.Server/wwwroot/assets/MapManagementView-DJMxI8po.css create mode 100644 MiGu.Server/wwwroot/assets/MapManagementView-DSxBVRvt.css delete mode 100644 MiGu.Server/wwwroot/assets/MapMonitorConfigView-BC-sAP6v.css delete mode 100644 MiGu.Server/wwwroot/assets/MapMonitorConfigView-CYlZhPX2.js rename MiGu.Server/wwwroot/assets/{MapMonitorView-Du9_ePeE.css => MapMonitorView-7EMxOrDQ.css} (91%) delete mode 100644 MiGu.Server/wwwroot/assets/MapMonitorView-Bc6X9WQO.js create mode 100644 MiGu.Server/wwwroot/assets/MapMonitorView-CdBlKooR.js delete mode 100644 MiGu.Server/wwwroot/assets/MissionEditorView-BNUdM9Ij.js delete mode 100644 MiGu.Server/wwwroot/assets/MissionEditorView-DOR5c4wb.css rename MiGu.Server/wwwroot/assets/{MonitorDashboardView-Dl0hq3jL.js => MonitorDashboardView-BhyuAhkj.js} (60%) create mode 100644 MiGu.Server/wwwroot/assets/MonitorMapView-D59BIz8C.js delete mode 100644 MiGu.Server/wwwroot/assets/MonitorMapView-OvNLwhYc.js rename MiGu.Server/wwwroot/assets/{OpsActionPanelView-CgLT81Kn.js => OpsActionPanelView-CYj4_682.js} (66%) create mode 100644 MiGu.Server/wwwroot/assets/OpsCenterView-DK8hhBKP.css create mode 100644 MiGu.Server/wwwroot/assets/OpsCenterView-DSZVXypR.js delete mode 100644 MiGu.Server/wwwroot/assets/OpsConfigView-Ch6itZUF.js delete mode 100644 MiGu.Server/wwwroot/assets/OpsConfigView-Dn7upUIu.css rename MiGu.Server/wwwroot/assets/{PermissionGuard-BlMEkqrL.js => PermissionGuard-CR4qtxrh.js} (53%) delete mode 100644 MiGu.Server/wwwroot/assets/PlaybackView-BsrAVvYx.css delete mode 100644 MiGu.Server/wwwroot/assets/PlaybackView-DVrgp4e4.js create mode 100644 MiGu.Server/wwwroot/assets/ProcessPanelView-Cb7rpouy.css delete mode 100644 MiGu.Server/wwwroot/assets/ProcessPanelView-DLKKlZA4.css create mode 100644 MiGu.Server/wwwroot/assets/ProcessPanelView-Dh8TMlBL.js delete mode 100644 MiGu.Server/wwwroot/assets/ProcessPanelView-DoD_u6oD.js rename MiGu.Server/wwwroot/assets/{ProjectPropertiesView-DxQyu0yl.js => ProjectPropertiesView-wJsYQ6C1.js} (60%) delete mode 100644 MiGu.Server/wwwroot/assets/ReflectionManagerPanel-BZQZIz4T.js create mode 100644 MiGu.Server/wwwroot/assets/ReflectionManagerPanel-Bsiwi559.css delete mode 100644 MiGu.Server/wwwroot/assets/ReflectionManagerPanel-Btm77NGt.css create mode 100644 MiGu.Server/wwwroot/assets/ReflectionManagerPanel-CqcqGxZI.js delete mode 100644 MiGu.Server/wwwroot/assets/RoutingPolicyView-vyV201zY.js delete mode 100644 MiGu.Server/wwwroot/assets/ScenarioTemplateView-CmTU4kEH.js delete mode 100644 MiGu.Server/wwwroot/assets/ScenarioTemplateView-rv7Jf-RX.css create mode 100644 MiGu.Server/wwwroot/assets/ScriptPanelView-BHu191Ko.css create mode 100644 MiGu.Server/wwwroot/assets/ScriptPanelView-D8niLWli.js delete mode 100644 MiGu.Server/wwwroot/assets/ScriptPanelView-DMd6Dq7p.js delete mode 100644 MiGu.Server/wwwroot/assets/ScriptPanelView-zM2-1jjH.css rename MiGu.Server/wwwroot/assets/{ServiceStatusView-CiTg6q_Q.js => ServiceStatusView-nxCKHggR.js} (73%) create mode 100644 MiGu.Server/wwwroot/assets/StrategyConfigView-DCtZMQRi.css create mode 100644 MiGu.Server/wwwroot/assets/StrategyConfigView-DqIoZFxi.js create mode 100644 MiGu.Server/wwwroot/assets/SystemCenterView-Cj7be1bs.css create mode 100644 MiGu.Server/wwwroot/assets/SystemCenterView-DTMANlHu.js delete mode 100644 MiGu.Server/wwwroot/assets/SystemConfigView-Cy7YXbTA.js delete mode 100644 MiGu.Server/wwwroot/assets/SystemConfigView-zK_tPjiF.css delete mode 100644 MiGu.Server/wwwroot/assets/TaskAllocationView-BoGL3AmK.js create mode 100644 MiGu.Server/wwwroot/assets/TaskTemplateView-0IwfArtT.css create mode 100644 MiGu.Server/wwwroot/assets/TaskTemplateView-BOoJh-Fl.js create mode 100644 MiGu.Server/wwwroot/assets/TrackTableView-B2SrXZLA.css create mode 100644 MiGu.Server/wwwroot/assets/TrackTableView-B6xSRo4y.js delete mode 100644 MiGu.Server/wwwroot/assets/TrackTableView-C-Cp6740.css delete mode 100644 MiGu.Server/wwwroot/assets/TrackTableView-CKv4G01-.js delete mode 100644 MiGu.Server/wwwroot/assets/TrafficRuleView-CZpyEJOL.js rename MiGu.Server/wwwroot/assets/{VehicleHubView-1cdDkq5N.js => VehicleHubView-BC4ONtdY.js} (71%) rename MiGu.Server/wwwroot/assets/{WizardView-C7EOtEcB.js => WizardView-B-JxMvwI.js} (50%) rename MiGu.Server/wwwroot/assets/{Workspace3D-DpUfTJl7.js => Workspace3D-B9mv4VWE.js} (58%) create mode 100644 MiGu.Server/wwwroot/assets/el-breadcrumb-item-DXfSxFSr.css create mode 100644 MiGu.Server/wwwroot/assets/index-D5GfLbIx.js delete mode 100644 MiGu.Server/wwwroot/assets/index-Dg4NaXsE.js create mode 100644 MiGu.Server/wwwroot/assets/install-D_iTbSFG.js rename MiGu.Server/wwwroot/assets/{mapEdit-TNAQr3Be.js => mapEdit-BXIATxCI.js} (50%) rename MiGu.Server/wwwroot/assets/{monitorConfigCache-BigdkiFw.js => monitorConfigCache-DXn96T8F.js} (72%) create mode 100644 MiGu.Server/wwwroot/assets/ops-C48uBBTk.js delete mode 100644 MiGu.Server/wwwroot/assets/ops-CsVl7GhE.js create mode 100644 MiGu.Server/wwwroot/assets/projectSaveFlow-BOHSv3Vc.js rename MiGu.Server/wwwroot/assets/{projection-BMms551H.js => projection-BHFE6Meg.js} (92%) rename MiGu.Server/wwwroot/assets/{reflection-B_glb6eT.js => reflection-BwOBPyb9.js} (78%) delete mode 100644 MiGu.Server/wwwroot/assets/useMapEditStream-BgR6WvRg.js delete mode 100644 MiGu.Server/wwwroot/assets/useProjectionStream-BBHmpNXC.js create mode 100644 MiGu.Server/wwwroot/assets/useProjectionStream-ayb6RvWW.js create mode 100644 MiGu.Server/wwwroot/assets/workspaceToolbar-abOZ7a24.js diff --git a/MiGu.Server/wwwroot/assets/AnnotationView-BCpnjaJW.js b/MiGu.Server/wwwroot/assets/AnnotationView-BCpnjaJW.js new file mode 100644 index 0000000..a6db7ae --- /dev/null +++ b/MiGu.Server/wwwroot/assets/AnnotationView-BCpnjaJW.js @@ -0,0 +1 @@ +import{aN as S,bV as N,aE as f,c8 as a,t as z,bs as p,aK as e,N as A,cb as B,O,R as T,a4 as D,aG as M,ai as U,bE as F,Z as G,r as L,bS as b,aJ as d,G as I,aa as J,ab as K,ad as R,bL as X,aD as c,bA as Z,bC as $,X as g}from"./index-D5GfLbIx.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */const j={style:{display:"flex","align-items":"center",gap:"8px"}},pe=S({__name:"AnnotationView",setup(q){const s=N(),l=Z({title:"",target:"",level:"info",content:""}),m=$([{id:"N001",ts:"2026-05-19 10:25",author:"ops",target:"C05",level:"warn",title:"AGV-005 故障观察",content:"出库点附近频繁停顿,怀疑激光被遮挡"}]);function w(r){return r==="error"?"danger":r==="warn"?"warning":"info"}function v(){if(!l.title){g.warning("请填写标题");return}const r=`N${String(m.value.length+1).padStart(3,"0")}`;m.value.unshift({id:r,ts:new Date().toLocaleString("zh-CN"),author:s.user?.username??"mock",target:l.target,level:l.level,title:l.title,content:l.content}),g.success("已记录(Mock,未写入数据库)"),l.title="",l.content="",l.target=""}return(r,t)=>{const u=R,_=T,i=O,V=G,y=D,E=L,x=A,h=I,n=K,k=J,C=z;return p(),f(C,{shadow:"never"},{header:a(()=>[c("div",j,[t[7]||(t[7]=c("span",null,"运营备注(monitor.note.write · 写 platform.db.Annotations)",-1)),b(s).hasOp("monitor.note.write")?(p(),f(u,{key:0,size:"small",type:"success"},{default:a(()=>[...t[5]||(t[5]=[d("可写",-1)])]),_:1})):(p(),f(u,{key:1,size:"small",type:"danger"},{default:a(()=>[...t[6]||(t[6]=[d("只读",-1)])]),_:1}))])]),default:a(()=>[e(x,{inline:"",onSubmit:t[3]||(t[3]=B(()=>{},["prevent"]))},{default:a(()=>[e(i,{label:"标题"},{default:a(()=>[e(_,{modelValue:l.title,"onUpdate:modelValue":t[0]||(t[0]=o=>l.title=o),style:{width:"240px"}},null,8,["modelValue"])]),_:1}),e(i,{label:"关联目标"},{default:a(()=>[e(_,{modelValue:l.target,"onUpdate:modelValue":t[1]||(t[1]=o=>l.target=o),placeholder:"例如 C01 / M02 / S006",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),e(i,{label:"层级"},{default:a(()=>[e(y,{modelValue:l.level,"onUpdate:modelValue":t[2]||(t[2]=o=>l.level=o),style:{width:"120px"}},{default:a(()=>[(p(),M(U,null,F(["info","warn","error"],o=>e(V,{key:o,label:o,value:o},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),e(i,null,{default:a(()=>[e(E,{type:"primary",disabled:!b(s).hasOp("monitor.note.write"),onClick:v},{default:a(()=>[...t[8]||(t[8]=[d("提交",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1}),e(_,{modelValue:l.content,"onUpdate:modelValue":t[4]||(t[4]=o=>l.content=o),type:"textarea",rows:4,placeholder:"描述备注内容...",disabled:!b(s).hasOp("monitor.note.write")},null,8,["modelValue","disabled"]),e(h),e(k,{data:m.value,size:"small","max-height":"400"},{default:a(()=>[e(n,{prop:"ts",label:"时间",width:"180"}),e(n,{prop:"author",label:"作者",width:"100"}),e(n,{prop:"target",label:"目标",width:"100"}),e(n,{prop:"level",label:"层级",width:"80"},{default:a(o=>[e(u,{size:"small",type:w(o.row.level)},{default:a(()=>[d(X(o.row.level),1)]),_:2},1032,["type"])]),_:1}),e(n,{prop:"title",label:"标题"}),e(n,{prop:"content",label:"内容"})]),_:1},8,["data"])]),_:1})}}});export{pe as default}; diff --git a/MiGu.Server/wwwroot/assets/AnnotationView-DixiuHnc.js b/MiGu.Server/wwwroot/assets/AnnotationView-DixiuHnc.js deleted file mode 100644 index a618e66..0000000 --- a/MiGu.Server/wwwroot/assets/AnnotationView-DixiuHnc.js +++ /dev/null @@ -1 +0,0 @@ -import{aI as S,bv as N,aC as f,bJ as a,t as B,b9 as p,aH as e,N as z,bL as O,O as T,R as A,a4 as M,aE as U,ai as D,bj as F,Z as I,r as L,bt as b,aG as d,H as G,aa as H,ab as j,ad as q,bq as J,aB as c,bg as R,bh as X,X as g}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */const Z={style:{display:"flex","align-items":"center",gap:"8px"}},pe=S({__name:"AnnotationView",setup($){const s=N(),l=R({title:"",target:"",level:"info",content:""}),m=X([{id:"N001",ts:"2026-05-19 10:25",author:"ops",target:"C05",level:"warn",title:"AGV-005 故障观察",content:"出库点附近频繁停顿,怀疑激光被遮挡"}]);function w(r){return r==="error"?"danger":r==="warn"?"warning":"info"}function v(){if(!l.title){g.warning("请填写标题");return}const r=`N${String(m.value.length+1).padStart(3,"0")}`;m.value.unshift({id:r,ts:new Date().toLocaleString("zh-CN"),author:s.user?.username??"mock",target:l.target,level:l.level,title:l.title,content:l.content}),g.success("已记录(Mock,未写入数据库)"),l.title="",l.content="",l.target=""}return(r,t)=>{const u=q,_=A,i=T,V=I,y=M,E=L,h=z,x=G,n=j,k=H,C=B;return p(),f(C,{shadow:"never"},{header:a(()=>[c("div",Z,[t[7]||(t[7]=c("span",null,"运营备注(monitor.note.write · 写 platform.db.Annotations)",-1)),b(s).hasOp("monitor.note.write")?(p(),f(u,{key:0,size:"small",type:"success"},{default:a(()=>[...t[5]||(t[5]=[d("可写",-1)])]),_:1})):(p(),f(u,{key:1,size:"small",type:"danger"},{default:a(()=>[...t[6]||(t[6]=[d("只读",-1)])]),_:1}))])]),default:a(()=>[e(h,{inline:"",onSubmit:t[3]||(t[3]=O(()=>{},["prevent"]))},{default:a(()=>[e(i,{label:"标题"},{default:a(()=>[e(_,{modelValue:l.title,"onUpdate:modelValue":t[0]||(t[0]=o=>l.title=o),style:{width:"240px"}},null,8,["modelValue"])]),_:1}),e(i,{label:"关联目标"},{default:a(()=>[e(_,{modelValue:l.target,"onUpdate:modelValue":t[1]||(t[1]=o=>l.target=o),placeholder:"例如 C01 / M02 / S006",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),e(i,{label:"层级"},{default:a(()=>[e(y,{modelValue:l.level,"onUpdate:modelValue":t[2]||(t[2]=o=>l.level=o),style:{width:"120px"}},{default:a(()=>[(p(),U(D,null,F(["info","warn","error"],o=>e(V,{key:o,label:o,value:o},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),e(i,null,{default:a(()=>[e(E,{type:"primary",disabled:!b(s).hasOp("monitor.note.write"),onClick:v},{default:a(()=>[...t[8]||(t[8]=[d("提交",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1}),e(_,{modelValue:l.content,"onUpdate:modelValue":t[4]||(t[4]=o=>l.content=o),type:"textarea",rows:4,placeholder:"描述备注内容...",disabled:!b(s).hasOp("monitor.note.write")},null,8,["modelValue","disabled"]),e(x),e(k,{data:m.value,size:"small","max-height":"400"},{default:a(()=>[e(n,{prop:"ts",label:"时间",width:"180"}),e(n,{prop:"author",label:"作者",width:"100"}),e(n,{prop:"target",label:"目标",width:"100"}),e(n,{prop:"level",label:"层级",width:"80"},{default:a(o=>[e(u,{size:"small",type:w(o.row.level)},{default:a(()=>[d(J(o.row.level),1)]),_:2},1032,["type"])]),_:1}),e(n,{prop:"title",label:"标题"}),e(n,{prop:"content",label:"内容"})]),_:1},8,["data"])]),_:1})}}});export{pe as default}; diff --git a/MiGu.Server/wwwroot/assets/AppShell-CAX-HJ2b.js b/MiGu.Server/wwwroot/assets/AppShell-CAX-HJ2b.js deleted file mode 100644 index 5c35eef..0000000 --- a/MiGu.Server/wwwroot/assets/AppShell-CAX-HJ2b.js +++ /dev/null @@ -1 +0,0 @@ -import{aI as A,bv as j,bx as G,b9 as o,aC as u,bJ as e,aH as t,a0 as me,aG as m,ax as f,a1 as ue,X as pe,by as q,aB as a,b4 as F,bq as i,bt as s,Q as H,ar as J,K,aE as y,ai as M,bj as N,J as Q,b3 as R,as as _e,aD as T,I as X,ak as Y,aF as be,A as fe,bw as he,bl as ge,m as ve,V as ke,a7 as ye,W as we,bm as D,P as Ee,aR as Ce,aN as xe,p as Me,q as Se,n as Ie,U as Pe,M as Te,aT as $e,a$ as W,br as De,b5 as O,bo as Ne,b0 as Re,bC as Ae,be as ze}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import{_ as Be}from"./FRLD-logo-white-no_title-BE78iS6n.js";/* empty css */const Le="/FRLD-logo-white.png",Ue=A({__name:"ScopeSwitcher",setup(z){const r=j(),w=G(),l=f(()=>r.scope??"Platform");let c=!1;async function v(_){if(!c){c=!0;try{await E(_)}finally{c=!1}}}async function E(_){try{await r.switchScope(_),w.push(_==="Platform"?"/admin/map-monitor":"/monitor/map")}catch(b){pe.error(b?.message??`切换到 ${_} 失败`)}}return(_,b)=>{const C=me,S=ue;return o(),u(S,{"model-value":l.value,size:"small",onChange:v},{default:e(()=>[t(C,{value:"Platform"},{default:e(()=>[...b[0]||(b[0]=[m("管理员",-1)])]),_:1}),t(C,{value:"RCSMonitor"},{default:e(()=>[...b[1]||(b[1]=[m("运营",-1)])]),_:1})]),_:1},8,["model-value"])}}}),Ve=["title"],Fe={class:"theme-label"},We={class:"option-text"},Oe={class:"option-name"},je={class:"option-desc"},Ge=A({__name:"ThemeSwitcher",setup(z){const r=q(),w=f(()=>({background:`linear-gradient(135deg, ${r.activeTheme.preview} 0%, ${r.activeTheme.previewAccent} 100%)`}));function l(v){const E=r.getMergedTheme(v);return{background:`linear-gradient(135deg, ${E.preview} 0%, ${E.previewAccent} 100%)`}}function c(v){r.setThemeId(v)}return(v,E)=>{const _=H,b=Q,C=K,S=X;return o(),u(S,{trigger:"click",onCommand:c},{dropdown:e(()=>[t(C,{class:"theme-menu"},{default:e(()=>[(o(!0),y(M,null,N(s(r).availableThemes,h=>(o(),u(b,{key:h.id,command:h.id,class:R({"is-active":h.id===s(r).themeId})},{default:e(()=>[a("span",{class:"option-swatch",style:F(l(h))},null,4),a("span",We,[a("span",Oe,i(h.name),1),a("span",je,i(h.description),1)]),h.id===s(r).themeId?(o(),u(_,{key:0,class:"check"},{default:e(()=>[t(s(_e))]),_:1})):T("",!0)]),_:2},1032,["command","class"]))),128))]),_:1})]),default:e(()=>[a("button",{class:"theme-trigger",type:"button",title:`当前主题:${s(r).activeTheme.name}`},[a("span",{class:"swatch",style:F(w.value)},null,4),a("span",Fe,i(s(r).activeTheme.name),1),t(_,{class:"caret"},{default:e(()=>[t(s(J))]),_:1})],8,Ve)]),_:1})}}}),qe=Y(Ge,[["__scopeId","data-v-28ea4aeb"]]),He={class:"app-shell"},Je={class:"aside-footer"},Ke={key:0},Qe={class:"header-left"},Xe={class:"header-right"},Ye={class:"user-link"},Ze={class:"user-name"},ea=A({__name:"AppShell",setup(z){const r=he(),w=G(),l=j(),c=q(),v=f(()=>"localhost:8223".split(":")[1]??"8223"),E=f(()=>"/api"),_=f(()=>(l.user?.displayName??l.user?.username??"?").slice(0,1).toUpperCase()),b=f(()=>l.scope==="Platform"?"管理员 (Platform)":"运营 (RCSMonitor)"),C=f(()=>{switch(l.runMode){case"WebOnly":return"Web-Only";case"WebEnabled":return"Web + Desktop";case"Detached":return"SimpleLite 未连接";default:return String(l.runMode??"Unknown")}}),S=[{path:"/admin/dashboard",label:"总览",icon:$e,key:"admin-dashboard"},{path:"/admin/map-monitor",label:"地图监控",icon:W,key:"admin-map-monitor"},{path:"/admin/design",label:"设计与编排",icon:De,children:[{path:"/admin/maps",label:"地图管理",key:"admin-maps"},{path:"/admin/map-editor",label:"地图编辑",key:"admin-map-editor"},{path:"/admin/project-properties",label:"项目属性",key:"admin-project-properties"},{path:"/admin/tracks",label:"场景管理",key:"admin-tracks"},{path:"/admin/cars",label:"车辆管理",key:"admin-cars"},{path:"/admin/processes",label:"进程管理",key:"admin-processes"},{path:"/admin/scripts",label:"脚本管理",key:"admin-scripts"},{path:"/admin/missions",label:"任务编排",key:"admin-missions"}]},{path:"/admin/playback",label:"调度回放",icon:O,key:"admin-playback"},{path:"/admin/config",label:"平台配置中心",icon:Ne,children:[{path:"/admin/config/system",label:"系统级配置",key:"admin-config-system"},{path:"/admin/config/integrations",label:"外部系统对接",key:"admin-config-integrations"},{path:"/admin/config/routing",label:"路径规划",key:"admin-config-routing"},{path:"/admin/config/vehicle-hub",label:"车辆运维",key:"admin-vehicle-hub"},{path:"/admin/config/charge",label:"充电策略",key:"admin-config-charge"},{path:"/admin/config/task",label:"任务分配",key:"admin-config-task"},{path:"/admin/config/traffic",label:"交通管制",key:"admin-config-traffic"},{path:"/admin/config/auth",label:"权限与角色",key:"admin-config-auth"},{path:"/admin/config/device",label:"设备接入",key:"admin-config-device"},{path:"/admin/config/scenario",label:"场景模板",key:"admin-config-scenario"},{path:"/admin/config/location",label:"库位管理",key:"admin-config-location"},{path:"/admin/config/ops",label:"运营维护",key:"admin-config-ops"},{path:"/admin/config/widget",label:"自定义控件",key:"admin-config-widget"}]}],h=[{path:"/monitor/dashboard",label:"运营总览",icon:Re,key:"monitor-dashboard"},{path:"/monitor/vehicle-hub",label:"车辆运维",icon:Ae,key:"monitor-vehicle-hub"},{path:"/monitor/map",label:"地图监控",icon:W,key:"monitor-map"},{path:"/monitor/ops",label:"运维操作",icon:ze,key:"monitor-ops"},{path:"/monitor/notes",label:"运营备注",icon:O,key:"monitor-notes"}];function Z(g){const n=[];for(const d of g)if(d.children){const x=d.children.filter(k=>!k.key||l.hasPage(k.key));x.length&&n.push({...d,children:x})}else(!d.key||l.hasPage(d.key))&&n.push(d);return n}const B=f(()=>Z(l.scope==="Platform"?S:h)),ee=f(()=>{const g=r.path,n=[],d=k=>{k.forEach(I=>{n.push(I),I.children&&d(I.children)})};return d(B.value),n.find(k=>k.path===g)?.path??g}),L=f(()=>r.meta.title??"");function ae(g){g==="logout"?(l.logout(),w.push("/login")):g==="status"?w.push("/status"):g==="wizard"&&w.push("/wizard")}return(g,n)=>{const d=H,x=we,k=ye,I=ke,te=ve,U=Se,ne=Me,oe=Ie,$=Q,se=K,le=X,ie=Ee,re=ge("router-view"),ce=Pe,de=Te,V=fe;return o(),y("div",He,[n[9]||(n[9]=be('
',1)),t(V,{class:"app-container"},{default:e(()=>[t(te,{width:s(c).sidebarCollapsed?"76px":"240px",class:"aside"},{default:e(()=>[a("div",{class:R(["logo",{collapsed:s(c).sidebarCollapsed}])},[s(c).sidebarCollapsed?(o(),y(M,{key:0},[n[1]||(n[1]=a("img",{src:Be,alt:"FRLD",class:"logo-img-small"},null,-1)),n[2]||(n[2]=a("span",{class:"logo-abbr"},"迷毂",-1))],64)):(o(),y(M,{key:1},[n[3]||(n[3]=a("img",{src:Le,alt:"FRLD",class:"logo-img-full"},null,-1)),n[4]||(n[4]=a("div",{class:"logo-titles"},[a("span",{class:"logo-title-zh"},"迷 毂 · 智能调度平台"),a("span",{class:"logo-title-en"},[a("b",null,"M"),m("i "),a("b",null,"G"),m("u · "),a("b",null,"I"),m("ntelligent "),a("b",null,"D"),m("ispatch "),a("b",null,"P"),m("latform ")])],-1))],64))],2),t(I,{"default-active":ee.value,collapse:s(c).sidebarCollapsed,"collapse-transition":!1,"background-color":"transparent","text-color":"rgba(255, 255, 255, 0.72)","active-text-color":"#fff",router:"",class:"menu"},{default:e(()=>[(o(!0),y(M,null,N(B.value,p=>(o(),y(M,{key:p.path},[p.children?(o(),u(k,{key:0,index:p.path},{title:e(()=>[t(d,null,{default:e(()=>[(o(),u(D(p.icon)))]),_:2},1024),a("span",null,i(p.label),1)]),default:e(()=>[(o(!0),y(M,null,N(p.children,P=>(o(),u(x,{key:P.path,index:P.path},{default:e(()=>[a("span",null,i(P.label),1)]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(o(),u(x,{key:1,index:p.path},{title:e(()=>[m(i(p.label),1)]),default:e(()=>[t(d,null,{default:e(()=>[(o(),u(D(p.icon)))]),_:2},1024)]),_:2},1032,["index"]))],64))),128))]),_:1},8,["default-active","collapse"]),a("div",Je,[n[5]||(n[5]=a("span",{class:"aside-footer-badge"},"v1.6",-1)),s(c).sidebarCollapsed?T("",!0):(o(),y("span",Ke,i(s(c).activeTheme.name)+" · "+i(s(c).activeTheme.preview),1))])]),_:1},8,["width"]),t(V,{class:"container-right"},{default:e(()=>[t(ie,{class:"header"},{default:e(()=>[a("div",Qe,[a("button",{class:"icon-btn",onClick:n[0]||(n[0]=p=>s(c).toggleSidebar()),title:"切换侧栏"},[t(d,{size:"18"},{default:e(()=>[s(c).sidebarCollapsed?(o(),u(s(xe),{key:1})):(o(),u(s(Ce),{key:0}))]),_:1})]),t(ne,{separator:"/"},{default:e(()=>[t(U,null,{default:e(()=>[m(i(b.value),1)]),_:1}),L.value?(o(),u(U,{key:0},{default:e(()=>[m(i(L.value),1)]),_:1})):T("",!0)]),_:1})]),a("div",Xe,[t(qe),t(Ue),a("span",{class:R(["runmode-tag",s(l).runMode])},i(C.value),3),t(le,{trigger:"click",onCommand:ae},{dropdown:e(()=>[t(se,null,{default:e(()=>[s(l).scope==="Platform"?(o(),u($,{key:0,command:"wizard"},{default:e(()=>[...n[6]||(n[6]=[m("配置向导",-1)])]),_:1})):T("",!0),t($,{command:"status"},{default:e(()=>[...n[7]||(n[7]=[m("服务状态",-1)])]),_:1}),t($,{command:"logout",divided:""},{default:e(()=>[...n[8]||(n[8]=[m("退出登录",-1)])]),_:1})]),_:1})]),default:e(()=>[a("span",Ye,[t(oe,{size:"small"},{default:e(()=>[m(i(_.value),1)]),_:1}),a("span",Ze,i(s(l).user?.displayName??"未登录"),1),t(d,null,{default:e(()=>[t(s(J))]),_:1})])]),_:1})])]),_:1}),t(ce,{class:"main mg-content"},{default:e(()=>[t(re,null,{default:e(({Component:p,route:P})=>[p?(o(),u(D(p),{key:P.fullPath,class:"route-page"})):T("",!0)]),_:1})]),_:1}),t(de,{class:"footer"},{default:e(()=>[a("span",null,i(b.value)+" · webVRender :"+i(v.value)+" · API "+i(E.value),1)]),_:1})]),_:1})]),_:1})])}}}),ma=Y(ea,[["__scopeId","data-v-94b7b35c"]]);export{ma as default}; diff --git a/MiGu.Server/wwwroot/assets/AppShell-CFoRRXmz.css b/MiGu.Server/wwwroot/assets/AppShell-CFoRRXmz.css new file mode 100644 index 0000000..322e8e8 --- /dev/null +++ b/MiGu.Server/wwwroot/assets/AppShell-CFoRRXmz.css @@ -0,0 +1 @@ +.el-aside{box-sizing:border-box;width:var(--el-aside-width,300px);flex-shrink:0;overflow:auto}.el-container{box-sizing:border-box;flex-direction:row;flex:auto;min-width:0;display:flex}.el-container.is-vertical{flex-direction:column}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;height:var(--el-footer-height);flex-shrink:0}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;height:var(--el-header-height);flex-shrink:0}.el-main{--el-main-padding:20px;box-sizing:border-box;padding:var(--el-main-padding);flex:auto;display:block;overflow:auto}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size:40px;--el-avatar-size-small:24px;box-sizing:border-box;text-align:center;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size);outline:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.el-avatar>img{width:100%;height:100%;display:block}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);background-color:var(--el-menu-bg-color);box-sizing:border-box;margin:0;padding-left:0;list-style:none;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{height:var(--el-menu-horizontal-height);border-right:none;flex-wrap:nowrap;display:flex}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000;justify-content:center;align-items:center;margin:0;display:inline-flex}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);color:var(--el-menu-text-color);align-items:center;padding:0 10px;display:flex}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):hover,.el-menu--horizontal .el-menu-item:not(.is-disabled):focus{color:var(--el-menu-active-color,var(--el-menu-hover-text-color));background-color:var(--el-menu-hover-bg-color);outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin:0}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span{visibility:hidden;width:0;height:0;display:inline-block;overflow:hidden}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;border-radius:var(--el-border-radius-small);min-width:200px;box-shadow:var(--el-box-shadow-light);border:none;padding:5px 0}.el-menu .el-icon{flex-shrink:0}.el-menu-item{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:hover,.el-menu-item:focus{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{width:var(--el-menu-icon-width);text-align:center;vertical-align:middle;margin-right:5px;font-size:18px}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{box-sizing:border-box;width:100%;height:100%;padding:0 var(--el-menu-base-level-padding);align-items:center;display:inline-flex;position:absolute;top:0;left:0}.el-sub-menu{margin:0;padding-left:0;list-style:none}.el-sub-menu__title{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:hover,.el-sub-menu__title:focus{outline:none}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-sub-menu__title,.el-sub-menu.is-disabled .el-menu-item{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin-right:5px;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{top:50%;right:var(--el-menu-base-level-padding);transition:transform var(--el-transition-duration);width:inherit;margin-top:-6px;margin-right:0;font-size:12px;position:absolute}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);color:var(--el-text-color-secondary);font-size:12px;line-height:normal}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper,.el-menu--popup-container,.el-menu{outline:none}.theme-trigger[data-v-28ea4aeb]{appearance:none;display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 8px;border-radius:999px;border:1px solid var(--mg-glass-border, rgba(255, 255, 255, .18));background:var(--mg-glass-bg, rgba(255, 255, 255, .05));color:var(--mg-text-light, rgba(255, 255, 255, .9));cursor:pointer;transition:var(--mg-transition, all .25s ease);font-size:12.5px}.theme-trigger[data-v-28ea4aeb]:hover{background:rgba(var(--mg-accent-rgb),.18);border-color:rgba(var(--mg-accent-rgb),.45);color:var(--mg-text-light, #fff)}.swatch[data-v-28ea4aeb]{width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 2px var(--mg-glass-border-hi, rgba(255, 255, 255, .25));flex-shrink:0}.theme-label[data-v-28ea4aeb]{font-weight:600;letter-spacing:.3px;white-space:nowrap}.caret[data-v-28ea4aeb]{font-size:12px;opacity:.7}.theme-menu .el-dropdown-menu__item{display:flex!important;align-items:center;gap:12px;min-width:240px;padding:10px 16px!important}.theme-menu .el-dropdown-menu__item.is-active{background:rgba(var(--mg-accent-rgb),.22)!important}.theme-menu .option-swatch{width:28px;height:28px;border-radius:8px;flex-shrink:0;box-shadow:0 2px 8px #00000059}.theme-menu .option-text{flex:1;display:flex;flex-direction:column;gap:2px;line-height:1.3}.theme-menu .option-name{font-weight:600;font-size:13px}.theme-menu .option-desc{font-size:11px;opacity:.65}.theme-menu .check{color:var(--mg-accent);font-size:16px}.app-shell[data-v-811456ba]{position:relative;height:100vh;overflow:hidden}.bg-orbs[data-v-811456ba]{position:absolute;inset:0;pointer-events:none;z-index:0}.bg-orb[data-v-811456ba]{position:absolute;border-radius:50%;filter:blur(120px);animation:drift-811456ba 24s ease-in-out infinite;will-change:transform}.bg-orb-a[data-v-811456ba]{width:520px;height:520px;top:-240px;left:-220px;background:radial-gradient(circle,var(--mg-primary-hover) 0%,var(--mg-primary) 55%,transparent 85%);opacity:var(--mg-orb-a-opacity, .55)}.bg-orb-b[data-v-811456ba]{width:640px;height:640px;bottom:-280px;right:-260px;background:radial-gradient(circle,var(--mg-primary) 0%,var(--mg-primary-active) 55%,transparent 90%);opacity:var(--mg-orb-b-opacity, .5);animation-delay:-7s}.bg-orb-c[data-v-811456ba]{width:320px;height:320px;top:58%;right:-140px;background:radial-gradient(circle,var(--mg-accent) 0%,var(--mg-primary-hover) 55%,transparent 95%);opacity:var(--mg-orb-c-opacity, .4);animation-delay:-14s}.bg-orb-d[data-v-811456ba]{width:380px;height:380px;top:12%;right:28%;background:radial-gradient(circle,rgba(99,102,241,.85) 0%,var(--mg-primary) 60%,transparent 92%);opacity:.3;animation-delay:-18s;filter:blur(140px)}@keyframes drift-811456ba{0%,to{transform:translate(0) scale(1)}50%{transform:translate(36px,-42px) scale(1.08)}}.app-container[data-v-811456ba]{position:relative;z-index:1;height:100vh}.aside[data-v-811456ba]{position:relative;background:linear-gradient(180deg,rgba(var(--mg-bg-aside-rgb),.78),rgba(var(--mg-bg-app-deep-rgb),.85));backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%);border-right:1px solid rgba(var(--mg-accent-rgb),.18);display:flex;flex-direction:column;transition:width .28s cubic-bezier(.25,.8,.25,1);overflow:hidden;flex-shrink:0;box-shadow:inset -1px 0 #ffffff0a,4px 0 32px #00000073}.aside[data-v-811456ba]:before{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,transparent 0%,rgba(var(--mg-accent-rgb),.6) 50%,transparent 100%);pointer-events:none;opacity:.4}.logo[data-v-811456ba]{flex-shrink:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 14px 18px;border-bottom:1px solid rgba(var(--mg-accent-rgb),.16);background:radial-gradient(ellipse at center top,rgba(var(--mg-primary-hover-rgb),.3) 0%,transparent 70%),linear-gradient(180deg,rgba(var(--mg-primary-rgb),.16) 0%,transparent 100%)}.logo.collapsed[data-v-811456ba]{padding:18px 4px 14px}.logo-img-full[data-v-811456ba]{height:36px;margin-bottom:12px;filter:drop-shadow(0 2px 10px rgba(var(--mg-accent-rgb),.5))}.logo-img-small[data-v-811456ba]{height:26px;margin-bottom:4px;filter:drop-shadow(0 2px 8px rgba(var(--mg-accent-rgb),.5))}.logo-titles[data-v-811456ba]{display:flex;flex-direction:column;align-items:center;gap:3px}.logo-title-zh[data-v-811456ba]{font-size:13px;font-weight:700;letter-spacing:2.5px;background:linear-gradient(90deg,#ffffff 0%,var(--mg-accent) 60%,#ffffff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap;text-shadow:0 0 18px rgba(var(--mg-accent-rgb),.3)}.logo-title-en[data-v-811456ba]{color:#e8d7f573;font-size:7.5px;letter-spacing:.3px;white-space:nowrap;text-align:center}.logo-title-en b[data-v-811456ba]{color:#ffffffe6;font-weight:700;font-size:8.5px}.logo-abbr[data-v-811456ba]{color:#ffffffd9;font-size:10.5px;font-weight:700;letter-spacing:1.5px}.menu[data-v-811456ba]{flex:1;overflow-y:auto;overflow-x:hidden;border-right:none!important;padding:8px 0;scrollbar-width:thin;scrollbar-color:rgba(var(--mg-accent-rgb),.3) transparent}.menu[data-v-811456ba]::-webkit-scrollbar{width:4px}.menu[data-v-811456ba]::-webkit-scrollbar-thumb{background:rgba(var(--mg-accent-rgb),.25);border-radius:2px}.menu[data-v-811456ba]::-webkit-scrollbar-thumb:hover{background:rgba(var(--mg-accent-rgb),.55)}[data-v-811456ba] .el-menu{border-right:none;background:transparent!important}[data-v-811456ba] .el-menu-item,[data-v-811456ba] .el-sub-menu__title{background:transparent!important;margin:2px 10px;border-radius:10px;height:42px;line-height:42px;transition:background .2s ease,color .2s ease,box-shadow .2s ease}[data-v-811456ba] .el-menu--collapse .el-menu-item,[data-v-811456ba] .el-menu--collapse .el-sub-menu__title{margin:2px 8px;padding:0!important;justify-content:center}[data-v-811456ba] .el-menu-item:hover,[data-v-811456ba] .el-sub-menu__title:hover{background:rgba(var(--mg-primary-rgb),.2)!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(var(--mg-accent-rgb),.18)}[data-v-811456ba] .el-menu-item.is-active{background:linear-gradient(90deg,rgba(var(--mg-primary-rgb),.55) 0%,rgba(var(--mg-primary-hover-rgb),.2) 70%,transparent 100%)!important;color:#fff!important;font-weight:600;box-shadow:inset 3px 0 0 var(--mg-accent),0 4px 14px rgba(var(--mg-primary-rgb),.25)}[data-v-811456ba] .el-sub-menu.is-active>.el-sub-menu__title{color:#fff!important;font-weight:600}[data-v-811456ba] .el-sub-menu .el-menu{background:#0000002e!important;border-radius:8px;margin:0 12px;padding:4px 0}[data-v-811456ba] .el-sub-menu .el-menu .el-menu-item{margin:1px 4px;border-radius:6px;font-size:13px;height:36px;line-height:36px}[data-v-811456ba] .el-sub-menu .el-menu .el-menu-item.is-active{background:rgba(var(--mg-accent-rgb),.18)!important;box-shadow:inset 2px 0 0 var(--mg-primary-hover);color:#fff!important}.aside-footer[data-v-811456ba]{flex-shrink:0;padding:12px 16px;border-top:1px solid rgba(var(--mg-accent-rgb),.14);display:flex;align-items:center;gap:8px;font-size:10.5px;color:#ffffff8c;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aside-footer-badge[data-v-811456ba]{padding:2px 7px;border-radius:8px;background:linear-gradient(135deg,rgba(var(--mg-primary-rgb),.35),rgba(var(--mg-accent-rgb),.2));border:1px solid rgba(var(--mg-accent-rgb),.36);color:#fff;font-weight:600;font-size:10px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;letter-spacing:0;box-shadow:0 0 12px rgba(var(--mg-primary-hover-rgb),.35)}.container-right[data-v-811456ba]{background:transparent;flex:1;min-height:0;display:flex;flex-direction:column}.header[data-v-811456ba]{position:relative;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(var(--mg-bg-aside-rgb),.72),rgba(var(--mg-bg-aside-rgb),.55));backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%);border-bottom:1px solid rgba(var(--mg-accent-rgb),.18);padding:0 20px}.header[data-v-811456ba]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(var(--mg-accent-rgb),.45) 30%,rgba(var(--mg-primary-hover-rgb),.6) 50%,rgba(var(--mg-accent-rgb),.45) 70%,transparent 100%);opacity:.55}.header-left[data-v-811456ba],.header-right[data-v-811456ba]{display:flex;align-items:center;gap:14px}.icon-btn[data-v-811456ba]{appearance:none;background:transparent;border:1px solid rgba(255,255,255,.18);color:#ffffffbf;border-radius:8px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.icon-btn[data-v-811456ba]:hover{background:rgba(var(--mg-accent-rgb),.18);border-color:rgba(var(--mg-accent-rgb),.5);color:#fff}[data-v-811456ba] .el-breadcrumb__inner{color:#ffffffc7;font-weight:500}[data-v-811456ba] .el-breadcrumb__separator{color:#ffffff59}[data-v-811456ba] .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:#fff;font-weight:600}.runmode-tag[data-v-811456ba]{padding:4px 10px;border-radius:999px;font-size:11.5px;letter-spacing:.5px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;color:#ffffffd9}.runmode-tag.WebEnabled[data-v-811456ba]{background:rgba(var(--mg-status-success-rgb),.18);border-color:rgba(var(--mg-status-success-rgb),.45);color:var(--mg-status-success)}.runmode-tag.WebOnly[data-v-811456ba]{background:rgba(var(--mg-primary-hover-rgb),.18);border-color:rgba(var(--mg-primary-hover-rgb),.45);color:var(--mg-accent)}.runmode-tag.Detached[data-v-811456ba]{background:rgba(var(--mg-status-warning-rgb),.18);border-color:rgba(var(--mg-status-warning-rgb),.45);color:var(--mg-status-warning)}.user-link[data-v-811456ba]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#ffffffd9;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;transition:all .2s}.user-link[data-v-811456ba]:hover{background:rgba(var(--mg-accent-rgb),.18);border-color:rgba(var(--mg-accent-rgb),.4)}.user-name[data-v-811456ba]{font-size:13px;color:#fff;font-weight:500}[data-v-811456ba] .el-avatar{background:linear-gradient(135deg,var(--mg-accent) 0%,var(--mg-primary) 60%,var(--mg-primary-active) 100%);color:#fff;font-weight:700;box-shadow:0 0 0 1px #fff3}.main[data-v-811456ba]{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;padding:24px;background:transparent;color:#fff}.footer[data-v-811456ba]{background:rgba(var(--mg-bg-aside-rgb),.25);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;color:#ffffff8c;font-size:12px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;letter-spacing:.3px;height:32px!important;line-height:32px}.route-page[data-v-811456ba]{min-height:0;flex:1;display:flex;flex-direction:column} diff --git a/MiGu.Server/wwwroot/assets/AppShell-CsAf-EtY.js b/MiGu.Server/wwwroot/assets/AppShell-CsAf-EtY.js new file mode 100644 index 0000000..6047778 --- /dev/null +++ b/MiGu.Server/wwwroot/assets/AppShell-CsAf-EtY.js @@ -0,0 +1 @@ +import{aN as R,bV as G,bX as O,bs as n,aE as p,c8 as e,aK as t,a0 as ce,aJ as u,ay as f,a1 as ue,X as pe,bZ as J,aD as a,bl as F,bL as i,bS as s,Q as j,as as H,K,aG as y,ai as x,bE as N,J as Q,bk as A,at as me,aF as T,I as X,ak as q,aI as _e,A as be,bW as fe,bG as he,m as ge,V as ve,a7 as ke,W as ye,bH as D,P as we,aY as Ee,aU as Se,p as Me,q as xe,n as Ce,U as Ie,M as Pe,b3 as Te,be as W,bQ as $e,bJ as De,bh as Ne,c1 as Ae,bx as Re,bm as ze}from"./index-D5GfLbIx.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import{_ as Be}from"./FRLD-logo-white-no_title-BE78iS6n.js";/* empty css */const Le="/FRLD-logo-white.png",Ue=R({__name:"ScopeSwitcher",setup(z){const r=G(),w=O(),l=f(()=>r.scope??"Platform");let d=!1;async function v(_){if(!d){d=!0;try{await E(_)}finally{d=!1}}}async function E(_){try{await r.switchScope(_),w.push(_==="Platform"?"/admin/map-monitor":"/monitor/map")}catch(b){pe.error(b?.message??`切换到 ${_} 失败`)}}return(_,b)=>{const S=ce,C=ue;return n(),p(C,{"model-value":l.value,size:"small",onChange:v},{default:e(()=>[t(S,{value:"Platform"},{default:e(()=>[...b[0]||(b[0]=[u("管理员",-1)])]),_:1}),t(S,{value:"RCSMonitor"},{default:e(()=>[...b[1]||(b[1]=[u("运营",-1)])]),_:1})]),_:1},8,["model-value"])}}}),Ve=["title"],Fe={class:"theme-label"},We={class:"option-text"},Ge={class:"option-name"},Oe={class:"option-desc"},Je=R({__name:"ThemeSwitcher",setup(z){const r=J(),w=f(()=>({background:`linear-gradient(135deg, ${r.activeTheme.preview} 0%, ${r.activeTheme.previewAccent} 100%)`}));function l(v){const E=r.getMergedTheme(v);return{background:`linear-gradient(135deg, ${E.preview} 0%, ${E.previewAccent} 100%)`}}function d(v){r.setThemeId(v)}return(v,E)=>{const _=j,b=Q,S=K,C=X;return n(),p(C,{trigger:"click",onCommand:d},{dropdown:e(()=>[t(S,{class:"theme-menu"},{default:e(()=>[(n(!0),y(x,null,N(s(r).availableThemes,h=>(n(),p(b,{key:h.id,command:h.id,class:A({"is-active":h.id===s(r).themeId})},{default:e(()=>[a("span",{class:"option-swatch",style:F(l(h))},null,4),a("span",We,[a("span",Ge,i(h.name),1),a("span",Oe,i(h.description),1)]),h.id===s(r).themeId?(n(),p(_,{key:0,class:"check"},{default:e(()=>[t(s(me))]),_:1})):T("",!0)]),_:2},1032,["command","class"]))),128))]),_:1})]),default:e(()=>[a("button",{class:"theme-trigger",type:"button",title:`当前主题:${s(r).activeTheme.name}`},[a("span",{class:"swatch",style:F(w.value)},null,4),a("span",Fe,i(s(r).activeTheme.name),1),t(_,{class:"caret"},{default:e(()=>[t(s(H))]),_:1})],8,Ve)]),_:1})}}}),je=q(Je,[["__scopeId","data-v-28ea4aeb"]]),He={class:"app-shell"},Ke={class:"aside-footer"},Qe={key:0},Xe={class:"header-left"},qe={class:"header-right"},Ye={class:"user-link"},Ze={class:"user-name"},ea=R({__name:"AppShell",setup(z){const r=fe(),w=O(),l=G(),d=J(),v=f(()=>"localhost:8223".split(":")[1]??"8223"),E=f(()=>"/api"),_=f(()=>(l.user?.displayName??l.user?.username??"?").slice(0,1).toUpperCase()),b=f(()=>l.scope==="Platform"?"管理员 (Platform)":"运营 (RCSMonitor)"),S=f(()=>{switch(l.runMode){case"WebOnly":return"Web-Only";case"WebEnabled":return"Web + Desktop";case"Detached":return"SimpleLite 未连接";default:return String(l.runMode??"Unknown")}}),C=[{path:"/admin/dashboard",label:"总览",icon:Te,key:"admin-dashboard"},{path:"/admin/map-monitor",label:"地图监控",icon:W,key:"admin-map-monitor"},{path:"/admin/design",label:"设计与编排",icon:$e,children:[{path:"/admin/maps",label:"地图管理",key:"admin-maps"},{path:"/admin/map-editor",label:"地图编辑",key:"admin-map-editor"},{path:"/admin/project-properties",label:"项目属性",key:"admin-project-properties"},{path:"/admin/tracks",label:"场景管理",key:"admin-tracks"},{path:"/admin/cars",label:"车辆管理",key:"admin-cars"},{path:"/admin/processes",label:"进程管理",key:"admin-processes"},{path:"/admin/scripts",label:"脚本管理",key:"admin-scripts"},{path:"/admin/task-templates",label:"任务编排",key:"admin-task-templates"}]},{path:"/admin/config",label:"平台配置中心",icon:De,children:[{path:"/admin/config/strategy",label:"调度策略",key:"admin-config-strategy"},{path:"/admin/config/vehicle-hub",label:"车辆运维",key:"admin-vehicle-hub"},{path:"/admin/config/facility",label:"设备与库位",key:"admin-config-facility"},{path:"/admin/config/business",label:"业务与集成",key:"admin-config-business"},{path:"/admin/config/ops-center",label:"运维与回放",key:"admin-config-ops-center"},{path:"/admin/config/system-center",label:"系统与权限",key:"admin-config-system-center"}]}],h=[{path:"/monitor/dashboard",label:"运营总览",icon:Ne,key:"monitor-dashboard"},{path:"/monitor/vehicle-hub",label:"车辆运维",icon:Ae,key:"monitor-vehicle-hub"},{path:"/monitor/map",label:"地图监控",icon:W,key:"monitor-map"},{path:"/monitor/ops",label:"运维操作",icon:Re,key:"monitor-ops"},{path:"/monitor/notes",label:"运营备注",icon:ze,key:"monitor-notes"}];function Y(g){const o=[];for(const c of g)if(c.children){const M=c.children.filter(k=>!k.key||l.hasPage(k.key));M.length&&o.push({...c,children:M})}else(!c.key||l.hasPage(c.key))&&o.push(c);return o}const B=f(()=>Y(l.scope==="Platform"?C:h)),Z=f(()=>{const g=r.path,o=[],c=k=>{k.forEach(I=>{o.push(I),I.children&&c(I.children)})};return c(B.value),o.find(k=>k.path===g)?.path??g}),L=f(()=>r.meta.title??"");function ee(g){g==="logout"?(l.logout(),w.push("/login")):g==="status"?w.push("/status"):g==="wizard"&&w.push("/wizard")}return(g,o)=>{const c=j,M=ye,k=ke,I=ve,ae=ge,U=xe,te=Me,oe=Ce,$=Q,ne=K,se=X,le=we,ie=he("router-view"),re=Ie,de=Pe,V=be;return n(),y("div",He,[o[9]||(o[9]=_e('',1)),t(V,{class:"app-container"},{default:e(()=>[t(ae,{width:s(d).sidebarCollapsed?"76px":"240px",class:"aside"},{default:e(()=>[a("div",{class:A(["logo",{collapsed:s(d).sidebarCollapsed}])},[s(d).sidebarCollapsed?(n(),y(x,{key:0},[o[1]||(o[1]=a("img",{src:Be,alt:"FRLD",class:"logo-img-small"},null,-1)),o[2]||(o[2]=a("span",{class:"logo-abbr"},"迷毂",-1))],64)):(n(),y(x,{key:1},[o[3]||(o[3]=a("img",{src:Le,alt:"FRLD",class:"logo-img-full"},null,-1)),o[4]||(o[4]=a("div",{class:"logo-titles"},[a("span",{class:"logo-title-zh"},"迷 毂 · 智能调度平台"),a("span",{class:"logo-title-en"},[a("b",null,"M"),u("i "),a("b",null,"G"),u("u · "),a("b",null,"I"),u("ntelligent "),a("b",null,"D"),u("ispatch "),a("b",null,"P"),u("latform ")])],-1))],64))],2),t(I,{"default-active":Z.value,collapse:s(d).sidebarCollapsed,"collapse-transition":!1,"background-color":"transparent","text-color":"rgba(255, 255, 255, 0.72)","active-text-color":"#fff",router:"",class:"menu"},{default:e(()=>[(n(!0),y(x,null,N(B.value,m=>(n(),y(x,{key:m.path},[m.children?(n(),p(k,{key:0,index:m.path},{title:e(()=>[t(c,null,{default:e(()=>[(n(),p(D(m.icon)))]),_:2},1024),a("span",null,i(m.label),1)]),default:e(()=>[(n(!0),y(x,null,N(m.children,P=>(n(),p(M,{key:P.path,index:P.path},{default:e(()=>[a("span",null,i(P.label),1)]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(n(),p(M,{key:1,index:m.path},{title:e(()=>[u(i(m.label),1)]),default:e(()=>[t(c,null,{default:e(()=>[(n(),p(D(m.icon)))]),_:2},1024)]),_:2},1032,["index"]))],64))),128))]),_:1},8,["default-active","collapse"]),a("div",Ke,[o[5]||(o[5]=a("span",{class:"aside-footer-badge"},"v1.6",-1)),s(d).sidebarCollapsed?T("",!0):(n(),y("span",Qe,i(s(d).activeTheme.name)+" · "+i(s(d).activeTheme.preview),1))])]),_:1},8,["width"]),t(V,{class:"container-right"},{default:e(()=>[t(le,{class:"header"},{default:e(()=>[a("div",Xe,[a("button",{class:"icon-btn",onClick:o[0]||(o[0]=m=>s(d).toggleSidebar()),title:"切换侧栏"},[t(c,{size:"18"},{default:e(()=>[s(d).sidebarCollapsed?(n(),p(s(Se),{key:1})):(n(),p(s(Ee),{key:0}))]),_:1})]),t(te,{separator:"/"},{default:e(()=>[t(U,null,{default:e(()=>[u(i(b.value),1)]),_:1}),L.value?(n(),p(U,{key:0},{default:e(()=>[u(i(L.value),1)]),_:1})):T("",!0)]),_:1})]),a("div",qe,[t(je),t(Ue),a("span",{class:A(["runmode-tag",s(l).runMode])},i(S.value),3),t(se,{trigger:"click",onCommand:ee},{dropdown:e(()=>[t(ne,null,{default:e(()=>[s(l).scope==="Platform"?(n(),p($,{key:0,command:"wizard"},{default:e(()=>[...o[6]||(o[6]=[u("配置向导",-1)])]),_:1})):T("",!0),t($,{command:"status"},{default:e(()=>[...o[7]||(o[7]=[u("服务状态",-1)])]),_:1}),t($,{command:"logout",divided:""},{default:e(()=>[...o[8]||(o[8]=[u("退出登录",-1)])]),_:1})]),_:1})]),default:e(()=>[a("span",Ye,[t(oe,{size:"small"},{default:e(()=>[u(i(_.value),1)]),_:1}),a("span",Ze,i(s(l).user?.displayName??"未登录"),1),t(c,null,{default:e(()=>[t(s(H))]),_:1})])]),_:1})])]),_:1}),t(re,{class:"main mg-content"},{default:e(()=>[t(ie,null,{default:e(({Component:m,route:P})=>[m?(n(),p(D(m),{key:P.fullPath,class:"route-page"})):T("",!0)]),_:1})]),_:1}),t(de,{class:"footer"},{default:e(()=>[a("span",null,i(b.value)+" · webVRender :"+i(v.value)+" · API "+i(E.value),1)]),_:1})]),_:1})]),_:1})])}}}),pa=q(ea,[["__scopeId","data-v-811456ba"]]);export{pa as default}; diff --git a/MiGu.Server/wwwroot/assets/AppShell-D28lCBtn.css b/MiGu.Server/wwwroot/assets/AppShell-D28lCBtn.css deleted file mode 100644 index fb32ee1..0000000 --- a/MiGu.Server/wwwroot/assets/AppShell-D28lCBtn.css +++ /dev/null @@ -1 +0,0 @@ -.el-aside{box-sizing:border-box;width:var(--el-aside-width,300px);flex-shrink:0;overflow:auto}.el-container{box-sizing:border-box;flex-direction:row;flex:auto;min-width:0;display:flex}.el-container.is-vertical{flex-direction:column}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;height:var(--el-footer-height);flex-shrink:0}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;height:var(--el-header-height);flex-shrink:0}.el-main{--el-main-padding:20px;box-sizing:border-box;padding:var(--el-main-padding);flex:auto;display:block;overflow:auto}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size:40px;--el-avatar-size-small:24px;box-sizing:border-box;text-align:center;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size);outline:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.el-avatar>img{width:100%;height:100%;display:block}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:before,.el-breadcrumb:after{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);margin:0 9px;font-weight:700}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;align-items:center;display:inline-flex}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{transition:var(--el-transition-color);color:var(--el-text-color-primary);font-weight:700;text-decoration:none}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);background-color:var(--el-menu-bg-color);box-sizing:border-box;margin:0;padding-left:0;list-style:none;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{height:var(--el-menu-horizontal-height);border-right:none;flex-wrap:nowrap;display:flex}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000;justify-content:center;align-items:center;margin:0;display:inline-flex}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);color:var(--el-menu-text-color);align-items:center;padding:0 10px;display:flex}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):hover,.el-menu--horizontal .el-menu-item:not(.is-disabled):focus{color:var(--el-menu-active-color,var(--el-menu-hover-text-color));background-color:var(--el-menu-hover-bg-color);outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin:0}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span{visibility:hidden;width:0;height:0;display:inline-block;overflow:hidden}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;border-radius:var(--el-border-radius-small);min-width:200px;box-shadow:var(--el-box-shadow-light);border:none;padding:5px 0}.el-menu .el-icon{flex-shrink:0}.el-menu-item{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:hover,.el-menu-item:focus{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{width:var(--el-menu-icon-width);text-align:center;vertical-align:middle;margin-right:5px;font-size:18px}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{box-sizing:border-box;width:100%;height:100%;padding:0 var(--el-menu-base-level-padding);align-items:center;display:inline-flex;position:absolute;top:0;left:0}.el-sub-menu{margin:0;padding-left:0;list-style:none}.el-sub-menu__title{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:hover,.el-sub-menu__title:focus{outline:none}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-sub-menu__title,.el-sub-menu.is-disabled .el-menu-item{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin-right:5px;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{top:50%;right:var(--el-menu-base-level-padding);transition:transform var(--el-transition-duration);width:inherit;margin-top:-6px;margin-right:0;font-size:12px;position:absolute}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);color:var(--el-text-color-secondary);font-size:12px;line-height:normal}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper,.el-menu--popup-container,.el-menu{outline:none}.theme-trigger[data-v-28ea4aeb]{appearance:none;display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 8px;border-radius:999px;border:1px solid var(--mg-glass-border, rgba(255, 255, 255, .18));background:var(--mg-glass-bg, rgba(255, 255, 255, .05));color:var(--mg-text-light, rgba(255, 255, 255, .9));cursor:pointer;transition:var(--mg-transition, all .25s ease);font-size:12.5px}.theme-trigger[data-v-28ea4aeb]:hover{background:rgba(var(--mg-accent-rgb),.18);border-color:rgba(var(--mg-accent-rgb),.45);color:var(--mg-text-light, #fff)}.swatch[data-v-28ea4aeb]{width:18px;height:18px;border-radius:50%;box-shadow:0 0 0 2px var(--mg-glass-border-hi, rgba(255, 255, 255, .25));flex-shrink:0}.theme-label[data-v-28ea4aeb]{font-weight:600;letter-spacing:.3px;white-space:nowrap}.caret[data-v-28ea4aeb]{font-size:12px;opacity:.7}.theme-menu .el-dropdown-menu__item{display:flex!important;align-items:center;gap:12px;min-width:240px;padding:10px 16px!important}.theme-menu .el-dropdown-menu__item.is-active{background:rgba(var(--mg-accent-rgb),.22)!important}.theme-menu .option-swatch{width:28px;height:28px;border-radius:8px;flex-shrink:0;box-shadow:0 2px 8px #00000059}.theme-menu .option-text{flex:1;display:flex;flex-direction:column;gap:2px;line-height:1.3}.theme-menu .option-name{font-weight:600;font-size:13px}.theme-menu .option-desc{font-size:11px;opacity:.65}.theme-menu .check{color:var(--mg-accent);font-size:16px}.app-shell[data-v-94b7b35c]{position:relative;height:100vh;overflow:hidden}.bg-orbs[data-v-94b7b35c]{position:absolute;inset:0;pointer-events:none;z-index:0}.bg-orb[data-v-94b7b35c]{position:absolute;border-radius:50%;filter:blur(120px);animation:drift-94b7b35c 24s ease-in-out infinite;will-change:transform}.bg-orb-a[data-v-94b7b35c]{width:520px;height:520px;top:-240px;left:-220px;background:radial-gradient(circle,var(--mg-primary-hover) 0%,var(--mg-primary) 55%,transparent 85%);opacity:var(--mg-orb-a-opacity, .55)}.bg-orb-b[data-v-94b7b35c]{width:640px;height:640px;bottom:-280px;right:-260px;background:radial-gradient(circle,var(--mg-primary) 0%,var(--mg-primary-active) 55%,transparent 90%);opacity:var(--mg-orb-b-opacity, .5);animation-delay:-7s}.bg-orb-c[data-v-94b7b35c]{width:320px;height:320px;top:58%;right:-140px;background:radial-gradient(circle,var(--mg-accent) 0%,var(--mg-primary-hover) 55%,transparent 95%);opacity:var(--mg-orb-c-opacity, .4);animation-delay:-14s}.bg-orb-d[data-v-94b7b35c]{width:380px;height:380px;top:12%;right:28%;background:radial-gradient(circle,rgba(99,102,241,.85) 0%,var(--mg-primary) 60%,transparent 92%);opacity:.3;animation-delay:-18s;filter:blur(140px)}@keyframes drift-94b7b35c{0%,to{transform:translate(0) scale(1)}50%{transform:translate(36px,-42px) scale(1.08)}}.app-container[data-v-94b7b35c]{position:relative;z-index:1;height:100vh}.aside[data-v-94b7b35c]{position:relative;background:linear-gradient(180deg,rgba(var(--mg-bg-aside-rgb),.78),rgba(var(--mg-bg-app-deep-rgb),.85));backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%);border-right:1px solid rgba(var(--mg-accent-rgb),.18);display:flex;flex-direction:column;transition:width .28s cubic-bezier(.25,.8,.25,1);overflow:hidden;flex-shrink:0;box-shadow:inset -1px 0 #ffffff0a,4px 0 32px #00000073}.aside[data-v-94b7b35c]:before{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,transparent 0%,rgba(var(--mg-accent-rgb),.6) 50%,transparent 100%);pointer-events:none;opacity:.4}.logo[data-v-94b7b35c]{flex-shrink:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 14px 18px;border-bottom:1px solid rgba(var(--mg-accent-rgb),.16);background:radial-gradient(ellipse at center top,rgba(var(--mg-primary-hover-rgb),.3) 0%,transparent 70%),linear-gradient(180deg,rgba(var(--mg-primary-rgb),.16) 0%,transparent 100%)}.logo.collapsed[data-v-94b7b35c]{padding:18px 4px 14px}.logo-img-full[data-v-94b7b35c]{height:36px;margin-bottom:12px;filter:drop-shadow(0 2px 10px rgba(var(--mg-accent-rgb),.5))}.logo-img-small[data-v-94b7b35c]{height:26px;margin-bottom:4px;filter:drop-shadow(0 2px 8px rgba(var(--mg-accent-rgb),.5))}.logo-titles[data-v-94b7b35c]{display:flex;flex-direction:column;align-items:center;gap:3px}.logo-title-zh[data-v-94b7b35c]{font-size:13px;font-weight:700;letter-spacing:2.5px;background:linear-gradient(90deg,#ffffff 0%,var(--mg-accent) 60%,#ffffff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap;text-shadow:0 0 18px rgba(var(--mg-accent-rgb),.3)}.logo-title-en[data-v-94b7b35c]{color:#e8d7f573;font-size:7.5px;letter-spacing:.3px;white-space:nowrap;text-align:center}.logo-title-en b[data-v-94b7b35c]{color:#ffffffe6;font-weight:700;font-size:8.5px}.logo-abbr[data-v-94b7b35c]{color:#ffffffd9;font-size:10.5px;font-weight:700;letter-spacing:1.5px}.menu[data-v-94b7b35c]{flex:1;overflow-y:auto;overflow-x:hidden;border-right:none!important;padding:8px 0;scrollbar-width:thin;scrollbar-color:rgba(var(--mg-accent-rgb),.3) transparent}.menu[data-v-94b7b35c]::-webkit-scrollbar{width:4px}.menu[data-v-94b7b35c]::-webkit-scrollbar-thumb{background:rgba(var(--mg-accent-rgb),.25);border-radius:2px}.menu[data-v-94b7b35c]::-webkit-scrollbar-thumb:hover{background:rgba(var(--mg-accent-rgb),.55)}[data-v-94b7b35c] .el-menu{border-right:none;background:transparent!important}[data-v-94b7b35c] .el-menu-item,[data-v-94b7b35c] .el-sub-menu__title{background:transparent!important;margin:2px 10px;border-radius:10px;height:42px;line-height:42px;transition:background .2s ease,color .2s ease,box-shadow .2s ease}[data-v-94b7b35c] .el-menu--collapse .el-menu-item,[data-v-94b7b35c] .el-menu--collapse .el-sub-menu__title{margin:2px 8px;padding:0!important;justify-content:center}[data-v-94b7b35c] .el-menu-item:hover,[data-v-94b7b35c] .el-sub-menu__title:hover{background:rgba(var(--mg-primary-rgb),.2)!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(var(--mg-accent-rgb),.18)}[data-v-94b7b35c] .el-menu-item.is-active{background:linear-gradient(90deg,rgba(var(--mg-primary-rgb),.55) 0%,rgba(var(--mg-primary-hover-rgb),.2) 70%,transparent 100%)!important;color:#fff!important;font-weight:600;box-shadow:inset 3px 0 0 var(--mg-accent),0 4px 14px rgba(var(--mg-primary-rgb),.25)}[data-v-94b7b35c] .el-sub-menu.is-active>.el-sub-menu__title{color:#fff!important;font-weight:600}[data-v-94b7b35c] .el-sub-menu .el-menu{background:#0000002e!important;border-radius:8px;margin:0 12px;padding:4px 0}[data-v-94b7b35c] .el-sub-menu .el-menu .el-menu-item{margin:1px 4px;border-radius:6px;font-size:13px;height:36px;line-height:36px}[data-v-94b7b35c] .el-sub-menu .el-menu .el-menu-item.is-active{background:rgba(var(--mg-accent-rgb),.18)!important;box-shadow:inset 2px 0 0 var(--mg-primary-hover);color:#fff!important}.aside-footer[data-v-94b7b35c]{flex-shrink:0;padding:12px 16px;border-top:1px solid rgba(var(--mg-accent-rgb),.14);display:flex;align-items:center;gap:8px;font-size:10.5px;color:#ffffff8c;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aside-footer-badge[data-v-94b7b35c]{padding:2px 7px;border-radius:8px;background:linear-gradient(135deg,rgba(var(--mg-primary-rgb),.35),rgba(var(--mg-accent-rgb),.2));border:1px solid rgba(var(--mg-accent-rgb),.36);color:#fff;font-weight:600;font-size:10px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;letter-spacing:0;box-shadow:0 0 12px rgba(var(--mg-primary-hover-rgb),.35)}.container-right[data-v-94b7b35c]{background:transparent;flex:1;min-height:0;display:flex;flex-direction:column}.header[data-v-94b7b35c]{position:relative;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(var(--mg-bg-aside-rgb),.72),rgba(var(--mg-bg-aside-rgb),.55));backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%);border-bottom:1px solid rgba(var(--mg-accent-rgb),.18);padding:0 20px}.header[data-v-94b7b35c]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(var(--mg-accent-rgb),.45) 30%,rgba(var(--mg-primary-hover-rgb),.6) 50%,rgba(var(--mg-accent-rgb),.45) 70%,transparent 100%);opacity:.55}.header-left[data-v-94b7b35c],.header-right[data-v-94b7b35c]{display:flex;align-items:center;gap:14px}.icon-btn[data-v-94b7b35c]{appearance:none;background:transparent;border:1px solid rgba(255,255,255,.18);color:#ffffffbf;border-radius:8px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.icon-btn[data-v-94b7b35c]:hover{background:rgba(var(--mg-accent-rgb),.18);border-color:rgba(var(--mg-accent-rgb),.5);color:#fff}[data-v-94b7b35c] .el-breadcrumb__inner{color:#ffffffc7;font-weight:500}[data-v-94b7b35c] .el-breadcrumb__separator{color:#ffffff59}[data-v-94b7b35c] .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:#fff;font-weight:600}.runmode-tag[data-v-94b7b35c]{padding:4px 10px;border-radius:999px;font-size:11.5px;letter-spacing:.5px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;color:#ffffffd9}.runmode-tag.WebEnabled[data-v-94b7b35c]{background:rgba(var(--mg-status-success-rgb),.18);border-color:rgba(var(--mg-status-success-rgb),.45);color:var(--mg-status-success)}.runmode-tag.WebOnly[data-v-94b7b35c]{background:rgba(var(--mg-primary-hover-rgb),.18);border-color:rgba(var(--mg-primary-hover-rgb),.45);color:var(--mg-accent)}.runmode-tag.Detached[data-v-94b7b35c]{background:rgba(var(--mg-status-warning-rgb),.18);border-color:rgba(var(--mg-status-warning-rgb),.45);color:var(--mg-status-warning)}.user-link[data-v-94b7b35c]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#ffffffd9;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;transition:all .2s}.user-link[data-v-94b7b35c]:hover{background:rgba(var(--mg-accent-rgb),.18);border-color:rgba(var(--mg-accent-rgb),.4)}.user-name[data-v-94b7b35c]{font-size:13px;color:#fff;font-weight:500}[data-v-94b7b35c] .el-avatar{background:linear-gradient(135deg,var(--mg-accent) 0%,var(--mg-primary) 60%,var(--mg-primary-active) 100%);color:#fff;font-weight:700;box-shadow:0 0 0 1px #fff3}.main[data-v-94b7b35c]{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;padding:24px;background:transparent;color:#fff}.footer[data-v-94b7b35c]{background:rgba(var(--mg-bg-aside-rgb),.25);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;color:#ffffff8c;font-size:12px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;letter-spacing:.3px;height:32px!important;line-height:32px}.route-page[data-v-94b7b35c]{min-height:0;flex:1;display:flex;flex-direction:column} diff --git a/MiGu.Server/wwwroot/assets/AuthRoleView-BW7bVuKX.js b/MiGu.Server/wwwroot/assets/AuthRoleView-BW7bVuKX.js deleted file mode 100644 index 8884267..0000000 --- a/MiGu.Server/wwwroot/assets/AuthRoleView-BW7bVuKX.js +++ /dev/null @@ -1 +0,0 @@ -import{aU as k,aI as Be,bv as Se,b7 as Te,aE as b,aH as t,bJ as s,ai as x,X as c,bh as f,bg as oe,t as De,G as Oe,b9 as u,ac as qe,a9 as Ae,aB as v,bq as g,r as Ge,bt as E,bc as ue,aG as i,bK as ie,aC as w,aa as Me,ab as je,bj as R,ad as Fe,aD as G,a8 as Le,aM as de,aW as He,aK as re,bA as Ke,bi as We,N as Je,O as Xe,R as Ye,a4 as Ze,Z as Qe,a2 as el,w as ll,H as al,v as tl,u as sl,L as nl,ax as J,Y as pe,ak as ol}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */async function ul(){const{data:d}=await k.get("/rbac/catalog");return d}async function il(){const{data:d}=await k.get("/rbac/roles");return d}async function dl(d){if(d.id){const{data:z}=await k.put(`/rbac/roles/${d.id}`,d);return z}const{data:V}=await k.post("/rbac/roles",d);return V}async function rl(d){await k.delete(`/rbac/roles/${d}`)}async function pl(){const{data:d}=await k.get("/rbac/users");return d}async function cl(d){const{data:V}=await k.post("/rbac/users",d);return V}async function ce(d,V){const{data:z}=await k.put(`/rbac/users/${d}`,V);return z}async function ml(d,V){await k.put(`/rbac/users/${d}/password`,{password:V})}async function fl(d){await k.delete(`/rbac/users/${d}`)}const vl={class:"rbac-header"},bl={class:"tab-toolbar"},gl={class:"toolbar-hint"},yl={key:0,class:"muted"},_l={class:"tab-toolbar"},wl={class:"toolbar-hint"},kl={key:1},Vl={key:0,class:"page-picker"},Cl={class:"page-group-head"},El={class:"page-group-title"},Ul={class:"page-group-actions"},$l={key:1,class:"wildcard-hint"},xl=Be({__name:"AuthRoleView",setup(d){const V=Se(),z=J(()=>V.user?.id??""),X=f("users"),B=f(!1),C=f(!1),M=f(null),S=f([]),j=f([]);function me(a){return S.value.find(e=>e.id===a)?.name??a}function A(a){return a==="*"?"通用":a==="Platform"?"管理端":a==="RCSMonitor"?"运营端":a}function fe(a){return a==="*"?"danger":a==="Platform"?"warning":"success"}async function N(){B.value=!0;try{const[a,e,o]=await Promise.all([ul(),il(),pl()]);M.value=a,S.value=e,j.value=o}catch(a){c.error(`加载失败:${$(a)}`)}finally{B.value=!1}}const h=f(!1),n=oe({id:null,username:"",displayName:"",password:"",roleIds:[],enabled:!0});function ve(){Object.assign(n,{id:null,username:"",displayName:"",password:"",roleIds:[],enabled:!0}),h.value=!0}function be(a){Object.assign(n,{id:a.id,username:a.username,displayName:a.displayName,password:"",roleIds:[...a.roleIds],enabled:a.enabled}),h.value=!0}async function ge(){C.value=!0;try{n.id?(await ce(n.id,{displayName:n.displayName,roleIds:n.roleIds,enabled:n.enabled}),c.success("用户已更新")):(await cl({username:n.username,displayName:n.displayName,password:n.password,roleIds:n.roleIds,enabled:n.enabled}),c.success("用户已创建")),h.value=!1,await N()}catch(a){c.error($(a))}finally{C.value=!1}}async function ye(a,e){a._busy=!0;try{await ce(a.id,{enabled:e}),a.enabled=e,c.success(e?"已启用":"已停用")}catch(o){c.error($(o))}finally{a._busy=!1}}async function _e(a){try{await pe.confirm(`确定删除用户「${a.username}」?此操作不可恢复。`,"删除确认",{type:"warning"})}catch{return}try{await fl(a.id),c.success("用户已删除"),await N()}catch(e){c.error($(e))}}const T=f(!1),D=f(null),O=f("");function we(a){D.value=a,O.value="",T.value=!0}async function ke(){if(D.value){if(!O.value){c.warning("请输入新密码");return}C.value=!0;try{await ml(D.value.id,O.value),c.success("密码已重置"),T.value=!1}catch(a){c.error($(a))}finally{C.value=!1}}}const I=f(!1),p=oe({id:null,name:"",description:"",scope:"Platform"}),y=f([]),U=f(!1),F=f([]),L=f([]),Y=J(()=>(M.value?.pages??[]).filter(a=>p.scope==="*"||a.scope===p.scope)),Z=J(()=>{const a=new Map;for(const e of Y.value)a.has(e.group)||a.set(e.group,[]),a.get(e.group).push(e);return[...a.entries()].map(([e,o])=>({group:e,pages:o}))});function Ve(){Object.assign(p,{id:null,name:"",description:"",scope:"Platform"}),y.value=[],U.value=!1,F.value=[],L.value=[],I.value=!0}function Ce(a){Object.assign(p,{id:a.id,name:a.name,description:a.description,scope:a.scope}),U.value=a.pages.includes("*"),y.value=U.value?[]:[...a.pages],F.value=[...a.ops],L.value=a.widgetGrants.map(e=>({...e})),I.value=!0}function Ee(){const a=new Set(Y.value.map(e=>e.key));y.value=y.value.filter(e=>a.has(e))}function Q(a,e){const o=a.map(m=>m.key);e?y.value=[...new Set([...y.value,...o])]:y.value=y.value.filter(m=>!o.includes(m))}async function Ue(){if(!p.name.trim()){c.warning("请填写角色名称");return}C.value=!0;try{await dl({id:p.id??void 0,name:p.name,description:p.description,scope:p.scope,pages:U.value?["*"]:y.value,ops:F.value,widgetGrants:L.value}),c.success(p.id?"角色已更新":"角色已创建"),I.value=!1,await N()}catch(a){c.error($(a))}finally{C.value=!1}}async function $e(a){try{await pe.confirm(`确定删除角色「${a.name}」?`,"删除确认",{type:"warning"})}catch{return}try{await rl(a.id),c.success("角色已删除"),await N()}catch(e){c.error($(e))}}function $(a){return a instanceof Error?a.message:String(a)}return Te(N),(a,e)=>{const o=Ge,m=je,q=Fe,H=Le,ee=Me,le=Ae,xe=qe,Ne=De,P=Ye,_=Xe,ae=Qe,te=Ze,K=Je,W=Oe,se=ll,he=el,Ie=al,Pe=sl,Re=tl,ze=nl,ne=Ke;return u(),b(x,null,[t(Ne,{shadow:"never",class:"rbac-card"},{header:s(()=>[v("div",vl,[e[19]||(e[19]=v("div",{class:"rbac-title-wrap"},[v("span",{class:"rbac-title"},"权限与角色管理"),v("span",{class:"rbac-desc"},"为角色分配可访问页面、操作与控件,并为用户指派角色(标准 RBAC)。")],-1)),t(o,{icon:E(We),loading:B.value,onClick:N},{default:s(()=>[...e[18]||(e[18]=[i("刷新",-1)])]),_:1},8,["icon","loading"])])]),default:s(()=>[t(xe,{modelValue:X.value,"onUpdate:modelValue":e[0]||(e[0]=l=>X.value=l),class:"rbac-tabs"},{default:s(()=>[t(le,{label:"用户管理",name:"users"},{default:s(()=>[v("div",bl,[v("span",gl,"共 "+g(j.value.length)+" 个用户",1),t(o,{type:"primary",icon:E(ue),onClick:ve},{default:s(()=>[...e[20]||(e[20]=[i("新增用户",-1)])]),_:1},8,["icon"])]),ie((u(),w(ee,{data:j.value,size:"default",border:"",stripe:""},{default:s(()=>[t(m,{label:"用户名",prop:"username",width:"140"}),t(m,{label:"显示名",prop:"displayName",width:"150"}),t(m,{label:"角色","min-width":"200"},{default:s(({row:l})=>[(u(!0),b(x,null,R(l.roleIds,r=>(u(),w(q,{key:r,size:"small",effect:"plain",class:"mg-tag"},{default:s(()=>[i(g(me(r)),1)]),_:2},1024))),128)),l.roleIds.length?G("",!0):(u(),b("span",yl,"—"))]),_:1}),t(m,{label:"可用域",width:"180"},{default:s(({row:l})=>[(u(!0),b(x,null,R(l.scopes,r=>(u(),w(q,{key:r,size:"small",type:"info",effect:"plain",class:"mg-tag"},{default:s(()=>[i(g(A(r)),1)]),_:2},1024))),128))]),_:1}),t(m,{label:"启用",width:"90",align:"center"},{default:s(({row:l})=>[t(H,{"model-value":l.enabled,loading:l._busy,onChange:r=>ye(l,!!r)},null,8,["model-value","loading","onChange"])]),_:1}),t(m,{label:"操作",width:"220",align:"center"},{default:s(({row:l})=>[t(o,{link:"",type:"primary",icon:E(de),onClick:r=>be(l)},{default:s(()=>[...e[21]||(e[21]=[i("编辑",-1)])]),_:1},8,["icon","onClick"]),t(o,{link:"",type:"warning",icon:E(He),onClick:r=>we(l)},{default:s(()=>[...e[22]||(e[22]=[i("改密",-1)])]),_:1},8,["icon","onClick"]),t(o,{link:"",type:"danger",icon:E(re),disabled:l.id===z.value,onClick:r=>_e(l)},{default:s(()=>[...e[23]||(e[23]=[i("删除",-1)])]),_:1},8,["icon","disabled","onClick"])]),_:1})]),_:1},8,["data"])),[[ne,B.value]])]),_:1}),t(le,{label:"角色与页面权限",name:"roles"},{default:s(()=>[v("div",_l,[v("span",wl,"共 "+g(S.value.length)+" 个角色",1),t(o,{type:"primary",icon:E(ue),onClick:Ve},{default:s(()=>[...e[24]||(e[24]=[i("新增角色",-1)])]),_:1},8,["icon"])]),ie((u(),w(ee,{data:S.value,size:"default",border:"",stripe:""},{default:s(()=>[t(m,{label:"角色名称",width:"160"},{default:s(({row:l})=>[v("span",null,g(l.name),1),l.system?(u(),w(q,{key:0,size:"small",type:"success",effect:"plain",class:"mg-tag"},{default:s(()=>[...e[25]||(e[25]=[i("内置",-1)])]),_:1})):G("",!0)]),_:1}),t(m,{label:"描述",prop:"description","min-width":"180","show-overflow-tooltip":""}),t(m,{label:"归属域",width:"120"},{default:s(({row:l})=>[t(q,{size:"small",type:fe(l.scope),effect:"plain"},{default:s(()=>[i(g(A(l.scope)),1)]),_:2},1032,["type"])]),_:1}),t(m,{label:"可访问页面",width:"130",align:"center"},{default:s(({row:l})=>[l.pages.includes("*")?(u(),w(q,{key:0,size:"small",type:"danger",effect:"plain"},{default:s(()=>[...e[26]||(e[26]=[i("全部页面",-1)])]),_:1})):(u(),b("span",kl,g(l.pages.length)+" 个",1))]),_:1}),t(m,{label:"操作",width:"160",align:"center"},{default:s(({row:l})=>[t(o,{link:"",type:"primary",icon:E(de),onClick:r=>Ce(l)},{default:s(()=>[...e[27]||(e[27]=[i("编辑",-1)])]),_:1},8,["icon","onClick"]),t(o,{link:"",type:"danger",icon:E(re),disabled:l.system,onClick:r=>$e(l)},{default:s(()=>[...e[28]||(e[28]=[i("删除",-1)])]),_:1},8,["icon","disabled","onClick"])]),_:1})]),_:1},8,["data"])),[[ne,B.value]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(W,{modelValue:h.value,"onUpdate:modelValue":e[7]||(e[7]=l=>h.value=l),title:n.id?"编辑用户":"新增用户",width:"480px","destroy-on-close":""},{footer:s(()=>[t(o,{onClick:e[6]||(e[6]=l=>h.value=!1)},{default:s(()=>[...e[29]||(e[29]=[i("取消",-1)])]),_:1}),t(o,{type:"primary",loading:C.value,onClick:ge},{default:s(()=>[...e[30]||(e[30]=[i("保存",-1)])]),_:1},8,["loading"])]),default:s(()=>[t(K,{"label-width":"84px","label-position":"right"},{default:s(()=>[t(_,{label:"用户名",required:""},{default:s(()=>[t(P,{modelValue:n.username,"onUpdate:modelValue":e[1]||(e[1]=l=>n.username=l),disabled:!!n.id,placeholder:"登录用户名"},null,8,["modelValue","disabled"])]),_:1}),t(_,{label:"显示名"},{default:s(()=>[t(P,{modelValue:n.displayName,"onUpdate:modelValue":e[2]||(e[2]=l=>n.displayName=l),placeholder:"界面展示名称(留空则同用户名)"},null,8,["modelValue"])]),_:1}),n.id?G("",!0):(u(),w(_,{key:0,label:"初始密码",required:""},{default:s(()=>[t(P,{modelValue:n.password,"onUpdate:modelValue":e[3]||(e[3]=l=>n.password=l),type:"password","show-password":"",placeholder:"设置初始登录密码"},null,8,["modelValue"])]),_:1})),t(_,{label:"角色"},{default:s(()=>[t(te,{modelValue:n.roleIds,"onUpdate:modelValue":e[4]||(e[4]=l=>n.roleIds=l),multiple:"",filterable:"",placeholder:"选择一个或多个角色",style:{width:"100%"}},{default:s(()=>[(u(!0),b(x,null,R(S.value,l=>(u(),w(ae,{key:l.id,label:`${l.name}(${A(l.scope)})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(_,{label:"启用"},{default:s(()=>[t(H,{modelValue:n.enabled,"onUpdate:modelValue":e[5]||(e[5]=l=>n.enabled=l)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"]),t(W,{modelValue:T.value,"onUpdate:modelValue":e[10]||(e[10]=l=>T.value=l),title:"重置密码",width:"420px","destroy-on-close":""},{footer:s(()=>[t(o,{onClick:e[9]||(e[9]=l=>T.value=!1)},{default:s(()=>[...e[31]||(e[31]=[i("取消",-1)])]),_:1}),t(o,{type:"primary",loading:C.value,onClick:ke},{default:s(()=>[...e[32]||(e[32]=[i("确定",-1)])]),_:1},8,["loading"])]),default:s(()=>[t(K,{"label-width":"84px"},{default:s(()=>[t(_,{label:"用户"},{default:s(()=>[v("span",null,g(D.value?.displayName)+"("+g(D.value?.username)+")",1)]),_:1}),t(_,{label:"新密码",required:""},{default:s(()=>[t(P,{modelValue:O.value,"onUpdate:modelValue":e[8]||(e[8]=l=>O.value=l),type:"password","show-password":"",placeholder:"输入新密码"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(W,{modelValue:I.value,"onUpdate:modelValue":e[17]||(e[17]=l=>I.value=l),title:p.id?"编辑角色":"新增角色",width:"760px",top:"6vh","destroy-on-close":""},{footer:s(()=>[t(o,{onClick:e[16]||(e[16]=l=>I.value=!1)},{default:s(()=>[...e[36]||(e[36]=[i("取消",-1)])]),_:1}),t(o,{type:"primary",loading:C.value,onClick:Ue},{default:s(()=>[...e[37]||(e[37]=[i("保存",-1)])]),_:1},8,["loading"])]),default:s(()=>[t(K,{"label-width":"92px","label-position":"right"},{default:s(()=>[t(he,{gutter:12},{default:s(()=>[t(se,{span:12},{default:s(()=>[t(_,{label:"角色名称",required:""},{default:s(()=>[t(P,{modelValue:p.name,"onUpdate:modelValue":e[11]||(e[11]=l=>p.name=l),placeholder:"如:场景设计员"},null,8,["modelValue"])]),_:1})]),_:1}),t(se,{span:12},{default:s(()=>[t(_,{label:"归属域",required:""},{default:s(()=>[t(te,{modelValue:p.scope,"onUpdate:modelValue":e[12]||(e[12]=l=>p.scope=l),style:{width:"100%"},onChange:Ee},{default:s(()=>[(u(!0),b(x,null,R(M.value?.scopes??[],l=>(u(),w(ae,{key:l.value,label:l.label,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(_,{label:"描述"},{default:s(()=>[t(P,{modelValue:p.description,"onUpdate:modelValue":e[13]||(e[13]=l=>p.description=l),placeholder:"角色用途说明"},null,8,["modelValue"])]),_:1}),t(Ie,{"content-position":"left"},{default:s(()=>[...e[33]||(e[33]=[i("可访问页面",-1)])]),_:1}),t(_,{label:"授权方式"},{default:s(()=>[t(H,{modelValue:U.value,"onUpdate:modelValue":e[14]||(e[14]=l=>U.value=l),"active-text":"该域全部页面(含未来新增)","inactive-text":"按页面精确勾选","inline-prompt":"",style:{"--el-switch-on-color":"var(--mg-primary, #6366f1)"}},null,8,["modelValue"])]),_:1}),U.value?(u(),b("div",$l,"已授予「"+g(A(p.scope))+"」下的全部页面(包括未来新增的页面)。",1)):(u(),b("div",Vl,[(u(!0),b(x,null,R(Z.value,l=>(u(),b("div",{key:l.group,class:"page-group"},[v("div",Cl,[v("span",El,g(l.group),1),v("span",Ul,[t(o,{link:"",type:"primary",size:"small",onClick:r=>Q(l.pages,!0)},{default:s(()=>[...e[34]||(e[34]=[i("全选",-1)])]),_:1},8,["onClick"]),t(o,{link:"",type:"info",size:"small",onClick:r=>Q(l.pages,!1)},{default:s(()=>[...e[35]||(e[35]=[i("清空",-1)])]),_:1},8,["onClick"])])]),t(Re,{modelValue:y.value,"onUpdate:modelValue":e[15]||(e[15]=r=>y.value=r),class:"page-checks"},{default:s(()=>[(u(!0),b(x,null,R(l.pages,r=>(u(),w(Pe,{key:r.key,value:r.key,label:r.key},{default:s(()=>[i(g(r.label),1)]),_:2},1032,["value","label"]))),128))]),_:2},1032,["modelValue"])]))),128)),Z.value.length?G("",!0):(u(),w(ze,{key:0,description:"该域暂无可分配页面","image-size":60}))]))]),_:1})]),_:1},8,["modelValue","title"])],64)}}}),Jl=ol(xl,[["__scopeId","data-v-2392979d"]]);export{Jl as default}; diff --git a/MiGu.Server/wwwroot/assets/AuthRoleView-CTEbfTF-.css b/MiGu.Server/wwwroot/assets/AuthRoleView-CTEbfTF-.css deleted file mode 100644 index 74e8c2a..0000000 --- a/MiGu.Server/wwwroot/assets/AuthRoleView-CTEbfTF-.css +++ /dev/null @@ -1 +0,0 @@ -.rbac-header[data-v-2392979d]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rbac-title-wrap[data-v-2392979d]{display:flex;flex-direction:column;gap:4px}.rbac-title[data-v-2392979d]{font-weight:600;font-size:16px;color:var(--mg-text-light)}.rbac-desc[data-v-2392979d]{font-size:12.5px;color:var(--mg-text-muted)}.tab-toolbar[data-v-2392979d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.toolbar-hint[data-v-2392979d]{font-size:13px;color:var(--mg-text-muted)}.mg-tag[data-v-2392979d]{margin:2px 4px 2px 0}.muted[data-v-2392979d]{color:var(--mg-text-faint)}.page-picker[data-v-2392979d]{display:flex;flex-direction:column;gap:14px;max-height:320px;overflow-y:auto;padding:4px 2px}.page-group-head[data-v-2392979d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.page-group-title[data-v-2392979d]{font-weight:600;font-size:13px;color:var(--mg-accent, #c4b5fd)}.page-checks[data-v-2392979d]{display:flex;flex-wrap:wrap;gap:4px 18px}.wildcard-hint[data-v-2392979d]{font-size:13px;color:var(--mg-status-warning, #f59e0b);padding:4px 0 8px} diff --git a/MiGu.Server/wwwroot/assets/BusinessConfigView-BfBO4uM6.js b/MiGu.Server/wwwroot/assets/BusinessConfigView-BfBO4uM6.js new file mode 100644 index 0000000..8d14125 --- /dev/null +++ b/MiGu.Server/wwwroot/assets/BusinessConfigView-BfBO4uM6.js @@ -0,0 +1 @@ +import{aN as E,bs as u,aE as V,c8 as t,aK as e,ac as B,aG as C,ai as x,bE as U,a9 as L,aa as z,ab as P,R as N,a8 as A,r as q,aJ as d,bS as v,bv as J,bL as c,c as k,a2 as W,w as F,t as G,aD as f,ad as R,G as M,B as j,C as O,g as K,ak as y,l as X,bC as H,c7 as $,bW as Q,bX as Y}from"./index-D5GfLbIx.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as D}from"./ConfigPageBase-CgfsngDp.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-CR4qtxrh.js";/* empty css */import"./reflection-BwOBPyb9.js";import"./monitorConfigCache-DXn96T8F.js";const Z=E({__name:"ExternalIntegrationView",setup(S){function m(l,_,o){const a=`${o}-${Date.now()}`,s={...l,[o]:[...l[o]??[],{id:a,name:"新端点",url:"http://",enabled:!1}]};_(s)}function h(l,_,o,a){const s={...l,[o]:(l[o]??[]).filter((n,b)=>b!==a)};_(s)}return(l,_)=>{const o=N,a=P,s=A,n=q,b=z,r=L,w=B;return u(),V(D,{section:"integrations",title:"外部系统对接",description:"MES / WMS / RCS / PTL 等标准接口配置(ExternalIntegrations)",defaults:v(k)},{default:t(({payload:T,update:I})=>[e(w,{"model-value":"mes"},{default:t(()=>[(u(),C(x,null,U(["mes","wms","rcs","ptl"],g=>e(r,{key:g,name:g,label:g.toUpperCase()},{default:t(()=>[e(b,{data:T[g]??[],size:"small",border:""},{default:t(()=>[e(a,{label:"ID",width:"120"},{default:t(i=>[e(o,{modelValue:i.row.id,"onUpdate:modelValue":p=>i.row.id=p},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(a,{label:"名称","min-width":"160"},{default:t(i=>[e(o,{modelValue:i.row.name,"onUpdate:modelValue":p=>i.row.name=p},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(a,{label:"URL","min-width":"260"},{default:t(i=>[e(o,{modelValue:i.row.url,"onUpdate:modelValue":p=>i.row.url=p},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(a,{label:"启用",width:"80"},{default:t(i=>[e(s,{modelValue:i.row.enabled,"onUpdate:modelValue":p=>i.row.enabled=p},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(a,{label:"操作",width:"80"},{default:t(i=>[e(n,{text:"",type:"danger",size:"small",onClick:p=>h(T,I,g,i.$index)},{default:t(()=>[..._[0]||(_[0]=[d("删除",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1032,["data"]),e(n,{size:"small",icon:v(J),style:{"margin-top":"8px"},onClick:i=>m(T,I,g)},{default:t(()=>[d("新增 "+c(g.toUpperCase())+" 端点",1)]),_:2},1032,["icon","onClick"])]),_:2},1032,["name","label"])),64))]),_:2},1024)]),_:1},8,["defaults"])}}}),ee={class:"tpl-title"},te={class:"tpl-meta"},ae={class:"tpl-baseline"},oe=E({__name:"ScenarioTemplateView",setup(S){return(m,h)=>{const l=R,_=G,o=F,a=W,s=M,n=O,b=j;return u(),V(D,{section:"scenario",title:"业务场景模板化",description:"SPS / Pack / 环线 / 点对点;DSL/低代码扩展(ScenarioTemplateConfig)",defaults:v(K)},{default:t(({payload:r})=>[e(a,{gutter:12},{default:t(()=>[(u(!0),C(x,null,U(r.templates,w=>(u(),V(o,{key:w.id,span:6},{default:t(()=>[e(_,{shadow:"hover",class:"tpl-card"},{default:t(()=>[f("div",ee,c(w.name),1),f("div",te,[e(l,{size:"small"},{default:t(()=>[d(c(w.category),1)]),_:2},1024),e(l,{size:"small",type:"info"},{default:t(()=>[d("v"+c(w.version),1)]),_:2},1024)]),f("pre",ae,c(w.baselineJson||"{}"),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),e(s),e(b,{column:2,border:""},{default:t(()=>[e(n,{label:"DSL 启用"},{default:t(()=>[d(c(r.dslPolicy.enabled?"是":"否"),1)]),_:2},1024),e(n,{label:"Schema 版本"},{default:t(()=>[d(c(r.dslPolicy.schemaVersion),1)]),_:2},1024),e(n,{label:"低代码"},{default:t(()=>[d(c(r.lowCode.enabled?"启用":"关闭"),1)]),_:2},1024),e(n,{label:"编辑器"},{default:t(()=>[d(c(r.lowCode.editor),1)]),_:2},1024),e(n,{label:"保留版本"},{default:t(()=>[d(c(r.versionPolicy.keepVersions),1)]),_:2},1024),e(n,{label:"允许回滚"},{default:t(()=>[d(c(r.versionPolicy.allowRollback?"是":"否"),1)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}}),le=y(oe,[["__scopeId","data-v-4faf66a8"]]),ne={class:"js-mini"},se={class:"js-mini"},ie=E({__name:"CustomWidgetView",setup(S){return(m,h)=>{const l=P,_=R,o=z;return u(),V(D,{section:"widget",title:"自定义控件",description:"呼叫/展示界面可自由定义(platform-vue + rcsmonitor-vue 双渲染器)",defaults:v(X)},{default:t(({payload:a})=>[e(o,{data:a.items,size:"small",border:""},{default:t(()=>[e(l,{label:"ID",prop:"id",width:"180"}),e(l,{label:"名称",prop:"name",width:"140"}),e(l,{label:"Schema",prop:"schemaJson"},{default:t(s=>[f("pre",ne,c(s.row.schemaJson),1)]),_:1}),e(l,{label:"Layout",prop:"layoutJson"},{default:t(s=>[f("pre",se,c(s.row.layoutJson),1)]),_:1}),e(l,{label:"绑定 Scope"},{default:t(s=>[(u(!0),C(x,null,U(s.row.bindToScopes,n=>(u(),V(_,{key:n,size:"small",effect:"plain",style:{"margin-right":"4px"}},{default:t(()=>[d(c(n),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["data"])]),_:1},8,["defaults"])}}}),ce=y(ie,[["__scopeId","data-v-96b90481"]]),_e={class:"config-hub-page"},re={class:"config-pane"},de={class:"config-pane"},ue={class:"config-pane"},me=E({__name:"BusinessConfigView",setup(S){const m=Q(),h=Y(),l=["integrations","scenario","widget"];function _(){const a=m.query.tab;return typeof a=="string"&&l.includes(a)?a:"integrations"}const o=H(_());return $(o,a=>{m.query.tab!==a&&h.replace({query:{...m.query,tab:a}})}),$(()=>m.query.tab,()=>{const a=_();a!==o.value&&(o.value=a)}),(a,s)=>{const n=L,b=B;return u(),C("div",_e,[e(b,{modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=r=>o.value=r),class:"hub-tabs"},{default:t(()=>[e(n,{name:"integrations",label:"外部系统对接"},{default:t(()=>[f("div",re,[e(Z)])]),_:1}),e(n,{name:"scenario",label:"场景模板",lazy:""},{default:t(()=>[f("div",de,[e(le)])]),_:1}),e(n,{name:"widget",label:"自定义控件",lazy:""},{default:t(()=>[f("div",ue,[e(ce)])]),_:1})]),_:1},8,["modelValue"])])}}}),Pe=y(me,[["__scopeId","data-v-aaea055a"]]);export{Pe as default}; diff --git a/MiGu.Server/wwwroot/assets/BusinessConfigView-mcy1bFqR.css b/MiGu.Server/wwwroot/assets/BusinessConfigView-mcy1bFqR.css new file mode 100644 index 0000000..170d9c1 --- /dev/null +++ b/MiGu.Server/wwwroot/assets/BusinessConfigView-mcy1bFqR.css @@ -0,0 +1 @@ +.tpl-card[data-v-4faf66a8]{margin-bottom:12px}.tpl-title[data-v-4faf66a8]{font-weight:600;margin-bottom:6px}.tpl-meta[data-v-4faf66a8]{display:flex;gap:6px;margin-bottom:8px}.tpl-baseline[data-v-4faf66a8]{margin:0;font-size:11px;background:#f5f7fa;padding:6px;border-radius:4px;max-height:80px;overflow:auto}.js-mini[data-v-96b90481]{margin:0;font-size:11px;background:#f5f7fa;padding:4px 6px;border-radius:4px;max-height:60px;overflow:auto}.config-hub-page[data-v-aaea055a]{padding:16px;height:100%;display:flex;flex-direction:column;overflow:hidden}.hub-tabs[data-v-aaea055a]{flex:1;min-height:0;display:flex;flex-direction:column}[data-v-aaea055a] .el-tabs__content{flex:1;min-height:0;overflow:auto}[data-v-aaea055a] .el-tab-pane{height:100%}.config-pane[data-v-aaea055a]{height:100%;overflow:auto}[data-v-aaea055a] .el-tabs__item{color:var(--mg-text-muted, rgba(255, 255, 255, .65))}[data-v-aaea055a] .el-tabs__item.is-active{color:var(--mg-text-light, #fff)}[data-v-aaea055a] .el-tabs__active-bar{background-color:var(--mg-accent, var(--el-color-primary))}[data-v-aaea055a] .el-tabs__nav-wrap:after{background-color:#ffffff14} diff --git a/MiGu.Server/wwwroot/assets/CarPanelView-BiDARL2O.js b/MiGu.Server/wwwroot/assets/CarPanelView-BiDARL2O.js new file mode 100644 index 0000000..e6d2a2a --- /dev/null +++ b/MiGu.Server/wwwroot/assets/CarPanelView-BiDARL2O.js @@ -0,0 +1 @@ +import{aN as W,bs as y,aE as $,N as ae,c8 as l,aK as a,a2 as se,w as oe,O as ne,S as re,a8 as ie,z as J,aD as r,bL as w,R as de,r as Q,aJ as f,aF as P,ay as X,bC as N,ak as G,bp as Y,c9 as ue,b$ as ce,aG as j,t as pe,ad as me,ai as H,bE as q,x as fe,Q as ye,bS as ve,bD as _e,bA as K,X as V,Y as be,y as ge,L as ke,ac as Ce,a9 as Ee}from"./index-D5GfLbIx.js";/* empty css *//* empty css */import{R as Ne}from"./ReflectionManagerPanel-CqcqGxZI.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{r as B}from"./reflection-BwOBPyb9.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./projectSaveFlow-BOHSv3Vc.js";import"./useProjectionStream-ayb6RvWW.js";import"./mapEdit-BXIATxCI.js";const $e={class:"cse-color-code"},Se={class:"cse-color-code"},Ie={class:"cse-color-code"},Ae={class:"cse-model-row"},Ve=W({__name:"CarStyleEditorForm",props:{typeFullName:{},modelValue:{},hasOverride:{type:Boolean},saving:{type:Boolean}},emits:["update:modelValue","save","reset"],setup(D,{emit:C}){const x=D,b=C,c=X(()=>x.modelValue);function m(n){b("update:modelValue",{...c.value,...n})}const S=N(null);function g(){S.value?.click()}function M(n){const t=n.target,v=t.files?.[0];v&&(m({modelPath:v.name}),t.value="")}function T(n){const t=n>>>24&255,v=n>>>16&255,p=n>>>8&255,_=n&255,E=z=>z.toString(16).padStart(2,"0");return`${E(v)}${E(p)}${E(_)}${E(t)}`}function h(n){const t=n.replace(/^#/,"");if(t.length===6){const v=parseInt(t.slice(0,2),16),p=parseInt(t.slice(2,4),16),_=parseInt(t.slice(4,6),16);return(255<<24|v<<16|p<<8|_)>>>0}if(t.length===8){const v=parseInt(t.slice(0,2),16),p=parseInt(t.slice(2,4),16),_=parseInt(t.slice(4,6),16);return(parseInt(t.slice(6,8),16)<<24|v<<16|p<<8|_)>>>0}return 0}return(n,t)=>{const v=re,p=ne,_=oe,E=ie,z=se,I=J,L=Q,F=de,R=ae;return y(),$(R,{"label-width":"120px",size:"default",class:"cse-form",model:c.value},{default:l(()=>[a(z,{gutter:16},{default:l(()=>[a(_,{span:8},{default:l(()=>[a(p,{label:"长度 (m)"},{default:l(()=>[a(v,{"model-value":c.value.bodyLengthM,min:.12,max:4,step:.01,precision:2,"onUpdate:modelValue":t[0]||(t[0]=u=>m({bodyLengthM:Number(u??0)}))},null,8,["model-value"])]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"宽度 (m)"},{default:l(()=>[a(v,{"model-value":c.value.bodyWidthM,min:.08,max:3,step:.01,precision:2,"onUpdate:modelValue":t[1]||(t[1]=u=>m({bodyWidthM:Number(u??0)}))},null,8,["model-value"])]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"显示名称"},{default:l(()=>[a(E,{"model-value":c.value.showLabel,"onUpdate:modelValue":t[2]||(t[2]=u=>m({showLabel:!!u}))},null,8,["model-value"])]),_:1})]),_:1})]),_:1}),a(z,{gutter:16},{default:l(()=>[a(_,{span:8},{default:l(()=>[a(p,{label:"车体颜色"},{default:l(()=>[a(I,{"model-value":T(c.value.bodyColorArgb),"show-alpha":"","onUpdate:modelValue":t[3]||(t[3]=u=>m({bodyColorArgb:u?h(u):0}))},null,8,["model-value"]),r("code",$e,"#"+w(T(c.value.bodyColorArgb).toUpperCase()),1),t[9]||(t[9]=r("span",{class:"cse-color-hint"},"无报警/上线时生效",-1))]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"描边颜色"},{default:l(()=>[a(I,{"model-value":T(c.value.outlineColorArgb),"show-alpha":"","onUpdate:modelValue":t[4]||(t[4]=u=>m({outlineColorArgb:u?h(u):0}))},null,8,["model-value"]),r("code",Se,"#"+w(T(c.value.outlineColorArgb).toUpperCase()),1)]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"标签颜色"},{default:l(()=>[a(I,{"model-value":T(c.value.labelColorArgb),"show-alpha":"","onUpdate:modelValue":t[5]||(t[5]=u=>m({labelColorArgb:u?h(u):0}))},null,8,["model-value"]),r("code",Ie,"#"+w(T(c.value.labelColorArgb).toUpperCase()),1)]),_:1})]),_:1})]),_:1}),a(p,{label:"3D 模型路径"},{default:l(()=>[r("div",Ae,[a(F,{"model-value":c.value.modelPath,placeholder:"如 ./models/agv-base.glb(路径仅保存,3D 替换矩形渲染由后续阶段接入)",clearable:"","onUpdate:modelValue":t[6]||(t[6]=u=>m({modelPath:u??""}))},{append:l(()=>[a(L,{onClick:g},{default:l(()=>[...t[10]||(t[10]=[f("浏览…",-1)])]),_:1})]),_:1},8,["model-value"]),r("input",{ref_key:"fileInput",ref:S,type:"file",accept:".glb,.gltf,.obj,.fbx",style:{display:"none"},onChange:M},null,544)]),t[11]||(t[11]=r("p",{class:"cse-model-hint"}," 现版本仅记录文件路径作为元信息。3D 渲染替代矩形将在后续阶段实现(CycleGUI Workspace LoadModel)。 如需上传文件到服务器请先用其它方式将模型放到 SimpleLite 可访问的相对路径。 ",-1))]),_:1}),a(p,null,{default:l(()=>[a(L,{type:"primary",loading:D.saving,onClick:t[7]||(t[7]=u=>n.$emit("save"))},{default:l(()=>[...t[12]||(t[12]=[f("保存此车型",-1)])]),_:1},8,["loading"]),D.hasOverride?(y(),$(L,{key:0,type:"warning",plain:"",onClick:t[8]||(t[8]=u=>n.$emit("reset"))},{default:l(()=>[...t[13]||(t[13]=[f("恢复为默认",-1)])]),_:1})):P("",!0)]),_:1})]),_:1},8,["model"])}}}),xe=G(Ve,[["__scopeId","data-v-3cdad944"]]),Te={class:"cse-root"},Ue={class:"cse-card-header"},we={class:"cse-desc"},he={class:"cse-palette"},ze={class:"cse-palette-label"},Pe={class:"cse-palette-key"},De={class:"cse-palette-pickers"},Le={class:"cse-color-code"},Oe={class:"cse-card-header"},Be={class:"cse-row-title"},je={class:"cse-row-name"},Me={class:"cse-row-fqn"},Fe=W({__name:"CarStyleEditor",setup(D,{expose:C}){const x=N(!1),b=N(!1),c=N(!1),m=N(null),S=N([]),g=K({}),M=N(void 0),T=N([]),h=N([]),n=K({}),t=K({}),v=X(()=>{const s=new Set([...Object.keys(n),...Object.keys(t)]);for(const e of s)if(n[e]!==t[e])return!0;return!1});function p(s){return n[s]??0}function _(s,e){n[s]=e?z(e):0}function E(s){const e=s>>>24&255,i=s>>>16&255,k=s>>>8&255,A=s&255,o=U=>U.toString(16).padStart(2,"0");return`${o(i)}${o(k)}${o(A)}${o(e)}`}function z(s){const e=s.replace(/^#/,"");if(e.length===6){const i=parseInt(e.slice(0,2),16),k=parseInt(e.slice(2,4),16),A=parseInt(e.slice(4,6),16);return(255<<24|i<<16|k<<8|A)>>>0}if(e.length===8){const i=parseInt(e.slice(0,2),16),k=parseInt(e.slice(2,4),16),A=parseInt(e.slice(4,6),16);return(parseInt(e.slice(6,8),16)<<24|i<<16|k<<8|A)>>>0}return 0}async function I(){x.value=!0;try{const s=await B.getCarStyleTypes().catch(o=>(console.warn("[CarStyleEditor] getCarStyleTypes failed:",o),null)),e=await B.getAlarmColors().catch(o=>(console.warn("[CarStyleEditor] getAlarmColors failed:",o),null)),i=Array.isArray(s?.types)?s.types:[];S.value=i;for(const o of i)g[o.typeName]={...o.style};for(const o of Object.keys(g))i.find(U=>U.typeName===o)||delete g[o];const k=Array.isArray(e?.entries)?e.entries:[],A=Array.isArray(e?.defaultKeys)?e.defaultKeys:[];T.value=A,h.value=k;for(const o of Object.keys(n))delete n[o];for(const o of Object.keys(t))delete t[o];for(const o of k){if(!o?.key)continue;const U=Number(o.colorArgb)>>>0;n[o.key]=U,t[o.key]=U}(!s||!e)&&V.warning("车型样式 / 报警颜色加载部分失败,请确认 SimpleLite 已启动(端口 8222)。")}catch(s){V.error(`加载车型样式失败:${s.message}`)}finally{x.value=!1}}async function L(){if(v.value){b.value=!0;try{await B.putAlarmColors({...n}),V.success("调色板已写入并生效"),await I()}catch(s){V.error(`保存调色板失败:${s.message}`)}finally{b.value=!1}}}function F(){c.value=!0;const s={避障:4294940672,运行:4283215696,上线:4280391411,下线:4288585374,导航失联:4288423856,报警:4294198070,低电量:4294951175};for(const e of Object.keys(n))delete n[e];for(const e of Object.keys(s))n[e]=s[e];c.value=!1,V.info("已恢复为 7 种默认颜色,未写入。点「保存调色板」生效。")}async function R(s){const e=g[s.typeName];if(e){m.value=s.typeName;try{const i=await B.putCarStyle(s.typeName,e);g[s.typeName]={...i},s.hasOverride=!0,V.success(`已保存 ${s.label} 车型样式`)}catch(i){V.error(`保存 ${s.label} 失败:${i.message}`)}finally{m.value=null}}}async function u(s){try{await be.confirm(`把 ${s.label} (${s.typeName}) 的样式恢复为全局默认?删除条目后将与未覆盖车型一致。`,"恢复默认",{confirmButtonText:"恢复",cancelButtonText:"取消",type:"warning"})}catch{return}try{await B.deleteCarStyle(s.typeName),V.success(`已恢复 ${s.label} 为默认样式`),await I()}catch(e){V.error(`恢复默认失败:${e.message}`)}}return Y(I),C({refresh:I}),(s,e)=>{const i=me,k=Q,A=J,o=pe,U=ye,Z=ge,ee=fe,te=ke,le=ce;return ue((y(),j("div",Te,[a(o,{shadow:"never",class:"cse-card"},{header:l(()=>[r("div",Ue,[e[4]||(e[4]=r("span",{class:"cse-card-title"},"报警 / 状态调色板",-1)),a(i,{size:"small",type:"info",effect:"plain"},{default:l(()=>[...e[1]||(e[1]=[f("7 种默认状态",-1)])]),_:1}),e[5]||(e[5]=r("span",{class:"cse-card-spacer"},null,-1)),a(k,{size:"small",loading:c.value,onClick:F},{default:l(()=>[...e[2]||(e[2]=[f("恢复默认",-1)])]),_:1},8,["loading"]),a(k,{size:"small",type:"primary",disabled:!v.value,loading:b.value,onClick:L},{default:l(()=>[...e[3]||(e[3]=[f(" 保存调色板(写入 simple.json) ",-1)])]),_:1},8,["disabled","loading"])])]),default:l(()=>[r("p",we,[e[9]||(e[9]=f(" 车体颜色的判定优先级: ",-1)),a(i,{size:"small",effect:"plain"},{default:l(()=>[...e[6]||(e[6]=[f("1. AlarmInfo 非空 → 「报警」",-1)])]),_:1}),a(i,{size:"small",effect:"plain"},{default:l(()=>[...e[7]||(e[7]=[f("2. lstatus 包含关键字 → 对应键",-1)])]),_:1}),a(i,{size:"small",effect:"plain"},{default:l(()=>[...e[8]||(e[8]=[f("3. 兜底 → 上下线默认色",-1)])]),_:1}),e[10]||(e[10]=f(" 修改下方颜色 + 「保存调色板」即时生效。 ",-1))]),r("div",he,[(y(!0),j(H,null,q(h.value,d=>(y(),j("div",{key:d.key,class:"cse-palette-item"},[r("div",ze,[r("span",Pe,w(d.key),1),d.isDefault?P("",!0):(y(),$(i,{key:0,size:"small",type:"warning",effect:"plain"},{default:l(()=>[...e[11]||(e[11]=[f("自定义",-1)])]),_:1}))]),r("div",De,[a(A,{"model-value":E(p(d.key)),"show-alpha":"",size:"small","onUpdate:modelValue":O=>_(d.key,O)},null,8,["model-value","onUpdate:modelValue"]),r("code",Le,"#"+w(E(p(d.key)).toUpperCase()),1)])]))),128))])]),_:1}),a(o,{shadow:"never",class:"cse-card cse-types-card"},{header:l(()=>[r("div",Oe,[e[13]||(e[13]=r("span",{class:"cse-card-title"},"车型样式",-1)),a(i,{size:"small",type:"info",effect:"plain"},{default:l(()=>[f(w(S.value.length)+" 个已加载车型",1)]),_:1}),e[14]||(e[14]=r("span",{class:"cse-card-spacer"},null,-1)),a(k,{size:"small",onClick:I},{default:l(()=>[a(U,null,{default:l(()=>[a(ve(_e))]),_:1}),e[12]||(e[12]=r("span",{class:"cse-btn-text"},"刷新",-1))]),_:1})])]),default:l(()=>[e[17]||(e[17]=r("p",{class:"cse-desc"}," 点击车型行展开编辑:尺寸(米)、车体 / 描边 / 标签颜色、是否显示名称、3D 模型文件路径。 每辆车按 .NET 类型 (`assemblyName::shortName`) 索引样式。修改后点行内「保存」即时写入并生效。 ",-1)),a(ee,{modelValue:M.value,"onUpdate:modelValue":e[0]||(e[0]=d=>M.value=d),accordion:""},{default:l(()=>[(y(!0),j(H,null,q(S.value,d=>(y(),$(Z,{key:d.typeName,name:d.typeName},{title:l(()=>[r("div",Be,[r("span",je,w(d.label),1),r("code",Me,w(d.typeName),1),d.hasOverride?(y(),$(i,{key:0,size:"small",type:"success",effect:"plain"},{default:l(()=>[...e[15]||(e[15]=[f("已覆盖",-1)])]),_:1})):(y(),$(i,{key:1,size:"small",type:"info",effect:"plain"},{default:l(()=>[...e[16]||(e[16]=[f("默认",-1)])]),_:1}))])]),default:l(()=>[g[d.typeName]?(y(),$(xe,{key:0,"type-full-name":d.typeName,"model-value":g[d.typeName],"has-override":d.hasOverride,saving:m.value===d.typeName,"onUpdate:modelValue":O=>g[d.typeName]=O,onSave:O=>R(d),onReset:O=>u(d)},null,8,["type-full-name","model-value","has-override","saving","onUpdate:modelValue","onSave","onReset"])):P("",!0)]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"]),!x.value&&S.value.length===0?(y(),$(te,{key:0,description:"未发现任何 Car 子类(请确认 SimpleLite 已加载相应插件 dll)"})):P("",!0)]),_:1})])),[[le,x.value]])}}}),Re=G(Fe,[["__scopeId","data-v-3af8f925"]]),Ke={class:"car-page"},We=W({__name:"CarPanelView",setup(D){const C=N("list");function x(b){C.value=b,sessionStorage.setItem("admin.cars.tab",C.value)}return Y(()=>{const b=sessionStorage.getItem("admin.cars.tab");(b==="list"||b==="style")&&(C.value=b)}),(b,c)=>{const m=Ee,S=Ce;return y(),j("div",Ke,[a(S,{modelValue:C.value,"onUpdate:modelValue":c[0]||(c[0]=g=>C.value=g),type:"border-card",class:"car-tabs admin-tabs",onTabChange:x},{default:l(()=>[a(m,{label:"车辆列表",name:"list"},{default:l(()=>[C.value==="list"?(y(),$(Ne,{key:0,kind:"car","kind-label":"车辆",title:"车辆管理(Car / AbstractCar,含模拟车、插件车型 reflectionApi 实例化)","empty-text":"当前没有车辆;点击右上角「新建车辆」从已加载的 CarType 中选一个实例化。","enable-project-save":""})):P("",!0)]),_:1}),a(m,{label:"车型样式 / 报警颜色",name:"style"},{default:l(()=>[C.value==="style"?(y(),$(Re,{key:0})):P("",!0)]),_:1})]),_:1},8,["modelValue"])])}}}),Et=G(We,[["__scopeId","data-v-a07bde0e"]]);export{Et as default}; diff --git a/MiGu.Server/wwwroot/assets/CarPanelView-CYaApbj9.css b/MiGu.Server/wwwroot/assets/CarPanelView-CyQ-iKoo.css similarity index 89% rename from MiGu.Server/wwwroot/assets/CarPanelView-CYaApbj9.css rename to MiGu.Server/wwwroot/assets/CarPanelView-CyQ-iKoo.css index 316aee8..fc799d0 100644 --- a/MiGu.Server/wwwroot/assets/CarPanelView-CYaApbj9.css +++ b/MiGu.Server/wwwroot/assets/CarPanelView-CyQ-iKoo.css @@ -1 +1 @@ -.cse-form[data-v-3cdad944]{padding:8px 4px}.cse-color-code[data-v-3cdad944]{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--el-text-color-secondary);margin-left:8px}.cse-color-hint[data-v-3cdad944]{font-size:12px;color:var(--el-text-color-secondary);margin-left:8px}.cse-model-row[data-v-3cdad944]{display:flex;align-items:center;gap:8px;width:100%}.cse-model-hint[data-v-3cdad944]{margin:6px 0 0;font-size:12px;color:var(--el-text-color-secondary);line-height:1.55}.cse-root[data-v-3af8f925]{height:100%;display:flex;flex-direction:column;gap:12px;padding:12px;box-sizing:border-box;overflow:auto}.cse-card[data-v-3af8f925] .el-card__body{padding:12px 16px}.cse-card-header[data-v-3af8f925]{display:flex;align-items:center;gap:10px}.cse-card-title[data-v-3af8f925]{font-weight:600}.cse-card-spacer[data-v-3af8f925]{flex:1}.cse-desc[data-v-3af8f925]{margin:0 0 12px;color:var(--el-text-color-primary);font-size:13px;line-height:1.65;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cse-palette[data-v-3af8f925]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.cse-palette-item[data-v-3af8f925]{border:1px solid var(--el-border-color);background:var(--el-fill-color-light);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.cse-palette-label[data-v-3af8f925]{display:flex;align-items:center;gap:6px}.cse-palette-key[data-v-3af8f925]{font-weight:600;color:var(--el-text-color-primary)}.cse-palette-pickers[data-v-3af8f925]{display:flex;align-items:center;gap:8px}.cse-color-code[data-v-3af8f925]{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--el-text-color-secondary)}.cse-types-card[data-v-3af8f925]{flex:1}.cse-row-title[data-v-3af8f925]{display:flex;align-items:center;gap:8px;width:100%}.cse-row-name[data-v-3af8f925]{font-weight:600}.cse-row-fqn[data-v-3af8f925]{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--el-text-color-secondary);flex:1;text-align:left;word-break:break-all}.cse-btn-text[data-v-3af8f925]{margin-left:4px}.car-page[data-v-c3733824]{height:calc(100vh - 56px);padding:12px 14px;box-sizing:border-box;display:flex;flex-direction:column}.car-tabs[data-v-c3733824]{flex:1;display:flex;flex-direction:column;overflow:hidden}.car-tabs[data-v-c3733824] .el-tabs__content{flex:1;overflow:hidden;padding:0}.car-tabs[data-v-c3733824] .el-tab-pane{height:100%;overflow:hidden} +.cse-form[data-v-3cdad944]{padding:8px 4px}.cse-color-code[data-v-3cdad944]{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--el-text-color-secondary);margin-left:8px}.cse-color-hint[data-v-3cdad944]{font-size:12px;color:var(--el-text-color-secondary);margin-left:8px}.cse-model-row[data-v-3cdad944]{display:flex;align-items:center;gap:8px;width:100%}.cse-model-hint[data-v-3cdad944]{margin:6px 0 0;font-size:12px;color:var(--el-text-color-secondary);line-height:1.55}.cse-root[data-v-3af8f925]{height:100%;display:flex;flex-direction:column;gap:12px;padding:12px;box-sizing:border-box;overflow:auto}.cse-card[data-v-3af8f925] .el-card__body{padding:12px 16px}.cse-card-header[data-v-3af8f925]{display:flex;align-items:center;gap:10px}.cse-card-title[data-v-3af8f925]{font-weight:600}.cse-card-spacer[data-v-3af8f925]{flex:1}.cse-desc[data-v-3af8f925]{margin:0 0 12px;color:var(--el-text-color-primary);font-size:13px;line-height:1.65;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cse-palette[data-v-3af8f925]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.cse-palette-item[data-v-3af8f925]{border:1px solid var(--el-border-color);background:var(--el-fill-color-light);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.cse-palette-label[data-v-3af8f925]{display:flex;align-items:center;gap:6px}.cse-palette-key[data-v-3af8f925]{font-weight:600;color:var(--el-text-color-primary)}.cse-palette-pickers[data-v-3af8f925]{display:flex;align-items:center;gap:8px}.cse-color-code[data-v-3af8f925]{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--el-text-color-secondary)}.cse-types-card[data-v-3af8f925]{flex:1}.cse-row-title[data-v-3af8f925]{display:flex;align-items:center;gap:8px;width:100%}.cse-row-name[data-v-3af8f925]{font-weight:600}.cse-row-fqn[data-v-3af8f925]{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--el-text-color-secondary);flex:1;text-align:left;word-break:break-all}.cse-btn-text[data-v-3af8f925]{margin-left:4px}.car-page[data-v-a07bde0e]{height:calc(100vh - 56px);padding:12px 14px;box-sizing:border-box;display:flex;flex-direction:column}.car-tabs[data-v-a07bde0e]{flex:1;display:flex;flex-direction:column;overflow:hidden}.car-tabs[data-v-a07bde0e] .el-tabs__content{flex:1;overflow:hidden;padding:0}.car-tabs[data-v-a07bde0e] .el-tab-pane{height:100%;overflow:hidden} diff --git a/MiGu.Server/wwwroot/assets/CarPanelView-DfcvV1b9.js b/MiGu.Server/wwwroot/assets/CarPanelView-DfcvV1b9.js deleted file mode 100644 index b33c7b7..0000000 --- a/MiGu.Server/wwwroot/assets/CarPanelView-DfcvV1b9.js +++ /dev/null @@ -1 +0,0 @@ -import{aI as H,b9 as y,aC as $,N as ae,bJ as l,aH as a,a2 as se,w as oe,O as ne,S as re,a8 as ie,z as J,aB as r,bq as w,R as de,r as Q,aG as f,aD as P,ax as X,bh as N,ak as W,b7 as Y,bK as ue,bA as ce,aE as j,t as pe,ad as me,ai as q,bj as G,x as fe,Q as ye,bt as ve,bi as _e,bg as K,X as V,Y as be,y as ge,L as ke,ac as Ce,a9 as Ee}from"./index-Dg4NaXsE.js";/* empty css *//* empty css */import{R as Ne}from"./ReflectionManagerPanel-BZQZIz4T.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{r as L}from"./reflection-B_glb6eT.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./useMapEditStream-BgR6WvRg.js";import"./useProjectionStream-BBHmpNXC.js";const $e={class:"cse-color-code"},Ie={class:"cse-color-code"},Se={class:"cse-color-code"},Ae={class:"cse-model-row"},Ve=H({__name:"CarStyleEditorForm",props:{typeFullName:{},modelValue:{},hasOverride:{type:Boolean},saving:{type:Boolean}},emits:["update:modelValue","save","reset"],setup(O,{emit:C}){const x=O,b=C,c=X(()=>x.modelValue);function m(n){b("update:modelValue",{...c.value,...n})}const I=N(null);function g(){I.value?.click()}function M(n){const t=n.target,v=t.files?.[0];v&&(m({modelPath:v.name}),t.value="")}function T(n){const t=n>>>24&255,v=n>>>16&255,p=n>>>8&255,_=n&255,E=z=>z.toString(16).padStart(2,"0");return`${E(v)}${E(p)}${E(_)}${E(t)}`}function h(n){const t=n.replace(/^#/,"");if(t.length===6){const v=parseInt(t.slice(0,2),16),p=parseInt(t.slice(2,4),16),_=parseInt(t.slice(4,6),16);return(255<<24|v<<16|p<<8|_)>>>0}if(t.length===8){const v=parseInt(t.slice(0,2),16),p=parseInt(t.slice(2,4),16),_=parseInt(t.slice(4,6),16);return(parseInt(t.slice(6,8),16)<<24|v<<16|p<<8|_)>>>0}return 0}return(n,t)=>{const v=re,p=ne,_=oe,E=ie,z=se,S=J,B=Q,R=de,F=ae;return y(),$(F,{"label-width":"120px",size:"default",class:"cse-form",model:c.value},{default:l(()=>[a(z,{gutter:16},{default:l(()=>[a(_,{span:8},{default:l(()=>[a(p,{label:"长度 (m)"},{default:l(()=>[a(v,{"model-value":c.value.bodyLengthM,min:.12,max:4,step:.01,precision:2,"onUpdate:modelValue":t[0]||(t[0]=u=>m({bodyLengthM:Number(u??0)}))},null,8,["model-value"])]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"宽度 (m)"},{default:l(()=>[a(v,{"model-value":c.value.bodyWidthM,min:.08,max:3,step:.01,precision:2,"onUpdate:modelValue":t[1]||(t[1]=u=>m({bodyWidthM:Number(u??0)}))},null,8,["model-value"])]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"显示名称"},{default:l(()=>[a(E,{"model-value":c.value.showLabel,"onUpdate:modelValue":t[2]||(t[2]=u=>m({showLabel:!!u}))},null,8,["model-value"])]),_:1})]),_:1})]),_:1}),a(z,{gutter:16},{default:l(()=>[a(_,{span:8},{default:l(()=>[a(p,{label:"车体颜色"},{default:l(()=>[a(S,{"model-value":T(c.value.bodyColorArgb),"show-alpha":"","onUpdate:modelValue":t[3]||(t[3]=u=>m({bodyColorArgb:u?h(u):0}))},null,8,["model-value"]),r("code",$e,"#"+w(T(c.value.bodyColorArgb).toUpperCase()),1),t[9]||(t[9]=r("span",{class:"cse-color-hint"},"无报警/上线时生效",-1))]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"描边颜色"},{default:l(()=>[a(S,{"model-value":T(c.value.outlineColorArgb),"show-alpha":"","onUpdate:modelValue":t[4]||(t[4]=u=>m({outlineColorArgb:u?h(u):0}))},null,8,["model-value"]),r("code",Ie,"#"+w(T(c.value.outlineColorArgb).toUpperCase()),1)]),_:1})]),_:1}),a(_,{span:8},{default:l(()=>[a(p,{label:"标签颜色"},{default:l(()=>[a(S,{"model-value":T(c.value.labelColorArgb),"show-alpha":"","onUpdate:modelValue":t[5]||(t[5]=u=>m({labelColorArgb:u?h(u):0}))},null,8,["model-value"]),r("code",Se,"#"+w(T(c.value.labelColorArgb).toUpperCase()),1)]),_:1})]),_:1})]),_:1}),a(p,{label:"3D 模型路径"},{default:l(()=>[r("div",Ae,[a(R,{"model-value":c.value.modelPath,placeholder:"如 ./models/agv-base.glb(路径仅保存,3D 替换矩形渲染由后续阶段接入)",clearable:"","onUpdate:modelValue":t[6]||(t[6]=u=>m({modelPath:u??""}))},{append:l(()=>[a(B,{onClick:g},{default:l(()=>[...t[10]||(t[10]=[f("浏览…",-1)])]),_:1})]),_:1},8,["model-value"]),r("input",{ref_key:"fileInput",ref:I,type:"file",accept:".glb,.gltf,.obj,.fbx",style:{display:"none"},onChange:M},null,544)]),t[11]||(t[11]=r("p",{class:"cse-model-hint"}," 现版本仅记录文件路径作为元信息。3D 渲染替代矩形将在后续阶段实现(CycleGUI Workspace LoadModel)。 如需上传文件到服务器请先用其它方式将模型放到 SimpleLite 可访问的相对路径。 ",-1))]),_:1}),a(p,null,{default:l(()=>[a(B,{type:"primary",loading:O.saving,onClick:t[7]||(t[7]=u=>n.$emit("save"))},{default:l(()=>[...t[12]||(t[12]=[f("保存此车型",-1)])]),_:1},8,["loading"]),O.hasOverride?(y(),$(B,{key:0,type:"warning",plain:"",onClick:t[8]||(t[8]=u=>n.$emit("reset"))},{default:l(()=>[...t[13]||(t[13]=[f("恢复为默认",-1)])]),_:1})):P("",!0)]),_:1})]),_:1},8,["model"])}}}),xe=W(Ve,[["__scopeId","data-v-3cdad944"]]),Te={class:"cse-root"},Ue={class:"cse-card-header"},we={class:"cse-desc"},he={class:"cse-palette"},ze={class:"cse-palette-label"},Pe={class:"cse-palette-key"},Oe={class:"cse-palette-pickers"},Be={class:"cse-color-code"},De={class:"cse-card-header"},Le={class:"cse-row-title"},je={class:"cse-row-name"},Me={class:"cse-row-fqn"},Re=H({__name:"CarStyleEditor",setup(O,{expose:C}){const x=N(!1),b=N(!1),c=N(!1),m=N(null),I=N([]),g=K({}),M=N(void 0),T=N([]),h=N([]),n=K({}),t=K({}),v=X(()=>{const s=new Set([...Object.keys(n),...Object.keys(t)]);for(const e of s)if(n[e]!==t[e])return!0;return!1});function p(s){return n[s]??0}function _(s,e){n[s]=e?z(e):0}function E(s){const e=s>>>24&255,i=s>>>16&255,k=s>>>8&255,A=s&255,o=U=>U.toString(16).padStart(2,"0");return`${o(i)}${o(k)}${o(A)}${o(e)}`}function z(s){const e=s.replace(/^#/,"");if(e.length===6){const i=parseInt(e.slice(0,2),16),k=parseInt(e.slice(2,4),16),A=parseInt(e.slice(4,6),16);return(255<<24|i<<16|k<<8|A)>>>0}if(e.length===8){const i=parseInt(e.slice(0,2),16),k=parseInt(e.slice(2,4),16),A=parseInt(e.slice(4,6),16);return(parseInt(e.slice(6,8),16)<<24|i<<16|k<<8|A)>>>0}return 0}async function S(){x.value=!0;try{const s=await L.getCarStyleTypes().catch(o=>(console.warn("[CarStyleEditor] getCarStyleTypes failed:",o),null)),e=await L.getAlarmColors().catch(o=>(console.warn("[CarStyleEditor] getAlarmColors failed:",o),null)),i=Array.isArray(s?.types)?s.types:[];I.value=i;for(const o of i)g[o.typeName]={...o.style};for(const o of Object.keys(g))i.find(U=>U.typeName===o)||delete g[o];const k=Array.isArray(e?.entries)?e.entries:[],A=Array.isArray(e?.defaultKeys)?e.defaultKeys:[];T.value=A,h.value=k;for(const o of Object.keys(n))delete n[o];for(const o of Object.keys(t))delete t[o];for(const o of k){if(!o?.key)continue;const U=Number(o.colorArgb)>>>0;n[o.key]=U,t[o.key]=U}(!s||!e)&&V.warning("车型样式 / 报警颜色加载部分失败,请确认 SimpleLite 已启动(端口 8222)。")}catch(s){V.error(`加载车型样式失败:${s.message}`)}finally{x.value=!1}}async function B(){if(v.value){b.value=!0;try{await L.putAlarmColors({...n}),V.success("调色板已写入并生效"),await S()}catch(s){V.error(`保存调色板失败:${s.message}`)}finally{b.value=!1}}}function R(){c.value=!0;const s={避障:4294940672,运行:4283215696,上线:4280391411,下线:4288585374,导航失联:4288423856,报警:4294198070,低电量:4294951175};for(const e of Object.keys(n))delete n[e];for(const e of Object.keys(s))n[e]=s[e];c.value=!1,V.info("已恢复为 7 种默认颜色,未写入。点「保存调色板」生效。")}async function F(s){const e=g[s.typeName];if(e){m.value=s.typeName;try{const i=await L.putCarStyle(s.typeName,e);g[s.typeName]={...i},s.hasOverride=!0,V.success(`已保存 ${s.label} 车型样式`)}catch(i){V.error(`保存 ${s.label} 失败:${i.message}`)}finally{m.value=null}}}async function u(s){try{await be.confirm(`把 ${s.label} (${s.typeName}) 的样式恢复为全局默认?删除条目后将与未覆盖车型一致。`,"恢复默认",{confirmButtonText:"恢复",cancelButtonText:"取消",type:"warning"})}catch{return}try{await L.deleteCarStyle(s.typeName),V.success(`已恢复 ${s.label} 为默认样式`),await S()}catch(e){V.error(`恢复默认失败:${e.message}`)}}return Y(S),C({refresh:S}),(s,e)=>{const i=me,k=Q,A=J,o=pe,U=ye,Z=ge,ee=fe,te=ke,le=ce;return ue((y(),j("div",Te,[a(o,{shadow:"never",class:"cse-card"},{header:l(()=>[r("div",Ue,[e[4]||(e[4]=r("span",{class:"cse-card-title"},"报警 / 状态调色板",-1)),a(i,{size:"small",type:"info",effect:"plain"},{default:l(()=>[...e[1]||(e[1]=[f("7 种默认状态",-1)])]),_:1}),e[5]||(e[5]=r("span",{class:"cse-card-spacer"},null,-1)),a(k,{size:"small",loading:c.value,onClick:R},{default:l(()=>[...e[2]||(e[2]=[f("恢复默认",-1)])]),_:1},8,["loading"]),a(k,{size:"small",type:"primary",disabled:!v.value,loading:b.value,onClick:B},{default:l(()=>[...e[3]||(e[3]=[f(" 保存调色板(写入 simple.json) ",-1)])]),_:1},8,["disabled","loading"])])]),default:l(()=>[r("p",we,[e[9]||(e[9]=f(" 车体颜色的判定优先级: ",-1)),a(i,{size:"small",effect:"plain"},{default:l(()=>[...e[6]||(e[6]=[f("1. AlarmInfo 非空 → 「报警」",-1)])]),_:1}),a(i,{size:"small",effect:"plain"},{default:l(()=>[...e[7]||(e[7]=[f("2. lstatus 包含关键字 → 对应键",-1)])]),_:1}),a(i,{size:"small",effect:"plain"},{default:l(()=>[...e[8]||(e[8]=[f("3. 兜底 → 上下线默认色",-1)])]),_:1}),e[10]||(e[10]=f(" 修改下方颜色 + 「保存调色板」即时生效。 ",-1))]),r("div",he,[(y(!0),j(q,null,G(h.value,d=>(y(),j("div",{key:d.key,class:"cse-palette-item"},[r("div",ze,[r("span",Pe,w(d.key),1),d.isDefault?P("",!0):(y(),$(i,{key:0,size:"small",type:"warning",effect:"plain"},{default:l(()=>[...e[11]||(e[11]=[f("自定义",-1)])]),_:1}))]),r("div",Oe,[a(A,{"model-value":E(p(d.key)),"show-alpha":"",size:"small","onUpdate:modelValue":D=>_(d.key,D)},null,8,["model-value","onUpdate:modelValue"]),r("code",Be,"#"+w(E(p(d.key)).toUpperCase()),1)])]))),128))])]),_:1}),a(o,{shadow:"never",class:"cse-card cse-types-card"},{header:l(()=>[r("div",De,[e[13]||(e[13]=r("span",{class:"cse-card-title"},"车型样式",-1)),a(i,{size:"small",type:"info",effect:"plain"},{default:l(()=>[f(w(I.value.length)+" 个已加载车型",1)]),_:1}),e[14]||(e[14]=r("span",{class:"cse-card-spacer"},null,-1)),a(k,{size:"small",onClick:S},{default:l(()=>[a(U,null,{default:l(()=>[a(ve(_e))]),_:1}),e[12]||(e[12]=r("span",{class:"cse-btn-text"},"刷新",-1))]),_:1})])]),default:l(()=>[e[17]||(e[17]=r("p",{class:"cse-desc"}," 点击车型行展开编辑:尺寸(米)、车体 / 描边 / 标签颜色、是否显示名称、3D 模型文件路径。 每辆车按 .NET 类型 (`assemblyName::shortName`) 索引样式。修改后点行内「保存」即时写入并生效。 ",-1)),a(ee,{modelValue:M.value,"onUpdate:modelValue":e[0]||(e[0]=d=>M.value=d),accordion:""},{default:l(()=>[(y(!0),j(q,null,G(I.value,d=>(y(),$(Z,{key:d.typeName,name:d.typeName},{title:l(()=>[r("div",Le,[r("span",je,w(d.label),1),r("code",Me,w(d.typeName),1),d.hasOverride?(y(),$(i,{key:0,size:"small",type:"success",effect:"plain"},{default:l(()=>[...e[15]||(e[15]=[f("已覆盖",-1)])]),_:1})):(y(),$(i,{key:1,size:"small",type:"info",effect:"plain"},{default:l(()=>[...e[16]||(e[16]=[f("默认",-1)])]),_:1}))])]),default:l(()=>[g[d.typeName]?(y(),$(xe,{key:0,"type-full-name":d.typeName,"model-value":g[d.typeName],"has-override":d.hasOverride,saving:m.value===d.typeName,"onUpdate:modelValue":D=>g[d.typeName]=D,onSave:D=>F(d),onReset:D=>u(d)},null,8,["type-full-name","model-value","has-override","saving","onUpdate:modelValue","onSave","onReset"])):P("",!0)]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"]),!x.value&&I.value.length===0?(y(),$(te,{key:0,description:"未发现任何 Car 子类(请确认 SimpleLite 已加载相应插件 dll)"})):P("",!0)]),_:1})])),[[le,x.value]])}}}),Fe=W(Re,[["__scopeId","data-v-3af8f925"]]),Ke={class:"car-page"},He=H({__name:"CarPanelView",setup(O){const C=N("list");function x(b){C.value=b,sessionStorage.setItem("admin.cars.tab",C.value)}return Y(()=>{const b=sessionStorage.getItem("admin.cars.tab");(b==="list"||b==="style")&&(C.value=b)}),(b,c)=>{const m=Ee,I=Ce;return y(),j("div",Ke,[a(I,{modelValue:C.value,"onUpdate:modelValue":c[0]||(c[0]=g=>C.value=g),type:"border-card",class:"car-tabs admin-tabs",onTabChange:x},{default:l(()=>[a(m,{label:"车辆列表",name:"list"},{default:l(()=>[C.value==="list"?(y(),$(Ne,{key:0,kind:"car","kind-label":"车辆",title:"车辆管理(Car / AbstractCar,含模拟车、插件车型 reflectionApi 实例化)","empty-text":"当前没有车辆;点击右上角「新建车辆」从已加载的 CarType 中选一个实例化。"})):P("",!0)]),_:1}),a(m,{label:"车型样式 / 报警颜色",name:"style"},{default:l(()=>[C.value==="style"?(y(),$(Fe,{key:0})):P("",!0)]),_:1})]),_:1},8,["modelValue"])])}}}),Ct=W(He,[["__scopeId","data-v-c3733824"]]);export{Ct as default}; diff --git a/MiGu.Server/wwwroot/assets/ChargePolicyView-fgYXxU-T.js b/MiGu.Server/wwwroot/assets/ChargePolicyView-fgYXxU-T.js deleted file mode 100644 index cb54a76..0000000 --- a/MiGu.Server/wwwroot/assets/ChargePolicyView-fgYXxU-T.js +++ /dev/null @@ -1 +0,0 @@ -import{aI as s,aC as c,bJ as t,bt as d,b9 as u,aH as e,N as f,O as b,a8 as h,S as C,aa as g,ab as w,D as E}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as V}from"./ConfigPageBase-MHa7yfOO.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BlMEkqrL.js";/* empty css */import"./reflection-B_glb6eT.js";import"./monitorConfigCache-BigdkiFw.js";const K=s({__name:"ChargePolicyView",setup(x){return(T,U)=>{const i=h,l=b,n=C,a=w,p=g,_=f;return u(),c(V,{section:"charge",title:"充电逻辑",description:"充电优先级、空闲充电、任务中断充电(ChargePolicy)",defaults:d(E)},{default:t(({payload:o,update:r})=>[e(_,{"label-width":"180px",model:o},{default:t(()=>[e(l,{label:"允许任务中断充电"},{default:t(()=>[e(i,{"model-value":o.allowMidTaskCharge,"onUpdate:modelValue":m=>r({...o,allowMidTaskCharge:!!m})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(l,{label:"空闲多少秒后充电"},{default:t(()=>[e(n,{"model-value":o.idleChargeAfterSec,min:0,max:86400,"onUpdate:modelValue":m=>r({...o,idleChargeAfterSec:m??0})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(l,{label:"充电优先级规则"},{default:t(()=>[e(p,{data:o.priority,size:"small"},{default:t(()=>[e(a,{label:"ID",prop:"id",width:"100"}),e(a,{label:"条件",prop:"condition"}),e(a,{label:"权重",prop:"weight",width:"100"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{K as default}; diff --git a/MiGu.Server/wwwroot/assets/ConfigPageBase-MHa7yfOO.js b/MiGu.Server/wwwroot/assets/ConfigPageBase-CgfsngDp.js similarity index 69% rename from MiGu.Server/wwwroot/assets/ConfigPageBase-MHa7yfOO.js rename to MiGu.Server/wwwroot/assets/ConfigPageBase-CgfsngDp.js index 65dcc8c..bbc6875 100644 --- a/MiGu.Server/wwwroot/assets/ConfigPageBase-MHa7yfOO.js +++ b/MiGu.Server/wwwroot/assets/ConfigPageBase-CgfsngDp.js @@ -1 +1 @@ -import{aU as E,e as z,aJ as L,aI as R,bh as h,bI as V,b7 as D,aC as O,bJ as r,b9 as k,aH as l,aE as I,bq as y,aD as w,aB as p,a2 as j,w as G,t as U,bk as q,aG as u,ad as H,r as W,bt as J,bi as X,as as Q,ax as T,X as m,ak as Y}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as Z}from"./PermissionGuard-BlMEkqrL.js";import{b as tt,r as C}from"./reflection-B_glb6eT.js";import{i as et}from"./monitorConfigCache-BigdkiFw.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 S(){return JSON.parse(JSON.stringify(z.monitor))}function b(t){const e=JSON.parse(JSON.stringify(z));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 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=h(null),c=h(JSON.parse(JSON.stringify(e.defaults))),d=h(!1),v=h(!1),P=T(()=>JSON.stringify(c.value,null,2)),$=T(()=>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 K(){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,()=>_()),D(()=>_()),(i,n)=>{const s=H,g=W,f=U,N=G,F=j;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:J(X),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:J(Q),loading:v.value,onClick:K},{default:r(()=>[...n[2]||(n[2]=[u("保存",-1)])]),_:1},8,["icon","loading"])])]),default:r(()=>[t.description?(k(),I("p",ct,y(t.description),1)):w("",!0),p("div",lt,[l(F,{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(()=>[q(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,S as d,kt as l,b as n,Ct as s,st as u}; +import{b4 as J,e as z,aO as L,aN as R,bC as S,c7 as D,bp as V,bs as k,aE as B,c8 as r,aK as l,t as j,aG as G,bL as y,aF as w,aD as p,a2 as I,w as U,bF as W,aJ as u,ad as X,r as q,bS as T,bD as H,at as Q,ay as E,X as m,ak as Y}from"./index-D5GfLbIx.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as Z}from"./PermissionGuard-CR4qtxrh.js";import{b as tt,r as C}from"./reflection-BwOBPyb9.js";import{i as et}from"./monitorConfigCache-DXn96T8F.js";async function at(t){const{data:e}=await J.get(`/config/${t}`);return e}async function ot(t,e){const{data:a}=await J.put(`/config/${t}`,e);return a}function h(){return JSON.parse(JSON.stringify(z.monitor))}function b(t){const e=JSON.parse(JSON.stringify(z));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=E(()=>JSON.stringify(c.value,null,2)),$=E(()=>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 N(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 N(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 N(!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 D(()=>e.section,()=>_()),V(()=>_()),(i,n)=>{const s=X,g=q,f=j,O=U,K=I;return k(),B(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(),B(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(H),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(),G("p",ct,y(t.description),1)):w("",!0),p("div",lt,[l(K,{gutter:12},{default:r(()=>[l(O,{span:14},{default:r(()=>[l(f,{shadow:"never","body-style":"padding: 12px"},{header:r(()=>[...n[4]||(n[4]=[u("表单",-1)])]),default:r(()=>[W(i.$slots,"default",{payload:c.value,update:A},void 0,!0)]),_:3})]),_:3}),l(O,{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,st as u}; diff --git a/MiGu.Server/wwwroot/assets/CustomWidgetView-Ch0BQYzJ.css b/MiGu.Server/wwwroot/assets/CustomWidgetView-Ch0BQYzJ.css deleted file mode 100644 index b6fdac3..0000000 --- a/MiGu.Server/wwwroot/assets/CustomWidgetView-Ch0BQYzJ.css +++ /dev/null @@ -1 +0,0 @@ -.js-mini[data-v-96b90481]{margin:0;font-size:11px;background:#f5f7fa;padding:4px 6px;border-radius:4px;max-height:60px;overflow:auto} diff --git a/MiGu.Server/wwwroot/assets/CustomWidgetView-Ch7DIGUj.js b/MiGu.Server/wwwroot/assets/CustomWidgetView-Ch7DIGUj.js deleted file mode 100644 index 6f93718..0000000 --- a/MiGu.Server/wwwroot/assets/CustomWidgetView-Ch7DIGUj.js +++ /dev/null @@ -1 +0,0 @@ -import{aI as _,aC as i,bJ as e,bt as d,b9 as s,aH as t,aa as u,ab as f,aB as n,bq as r,aE as b,ai as g,bj as h,ad as w,aG as C,l as E,ak as T}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as y}from"./ConfigPageBase-MHa7yfOO.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BlMEkqrL.js";/* empty css */import"./reflection-B_glb6eT.js";import"./monitorConfigCache-BigdkiFw.js";const B={class:"js-mini"},k={class:"js-mini"},x=_({__name:"CustomWidgetView",setup(J){return(S,V)=>{const a=f,p=w,m=u;return s(),i(y,{section:"widget",title:"自定义控件",description:"呼叫/展示界面可自由定义(platform-vue + rcsmonitor-vue 双渲染器)",defaults:d(E)},{default:e(({payload:c})=>[t(m,{data:c.items,size:"small",border:""},{default:e(()=>[t(a,{label:"ID",prop:"id",width:"180"}),t(a,{label:"名称",prop:"name",width:"140"}),t(a,{label:"Schema",prop:"schemaJson"},{default:e(o=>[n("pre",B,r(o.row.schemaJson),1)]),_:1}),t(a,{label:"Layout",prop:"layoutJson"},{default:e(o=>[n("pre",k,r(o.row.layoutJson),1)]),_:1}),t(a,{label:"绑定 Scope"},{default:e(o=>[(s(!0),b(g,null,h(o.row.bindToScopes,l=>(s(),i(p,{key:l,size:"small",effect:"plain",style:{"margin-right":"4px"}},{default:e(()=>[C(r(l),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["data"])]),_:1},8,["defaults"])}}}),M=T(x,[["__scopeId","data-v-96b90481"]]);export{M as default}; diff --git a/MiGu.Server/wwwroot/assets/DashboardView-C22mCfRB.css b/MiGu.Server/wwwroot/assets/DashboardView-C22mCfRB.css deleted file mode 100644 index 6922061..0000000 --- a/MiGu.Server/wwwroot/assets/DashboardView-C22mCfRB.css +++ /dev/null @@ -1 +0,0 @@ -.dashboard[data-v-7b6c88b6]{padding:0;display:flex;flex-direction:column;gap:18px}.dashboard[data-v-7b6c88b6]>*{flex-shrink:0}.hero-banner[data-v-7b6c88b6]{position:relative;display:grid;grid-template-columns:1fr 480px;gap:24px;padding:28px 32px 22px;overflow:hidden;border-radius:18px;background:radial-gradient(ellipse at 0% 0%,rgba(var(--mg-primary-hover-rgb),.5) 0%,transparent 55%),radial-gradient(ellipse at 100% 100%,rgba(var(--mg-accent-rgb),.45) 0%,transparent 55%),linear-gradient(135deg,var(--mg-bg-aside-1) 0%,var(--mg-bg-aside-2) 100%);border:1px solid rgba(var(--mg-accent-rgb),.3);box-shadow:0 18px 44px #0006,0 0 0 1px #ffffff0f inset,0 1px #ffffff2e inset;color:#fff}.hero-banner[data-v-7b6c88b6]:before{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(var(--mg-accent-rgb),.8) 50%,transparent 100%);pointer-events:none;z-index:2}.hero-bg[data-v-7b6c88b6]{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:18px}.hero-orb[data-v-7b6c88b6]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;animation:hero-drift-7b6c88b6 18s ease-in-out infinite}.hero-orb-a[data-v-7b6c88b6]{width:360px;height:360px;top:-120px;left:10%;background:radial-gradient(circle,rgba(var(--mg-accent-rgb),.85) 0%,rgba(var(--mg-primary-rgb),.85) 55%,transparent 85%)}.hero-orb-b[data-v-7b6c88b6]{width:320px;height:320px;bottom:-120px;right:22%;background:radial-gradient(circle,rgba(var(--mg-primary-hover-rgb),.8) 0%,rgba(var(--mg-primary-rgb),.55) 55%,transparent 85%);animation-delay:-7s;opacity:.5}.hero-grid[data-v-7b6c88b6]{position:absolute;inset:0;background-image:linear-gradient(rgba(var(--mg-accent-rgb),.07) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--mg-accent-rgb),.07) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse at center,rgba(0,0,0,.85) 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,rgba(0,0,0,.85) 0%,transparent 75%);opacity:.55}@keyframes hero-drift-7b6c88b6{0%,to{transform:translate(0) scale(1)}50%{transform:translate(24px,-28px) scale(1.06)}}.hero-left[data-v-7b6c88b6],.hero-right[data-v-7b6c88b6]{position:relative;z-index:1}.hero-tag[data-v-7b6c88b6]{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;background:#ffffff1f;border:1px solid rgba(var(--mg-accent-rgb),.55);border-radius:999px;color:#fff;font-size:12px;letter-spacing:1.5px;width:max-content;box-shadow:0 0 12px rgba(var(--mg-primary-rgb),.3)}.tag-dot[data-v-7b6c88b6]{width:6px;height:6px;border-radius:50%;background:var(--mg-accent);box-shadow:0 0 10px var(--mg-accent);animation:tag-pulse-7b6c88b6 1.6s ease-in-out infinite}@keyframes tag-pulse-7b6c88b6{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.hero-title[data-v-7b6c88b6]{margin:14px 0 8px;font-size:40px;font-weight:700;letter-spacing:5px;line-height:1.1;color:#fff;background:linear-gradient(135deg,#ffffff 0%,var(--mg-accent) 50%,#ffffff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 4px 20px rgba(var(--mg-primary-rgb),.6);filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.hero-desc[data-v-7b6c88b6]{margin:0 0 22px;color:#ffffffd9;font-size:13px;letter-spacing:.8px}.quick-grid[data-v-7b6c88b6]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 18px;max-width:540px}.quick-item[data-v-7b6c88b6]{appearance:none;background:#ffffff14;border:1px solid rgba(var(--mg-accent-rgb),.35);border-radius:14px;padding:14px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:#fff;transition:all .25s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden;animation:quick-in-7b6c88b6 .5s ease-out backwards;box-shadow:0 4px 12px #00000040,0 0 0 1px #ffffff0f inset}@keyframes quick-in-7b6c88b6{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.quick-item[data-v-7b6c88b6]:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,rgba(var(--mg-accent-rgb),.15) 100%);opacity:0;transition:opacity .25s}.quick-item[data-v-7b6c88b6]:hover{border-color:rgba(var(--mg-accent-rgb),.75);background:#ffffff24;color:#fff;transform:translateY(-3px);box-shadow:0 12px 28px rgba(var(--mg-primary-rgb),.45),0 0 22px rgba(var(--mg-accent-rgb),.4)}.quick-item[data-v-7b6c88b6]:hover:before{opacity:1}.quick-icon[data-v-7b6c88b6]{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,rgba(var(--mg-primary-hover-rgb),.6),rgba(var(--mg-primary-rgb),.45));border:1px solid rgba(var(--mg-accent-rgb),.55);display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 16px rgba(var(--mg-primary-rgb),.4),0 0 0 1px #ffffff2e inset;transition:all .25s}.quick-item:hover .quick-icon[data-v-7b6c88b6]{background:linear-gradient(135deg,var(--mg-primary-hover) 0%,var(--mg-primary) 100%);box-shadow:0 10px 24px rgba(var(--mg-primary-rgb),.6),0 0 24px rgba(var(--mg-accent-rgb),.6),0 0 0 1px #ffffff59 inset}.quick-label[data-v-7b6c88b6]{font-size:13px;font-weight:500;letter-spacing:1.2px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}.quick-item.primary[data-v-7b6c88b6]{border-color:rgba(var(--mg-accent-rgb),.75);background:linear-gradient(135deg,rgba(var(--mg-primary-hover-rgb),.45),rgba(var(--mg-primary-rgb),.25));box-shadow:0 8px 22px rgba(var(--mg-primary-rgb),.45),0 0 0 1px rgba(var(--mg-accent-rgb),.45) inset}.quick-item.primary .quick-icon[data-v-7b6c88b6]{background:linear-gradient(135deg,var(--mg-accent) 0%,var(--mg-primary-hover) 60%,var(--mg-primary) 100%);box-shadow:0 8px 20px rgba(var(--mg-primary-rgb),.55),0 0 28px rgba(var(--mg-accent-rgb),.55),0 0 0 1px #ffffff4d inset;animation:mg-pulse-glow 3.6s ease-in-out infinite}.hero-right[data-v-7b6c88b6]{position:relative;align-self:stretch;min-height:280px;display:flex;align-items:center;justify-content:center}.hero-glow[data-v-7b6c88b6]{position:absolute;inset:10% 5%;background:radial-gradient(ellipse at 30% 40%,rgba(var(--mg-primary-hover-rgb),.55) 0%,transparent 60%),radial-gradient(ellipse at 70% 60%,rgba(var(--mg-accent-rgb),.3) 0%,transparent 65%);filter:blur(36px);pointer-events:none}.hero-scene[data-v-7b6c88b6]{position:relative;width:100%;height:auto;max-height:320px;filter:drop-shadow(0 12px 32px rgba(var(--mg-primary-rgb),.45))}.hero-scene .agv-1[data-v-7b6c88b6]{animation:agv-roll-7b6c88b6 6s ease-in-out infinite}.hero-scene .agv-2[data-v-7b6c88b6]{animation:agv-roll-7b6c88b6 8s ease-in-out infinite reverse}.hero-scene .float-data[data-v-7b6c88b6]{animation:float-bob-7b6c88b6 4.5s ease-in-out infinite}.hero-scene .float-data[data-v-7b6c88b6]:nth-child(odd){animation-delay:-2.2s}@keyframes agv-roll-7b6c88b6{0%,to{transform:translate(0)}50%{transform:translate(-20px)}}@keyframes float-bob-7b6c88b6{0%,to{transform:translate(360px,110px)}50%{transform:translate(360px,100px)}}.status-bar[data-v-7b6c88b6]{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 20px;border-radius:12px;background:linear-gradient(135deg,#fff,#fbf9ff);border:1px solid #ddd5ec;border-left:3px solid #7c3aed;box-shadow:0 1px 2px #2d1b690d,0 8px 22px #6c47c81a;color:#1a0f3d;font-size:13px}.status-left[data-v-7b6c88b6],.status-right[data-v-7b6c88b6]{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.status-conn[data-v-7b6c88b6]{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:#c4b5fd;border:1px solid #8b6ff0;font-weight:600;letter-spacing:.4px;font-size:12px;box-shadow:inset 0 1px #ffffff8c,0 1px 3px #7c3aed26}.status-conn.success[data-v-7b6c88b6]{color:var(--mg-status-success);background:rgba(var(--mg-status-success-rgb),.32);border-color:rgba(var(--mg-status-success-rgb),.7);box-shadow:inset 0 1px #ffffff8c,0 1px 3px rgba(var(--mg-status-success-rgb),.25)}.status-conn.warning[data-v-7b6c88b6]{color:var(--mg-status-warning);background:rgba(var(--mg-status-warning-rgb),.32);border-color:rgba(var(--mg-status-warning-rgb),.7);box-shadow:inset 0 1px #ffffff8c,0 1px 3px rgba(var(--mg-status-warning-rgb),.25)}.status-conn.danger[data-v-7b6c88b6]{color:var(--mg-status-danger);background:rgba(var(--mg-status-danger-rgb),.32);border-color:rgba(var(--mg-status-danger-rgb),.7);box-shadow:inset 0 1px #ffffff8c,0 1px 3px rgba(var(--mg-status-danger-rgb),.25)}.status-divider[data-v-7b6c88b6]{width:1px;height:14px;background:#a78bfa}.status-stat[data-v-7b6c88b6]{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:999px;background:#c8b8f5;border:1px solid #9d86e6;letter-spacing:.4px;box-shadow:inset 0 1px #ffffff8c,0 1px 3px #7c3aed1f}.status-stat-label[data-v-7b6c88b6]{color:#4a3a6d;font-size:12px;font-weight:600}.status-stat-value[data-v-7b6c88b6]{color:#1f0d54;font-weight:700;font-size:14px}.status-stat-value.is-danger[data-v-7b6c88b6]{color:var(--mg-status-danger)}.status-stat-total[data-v-7b6c88b6]{font-size:12px;color:#9b8eb8;font-weight:500}.bento-grid[data-v-7b6c88b6]{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(0,auto);gap:16px}.bento[data-v-7b6c88b6]{position:relative;border-radius:14px;background:#fff;border:1px solid #e2dbf0;box-shadow:0 1px 2px #2d1b690d,0 10px 26px #6c47c81a;color:#2d1b69;transition:transform .25s cubic-bezier(.25,.8,.25,1),box-shadow .25s,border-color .25s;overflow:hidden}.bento[data-v-7b6c88b6]:hover{transform:translateY(-2px);border-color:#c4b5fd;box-shadow:0 4px 14px #2d1b691a,0 18px 40px #6c47c829}.bento[data-v-7b6c88b6] .el-card{background:transparent!important;border:none!important;box-shadow:none!important;color:inherit;height:100%}.bento[data-v-7b6c88b6] .el-card__header{background:transparent!important;border-bottom:1px solid #f0eaf6!important;padding:14px 18px}.bento[data-v-7b6c88b6] .el-card__body{padding:16px 18px}.card-head[data-v-7b6c88b6]{display:flex;align-items:center;justify-content:space-between}.card-title[data-v-7b6c88b6]{display:inline-flex;align-items:center;gap:8px;color:#2d1b69;font-size:14px;font-weight:600;letter-spacing:.4px}.card-title .el-icon[data-v-7b6c88b6]{color:#7c3aed}.card-tip[data-v-7b6c88b6]{font-size:12px;color:#6b5b8e;letter-spacing:.3px;font-weight:500}.more-link[data-v-7b6c88b6]{color:#6b5b8e!important;font-size:12.5px}.more-link[data-v-7b6c88b6]:hover{color:#7c3aed!important}.bento-kpi[data-v-7b6c88b6]{grid-column:span 2;padding:16px 18px 14px;display:flex;flex-direction:column;justify-content:space-between;min-height:116px}.kpi-accent[data-v-7b6c88b6]{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--mg-primary-hover),var(--mg-accent) 50%,transparent);opacity:.85}.kpi-accent.tone-info[data-v-7b6c88b6]{background:linear-gradient(90deg,var(--mg-status-info),rgba(var(--mg-status-info-rgb),.2) 80%,transparent)}.kpi-accent.tone-success[data-v-7b6c88b6]{background:linear-gradient(90deg,var(--mg-status-success),rgba(var(--mg-status-success-rgb),.2) 80%,transparent)}.kpi-accent.tone-warning[data-v-7b6c88b6]{background:linear-gradient(90deg,var(--mg-status-warning),rgba(var(--mg-status-warning-rgb),.2) 80%,transparent)}.kpi-accent.tone-danger[data-v-7b6c88b6]{background:linear-gradient(90deg,var(--mg-status-danger),rgba(var(--mg-status-danger-rgb),.2) 80%,transparent)}.kpi-accent.tone-idle[data-v-7b6c88b6]{background:linear-gradient(90deg,var(--mg-status-idle),rgba(var(--mg-status-idle-rgb),.2) 80%,transparent)}.kpi-body[data-v-7b6c88b6]{display:flex;flex-direction:column;gap:6px;z-index:1}.kpi-row1[data-v-7b6c88b6]{display:flex;align-items:center;gap:8px}.kpi-icon-sm[data-v-7b6c88b6]{color:var(--mg-text-muted)}.kpi-icon-sm.tone-info[data-v-7b6c88b6]{color:var(--mg-status-info)}.kpi-icon-sm.tone-success[data-v-7b6c88b6]{color:var(--mg-status-success)}.kpi-icon-sm.tone-warning[data-v-7b6c88b6]{color:var(--mg-status-warning)}.kpi-icon-sm.tone-danger[data-v-7b6c88b6]{color:var(--mg-status-danger)}.kpi-icon-sm.tone-idle[data-v-7b6c88b6]{color:var(--mg-status-idle)}.kpi-label[data-v-7b6c88b6]{font-size:12px;color:#6b5b8e;letter-spacing:.5px;font-weight:500}.kpi-row2[data-v-7b6c88b6]{display:flex;align-items:baseline;gap:8px}.kpi-value[data-v-7b6c88b6]{font-size:30px;font-weight:700;color:#1a0f3d;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:-.5px}.kpi-trend[data-v-7b6c88b6]{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:600;padding:2px 6px;border-radius:999px}.kpi-trend.trend-up[data-v-7b6c88b6]{background:rgba(var(--mg-status-success-rgb),.16);color:var(--mg-status-success)}.kpi-trend.trend-down[data-v-7b6c88b6]{background:rgba(var(--mg-status-danger-rgb),.16);color:var(--mg-status-danger)}.kpi-trend.trend-flat[data-v-7b6c88b6]{background:rgba(var(--mg-status-idle-rgb),.16);color:var(--mg-status-idle)}.kpi-trend-text[data-v-7b6c88b6]{font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums}.kpi-spark[data-v-7b6c88b6]{position:absolute;left:0;right:0;bottom:0;height:32px;width:100%;pointer-events:none;opacity:.65}.bento-trend[data-v-7b6c88b6]{grid-column:span 8;min-height:280px;display:flex;flex-direction:column}.bento-trend[data-v-7b6c88b6] .el-card{display:flex;flex-direction:column}.bento-trend[data-v-7b6c88b6] .el-card__body{flex:1;display:flex;padding:14px 18px 18px}.trend-chart[data-v-7b6c88b6]{flex:1;width:100%;height:100%;min-height:220px}.bento-agv[data-v-7b6c88b6]{grid-column:span 4;min-height:280px}.bento-agv[data-v-7b6c88b6] .el-card__body{padding:14px 16px 18px}.mock-tag[data-v-7b6c88b6]{display:inline-block;margin-left:6px;padding:1px 6px;background:#f0eaf6;color:#7c3aed;border-radius:4px;font-size:10.5px;font-weight:600;letter-spacing:.3px;vertical-align:1px}.agv-row[data-v-7b6c88b6]{display:flex;align-items:center;gap:8px;min-height:220px}.agv-chart-wrap[data-v-7b6c88b6]{position:relative;width:170px;height:200px;flex-shrink:0}.agv-chart[data-v-7b6c88b6]{width:100%;height:100%}.agv-center[data-v-7b6c88b6]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}.agv-center-value[data-v-7b6c88b6]{font-size:28px;font-weight:700;color:#1a0f3d;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:-.5px}.agv-center-label[data-v-7b6c88b6]{font-size:11px;color:#6b5b8e;font-weight:500;letter-spacing:.5px;margin-top:2px}.agv-legend[data-v-7b6c88b6]{flex:1;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.agv-legend li[data-v-7b6c88b6]{display:grid;grid-template-columns:12px 1fr auto auto;align-items:center;gap:8px;font-size:12.5px;color:#3d2b6e;padding:5px 8px;border-radius:6px;transition:background .2s}.agv-legend li[data-v-7b6c88b6]:hover{background:#f5f3ff}.agv-legend .legend-name[data-v-7b6c88b6]{color:#4a3d6e;font-weight:500}.agv-legend .legend-value[data-v-7b6c88b6]{font-weight:700;color:#1a0f3d;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;text-align:right;min-width:18px}.agv-legend .legend-pct[data-v-7b6c88b6]{font-size:11px;color:#9b8eb8;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;text-align:right;min-width:32px}.agv-legend .dot[data-v-7b6c88b6]{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 3px #0000000d}.bento-ratio[data-v-7b6c88b6]{grid-column:span 7}.ratio-track[data-v-7b6c88b6]{display:flex;width:100%;height:32px;border-radius:999px;overflow:hidden;background:#f0eaf6;border:1px solid #e8e1f0;margin-bottom:14px;box-shadow:inset 0 1px 2px #2d1b690a}.ratio-seg[data-v-7b6c88b6]{display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;letter-spacing:.4px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);cursor:default;position:relative;transition:filter .2s}.ratio-seg[data-v-7b6c88b6]:hover{filter:brightness(1.1)}.ratio-seg.tone-info[data-v-7b6c88b6]{background:linear-gradient(180deg,var(--mg-status-info),rgba(var(--mg-status-info-rgb),.92))}.ratio-seg.tone-success[data-v-7b6c88b6]{background:linear-gradient(180deg,var(--mg-status-success),rgba(var(--mg-status-success-rgb),.92))}.ratio-seg.tone-warning[data-v-7b6c88b6]{background:linear-gradient(180deg,var(--mg-status-warning),rgba(var(--mg-status-warning-rgb),.92))}.ratio-seg.tone-idle[data-v-7b6c88b6]{background:linear-gradient(180deg,var(--mg-status-idle),rgba(var(--mg-status-idle-rgb),.92))}.ratio-seg-pct[data-v-7b6c88b6]{font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums}.ratio-legend[data-v-7b6c88b6]{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 18px}.ratio-legend li[data-v-7b6c88b6]{display:flex;align-items:center;gap:8px;font-size:13px;color:#3d2b6e}.ratio-legend .dot[data-v-7b6c88b6]{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px #fffffff2}.ratio-legend .dot.tone-info[data-v-7b6c88b6]{background:var(--mg-status-info)}.ratio-legend .dot.tone-success[data-v-7b6c88b6]{background:var(--mg-status-success)}.ratio-legend .dot.tone-warning[data-v-7b6c88b6]{background:var(--mg-status-warning)}.ratio-legend .dot.tone-idle[data-v-7b6c88b6]{background:var(--mg-status-idle)}.ratio-legend .legend-name[data-v-7b6c88b6]{flex:1;color:#6b5b8e;font-weight:500}.ratio-legend .legend-value[data-v-7b6c88b6]{font-weight:700;color:#1a0f3d;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums}.bento-todo[data-v-7b6c88b6]{grid-column:span 5}.bento-todo[data-v-7b6c88b6] .el-card__body{padding-top:8px}.todo-tabs[data-v-7b6c88b6] .el-tabs__header{margin-bottom:8px}.todo-tabs[data-v-7b6c88b6] .el-tabs__nav-wrap:after{display:none}.todo-tabs[data-v-7b6c88b6] .el-tabs__item{color:#6b5b8e!important;font-weight:500}.todo-tabs[data-v-7b6c88b6] .el-tabs__item:hover{color:#7c3aed!important}.todo-tabs[data-v-7b6c88b6] .el-tabs__item.is-active{color:#7c3aed!important;font-weight:700}.todo-tabs[data-v-7b6c88b6] .el-tabs__active-bar{background-color:#7c3aed!important;height:3px!important;border-radius:2px}.tab-label[data-v-7b6c88b6]{display:inline-flex;align-items:center;gap:6px;font-size:13px}.tab-count[data-v-7b6c88b6]{display:inline-flex;align-items:center;justify-content:center;font-style:normal;min-width:20px;height:18px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:700;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums}.tab-count.danger[data-v-7b6c88b6]{background:rgba(var(--mg-status-danger-rgb),.18);color:var(--mg-status-danger);border:1px solid rgba(var(--mg-status-danger-rgb),.4)}.tab-count.warning[data-v-7b6c88b6]{background:rgba(var(--mg-status-warning-rgb),.18);color:var(--mg-status-warning);border:1px solid rgba(var(--mg-status-warning-rgb),.4)}.tab-count.info[data-v-7b6c88b6]{background:rgba(var(--mg-status-info-rgb),.18);color:var(--mg-status-info);border:1px solid rgba(var(--mg-status-info-rgb),.4)}.tab-count.success[data-v-7b6c88b6]{background:rgba(var(--mg-status-success-rgb),.18);color:var(--mg-status-success);border:1px solid rgba(var(--mg-status-success-rgb),.4)}.empty-pane[data-v-7b6c88b6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 0 12px;color:#6b5b8e;font-size:13px}.empty-pane p[data-v-7b6c88b6]{margin:6px 0 0;font-weight:500}.todo-list[data-v-7b6c88b6]{list-style:none;padding:0 4px 0 0;margin:0;display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}.todo-list li[data-v-7b6c88b6]{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;padding:10px 12px;background:#faf7fd;border:1px solid #f0eaf6;border-radius:10px;font-size:13px;color:#2d1b69;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}.todo-list li[data-v-7b6c88b6]:hover{background:#f5f3ff;border-color:#c4b5fd;transform:translate(2px);box-shadow:0 2px 6px #7c3aed14}.todo-text[data-v-7b6c88b6]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.todo-pill[data-v-7b6c88b6]{text-align:center;font-size:11px;padding:3px 8px;border-radius:999px;letter-spacing:.4px;font-weight:700}.todo-pill.danger[data-v-7b6c88b6]{background:rgba(var(--mg-status-danger-rgb),.1);color:var(--mg-status-danger);border:1px solid rgba(var(--mg-status-danger-rgb),.32)}.todo-pill.warning[data-v-7b6c88b6]{background:rgba(var(--mg-status-warning-rgb),.1);color:var(--mg-status-warning);border:1px solid rgba(var(--mg-status-warning-rgb),.32)}.todo-pill.info[data-v-7b6c88b6]{background:rgba(var(--mg-status-info-rgb),.1);color:var(--mg-status-info);border:1px solid rgba(var(--mg-status-info-rgb),.32)}.todo-pill.success[data-v-7b6c88b6]{background:rgba(var(--mg-status-success-rgb),.1);color:var(--mg-status-success);border:1px solid rgba(var(--mg-status-success-rgb),.32)}.todo-time[data-v-7b6c88b6]{color:#9b8eb8;font-size:11.5px;font-family:var(--mg-font-mono);font-variant-numeric:tabular-nums;font-weight:500}@media (max-width: 1440px){.bento-kpi[data-v-7b6c88b6]{grid-column:span 3}.bento-trend[data-v-7b6c88b6]{grid-column:span 8}.bento-agv[data-v-7b6c88b6]{grid-column:span 4}.bento-ratio[data-v-7b6c88b6]{grid-column:span 7}.bento-todo[data-v-7b6c88b6]{grid-column:span 5}}@media (max-width: 1280px){.hero-banner[data-v-7b6c88b6]{grid-template-columns:1fr 380px}.hero-right[data-v-7b6c88b6]{min-height:240px}.bento-kpi[data-v-7b6c88b6]{grid-column:span 4}.bento-trend[data-v-7b6c88b6]{grid-column:span 12}.bento-agv[data-v-7b6c88b6],.bento-ratio[data-v-7b6c88b6]{grid-column:span 6}.bento-todo[data-v-7b6c88b6]{grid-column:span 12}}@media (max-width: 1024px){.status-bar[data-v-7b6c88b6]{flex-wrap:wrap}.hero-banner[data-v-7b6c88b6]{grid-template-columns:1fr}.hero-right[data-v-7b6c88b6]{display:none}.bento-kpi[data-v-7b6c88b6]{grid-column:span 6}.bento-agv[data-v-7b6c88b6],.bento-ratio[data-v-7b6c88b6]{grid-column:span 12}}@media (max-width: 720px){.quick-grid[data-v-7b6c88b6]{grid-template-columns:repeat(2,1fr)}.bento-kpi[data-v-7b6c88b6]{grid-column:span 12}.agv-row[data-v-7b6c88b6]{flex-direction:column;align-items:stretch}.agv-chart[data-v-7b6c88b6]{width:100%;height:220px}}:root[data-theme=industrial-purple] .status-bar[data-v-7b6c88b6]{background:linear-gradient(135deg,#26184ef0,#140c30f7);border-color:rgba(var(--mg-accent-rgb),.38);border-left-color:var(--mg-accent);box-shadow:0 4px 16px #00000061,0 0 0 1px #ffffff0f inset,0 1px #ffffff14 inset;backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);color:#f4eeff}:root[data-theme=industrial-purple] .status-conn[data-v-7b6c88b6]{background:rgba(var(--mg-primary-hover-rgb),.42);border-color:rgba(var(--mg-accent-rgb),.45);color:#f4eeff;box-shadow:inset 0 1px #ffffff1a,0 1px 4px #00000047}:root[data-theme=industrial-purple] .status-conn.success[data-v-7b6c88b6]{color:#86efac;background:rgba(var(--mg-status-success-rgb),.28);border-color:rgba(var(--mg-status-success-rgb),.58);box-shadow:inset 0 1px #ffffff1f,0 1px 4px rgba(var(--mg-status-success-rgb),.3)}:root[data-theme=industrial-purple] .status-conn.warning[data-v-7b6c88b6]{color:#fcd34d;background:rgba(var(--mg-status-warning-rgb),.28);border-color:rgba(var(--mg-status-warning-rgb),.58)}:root[data-theme=industrial-purple] .status-conn.danger[data-v-7b6c88b6]{color:#fca5a5;background:rgba(var(--mg-status-danger-rgb),.28);border-color:rgba(var(--mg-status-danger-rgb),.58)}:root[data-theme=industrial-purple] .status-stat[data-v-7b6c88b6]{background:rgba(var(--mg-primary-hover-rgb),.35);border-color:rgba(var(--mg-accent-rgb),.38);box-shadow:inset 0 1px #ffffff14,0 1px 3px #00000038}:root[data-theme=industrial-purple] .status-divider[data-v-7b6c88b6]{background:rgba(var(--mg-accent-rgb),.48)}:root[data-theme=industrial-purple] .status-stat-label[data-v-7b6c88b6]{color:#ffffffd1}:root[data-theme=industrial-purple] .status-stat-value[data-v-7b6c88b6]{color:#fff}:root[data-theme=industrial-purple] .status-stat-total[data-v-7b6c88b6]{color:#ffffff9e}:root[data-theme=industrial-purple] .status-stat-value.is-danger[data-v-7b6c88b6]{color:#fca5a5}:root[data-theme=industrial-purple] .bento[data-v-7b6c88b6]{background:linear-gradient(135deg,#26184ec7,#140c30db);border-color:rgba(var(--mg-accent-rgb),.16);box-shadow:0 10px 28px #00000073,0 0 22px rgba(var(--mg-primary-rgb),.16),0 0 0 1px #ffffff0a inset,0 1px #ffffff1f inset;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);color:#fff}:root[data-theme=industrial-purple] .bento[data-v-7b6c88b6]:hover{border-color:rgba(var(--mg-accent-rgb),.45);box-shadow:0 18px 40px #0000008c,0 0 38px rgba(var(--mg-primary-hover-rgb),.32),0 0 0 1px rgba(var(--mg-accent-rgb),.25) inset,0 1px #ffffff2e inset}:root[data-theme=industrial-purple] .bento[data-v-7b6c88b6] .el-card__header{border-bottom-color:rgba(var(--mg-accent-rgb),.14)!important}:root[data-theme=industrial-purple] .card-title[data-v-7b6c88b6]{color:#fff}:root[data-theme=industrial-purple] .card-title .el-icon[data-v-7b6c88b6]{color:var(--mg-accent)}:root[data-theme=industrial-purple] .card-tip[data-v-7b6c88b6]{color:#ffffffb3}:root[data-theme=industrial-purple] .more-link[data-v-7b6c88b6]{color:#ffffffb3!important}:root[data-theme=industrial-purple] .more-link[data-v-7b6c88b6]:hover{color:var(--mg-accent)!important}:root[data-theme=industrial-purple] .kpi-label[data-v-7b6c88b6]{color:#ffffffb8}:root[data-theme=industrial-purple] .kpi-value[data-v-7b6c88b6]{color:#fff;text-shadow:0 0 18px rgba(var(--mg-primary-hover-rgb),.35)}:root[data-theme=industrial-purple] .agv-center-value[data-v-7b6c88b6]{color:#fff;text-shadow:0 0 18px rgba(var(--mg-primary-hover-rgb),.45)}:root[data-theme=industrial-purple] .agv-center-label[data-v-7b6c88b6]{color:#ffffffb8}:root[data-theme=industrial-purple] .agv-legend li[data-v-7b6c88b6]{color:#f4eeff}:root[data-theme=industrial-purple] .agv-legend li[data-v-7b6c88b6]:hover{background:rgba(var(--mg-accent-rgb),.1)}:root[data-theme=industrial-purple] .agv-legend .legend-name[data-v-7b6c88b6]{color:#ffffffc7}:root[data-theme=industrial-purple] .agv-legend .legend-value[data-v-7b6c88b6]{color:#fff}:root[data-theme=industrial-purple] .agv-legend .legend-pct[data-v-7b6c88b6]{color:#ffffff8c}:root[data-theme=industrial-purple] .agv-legend .dot[data-v-7b6c88b6]{box-shadow:0 0 8px currentColor}:root[data-theme=industrial-purple] .mock-tag[data-v-7b6c88b6]{background:rgba(var(--mg-accent-rgb),.18);color:var(--mg-accent)}:root[data-theme=industrial-purple] .ratio-track[data-v-7b6c88b6]{background:#ffffff0a;border-color:#ffffff14}:root[data-theme=industrial-purple] .ratio-legend li[data-v-7b6c88b6]{color:#f4eeff}:root[data-theme=industrial-purple] .ratio-legend .legend-name[data-v-7b6c88b6]{color:#ffffffb8}:root[data-theme=industrial-purple] .ratio-legend .legend-value[data-v-7b6c88b6]{color:#fff}:root[data-theme=industrial-purple] .ratio-legend .dot[data-v-7b6c88b6]{box-shadow:0 0 8px currentColor}:root[data-theme=industrial-purple] .todo-tabs[data-v-7b6c88b6] .el-tabs__item{color:#ffffffa6!important}:root[data-theme=industrial-purple] .todo-tabs[data-v-7b6c88b6] .el-tabs__item:hover,:root[data-theme=industrial-purple] .todo-tabs[data-v-7b6c88b6] .el-tabs__item.is-active{color:#fff!important}:root[data-theme=industrial-purple] .todo-tabs[data-v-7b6c88b6] .el-tabs__active-bar{background-color:var(--mg-accent)!important}:root[data-theme=industrial-purple] .empty-pane[data-v-7b6c88b6]{color:#ffffffb3}:root[data-theme=industrial-purple] .todo-list li[data-v-7b6c88b6]{background:#ffffff08;border-color:#ffffff0f;color:#f4eeff}:root[data-theme=industrial-purple] .todo-list li[data-v-7b6c88b6]:hover{background:rgba(var(--mg-accent-rgb),.08);border-color:rgba(var(--mg-accent-rgb),.3)}:root[data-theme=industrial-purple] .todo-time[data-v-7b6c88b6]{color:#ffffff8c} diff --git a/MiGu.Server/wwwroot/assets/DashboardView-C5o_Ttf4.js b/MiGu.Server/wwwroot/assets/DashboardView-C5o_Ttf4.js deleted file mode 100644 index 32c5e48..0000000 --- a/MiGu.Server/wwwroot/assets/DashboardView-C5o_Ttf4.js +++ /dev/null @@ -1,60 +0,0 @@ -import{aI as iL,bh as yr,b7 as oL,b2 as sL,b8 as lL,aE as Kt,aB as $,b3 as mr,bq as Wt,aG as Da,ai as Ma,bj as La,aF as pm,aH as me,bJ as fe,ax as _e,t as uL,bx as fL,b9 as $t,b4 as Yh,aC as $h,bm as gm,Q as hL,bt as Vl,bs as vL,bC as ym,aD as mm,bb as cL,ac as dL,a9 as pL,ap as gL,T as yL,bo as mL,ba as Xh,ao as _L,br as SL,bH as xL,aY as bL,bc as wL,X as TL,aA as AL,az as CL,aq as DL,aX as ML,ak as LL}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css */import{b as IL,c as PL,l as RL,a as EL}from"./projection-BMms551H.js";import"./reflection-B_glb6eT.js";/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var yd=function(r,e){return yd=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,a){t.__proto__=a}||function(t,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])},yd(r,e)};function k(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");yd(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var kL=function(){function r(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return r}(),OL=function(){function r(){this.browser=new kL,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<"u"}return r}(),xt=new OL;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(xt.wxa=!0,xt.touchEventsSupported=!0):typeof document>"u"&&typeof self<"u"?xt.worker=!0:!xt.hasGlobalWindow||"Deno"in window?(xt.node=!0,xt.svgSupported=!0):NL(navigator.userAgent,xt);function NL(r,e){var t=e.browser,a=r.match(/Firefox\/([\d.]+)/),n=r.match(/MSIE\s([\d.]+)/)||r.match(/Trident\/.+?rv:(([\d.]+))/),i=r.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(r);a&&(t.firefox=!0,t.version=a[1]),n&&(t.ie=!0,t.version=n[1]),i&&(t.edge=!0,t.version=i[1],t.newEdge=+i[1].split(".")[0]>18),o&&(t.weChat=!0),e.svgSupported=typeof SVGRect<"u",e.touchEventsSupported="ontouchstart"in window&&!t.ie&&!t.edge,e.pointerEventsSupported="onpointerdown"in window&&(t.edge||t.ie&&+t.version>=11),e.domSupported=typeof document<"u";var s=document.documentElement.style;e.transform3dSupported=(t.ie&&"transition"in s||t.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||t.ie&&+t.version>=9}var og=12,Tw="sans-serif",rn=og+"px "+Tw,BL=20,VL=100,zL="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function GL(r){var e={};if(typeof JSON>"u")return e;for(var t=0;td&&(d=m,c=f+g)}var _=this.getRawIndex(h),S=this.getRawIndex(c);h 0?t:1:t))}var i5=function(r,e,t,a){for(;t>>1;r[n][1]S&&(S=_),S!==c&&(y.width=S,h-=S+f*S,v--)}}),c=(h-u)/(v+(v-1)*f),c=Math.max(c,0);var d=0,p;D(i,function(y,m){y.width||(y.width=c),p=y,d+=y.width*(1+f)}),p&&(d-=p.width*f);var g=-d/2;D(i,function(y,m){t[n][m]=t[n][m]||{bandWidth:o,offset:g,width:y.width},g+=y.width*(1+f)})}),t}function a5(r,e,t){if(r&&e){var a=r[ay(e)];return a}}function VC(r,e){var t=OC(r,e),a=NC(t);D(t,function(n){var i=n.getData(),o=n.coordinateSystem,s=o.getBaseAxis(),l=kC(n),u=a[ay(s)][l],f=u.offset,h=u.width;i.setLayout({bandWidth:u.bandWidth,offset:f,size:h})})}function zC(r){return{seriesType:r,plan:Eo(),reset:function(e){if(GC(e)){var t=e.getData(),a=e.coordinateSystem,n=a.getBaseAxis(),i=a.getOtherAxis(n),o=t.getDimensionIndex(t.mapDimension(i.dim)),s=t.getDimensionIndex(t.mapDimension(n.dim)),l=e.get("showBackground",!0),u=t.mapDimension(i.dim),f=t.getCalculationInfo("stackResultDimension"),h=ln(t,u)&&!!t.getCalculationInfo("stackedOnSeries"),v=i.isHorizontal(),c=n5(n,i),d=FC(e),p=e.get("barMinHeight")||0,g=f&&t.getDimensionIndex(f),y=t.getLayout("size"),m=t.getLayout("offset");return{progress:function(_,S){for(var b=_.count,x=d&&Yr(b*3),w=d&&l&&Yr(b*3),T=d&&Yr(b),A=a.master.getRect(),C=v?A.width:A.height,M,L=S.getStore(),I=0;(M=_.next())!=null;){var P=L.get(h?g:o,M),R=L.get(s,M),E=c,N=void 0;h&&(N=+P-L.get(o,M));var O=void 0,B=void 0,G=void 0,U=void 0;if(v){var X=a.dataToPoint([P,R]);if(h){var rt=a.dataToPoint([N,R]);E=rt[0]}O=E,B=X[1]+m,G=X[0]-E,U=y,Math.abs(G)e){i?t.push(o(i,l,e)):n&&t.push(o(n,l,0),o(n,l,e));break}else n&&(t.push(o(n,l,0)),n=null),t.push(l),i=l}return t}function $B(r,e,t){var a=r.getVisual("visualMeta");if(!(!a||!a.length||!r.count())&&e.type==="cartesian2d"){for(var n,i,o=a.length-1;o>=0;o--){var s=r.getDimensionInfo(a[o].dimension);if(n=s&&s.coordDim,n==="x"||n==="y"){i=a[o];break}}if(i){var l=e.getAxis(n),u=H(i.stops,function(_){return{coord:l.toGlobalCoord(l.dataToCoord(_.value)),color:_.color}}),f=u.length,h=i.outerColors.slice();f&&u[0].coord>u[f-1].coord&&(u.reverse(),h.reverse());var v=YB(u,n==="x"?t.getWidth():t.getHeight()),c=v.length;if(!c&&f)return u[0].coord<0?h[1]?h[1]:u[f-1].color:h[0]?h[0]:u[0].color;var d=10,p=v[0].coord-d,g=v[c-1].coord+d,y=g-p;if(y<.001)return"transparent";D(v,function(_){_.offset=(_.coord-p)/y}),v.push({offset:c?v[c-1].offset:.5,color:h[1]||"transparent"}),v.unshift({offset:c?v[0].offset:.5,color:h[0]||"transparent"});var m=new bl(0,0,0,0,v,!0);return m[n]=p,m[n+"2"]=g,m}}}function XB(r,e,t){var a=r.get("showAllSymbol"),n=a==="auto";if(!(a&&!n)){var i=t.getAxesByScale("ordinal")[0];if(i&&!(n&&ZB(i,e))){var o=e.mapDimension(i.dim),s={};return D(i.getViewLabels(),function(l){var u=i.scale.getRawOrdinalNumber(l.tickValue);s[u]=1}),function(l){return!s.hasOwnProperty(e.get(o,l))}}}}function ZB(r,e){var t=r.getExtent(),a=Math.abs(t[1]-t[0])/r.scale.count();isNaN(a)&&(a=0);for(var n=e.count(),i=Math.max(1,Math.round(n/5)),o=0;o=0;i--)a[i]==null&&(delete t[e[i]],e.pop())}function wc(r,e){var t=r.visual,a=[];st(t)?ul(t,function(i){a.push(i)}):t!=null&&a.push(t);var n={color:1,symbol:1};!e&&a.length===1&&!n.hasOwnProperty(r.type)&&(a[1]=a[0]),uM(r,a)}function Cu(r){return{applyVisual:function(e,t,a){var n=this.mapValueToVisual(e);a("color",r(t("color"),n))},_normalizedToVisual:Ip([0,1])}}function kS(r){var e=this.option.visual;return e[Math.round(Rt(r,[0,1],[0,e.length-1],!0))]||{}}function ss(r){return function(e,t,a){a(r,this.mapValueToVisual(e))}}function bs(r){var e=this.option.visual;return e[this.option.loop&&r!==Hf?r%e.length:r]}function Fn(){return this.option.visual[0]}function Ip(r){return{linear:function(e){return Rt(e,r,this.option.visual,!0)},category:bs,piecewise:function(e,t){var a=Pp.call(this,t);return a==null&&(a=Rt(e,r,this.option.visual,!0)),a},fixed:Fn}}function Pp(r){var e=this.option,t=e.pieceList;if(e.hasSpecialVisual){var a=se.findPieceIndex(r,t),n=t[a];if(n&&n.visual)return n.visual[this.type]}}function uM(r,e){return r.visual=e,r.type==="color"&&(r.parsedVisual=H(e,function(t){var a=Ke(t);return a||[0,0,0,1]})),e}var KG={linear:function(r){return Rt(r,this.option.dataExtent,[0,1],!0)},piecewise:function(r){var e=this.option.pieceList,t=se.findPieceIndex(r,e,!0);if(t!=null)return Rt(t,[0,e.length-1],[0,1],!0)},category:function(r){var e=this.option.categories?this.option.categoryMap[r]:r;return e??Hf},fixed:qt};function Du(r,e,t){return r?e<=t:ea&&(a=o));var l=r.area*r.area,u=e*e*t;return l?fl(u*a/l,l/(u*n)):1/0}function BS(r,e,t,a,n){var i=e===t.width?0:1,o=1-i,s=["x","y"],l=["width","height"],u=t[s[i]],f=e?r.area/e:0;(n||f>t[l[o]])&&(f=t[l[o]]);for(var h=0,v=r.length;h