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

- 更新 MiGu.Server/wwwroot/assets 产物与 index.html 入口哈希,对应本次前端源码改动
This commit is contained in:
zhaowei.huang
2026-05-29 23:53:00 +08:00
parent 7877146934
commit 3356c2cd12
85 changed files with 101 additions and 103 deletions
@@ -1 +1 @@
import{aG as S,bo as z,aA as b,bB as a,u as B,b3 as p,aF as e,P as N,S as A,a4 as O,aC as T,bd as F,_ as M,ai as U,s as D,bm as f,aE as d,bE as I,ab as G,ad as L,bj as j,az as c,ba as P,bb as Y,Y as g,O as $,aa as q,I as H}from"./index-DrvLDslf.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(K){const s=z(),l=P({title:"",target:"",level:"info",content:""}),m=Y([{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=L,_=A,i=N,V=M,y=O,E=D,x=$,h=H,n=G,k=q,C=B;return p(),b(C,{shadow:"never"},{header:a(()=>[c("div",J,[t[7]||(t[7]=c("span",null,"运营备注(monitor.note.write · 写 platform.db.Annotations",-1)),f(s).hasOp("monitor.note.write")?(p(),b(u,{key:0,size:"small",type:"success"},{default:a(()=>[...t[5]||(t[5]=[d("可写",-1)])]),_:1})):(p(),b(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]=I(()=>{},["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(),T(U,null,F(["info","warn","error"],o=>e(V,{key:o,label:o,value:o},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),e(i,null,{default:a(()=>[e(E,{type:"primary",disabled:!f(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:!f(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(j(o.row.level),1)]),_:2},1032,["type"])]),_:1}),e(n,{prop:"title",label:"标题"}),e(n,{prop:"content",label:"内容"})]),_:1},8,["data"])]),_:1})}}});export{pe as default};
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
@@ -1 +0,0 @@
import{aG as y,aA as n,bB as a,bm as E,D as T,b3 as o,aF as e,a9 as V,aa as k,ab as x,aC as d,bd as u,ad as C,aE as p,bj as s,ai as m,a8 as z,ac as B}from"./index-DrvLDslf.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 D}from"./ConfigPageBase-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const O=y({__name:"AuthRoleView",setup(v){function w(c){switch(c){case"hidden":return"danger";case"readonly":return"warning";case"interactive":return"success";default:return"info"}}return(c,A)=>{const l=x,i=C,_=k,b=V,h=z,g=B;return o(),n(D,{section:"auth",title:"权限与角色管理",description:"角色、权限码、控件级 WidgetGrantauth.user.write / auth.role.write",defaults:E(T)},{default:a(({payload:f})=>[e(g,{"model-value":"roles"},{default:a(()=>[e(b,{name:"roles",label:"角色"},{default:a(()=>[e(_,{data:f.roles,size:"small",border:""},{default:a(()=>[e(l,{label:"ID",prop:"id",width:"120"}),e(l,{label:"名称",prop:"name",width:"120"}),e(l,{label:"Scope",prop:"scope",width:"120"}),e(l,{label:"权限码"},{default:a(r=>[(o(!0),d(m,null,u(r.row.permissions,t=>(o(),n(i,{key:t,size:"small",effect:"plain",style:{margin:"2px"}},{default:a(()=>[p(s(t),1)]),_:2},1024))),128))]),_:1}),e(l,{label:"WidgetGrant",width:"280"},{default:a(r=>[(o(!0),d(m,null,u(r.row.widgetGrants,t=>(o(),n(i,{key:t.widgetId,size:"small",type:w(t.visibility),effect:"plain",style:{margin:"2px"}},{default:a(()=>[p(s(t.widgetId)+"="+s(t.visibility),1)]),_:2},1032,["type"]))),128))]),_:1})]),_:1},8,["data"])]),_:2},1024),e(b,{name:"users",label:"用户"},{default:a(()=>[e(_,{data:f.users,size:"small",border:""},{default:a(()=>[e(l,{label:"ID",prop:"id",width:"120"}),e(l,{label:"用户名",prop:"username",width:"140"}),e(l,{label:"角色"},{default:a(r=>[(o(!0),d(m,null,u(r.row.roles,t=>(o(),n(i,{key:t,size:"small"},{default:a(()=>[p(s(t),1)]),_:2},1024))),128))]),_:1}),e(l,{label:"启用",width:"80"},{default:a(r=>[e(h,{modelValue:r.row.enabled,"onUpdate:modelValue":t=>r.row.enabled=t},null,8,["modelValue","onUpdate:modelValue"])]),_:1})]),_:1},8,["data"])]),_:2},1024)]),_:2},1024)]),_:1},8,["defaults"])}}});export{O as default};
@@ -0,0 +1 @@
.rbac-header[data-v-2392979d]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rbac-title-wrap[data-v-2392979d]{display:flex;flex-direction:column;gap:4px}.rbac-title[data-v-2392979d]{font-weight:600;font-size:16px;color:var(--mg-text-light)}.rbac-desc[data-v-2392979d]{font-size:12.5px;color:var(--mg-text-muted)}.tab-toolbar[data-v-2392979d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.toolbar-hint[data-v-2392979d]{font-size:13px;color:var(--mg-text-muted)}.mg-tag[data-v-2392979d]{margin:2px 4px 2px 0}.muted[data-v-2392979d]{color:var(--mg-text-faint)}.page-picker[data-v-2392979d]{display:flex;flex-direction:column;gap:14px;max-height:320px;overflow-y:auto;padding:4px 2px}.page-group-head[data-v-2392979d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.page-group-title[data-v-2392979d]{font-weight:600;font-size:13px;color:var(--mg-accent, #c4b5fd)}.page-checks[data-v-2392979d]{display:flex;flex-wrap:wrap;gap:4px 18px}.wildcard-hint[data-v-2392979d]{font-size:13px;color:var(--mg-status-warning, #f59e0b);padding:4px 0 8px}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{aG as s,aA as c,bB as t,bm as d,a as u,b3 as f,aF as e,P as b,a8 as h,T as C,aa as g,ab as w,O as E}from"./index-DrvLDslf.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 T}from"./ConfigPageBase-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const q=s({__name:"ChargePolicyView",setup(V){return(x,A)=>{const i=h,l=b,n=C,a=w,p=g,_=E;return f(),c(T,{section:"charge",title:"充电逻辑",description:"充电优先级、空闲充电、任务中断充电(ChargePolicy",defaults:d(u)},{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{q as default};
@@ -0,0 +1 @@
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};
@@ -1 +0,0 @@
.cpb-header[data-v-83b90685]{display:flex;align-items:center;gap:8px}.cpb-title[data-v-83b90685]{font-weight:600;font-size:15px;color:#fff}.cpb-header .spacer[data-v-83b90685]{flex:1}.cpb-desc[data-v-83b90685]{color:#e8d7f5b3;font-size:12.5px;margin:0 0 14px;line-height:1.6}.cpb-body[data-v-83b90685]{margin-top:4px}.cpb-json[data-v-83b90685]{margin:0;padding:14px;font-size:12px;line-height:1.55;font-family:ui-monospace,Menlo,Consolas,monospace;background:#0f04208c;color:#d6c5ee;max-height:520px;overflow:auto}
@@ -0,0 +1 @@
.cpb-header[data-v-1d51a575]{display:flex;align-items:center;gap:8px}.cpb-title[data-v-1d51a575]{font-weight:600;font-size:15px;color:var(--mg-text-light)}.cpb-header .spacer[data-v-1d51a575]{flex:1}.cpb-desc[data-v-1d51a575]{color:var(--mg-text-muted);font-size:12.5px;margin:0 0 14px;line-height:1.6}.cpb-body[data-v-1d51a575]{margin-top:4px}.cpb-json[data-v-1d51a575]{margin:0;padding:14px;font-size:12px;line-height:1.55;font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--mg-veil-2);color:var(--mg-text-light);max-height:520px;overflow:auto}
@@ -0,0 +1 @@
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};
@@ -1 +0,0 @@
import{aG as _,aA as i,bB as e,bm as d,m as u,b3 as s,aF as a,ab as f,az as n,bj as r,aC as b,bd as g,ad as h,aE as w,ai as C,aa as E,al as T}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css */import{C as y}from"./ConfigPageBase-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const B={class:"js-mini"},x={class:"js-mini"},S=_({__name:"CustomWidgetView",setup(V){return(k,D)=>{const t=f,m=h,p=E;return s(),i(y,{section:"widget",title:"自定义控件",description:"呼叫/展示界面可自由定义(platform-vue + rcsmonitor-vue 双渲染器)",defaults:d(u)},{default:e(({payload:c})=>[a(p,{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",B,r(o.row.schemaJson),1)]),_:1}),a(t,{label:"Layout",prop:"layoutJson"},{default:e(o=>[n("pre",x,r(o.row.layoutJson),1)]),_:1}),a(t,{label:"绑定 Scope"},{default:e(o=>[(s(!0),b(C,null,g(o.row.bindToScopes,l=>(s(),i(m,{key:l,size:"small",effect:"plain",style:{"margin-right":"4px"}},{default:e(()=>[w(r(l),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["data"])]),_:1},8,["defaults"])}}}),H=T(S,[["__scopeId","data-v-96b90481"]]);export{H as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
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};
@@ -1 +0,0 @@
import{aG as b,aA as u,bB as a,bm as f,b as h,b3 as w,aF as e,a9 as v,aa as E,ab as D,a8 as C,F as P,G as T,aE as i,bj as r,ac as V}from"./index-DrvLDslf.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-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const Q=b({__name:"DeviceHubView",setup(x){return(B,I)=>{const l=D,s=E,n=v,d=C,o=T,c=P,m=V;return w(),u(g,{section:"device",title:"第三方设备统一接入",description:"电梯/卷帘门/安全门/充电桩/AP/交换机/摄像头/读码器/PLCDeviceManagementConfig",defaults:f(h)},{default:a(({payload:t})=>[e(m,{"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(c,{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{Q as default};
@@ -0,0 +1 @@
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};
@@ -1 +0,0 @@
import{aG as U,aA as x,bB as a,bm as c,d as g,b3 as b,aF as t,aC as h,bd as T,a9 as S,aa as B,ab as I,S as $,a8 as v,s as D,aE as f,b6 as N,bj as z,ai as A,ac as F}from"./index-DrvLDslf.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-CPF7i-FB.js";/* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const te=U({__name:"ExternalIntegrationView",setup(R){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=I,u=v,i=D,d=B,E=S,C=F;return b(),x(L,{section:"integrations",title:"外部系统对接",description:"MES / WMS / RCS 等标准接口配置(ExternalIntegrations",defaults:c(g)},{default:a(({payload:p,update:_})=>[t(C,{"model-value":"mes"},{default:a(()=>[(b(),h(A,null,T(["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(N),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{te as default};
@@ -0,0 +1 @@
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};
@@ -1 +0,0 @@
import{aG as f,aA as m,bB as t,bm as g,c as h,b3 as _,aF as e,a9 as T,aa as E,ab as w,aC as k,bd as F,ad as C,aE as l,bj as o,ai as D,F as x,G as B,ac as L}from"./index-DrvLDslf.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-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const X=f({__name:"FleetLifecycleView",setup(A){return(z,I)=>{const s=w,p=C,d=E,n=T,r=B,i=x,b=L;return _(),m(O,{section:"fleet",title:"车队全生命周期",description:"分区域/跨楼层/多车协作;OTA、批量操作、网络诊断(FleetLifecycleConfig",defaults:g(h)},{default:t(({payload:a})=>[e(b,{"model-value":"groups"},{default:t(()=>[e(n,{name:"groups",label:"车队分组"},{default:t(()=>[e(d,{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(D,null,F(u.row.carIds,c=>(_(),m(p,{key:c,size:"small",style:{margin:"2px"}},{default:t(()=>[l(o(c),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{X as default};
@@ -1 +0,0 @@
import{aG as s,aA as m,bB as t,bm as c,e as d,b3 as _,aF as e,a9 as b,aa as u,ab as f,$ as w,ac as h}from"./index-DrvLDslf.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-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const V=s({__name:"LocationView",setup(T){return(C,E)=>{const a=f,i=w,o=u,l=b,n=h;return _(),m(g,{section:"location",title:"库位管理",description:"出入库、库存、库位可视化(LocationManagement",defaults:c(d)},{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{V as default};
@@ -0,0 +1 @@
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
@@ -0,0 +1 @@
.mmcg[data-v-242bdaa0]{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--mg-veil-1);border:1px solid var(--mg-veil-border);border-radius:8px}.mmcg-head[data-v-242bdaa0]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mmcg-title[data-v-242bdaa0]{font-weight:600;font-size:13px;color:var(--mg-text-light)}.mmcg-head .spacer[data-v-242bdaa0]{flex:1}.mmcg-empty[data-v-242bdaa0]{margin:4px 0 0;font-size:12px;font-style:italic}.muted[data-v-242bdaa0]{color:var(--mg-text-dim)}.mmcg-grid[data-v-242bdaa0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;align-items:center}.mmcg-grid[data-v-242bdaa0] .el-checkbox{margin-right:0;height:28px}.mmcg-grid[data-v-242bdaa0] .el-checkbox__label{color:var(--mg-text-light);font-size:12.5px;font-family:ui-monospace,Menlo,Consolas,monospace}.mmcg-orphans[data-v-242bdaa0]{margin-top:4px}.orphan-list[data-v-242bdaa0]{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.mmc-card[data-v-4d3be43b]{margin:0}.mmc-header[data-v-4d3be43b]{display:flex;align-items:center;gap:8px}.mmc-title[data-v-4d3be43b]{font-weight:600;font-size:15px;color:var(--mg-text-light)}.mmc-header .spacer[data-v-4d3be43b]{flex:1}.mmc-desc[data-v-4d3be43b]{color:var(--mg-text-muted);font-size:12.5px;margin:0 0 12px;line-height:1.7}.mmc-desc code[data-v-4d3be43b]{background:var(--mg-veil-2);padding:1px 5px;border-radius:4px;font-family:ui-monospace,Menlo,Consolas,monospace}.mmc-tabs[data-v-4d3be43b] .el-tabs__item{color:var(--mg-text-muted)!important}.mmc-tabs[data-v-4d3be43b] .el-tabs__item.is-active{color:var(--mg-text-light)!important}.mmc-tab-body[data-v-4d3be43b]{display:flex;flex-direction:column;gap:18px;padding-top:6px}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
.mmcg[data-v-c29d34fc]{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px}.mmcg-head[data-v-c29d34fc]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mmcg-title[data-v-c29d34fc]{font-weight:600;font-size:13px;color:#fff}.mmcg-head .spacer[data-v-c29d34fc]{flex:1}.mmcg-empty[data-v-c29d34fc]{margin:4px 0 0;font-size:12px;font-style:italic}.muted[data-v-c29d34fc]{color:#ffffff9e}.mmcg-grid[data-v-c29d34fc]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;align-items:center}.mmcg-grid[data-v-c29d34fc] .el-checkbox{margin-right:0;height:28px}.mmcg-grid[data-v-c29d34fc] .el-checkbox__label{color:#ffffffeb;font-size:12.5px;font-family:ui-monospace,Menlo,Consolas,monospace}.mmcg-orphans[data-v-c29d34fc]{margin-top:4px}.orphan-list[data-v-c29d34fc]{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.mmc-card[data-v-13970b71]{margin:0}.mmc-header[data-v-13970b71]{display:flex;align-items:center;gap:8px}.mmc-title[data-v-13970b71]{font-weight:600;font-size:15px;color:#fff}.mmc-header .spacer[data-v-13970b71]{flex:1}.mmc-desc[data-v-13970b71]{color:#e8d7f5c7;font-size:12.5px;margin:0 0 12px;line-height:1.7}.mmc-desc code[data-v-13970b71]{background:#ffffff14;padding:1px 5px;border-radius:4px;font-family:ui-monospace,Menlo,Consolas,monospace}.mmc-tabs[data-v-13970b71] .el-tabs__item{color:#ffffffd1!important}.mmc-tabs[data-v-13970b71] .el-tabs__item.is-active{color:#fff!important}.mmc-tab-body[data-v-13970b71]{display:flex;flex-direction:column;gap:18px;padding-top:6px}
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-BP1OYef-.js";import{aG as i,aC as t,aF as r,b3 as p,al as e}from"./index-DrvLDslf.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-Dr3WM5Rz.js";import"./useMapEditStream-DPAdbySW.js";import"./useProjectionStream-DMf_8m8X.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-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};
@@ -1 +1 @@
import{aG as k,b1 as z,aC as M,aF as t,bB as e,bb as p,a2 as T,b3 as V,x as B,a6 as D,az as d,bj as c,u as N,aa as S,ab as I,ad as P,aE as w,$ as j,av as _,al as A}from"./index-DrvLDslf.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-CizY2UtH.js";import{l as R}from"./ops-CZkWvMAR.js";import"./reflection-Dr3WM5Rz.js";const $={class:"muted"},q=k({__name:"MonitorDashboardView",setup(H){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 z(async()=>{[n.value,m.value,i.value]=await Promise.all([F(),G(),R()])}),(l,r)=>{const u=D,o=B,f=T,a=I,g=P,y=j,v=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",$,"/ "+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(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:E(s.row.state)},{default:e(()=>[w(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(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(()=>[w(c(s.row.result),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])]),_:1})]),_:1})]),_:1})])}}}),ot=A(q,[["__scopeId","data-v-d6b33cf6"]]);export{ot as default};
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};
@@ -1 +0,0 @@
.muted[data-v-d6b33cf6]{color:#e8d7f58c;font-size:12px}
@@ -0,0 +1 @@
.muted[data-v-53088435]{color:var(--mg-text-dim);font-size:12px}
@@ -0,0 +1 @@
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};
@@ -1,2 +0,0 @@
import{aG as A,bo as G,b1 as L,aC as d,aF as a,bB as o,bb as r,E as j,a2 as H,b3 as i,aE as u,bj as _,bm as c,x as Y,az as f,u as Z,a1 as q,a0 as J,a4 as K,ai as b,bd as I,aA as S,F as Q,G as X,ag as ee,R as te,aR as ae,aB as oe,av as le,_ as ne,s as se,Y as g,Z as re,al as ie}from"./index-DrvLDslf.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 */import{W as ue}from"./Workspace3D-D7MYl2zT.js";import{W as ce}from"./WorkspaceCanvasToolbar-1mCqpdq_.js";import{O as pe}from"./ops-BCeFEEjY.js";import{l as me,a as de}from"./projection-CizY2UtH.js";import{e as _e}from"./ops-CZkWvMAR.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./reflection-Dr3WM5Rz.js";const fe={class:"monitor-map-page"},ve={class:"canvas-with-toolbar"},be={class:"ops-grid"},ge=A({__name:"MonitorMapView",setup(ye){const y=G(),E="localhost:8223",p=r("car"),s=r(""),w=r([]),k=r([]),m=r(null),v=r([]),$=le(()=>p.value==="car"?w.value:k.value);function M(t){return t.target===p.value||t.target==="note"}async function B(t){if(!s.value&&t.target!=="note"){g.warning("请先选择目标");return}if(t.needConfirm)try{await re.confirm(`确认执行 [${t.label}]
目标${s.value}`,"二次确认",{type:"warning"})}catch{return}try{const e=await _e({opCode:t.code,targetId:s.value,reason:""});g.success(`已执行 ${t.label}auditId=${e.auditId}`)}catch(e){g.error(`执行失败${e instanceof Error?e.message:String(e)}`)}}function O(t){m.value=t}function R(t){v.value=t,t.length===1&&t[0].startsWith("UICar-")&&(p.value="car",s.value=t[0].replace("UICar-",""))}return L(async()=>{const t=await me();w.value=t.map(n=>({label:`${n.name} (${n.id})`,value:n.id}));const e=await de();k.value=e.map(n=>({label:`${n.name} (${n.id})`,value:n.id}))}),(t,e)=>{const n=j,x=Y,C=J,T=q,W=ne,D=K,h=X,F=Q,V=Z,z=te,N=ee,P=se,U=H;return i(),d("div",fe,[a(n,{type:"info",closable:!1,"show-icon":"",style:{"margin-bottom":"12px"}},{default:o(()=>[u(" RCSMonitor 只读视图:iframe 嵌入 SimpleLite webVRender"+_(c(E))+"),右侧可执行白名单运维动作。 ",1)]),_:1}),a(U,{gutter:12,class:"main-row"},{default:o(()=>[a(x,{span:17},{default:o(()=>[f("div",ve,[a(ue,{host:c(E),scope:"RCSMonitor",token:c(y).token??"","read-only":!0,"embed-ui":!0,onPick:O,onSelect:R},null,8,["host","token"]),a(ce)])]),_:1}),a(x,{span:7},{default:o(()=>[a(V,{shadow:"never"},{header:o(()=>[...e[2]||(e[2]=[f("span",null,"选中目标",-1)])]),default:o(()=>[a(T,{modelValue:p.value,"onUpdate:modelValue":e[0]||(e[0]=l=>p.value=l),size:"small"},{default:o(()=>[a(C,{label:"car"},{default:o(()=>[...e[3]||(e[3]=[u("车辆",-1)])]),_:1}),a(C,{label:"task"},{default:o(()=>[...e[4]||(e[4]=[u("任务",-1)])]),_:1})]),_:1},8,["modelValue"]),a(D,{modelValue:s.value,"onUpdate:modelValue":e[1]||(e[1]=l=>s.value=l),placeholder:"选择目标 ID",filterable:"",style:{width:"100%","margin-top":"8px"}},{default:o(()=>[(i(!0),d(b,null,I($.value,l=>(i(),S(W,{key:l.value,label:l.label,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),a(F,{column:1,border:"",size:"small",style:{"margin-top":"8px"}},{default:o(()=>[a(h,{label:"最近 Pick"},{default:o(()=>[u(_(m.value?`(${m.value.x.toFixed(0)}, ${m.value.y.toFixed(0)})`:"—"),1)]),_:1}),a(h,{label:"最近 Select"},{default:o(()=>[u(_(v.value.length?v.value.join(", "):"—"),1)]),_:1})]),_:1})]),_:1}),a(V,{shadow:"never",style:{"margin-top":"12px"}},{header:o(()=>[...e[5]||(e[5]=[f("span",null,"运维白名单(按权限隐藏)",-1)])]),default:o(()=>[f("div",be,[(i(!0),d(b,null,I(c(pe),l=>(i(),d(b,{key:l.code},[c(y).hasOp(l.code)&&M(l)?(i(),S(P,{key:0,type:l.needConfirm?"warning":"primary",size:"small",plain:"",onClick:Ee=>B(l)},{default:o(()=>[u(_(l.label)+" ",1),a(N,{content:l.description},{default:o(()=>[a(z,{style:{"margin-left":"4px"}},{default:o(()=>[a(c(ae))]),_:1})]),_:1},8,["content"])]),_:2},1032,["type","onClick"])):oe("",!0)],64))),128))])]),_:1})]),_:1})]),_:1})])}}}),He=ie(ge,[["__scopeId","data-v-96c491ac"]]);export{He as default};
@@ -1 +0,0 @@
.monitor-map-page[data-v-96c491ac]{display:flex;flex-direction:column;height:calc(100vh - 124px)}.main-row[data-v-96c491ac]{flex:1;min-height:0}.main-row>.el-col[data-v-96c491ac]{display:flex;flex-direction:column}.main-row>.el-col[data-v-96c491ac]:first-child{min-height:0}.ops-grid[data-v-96c491ac]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.canvas-with-toolbar[data-v-96c491ac]{flex:1;min-height:0;display:flex;flex-direction:column}.canvas-with-toolbar[data-v-96c491ac] .workspace-3d-wrap{flex:1;min-height:0}
@@ -1,2 +1,2 @@
import{aG as O,bo as T,b1 as V,aA as m,bB as a,bb as B,b3 as d,aF as o,aa as S,bm as _,ab as A,az as p,bj as r,ad as M,aE as i,S as P,s as $,ae as D,aC as N,bd as F,af as G,ai as L,ba as U,av as j,Y as f,Z as H,u as R}from"./index-DrvLDslf.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 W}from"./PermissionGuard-BxagL6-4.js";import{O as b}from"./ops-BCeFEEjY.js";import{l as C,e as Y}from"./ops-CZkWvMAR.js";const Z={style:{display:"flex","align-items":"center",gap:"8px"}},pe=O({__name:"OpsActionPanelView",setup(q){const g=T(),u=U({}),c=B([]),E=j(()=>b.filter(n=>g.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 H.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 V(async()=>{c.value=await C()}),(n,e)=>{const l=M,s=A,h=P,k=$,v=S,w=R,I=G,z=D;return d(),m(W,{"widget-id":"OpsActionPanel"},{default:a(()=>[o(w,{shadow:"never"},{header:a(()=>[p("div",Z,[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(_(b).length)+" 可用",1)]),_:1})])]),default:a(()=>[o(v,{data:_(b),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:!_(g).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(w,{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),N(L,null,F(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{pe as default};
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}]
目标${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};
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 @@
.pg-readonly[data-v-4766a149]{position:relative}.pg-mask[data-v-4766a149]{position:absolute;inset:0;background:#ffffff4d;pointer-events:all;cursor:not-allowed}.pg-hidden[data-v-4766a149]{padding:48px 16px}.pg-hidden-title[data-v-4766a149]{margin:0 0 6px;font-size:14px;color:var(--mg-text-light, #fff)}.pg-hidden-hint[data-v-4766a149]{margin:0;font-size:12px;color:var(--mg-text-muted, rgba(255,255,255,.65))}
@@ -1 +0,0 @@
import{aG as i,bo as n,be as o,aC as l,az as u,aB as c,av as m,b3 as p,al as v}from"./index-DrvLDslf.js";const f=["title"],g=i({__name:"PermissionGuard",props:{widgetId:{}},setup(e){const d=e,r=n(),t=m(()=>r.widgetOf(d.widgetId));return(s,a)=>t.value==="interactive"?o(s.$slots,"default",{key:0},void 0,!0):t.value==="readonly"?(p(),l("div",{key:1,class:"pg-readonly",title:`${e.widgetId} 当前为只读`},[o(s.$slots,"default",{},void 0,!0),a[0]||(a[0]=u("div",{class:"pg-mask"},null,-1))],8,f)):c("",!0)}}),k=v(g,[["__scopeId","data-v-3220f2f7"]]);export{k as P};
@@ -1 +0,0 @@
.pg-readonly[data-v-3220f2f7]{position:relative}.pg-mask[data-v-3220f2f7]{position:absolute;inset:0;background:#ffffff4d;pointer-events:all;cursor:not-allowed}
@@ -0,0 +1 @@
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};
@@ -1 +1 @@
import{aG as c,aA as y,bB as a,u as w,b3 as E,aF as e,x as V,S as k,C as x,s as B,aE as n,bm as g,bx as z,ab as N,az as P,bj as v,ba as C,bb as S,a2 as A,aa as D,I}from"./index-DrvLDslf.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 K=30,X=c({__name:"PlaybackView",setup(T){const s=C({kw:"",range:null}),i=S([{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(G,t)=>{const d=k,r=V,m=x,o=B,u=A,_=I,l=N,b=D,f=w;return E(),y(f,{shadow:"never"},{header:a(()=>[P("span",null,"调度回放(PlaybackPolicy.retentionDays="+v(K)+" 天)")]),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:g(z),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};
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};
@@ -1 +1 @@
import{R as o}from"./ReflectionManagerPanel-BP1OYef-.js";import{aG as t,aC as r,aF as e,b3 as i,al as p}from"./index-DrvLDslf.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-Dr3WM5Rz.js";import"./useMapEditStream-DPAdbySW.js";import"./useProjectionStream-DMf_8m8X.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-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};
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{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};
@@ -1 +0,0 @@
import{aG as f,aA as w,bB as t,bm as h,g,b3 as v,aF as e,P as E,a4 as I,_ as k,aa as x,ab as z,T as U,O as V}from"./index-DrvLDslf.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-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const W=f({__name:"RoutingPolicyView",setup(T){function _(r){return Object.entries(r).map(([s,a])=>({k:s,v:a}))}return(r,s)=>{const a=k,u=I,m=E,o=z,d=U,n=x,c=V;return v(),w(C,{section:"routing",title:"路径规划策略",description:"算法选择、权重、避障规则、区域限速(RoutingPolicy",defaults:h(g)},{default:t(({payload:l,update:p})=>[e(c,{"label-width":"140px",model:l},{default:t(()=>[e(m,{label:"算法"},{default:t(()=>[e(u,{"model-value":l.algorithm,"onUpdate:modelValue":i=>p({...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=>p({...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{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 +0,0 @@
import{aG as b,aA as _,bB as e,bm as C,h as E,b3 as i,aF as t,aC as h,bd as v,x as S,u as g,az as c,bj as a,ad as w,aE as o,ai as k,G as D,a2 as P,F as V,I as x,al as B}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as T}from"./ConfigPageBase-CPF7i-FB.js";/* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const F={class:"tpl-title"},I={class:"tpl-meta"},L={class:"tpl-baseline"},N=b({__name:"ScenarioTemplateView",setup(z){return(A,R)=>{const r=w,d=g,m=S,p=P,f=x,l=D,u=V;return i(),_(T,{section:"scenario",title:"业务场景模板化",description:"SPS / Pack / 环线 / 点对点;DSL/低代码扩展(ScenarioTemplateConfig",defaults:C(E)},{default:e(({payload:s})=>[t(p,{gutter:12},{default:e(()=>[(i(!0),h(k,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",F,a(n.name),1),c("div",I,[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",L,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"])}}}),W=B(N,[["__scopeId","data-v-4faf66a8"]]);export{W as default};
@@ -1 +1 @@
import{R as t}from"./ReflectionManagerPanel-BP1OYef-.js";import{aG as r,aC as o,aF as i,b3 as e,al as a}from"./index-DrvLDslf.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-Dr3WM5Rz.js";import"./useMapEditStream-DPAdbySW.js";import"./useProjectionStream-DMf_8m8X.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":""})]))}}),j=a(p,[["__scopeId","data-v-40d1e5dd"]]);export{j as default};
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};
@@ -1 +0,0 @@
import{aG as w,b1 as E,b2 as k,aC as y,aF as s,bB as e,u as V,bb as x,b3 as z,F as C,G as D,aE as l,bj as f,bm as B,ad as I,az as m,s as M,bq as W,al as N}from"./index-DrvLDslf.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=W(),_=new Date().toLocaleString("zh-CN"),i=x("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"),a=String(Math.floor(t%3600/60)).padStart(2,"0"),d=String(t%60).padStart(2,"0");i.value=`${o}:${a}:${d}`}E(()=>{u(),r=window.setInterval(u,1e3)}),k(()=>{r&&clearInterval(r)});function v(){b.back()}return(p,t)=>{const o=I,a=D,d=C,n=M,g=V;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]=[l("Web-Enabled (Mock)",-1)])]),_:1})]),default:e(()=>[s(d,{column:2,border:""},{default:e(()=>[s(a,{label:"模式"},{default:e(()=>[...t[2]||(t[2]=[l("Web-Enabled",-1)])]),_:1}),s(a,{label:"启动时间"},{default:e(()=>[l(f(B(_)),1)]),_:1}),s(a,{label:"运行时长"},{default:e(()=>[l(f(i.value),1)]),_:1}),s(a,{label:"节点角色"},{default:e(()=>[s(o,{type:"success"},{default:e(()=>[...t[3]||(t[3]=[l("Active (ROSE)",-1)])]),_:1})]),_:1}),s(a,{label:"WebAPI"},{default:e(()=>[t[5]||(t[5]=l("http://0.0.0.0:7001 ",-1)),s(o,{size:"small"},{default:e(()=>[...t[4]||(t[4]=[l("OK",-1)])]),_:1})]),_:1}),s(a,{label:"WebSocket"},{default:e(()=>[t[7]||(t[7]=l("ws://0.0.0.0:7002 ",-1)),s(o,{size:"small"},{default:e(()=>[...t[6]||(t[6]=[l("OK",-1)])]),_:1})]),_:1}),s(a,{label:"webVRender"},{default:e(()=>[t[9]||(t[9]=l("http://0.0.0.0:8223 ",-1)),s(o,{size:"small",type:"success"},{default:e(()=>[...t[8]||(t[8]=[l("OK",-1)])]),_:1})]),_:1}),s(a,{label:"Platform.Server"},{default:e(()=>[...t[10]||(t[10]=[l(":8080 (pid=12345)",-1)])]),_:1}),s(a,{label:"在线 Vue 客户端"},{default:e(()=>[...t[11]||(t[11]=[l("admin=3, monitor=4",-1)])]),_:1}),s(a,{label:"调度循环 / 任务"},{default:e(()=>[...t[12]||(t[12]=[l("50 Hz · 14 / 32",-1)])]),_:1})]),_:1}),m("div",K,[s(n,null,{default:e(()=>[...t[13]||(t[13]=[l("查看日志",-1)])]),_:1}),s(n,{type:"warning",plain:""},{default:e(()=>[...t[14]||(t[14]=[l("重启 Web",-1)])]),_:1}),s(n,{type:"danger",plain:""},{default:e(()=>[...t[15]||(t[15]=[l("关闭服务",-1)])]),_:1}),s(n,{onClick:v},{default:e(()=>[...t[16]||(t[16]=[l("返回",-1)])]),_:1})])]),_:1})])}}}),c=N(R,[["__scopeId","data-v-ddc086d3"]]);export{c as default};
@@ -0,0 +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};
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{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};
@@ -1 +0,0 @@
import{aG as p,aA as f,bB as o,bm as c,j as b,b3 as V,aF as e,P as x,a1 as B,a0 as E,aE as n,a8 as U,T as v,O as C}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as T}from"./ConfigPageBase-CPF7i-FB.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const O=p({__name:"TaskAllocationView",setup(k){return(w,l)=>{const m=E,d=B,r=x,s=U,i=v,_=C;return V(),f(T,{section:"task",title:"任务分配机制",description:"负载均衡、就近分配、优先级调度(TaskAllocationPolicy",defaults:c(b)},{default:o(({payload:t,update:u})=>[e(_,{"label-width":"160px",model:t},{default:o(()=>[e(r,{label:"分配模式"},{default:o(()=>[e(d,{"model-value":t.mode,"onUpdate:modelValue":a=>u({...t,mode:a})},{default:o(()=>[e(m,{label:"roundRobin"},{default:o(()=>[...l[0]||(l[0]=[n("轮询",-1)])]),_:1}),e(m,{label:"nearest"},{default:o(()=>[...l[1]||(l[1]=[n("就近",-1)])]),_:1}),e(m,{label:"leastLoad"},{default:o(()=>[...l[2]||(l[2]=[n("最少负载",-1)])]),_:1}),e(m,{label:"custom"},{default:o(()=>[...l[3]||(l[3]=[n("自定义",-1)])]),_:1})]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(r,{label:"启用负载均衡"},{default:o(()=>[e(s,{"model-value":t.loadBalance,"onUpdate:modelValue":a=>u({...t,loadBalance:!!a})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(r,{label:"单车队列上限"},{default:o(()=>[e(i,{"model-value":t.maxQueuePerCar,min:1,max:100,"onUpdate:modelValue":a=>u({...t,maxQueuePerCar:a??0})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{O as default};
@@ -1 +1 @@
import{aG as m,b3 as _,aC as k,aF as e,bB as a,a9 as x,ac as g,bb as l,al as T,aA as v}from"./index-DrvLDslf.js";/* empty css *//* empty css */import{R as s}from"./ReflectionManagerPanel-BP1OYef-.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-Dr3WM5Rz.js";import"./useMapEditStream-DPAdbySW.js";import"./useProjectionStream-DMf_8m8X.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};
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};
@@ -1 +0,0 @@
import{aG as d,aA as m,bB as e,bm as _,k as c,b3 as f,aF as a,a9 as b,aa as u,ab as w,aE as r,bj as p,ac as I}from"./index-DrvLDslf.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-CPF7i-FB.js";/* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const G=d({__name:"TrafficRuleView",setup(h){return(x,D)=>{const t=w,o=u,l=b,n=I;return f(),m(T,{section:"traffic",title:"交通管制规则",description:"路口策略、区域互斥、动态让行(TrafficRule",defaults:_(c)},{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{G as default};
@@ -0,0 +1 @@
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};
@@ -1 +0,0 @@
import{aG as c,aA as f,bB as t,bm as b,l as V,b3 as v,aF as o,P as U,a5 as h,I as R,aE as d,a8 as B,S as E,T as w,O as T}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import{C as x}from"./ConfigPageBase-CPF7i-FB.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./PermissionGuard-BxagL6-4.js";import"./reflection-Dr3WM5Rz.js";const z=c({__name:"VehicleMaintenanceView",setup(C){return(I,m)=>{const i=h,a=U,r=R,u=B,p=E,s=w,_=T;return v(),f(x,{section:"vehicle",title:"车辆维护策略",description:"电量阈值、故障上报、自动报修(VehicleMaintenancePolicy",defaults:b(V)},{default:t(({payload:e,update:n})=>[o(_,{"label-width":"160px",model:e},{default:t(()=>[o(a,{label:"低电量阈值"},{default:t(()=>[o(i,{"model-value":e.lowBatteryThreshold*100,min:0,max:100,"format-tooltip":l=>`${l}%`,"onUpdate:modelValue":l=>n({...e,lowBatteryThreshold:(Number(l)||0)/100})},null,8,["model-value","format-tooltip","onUpdate:modelValue"])]),_:2},1024),o(a,{label:"临界电量阈值"},{default:t(()=>[o(i,{"model-value":e.criticalBatteryThreshold*100,min:0,max:100,"format-tooltip":l=>`${l}%`,"onUpdate:modelValue":l=>n({...e,criticalBatteryThreshold:(Number(l)||0)/100})},null,8,["model-value","format-tooltip","onUpdate:modelValue"])]),_:2},1024),o(r,{"content-position":"left"},{default:t(()=>[...m[0]||(m[0]=[d("故障上报",-1)])]),_:1}),o(a,{label:"启用"},{default:t(()=>[o(u,{"model-value":e.faultReport.enabled,"onUpdate:modelValue":l=>n({...e,faultReport:{...e.faultReport,enabled:!!l}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),o(a,{label:"接收邮箱"},{default:t(()=>[o(p,{"model-value":e.faultReport.emailTo.join(", "),"onUpdate:modelValue":l=>n({...e,faultReport:{...e.faultReport,emailTo:l.split(/[,\s]+/).filter(Boolean)}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),o(r,{"content-position":"left"},{default:t(()=>[...m[1]||(m[1]=[d("自动报修",-1)])]),_:1}),o(a,{label:"启用"},{default:t(()=>[o(u,{"model-value":e.autoRepair.enabled,"onUpdate:modelValue":l=>n({...e,autoRepair:{...e.autoRepair,enabled:!!l}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),o(a,{label:"冷却时间 (秒)"},{default:t(()=>[o(s,{"model-value":e.autoRepair.cooldownSec,min:0,max:86400,"onUpdate:modelValue":l=>n({...e,autoRepair:{...e.autoRepair,cooldownSec:l??0}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["model"])]),_:1},8,["defaults"])}}});export{z as default};
@@ -0,0 +1 @@
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 +1 @@
import{aG as N,b1 as P,b0 as R,aC as m,aZ as $,aF as c,ad as A,bB as o,az as d,bj as l,aA as C,aB as i,s as D,bm as _,bc as I,aO as j,R as q,bb as n,av as S,b3 as r,aE as u,aU as G,al as M}from"./index-DrvLDslf.js";/* empty css *//* empty css *//* empty css */const H={key:0,class:"workspace-3d-toolbar"},Z={class:"hint"},J=["src"],K={key:1,class:"workspace-3d-mask"},Q=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(s,{expose:U,emit:W}){const t=s,y=W,v=n(),g=n(),k=n(!1),f=n(null),b=n([]),w=n(""),p=S(()=>t.host??"localhost:8223"??"localhost:8223"),L=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 F(){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 B(){k.value=!1,await F(),w.value=L.value}function T(){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 x(){B()}function O(){const a=g.value;a&&(document.fullscreenElement?document.exitFullscreen():a.requestFullscreen())}return P(()=>{window.addEventListener("message",E),B()}),R(()=>{window.removeEventListener("message",E)}),U({reload:x,enterFullscreen:O}),(a,e)=>{const h=A,z=D,V=q;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:o(()=>[u(l(s.readOnly?"只读":"可交互"),1)]),_:1},8,["type"]),d("span",Z,"webVRender · http://"+l(p.value)+" · scope="+l(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:o(()=>[u(" Pick ("+l(f.value.x.toFixed(0))+", "+l(f.value.y.toFixed(0))+") ",1)]),_:1})):i("",!0),b.value.length?(r(),C(h,{key:1,type:"primary",size:"small"},{default:o(()=>[u(" Selected: "+l(b.value.length),1)]),_:1})):i("",!0),c(z,{size:"small",icon:_(I),onClick:x},{default:o(()=>[...e[0]||(e[0]=[u("重载",-1)])]),_:1},8,["icon"]),c(z,{size:"small",icon:_(j),onClick:O},{default:o(()=>[...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:T},null,40,J)):i("",!0),k.value?i("",!0):(r(),m("div",K,[c(V,{class:"is-loading",size:"32"},{default:o(()=>[c(_(G))]),_:1}),d("span",null,"正在连接 webVRender (http://"+l(p.value)+") ...",1),e[3]||(e[3]=d("span",{class:"muted"},"如长时间未加载,请确认 SimpleLite 已以 Web-Enabled 模式启动且 8223 端口可达。",-1))]))],512)],2)}}}),te=M(Q,[["__scopeId","data-v-fdbecbc9"]]);export{te as W};
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};
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
.canvas-toolbar[data-v-8e85cbc4]{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#00000073;border-top:1px solid rgba(255,255,255,.1);border-bottom-left-radius:var(--mg-radius, 16px);border-bottom-right-radius:var(--mg-radius, 16px);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);flex-wrap:wrap}.canvas-toolbar[data-v-8e85cbc4] .el-button{display:inline-flex;align-items:center;gap:4px}.btn-label[data-v-8e85cbc4]{margin-left:2px}.caret[data-v-8e85cbc4]{margin-left:2px;font-size:10px;opacity:.7}.separator[data-v-8e85cbc4]{width:1px;height:18px;background:#ffffff2e;margin:0 4px}.toolbar-menu .menu-row[data-v-8e85cbc4]{display:flex;align-items:center;gap:8px;padding:5px 14px;cursor:pointer;user-select:none;font-size:13px;color:var(--el-text-color-primary)}.toolbar-menu .menu-row[data-v-8e85cbc4]:hover{background:var(--el-fill-color-light)}.toolbar-menu .menu-row[data-v-8e85cbc4] .el-checkbox{margin-right:0;pointer-events:none}.layer-menu[data-v-8e85cbc4]{max-height:320px;overflow-y:auto}.menu-empty[data-v-8e85cbc4]{padding:10px 14px;color:var(--el-text-color-secondary);font-size:12px}.muted-hint[data-v-8e85cbc4]{margin:0 0 8px;color:var(--el-text-color-secondary);font-size:12px}
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-DrvLDslf.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{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};
@@ -1 +1 @@
import{aQ as a}from"./index-DrvLDslf.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{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};
@@ -1 +1 @@
import{aQ as e}from"./index-DrvLDslf.js";import{r as s}from"./reflection-Dr3WM5Rz.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{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};
@@ -1 +1 @@
import{aQ as a}from"./index-DrvLDslf.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};
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 +1 @@
import{u as n}from"./useProjectionStream-DMf_8m8X.js";import{b1 as r,b0 as b}from"./index-DrvLDslf.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};
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{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};
@@ -1 +0,0 @@
import{b2 as k,bb as h}from"./index-DrvLDslf.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 b=a.url??"/api/sl/projection/stream",j=a.reconnectDelayMs??3e3,r=h(!1),u=h(null),l=new Set;let e=null,c=null,s=!1;function i(){if(s||e)return;try{e=new EventSource(b)}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,l.forEach(S=>{try{S(v)}catch{}})}catch{}}function f(){if(e){try{e.close()}catch{}e=null}}function p(){s||c||(c=setTimeout(()=>{c=null,i()},j))}function m(){s=!0,c&&(clearTimeout(c),c=null),f(),r.value=!1}function y(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:y,off:E}}export{D as u};
+2 -2
View File
@@ -6,8 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>迷毂 · 智能调度平台</title>
<meta name="theme-color" content="#2e3f8a" />
<script type="module" crossorigin src="/assets/index-DrvLDslf.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CZ3kdi1Q.css">
<script type="module" crossorigin src="/assets/index-C6ULY2Si.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BCzHO7Kq.css">
</head>
<body>
<div id="app"></div>