"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[3272],{33272:function(H,i,n){n.r(i);var T=n(15009),d=n.n(T),j=n(99289),f=n.n(j),C=n(5574),u=n.n(C),r=n(67294),M=n(9669),A=n.n(M),e=n(85893),O=function(m){var c=m.userLevel,S=m.requiredLevel,W=(0,r.useState)(null),o=u()(W,2),L=o[0],x=o[1],B=(0,r.useState)(""),h=u()(B,2),p=h[0],R=h[1],U=(0,r.useState)(""),g=u()(U,2),b=g[0],y=g[1],I=(0,r.useState)(""),v=u()(I,2),E=v[0],l=v[1],K=function(a){x(a.target.files[0])},F=function(){var t=f()(d()().mark(function a(D){var s,P;return d()().wrap(function(_){for(;;)switch(_.prev=_.next){case 0:if(D.preventDefault(),!(c<S)){_.next=4;break}return l("\u60A8\u7684\u7528\u6237\u7B49\u7EA7\u4E0D\u8DB3\uFF0C\u65E0\u6CD5\u4E0A\u4F20\u79CD\u5B50\u3002"),_.abrupt("return");case 4:return s=new FormData,s.append("file",L),s.append("seedName",p),s.append("tags",b),_.prev=8,_.next=11,A().post("/api/upload",s,{headers:{"Content-Type":"multipart/form-data"}});case 11:P=_.sent,l(P.data.message),_.next=18;break;case 15:_.prev=15,_.t0=_.catch(8),l("\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002");case 18:case"end":return _.stop()}},a,null,[[8,15]])}));return function(D){return t.apply(this,arguments)}}();return(0,e.jsxs)("div",{children:[(0,e.jsx)("h1",{children:"\u8D44\u6E90\u4E0A\u4F20"}),(0,e.jsxs)("form",{onSubmit:F,children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{children:"\u79CD\u5B50\u540D\u79F0:"}),(0,e.jsx)("input",{type:"text",value:p,onChange:function(a){return R(a.target.value)},required:!0})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{children:"\u6807\u7B7E:"}),(0,e.jsx)("input",{type:"text",value:b,onChange:function(a){return y(a.target.value)}})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{children:"\u9009\u62E9\u6587\u4EF6:"}),(0,e.jsx)("input",{type:"file",onChange:K,required:!0})]}),(0,e.jsx)("button",{type:"submit",children:"\u4E0A\u4F20"})]}),E&&(0,e.jsx)("p",{children:E})]})};i.default=O}}]);
