chore(web): 重新构建前端静态资源

同步 simple-platform-vue 构建产物与 index.html 入口哈希。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zhaowei.huang
2026-05-31 00:16:56 +08:00
co-authored by Cursor
parent 745ab03a84
commit be0503c535
83 changed files with 105 additions and 102 deletions
@@ -0,0 +1 @@
import{aG as S,bt as N,aA as f,bH as a,t as z,b7 as p,aF as e,N as A,bK as B,O,R as T,a3 as F,aC as M,ah as U,bh as D,Z as G,r as H,br as b,aE as d,H as I,a9 as L,aa as K,ac as R,bo as X,az as c,be as Z,bf as $,X as g}from"./index-D5OuyicD.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=F,E=H,h=A,x=I,n=K,k=L,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(h,{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,D(["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(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};
@@ -1 +0,0 @@
import{aE as S,bp as N,ay as f,bD as a,t as z,b4 as p,aD as e,N as A,bG as B,O as D,R as O,a3 as T,aA as M,ah as U,be as F,Z as G,r as I,bn as b,aC as d,H as L,a9 as H,aa as R,ac as X,bk as Z,ax as c,bb as $,bc as j,X as g}from"./index-C6ULY2Si.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 q={style:{display:"flex","align-items":"center",gap:"8px"}},pe=S({__name:"AnnotationView",setup(J){const s=N(),l=$({title:"",target:"",level:"info",content:""}),m=j([{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=X,_=O,i=D,y=G,V=T,E=I,x=A,h=L,n=R,k=H,C=z;return p(),f(C,{shadow:"never"},{header:a(()=>[c("div",q,[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(V,{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(y,{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(Z(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};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{aG as s,aA as c,bH as t,br as d,b7 as u,aF as e,N as f,O as b,a7 as h,S as C,a9 as g,aa as w,D as E}from"./index-D5OuyicD.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-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const K=s({__name:"ChargePolicyView",setup(x){return(A,T)=>{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};
@@ -1 +0,0 @@
import{aE as s,ay as c,bD as t,bn as d,b4 as u,aD as e,N as f,O as b,a7 as h,S as C,a9 as g,aa as w,D as E}from"./index-C6ULY2Si.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-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const J=s({__name:"ChargePolicyView",setup(x){return(D,T)=>{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{J as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{aE as _,ay as i,bD as e,bn as d,b4 as s,aD as a,a9 as u,aa as f,ax as n,bk as r,aA as b,ah as g,be as h,ac as w,aC as C,l as y,aj as E}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as T}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const x={class:"js-mini"},D={class:"js-mini"},k=_({__name:"CustomWidgetView",setup(B){return(S,V)=>{const t=f,p=w,m=u;return s(),i(T,{section:"widget",title:"自定义控件",description:"呼叫/展示界面可自由定义(platform-vue + rcsmonitor-vue 双渲染器)",defaults:d(y)},{default:e(({payload:c})=>[a(m,{data:c.items,size:"small",border:""},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"180"}),a(t,{label:"名称",prop:"name",width:"140"}),a(t,{label:"Schema",prop:"schemaJson"},{default:e(o=>[n("pre",x,r(o.row.schemaJson),1)]),_:1}),a(t,{label:"Layout",prop:"layoutJson"},{default:e(o=>[n("pre",D,r(o.row.layoutJson),1)]),_:1}),a(t,{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"])}}}),K=E(k,[["__scopeId","data-v-96b90481"]]);export{K as default};
@@ -0,0 +1 @@
import{aG as _,aA as i,bH as e,br as d,b7 as s,aF as t,a9 as u,aa as f,az as n,bo as r,aC as b,ah as h,bh as g,ac as w,aE as C,l as E,aj as T}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as y}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const x={class:"js-mini"},B={class:"js-mini"},S=_({__name:"CustomWidgetView",setup(V){return(k,D)=>{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",x,r(o.row.schemaJson),1)]),_:1}),t(a,{label:"Layout",prop:"layoutJson"},{default:e(o=>[n("pre",B,r(o.row.layoutJson),1)]),_:1}),t(a,{label:"绑定 Scope"},{default:e(o=>[(s(!0),b(h,null,g(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(S,[["__scopeId","data-v-96b90481"]]);export{M as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{aE as b,ay as u,bD as a,bn as f,b4 as h,aD as e,ab as w,a8 as v,a9 as D,aa as E,a7 as C,C as P,F as T,aC as i,bk as r,a as V}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as g}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const R=b({__name:"DeviceHubView",setup(x){return(y,I)=>{const l=E,s=D,n=v,d=C,o=T,m=P,c=w;return h(),u(g,{section:"device",title:"第三方设备统一接入",description:"电梯/卷帘门/安全门/充电桩/AP/交换机/摄像头/读码器/PLCDeviceManagementConfig",defaults:f(V)},{default:a(({payload:t})=>[e(c,{"model-value":"drivers"},{default:a(()=>[e(n,{name:"drivers",label:"驱动绑定"},{default:a(()=>[e(s,{data:t.drivers,size:"small",border:""},{default:a(()=>[e(l,{label:"ID",prop:"id",width:"120"}),e(l,{label:"设备类型",prop:"deviceType",width:"120"}),e(l,{label:"驱动名",prop:"driverName"}),e(l,{label:"版本",prop:"version",width:"100"})]),_:1},8,["data"])]),_:2},1024),e(n,{name:"devices",label:"设备实例"},{default:a(()=>[e(s,{data:t.devices,size:"small",border:""},{default:a(()=>[e(l,{label:"ID",prop:"id",width:"120"}),e(l,{label:"名称",prop:"name",width:"140"}),e(l,{label:"类型",prop:"deviceType",width:"100"}),e(l,{label:"协议",prop:"protocol",width:"120"}),e(l,{label:"地址",prop:"address"}),e(l,{label:"启用",width:"80"},{default:a(p=>[e(d,{modelValue:p.row.enabled,"onUpdate:modelValue":_=>p.row.enabled=_},null,8,["modelValue","onUpdate:modelValue"])]),_:1})]),_:1},8,["data"])]),_:2},1024),e(n,{name:"policy",label:"健康 / 告警"},{default:a(()=>[e(m,{column:2,border:""},{default:a(()=>[e(o,{label:"心跳周期 (s)"},{default:a(()=>[i(r(t.healthPolicy.heartbeatSec),1)]),_:2},1024),e(o,{label:"离线判定 (s)"},{default:a(()=>[i(r(t.healthPolicy.offlineSec),1)]),_:2},1024),e(o,{label:"告警启用"},{default:a(()=>[i(r(t.alarmPolicy.enabled?"是":"否"),1)]),_:2},1024),e(o,{label:"规则数"},{default:a(()=>[i(r(t.alarmPolicy.rules.length),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{R as default};
@@ -0,0 +1 @@
import{aG as b,aA as u,bH as a,br as f,b7 as h,aF as e,ab as w,a8 as v,a9 as E,aa as C,a7 as D,C as P,F as T,aE as i,bo as r,a as V}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as g}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const W=b({__name:"DeviceHubView",setup(x){return(I,S)=>{const l=C,s=E,n=v,d=D,o=T,m=P,c=w;return h(),u(g,{section:"device",title:"第三方设备统一接入",description:"电梯/卷帘门/安全门/充电桩/AP/交换机/摄像头/读码器/PLCDeviceManagementConfig",defaults:f(V)},{default:a(({payload:t})=>[e(c,{"model-value":"drivers"},{default:a(()=>[e(n,{name:"drivers",label:"驱动绑定"},{default:a(()=>[e(s,{data:t.drivers,size:"small",border:""},{default:a(()=>[e(l,{label:"ID",prop:"id",width:"120"}),e(l,{label:"设备类型",prop:"deviceType",width:"120"}),e(l,{label:"驱动名",prop:"driverName"}),e(l,{label:"版本",prop:"version",width:"100"})]),_:1},8,["data"])]),_:2},1024),e(n,{name:"devices",label:"设备实例"},{default:a(()=>[e(s,{data:t.devices,size:"small",border:""},{default:a(()=>[e(l,{label:"ID",prop:"id",width:"120"}),e(l,{label:"名称",prop:"name",width:"140"}),e(l,{label:"类型",prop:"deviceType",width:"100"}),e(l,{label:"协议",prop:"protocol",width:"120"}),e(l,{label:"地址",prop:"address"}),e(l,{label:"启用",width:"80"},{default:a(p=>[e(d,{modelValue:p.row.enabled,"onUpdate:modelValue":_=>p.row.enabled=_},null,8,["modelValue","onUpdate:modelValue"])]),_:1})]),_:1},8,["data"])]),_:2},1024),e(n,{name:"policy",label:"健康 / 告警"},{default:a(()=>[e(m,{column:2,border:""},{default:a(()=>[e(o,{label:"心跳周期 (s)"},{default:a(()=>[i(r(t.healthPolicy.heartbeatSec),1)]),_:2},1024),e(o,{label:"离线判定 (s)"},{default:a(()=>[i(r(t.healthPolicy.offlineSec),1)]),_:2},1024),e(o,{label:"告警启用"},{default:a(()=>[i(r(t.alarmPolicy.enabled?"是":"否"),1)]),_:2},1024),e(o,{label:"规则数"},{default:a(()=>[i(r(t.alarmPolicy.rules.length),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{W as default};
@@ -1 +0,0 @@
import{aE as U,ay as x,bD as a,bn as c,b4 as b,aD as t,ab as g,aA as h,ah as T,be as D,a8 as I,a9 as S,aa as B,R as $,a7 as v,r as N,aC as f,b7 as R,bk as z,c as A}from"./index-C6ULY2Si.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 L}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const ae=U({__name:"ExternalIntegrationView",setup(F){function w(r,s,l){const o=`${l}-${Date.now()}`,u={...r,[l]:[...r[l],{id:o,name:"新端点",url:"http://",enabled:!1}]};s(u)}function V(r,s,l,o){const u={...r,[l]:r[l].filter((i,d)=>d!==o)};s(u)}return(r,s)=>{const l=$,o=B,u=v,i=N,d=S,E=I,C=g;return b(),x(L,{section:"integrations",title:"外部系统对接",description:"MES / WMS / RCS 等标准接口配置(ExternalIntegrations",defaults:c(A)},{default:a(({payload:p,update:_})=>[t(C,{"model-value":"mes"},{default:a(()=>[(b(),h(T,null,D(["mes","wms","rcs"],m=>t(E,{key:m,name:m,label:m.toUpperCase()},{default:a(()=>[t(d,{data:p[m],size:"small",border:""},{default:a(()=>[t(o,{label:"ID",width:"120"},{default:a(e=>[t(l,{modelValue:e.row.id,"onUpdate:modelValue":n=>e.row.id=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"名称","min-width":"160"},{default:a(e=>[t(l,{modelValue:e.row.name,"onUpdate:modelValue":n=>e.row.name=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"URL","min-width":"260"},{default:a(e=>[t(l,{modelValue:e.row.url,"onUpdate:modelValue":n=>e.row.url=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"启用",width:"80"},{default:a(e=>[t(u,{modelValue:e.row.enabled,"onUpdate:modelValue":n=>e.row.enabled=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"操作",width:"80"},{default:a(e=>[t(i,{text:"",type:"danger",size:"small",onClick:n=>V(p,_,m,e.$index)},{default:a(()=>[...s[0]||(s[0]=[f("删除",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1032,["data"]),t(i,{size:"small",icon:c(R),style:{"margin-top":"8px"},onClick:e=>w(p,_,m)},{default:a(()=>[f("新增 "+z(m.toUpperCase())+" 端点",1)]),_:2},1032,["icon","onClick"])]),_:2},1032,["name","label"])),64))]),_:2},1024)]),_:1},8,["defaults"])}}});export{ae as default};
@@ -0,0 +1 @@
import{aG as U,aA as x,bH as a,br as c,b7 as b,aF as t,ab as h,aC as g,ah as T,bh as I,a8 as S,a9 as B,aa as $,R as v,a7 as D,r as N,aE as f,ba as R,bo as z,c as A}from"./index-D5OuyicD.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 F}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const le=U({__name:"ExternalIntegrationView",setup(L){function w(r,s,l){const o=`${l}-${Date.now()}`,i={...r,[l]:[...r[l],{id:o,name:"新端点",url:"http://",enabled:!1}]};s(i)}function V(r,s,l,o){const i={...r,[l]:r[l].filter((u,d)=>d!==o)};s(i)}return(r,s)=>{const l=v,o=$,i=D,u=N,d=B,E=S,C=h;return b(),x(F,{section:"integrations",title:"外部系统对接",description:"MES / WMS / RCS 等标准接口配置(ExternalIntegrations",defaults:c(A)},{default:a(({payload:p,update:_})=>[t(C,{"model-value":"mes"},{default:a(()=>[(b(),g(T,null,I(["mes","wms","rcs"],m=>t(E,{key:m,name:m,label:m.toUpperCase()},{default:a(()=>[t(d,{data:p[m],size:"small",border:""},{default:a(()=>[t(o,{label:"ID",width:"120"},{default:a(e=>[t(l,{modelValue:e.row.id,"onUpdate:modelValue":n=>e.row.id=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"名称","min-width":"160"},{default:a(e=>[t(l,{modelValue:e.row.name,"onUpdate:modelValue":n=>e.row.name=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"URL","min-width":"260"},{default:a(e=>[t(l,{modelValue:e.row.url,"onUpdate:modelValue":n=>e.row.url=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"启用",width:"80"},{default:a(e=>[t(i,{modelValue:e.row.enabled,"onUpdate:modelValue":n=>e.row.enabled=n},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(o,{label:"操作",width:"80"},{default:a(e=>[t(u,{text:"",type:"danger",size:"small",onClick:n=>V(p,_,m,e.$index)},{default:a(()=>[...s[0]||(s[0]=[f("删除",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1032,["data"]),t(u,{size:"small",icon:c(R),style:{"margin-top":"8px"},onClick:e=>w(p,_,m)},{default:a(()=>[f("新增 "+z(m.toUpperCase())+" 端点",1)]),_:2},1032,["icon","onClick"])]),_:2},1032,["name","label"])),64))]),_:2},1024)]),_:1},8,["defaults"])}}});export{le as default};
@@ -1 +0,0 @@
import{aE as f,ay as c,bD as t,bn as h,b4 as _,aD as e,ab as g,a8 as T,a9 as E,aa as k,aA as w,ah as D,be as C,ac as F,aC as l,bk as o,C as x,F as L,b as B}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as O}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const Y=f({__name:"FleetLifecycleView",setup(A){return(z,I)=>{const n=k,p=F,b=E,s=T,r=L,i=x,d=g;return _(),c(O,{section:"fleet",title:"车队全生命周期",description:"分区域/跨楼层/多车协作;OTA、批量操作、网络诊断(FleetLifecycleConfig",defaults:h(B)},{default:t(({payload:a})=>[e(d,{"model-value":"groups"},{default:t(()=>[e(s,{name:"groups",label:"车队分组"},{default:t(()=>[e(b,{data:a.groups,size:"small",border:""},{default:t(()=>[e(n,{label:"ID",prop:"id",width:"100"}),e(n,{label:"名称",prop:"name",width:"140"}),e(n,{label:"楼层",prop:"floor",width:"80"}),e(n,{label:"区域",prop:"region",width:"80"}),e(n,{label:"车辆"},{default:t(u=>[(_(!0),w(D,null,C(u.row.carIds,m=>(_(),c(p,{key:m,size:"small",style:{margin:"2px"}},{default:t(()=>[l(o(m),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["data"])]),_:2},1024),e(s,{name:"ota",label:"OTA 升级"},{default:t(()=>[e(i,{column:2,border:""},{default:t(()=>[e(r,{label:"启用"},{default:t(()=>[l(o(a.ota.enabled?"是":"否"),1)]),_:2},1024),e(r,{label:"批次大小"},{default:t(()=>[l(o(a.ota.batchSize),1)]),_:2},1024),e(r,{label:"失败回滚"},{default:t(()=>[l(o(a.ota.rollbackOnFail?"是":"否"),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),e(s,{name:"batch",label:"批量操作"},{default:t(()=>[e(i,{column:2,border:""},{default:t(()=>[e(r,{label:"需确认"},{default:t(()=>[l(o(a.batchOps.confirmationRequired?"是":"否"),1)]),_:2},1024),e(r,{label:"最大批量"},{default:t(()=>[l(o(a.batchOps.maxBatch),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),e(s,{name:"diag",label:"网络诊断"},{default:t(()=>[e(i,{column:2,border:""},{default:t(()=>[e(r,{label:"RTT 阈值 (ms)"},{default:t(()=>[l(o(a.networkDiag.rttThresholdMs),1)]),_:2},1024),e(r,{label:"丢包阈值"},{default:t(()=>[l(o(a.networkDiag.packetLossThreshold),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{Y as default};
@@ -0,0 +1 @@
import{aG as f,aA as c,bH as t,br as h,b7 as _,aF as e,ab as g,a8 as T,a9 as E,aa as w,aC as k,ah as C,bh as F,ac as D,aE as l,bo as o,C as x,F as L,b as B}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as O}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const Z=f({__name:"FleetLifecycleView",setup(A){return(z,I)=>{const s=w,p=D,b=E,n=T,r=L,i=x,d=g;return _(),c(O,{section:"fleet",title:"车队全生命周期",description:"分区域/跨楼层/多车协作;OTA、批量操作、网络诊断(FleetLifecycleConfig",defaults:h(B)},{default:t(({payload:a})=>[e(d,{"model-value":"groups"},{default:t(()=>[e(n,{name:"groups",label:"车队分组"},{default:t(()=>[e(b,{data:a.groups,size:"small",border:""},{default:t(()=>[e(s,{label:"ID",prop:"id",width:"100"}),e(s,{label:"名称",prop:"name",width:"140"}),e(s,{label:"楼层",prop:"floor",width:"80"}),e(s,{label:"区域",prop:"region",width:"80"}),e(s,{label:"车辆"},{default:t(u=>[(_(!0),k(C,null,F(u.row.carIds,m=>(_(),c(p,{key:m,size:"small",style:{margin:"2px"}},{default:t(()=>[l(o(m),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["data"])]),_:2},1024),e(n,{name:"ota",label:"OTA 升级"},{default:t(()=>[e(i,{column:2,border:""},{default:t(()=>[e(r,{label:"启用"},{default:t(()=>[l(o(a.ota.enabled?"是":"否"),1)]),_:2},1024),e(r,{label:"批次大小"},{default:t(()=>[l(o(a.ota.batchSize),1)]),_:2},1024),e(r,{label:"失败回滚"},{default:t(()=>[l(o(a.ota.rollbackOnFail?"是":"否"),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),e(n,{name:"batch",label:"批量操作"},{default:t(()=>[e(i,{column:2,border:""},{default:t(()=>[e(r,{label:"需确认"},{default:t(()=>[l(o(a.batchOps.confirmationRequired?"是":"否"),1)]),_:2},1024),e(r,{label:"最大批量"},{default:t(()=>[l(o(a.batchOps.maxBatch),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),e(n,{name:"diag",label:"网络诊断"},{default:t(()=>[e(i,{column:2,border:""},{default:t(()=>[e(r,{label:"RTT 阈值 (ms)"},{default:t(()=>[l(o(a.networkDiag.rttThresholdMs),1)]),_:2},1024),e(r,{label:"丢包阈值"},{default:t(()=>[l(o(a.networkDiag.packetLossThreshold),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{Z as default};
@@ -0,0 +1 @@
import{aG as s,aA as m,bH as t,br as c,b7 as d,aF as e,ab as _,a8 as b,a9 as u,aa as f,_ as w,d as h}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import{C as g}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const H=s({__name:"LocationView",setup(T){return(C,E)=>{const a=f,i=w,o=u,l=b,n=_;return d(),m(g,{section:"location",title:"库位管理",description:"出入库、库存、库位可视化(LocationManagement",defaults:c(h)},{default:t(({payload:r})=>[e(n,{"model-value":"locs"},{default:t(()=>[e(l,{name:"locs",label:"库位"},{default:t(()=>[e(o,{data:r.locations,size:"small",border:""},{default:t(()=>[e(a,{label:"ID",prop:"id",width:"100"}),e(a,{label:"编码",prop:"code",width:"120"}),e(a,{label:"名称",prop:"name"}),e(a,{label:"站点",prop:"siteId",width:"100"}),e(a,{label:"容量",prop:"capacity",width:"100"}),e(a,{label:"占用"},{default:t(p=>[e(i,{percentage:Math.round(p.row.occupied/p.row.capacity*100),"stroke-width":10},null,8,["percentage"])]),_:1})]),_:1},8,["data"])]),_:2},1024),e(l,{name:"rules",label:"库存规则"},{default:t(()=>[e(o,{data:r.inventoryRules,size:"small",border:""},{default:t(()=>[e(a,{label:"ID",prop:"id",width:"100"}),e(a,{label:"物料类型",prop:"itemType"}),e(a,{label:"下限",prop:"minQty",width:"100"}),e(a,{label:"上限",prop:"maxQty",width:"100"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{H as default};
@@ -1 +0,0 @@
import{aE as s,ay as m,bD as t,bn as c,b4 as d,aD as e,ab as _,a8 as b,a9 as u,aa as f,_ as w,d as h}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import{C as g}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const R=s({__name:"LocationView",setup(E){return(T,y)=>{const a=f,i=w,o=u,l=b,n=_;return d(),m(g,{section:"location",title:"库位管理",description:"出入库、库存、库位可视化(LocationManagement",defaults:c(h)},{default:t(({payload:p})=>[e(n,{"model-value":"locs"},{default:t(()=>[e(l,{name:"locs",label:"库位"},{default:t(()=>[e(o,{data:p.locations,size:"small",border:""},{default:t(()=>[e(a,{label:"ID",prop:"id",width:"100"}),e(a,{label:"编码",prop:"code",width:"120"}),e(a,{label:"名称",prop:"name"}),e(a,{label:"站点",prop:"siteId",width:"100"}),e(a,{label:"容量",prop:"capacity",width:"100"}),e(a,{label:"占用"},{default:t(r=>[e(i,{percentage:Math.round(r.row.occupied/r.row.capacity*100),"stroke-width":10},null,8,["percentage"])]),_:1})]),_:1},8,["data"])]),_:2},1024),e(l,{name:"rules",label:"库存规则"},{default:t(()=>[e(o,{data:p.inventoryRules,size:"small",border:""},{default:t(()=>[e(a,{label:"ID",prop:"id",width:"100"}),e(a,{label:"物料类型",prop:"itemType"}),e(a,{label:"下限",prop:"minQty",width:"100"}),e(a,{label:"上限",prop:"maxQty",width:"100"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{R as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{R as o}from"./ReflectionManagerPanel-BCWRRPd3.js";import{aE as i,aA as t,aD as r,b4 as p,aj as e}from"./index-C6ULY2Si.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 *//* empty css */import"./reflection-CKXyOCM_.js";import"./useMapEditStream-CS7BmW9Q.js";import"./useProjectionStream-BoSdoSNC.js";const m={class:"mission-page"},s=i({__name:"MissionEditorView",setup(a){return(n,c)=>(p(),t("div",m,[r(o,{kind:"process","kind-label":"任务",title:"任务编排(Mission / 进程,含插件 MissionType 实例化)","empty-text":"当前没有任务;点击右上角「新建任务」从已加载的 MissionType 中选一个实例化。"})]))}}),q=e(s,[["__scopeId","data-v-40f885f1"]]);export{q as default}; import{R as o}from"./ReflectionManagerPanel-Hhb-p5RK.js";import{aG as i,aC as t,aF as r,b7 as p,aj as e}from"./index-D5OuyicD.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 *//* empty css */import"./reflection-BmVSriDn.js";import"./useMapEditStream-DunazsxD.js";import"./useProjectionStream-DvMLcpMm.js";const m={class:"mission-page"},s=i({__name:"MissionEditorView",setup(a){return(n,c)=>(p(),t("div",m,[r(o,{kind:"process","kind-label":"任务",title:"任务编排(Mission / 进程,含插件 MissionType 实例化)","empty-text":"当前没有任务;点击右上角「新建任务」从已加载的 MissionType 中选一个实例化。"})]))}}),q=e(s,[["__scopeId","data-v-40f885f1"]]);export{q as default};
@@ -1 +1 @@
import{aE as k,b2 as D,aA as M,aD as t,bD as e,bc as p,a1 as T,b4 as V,w as z,a5 as B,ax as d,bk as c,t as N,a9 as S,aa as A,ac as I,aC as v,_ as P,at as _,aj as j}from"./index-C6ULY2Si.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{l as R,a as q}from"./projection-b1x6abrR.js";import{l as F}from"./ops-BCWJhnEq.js";import"./reflection-CKXyOCM_.js";const G={class:"muted"},H=k({__name:"MonitorDashboardView",setup(J){const n=p([]),m=p([]),i=p([]),b=_(()=>n.value.filter(l=>l.state!=="offline").length),C=_(()=>m.value.filter(l=>l.status==="running").length),x=_(()=>n.value.filter(l=>l.state==="fault").length);function E(l){switch(l){case"running":return"success";case"idle":return"info";case"charging":return"warning";case"paused":return"warning";case"fault":return"danger";case"offline":return"info";default:return"info"}}return D(async()=>{[n.value,m.value,i.value]=await Promise.all([R(),q(),F()])}),(l,r)=>{const u=B,o=z,f=T,a=A,g=I,y=P,w=S,h=N;return V(),M("div",null,[t(f,{gutter:14,class:"kpi-row"},{default:e(()=>[t(o,{span:6},{default:e(()=>[t(u,{title:"车辆在线",value:b.value},{suffix:e(()=>[d("span",G,"/ "+c(n.value.length),1)]),_:1},8,["value"])]),_:1}),t(o,{span:6},{default:e(()=>[t(u,{title:"任务进行中",value:C.value},null,8,["value"])]),_:1}),t(o,{span:6},{default:e(()=>[t(u,{title:"故障车辆",value:x.value},null,8,["value"])]),_:1}),t(o,{span:6},{default:e(()=>[t(u,{title:"今日运维动作",value:i.value.length},null,8,["value"])]),_:1})]),_:1}),t(f,{gutter:14,style:{"margin-top":"14px"}},{default:e(()=>[t(o,{span:14},{default:e(()=>[t(h,{shadow:"never"},{header:e(()=>[...r[0]||(r[0]=[d("span",null,"实时车辆",-1)])]),default:e(()=>[t(w,{data:n.value,size:"small","max-height":"360",stripe:""},{default:e(()=>[t(a,{prop:"name",label:"名称",width:"100"}),t(a,{prop:"state",label:"状态",width:"90"},{default:e(s=>[t(g,{size:"small",type:E(s.row.state)},{default:e(()=>[v(c(s.row.state),1)]),_:2},1032,["type"])]),_:1}),t(a,{prop:"group",label:"分组",width:"100"}),t(a,{label:"电量",width:"160"},{default:e(s=>[t(y,{percentage:Math.round(s.row.batterySoc*100),"stroke-width":8},null,8,["percentage"])]),_:1}),t(a,{prop:"missionId",label:"当前任务"})]),_:1},8,["data"])]),_:1})]),_:1}),t(o,{span:10},{default:e(()=>[t(h,{shadow:"never"},{header:e(()=>[...r[1]||(r[1]=[d("span",null,"最近运维动作",-1)])]),default:e(()=>[t(w,{data:i.value,size:"small","max-height":"360",stripe:""},{default:e(()=>[t(a,{prop:"ts",label:"时间",width:"180"}),t(a,{prop:"opCode",label:"动作"}),t(a,{prop:"target",label:"目标",width:"100"}),t(a,{prop:"result",label:"结果",width:"80"},{default:e(s=>[t(g,{size:"small",type:s.row.result==="ok"?"success":"danger"},{default:e(()=>[v(c(s.row.result),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])]),_:1})]),_:1})]),_:1})])}}}),ot=j(H,[["__scopeId","data-v-53088435"]]);export{ot as default}; import{aG as k,b5 as z,aC as M,aF as t,bH as e,bf as p,a1 as T,b7 as V,w as B,a5 as D,az as d,bo as c,t as N,a9 as S,aa as I,ac as P,aE as h,_ as j,av as _,aj as A}from"./index-D5OuyicD.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{l as F,a as G}from"./projection-BVk2tEkj.js";import{l as H}from"./ops-DFVCciZx.js";import"./reflection-BmVSriDn.js";const R={class:"muted"},q=k({__name:"MonitorDashboardView",setup(J){const n=p([]),m=p([]),i=p([]),b=_(()=>n.value.filter(l=>l.state!=="offline").length),C=_(()=>m.value.filter(l=>l.status==="running").length),E=_(()=>n.value.filter(l=>l.state==="fault").length);function x(l){switch(l){case"running":return"success";case"idle":return"info";case"charging":return"warning";case"paused":return"warning";case"fault":return"danger";case"offline":return"info";default:return"info"}}return z(async()=>{[n.value,m.value,i.value]=await Promise.all([F(),G(),H()])}),(l,r)=>{const u=D,o=B,f=T,a=I,g=P,y=j,v=S,w=N;return V(),M("div",null,[t(f,{gutter:14,class:"kpi-row"},{default:e(()=>[t(o,{span:6},{default:e(()=>[t(u,{title:"车辆在线",value:b.value},{suffix:e(()=>[d("span",R,"/ "+c(n.value.length),1)]),_:1},8,["value"])]),_:1}),t(o,{span:6},{default:e(()=>[t(u,{title:"任务进行中",value:C.value},null,8,["value"])]),_:1}),t(o,{span:6},{default:e(()=>[t(u,{title:"故障车辆",value:E.value},null,8,["value"])]),_:1}),t(o,{span:6},{default:e(()=>[t(u,{title:"今日运维动作",value:i.value.length},null,8,["value"])]),_:1})]),_:1}),t(f,{gutter:14,style:{"margin-top":"14px"}},{default:e(()=>[t(o,{span:14},{default:e(()=>[t(w,{shadow:"never"},{header:e(()=>[...r[0]||(r[0]=[d("span",null,"实时车辆",-1)])]),default:e(()=>[t(v,{data:n.value,size:"small","max-height":"360",stripe:""},{default:e(()=>[t(a,{prop:"name",label:"名称",width:"100"}),t(a,{prop:"state",label:"状态",width:"90"},{default:e(s=>[t(g,{size:"small",type:x(s.row.state)},{default:e(()=>[h(c(s.row.state),1)]),_:2},1032,["type"])]),_:1}),t(a,{prop:"group",label:"分组",width:"100"}),t(a,{label:"电量",width:"160"},{default:e(s=>[t(y,{percentage:Math.round(s.row.batterySoc*100),"stroke-width":8},null,8,["percentage"])]),_:1}),t(a,{prop:"missionId",label:"当前任务"})]),_:1},8,["data"])]),_:1})]),_:1}),t(o,{span:10},{default:e(()=>[t(w,{shadow:"never"},{header:e(()=>[...r[1]||(r[1]=[d("span",null,"最近运维动作",-1)])]),default:e(()=>[t(v,{data:i.value,size:"small","max-height":"360",stripe:""},{default:e(()=>[t(a,{prop:"ts",label:"时间",width:"180"}),t(a,{prop:"opCode",label:"动作"}),t(a,{prop:"target",label:"目标",width:"100"}),t(a,{prop:"result",label:"结果",width:"80"},{default:e(s=>[t(g,{size:"small",type:s.row.result==="ok"?"success":"danger"},{default:e(()=>[h(c(s.row.result),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])]),_:1})]),_:1})]),_:1})])}}}),ot=A(q,[["__scopeId","data-v-53088435"]]);export{ot as default};
@@ -1 +0,0 @@
import o from"./MapMonitorView-DDv0PMYv.js";import{aE as r,ay as t,b4 as p}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./Workspace3D-CHeE5zz3.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import"./reflection-CKXyOCM_.js";import"./mapEdit-D6_KBS33.js";import"./ops-BCeFEEjY.js";import"./ops-BCWJhnEq.js";/* empty css *//* empty css *//* empty css */import"./projection-b1x6abrR.js";import"./useProjectionStream-BoSdoSNC.js";const G=r({__name:"MonitorMapView",setup(i){return(m,e)=>(p(),t(o,{"read-only":""}))}});export{G as default};
@@ -0,0 +1 @@
import o from"./MapMonitorView-BSY4Dsk8.js";import{aG as r,aA as t,b7 as p}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./Workspace3D-PfDes8bN.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import"./reflection-BmVSriDn.js";import"./mapEdit-Di5ggA7K.js";import"./ops-BCeFEEjY.js";import"./ops-DFVCciZx.js";import"./monitorConfigCache-deAxNrzx.js";/* empty css *//* empty css *//* empty css */import"./projection-BVk2tEkj.js";import"./useProjectionStream-DvMLcpMm.js";const H=r({__name:"MonitorMapView",setup(i){return(m,e)=>(p(),t(o,{"read-only":""}))}});export{H as default};
@@ -1,2 +1,2 @@
import{aE as T,bp as V,b2 as z,ay as m,bD as a,bc as B,b4 as d,aD as o,t as S,a9 as A,bn as _,aa as D,ax as p,bk as r,ac as M,aC as i,R as P,r as $,ad as N,aA as L,ah as R,be as U,ae as F,bb as G,at as H,X as f,Y as W}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as X}from"./PermissionGuard-DIZkcwyW.js";import{O as g}from"./ops-BCeFEEjY.js";import{l as C,e as Y}from"./ops-BCWJhnEq.js";/* empty css */const j={style:{display:"flex","align-items":"center",gap:"8px"}},me=T({__name:"OpsActionPanelView",setup(q){const w=V(),u=G({}),c=B([]),E=H(()=>g.filter(n=>w.hasOp(n.code)));async function x(n){const e=u[n.code];if(!e&&n.target!=="note"){f.warning("请填写目标 ID");return}if(n.needConfirm)try{await W.confirm(`确认执行 [${n.label}] import{aG as O,bt as T,b5 as V,aA as m,bH as a,bf as B,b7 as d,aF as o,t as S,a9 as A,br as _,aa as M,az as p,bo as r,ac as P,aE as i,R as $,r as D,ad as N,aC as F,ah as G,bh as H,ae as L,be as R,av as U,X as f,Y as W}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{P as X}from"./PermissionGuard-DhAzkl-X.js";import{O as g}from"./ops-BCeFEEjY.js";import{l as C,e as Y}from"./ops-DFVCciZx.js";/* empty css */const j={style:{display:"flex","align-items":"center",gap:"8px"}},me=O({__name:"OpsActionPanelView",setup(q){const w=T(),u=R({}),c=B([]),E=U(()=>g.filter(n=>w.hasOp(n.code)));async function h(n){const e=u[n.code];if(!e&&n.target!=="note"){f.warning("请填写目标 ID");return}if(n.needConfirm)try{await W.confirm(`确认执行 [${n.label}]
目标${e}`,"二次确认",{type:"warning"})}catch{return}try{const l=await Y({opCode:n.code,targetId:e});f.success(`成功auditId=${l.auditId}`),c.value=await C()}catch(l){f.error(`失败${l instanceof Error?l.message:String(l)}`)}}return z(async()=>{c.value=await C()}),(n,e)=>{const l=M,s=D,h=P,k=$,v=A,b=S,I=F,O=N;return d(),m(X,{"widget-id":"OpsActionPanel"},{default:a(()=>[o(b,{shadow:"never"},{header:a(()=>[p("div",j,[e[1]||(e[1]=p("span",null,"运维操作(架构 §5.1 白名单)",-1)),o(l,{size:"small",type:"info"},{default:a(()=>[...e[0]||(e[0]=[i("scope=RCSMonitor",-1)])]),_:1}),o(l,{size:"small",type:"success"},{default:a(()=>[i(r(E.value.length)+" / "+r(_(g).length)+" 可用",1)]),_:1})])]),default:a(()=>[o(v,{data:_(g),size:"small",border:""},{default:a(()=>[o(s,{prop:"code",label:"权限码",width:"200"},{default:a(t=>[p("code",null,r(t.row.code),1)]),_:1}),o(s,{prop:"label",label:"操作",width:"140"}),o(s,{prop:"target",label:"目标",width:"80"}),o(s,{prop:"needConfirm",label:"二次确认",width:"100"},{default:a(t=>[t.row.needConfirm?(d(),m(l,{key:0,size:"small",type:"warning"},{default:a(()=>[...e[2]||(e[2]=[i("是",-1)])]),_:1})):(d(),m(l,{key:1,size:"small",effect:"plain"},{default:a(()=>[...e[3]||(e[3]=[i("否",-1)])]),_:1}))]),_:1}),o(s,{prop:"description",label:"说明"}),o(s,{label:"操作",width:"200"},{default:a(t=>[o(h,{modelValue:u[t.row.code],"onUpdate:modelValue":y=>u[t.row.code]=y,placeholder:"目标 ID",size:"small",style:{width:"100px","margin-right":"6px"}},null,8,["modelValue","onUpdate:modelValue"]),o(k,{size:"small",type:t.row.needConfirm?"warning":"primary",disabled:!_(w).hasOp(t.row.code),onClick:y=>x(t.row)},{default:a(()=>[...e[4]||(e[4]=[i("执行",-1)])]),_:1},8,["type","disabled","onClick"])]),_:1})]),_:1},8,["data"])]),_:1}),o(b,{shadow:"never",style:{"margin-top":"12px"}},{header:a(()=>[...e[5]||(e[5]=[p("span",null,"本地操作记录(占位 Mock",-1)])]),default:a(()=>[o(O,null,{default:a(()=>[(d(!0),L(R,null,U(c.value,t=>(d(),m(I,{key:t.id,timestamp:t.ts,type:t.result==="ok"?"success":"danger"},{default:a(()=>[p("strong",null,r(t.opCode),1),i(" → "+r(t.target)+""+r(t.user)+" ",1)]),_:2},1032,["timestamp","type"]))),128))]),_:1})]),_:1})]),_:1})}}});export{me as default}; 目标${e}`,"二次确认",{type:"warning"})}catch{return}try{const l=await Y({opCode:n.code,targetId:e});f.success(`成功auditId=${l.auditId}`),c.value=await C()}catch(l){f.error(`失败${l instanceof Error?l.message:String(l)}`)}}return V(async()=>{c.value=await C()}),(n,e)=>{const l=P,s=M,x=$,k=D,v=A,b=S,I=L,z=N;return d(),m(X,{"widget-id":"OpsActionPanel"},{default:a(()=>[o(b,{shadow:"never"},{header:a(()=>[p("div",j,[e[1]||(e[1]=p("span",null,"运维操作(架构 §5.1 白名单)",-1)),o(l,{size:"small",type:"info"},{default:a(()=>[...e[0]||(e[0]=[i("scope=RCSMonitor",-1)])]),_:1}),o(l,{size:"small",type:"success"},{default:a(()=>[i(r(E.value.length)+" / "+r(_(g).length)+" 可用",1)]),_:1})])]),default:a(()=>[o(v,{data:_(g),size:"small",border:""},{default:a(()=>[o(s,{prop:"code",label:"权限码",width:"200"},{default:a(t=>[p("code",null,r(t.row.code),1)]),_:1}),o(s,{prop:"label",label:"操作",width:"140"}),o(s,{prop:"target",label:"目标",width:"80"}),o(s,{prop:"needConfirm",label:"二次确认",width:"100"},{default:a(t=>[t.row.needConfirm?(d(),m(l,{key:0,size:"small",type:"warning"},{default:a(()=>[...e[2]||(e[2]=[i("是",-1)])]),_:1})):(d(),m(l,{key:1,size:"small",effect:"plain"},{default:a(()=>[...e[3]||(e[3]=[i("否",-1)])]),_:1}))]),_:1}),o(s,{prop:"description",label:"说明"}),o(s,{label:"操作",width:"200"},{default:a(t=>[o(x,{modelValue:u[t.row.code],"onUpdate:modelValue":y=>u[t.row.code]=y,placeholder:"目标 ID",size:"small",style:{width:"100px","margin-right":"6px"}},null,8,["modelValue","onUpdate:modelValue"]),o(k,{size:"small",type:t.row.needConfirm?"warning":"primary",disabled:!_(w).hasOp(t.row.code),onClick:y=>h(t.row)},{default:a(()=>[...e[4]||(e[4]=[i("执行",-1)])]),_:1},8,["type","disabled","onClick"])]),_:1})]),_:1},8,["data"])]),_:1}),o(b,{shadow:"never",style:{"margin-top":"12px"}},{header:a(()=>[...e[5]||(e[5]=[p("span",null,"本地操作记录(占位 Mock",-1)])]),default:a(()=>[o(z,null,{default:a(()=>[(d(!0),F(G,null,H(c.value,t=>(d(),m(I,{key:t.id,timestamp:t.ts,type:t.result==="ok"?"success":"danger"},{default:a(()=>[p("strong",null,r(t.opCode),1),i(" → "+r(t.target)+""+r(t.user)+" ",1)]),_:2},1032,["timestamp","type"]))),128))]),_:1})]),_:1})]),_:1})}}});export{me as default};
@@ -1 +0,0 @@
.cfg-check-grid[data-v-e66d9ef7]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 10px}.type-actions[data-v-e66d9ef7]{width:100%}
@@ -0,0 +1 @@
.monitor-section[data-v-bf134df3]{min-height:80px}.cfg-check-grid[data-v-bf134df3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 10px}.type-actions[data-v-bf134df3]{width:100%}.empty-hint[data-v-bf134df3]{margin:4px 0 0;font-size:12px}.muted[data-v-bf134df3]{color:var(--mg-text-muted)}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{aE as p,bp as c,bf as i,aA as u,ax as s,ay as m,L as g,bD as y,at as v,b4 as d,bk as f,aj as k}from"./index-C6ULY2Si.js";/* empty css *//* empty css */const _=["title"],b={class:"pg-hidden-hint"},h=p({__name:"PermissionGuard",props:{widgetId:{}},setup(e){const n=e,l=c(),a=v(()=>l.widgetOf(n.widgetId));return(o,t)=>{const r=g;return a.value==="interactive"?i(o.$slots,"default",{key:0},void 0,!0):a.value==="readonly"?(d(),u("div",{key:1,class:"pg-readonly",title:`${e.widgetId} 当前为只读`},[i(o.$slots,"default",{},void 0,!0),t[0]||(t[0]=s("div",{class:"pg-mask"},null,-1))],8,_)):(d(),m(r,{key:2,class:"pg-hidden"},{description:y(()=>[t[1]||(t[1]=s("p",{class:"pg-hidden-title"},"当前账号无权查看此功能",-1)),s("p",b,"控件:"+f(e.widgetId)+"。若应为管理员可见,请尝试顶部切换「管理员/运营」或刷新页面。",1)]),_:1}))}}}),E=k(h,[["__scopeId","data-v-4766a149"]]);export{E as P};
@@ -0,0 +1 @@
import{aG as p,bt as c,bi as i,aC as u,az as s,aA as m,L as g,bH as v,av as y,b7 as d,bo as _,aj as f}from"./index-D5OuyicD.js";/* empty css *//* empty css */const k=["title"],b={class:"pg-hidden-hint"},h=p({__name:"PermissionGuard",props:{widgetId:{}},setup(e){const n=e,l=c(),a=y(()=>l.widgetOf(n.widgetId));return(o,t)=>{const r=g;return a.value==="interactive"?i(o.$slots,"default",{key:0},void 0,!0):a.value==="readonly"?(d(),u("div",{key:1,class:"pg-readonly",title:`${e.widgetId} 当前为只读`},[i(o.$slots,"default",{},void 0,!0),t[0]||(t[0]=s("div",{class:"pg-mask"},null,-1))],8,k)):(d(),m(r,{key:2,class:"pg-hidden"},{description:v(()=>[t[1]||(t[1]=s("p",{class:"pg-hidden-title"},"当前账号无权查看此功能",-1)),s("p",b,"控件:"+_(e.widgetId)+"。若应为管理员可见,请尝试顶部切换「管理员/运营」或刷新页面。",1)]),_:1}))}}}),C=f(h,[["__scopeId","data-v-4766a149"]]);export{C as P};
@@ -1 +0,0 @@
import{aE as f,ay as y,bD as a,t as w,b4 as E,aD as e,a1 as V,w as k,R as x,B,r as g,aC as n,bn as z,bz as D,H as N,a9 as P,aa as v,ax as C,bk as S,bb as A,bc as K}from"./index-C6ULY2Si.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 */const T=30,X=f({__name:"PlaybackView",setup(I){const s=A({kw:"",range:null}),i=K([{id:"SNAP-001",ts:"2026-05-19 10:21:33",type:"调度异常",summary:"AGV-005 上线超时 → 故障",size:"128 KB"},{id:"SNAP-002",ts:"2026-05-19 14:05:17",type:"路口死锁",summary:"路口-N 等待链 3 节点 30s",size:"64 KB"},{id:"SNAP-003",ts:"2026-05-20 09:11:02",type:"手动快照",summary:"用户 admin 触发 SnapshotExport",size:"420 KB"}]);return(R,t)=>{const d=x,r=k,m=B,o=g,u=V,_=N,l=v,b=P,c=w;return E(),y(c,{shadow:"never"},{header:a(()=>[C("span",null,"调度回放(PlaybackPolicy.retentionDays="+S(T)+" 天)")]),default:a(()=>[e(u,{gutter:12},{default:a(()=>[e(r,{span:6},{default:a(()=>[e(d,{modelValue:s.kw,"onUpdate:modelValue":t[0]||(t[0]=p=>s.kw=p),placeholder:"按任务 / 车辆检索",clearable:""},null,8,["modelValue"])]),_:1}),e(r,{span:8},{default:a(()=>[e(m,{modelValue:s.range,"onUpdate:modelValue":t[1]||(t[1]=p=>s.range=p),type:"datetimerange","range-separator":"→","start-placeholder":"开始","end-placeholder":"结束",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e(r,{span:10},{default:a(()=>[e(o,{type:"primary"},{default:a(()=>[...t[2]||(t[2]=[n("检索快照",-1)])]),_:1}),e(o,null,{default:a(()=>[...t[3]||(t[3]=[n("下载日志",-1)])]),_:1}),e(o,{icon:z(D),plain:""},{default:a(()=>[...t[4]||(t[4]=[n("回放选中",-1)])]),_:1},8,["icon"])]),_:1})]),_:1}),e(_),e(b,{data:i.value,stripe:""},{default:a(()=>[e(l,{prop:"id",label:"ID",width:"100"}),e(l,{prop:"ts",label:"时间",width:"180"}),e(l,{prop:"type",label:"类型",width:"140"}),e(l,{prop:"summary",label:"概要"}),e(l,{prop:"size",label:"大小",width:"100"}),e(l,{label:"操作",width:"160"},{default:a(()=>[e(o,{text:"",size:"small"},{default:a(()=>[...t[5]||(t[5]=[n("回放",-1)])]),_:1}),e(o,{text:"",size:"small"},{default:a(()=>[...t[6]||(t[6]=[n("下载",-1)])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})}}});export{X as default};
@@ -0,0 +1 @@
import{aG as c,aA as y,bH as a,t as w,b7 as E,aF as e,a1 as V,w as k,R as B,B as g,r as x,aE as n,br as z,bD as N,H as P,a9 as v,aa as D,az as A,bo as C,be as S,bf as K}from"./index-D5OuyicD.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 */const T=30,X=c({__name:"PlaybackView",setup(G){const r=S({kw:"",range:null}),i=K([{id:"SNAP-001",ts:"2026-05-19 10:21:33",type:"调度异常",summary:"AGV-005 上线超时 → 故障",size:"128 KB"},{id:"SNAP-002",ts:"2026-05-19 14:05:17",type:"路口死锁",summary:"路口-N 等待链 3 节点 30s",size:"64 KB"},{id:"SNAP-003",ts:"2026-05-20 09:11:02",type:"手动快照",summary:"用户 admin 触发 SnapshotExport",size:"420 KB"}]);return(H,t)=>{const d=B,s=k,m=g,o=x,u=V,_=P,l=D,b=v,f=w;return E(),y(f,{shadow:"never"},{header:a(()=>[A("span",null,"调度回放(PlaybackPolicy.retentionDays="+C(T)+" 天)")]),default:a(()=>[e(u,{gutter:12},{default:a(()=>[e(s,{span:6},{default:a(()=>[e(d,{modelValue:r.kw,"onUpdate:modelValue":t[0]||(t[0]=p=>r.kw=p),placeholder:"按任务 / 车辆检索",clearable:""},null,8,["modelValue"])]),_:1}),e(s,{span:8},{default:a(()=>[e(m,{modelValue:r.range,"onUpdate:modelValue":t[1]||(t[1]=p=>r.range=p),type:"datetimerange","range-separator":"→","start-placeholder":"开始","end-placeholder":"结束",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),e(s,{span:10},{default:a(()=>[e(o,{type:"primary"},{default:a(()=>[...t[2]||(t[2]=[n("检索快照",-1)])]),_:1}),e(o,null,{default:a(()=>[...t[3]||(t[3]=[n("下载日志",-1)])]),_:1}),e(o,{icon:z(N),plain:""},{default:a(()=>[...t[4]||(t[4]=[n("回放选中",-1)])]),_:1},8,["icon"])]),_:1})]),_:1}),e(_),e(b,{data:i.value,stripe:""},{default:a(()=>[e(l,{prop:"id",label:"ID",width:"100"}),e(l,{prop:"ts",label:"时间",width:"180"}),e(l,{prop:"type",label:"类型",width:"140"}),e(l,{prop:"summary",label:"概要"}),e(l,{prop:"size",label:"大小",width:"100"}),e(l,{label:"操作",width:"160"},{default:a(()=>[e(o,{text:"",size:"small"},{default:a(()=>[...t[5]||(t[5]=[n("回放",-1)])]),_:1}),e(o,{text:"",size:"small"},{default:a(()=>[...t[6]||(t[6]=[n("下载",-1)])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})}}});export{X as default};
@@ -1 +1 @@
import{R as o}from"./ReflectionManagerPanel-BCWRRPd3.js";import{aE as t,aA as r,aD as e,b4 as i,aj as p}from"./index-C6ULY2Si.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 *//* empty css */import"./reflection-CKXyOCM_.js";import"./useMapEditStream-CS7BmW9Q.js";import"./useProjectionStream-BoSdoSNC.js";const m={class:"process-page"},s=t({__name:"ProcessPanelView",setup(a){return(n,c)=>(i(),r("div",m,[e(o,{kind:"process","kind-label":"进程",title:"进程管理(Mission / Process","empty-text":"当前没有进程;点击右上角「新建进程」即可基于已加载的 MissionType 实例化一个。"})]))}}),q=p(s,[["__scopeId","data-v-6a85813e"]]);export{q as default}; import{R as o}from"./ReflectionManagerPanel-Hhb-p5RK.js";import{aG as t,aC as r,aF as e,b7 as i,aj as p}from"./index-D5OuyicD.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 *//* empty css */import"./reflection-BmVSriDn.js";import"./useMapEditStream-DunazsxD.js";import"./useProjectionStream-DvMLcpMm.js";const m={class:"process-page"},s=t({__name:"ProcessPanelView",setup(a){return(n,c)=>(i(),r("div",m,[e(o,{kind:"process","kind-label":"进程",title:"进程管理(Mission / Process","empty-text":"当前没有进程;点击右上角「新建进程」即可基于已加载的 MissionType 实例化一个。"})]))}}),q=p(s,[["__scopeId","data-v-6a85813e"]]);export{q as default};
@@ -1 +0,0 @@
import{aE as f,ay as w,bD as t,bn as h,b4 as g,aD as e,N as v,O as E,a3 as I,Z as k,a9 as x,aa as z,S as D,f as U}from"./index-C6ULY2Si.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-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const W=f({__name:"RoutingPolicyView",setup(C){function _(r){return Object.entries(r).map(([p,a])=>({k:p,v:a}))}return(r,p)=>{const a=k,u=I,m=E,o=z,d=D,n=x,c=v;return g(),w(V,{section:"routing",title:"路径规划策略",description:"算法选择、权重、避障规则、区域限速(RoutingPolicy",defaults:h(U)},{default:t(({payload:l,update:s})=>[e(c,{"label-width":"140px",model:l},{default:t(()=>[e(m,{label:"算法"},{default:t(()=>[e(u,{"model-value":l.algorithm,"onUpdate:modelValue":i=>s({...l,algorithm:i})},{default:t(()=>[e(a,{label:"Dijkstra",value:"dijkstra"}),e(a,{label:"A*",value:"astar"}),e(a,{label:"自定义",value:"custom"})]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(m,{label:"权重"},{default:t(()=>[e(n,{data:_(l.weights),size:"small"},{default:t(()=>[e(o,{label:"维度",prop:"k",width:"140"}),e(o,{label:"权重"},{default:t(i=>[e(d,{"model-value":i.row.v,min:0,max:10,step:.1,"onUpdate:modelValue":b=>s({...l,weights:{...l.weights,[i.row.k]:b??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["data"])]),_:2},1024),e(m,{label:"避障规则"},{default:t(()=>[e(n,{data:l.avoidance,size:"small"},{default:t(()=>[e(o,{label:"ID",prop:"id",width:"100"}),e(o,{label:"区域 ID",prop:"zoneId",width:"140"}),e(o,{label:"规则",prop:"rule"})]),_:1},8,["data"])]),_:2},1024),e(m,{label:"区域限速"},{default:t(()=>[e(n,{data:l.zoneSpeedLimits,size:"small"},{default:t(()=>[e(o,{label:"区域",prop:"zoneId",width:"140"}),e(o,{label:"最大速度 (m/s)",prop:"maxSpeedMps"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{W as default};
@@ -0,0 +1 @@
import{aG as f,aA as w,bH as t,br as h,b7 as g,aF as e,N as v,O as E,a3 as I,Z as k,a9 as x,aa as z,S as U,f as V}from"./index-D5OuyicD.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}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const X=f({__name:"RoutingPolicyView",setup(D){function _(r){return Object.entries(r).map(([p,a])=>({k:p,v:a}))}return(r,p)=>{const a=k,u=I,m=E,o=z,d=U,n=x,c=v;return g(),w(C,{section:"routing",title:"路径规划策略",description:"算法选择、权重、避障规则、区域限速(RoutingPolicy",defaults:h(V)},{default:t(({payload:l,update:s})=>[e(c,{"label-width":"140px",model:l},{default:t(()=>[e(m,{label:"算法"},{default:t(()=>[e(u,{"model-value":l.algorithm,"onUpdate:modelValue":i=>s({...l,algorithm:i})},{default:t(()=>[e(a,{label:"Dijkstra",value:"dijkstra"}),e(a,{label:"A*",value:"astar"}),e(a,{label:"自定义",value:"custom"})]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(m,{label:"权重"},{default:t(()=>[e(n,{data:_(l.weights),size:"small"},{default:t(()=>[e(o,{label:"维度",prop:"k",width:"140"}),e(o,{label:"权重"},{default:t(i=>[e(d,{"model-value":i.row.v,min:0,max:10,step:.1,"onUpdate:modelValue":b=>s({...l,weights:{...l.weights,[i.row.k]:b??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["data"])]),_:2},1024),e(m,{label:"避障规则"},{default:t(()=>[e(n,{data:l.avoidance,size:"small"},{default:t(()=>[e(o,{label:"ID",prop:"id",width:"100"}),e(o,{label:"区域 ID",prop:"zoneId",width:"140"}),e(o,{label:"规则",prop:"rule"})]),_:1},8,["data"])]),_:2},1024),e(m,{label:"区域限速"},{default:t(()=>[e(n,{data:l.zoneSpeedLimits,size:"small"},{default:t(()=>[e(o,{label:"区域",prop:"zoneId",width:"140"}),e(o,{label:"最大速度 (m/s)",prop:"maxSpeedMps"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{X as default};
@@ -0,0 +1 @@
import{aG as b,aA as _,bH as e,br as C,b7 as i,aF as t,a1 as h,aC as E,ah as g,bh as v,w,t as S,az as r,bo as a,ac as k,aE as o,H as D,C as P,F as V,g as T,aj as x}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as B}from"./ConfigPageBase-DYlmkUIy.js";/* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const F={class:"tpl-title"},L={class:"tpl-meta"},N={class:"tpl-baseline"},z=b({__name:"ScenarioTemplateView",setup(A){return(I,R)=>{const c=k,d=S,m=w,p=h,f=D,l=V,u=P;return i(),_(B,{section:"scenario",title:"业务场景模板化",description:"SPS / Pack / 环线 / 点对点;DSL/低代码扩展(ScenarioTemplateConfig",defaults:C(T)},{default:e(({payload:s})=>[t(p,{gutter:12},{default:e(()=>[(i(!0),E(g,null,v(s.templates,n=>(i(),_(m,{key:n.id,span:6},{default:e(()=>[t(d,{shadow:"hover",class:"tpl-card"},{default:e(()=>[r("div",F,a(n.name),1),r("div",L,[t(c,{size:"small"},{default:e(()=>[o(a(n.category),1)]),_:2},1024),t(c,{size:"small",type:"info"},{default:e(()=>[o("v"+a(n.version),1)]),_:2},1024)]),r("pre",N,a(n.baselineJson||"{}"),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),t(f),t(u,{column:2,border:""},{default:e(()=>[t(l,{label:"DSL 启用"},{default:e(()=>[o(a(s.dslPolicy.enabled?"是":"否"),1)]),_:2},1024),t(l,{label:"Schema 版本"},{default:e(()=>[o(a(s.dslPolicy.schemaVersion),1)]),_:2},1024),t(l,{label:"低代码"},{default:e(()=>[o(a(s.lowCode.enabled?"启用":"关闭"),1)]),_:2},1024),t(l,{label:"编辑器"},{default:e(()=>[o(a(s.lowCode.editor),1)]),_:2},1024),t(l,{label:"保留版本"},{default:e(()=>[o(a(s.versionPolicy.keepVersions),1)]),_:2},1024),t(l,{label:"允许回滚"},{default:e(()=>[o(a(s.versionPolicy.allowRollback?"是":"否"),1)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}}),Y=x(z,[["__scopeId","data-v-4faf66a8"]]);export{Y as default};
@@ -1 +0,0 @@
import{aE as b,ay as _,bD as e,bn as C,b4 as i,aD as t,a1 as E,aA as g,ah as h,be as v,w,t as S,ax as c,bk as a,ac as D,aC as o,H as k,C as P,F as V,g as x,aj as T}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as B}from"./ConfigPageBase-DmCcZeia.js";/* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const L={class:"tpl-title"},N={class:"tpl-meta"},y={class:"tpl-baseline"},A=b({__name:"ScenarioTemplateView",setup(F){return(I,R)=>{const r=D,d=S,m=w,p=E,f=k,l=V,u=P;return i(),_(B,{section:"scenario",title:"业务场景模板化",description:"SPS / Pack / 环线 / 点对点;DSL/低代码扩展(ScenarioTemplateConfig",defaults:C(x)},{default:e(({payload:s})=>[t(p,{gutter:12},{default:e(()=>[(i(!0),g(h,null,v(s.templates,n=>(i(),_(m,{key:n.id,span:6},{default:e(()=>[t(d,{shadow:"hover",class:"tpl-card"},{default:e(()=>[c("div",L,a(n.name),1),c("div",N,[t(r,{size:"small"},{default:e(()=>[o(a(n.category),1)]),_:2},1024),t(r,{size:"small",type:"info"},{default:e(()=>[o("v"+a(n.version),1)]),_:2},1024)]),c("pre",y,a(n.baselineJson||"{}"),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),t(f),t(u,{column:2,border:""},{default:e(()=>[t(l,{label:"DSL 启用"},{default:e(()=>[o(a(s.dslPolicy.enabled?"是":"否"),1)]),_:2},1024),t(l,{label:"Schema 版本"},{default:e(()=>[o(a(s.dslPolicy.schemaVersion),1)]),_:2},1024),t(l,{label:"低代码"},{default:e(()=>[o(a(s.lowCode.enabled?"启用":"关闭"),1)]),_:2},1024),t(l,{label:"编辑器"},{default:e(()=>[o(a(s.lowCode.editor),1)]),_:2},1024),t(l,{label:"保留版本"},{default:e(()=>[o(a(s.versionPolicy.keepVersions),1)]),_:2},1024),t(l,{label:"允许回滚"},{default:e(()=>[o(a(s.versionPolicy.allowRollback?"是":"否"),1)]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}}),X=T(A,[["__scopeId","data-v-4faf66a8"]]);export{X as default};
@@ -1 +1 @@
import{R as t}from"./ReflectionManagerPanel-BCWRRPd3.js";import{aE as r,aA as o,aD as i,b4 as e,aj as a}from"./index-C6ULY2Si.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 *//* empty css */import"./reflection-CKXyOCM_.js";import"./useMapEditStream-CS7BmW9Q.js";import"./useProjectionStream-BoSdoSNC.js";const m={class:"script-page"},p=r({__name:"ScriptPanelView",setup(s){return(c,n)=>(e(),o("div",m,[i(t,{kind:"script","kind-label":"脚本",title:"脚本管理(CarProgram 运行实例 · 与 SimpleLite 工作台「脚本」页对齐)","empty-text":"当前无 CarProgram 实例。CarProgram 是 Mission 运行时编译用户脚本后产生的对象,要创建脚本请到「任务编排」页新建 Mission。","disable-create":"","disable-delete":"","show-summary-column":"","summary-label":"车辆","show-status-column":"","status-label":"状态","show-script-actions":""})]))}}),N=a(p,[["__scopeId","data-v-40d1e5dd"]]);export{N as default}; import{R as t}from"./ReflectionManagerPanel-Hhb-p5RK.js";import{aG as r,aC as o,aF as i,b7 as e,aj as a}from"./index-D5OuyicD.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 *//* empty css */import"./reflection-BmVSriDn.js";import"./useMapEditStream-DunazsxD.js";import"./useProjectionStream-DvMLcpMm.js";const m={class:"script-page"},p=r({__name:"ScriptPanelView",setup(s){return(c,n)=>(e(),o("div",m,[i(t,{kind:"script","kind-label":"脚本",title:"脚本管理(CarProgram 运行实例 · 与 SimpleLite 工作台「脚本」页对齐)","empty-text":"当前无 CarProgram 实例。CarProgram 是 Mission 运行时编译用户脚本后产生的对象,要创建脚本请到「任务编排」页新建 Mission。","disable-create":"","disable-delete":"","show-summary-column":"","summary-label":"车辆","show-status-column":"","status-label":"状态","show-script-actions":""})]))}}),N=a(p,[["__scopeId","data-v-40d1e5dd"]]);export{N as default};
@@ -1 +1 @@
import{aE as w,b2 as k,b3 as E,aA as D,aD as s,bD as e,t as x,bc as y,br as C,b4 as V,C as z,F as I,aC as a,bk as f,bn as M,ac as W,ax as m,r as B,aj as N}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */const O={class:"status-page mg-content"},c={class:"status-actions"},A=w({__name:"ServiceStatusView",setup(K){const b=C(),_=new Date().toLocaleString("zh-CN"),i=y("00:00:00");let r;const S=Date.now();function u(){const p=Date.now()-S,t=Math.floor(p/1e3),o=String(Math.floor(t/3600)).padStart(2,"0"),l=String(Math.floor(t%3600/60)).padStart(2,"0"),d=String(t%60).padStart(2,"0");i.value=`${o}:${l}:${d}`}k(()=>{u(),r=window.setInterval(u,1e3)}),E(()=>{r&&clearInterval(r)});function v(){b.back()}return(p,t)=>{const o=W,l=I,d=z,n=B,g=x;return V(),D("div",O,[s(g,{shadow:"never",class:"status-card"},{header:e(()=>[t[1]||(t[1]=m("span",null,"SimpleLite Service Status",-1)),s(o,{type:"success",effect:"dark",style:{"margin-left":"8px"}},{default:e(()=>[...t[0]||(t[0]=[a("Web-Enabled (Mock)",-1)])]),_:1})]),default:e(()=>[s(d,{column:2,border:""},{default:e(()=>[s(l,{label:"模式"},{default:e(()=>[...t[2]||(t[2]=[a("Web-Enabled",-1)])]),_:1}),s(l,{label:"启动时间"},{default:e(()=>[a(f(M(_)),1)]),_:1}),s(l,{label:"运行时长"},{default:e(()=>[a(f(i.value),1)]),_:1}),s(l,{label:"节点角色"},{default:e(()=>[s(o,{type:"success"},{default:e(()=>[...t[3]||(t[3]=[a("Active (ROSE)",-1)])]),_:1})]),_:1}),s(l,{label:"WebAPI"},{default:e(()=>[t[5]||(t[5]=a("http://0.0.0.0:7001 ",-1)),s(o,{size:"small"},{default:e(()=>[...t[4]||(t[4]=[a("OK",-1)])]),_:1})]),_:1}),s(l,{label:"WebSocket"},{default:e(()=>[t[7]||(t[7]=a("ws://0.0.0.0:7002 ",-1)),s(o,{size:"small"},{default:e(()=>[...t[6]||(t[6]=[a("OK",-1)])]),_:1})]),_:1}),s(l,{label:"webVRender"},{default:e(()=>[t[9]||(t[9]=a("http://0.0.0.0:8223 ",-1)),s(o,{size:"small",type:"success"},{default:e(()=>[...t[8]||(t[8]=[a("OK",-1)])]),_:1})]),_:1}),s(l,{label:"Platform.Server"},{default:e(()=>[...t[10]||(t[10]=[a(":8080 (pid=12345)",-1)])]),_:1}),s(l,{label:"在线 Vue 客户端"},{default:e(()=>[...t[11]||(t[11]=[a("admin=3, monitor=4",-1)])]),_:1}),s(l,{label:"调度循环 / 任务"},{default:e(()=>[...t[12]||(t[12]=[a("50 Hz · 14 / 32",-1)])]),_:1})]),_:1}),m("div",c,[s(n,null,{default:e(()=>[...t[13]||(t[13]=[a("查看日志",-1)])]),_:1}),s(n,{type:"warning",plain:""},{default:e(()=>[...t[14]||(t[14]=[a("重启 Web",-1)])]),_:1}),s(n,{type:"danger",plain:""},{default:e(()=>[...t[15]||(t[15]=[a("关闭服务",-1)])]),_:1}),s(n,{onClick:v},{default:e(()=>[...t[16]||(t[16]=[a("返回",-1)])]),_:1})])]),_:1})])}}}),F=N(A,[["__scopeId","data-v-ddc086d3"]]);export{F as default}; import{aG as w,b5 as E,b6 as k,aC as y,aF as s,bH as e,t as C,bf as V,bv as x,b7 as z,C as D,F as I,aE as a,bo as f,br as M,ac as W,az as m,r as B,aj as N}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */const O={class:"status-page mg-content"},K={class:"status-actions"},R=w({__name:"ServiceStatusView",setup(T){const b=x(),_=new Date().toLocaleString("zh-CN"),i=V("00:00:00");let r;const S=Date.now();function u(){const p=Date.now()-S,t=Math.floor(p/1e3),o=String(Math.floor(t/3600)).padStart(2,"0"),l=String(Math.floor(t%3600/60)).padStart(2,"0"),d=String(t%60).padStart(2,"0");i.value=`${o}:${l}:${d}`}E(()=>{u(),r=window.setInterval(u,1e3)}),k(()=>{r&&clearInterval(r)});function v(){b.back()}return(p,t)=>{const o=W,l=I,d=D,n=B,g=C;return z(),y("div",O,[s(g,{shadow:"never",class:"status-card"},{header:e(()=>[t[1]||(t[1]=m("span",null,"SimpleLite Service Status",-1)),s(o,{type:"success",effect:"dark",style:{"margin-left":"8px"}},{default:e(()=>[...t[0]||(t[0]=[a("Web-Enabled (Mock)",-1)])]),_:1})]),default:e(()=>[s(d,{column:2,border:""},{default:e(()=>[s(l,{label:"模式"},{default:e(()=>[...t[2]||(t[2]=[a("Web-Enabled",-1)])]),_:1}),s(l,{label:"启动时间"},{default:e(()=>[a(f(M(_)),1)]),_:1}),s(l,{label:"运行时长"},{default:e(()=>[a(f(i.value),1)]),_:1}),s(l,{label:"节点角色"},{default:e(()=>[s(o,{type:"success"},{default:e(()=>[...t[3]||(t[3]=[a("Active (ROSE)",-1)])]),_:1})]),_:1}),s(l,{label:"WebAPI"},{default:e(()=>[t[5]||(t[5]=a("http://0.0.0.0:7001 ",-1)),s(o,{size:"small"},{default:e(()=>[...t[4]||(t[4]=[a("OK",-1)])]),_:1})]),_:1}),s(l,{label:"WebSocket"},{default:e(()=>[t[7]||(t[7]=a("ws://0.0.0.0:7002 ",-1)),s(o,{size:"small"},{default:e(()=>[...t[6]||(t[6]=[a("OK",-1)])]),_:1})]),_:1}),s(l,{label:"webVRender"},{default:e(()=>[t[9]||(t[9]=a("http://0.0.0.0:8223 ",-1)),s(o,{size:"small",type:"success"},{default:e(()=>[...t[8]||(t[8]=[a("OK",-1)])]),_:1})]),_:1}),s(l,{label:"Platform.Server"},{default:e(()=>[...t[10]||(t[10]=[a(":8080 (pid=12345)",-1)])]),_:1}),s(l,{label:"在线 Vue 客户端"},{default:e(()=>[...t[11]||(t[11]=[a("admin=3, monitor=4",-1)])]),_:1}),s(l,{label:"调度循环 / 任务"},{default:e(()=>[...t[12]||(t[12]=[a("50 Hz · 14 / 32",-1)])]),_:1})]),_:1}),m("div",K,[s(n,null,{default:e(()=>[...t[13]||(t[13]=[a("查看日志",-1)])]),_:1}),s(n,{type:"warning",plain:""},{default:e(()=>[...t[14]||(t[14]=[a("重启 Web",-1)])]),_:1}),s(n,{type:"danger",plain:""},{default:e(()=>[...t[15]||(t[15]=[a("关闭服务",-1)])]),_:1}),s(n,{onClick:v},{default:e(()=>[...t[16]||(t[16]=[a("返回",-1)])]),_:1})])]),_:1})])}}}),P=N(R,[["__scopeId","data-v-ddc086d3"]]);export{P as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{aE as p,ay as f,bD as o,bn as c,b4 as b,aD as e,N as v,O as V,a0 as x,$ as E,aC as n,a7 as B,S as C,i as U}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as k}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const j=p({__name:"TaskAllocationView",setup(w){return(T,t)=>{const m=E,d=x,u=V,i=B,s=C,_=v;return b(),f(k,{section:"task",title:"任务分配机制",description:"负载均衡、就近分配、优先级调度(TaskAllocationPolicy",defaults:c(U)},{default:o(({payload:l,update:r})=>[e(_,{"label-width":"160px",model:l},{default:o(()=>[e(u,{label:"分配模式"},{default:o(()=>[e(d,{"model-value":l.mode,"onUpdate:modelValue":a=>r({...l,mode:a})},{default:o(()=>[e(m,{value:"roundRobin"},{default:o(()=>[...t[0]||(t[0]=[n("轮询",-1)])]),_:1}),e(m,{value:"nearest"},{default:o(()=>[...t[1]||(t[1]=[n("就近",-1)])]),_:1}),e(m,{value:"leastLoad"},{default:o(()=>[...t[2]||(t[2]=[n("最少负载",-1)])]),_:1}),e(m,{value:"custom"},{default:o(()=>[...t[3]||(t[3]=[n("自定义",-1)])]),_:1})]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(u,{label:"启用负载均衡"},{default:o(()=>[e(i,{"model-value":l.loadBalance,"onUpdate:modelValue":a=>r({...l,loadBalance:!!a})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(u,{label:"单车队列上限"},{default:o(()=>[e(s,{"model-value":l.maxQueuePerCar,min:1,max:100,"onUpdate:modelValue":a=>r({...l,maxQueuePerCar:a??0})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{j as default};
@@ -0,0 +1 @@
import{aG as p,aA as f,bH as o,br as c,b7 as b,aF as e,N as v,O as V,a0 as x,$ as E,aE as n,a7 as B,S as U,i as C}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as k}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const j=p({__name:"TaskAllocationView",setup(w){return(A,t)=>{const m=E,d=x,u=V,i=B,s=U,_=v;return b(),f(k,{section:"task",title:"任务分配机制",description:"负载均衡、就近分配、优先级调度(TaskAllocationPolicy",defaults:c(C)},{default:o(({payload:l,update:r})=>[e(_,{"label-width":"160px",model:l},{default:o(()=>[e(u,{label:"分配模式"},{default:o(()=>[e(d,{"model-value":l.mode,"onUpdate:modelValue":a=>r({...l,mode:a})},{default:o(()=>[e(m,{value:"roundRobin"},{default:o(()=>[...t[0]||(t[0]=[n("轮询",-1)])]),_:1}),e(m,{value:"nearest"},{default:o(()=>[...t[1]||(t[1]=[n("就近",-1)])]),_:1}),e(m,{value:"leastLoad"},{default:o(()=>[...t[2]||(t[2]=[n("最少负载",-1)])]),_:1}),e(m,{value:"custom"},{default:o(()=>[...t[3]||(t[3]=[n("自定义",-1)])]),_:1})]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(u,{label:"启用负载均衡"},{default:o(()=>[e(i,{"model-value":l.loadBalance,"onUpdate:modelValue":a=>r({...l,loadBalance:!!a})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(u,{label:"单车队列上限"},{default:o(()=>[e(s,{"model-value":l.maxQueuePerCar,min:1,max:100,"onUpdate:modelValue":a=>r({...l,maxQueuePerCar:a??0})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{j as default};
@@ -1 +1 @@
import{aE as m,b4 as _,aA as k,aD as e,bD as a,a8 as x,ab as g,bc as l,aj as y,ay as T}from"./index-C6ULY2Si.js";/* empty css *//* empty css */import{R as s}from"./ReflectionManagerPanel-BCWRRPd3.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 */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./reflection-CKXyOCM_.js";import"./useMapEditStream-CS7BmW9Q.js";import"./useProjectionStream-BoSdoSNC.js";const v={class:"scene-mgr-page"},P=m({__name:"SceneManagerView",setup(f){const r=l("site"),o=l(null),p=l(null),c=l(null);function u(t){(t==="site"?o.value:t==="track"?p.value:t==="special"?c.value:null)?.refresh?.()}return(t,n)=>{const i=x,d=g;return _(),k("div",v,[e(d,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=b=>r.value=b),type:"border-card",class:"scene-tabs admin-tabs",onTabChange:u},{default:a(()=>[e(i,{label:"站点",name:"site"},{default:a(()=>[e(s,{ref_key:"sitePanelRef",ref:o,kind:"site","kind-label":"站点",title:"站点管理(Site / UISite,含禁用/启用、必空点等动作)","empty-text":"当前没有站点;点击右上角「新建站点」按 x/y 坐标添加。"},null,512)]),_:1}),e(i,{label:"路径",name:"track"},{default:a(()=>[e(s,{ref_key:"trackPanelRef",ref:p,kind:"track","kind-label":"路径",title:"路径管理(Track / UITrack,含方向、冲突、投影、二分等动作)","empty-text":"当前没有路径;点击右上角「新建路径」选起止站点添加。"},null,512)]),_:1}),e(i,{label:"装饰物",name:"special"},{default:a(()=>[e(s,{ref_key:"specialPanelRef",ref:c,kind:"special","kind-label":"装饰物",title:"装饰物管理(UI_Image / UI_Text / UI_Model","empty-text":"当前没有装饰物;新建图片/文本/模型可用底部按钮,或先在地图编辑里上传资产。"},null,512)]),_:1})]),_:1},8,["modelValue"])])}}}),R=y(P,[["__scopeId","data-v-ce41515a"]]),Y=m({__name:"TrackTableView",setup(f){return(r,o)=>(_(),T(R))}});export{Y as default}; import{aG as m,b7 as _,aC as k,aF as e,bH as a,a8 as x,ab as g,bf as l,aj as T,aA as v}from"./index-D5OuyicD.js";/* empty css *//* empty css */import{R as s}from"./ReflectionManagerPanel-Hhb-p5RK.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 */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./reflection-BmVSriDn.js";import"./useMapEditStream-DunazsxD.js";import"./useProjectionStream-DvMLcpMm.js";const y={class:"scene-mgr-page"},P=m({__name:"SceneManagerView",setup(f){const r=l("site"),o=l(null),p=l(null),c=l(null);function u(t){(t==="site"?o.value:t==="track"?p.value:t==="special"?c.value:null)?.refresh?.()}return(t,n)=>{const i=x,d=g;return _(),k("div",y,[e(d,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=b=>r.value=b),type:"border-card",class:"scene-tabs admin-tabs",onTabChange:u},{default:a(()=>[e(i,{label:"站点",name:"site"},{default:a(()=>[e(s,{ref_key:"sitePanelRef",ref:o,kind:"site","kind-label":"站点",title:"站点管理(Site / UISite,含禁用/启用、必空点等动作)","empty-text":"当前没有站点;点击右上角「新建站点」按 x/y 坐标添加。"},null,512)]),_:1}),e(i,{label:"路径",name:"track"},{default:a(()=>[e(s,{ref_key:"trackPanelRef",ref:p,kind:"track","kind-label":"路径",title:"路径管理(Track / UITrack,含方向、冲突、投影、二分等动作)","empty-text":"当前没有路径;点击右上角「新建路径」选起止站点添加。"},null,512)]),_:1}),e(i,{label:"装饰物",name:"special"},{default:a(()=>[e(s,{ref_key:"specialPanelRef",ref:c,kind:"special","kind-label":"装饰物",title:"装饰物管理(UI_Image / UI_Text / UI_Model","empty-text":"当前没有装饰物;新建图片/文本/模型可用底部按钮,或先在地图编辑里上传资产。"},null,512)]),_:1})]),_:1},8,["modelValue"])])}}}),R=T(P,[["__scopeId","data-v-ce41515a"]]),Y=m({__name:"TrackTableView",setup(f){return(r,o)=>(_(),v(R))}});export{Y as default};
@@ -0,0 +1 @@
import{aG as m,aA as d,bH as e,br as _,b7 as c,aF as a,ab as f,a8 as b,a9 as u,aa as w,aE as s,bo as p,j as I}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as T}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const L=m({__name:"TrafficRuleView",setup(h){return(x,D)=>{const t=w,o=u,l=b,n=f;return c(),d(T,{section:"traffic",title:"交通管制规则",description:"路口策略、区域互斥、动态让行(TrafficRule",defaults:_(I)},{default:e(({payload:i})=>[a(n,{"model-value":"ix"},{default:e(()=>[a(l,{name:"ix",label:"路口策略"},{default:e(()=>[a(o,{data:i.intersections,size:"small"},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"100"}),a(t,{label:"站点 IDs",prop:"siteIds"},{default:e(r=>[s(p(r.row.siteIds.join(", ")),1)]),_:1}),a(t,{label:"模式",prop:"mode",width:"100"})]),_:1},8,["data"])]),_:2},1024),a(l,{name:"mz",label:"区域互斥"},{default:e(()=>[a(o,{data:i.mutex,size:"small"},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"100"}),a(t,{label:"区域 IDs",prop:"zoneIds"},{default:e(r=>[s(p(r.row.zoneIds.join(", ")),1)]),_:1})]),_:1},8,["data"])]),_:2},1024),a(l,{name:"yd",label:"动态让行"},{default:e(()=>[a(o,{data:i.yields,size:"small"},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"100"}),a(t,{label:"From",prop:"from",width:"140"}),a(t,{label:"To",prop:"to",width:"140"}),a(t,{label:"条件",prop:"condition"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{L as default};
@@ -1 +0,0 @@
import{aE as d,ay as m,bD as e,bn as _,b4 as c,aD as a,ab as f,a8 as b,a9 as u,aa as w,aC as r,bk as p,j as I}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as T}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const S=d({__name:"TrafficRuleView",setup(D){return(h,x)=>{const t=w,o=u,l=b,n=f;return c(),m(T,{section:"traffic",title:"交通管制规则",description:"路口策略、区域互斥、动态让行(TrafficRule",defaults:_(I)},{default:e(({payload:i})=>[a(n,{"model-value":"ix"},{default:e(()=>[a(l,{name:"ix",label:"路口策略"},{default:e(()=>[a(o,{data:i.intersections,size:"small"},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"100"}),a(t,{label:"站点 IDs",prop:"siteIds"},{default:e(s=>[r(p(s.row.siteIds.join(", ")),1)]),_:1}),a(t,{label:"模式",prop:"mode",width:"100"})]),_:1},8,["data"])]),_:2},1024),a(l,{name:"mz",label:"区域互斥"},{default:e(()=>[a(o,{data:i.mutex,size:"small"},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"100"}),a(t,{label:"区域 IDs",prop:"zoneIds"},{default:e(s=>[r(p(s.row.zoneIds.join(", ")),1)]),_:1})]),_:1},8,["data"])]),_:2},1024),a(l,{name:"yd",label:"动态让行"},{default:e(()=>[a(o,{data:i.yields,size:"small"},{default:e(()=>[a(t,{label:"ID",prop:"id",width:"100"}),a(t,{label:"From",prop:"from",width:"140"}),a(t,{label:"To",prop:"to",width:"140"}),a(t,{label:"条件",prop:"condition"})]),_:1},8,["data"])]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{S as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.vehicle-health-card[data-v-30c5a691]{border:1px solid var(--el-border-color-light);border-radius:8px;background:var(--el-bg-color);overflow:hidden;cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease}.vehicle-health-card[data-v-30c5a691]:hover{box-shadow:0 2px 12px #00000014}.vehicle-health-card.is-selected[data-v-30c5a691]{border-color:var(--el-color-primary);box-shadow:0 0 0 1px var(--el-color-primary-light-7)}.vehicle-health-card.is-alarm[data-v-30c5a691]{border-color:var(--el-color-danger-light-5)}.vehicle-health-card.is-offline[data-v-30c5a691],.vehicle-health-card.is-maintenance[data-v-30c5a691]{border-color:var(--el-color-warning-light-5)}.vehicle-health-card.is-unreachable[data-v-30c5a691]{opacity:.85}.battery-strip[data-v-30c5a691]{height:4px}.card-head[data-v-30c5a691]{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 4px;gap:8px}.title-block[data-v-30c5a691]{min-width:0;display:flex;flex-direction:column;gap:2px}.vid[data-v-30c5a691]{font-size:12px;color:var(--el-text-color-secondary);font-family:ui-monospace,monospace}.vname[data-v-30c5a691]{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head-actions[data-v-30c5a691]{display:flex;align-items:center;gap:4px;flex-shrink:0}.card-body[data-v-30c5a691]{display:flex;gap:10px;padding:4px 10px 8px}.thumb[data-v-30c5a691]{width:56px;height:56px;border-radius:6px;background:var(--el-fill-color-light);display:flex;align-items:center;justify-content:center;color:var(--el-text-color-secondary);flex-shrink:0}.metrics[data-v-30c5a691]{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:12px}.metric-row[data-v-30c5a691]{display:flex;justify-content:space-between;gap:8px}.metric-row .label[data-v-30c5a691]{color:var(--el-text-color-secondary)}.metric-row .value[data-v-30c5a691]{font-weight:500}.metric-row .value.mono[data-v-30c5a691]{font-family:ui-monospace,monospace}.metric-row .value.danger[data-v-30c5a691]{color:var(--el-color-danger)}.metric-row .value.warn[data-v-30c5a691]{color:var(--el-color-warning)}.icon-grid[data-v-30c5a691]{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:0 10px 8px}.icon-cell[data-v-30c5a691]{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--el-text-color-secondary)}.icon-cell .is-alarm[data-v-30c5a691]{color:var(--el-color-danger)}.icon-cell .is-down[data-v-30c5a691]{color:var(--el-color-info)}.card-foot[data-v-30c5a691]{display:flex;justify-content:space-between;padding:6px 10px;font-size:11px;color:var(--el-text-color-secondary);background:var(--el-fill-color-lighter);border-top:1px solid var(--el-border-color-lighter)}.card-foot .hint[data-v-30c5a691]{opacity:.7}.vehicle-hub-page[data-v-16eb28f6]{padding:16px;height:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden}.hub-toolbar[data-v-16eb28f6]{display:flex;flex-direction:column;gap:12px;flex-shrink:0}.stats-row[data-v-16eb28f6]{display:flex;flex-wrap:wrap;gap:16px}.stat[data-v-16eb28f6]{display:flex;flex-direction:column;align-items:center;min-width:64px}.stat .num[data-v-16eb28f6]{font-size:22px;font-weight:700;line-height:1.2}.stat .label[data-v-16eb28f6]{font-size:12px;color:var(--el-text-color-secondary)}.stat.online .num[data-v-16eb28f6]{color:var(--el-color-success)}.stat.warn .num[data-v-16eb28f6]{color:var(--el-color-warning)}.stat.danger .num[data-v-16eb28f6]{color:var(--el-color-danger)}.stat.muted .num[data-v-16eb28f6]{color:var(--el-text-color-secondary)}.filters-row[data-v-16eb28f6]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.search-input[data-v-16eb28f6]{width:220px}.filter-select[data-v-16eb28f6]{width:120px}.card-grid[data-v-16eb28f6]{flex:1;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;align-content:start;padding-bottom:8px}.footnote[data-v-16eb28f6]{flex-shrink:0;margin:0;font-size:11px;color:var(--el-text-color-placeholder)}
@@ -0,0 +1 @@
import{aG as c,aA as f,bH as l,br as b,b7 as V,aF as t,N as v,O as R,a4 as U,H as h,aE as d,a7 as E,R as B,S as w,k as x}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import{C as T}from"./ConfigPageBase-DYlmkUIy.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-DhAzkl-X.js";/* empty css */import"./reflection-BmVSriDn.js";import"./monitorConfigCache-deAxNrzx.js";const K=c({__name:"VehicleMaintenanceView",setup(N){return(C,m)=>{const i=U,a=R,r=h,u=E,p=B,s=w,_=v;return V(),f(T,{section:"vehicle",title:"车辆维护策略",description:"电量阈值、故障上报、自动报修(VehicleMaintenancePolicy",defaults:b(x)},{default:l(({payload:e,update:n})=>[t(_,{"label-width":"160px",model:e},{default:l(()=>[t(a,{label:"低电量阈值"},{default:l(()=>[t(i,{"model-value":e.lowBatteryThreshold*100,min:0,max:100,"format-tooltip":o=>`${o}%`,"onUpdate:modelValue":o=>n({...e,lowBatteryThreshold:(Number(o)||0)/100})},null,8,["model-value","format-tooltip","onUpdate:modelValue"])]),_:2},1024),t(a,{label:"临界电量阈值"},{default:l(()=>[t(i,{"model-value":e.criticalBatteryThreshold*100,min:0,max:100,"format-tooltip":o=>`${o}%`,"onUpdate:modelValue":o=>n({...e,criticalBatteryThreshold:(Number(o)||0)/100})},null,8,["model-value","format-tooltip","onUpdate:modelValue"])]),_:2},1024),t(r,{"content-position":"left"},{default:l(()=>[...m[0]||(m[0]=[d("故障上报",-1)])]),_:1}),t(a,{label:"启用"},{default:l(()=>[t(u,{"model-value":e.faultReport.enabled,"onUpdate:modelValue":o=>n({...e,faultReport:{...e.faultReport,enabled:!!o}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),t(a,{label:"接收邮箱"},{default:l(()=>[t(p,{"model-value":e.faultReport.emailTo.join(", "),"onUpdate:modelValue":o=>n({...e,faultReport:{...e.faultReport,emailTo:o.split(/[,\s]+/).filter(Boolean)}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),t(r,{"content-position":"left"},{default:l(()=>[...m[1]||(m[1]=[d("自动报修",-1)])]),_:1}),t(a,{label:"启用"},{default:l(()=>[t(u,{"model-value":e.autoRepair.enabled,"onUpdate:modelValue":o=>n({...e,autoRepair:{...e.autoRepair,enabled:!!o}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),t(a,{label:"冷却时间 (秒)"},{default:l(()=>[t(s,{"model-value":e.autoRepair.cooldownSec,min:0,max:86400,"onUpdate:modelValue":o=>n({...e,autoRepair:{...e.autoRepair,cooldownSec:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{K as default};
@@ -1 +0,0 @@
import{aE as c,ay as f,bD as t,bn as b,b4 as V,aD as l,N as v,O as R,a4 as U,H as h,aC as d,a7 as E,R as B,S as w,k as x}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import{C as T}from"./ConfigPageBase-DmCcZeia.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-DIZkcwyW.js";/* empty css */import"./reflection-CKXyOCM_.js";const J=c({__name:"VehicleMaintenanceView",setup(C){return(N,m)=>{const i=U,a=R,r=h,u=E,p=B,s=w,_=v;return V(),f(T,{section:"vehicle",title:"车辆维护策略",description:"电量阈值、故障上报、自动报修(VehicleMaintenancePolicy",defaults:b(x)},{default:t(({payload:e,update:n})=>[l(_,{"label-width":"160px",model:e},{default:t(()=>[l(a,{label:"低电量阈值"},{default:t(()=>[l(i,{"model-value":e.lowBatteryThreshold*100,min:0,max:100,"format-tooltip":o=>`${o}%`,"onUpdate:modelValue":o=>n({...e,lowBatteryThreshold:(Number(o)||0)/100})},null,8,["model-value","format-tooltip","onUpdate:modelValue"])]),_:2},1024),l(a,{label:"临界电量阈值"},{default:t(()=>[l(i,{"model-value":e.criticalBatteryThreshold*100,min:0,max:100,"format-tooltip":o=>`${o}%`,"onUpdate:modelValue":o=>n({...e,criticalBatteryThreshold:(Number(o)||0)/100})},null,8,["model-value","format-tooltip","onUpdate:modelValue"])]),_:2},1024),l(r,{"content-position":"left"},{default:t(()=>[...m[0]||(m[0]=[d("故障上报",-1)])]),_:1}),l(a,{label:"启用"},{default:t(()=>[l(u,{"model-value":e.faultReport.enabled,"onUpdate:modelValue":o=>n({...e,faultReport:{...e.faultReport,enabled:!!o}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(a,{label:"接收邮箱"},{default:t(()=>[l(p,{"model-value":e.faultReport.emailTo.join(", "),"onUpdate:modelValue":o=>n({...e,faultReport:{...e.faultReport,emailTo:o.split(/[,\s]+/).filter(Boolean)}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(r,{"content-position":"left"},{default:t(()=>[...m[1]||(m[1]=[d("自动报修",-1)])]),_:1}),l(a,{label:"启用"},{default:t(()=>[l(u,{"model-value":e.autoRepair.enabled,"onUpdate:modelValue":o=>n({...e,autoRepair:{...e.autoRepair,enabled:!!o}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),l(a,{label:"冷却时间 (秒)"},{default:t(()=>[l(s,{"model-value":e.autoRepair.cooldownSec,min:0,max:86400,"onUpdate:modelValue":o=>n({...e,autoRepair:{...e.autoRepair,cooldownSec:o??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{J as default};
@@ -1 +0,0 @@
import{aE as F,b2 as N,b1 as P,aA as m,a_ as $,aD as c,ac as A,bD as l,ax as d,bk as o,ay as C,az as i,r as R,bn as _,Q as I,bc as n,at as S,b4 as r,aC as u,bd as j,aO as q,aV as M,aj as G}from"./index-C6ULY2Si.js";/* empty css *//* empty css *//* empty css */const H={key:0,class:"workspace-3d-toolbar"},Q={class:"hint"},J=["src"],K={key:1,class:"workspace-3d-mask"},X=F({__name:"Workspace3D",props:{host:{default:void 0},scope:{default:"Platform"},token:{default:""},readOnly:{type:Boolean,default:!1},embedUi:{type:Boolean,default:!1},canvasOnly:{type:Boolean,default:!1},hideToolbar:{type:Boolean,default:!1}},emits:["pick","select","ready"],setup(s,{expose:W,emit:L}){const t=s,y=L,v=n(),g=n(),k=n(!1),f=n(null),b=n([]),w=n(""),p=S(()=>t.host??"localhost:8223"??"localhost:8223"),U=S(()=>{const a=new URLSearchParams;return a.set("scope",t.scope??"Platform"),t.token&&a.set("token",t.token),a.set("ro",t.readOnly?"1":"0"),t.canvasOnly?a.set("ui","canvas-only"):t.embedUi&&a.set("ui","embed"),`http://${p.value}/?${a.toString()}`});async function V(){const a=t.canvasOnly?"/declareCanvasOnly":t.embedUi?"/declareEmbedUi":null;if(a)try{await fetch(`http://${p.value}${a}`,{method:"GET",mode:"no-cors",cache:"no-store",credentials:"omit",keepalive:!0})}catch(e){console.warn(`[Workspace3D] ${a} 请求失败,SimpleLite 可能仍以完整面板模式启动:`,e)}}async function x(){k.value=!1,await V(),w.value=U.value}function D(){k.value=!0,y("ready")}function E(a){if(!v.value||a.source!==v.value.contentWindow)return;const e=a.data;!e||typeof e!="object"||(e.type==="workspace.pick"&&e.payload&&typeof e.payload.x=="number"?(f.value=e.payload,y("pick",e.payload)):e.type==="workspace.select"&&Array.isArray(e.payload)&&(b.value=e.payload,y("select",e.payload)))}function O(){x()}function B(){const a=g.value;a&&(document.fullscreenElement?document.exitFullscreen():a.requestFullscreen())}return N(()=>{window.addEventListener("message",E),x()}),P(()=>{window.removeEventListener("message",E)}),W({reload:O,enterFullscreen:B}),(a,e)=>{const h=A,z=R,T=I;return r(),m("div",{class:$(["workspace-3d-wrap",{"workspace-3d--canvas-only":s.canvasOnly||s.hideToolbar}])},[s.canvasOnly||s.hideToolbar?i("",!0):(r(),m("div",H,[c(h,{type:s.readOnly?"info":"success",effect:"dark",size:"small"},{default:l(()=>[u(o(s.readOnly?"只读":"可交互"),1)]),_:1},8,["type"]),d("span",Q,"webVRender · http://"+o(p.value)+" · scope="+o(s.scope),1),e[2]||(e[2]=d("div",{class:"spacer"},null,-1)),f.value?(r(),C(h,{key:0,type:"warning",size:"small"},{default:l(()=>[u(" Pick ("+o(f.value.x.toFixed(0))+", "+o(f.value.y.toFixed(0))+") ",1)]),_:1})):i("",!0),b.value.length?(r(),C(h,{key:1,type:"primary",size:"small"},{default:l(()=>[u(" Selected: "+o(b.value.length),1)]),_:1})):i("",!0),c(z,{size:"small",icon:_(j),onClick:O},{default:l(()=>[...e[0]||(e[0]=[u("重载",-1)])]),_:1},8,["icon"]),c(z,{size:"small",icon:_(q),onClick:B},{default:l(()=>[...e[1]||(e[1]=[u("全屏",-1)])]),_:1},8,["icon"])])),d("div",{ref_key:"frameWrap",ref:g,class:"workspace-3d-frame"},[w.value?(r(),m("iframe",{key:0,ref_key:"frame",ref:v,src:w.value,class:"workspace-3d-iframe",allow:"fullscreen",onLoad:D},null,40,J)):i("",!0),k.value?i("",!0):(r(),m("div",K,[c(T,{class:"is-loading",size:"32"},{default:l(()=>[c(_(M))]),_:1}),d("span",null,"正在连接 webVRender (http://"+o(p.value)+") ...",1),e[3]||(e[3]=d("span",{class:"muted"},"如长时间未加载,请确认 SimpleLite 已以 Web-Enabled 模式启动且 8223 端口可达。",-1))]))],512)],2)}}}),te=G(X,[["__scopeId","data-v-fdbecbc9"]]);export{te as W};
@@ -0,0 +1 @@
import{aG as N,b5 as P,b4 as $,aC as y,b1 as A,aF as d,ac as D,bH as n,az as i,bo as l,aA as z,aB as u,r as R,br as _,Q as j,bf as r,av as S,b7 as c,aE as f,bg as I,aQ as q,aX as G,aj as H}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css */const M={key:0,class:"workspace-3d-toolbar"},Q={class:"hint"},X=["src"],J={key:1,class:"workspace-3d-mask"},K=N({__name:"Workspace3D",props:{host:{default:void 0},scope:{default:"Platform"},token:{default:""},readOnly:{type:Boolean,default:!1},embedUi:{type:Boolean,default:!1},canvasOnly:{type:Boolean,default:!1},hideToolbar:{type:Boolean,default:!1}},emits:["pick","select","ready"],setup(o,{expose:W,emit:L}){const t=o,v=L,k=r(),g=r(),w=r(!1),p=r(null),b=r([]),h=r(""),m=S(()=>t.host??"localhost:8223"??"localhost:8223"),U=S(()=>{const a=new URLSearchParams;return a.set("scope",t.scope??"Platform"),t.token&&a.set("token",t.token),a.set("ro",t.readOnly?"1":"0"),t.canvasOnly?a.set("ui","canvas-only"):t.embedUi&&a.set("ui","embed"),`http://${m.value}/?${a.toString()}`});async function F(){const a=t.canvasOnly?"/declareCanvasOnly":t.embedUi?"/declareEmbedUi":null;if(a)try{await fetch(`http://${m.value}${a}`,{method:"GET",mode:"no-cors",cache:"no-store",credentials:"omit",keepalive:!0})}catch(e){console.warn(`[Workspace3D] ${a} 请求失败,SimpleLite 可能仍以完整面板模式启动:`,e)}}async function E(){w.value=!1,await F(),h.value=U.value}function T(){w.value=!0,v("ready")}function x(a){if(!k.value||a.source!==k.value.contentWindow)return;const e=a.data;if(!(!e||typeof e!="object")){if(e.type==="workspace.pick"&&e.payload&&typeof e.payload.x=="number")p.value=e.payload,v("pick",e.payload);else if(e.type==="workspace.select"&&Array.isArray(e.payload))b.value=e.payload,v("select",e.payload);else if(e.type==="workspace.shortcut"&&e.payload&&typeof e.payload=="object"){const s=e.payload.action;(s==="undo"||s==="redo"||s==="delete")&&window.dispatchEvent(new CustomEvent("workspace-shortcut",{detail:{action:s}}))}}}function B(){E()}function O(){const a=g.value;a&&(document.fullscreenElement?document.exitFullscreen():a.requestFullscreen())}return P(()=>{window.addEventListener("message",x),E()}),$(()=>{window.removeEventListener("message",x)}),W({reload:B,enterFullscreen:O}),(a,e)=>{const s=D,C=R,V=j;return c(),y("div",{class:A(["workspace-3d-wrap",{"workspace-3d--canvas-only":o.canvasOnly||o.hideToolbar}])},[o.canvasOnly||o.hideToolbar?u("",!0):(c(),y("div",M,[d(s,{type:o.readOnly?"info":"success",effect:"dark",size:"small"},{default:n(()=>[f(l(o.readOnly?"只读":"可交互"),1)]),_:1},8,["type"]),i("span",Q,"webVRender · http://"+l(m.value)+" · scope="+l(o.scope),1),e[2]||(e[2]=i("div",{class:"spacer"},null,-1)),p.value?(c(),z(s,{key:0,type:"warning",size:"small"},{default:n(()=>[f(" Pick ("+l(p.value.x.toFixed(0))+", "+l(p.value.y.toFixed(0))+") ",1)]),_:1})):u("",!0),b.value.length?(c(),z(s,{key:1,type:"primary",size:"small"},{default:n(()=>[f(" Selected: "+l(b.value.length),1)]),_:1})):u("",!0),d(C,{size:"small",icon:_(I),onClick:B},{default:n(()=>[...e[0]||(e[0]=[f("重载",-1)])]),_:1},8,["icon"]),d(C,{size:"small",icon:_(q),onClick:O},{default:n(()=>[...e[1]||(e[1]=[f("全屏",-1)])]),_:1},8,["icon"])])),i("div",{ref_key:"frameWrap",ref:g,class:"workspace-3d-frame"},[h.value?(c(),y("iframe",{key:0,ref_key:"frame",ref:k,src:h.value,class:"workspace-3d-iframe",allow:"fullscreen",onLoad:T},null,40,X)):u("",!0),w.value?u("",!0):(c(),y("div",J,[d(V,{class:"is-loading",size:"32"},{default:n(()=>[d(_(G))]),_:1}),i("span",null,"正在连接 webVRender (http://"+l(m.value)+") ...",1),e[3]||(e[3]=i("span",{class:"muted"},"如长时间未加载,请确认 SimpleLite 已以 Web-Enabled 模式启动且 8223 端口可达。",-1))]))],512)],2)}}}),te=H(K,[["__scopeId","data-v-aaec3f2d"]]);export{te as W};
@@ -1 +1 @@
.workspace-3d-wrap[data-v-fdbecbc9]{display:flex;flex-direction:column;height:100%;min-height:480px;border:1px solid rgba(255,255,255,.12);border-radius:var(--mg-radius, 16px);background:#0f042073;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:0 8px 24px #0a021059,0 0 0 1px #ffffff0f inset;overflow:hidden;transition:all .25s cubic-bezier(.25,.8,.25,1)}.workspace-3d-wrap.workspace-3d--canvas-only[data-v-fdbecbc9]{border:0;border-radius:0;min-height:0;background:transparent;box-shadow:none}.workspace-3d-toolbar[data-v-fdbecbc9]{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08);font-size:12px;color:#e8d7f5d9}.workspace-3d-toolbar .hint[data-v-fdbecbc9]{color:#c9a6e3b3;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px}.workspace-3d-toolbar .spacer[data-v-fdbecbc9]{flex:1}.workspace-3d-frame[data-v-fdbecbc9]{flex:1;position:relative;background:radial-gradient(ellipse at 50% 40%,#2d1456,#1a0930,#0f0420)}.workspace-3d-iframe[data-v-fdbecbc9]{width:100%;height:100%;border:0;background:transparent;display:block}.workspace-3d-mask[data-v-fdbecbc9]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse at center,rgba(var(--mg-primary-rgb),.35),rgba(var(--mg-bg-app-deep-rgb),.92) 80%),rgba(var(--mg-bg-app-deep-rgb),.85);color:#e8dcffeb;font-size:13px;backdrop-filter:blur(10px)}.workspace-3d-mask .muted[data-v-fdbecbc9]{color:rgba(var(--mg-accent-rgb),.7);font-size:12px}.workspace-3d-mask .el-icon[data-v-fdbecbc9]{color:var(--mg-accent);filter:drop-shadow(0 0 10px rgba(var(--mg-accent-rgb),.6))} .workspace-3d-wrap[data-v-aaec3f2d]{display:flex;flex-direction:column;height:100%;min-height:480px;border:1px solid rgba(255,255,255,.12);border-radius:var(--mg-radius, 16px);background:#0f042073;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:0 8px 24px #0a021059,0 0 0 1px #ffffff0f inset;overflow:hidden;transition:all .25s cubic-bezier(.25,.8,.25,1)}.workspace-3d-wrap.workspace-3d--canvas-only[data-v-aaec3f2d]{border:0;border-radius:0;min-height:0;background:transparent;box-shadow:none}.workspace-3d-toolbar[data-v-aaec3f2d]{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08);font-size:12px;color:#e8d7f5d9}.workspace-3d-toolbar .hint[data-v-aaec3f2d]{color:#c9a6e3b3;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px}.workspace-3d-toolbar .spacer[data-v-aaec3f2d]{flex:1}.workspace-3d-frame[data-v-aaec3f2d]{flex:1;position:relative;background:radial-gradient(ellipse at 50% 40%,#2d1456,#1a0930,#0f0420)}.workspace-3d-iframe[data-v-aaec3f2d]{width:100%;height:100%;border:0;background:transparent;display:block}.workspace-3d-mask[data-v-aaec3f2d]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse at center,rgba(var(--mg-primary-rgb),.35),rgba(var(--mg-bg-app-deep-rgb),.92) 80%),rgba(var(--mg-bg-app-deep-rgb),.85);color:#e8dcffeb;font-size:13px;backdrop-filter:blur(10px)}.workspace-3d-mask .muted[data-v-aaec3f2d]{color:rgba(var(--mg-accent-rgb),.7);font-size:12px}.workspace-3d-mask .el-icon[data-v-aaec3f2d]{color:var(--mg-accent);filter:drop-shadow(0 0 10px rgba(var(--mg-accent-rgb),.6))}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{aQ as t}from"./index-C6ULY2Si.js";const a="/sl/projection/map-edit",r="/sl/projection/ai-config";async function o(e){const{data:s}=await e;if(!s?.success)throw new Error(s?.message??"request failed");return s.data}const n={createSite:e=>o(t.post(`${a}/objects/site`,e)),createTrack:(e,s)=>o(t.post(`${a}/objects/${e}`,s)),createImage:e=>o(t.post(`${a}/objects/image`,e)),createText:e=>o(t.post(`${a}/objects/text`,e)),createModel:e=>o(t.post(`${a}/objects/model`,e)),createCar:e=>o(t.post(`${a}/objects/car`,e)),deleteObject:(e,s)=>o(t.delete(`${a}/objects/${e}/${s}`)),batch:e=>o(t.post(`${a}/objects/batch`,{ops:e})),copyFieldsTo:(e,s,p,c)=>o(t.post(`${a}/objects/${e}/${s}/fields/copy-to`,{fieldNames:p,targets:c})),pick:()=>o(t.post(`${a}/pick`)),dashboardSummary:()=>o(t.get(`${a}/dashboard/summary`)),uploadAsset:(e,s)=>o(t.post(`${a}/assets/upload`,{filename:e,data:s},{headers:{"Content-Type":"multipart/form-data"}})),aiMapGenerate:e=>o(t.post(`${a}/ai/map-generate`,e)),projectSave:e=>o(t.post(`${a}/project/save`,{path:e??""})),projectLoad:e=>o(t.post(`${a}/project/load`,{path:e})),projectCurrent:()=>o(t.get(`${a}/project/current`)),projectBrowse:e=>o(t.get(`${a}/project/browse`,{params:e?{dir:e}:{}})),projectNativePickOpen:e=>o(t.post(`${a}/project/native-pick-open`,{initialDir:e??""})),projectNativePickSave:(e,s)=>o(t.post(`${a}/project/native-pick-save`,{initialDir:e??"",suggestedFileName:s??"project.current.json"})),sampleSitesAlongTrack:(e,s)=>o(t.post(`${a}/objects/track/${e}/sample-sites`,s)),getViewFilter:()=>o(t.get(`${a}/view-filter`)),setViewFilter:e=>o(t.post(`${a}/view-filter`,e))},$={get:()=>o(t.get(`${r}/`)),save:e=>o(t.post(`${r}/`,e))};export{$ as a,n as m}; import{aS as t}from"./index-D5OuyicD.js";const a="/sl/projection/map-edit",r="/sl/projection/ai-config";async function o(e){const{data:s}=await e;if(!s?.success)throw new Error(s?.message??"request failed");return s.data}const n={createSite:e=>o(t.post(`${a}/objects/site`,e)),createTrack:(e,s)=>o(t.post(`${a}/objects/${e}`,s)),createImage:e=>o(t.post(`${a}/objects/image`,e)),createText:e=>o(t.post(`${a}/objects/text`,e)),createModel:e=>o(t.post(`${a}/objects/model`,e)),createCar:e=>o(t.post(`${a}/objects/car`,e)),deleteObject:(e,s)=>o(t.delete(`${a}/objects/${e}/${s}`)),batch:e=>o(t.post(`${a}/objects/batch`,{ops:e})),copyFieldsTo:(e,s,p,c)=>o(t.post(`${a}/objects/${e}/${s}/fields/copy-to`,{fieldNames:p,targets:c})),pick:()=>o(t.post(`${a}/pick`)),dashboardSummary:()=>o(t.get(`${a}/dashboard/summary`)),uploadAsset:(e,s)=>o(t.post(`${a}/assets/upload`,{filename:e,data:s},{headers:{"Content-Type":"multipart/form-data"}})),aiMapGenerate:e=>o(t.post(`${a}/ai/map-generate`,e)),projectSave:e=>o(t.post(`${a}/project/save`,{path:e??""})),projectLoad:e=>o(t.post(`${a}/project/load`,{path:e})),projectCurrent:()=>o(t.get(`${a}/project/current`)),projectBrowse:e=>o(t.get(`${a}/project/browse`,{params:e?{dir:e}:{}})),projectNativePickOpen:e=>o(t.post(`${a}/project/native-pick-open`,{initialDir:e??""})),projectNativePickSave:(e,s)=>o(t.post(`${a}/project/native-pick-save`,{initialDir:e??"",suggestedFileName:s??"project.current.json"})),sampleSitesAlongTrack:(e,s)=>o(t.post(`${a}/objects/track/${e}/sample-sites`,s)),getViewFilter:()=>o(t.get(`${a}/view-filter`)),setViewFilter:e=>o(t.post(`${a}/view-filter`,e))},$={get:()=>o(t.get(`${r}/`)),save:e=>o(t.post(`${r}/`,e))};export{$ as a,n as m};
@@ -0,0 +1 @@
import{r as e}from"./reflection-BmVSriDn.js";let i=null,n=null;function o(){i=null,n=null}async function f(l=!1){return!l&&i?i:(!l&&n||(n=e.getMonitorConfig().then(t=>(i=t,n=null,t)).catch(t=>{throw n=null,t})),n)}export{f,o as i};
@@ -1 +1 @@
import{aQ as a}from"./index-C6ULY2Si.js";async function n(t){const{data:s}=await a.post("/sl/ops/execute",t);return s}async function o(){const{data:t}=await a.get("/sl/ops/audits");return t}export{n as e,o as l}; import{aS as a}from"./index-D5OuyicD.js";async function n(t){const{data:s}=await a.post("/sl/ops/execute",t);return s}async function o(){const{data:t}=await a.get("/sl/ops/audits");return t}export{n as e,o as l};
@@ -1 +1 @@
import{aQ as e}from"./index-C6ULY2Si.js";import{r as s}from"./reflection-CKXyOCM_.js";async function p(){const{data:t}=await e.get("/sl/projection/sites");return t}async function d(){const{data:t}=await e.get("/sl/projection/tracks");return t}function i(t){if(!t)return"idle";const r=t.toLowerCase();return/fault|error|failed|故障|异常|失联|超时|检修/.test(r)?"fault":/charg|充电/.test(r)?"charging":/pause|暂停|挂起/.test(r)?"paused":/offline|离线/.test(r)?"offline":/run|busy|working|运行|工作|执行|忙/.test(r)?"running":"idle"}function o(t){if(!t)return"queued";const r=t.toLowerCase();return/run|运行|执行/.test(r)?"running":/pause|暂停|挂起/.test(r)?"paused":/complete|done|完成|成功/.test(r)?"completed":/cancel|取消|中止/.test(r)?"cancelled":/fail|error|fault|失败|异常/.test(r)?"failed":/assign|分配/.test(r)?"assigned":"queued"}function u(t){return{id:`C${String(t.id).padStart(2,"0")}`,rawId:t.id,name:t.name,typeName:t.typeName,x:0,y:0,theta:0,batterySoc:.8,state:i(t.status),lastUpdate:new Date().toISOString(),group:t.layer??void 0}}function c(t){return{id:`M${String(t.id).padStart(2,"0")}`,name:t.name,typeName:t.typeName,priority:50,status:o(t.status),steps:[],createdAt:new Date().toISOString()}}async function n(){return(await s.listObjects("car")).map(u)}async function a(){return(await s.listObjects("mission")).map(c)}async function m(){try{const{data:t}=await e.get("/sl/projection/cars");if(Array.isArray(t)&&t.length>0)return t;const r=await n();return r.length>0?r:Array.isArray(t)?t:[]}catch{return n()}}async function y(){try{const{data:t}=await e.get("/sl/projection/missions");if(Array.isArray(t)&&t.length>0)return t;const r=await a();return r.length>0?r:Array.isArray(t)?t:[]}catch{return a()}}export{y as a,p as b,d as c,m as l}; import{aS as e}from"./index-D5OuyicD.js";import{r as s}from"./reflection-BmVSriDn.js";async function p(){const{data:t}=await e.get("/sl/projection/sites");return t}async function d(){const{data:t}=await e.get("/sl/projection/tracks");return t}function i(t){if(!t)return"idle";const r=t.toLowerCase();return/fault|error|failed|故障|异常|失联|超时|检修/.test(r)?"fault":/charg|充电/.test(r)?"charging":/pause|暂停|挂起/.test(r)?"paused":/offline|离线/.test(r)?"offline":/run|busy|working|运行|工作|执行|忙/.test(r)?"running":"idle"}function o(t){if(!t)return"queued";const r=t.toLowerCase();return/run|运行|执行/.test(r)?"running":/pause|暂停|挂起/.test(r)?"paused":/complete|done|完成|成功/.test(r)?"completed":/cancel|取消|中止/.test(r)?"cancelled":/fail|error|fault|失败|异常/.test(r)?"failed":/assign|分配/.test(r)?"assigned":"queued"}function u(t){return{id:`C${String(t.id).padStart(2,"0")}`,rawId:t.id,name:t.name,typeName:t.typeName,x:0,y:0,theta:0,batterySoc:.8,state:i(t.status),lastUpdate:new Date().toISOString(),group:t.layer??void 0}}function c(t){return{id:`M${String(t.id).padStart(2,"0")}`,name:t.name,typeName:t.typeName,priority:50,status:o(t.status),steps:[],createdAt:new Date().toISOString()}}async function n(){return(await s.listObjects("car")).map(u)}async function a(){return(await s.listObjects("mission")).map(c)}async function m(){try{const{data:t}=await e.get("/sl/projection/cars");if(Array.isArray(t)&&t.length>0)return t;const r=await n();return r.length>0?r:Array.isArray(t)?t:[]}catch{return n()}}async function y(){try{const{data:t}=await e.get("/sl/projection/missions");if(Array.isArray(t)&&t.length>0)return t;const r=await a();return r.length>0?r:Array.isArray(t)?t:[]}catch{return a()}}export{y as a,p as b,d as c,m as l};
@@ -0,0 +1 @@
import{aS as i}from"./index-D5OuyicD.js";const c="/sl/projection/reflection";function p(){return{fields:[],status:[],methods:[]}}function f(){return{car:p(),site:p(),track:p()}}const g=f;async function o(e){const{data:t}=await i.get(`${c}${e}`);if(!t?.success)throw new Error(t?.message??`reflection ${e} failed`);return t.data}async function r(e,t){const{data:s}=await i.post(`${c}${e}`,null,{params:t});if(!s?.success)throw new Error(s?.message??`reflection ${e} failed`);return s.data}async function d(e){const{data:t}=await i.delete(`${c}${e}`);if(!t?.success)throw new Error(t?.message??`reflection ${e} failed`);return t.data}async function u(e,t){const{data:s}=await i.patch(`${c}${e}`,t);if(!s?.success)throw new Error(s?.message??`reflection PATCH ${e} failed`);return s.data}const y={listKinds:()=>o("/kinds"),listAssemblies:()=>o("/assemblies"),listObjects:e=>o(`/objects/${e}`),listCreatableTypes:e=>o(`/types/${e}`),createObject:(e,t,s)=>{const n={};if(t&&(n.typeName=t),s)for(const[a,l]of Object.entries(s))l==null||l===""||(n[a]=l);return r(`/objects/${e}`,n)},deleteObject:(e,t)=>d(`/objects/${e}/${t}`),reloadPlugins:()=>r("/plugins/reload"),listPlugins:()=>o("/plugins"),unloadPlugin:e=>r(`/plugins/${encodeURIComponent(e)}/unload`),listMethods:(e,t)=>o(`/methods/${e}/${t}`),listMethodsByType:e=>o(`/methods-by-type/${e}`),getStatus:(e,t)=>o(`/status/${e}/${t}`),getFields:(e,t)=>o(`/fields/${e}/${t}`),setField:(e,t,s,n)=>r(`/fields/${e}/${t}/${encodeURIComponent(s)}`,{value:n}),deleteField:(e,t,s)=>d(`/fields/${e}/${t}/${encodeURIComponent(s)}`),getBundle:(e,t)=>o(`/bundle/${e}/${t}`),execute:(e,t,s,n)=>r(`/execute/${e}/${t}/${encodeURIComponent(s)}`,n),gotoCarSite:(e,t)=>r(`/car/${e}/goto-site`,{siteId:t}),getScriptSource:e=>o(`/scripts/${e}/source`),getScriptExceptionStatus:e=>o(`/scripts/${e}/exception-status`),getMonitorConfig:()=>o("/monitor-config"),saveMonitorConfig:async e=>{const{data:t}=await i.post(`${c}/monitor-config`,e);if(!t?.success)throw new Error(t?.message??"saveMonitorConfig failed");return t.data},getSelection:()=>o("/selection"),setSelection:(e,t)=>r("/selection",{kind:e,id:t}),clearSelection:()=>r("/selection/clear"),getProjectFields:()=>o("/project/fields"),setProjectField:(e,t)=>r(`/project/fields/${encodeURIComponent(e)}`,{value:t}),saveProject:e=>r("/project/save",e?{path:e}:void 0),getAppConfigFields:()=>o("/app-config/fields"),setAppConfigField:(e,t)=>r(`/app-config/fields/${encodeURIComponent(e)}`,{value:t}),saveAppConfig:()=>r("/app-config/save"),getViewportStyle:()=>o("/viewport-style"),patchViewportStyle:e=>u("/viewport-style",e),getCarStyleTypes:()=>o("/car-style/types"),getCarStyle:e=>o(`/car-style/${encodeURIComponent(e)}`),putCarStyle:async(e,t)=>{const{data:s}=await i.post(`${c}/car-style/${encodeURIComponent(e)}`,t);if(!s?.success)throw new Error(s?.message??"putCarStyle failed");return s.data},deleteCarStyle:e=>d(`/car-style/${encodeURIComponent(e)}`),getAlarmColors:()=>o("/car-style/alarm-colors"),putAlarmColors:async e=>{const{data:t}=await i.post(`${c}/car-style/alarm-colors`,e);if(!t?.success)throw new Error(t?.message??"putAlarmColors failed");return t.data},saveCarStyle:()=>r("/car-style/save")};function m(e){const t=e>>>24&255,s=e>>>16&255,n=e>>>8&255,a=e&255;return t>=255?`#${s.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}`:`#${t.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}${a.toString(16).padStart(2,"0")}`}function S(e){const t=e.replace("#","").trim();if(t.length===6){const s=parseInt(t.slice(0,2),16),n=parseInt(t.slice(2,4),16),a=parseInt(t.slice(4,6),16);return 255<<24|s<<16|n<<8|a}if(t.length===8){const s=parseInt(t.slice(0,2),16),n=parseInt(t.slice(2,4),16),a=parseInt(t.slice(4,6),16),l=parseInt(t.slice(6,8),16);return s<<24|n<<16|a<<8|l}return 4294967295}export{m as a,f as b,g as e,S as h,y as r};
@@ -1 +0,0 @@
import{aQ as a}from"./index-C6ULY2Si.js";const r="/sl/projection/reflection";function l(){return{fields:[],status:[],methods:[]}}function f(){return{car:l(),site:l(),track:l()}}const $=f;async function s(e){const{data:t}=await a.get(`${r}${e}`);if(!t?.success)throw new Error(t?.message??`reflection ${e} failed`);return t.data}async function n(e,t){const{data:o}=await a.post(`${r}${e}`,null,{params:t});if(!o?.success)throw new Error(o?.message??`reflection ${e} failed`);return o.data}async function d(e){const{data:t}=await a.delete(`${r}${e}`);if(!t?.success)throw new Error(t?.message??`reflection ${e} failed`);return t.data}const g={listKinds:()=>s("/kinds"),listAssemblies:()=>s("/assemblies"),listObjects:e=>s(`/objects/${e}`),listCreatableTypes:e=>s(`/types/${e}`),createObject:(e,t,o)=>{const i={};if(t&&(i.typeName=t),o)for(const[p,c]of Object.entries(o))c==null||c===""||(i[p]=c);return n(`/objects/${e}`,i)},deleteObject:(e,t)=>d(`/objects/${e}/${t}`),reloadPlugins:()=>n("/plugins/reload"),listPlugins:()=>s("/plugins"),unloadPlugin:e=>n(`/plugins/${encodeURIComponent(e)}/unload`),listMethods:(e,t)=>s(`/methods/${e}/${t}`),listMethodsByType:e=>s(`/methods-by-type/${e}`),getStatus:(e,t)=>s(`/status/${e}/${t}`),getFields:(e,t)=>s(`/fields/${e}/${t}`),setField:(e,t,o,i)=>n(`/fields/${e}/${t}/${encodeURIComponent(o)}`,{value:i}),deleteField:(e,t,o)=>d(`/fields/${e}/${t}/${encodeURIComponent(o)}`),getBundle:(e,t)=>s(`/bundle/${e}/${t}`),execute:(e,t,o,i)=>n(`/execute/${e}/${t}/${encodeURIComponent(o)}`,i),gotoCarSite:(e,t)=>n(`/car/${e}/goto-site`,{siteId:t}),getScriptSource:e=>s(`/scripts/${e}/source`),getScriptExceptionStatus:e=>s(`/scripts/${e}/exception-status`),getMonitorConfig:()=>s("/monitor-config"),saveMonitorConfig:async e=>{const{data:t}=await a.post(`${r}/monitor-config`,e);if(!t?.success)throw new Error(t?.message??"saveMonitorConfig failed");return t.data},getSelection:()=>s("/selection"),setSelection:(e,t)=>n("/selection",{kind:e,id:t}),clearSelection:()=>n("/selection/clear"),getProjectFields:()=>s("/project/fields"),setProjectField:(e,t)=>n(`/project/fields/${encodeURIComponent(e)}`,{value:t}),saveProject:e=>n("/project/save",e?{path:e}:void 0),getAppConfigFields:()=>s("/app-config/fields"),setAppConfigField:(e,t)=>n(`/app-config/fields/${encodeURIComponent(e)}`,{value:t}),saveAppConfig:()=>n("/app-config/save"),getCarStyleTypes:()=>s("/car-style/types"),getCarStyle:e=>s(`/car-style/${encodeURIComponent(e)}`),putCarStyle:async(e,t)=>{const{data:o}=await a.post(`${r}/car-style/${encodeURIComponent(e)}`,t);if(!o?.success)throw new Error(o?.message??"putCarStyle failed");return o.data},deleteCarStyle:e=>d(`/car-style/${encodeURIComponent(e)}`),getAlarmColors:()=>s("/car-style/alarm-colors"),putAlarmColors:async e=>{const{data:t}=await a.post(`${r}/car-style/alarm-colors`,e);if(!t?.success)throw new Error(t?.message??"putAlarmColors failed");return t.data},saveCarStyle:()=>n("/car-style/save")};export{f as a,$ as e,g as r};
@@ -1 +0,0 @@
import{u as n}from"./useProjectionStream-BoSdoSNC.js";import{b2 as r,b1 as b}from"./index-C6ULY2Si.js";function d(t){const c=n({autoConnect:!1});function o(a){const e=a?.payload;if(e)switch(a.kind){case"alarm":t.onAlarm?.(e);break;case"object-created":t.onObjectCreated?.(e);break;case"object-deleted":t.onObjectDeleted?.(e);break;case"object-patched":t.onObjectPatched?.(e);break;case"object-batch-changed":t.onObjectBatchChanged?.(e);break;case"pick-result":t.onPickResult?.(e);break;case"selection-detail":t.onSelectionDetail?.(e);break}}return r(()=>{c.on(o),c.connect()}),b(()=>{c.off(o),c.disconnect()}),{connected:c.connected}}export{d as u};
@@ -0,0 +1 @@
import{u as n}from"./useProjectionStream-DvMLcpMm.js";import{b5 as r,b4 as s}from"./index-D5OuyicD.js";function u(e){const c=n({autoConnect:!1});function o(a){const t=a?.payload;if(t)switch(a.kind){case"alarm":e.onAlarm?.(t);break;case"object-created":e.onObjectCreated?.(t);break;case"object-deleted":e.onObjectDeleted?.(t);break;case"object-patched":e.onObjectPatched?.(t);break;case"object-batch-changed":e.onObjectBatchChanged?.(t);break;case"pick-result":e.onPickResult?.(t);break;case"selection-detail":e.onSelectionDetail?.(t);break;case"workspace-shortcut":e.onWorkspaceShortcut?.(t);break;case"viewport-style-updated":e.onViewportStyleUpdated?.();break}}return r(()=>{c.on(o),c.connect()}),s(()=>{c.off(o),c.disconnect()}),{connected:c.connected}}export{u};
@@ -1 +0,0 @@
import{b3 as k,bc as h}from"./index-C6ULY2Si.js";const g=["snapshot-tick","selection-detail","alarm","object-created","object-deleted","object-patched","object-batch-changed","pick-result","project-saved","project-loaded","car-state","mission-status","monitor-config-updated"];function D(a={}){const j=a.url??"/api/sl/projection/stream",y=a.reconnectDelayMs??3e3,r=h(!1),u=h(null),l=new Set;let e=null,o=null,s=!1;function i(){if(s||e)return;try{e=new EventSource(j)}catch{p();return}e.onopen=()=>{r.value=!0},e.onerror=()=>{r.value=!1,f(),p()},e.onmessage=t=>{d(void 0,t.data)};const n=new Set([...g,...a.extraEventKinds??[]]);for(const t of n)e.addEventListener(t,c=>{d(t,c.data)})}function d(n,t){if(!(typeof t!="string"||!t))try{const c=JSON.parse(t),v=typeof c=="object"&&c!==null&&"kind"in c?c:{kind:n??"message",payload:c};u.value=v,l.forEach(S=>{try{S(v)}catch{}})}catch{}}function f(){if(e){try{e.close()}catch{}e=null}}function p(){s||o||(o=setTimeout(()=>{o=null,i()},y))}function m(){s=!0,o&&(clearTimeout(o),o=null),f(),r.value=!1}function b(n){l.add(n)}function E(n){l.delete(n)}return a.autoConnect!==!1&&i(),k(()=>{m(),l.clear()}),{connected:r,lastEvent:u,connect:i,disconnect:m,on:b,off:E}}export{D as u};
@@ -0,0 +1 @@
import{b6 as S,bf as h}from"./index-D5OuyicD.js";const g=["snapshot-tick","selection-detail","alarm","object-created","object-deleted","object-patched","object-batch-changed","pick-result","project-saved","project-loaded","car-state","mission-status","monitor-config-updated","workspace-shortcut","viewport-style-updated"];function w(a={}){const y=a.url??"/api/sl/projection/stream",j=a.reconnectDelayMs??3e3,r=h(!1),u=h(null),s=new Set;let e=null,c=null,l=!1;function i(){if(l||e)return;try{e=new EventSource(y)}catch{p();return}e.onopen=()=>{r.value=!0},e.onerror=()=>{r.value=!1,f(),p()},e.onmessage=t=>{d(void 0,t.data)};const n=new Set([...g,...a.extraEventKinds??[]]);for(const t of n)e.addEventListener(t,o=>{d(t,o.data)})}function d(n,t){if(!(typeof t!="string"||!t))try{const o=JSON.parse(t),v=typeof o=="object"&&o!==null&&"kind"in o?o:{kind:n??"message",payload:o};u.value=v,s.forEach(k=>{try{k(v)}catch{}})}catch{}}function f(){if(e){try{e.close()}catch{}e=null}}function p(){l||c||(c=setTimeout(()=>{c=null,i()},j))}function m(){l=!0,c&&(clearTimeout(c),c=null),f(),r.value=!1}function b(n){s.add(n)}function E(n){s.delete(n)}return a.autoConnect!==!1&&i(),S(()=>{m(),s.clear()}),{connected:r,lastEvent:u,connect:i,disconnect:m,on:b,off:E}}export{w as u};
+2 -2
View File
@@ -6,8 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>迷毂 · 智能调度平台</title> <title>迷毂 · 智能调度平台</title>
<meta name="theme-color" content="#2e3f8a" /> <meta name="theme-color" content="#2e3f8a" />
<script type="module" crossorigin src="/assets/index-C6ULY2Si.js"></script> <script type="module" crossorigin src="/assets/index-D5OuyicD.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BCzHO7Kq.css"> <link rel="stylesheet" crossorigin href="/assets/index-BvDaAPxG.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>