api-CC84krk5.js 9.3 KB

1
  1. import{_ as _e}from"./index-BcFWfTET.js";import{a7 as ge,a0 as ve,a8 as ye,a9 as ke,V as he,W as me,v as xe,w as Ae,S as Ce,G as Ie,aa as we,ab as Ee,I as Pe,ac as Te,t as be,R as Se,D as ce,ad as Ue,M as Oe,n as ze}from"./antd-B7v2hwFR.js";import{a as De,d as Me,u as Ge,c as Re}from"./admin-DIBUly_b.js";import{u as Be}from"./index-CL6hUm94.js";import{r as z,s as D,f as E,o as Le,a9 as h,a5 as r,aa as a,k as o,u as n,H as M,a2 as y,F as Q,aj as W,G as s,ad as m,ae as _,a3 as Ve,ai as $e}from"./vue-DApy1uhY.js";import"./context-BAOSbWj-.js";const je={key:0,flex:"","gap-2":""},qe={key:1,flex:"","gap-2":""},Fe={key:2,flex:"","gap-2":""},Ke=["onClick"],Ne=["onClick"],He=["onClick"],Je={key:3,"gap-2":""},at={__name:"api",setup(Qe){const x=z({pageSize:10,pageSizeOptions:["10","20","30","40"],current:1,total:100,showSizeChanger:!0,showQuickJumper:!0,showTotal:l=>`总数据位:${l}`,onChange(l,t){x.pageSize=t,x.current=l,w()}}),A=Be(),X=D([{title:"#",dataIndex:"id"},{title:"分组",dataIndex:"group"},{title:"API名称",dataIndex:"name"},{title:"API路由",dataIndex:"path"},{title:"Method",dataIndex:"method"},{title:"更新时间",dataIndex:"updatedAt"},{title:"操作",dataIndex:"action",width:200}]),Y={group:[{required:!0,message:"please enter group"}],method:[{required:!0,message:"please select an method"}],name:[{required:!0,message:"Please enter name"}],path:[{required:!0,message:"Please enter path"}]},C=D(!1),G=D([]),g=z({id:0,path:"",name:"",group:"",method:""}),p=E([]),R=l=>{l.length>1?p.value=[l[l.length-1]]:p.value=l,d.group=p.value[0]},d=z({id:0,path:"",name:"",group:"",method:"GET"}),B=()=>{Object.assign(d,{id:0,path:"",name:"",group:"",method:"GET"})},P=E(["large"]),Z=E([{key:"large",label:"默认",title:"默认"},{key:"middle",label:"中等",title:"中等"},{key:"small",label:"紧凑",title:"紧凑"}]),I=E(!1),S=E([]),c=E([]),ee=l=>{const t=new Map;l.forEach(i=>{const u=i.group;t.has(u)||(t.set(u,[]),c.value.includes(u)||c.value.push(u)),t.get(u).push(i)});const f=[];return t.forEach((i,u)=>{f.push({key:u,group:u,children:i})}),f};async function w(){if(!C.value){C.value=!0;try{const{data:l}=await De({...g,page:x.current,pageSize:x.pageSize});G.value=ee(l.list)??[],x.total=l.total??0,S.value=l.groups??[]}catch(l){console.log(l)}finally{C.value=!1}}}async function U(){x.current=1,await w()}async function te(){Object.assign(g,{id:0,path:"",name:"",group:"",method:""}),await w()}const ae=()=>{I.value=!1};async function oe(){const l=A.loading("提交中......");try{let t={};d.id>0?t=await Ge({...d}):t=await Re({...d}),t.code===0&&(await w(),I.value=!1,d.id>0?A.success("更新成功"):A.success("创建成功"))}catch(t){console.log(t)}finally{l()}}async function L(l){B(),p.value=[],l.group&&(d.group=l.group,p.value=[l.group]),I.value=!0}async function ne(l){B(),p.value=[l.group],Object.assign(d,l),I.value=!0}async function le(l){if(l.children&&l.children.length>0){A.error("存在子节点,不允许删除");return}const t=A.loading("删除中......");try{(await Me({id:l.id})).code===0&&await w(),A.success("删除成功")}catch(f){console.log(f)}finally{t()}}function se(){I.value=!1,U()}function de(l){P.value[0]=l.key}return Le(()=>{w()}),(l,t)=>{const f=me,i=Ae,u=xe,k=he,v=ke,T=Ie,O=Ce,V=ye,$=ve,j=ge,q=be,re=Oe,ie=ce,b=Ee,ue=we,pe=ze,fe=_e;return r(),h(fe,null,{default:a(()=>[o(j,{"mb-4":""},{default:a(()=>[o($,{model:n(g)},{default:a(()=>[o(V,{gutter:[15,0]},{default:a(()=>[o(v,{span:4},{default:a(()=>[o(k,{name:"group",label:"API分组"},{default:a(()=>[o(f,{style:{display:"none"},value:n(g).group,"onUpdate:value":t[0]||(t[0]=e=>n(g).group=e),placeholder:"描述API的功能"},null,8,["value"]),o(u,{value:n(p),"onUpdate:value":t[1]||(t[1]=e=>M(p)?p.value=e:null),mode:"tags","max-tag-count":1,onChange:R},{default:a(()=>[(r(!0),y(Q,null,W(n(S),e=>(r(),h(i,{key:e,value:e},{default:a(()=>[s(m(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})]),_:1}),o(v,{span:4},{default:a(()=>[o(k,{name:"name",label:"API名称"},{default:a(()=>[o(f,{value:n(g).name,"onUpdate:value":t[2]||(t[2]=e=>n(g).name=e)},null,8,["value"])]),_:1})]),_:1}),o(v,{span:4},{default:a(()=>[o(k,{name:"name",label:"API路由"},{default:a(()=>[o(f,{value:n(g).path,"onUpdate:value":t[3]||(t[3]=e=>n(g).path=e)},null,8,["value"])]),_:1})]),_:1}),o(v,{span:4},{default:a(()=>[o(k,{name:"name",label:"Method"},{default:a(()=>[o(u,{value:n(g).method,"onUpdate:value":t[4]||(t[4]=e=>n(g).method=e),placeholder:""},{default:a(()=>[o(i,{value:""},{default:a(()=>t[11]||(t[11]=[s("All")])),_:1}),o(i,{value:"GET"},{default:a(()=>t[12]||(t[12]=[s("GET")])),_:1}),o(i,{value:"POST"},{default:a(()=>t[13]||(t[13]=[s("POST")])),_:1}),o(i,{value:"PUT"},{default:a(()=>t[14]||(t[14]=[s("PUT")])),_:1}),o(i,{value:"DELETE"},{default:a(()=>t[15]||(t[15]=[s("DELETE")])),_:1})]),_:1},8,["value"])]),_:1})]),_:1}),o(v,{span:4},{default:a(()=>[o(O,{flex:"","justify-end":"","w-full":""},{default:a(()=>[o(T,{loading:n(C),type:"primary",onClick:U},{default:a(()=>t[16]||(t[16]=[s(" 查询 ")])),_:1},8,["loading"]),o(T,{loading:n(C),onClick:te},{default:a(()=>t[17]||(t[17]=[s(" 重置 ")])),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),o(j,{title:"接口列表"},{extra:a(()=>[o(O,{size:"middle"},{default:a(()=>[o(T,{type:"primary",onClick:L},{icon:a(()=>[o(n(Te))]),default:a(()=>[t[18]||(t[18]=s(" 添加API "))]),_:1}),o(q,{title:"刷新"},{default:a(()=>[o(n(Se),{onClick:U})]),_:1}),o(q,{title:"密度"},{default:a(()=>[o(ie,{trigger:"click"},{overlay:a(()=>[o(re,{"selected-keys":n(P),"onUpdate:selectedKeys":t[5]||(t[5]=e=>M(P)?P.value=e:null),items:n(Z),onClick:de},null,8,["selected-keys","items"])]),default:a(()=>[o(n(Ue))]),_:1})]),_:1})]),_:1})]),default:a(()=>[o(ue,{loading:n(C),columns:n(X),"data-source":n(G),defaultExpandedRowKeys:n(c),size:n(P)[0],pagination:n(x),"expand-column-width":100},{bodyCell:a(e=>{var F,K,N,H;return[((F=e==null?void 0:e.column)==null?void 0:F.dataIndex)==="name"?(r(),y("div",je,[Ve("span",null,m(e==null?void 0:e.record.name),1)])):_("",!0),((K=e==null?void 0:e.column)==null?void 0:K.dataIndex)==="method"?(r(),y("div",qe,[(e==null?void 0:e.record.method)==="GET"?(r(),h(b,{key:0,color:"success"},{default:a(()=>[s(m(e==null?void 0:e.record.method),1)]),_:2},1024)):_("",!0),(e==null?void 0:e.record.method)==="POST"?(r(),h(b,{key:1,color:"warning"},{default:a(()=>[s(m(e==null?void 0:e.record.method),1)]),_:2},1024)):_("",!0),(e==null?void 0:e.record.method)==="PUT"?(r(),h(b,{key:2,color:"pink"},{default:a(()=>[s(m(e==null?void 0:e.record.method),1)]),_:2},1024)):_("",!0),(e==null?void 0:e.record.method)==="DELETE"?(r(),h(b,{key:3,color:"error"},{default:a(()=>[s(m(e==null?void 0:e.record.method),1)]),_:2},1024)):_("",!0)])):_("",!0),((N=e==null?void 0:e.column)==null?void 0:N.dataIndex)==="action"?(r(),y("div",Fe,[e!=null&&e.record.key?(r(),y("a",{key:0,onClick:J=>L(e==null?void 0:e.record)}," 添加API ",8,Ke)):_("",!0),e!=null&&e.record.key?_("",!0):(r(),y("a",{key:1,onClick:J=>ne(e==null?void 0:e.record)}," 编辑 ",8,Ne)),e!=null&&e.record.key?_("",!0):(r(),y("a",{key:2,"c-error":"",onClick:J=>le(e==null?void 0:e.record)}," 删除 ",8,He))])):_("",!0),((H=e==null?void 0:e.column)==null?void 0:H.dataIndex)==="title"?(r(),y("div",Je,[e.record.icon?(r(),h($e(Pe[e.record.icon]),{key:0})):_("",!0),s(" "+m(e.record.title),1)])):_("",!0)]}),_:1},8,["loading","columns","data-source","defaultExpandedRowKeys","size","pagination"])]),_:1}),o(pe,{title:(n(d).id>0?"编辑":"添加")+"API",width:550,open:n(I),"body-style":{paddingBottom:"80px"},"footer-style":{textAlign:"right"},onClose:se},{extra:a(()=>[o(O,null,{default:a(()=>[o(T,{onClick:ae},{default:a(()=>t[23]||(t[23]=[s("取消")])),_:1}),o(T,{type:"primary",onClick:oe},{default:a(()=>t[24]||(t[24]=[s("提交")])),_:1})]),_:1})]),default:a(()=>[o($,{model:n(d),rules:Y,layout:"horizontal"},{default:a(()=>[o(V,{gutter:16},{default:a(()=>[o(v,{span:24},{default:a(()=>[o(k,{label:"API分组",name:"group"},{default:a(()=>[o(f,{style:{display:"none"},value:n(d).group,"onUpdate:value":t[6]||(t[6]=e=>n(d).group=e),placeholder:"描述API的功能"},null,8,["value"]),o(u,{value:n(p),"onUpdate:value":t[7]||(t[7]=e=>M(p)?p.value=e:null),mode:"tags",placeholder:"分组不存在则自动创建","max-tag-count":1,onChange:R,style:{width:"200px"}},{default:a(()=>[(r(!0),y(Q,null,W(n(S),e=>(r(),h(i,{key:e,value:e},{default:a(()=>[s(m(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})]),_:1}),o(v,{span:24},{default:a(()=>[o(k,{label:"API名称",name:"name"},{default:a(()=>[o(f,{value:n(d).name,"onUpdate:value":t[8]||(t[8]=e=>n(d).name=e),placeholder:"描述API的功能"},null,8,["value"])]),_:1})]),_:1}),o(v,{span:24},{default:a(()=>[o(k,{label:"Method",name:"method"},{default:a(()=>[o(u,{value:n(d).method,"onUpdate:value":t[9]||(t[9]=e=>n(d).method=e),placeholder:""},{default:a(()=>[o(i,{value:"GET"},{default:a(()=>t[19]||(t[19]=[s("GET")])),_:1}),o(i,{value:"POST"},{default:a(()=>t[20]||(t[20]=[s("POST")])),_:1}),o(i,{value:"PUT"},{default:a(()=>t[21]||(t[21]=[s("PUT")])),_:1}),o(i,{value:"DELETE"},{default:a(()=>t[22]||(t[22]=[s("DELETE")])),_:1})]),_:1},8,["value"])]),_:1})]),_:1}),o(v,{span:24},{default:a(()=>[o(k,{label:"API地址",name:"path"},{default:a(()=>[o(f,{value:n(d).path,"onUpdate:value":t[10]||(t[10]=e=>n(d).path=e),placeholder:"示例:/v1/users"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["title","open"])]),_:1})}}};export{at as default};