2 lines
5.7 KiB
Java
2 lines
5.7 KiB
Java
var S=(x,r,f)=>new Promise((e,t)=>{var c=s=>{try{d(f.next(s))}catch(g){t(g)}},_=s=>{try{d(f.throw(s))}catch(g){t(g)}},d=s=>s.done?e(s.value):Promise.resolve(s.value).then(c,_);d((f=f.apply(x,r)).next())});import{f as u,ah as h,ar as w,as as C,k as v,aF as k,au as i,ag as T,aC as B,aO as K,F as E,aD as J,at as R,av as y,A as j,G}from"./vue-vendor-C7Zq48Yl.js";import{M as Q}from"./BasicModal-0sAdFEk_.js";import"./index-Du0A3ksf.js";import{H as q}from"./antd-vue-vendor-BPnV8VqP.js";import{list as W}from"./AiragMcp.api-CieQuCEg.js";import{M as X,ak as Y,b as Z,d as $}from"./index-BI6CMai0.js";import{i as ee}from"./mcpLogo-BHpF1lxc.js";import"./ModalHeader-keHdAHWH.js";import"./useTimeout-DDl4l82I.js";import"./vxe-table-vendor-B88kchpX.js";import"./index-DeEq83Ov.js";import"./useWindowSizeFn-PRZSD86C.js";import"./index-pxs5MULf.js";import"./index-BgYCgfME.js";import"./index-f8O7TghW.js";import"./useIntersectionObserver-BMxdTqP3.js";const ne={name:"AiAppAddMcpModal",components:{Pagination:q,BasicModal:Q,Icon:X},emits:["success","register"],setup(x,{emit:r}){const f=u("添加关联MCP"),e=u([]),t=u([]),c=u([]),_=u(1),d=u(10),s=u(0),g=u(""),I=u(["10","20","30"]),[M,{closeModal:z,setModalProps:O}]=Y(n=>S(null,null,function*(){t.value=n.pluginIds?[...n.pluginIds]:[],c.value=n.pluginDataList?[...n.pluginDataList]:[],O({minHeight:500,bodyStyle:{padding:"10px"}}),b()}));function a(n){return n?Z(n):ee}function m(){return S(this,null,function*(){const n=c.value.map(o=>({pluginId:o.id,pluginName:o.name,category:o.category||"mcp"}));r("success",t.value,c.value,n),N()})}function N(){z()}function D(n){const o=n.id,l=e.value.find(P=>P.id===o);if(l&&(l.checked=!l.checked),!t.value||t.value.length===0){t.value.push(o),c.value.push(n);return}const p=t.value.findIndex(P=>P===o);p===-1?(t.value.push(o),c.value.push(n)):(t.value.splice(p,1),c.value.splice(p,1))}function b(){const n={pageNo:_.value,pageSize:d.value,status:"enable",synced:1,name:g.value};W(n).then(o=>{if(o.records){const l=o.records||[];if(t.value.length>0)for(const p of l)t.value.includes(p.id)&&(p.checked=!0);e.value=l,s.value=o.total}else e.value=[],s.value=0})}function A(n,o){_.value=n,d.value=o,b()}function F(){t.value=[],c.value=[],e.value.forEach(n=>n.checked=!1)}function H(n,o){if(n.target.checked)t.value.push(o.id),c.value.push(o);else{const l=t.value.findIndex(p=>p===o.id);l>-1&&(t.value.splice(l,1),c.value.splice(l,1))}}function L(n){if(!n)return 0;let o=n;if(typeof n=="string")try{o=JSON.parse(n)}catch(p){return 0}const l=o.tool_count||o.toolCount||0;return typeof l=="number"?l:parseInt(l,10)||0}function U(n){switch(n){case"sse":return"ant-design:thunderbolt-outlined";case"stdio":return"ant-design:code-outlined";default:return"ant-design:appstore-outlined"}}function V(n){return n==="plugin"?"ant-design:api-outlined":"ant-design:tool-twotone"}return{registerModal:M,title:f,handleOk:m,handleCancel:N,mcpOption:e,pluginIds:t,pluginDataList:c,pageNo:_,pageSize:d,pageSizeOptions:I,total:s,handlePageChange:A,searchText:g,loadMcpData:b,handleClearClick:F,handleChange:H,handleSelect:D,getIcon:a,getToolCount:L,getTypeIcon:U,getCategoryIcon:V}}},oe={class:"p-2"},ae={class:"flex header"},te={class:"mcp-card-header"},le={class:"mcp-card-left"},ce=["src"],se={class:"mcp-card-info"},ie=["title"],re={class:"mcp-card-meta"},de=["title"],pe={class:"pill-text"},ue=["title"],ge={class:"pill-text"},he={key:0,class:"use-select"};function fe(x,r,f,e,t,c){const _=h("a-input"),d=h("Icon"),s=h("a-checkbox"),g=h("a-card"),I=h("a-col"),M=h("a-row"),z=h("Pagination"),O=h("BasicModal");return C(),w("div",oe,[v(O,{destroyOnClose:"",onRegister:e.registerModal,canFullscreen:!1,width:"600px",title:e.title,onOk:e.handleOk,onCancel:e.handleCancel},{default:k(()=>[i("div",ae,[v(_,{onKeyup:K(e.loadMcpData,["enter"]),class:"header-search",size:"small",value:e.searchText,"onUpdate:value":r[0]||(r[0]=a=>e.searchText=a),placeholder:"请输入MCP名称,回车搜索"},null,8,["onKeyup","value"])]),v(M,{span:24},{default:k(()=>[(C(!0),w(E,null,J(e.mcpOption,a=>(C(),B(I,{span:12,key:a.id,onClick:m=>e.handleSelect(a)},{default:k(()=>[v(g,{"body-style":{padding:"10px 12px"},hoverable:"",class:R(["mcp-card",{"is-active":a.checked}])},{default:k(()=>[i("div",te,[i("div",le,[i("img",{class:"mcp-card-icon",src:e.getIcon(a.icon)},null,8,ce),i("div",se,[i("div",{class:"mcp-card-name",title:a.name},y(a.name),9,ie),i("div",re,[i("div",{class:"pill type-pill",title:"类型: "+(a.category==="plugin"?"插件":"MCP")},[v(d,{icon:e.getCategoryIcon(a.category),class:"pill-icon"},null,8,["icon"]),i("span",pe,y(a.category==="plugin"?"插件":"MCP"),1)],8,de),i("div",{class:"pill tool-pill",title:e.getToolCount(a.metadata)+" 个工具"},[v(d,{icon:"ant-design:tool-outlined",class:"pill-icon"}),i("span",ge,y(e.getToolCount(a.metadata)),1)],8,ue)])])]),v(s,{checked:a.checked,"onUpdate:checked":m=>a.checked=m,onClick:r[1]||(r[1]=j(()=>{},["stop"])),class:"mcp-card-checker",onChange:m=>e.handleChange(m,a)},null,8,["checked","onUpdate:checked","onChange"])])]),_:2},1032,["class"])]),_:2},1032,["onClick"]))),128))]),_:1}),e.pluginIds.length>0?(C(),w("div",he,[G(" 已选择 "+y(e.pluginIds.length)+" 个MCP ",1),i("span",{style:{"margin-left":"8px",color:"#3d79fb",cursor:"pointer"},onClick:r[2]||(r[2]=(...a)=>e.handleClearClick&&e.handleClearClick(...a))},"清空")])):T("",!0),e.mcpOption.length>0?(C(),B(z,{key:1,current:e.pageNo,"page-size":e.pageSize,"page-size-options":e.pageSizeOptions,total:e.total,showQuickJumper:!0,showSizeChanger:!0,onChange:e.handlePageChange,class:"list-footer",size:"small"},null,8,["current","page-size","page-size-options","total","onChange"])):T("",!0)]),_:1},8,["onRegister","title","onOk","onCancel"])])}const Be=$(ne,[["render",fe],["__scopeId","data-v-72258897"]]);export{Be as default};
|