import{aM as w,I as K,r as G,aK as H,F as Q,a9 as W,a5 as X,a8 as Y,K as Z,a7 as ee}from"./index.17037962789732.js";import"./index.170379627897338.js";import"./index.170379627897315.js";import"./index.170379627897339.js";import"./index.170379627897316.js";import"./index.170379627897317.js";import"./index.170379627897318.js";import"./index.170379627897319.js";import"./index.1703796278973305.js";import"./index.1703796278973301.js";import"./index.1703796278973302.js";import"./index.170379627897332.js";import"./index.1703796278973303.js";import"./index.170379627897314.js";import"./index.1703796278973304.js";import{_ as te}from"./index.vue_vue_type_script_setup_true_name_PermissionButton_lang.1703796278973.js";import{s as ae}from"./index.1703796278973307.js";import oe from"./InputCard.1703796278973.js";import{b as se}from"./system.1703796278973.js";import{f as ne,g as D}from"./utils.17037962789732.js";import{d as le,k as S,v as pe,l as O,r as re,o as m,x as N,z as r,A as P,b as n,u as t,a as u,c as y,B as x,F as ie,h as me,t as U,G as ce,H as ue}from"./vue.1703796278973.js";import{_ as de}from"./_plugin-vue_export-helper.1703796278973.js";import"./index.17037962789733.js";import"./dayjs.min.1703796278973.js";import"./isArray.1703796278973.js";import"./editor.api.1703796278973.js";import"./preload-helper.1703796278973.js";import"./monaco.contribution.1703796278973.js";import"./index.170379627897320.js";import"./index.170379627897321.js";import"./permission.1703796278973.js";import"./comm.1703796278973.js";import"./index.170379627897333.js";import"./index.170379627897334.js";import"./default.1703796278973.js";import"./consts.1703796278973.js";import"./404.1703796278973.js";const V=f=>(ce("data-v-f7473fdf"),f=f(),ue(),f),_e={class:"api-test-container"},fe={class:"top"},ve={class:"input"},ge={class:"api-card"},he=V(()=>r("h5",null,"请求参数",-1)),ye={class:"content"},be={key:0,class:"table"},ke={key:0,class:"pager"},Se={class:"api-card"},Ne=V(()=>r("h5",null,"响应参数",-1)),xe={class:"content"},Ae=le({__name:"ApiTest",props:{selectApi:null,schemas:null},setup(f){const o=f,I=S({}),j=S(),A=S(),e=pe({tableColumns:[{title:"参数名称",dataIndex:"name",key:"name",scopedSlots:!0},{title:"参数值",dataIndex:"value",key:"value",scopedSlots:!0},{title:"操作",dataIndex:"action",key:"action",width:"80px",scopedSlots:!0}],pageSize:10,pageNum:1,params:{paramsTable:w.cloneDeep(o.selectApi.parameters||[])},code:"",addRow:()=>{v.value.length===10&&(e.pageNum=e.pageNum+1),e.params.paramsTable.push({name:"",value:""})},clickDel:a=>{v.value.length===1&&e.pageNum>1&&(e.pageNum=e.pageNum-1),e.params.paramsTable.splice(a,1)}}),v=O(()=>{const a=(e.pageNum-1)*e.pageSize,s=e.pageNum*e.pageSize;return e.params.paramsTable.slice(a,s)});let _={};const g=S("");(()=>{var a;o.selectApi.requestBody&&(_=o.selectApi.requestBody.content["application/json"].schema,g.value=_.$ref||((a=_==null?void 0:_.items)==null?void 0:a.$ref))})();const q=()=>{v.value.length?A.value&&A.value.validate().then(()=>{z()}):z()},z=()=>{var b;const a=w.toLower(o.selectApi.method),s={get:"get",post:"post",patch:"patch",put:"put",delete:"remove"};let l=(b=o.selectApi)==null?void 0:b.url;const c={};e.params.paramsTable.forEach(i=>{a==="get"&&(c[i.name]=i.value),l.includes(`{${i.name}}`)&&(l=l.replace(`{${i.name}}`,i.value))});const h={...JSON.parse(e.code||"{}"),...c};se[s[a]](l,h).then(i=>{var k;Object.keys(h).length===0&&g.value&&(e.code=JSON.stringify(R()),(k=j.value)==null||k.editorFormat()),I.value=i})};function R(){var c;if(!o.selectApi.requestBody)return{};if(!g.value)return"";const a=(c=g.value)==null?void 0:c.split("/").pop(),s=_.type||"",l=ne(o.schemas,a);return s==="array"?[D(o.schemas,l,3)]:D(o.schemas,l,3)}const F=O(()=>{const a=Math.ceil(e.params.paramsTable.length/e.pageSize);return new Array(a).fill(1)});return(a,s)=>{var B;const l=K,c=G,h=re("AIcon"),b=te,i=H,k=Q,J=W,L=X,$=Y,E=Z,M=ee;return m(),N("div",_e,[r("div",fe,[r("h5",null,P(o.selectApi.summary),1),r("div",ve,[n(oe,{value:o.selectApi.method},null,8,["value"]),n(l,{value:(B=o.selectApi)==null?void 0:B.url,disabled:""},null,8,["value"]),r("span",{class:"send",onClick:q},"发送")])]),r("div",ge,[he,r("div",ye,[t(v).length?(m(),N("div",be,[n(k,{model:t(e).params,ref_key:"formRef",ref:A},{default:u(()=>[n(i,{columns:t(e).tableColumns,dataSource:t(v),pagination:!1,size:"small",bordered:""},{bodyCell:u(({column:p,record:d,index:T})=>[p.key==="name"?(m(),y(c,{key:0,name:["paramsTable",T+(t(e).pageNum-1)*t(e).pageSize,"name"],rules:[{required:!0,message:"该字段是必填字段"}]},{default:u(()=>[n(l,{value:d.name,"onUpdate:value":C=>d.name=C},null,8,["value","onUpdate:value"])]),_:2},1032,["name"])):p.key==="value"?(m(),y(c,{key:1,name:["paramsTable",T+(t(e).pageNum-1)*t(e).pageSize,"value"],rules:[{required:!0,message:"该字段是必填字段"}]},{default:u(()=>[n(l,{value:d.value,"onUpdate:value":C=>d.value=C},null,8,["value","onUpdate:value"])]),_:2},1032,["name"])):p.key==="action"?(m(),y(b,{key:2,type:"text",popConfirm:{title:"确定删除",onConfirm:()=>t(e).clickDel(T)}},{default:u(()=>[n(h,{type:"DeleteOutlined"})]),_:2},1032,["popConfirm"])):x("",!0)]),_:1},8,["columns","dataSource"])]),_:1},8,["model"]),t(e).params.paramsTable.length>10&&t(e).pageSize?(m(),N("div",ke,[n(L,{value:t(e).pageNum,"onUpdate:value":s[0]||(s[0]=p=>t(e).pageNum=p),style:{width:"60px"}},{default:u(()=>[(m(!0),N(ie,null,me(t(F),(p,d)=>(m(),y(J,{value:d+1},{default:u(()=>[U(P(d+1),1)]),_:2},1032,["value"]))),256))]),_:1},8,["value"]),n($,{pageSize:t(e).pageSize,current:t(e).pageNum,"onUpdate:current":s[1]||(s[1]=p=>t(e).pageNum=p),total:t(e).params.paramsTable.length,hideOnSinglePage:"",style:{"text-align":"center"}},null,8,["pageSize","current","total"])])):x("",!0),n(E,{type:"dashed",onClick:t(e).addRow,style:{width:"100%","text-align":"center","margin-top":"5px"}},{default:u(()=>[n(h,{type:"PlusOutlined"}),U("新增 ")]),_:1},8,["onClick"])])):x("",!0),t(g)?(m(),y(M,{key:1,ref_key:"editorRef",ref:j,language:"json",style:{height:"100%"},theme:"vs",modelValue:t(e).code,"onUpdate:modelValue":s[2]||(s[2]=p=>t(e).code=p)},null,8,["modelValue"])):x("",!0)])]),r("div",Se,[Ne,r("div",xe,[n(t(ae),{value:t(I),copyable:""},null,8,["value"])])])])}}});const mt=de(Ae,[["__scopeId","data-v-f7473fdf"]]);export{mt as default};