diff --git a/ruoyi-admin/src/main/resources/static/6348.3a594d8c.async.js b/ruoyi-admin/src/main/resources/static/6348.3a594d8c.async.js
new file mode 100644
index 0000000..e63ba0b
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/static/6348.3a594d8c.async.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[6348],{56348:function(A,d,t){t.r(d),t.d(d,{default:function(){return P}});var m=t(97857),n=t.n(m),f=t(15009),g=t.n(f),v=t(54683),p=t(2453),o=v.Z.create({baseURL:{NODE_ENV:"production",PUBLIC_PATH:"/"}.REACT_APP_BASE_API,timeout:5e3});o.interceptors.request.use(function(r){return getToken()&&(r.headers.Authorization="Bearer "+getToken()),r},function(r){console.log(r),Promise.reject(r)}),o.interceptors.response.use(function(r){var a=r.data;return a.code!==200?(p.ZP.error(a.msg||"Error"),Promise.reject(a)):a},function(r){return console.log("err"+r),p.ZP.error(r.message),Promise.reject(r)});var y=o;function h(r){return y({url:"/register",method:"post",data:r})}var P={namespace:"register",state:{submitting:!1,error:null},effects:{submit:function(a,s){var i=a.payload,S=s.call,l=s.put;return g()().mark(function b(){var c,u;return g()().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l({type:"changeSubmitting",payload:!0});case 2:return e.prev=2,e.next=5,S(h,i);case 5:if(c=e.sent,c.code!==200){e.next=11;break}return e.next=9,l({type:"registerSuccess"});case 9:e.next=13;break;case 11:return e.next=13,l({type:"registerFailure",payload:c.msg});case 13:e.next=19;break;case 15:return e.prev=15,e.t0=e.catch(2),e.next=19,l({type:"registerFailure",payload:((u=e.t0.response)===null||u===void 0||(u=u.data)===null||u===void 0?void 0:u.msg)||"\u6CE8\u518C\u5931\u8D25"});case 19:return e.next=21,l({type:"changeSubmitting",payload:!1});case 21:case"end":return e.stop()}},b,null,[[2,15]])})()}},reducers:{changeSubmitting:function(a,s){var i=s.payload;return n()(n()({},a),{},{submitting:i})},registerSuccess:function(a){return n()(n()({},a),{},{error:null})},registerFailure:function(a,s){var i=s.payload;return n()(n()({},a),{},{error:i})}}}}}]);
