Files
Migu2.0/MiGu.Server/wwwroot/assets/ReflectionManagerPanel-CpDwI_uG.js
T

5 lines
26 KiB
JavaScript
Raw Normal View History

import{aG as xe,bG as Ce,b5 as Ve,b7 as o,aA as r,bH as a,aC as v,L as Ne,bI as ze,by as Se,a9 as Be,aF as n,aa as Te,ac as De,aE as p,bo as w,af as Pe,r as Le,aB as _,az as c,br as G,al as fl,bg as Ee,av as j,bf as f,X as m,Y,t as Fe,aj as Ue,R as yl,Q as bl,bl as gl,ah as T,ba as $e,aq as _l,K as kl,bh as ae,J as hl,aw as wl,bK as ne,F as $l,a7 as xl,z as Cl,S as Vl,C as Nl,b1 as zl,G as Sl,N as Bl,a0 as Tl,$ as Dl,O as Pl,be as Ll,I as El}from"./index-CC_hCGHZ.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{r as C}from"./reflection-CTDOoTn5.js";import{u as Fl}from"./useMapEditStream-BAGhVPpt.js";const Ul={class:"plg-header"},Al={class:"plg-title"},Il={key:0},Kl=xe({__name:"PluginListPanel",props:{visible:{type:Boolean}},emits:["changed"],setup($,{expose:ie,emit:g}){const A=$,H=g,D=j(()=>A.visible!==!1),I=f([]),P=f(!1),z=f(!0),W=f(null);async function L(){P.value=!0;try{I.value=await C.listPlugins()}catch(y){m.warning(`插件列表加载失败:${y.message}(旧版 SimpleLite 可能未带 /plugins 接口,请重启)`)}finally{P.value=!1}}async function J(y){try{await Y.confirm(`确认卸载插件 ${y.name}
2026-05-31 00:16:56 +08:00
此插件贡献了 ${y.missionTypes} 个进程类型 / ${y.carTypes} 个车/脚本类型;如果当前还有这些类型的实例存在,卸载会失败(请先在管理面板里删除)。`,"卸载插件",{type:"warning",confirmButtonText:"卸载",cancelButtonText:"取消"})}catch{return}W.value=y.name;try{const k=await C.unloadPlugin(y.name);m.success(k.message??`已卸载 ${y.name}`),H("changed"),await L()}catch(k){m.error(`卸载失败:${k.message}`)}finally{W.value=null}}return Ce(()=>A.visible,y=>{y&&L()}),Ve(()=>{D.value&&L()}),ie({refresh:L}),(y,k)=>{const E=Le,Q=Ne,B=Te,K=De,R=Pe,X=Be,u=Fe,F=Se;return D.value?(o(),r(u,{key:0,shadow:"never",class:"plugin-list-card"},{header:a(()=>[c("div",Ul,[c("span",Al,"已加载插件 ("+w(I.value.length)+")",1),n(E,{text:"",size:"small",icon:G(fl),class:"plg-collapse",onClick:k[0]||(k[0]=x=>z.value=!z.value)},{default:a(()=>[p(w(z.value?"展开":"折叠"),1)]),_:1},8,["icon"]),n(E,{size:"small",loading:P.value,icon:G(Ee),onClick:L},{default:a(()=>[...k[1]||(k[1]=[p("刷新",-1)])]),_:1},8,["loading","icon"])])]),default:a(()=>[z.value?_("",!0):(o(),v("div",Il,[!P.value&&I.value.length===0?(o(),r(Q,{key:0,description:"尚未通过 PluginManager 加载任何插件 (重启 SimpleLite 后会自动迁移现有 plugins/ 内的 dll)"})):ze((o(),r(X,{key:1,data:I.value,size:"small",stripe:"",border:"",class:"plg-table"},{default:a(()=>[n(B,{prop:"name",label:"插件名",width:"200","show-overflow-tooltip":""}),n(B,{prop:"assemblyVersion",label:"版本",width:"120"}),n(B,{label:"类型贡献",width:"200"},{default:a(({row:x})=>[n(K,{size:"small",type:"success",effect:"plain",class:"plg-tag"},{default:a(()=>[p(" 进程 "+w(x.missionTypes),1)]),_:2},1024),n(K,{size:"small",type:"primary",effect:"plain",class:"plg-tag"},{default:a(()=>[p(" 车/脚本 "+w(x.carTypes),1)]),_:2},1024),n(K,{size:"small",type:"info",effect:"plain",class:"plg-tag"},{default:a(()=>[p(" 共 "+w(x.loadedTypes)+" type ",1)]),_:2},1024)]),_:1}),n(B,{prop:"dllPath",label:"路径","min-width":"240","show-overflow-tooltip":""}),n(B,{label:"状态",width:"120"},{default:a(({row:x})=>[x.collectible?(o(),r(K,{key:0,size:"small",type:"success"},{default:a(()=>[...k[2]||(k[2]=[p("可卸载",-1)])]),_:1})):(o(),r(R,{key:1,content:"此插件被加到 default ALC(旧路径加载),重启 SimpleLite 后会自动迁移到 collectible",placement:"top"},{default:a(()=>[n(K,{size:"small",type:"warning"},{default:a(()=>[...k[3]||(k[3]=[p("不可卸载",-1)])]),_:1})]),_:1}))]),_:1}),n(B,{label:"操作",width:"100"},{default:a(({row:x})=>[n(E,{text:"",size:"small",type:"danger",disabled:!x.collectible,loading:W.value===x.name,onClick:M=>J(x)},{default:a(()=>[...k[4]||(k[4]=[p(" 卸载 ",-1)])]),_:1},8,["disabled","loading","onClick"])]),_:1})]),_:1},8,["data"])),[[F,P.value]])]))]),_:1})):_("",!0)}}}),Rl=Ue(Kl,[["__scopeId","data-v-d89a2aa6"]]),Ml={class:"ref-mgr-page"},Ol={class:"ref-mgr-header"},jl={class:"ref-mgr-title"},Gl={class:"ref-mgr-actions"},Wl={class:"ref-type-asm"},Xl={class:"ref-mgr-body"},Yl={class:"detail-header"},Zl={class:"detail-title"},ql={class:"detail-id"},Hl={class:"detail-name"},Jl={class:"detail-actions"},Ql={class:"field-section"},et={class:"field-section-title"},lt={key:1,class:"field-empty"},tt={class:"field-section"},at={class:"field-section-title"},nt={class:"dyn-row"},ot={key:1,class:"field-empty"},st={key:0,class:"field-section"},it={class:"field-section-title"},ut=["title"],dt={class:"field-section"},rt={class:"field-section-title"},ct={key:0,class:"field-empty"},mt={key:0,class:"method-grid script-method-grid"},pt=["disabled"],vt={key:0,class:"method-btn-spin"},ft={key:1,class:"method-btn-icon"},yt=["disabled"],bt={key:0,class:"method-btn-spin"},gt={key:1,class:"method-btn-icon"},_t={key:1,class:"field-empty"},kt={key:2,class:"method-grid"},ht=["disabled","onClick"],wt={key:0,class:"method-btn-spin"},$t={key:1,class:"method-btn-icon"},xt={class:"method-btn-label"},Ct={key:2,class:"method-btn-tag"},Vt=xe({__name:"ReflectionManagerPanel",props:{kind:{},kindLabel:{},title:{},emptyText:{},di
默认: ${d.defaultValue}`:""),`调用 ${l.label??l.methodName}`,{inputValue:d.defaultValue??""});i[d.name]=b.value}catch{return}D.value=l.methodName;try{const d=await C.execute(e,u.value.id,l.methodName,i);m.success(`${l.label??l.methodName} 完成${d.returnValue?`${d.returnValue}`:""}`),await U(u.value)}catch(d){m.error(`执行失败${d.message}`)}finally{D.value=null}return}D.value=l.methodName;try{const i=await C.execute(e,u.value.id,l.methodName);m.success(`${l.label??l.methodName} 完成${i.returnValue?`${i.returnValue}`:""}`),await U(u.value)}catch(i){m.error(`执行失败${i.message}`)}finally{D.value=null}}function Je(l){return l.typeName==="Boolean"?!0:l.value==="true"||l.value==="false"||l.value==="True"||l.value==="False"}function Qe(l){return l.key==="color"||l.key==="textColor"?!0:/^#[0-9a-fA-F]{3,8}$/.test(l.value)}function el(l){return l.typeName?["Int32","Int64","Single","Double","Decimal","UInt32","UInt64"].includes(l.typeName):!1}function ll(l){return l==="true"||l==="True"||l==="1"}function tl(l){if(l==null||l==="")return;const e=Number(l);return Number.isFinite(e)?e:void 0}function al(l){const e=l.typeName?.trim();return e&&e!=="String"?`${l.key} (${e})`:l.key}function nl(l){const e=(l.value??"").trim();return e||(l.typeName?` · ${l.typeName}`:"(空)")}function ol(l){if((l.typeName??"").endsWith("[]"))return!0;const i=(l.value??"").trim();return i.startsWith("[")||i.startsWith("{")}return Fl({onObjectCreated:()=>S(),onObjectDeleted:()=>S(),onObjectPatched:()=>{u.value&&U(u.value)},onObjectBatchChanged:()=>S()}),Ce(()=>g.kind,S),Ve(S),(l,e)=>{const i=bl,d=yl,b=Le,oe=hl,sl=kl,il=El,te=Pe,q=Te,ul=Be,ke=Ne,he=Fe,dl=De,rl=xl,cl=Cl,O=Vl,ce=$l,me=Nl,se=Dl,ml=Tl,N=Pl,pl=Bl,we=Sl,vl=Se;return o(),v("div",Ml,[n(Rl,{ref_key:"pluginPanelRef",ref:K,visible:!0,onChanged:S},null,512),c("div",Ol,[c("h2",jl,w($.title),1),c("div",Gl,[n(d,{modelValue:J.value,"onUpdate:modelValue":e[0]||(e[0]=t=>J.value=t),placeholder:`搜索 ${$.kindLabel} (id / 名称 / 类型)`,size:"small",clearable:"",class:"ref-mgr-search"},{prefix:a(()=>[n(i,null,{default:a(()=>[n(G(gl))]),_:1})]),_:1},8,["modelValue","placeholder"]),$.disableCreate?_("",!0):(o(),v(T,{key:0},[Re.value?(o(),r(il,{key:0,trigger:"click",disabled:X.value.length===0,onCommand:je},{dropdown:a(()=>[n(sl,null,{default:a(()=>[(o(!0),v(T,null,ae(X.value,t=>(o(),r(oe,{key:t.typeName,command:t.typeName},{default:a(()=>[p(w(t.label)+" ",1),c("span",Wl,"· "+w(t.shortName),1)]),_:2},1032,["command"]))),128)),X.value.length===0?(o(),r(oe,{key:0,disabled:""},{default:a(()=>[...e[20]||(e[20]=[p(" 未发现可创建的子类型 ",-1)])]),_:1})):_("",!0)]),_:1})]),default:a(()=>[n(b,{type:"primary",size:"small",icon:G($e),disabled:X.value.length===0},{default:a(()=>[p(" 新建"+w($.kindLabel),1),n(i,{class:"el-icon--right"},{default:a(()=>[n(G(_l))]),_:1})]),_:1},8,["icon","disabled"])]),_:1},8,["disabled"])):(o(),r(b,{key:1,type:"primary",size:"small",icon:G($e),onClick:e[1]||(e[1]=t=>ve())},{default:a(()=>[p(" 新建"+w($.kindLabel),1)]),_:1},8,["icon"]))],64)),n(te,{content:"重新扫描 ./plugins 目录加载新增 .dll,并重建可创建类型列表",placement:"bottom"},{default:a(()=>[n(b,{size:"small",loading:W.value,icon:G(wl),onClick:Me},{default:a(()=>[...e[21]||(e[21]=[p(" 刷新插件 ",-1)])]),_:1},8,["loading","icon"])]),_:1}),n(b,{size:"small",loading:A.value,icon:G(Ee),onClick:S},{default:a(()=>[...e[22]||(e[22]=[p("刷新",-1)])]),_:1},8,["loading","icon"])])]),c("div",Xl,[n(he,{shadow:"never",class:"ref-mgr-list-card"},{default:a(()=>[ze((o(),r(ul,{data:pe.value,stripe:"",border:"",size:"small","highlight-current-row":"",class:"ref-mgr-table",onCurrentChange:U},{default:a(()=>[n(q,{prop:"id",label:"ID",width:"70"}),n(q,{prop:"name",label:"名称","min-width":"160"}),n(q,{prop:"typeName",label:"类型",width:"160","show-overflow-tooltip":""}),$.showSummaryColumn?(o(),r(q,{key:0,prop:"summary",label:$.summaryLabel??"概况","min-width":"160","show-overflow-tooltip":""},null,8,["label"])):_("",!0),$.showStatusColumn?(o(),r(q,{key:1,prop: