0){l=!1,s.operating[e.mode]=!1;break}s.operating[e.mode]=!1}if(l){u=E;break}}if(-1!==u){for(var T=u,P=u+o;Tt.containerPos.right&&e.start>=D&&(D=e.start,O=e)}),O){e.channel_id=O.channel_id;for(var L=O.channel_id[0],M=O.channel_id[0]+O.channel_id[1];L-1&&r.queue[e.mode].splice(o,1),r.operating[e.mode]=!1}e.options.loop&&this.danmu.bulletBtn.main.playedData.push(e.options)}},{key:"resetArea",value:function(){var e=this.danmu.container,t=this,n=e.getBoundingClientRect();t.width=n.width,t.height=n.height,t.danmu.config.area&&t.danmu.config.area.start>=0&&t.danmu.config.area.end>=t.danmu.config.area.start&&("b2t"===t.direction?t.width=t.width*(t.danmu.config.area.end-t.danmu.config.area.start):t.height=t.height*(t.danmu.config.area.end-t.danmu.config.area.start)),t.container=e;var r,a=t.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12);r="b2t"===t.direction?Math.floor(t.width/a):Math.floor(t.height/a);for(var i=[],o=0;oi.length){for(var d=function(e){i[e]={id:e,queue:{scroll:[],top:[],bottom:[]},operating:{scroll:!1,top:!1,bottom:!1},bookId:{}},["scroll","top","bottom"].forEach(function(n){if("top"===n&&e>Math.floor(i.length/2));else if("bottom"===n&&e<=Math.floor(i.length/2));else{var r="bottom"===n?e-i.length+t.channels.length:e;t.channels[r].queue[n].forEach(function(o,l){if(o.el){if(i[e].queue[n].push(o),"bottom"===n&&o.channel_id[0]+o.channel_id[1]-1===r){var s=[].concat(o.channel_id);o.channel_id=[s[0]-t.channels.length+i.length,s[1]],o.top=o.channel_id[0]*a,t.danmu.config.area&&t.danmu.config.area.start&&(o.top+=t.containerHeight*t.danmu.config.area.start),o.topInit()}o.resized||(o.pauseMove(t.containerPos,!1),o.startMove(t.containerPos),o.resized=!0)}t.channels[r].queue[n].splice(l,1)})}})},p=0;p0&&["scroll","top","bottom"].forEach(function(e){for(var n=0;n=0&&t.danmu.config.area.end>=t.danmu.config.area.start&&("b2t"===t.direction?t.width=t.width*(t.danmu.config.area.end-t.danmu.config.area.start):t.height=t.height*(t.danmu.config.area.end-t.danmu.config.area.start)),t.container=e;var r,a=t.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12);r="b2t"===t.direction?Math.floor(t.width/a):Math.floor(t.height/a);for(var i=[],o=0;o0&&["scroll","top","bottom"].forEach(function(e){for(var t=0;t=0&&r.danmu.config.area.end>=r.danmu.config.area.start&&("b2t"===r.direction?r.width=r.width*(r.danmu.config.area.end-r.danmu.config.area.start):r.height=r.height*(r.danmu.config.area.end-r.danmu.config.area.start)),r.container=n;var i,o=r.danmu.config.channelSize||(/mobile/gi.test(navigator.userAgent)?10:12);i="b2t"===r.direction?Math.floor(r.width/o):Math.floor(r.height/o);for(var l=[],s=0;s100?200:l.width/10));n.realTime&&(s=0),this.el.style.left=l.width+s+"px",this.containerPos=l}return a(e,[{key:"attach",value:function(){if(this.container.appendChild(this.el),this.elPos=this.el.getBoundingClientRect(),"b2t"===this.direction?(this.width=this.elPos.height,this.height=this.elPos.width):(this.width=this.elPos.width,this.height=this.elPos.height),this.moveV){var e=this.containerPos;this.duration=(e.width+this.width)/this.moveV*1e3}this.danmu.config.mouseControl&&this.el.addEventListener("mouseover",this.mouseoverFun.bind(this))}},{key:"mouseoverFun",value:function(e){this.danmu.mouseControl&&this.danmu.config.mouseControlPause||"waiting"===this.status||"end"===this.status||this.danmu.emit("bullet_hover",{bullet:this,event:e})}},{key:"detach",value:function(){var e=this;e.container&&e.el&&e.domObj.unuse(e.el),e.danmu.off("changeDirection",function(t){e.direction=t})}},{key:"topInit",value:function(){if("b2t"===this.direction){var e=this.containerPos;this.el.style.transformOrigin="left top",this.el.style.transform="translateX(-"+this.top+"px) translateY("+e.height+"px) translateZ(0px) rotate(90deg)",this.el.style.transition="transform 0s linear 0s"}else this.el.style.top=this.top+"px"}},{key:"pauseMove",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this;if("paused"!==this.status&&("forcedPause"!==n.status&&(this.status="paused"),clearTimeout(n.removeTimer),this.el))if(this.el.style.willChange="auto","scroll"===this.mode){if(t){var r,a=((new Date).getTime()-n.moveTime)/1e3*this.moveV;r=n.moveMoreS-a>=0?"b2t"===this.direction?(n.moveMoreS-a)/n.moveContainerHeight*e.height:(n.moveMoreS-a)/n.moveContainerWidth*e.width:n.moveMoreS-a,"b2t"===this.direction?this.el.style.transform="translateX(-"+this.top+"px) translateY("+r+"px) translateZ(0px) rotate(90deg)":this.el.style.left=r+"px"}else"b2t"===this.direction?this.el.style.transform="translateX(-"+this.top+"px) translateY("+(this.el.getBoundingClientRect().top-e.top)+"px) translateZ(0px) rotate(90deg)":this.el.style.left=this.el.getBoundingClientRect().left-e.left+"px";"b2t"===this.direction||(this.el.style.transform="translateX(0px) translateY(0px) translateZ(0px)"),this.el.style.transition="transform 0s linear 0s"}else this.pastDuration&&this.startTime?this.pastDuration=this.pastDuration+(new Date).getTime()-this.startTime:this.pastDuration=1}},{key:"startMove",value:function(e,t){var n=this;if(n.hasMove||(n.danmu.emit("bullet_start",n),n.hasMove=!0),("forcedPause"!==n.status||t)&&this.el&&"start"!==this.status)if(this.status="start",this.el.style.willChange="transform","scroll"===this.mode)if("b2t"===this.direction){this.moveV=(e.height+this.height)/this.duration*1e3;var r=(n.el.getBoundingClientRect().bottom-e.top)/this.moveV;this.el.style.transition="transform "+r+"s linear 0s",setTimeout(function(){n.el&&(n.el.style.transform="translateX(-"+n.top+"px) translateY(-"+n.height+"px) translateZ(0px) rotate(90deg)",n.moveTime=(new Date).getTime(),n.moveMoreS=n.el.getBoundingClientRect().top-e.top,n.moveContainerHeight=e.height,n.removeTimer=setTimeout(o,1e3*r))},20)}else{this.moveV=(e.width+this.width)/this.duration*1e3;var a=(n.el.getBoundingClientRect().right-e.left)/this.moveV;this.el.style.transition="transform "+a+"s linear 0s",setTimeout(function(){n.el&&(n.el.style.transform="translateX(-"+(n.el.getBoundingClientRect().right-e.left)+"px) translateY(0px) translateZ(0px)",n.moveTime=(new Date).getTime(),n.moveMoreS=n.el.getBoundingClientRect().left-e.left,n.moveContainerWidth=e.width,n.removeTimer=setTimeout(o,1e3*a))},20)}else{this.el.style.left="50%",this.el.style.margin="0 0 0 -"+this.width/2+"px",this.pastDuration||(this.pastDuration=1);var i=this.duration>=this.pastDuration?this.duration-this.pastDuration:0;this.removeTimer=setTimeout(o,i),this.startTime=(new Date).getTime()}function o(){if(n.el)if("scroll"===n.mode){var e=n.containerPos,t=n.el.getBoundingClientRect();"b2t"===n.direction?t&&t.bottom<=e.top+100?(n.status="end",n.remove()):(n.pauseMove(e),"paused"!==n.danmu.bulletBtn.main.status&&n.startMove(e)):t&&t.right<=e.left+100?(n.status="end",n.remove()):(n.pauseMove(e),"paused"!==n.danmu.bulletBtn.main.status&&n.startMove(e))}else n.status="end",n.remove()}}},{key:"remove",value:function(){var e=this;this.removeTimer&&clearTimeout(this.removeTimer),e.el&&e.el.parentNode&&(e.el.style.willChange="auto",this.danmu.off("changeDirection",function(t){e.direction=t}),this.domObj.unuse(e.el),e.el.parentNode.removeChild(e.el),e.el=null,e.danmu.emit("bullet_remove",{bullet:e}))}},{key:"setFontSize",value:function(e){this.el&&(this.el.style.fontSize=e)}},{key:"setLikeDom",value:function(e,t){if(e&&(Object.keys(t).forEach(function(n){e.style[n]=t[n]}),e.className="danmu-like",this.el)){var n=this.el.querySelector(".danmu-like");n&&this.el.removeChild(n),this.el.innerHTML=""+this.el.innerHTML+e.outerHTML}return e}}]),e}();t.default=o,e.exports=t.default},function(e,t,n){var r=n(31);"string"==typeof r&&(r=[[e.i,r,""]]);n(33)(r,{hmr:!0,transform:void 0,insertInto:void 0}),r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(32)(!1)).push([e.i,".danmu{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.danmu>*{position:absolute;white-space:nowrap}.danmu-switch{width:32px;height:20px;border-radius:100px;background-color:#ccc;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;cursor:pointer;position:relative;text-align:center;margin:10px auto}.danmu-switch.danmu-switch-active{padding-left:12px;background-color:#f85959}.danmu-switch span.txt{width:20px;height:20px;line-height:20px;text-align:center;display:block;border-radius:100px;background-color:#ffffff;-webkit-box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);font-family:PingFangSC;font-size:10px;font-weight:500;color:#f44336}\n",""])},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n,r=e[1]||"",a=e[3];if(!a)return r;if(t&&"function"==typeof btoa){var i=(n=a,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),o=a.sources.map(function(e){return"/*# sourceURL="+a.sourceRoot+e+" */"});return[r].concat(o).concat([i]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},a=0;a=0&&d.splice(t,1)}function x(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),m(t,e.attrs),h(e,t),t}function m(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function v(e,t){var n,r,a,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var o=c++;n=u||(u=x(t)),r=w.bind(null,n,o,!1),a=w.bind(null,n,o,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",m(t,e.attrs),h(e,t),t}(t),r=function(e,t,n){var r=n.css,a=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&a;(t.convertToAbsoluteUrls||i)&&(r=p(r)),a&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */");var o=new Blob([r],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(o),l&&URL.revokeObjectURL(l)}.bind(null,n,t),a=function(){y(n),n.href&&URL.revokeObjectURL(n.href)}):(n=x(t),r=function(e,t){var n=t.css,r=t.media;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),a=function(){y(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else a()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=("undefined"==typeof document?"undefined":o(document)))throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==o(t.attrs)?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=l()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=g(e,t);return f(n,t),function(e){for(var r=[],a=0;a\n \n \n\n'},function(e,t,n){"use strict";var r,a=n(0),i=(r=a)&&r.__esModule?r:{default:r};i.default.install("s_pip",function(){var e=this,t=i.default.util;if(e.config.pip){var n=e.lang.PIP,r=t.createDom("xg-pip",''+n+"
",{tabindex:9},"xgplayer-pip");e.once("ready",function(){e.controls.appendChild(r)}),["click","touchend"].forEach(function(t){r.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.emit("pipBtnClick")})})}})},function(e,t,n){"use strict";var r=i(n(0)),a=i(n(101));function i(e){return e&&e.__esModule?e:{default:e}}r.default.install("s_playNext",function(){var e=this,t=r.default.util,n=e.config.playNext;if(n&&n.urlList){var i=t.createDom("xg-playnext",''+a.default+"",{},"xgplayer-playnext"),o=e.lang.PLAYNEXT_TIPS,l=t.createDom("xg-tips",''+o+"",{},"xgplayer-tips");i.appendChild(l),e.once("ready",function(){e.controls.appendChild(i)}),["click","touchend"].forEach(function(t){i.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),r.default.util.addClass(e.root,"xgplayer-is-enter"),e.emit("playNextBtnClick")})});var s=function(){r.default.util.addClass(e.root,"xgplayer-playnext-inactive")};e.on("urlListEnd",s),e.once("destroy",function t(){e.off("urlListEnd",s),e.off("destroy",t)})}})},function(e,t,n){"use strict";n.r(t),t.default='\n'},function(e,t,n){"use strict";var r=i(n(0)),a=i(n(103));function i(e){return e&&e.__esModule?e:{default:e}}r.default.install("s_rotate",function(){var e=this,t=r.default.util;if(e.config.rotate){var n=t.createDom("xg-rotate",''+a.default+"",{},"xgplayer-rotate"),i=e.lang.ROTATE_TIPS,o=t.createDom("xg-tips",''+i+"",{},"xgplayer-tips");n.appendChild(o),e.once("ready",function(){e.controls.appendChild(n)}),["click","touchend"].forEach(function(t){n.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.emit("rotateBtnClick")})})}})},function(e,t,n){"use strict";n.r(t),t.default='\n'},function(e,t,n){"use strict";var r=i(n(0)),a=i(n(105));function i(e){return e&&e.__esModule?e:{default:e}}r.default.install("s_reload",function(){var e=this,t=r.default.util;if(e.config.reload){var n=t.createDom("xg-reload",''+a.default+"",{},"xgplayer-reload"),i=e.lang.RELOAD_TIPS,o=t.createDom("xg-tips",''+i+"",{},"xgplayer-tips");n.appendChild(o),e.once("ready",function(){e.controls.appendChild(n)}),["click","touchend"].forEach(function(t){n.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.emit("reloadBtnClick")})})}})},function(e,t,n){"use strict";n.r(t),t.default='\n'},function(e,t,n){"use strict";var r,a=n(0),i=(r=a)&&r.__esModule?r:{default:r};i.default.install("s_screenShot",function(){var e=this,t=i.default.util;if(e.config.screenShot){var n=e.lang.SCREENSHOT,r=t.createDom("xg-screenshot",''+n+"
",{tabindex:11},"xgplayer-screenshot");e.once("ready",function(){e.controls.appendChild(r)}),["click","touchend"].forEach(function(t){r.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.emit("screenShotBtnClick")})})}})},function(e,t,n){"use strict";var r,a=n(0),i=(r=a)&&r.__esModule?r:{default:r};i.default.install("s_textTrack",function(){var e=this,t=e.root,n=i.default.util,r=(i.default.sniffer,e.controls,n.createDom("xg-texttrack","",{tabindex:7},"xgplayer-texttrack")),a=e.config.textTrack;a&&Array.isArray(a)&&a.length>0&&(n.addClass(e.root,"xgplayer-is-texttrack"),e.once("canplay",function(){var i=this,o=[""];o.push("- 关闭
"),a.forEach(function(e){o.push("- "+e.label+"
")});var l=e.lang.TEXTTRACK;o.push('
'+l+"
");var s=t.querySelector(".xgplayer-texttrack");if(s){s.innerHTML=o.join("");var u=s.querySelector(".name");e.config.textTrackActive&&"hover"!==e.config.textTrackActive||u.addEventListener("mouseenter",function(e){e.preventDefault(),e.stopPropagation(),n.addClass(t,"xgplayer-texttrack-active"),s.focus()})}else{r.innerHTML=o.join("");var c=r.querySelector(".name");e.config.textTrackActive&&"hover"!==e.config.textTrackActive||c.addEventListener("mouseenter",function(t){t.preventDefault(),t.stopPropagation(),n.addClass(e.root,"xgplayer-texttrack-active"),r.focus()}),e.controls.appendChild(r)}})),["touchend","click"].forEach(function(t){r.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation();var i=t.target||t.srcElement;if(i&&"li"===i.tagName.toLocaleLowerCase()){Array.prototype.forEach.call(i.parentNode.childNodes,function(e){n.removeClass(e,"selected")}),n.addClass(i,"selected");var o=e.root.getElementsByTagName("Track");"关闭"===i.innerHTML?(o[0].track.mode="hidden",o[0].src="",n.removeClass(e.root,"xgplayer-texttrack-active")):(o[0].style.display="block",n.addClass(e.root,"xgplayer-texttrack-active"),o[0].track.mode="showing",a.some(function(e){if(e.label===i.innerHTML)return o[0].src=e.src,e.kind&&(o[0].kind=e.kind),o[0].label=e.label,e.srclang&&(o[0].srclang=e.srclang),!0}),e.emit("textTrackChange",i.innerHTML))}else"click"!==e.config.textTrackActive||!i||"p"!==i.tagName.toLocaleLowerCase()&&"em"!==i.tagName.toLocaleLowerCase()||(n.addClass(e.root,"xgplayer-texttrack-active"),r.focus())},!1)}),e.on("play",function(){var r=t.querySelector(".xgplayer-texttrack ul"),i=t.getElementsByTagName("Track");e.hls&&r&&i&&(i[0].src="",Array.prototype.forEach.call(r.childNodes,function(e){n.hasClass(e,"selected")&&("关闭"===e.innerHTML?(i[0].track.mode="hidden",i[0].src=""):(i[0].track.mode="hidden",a.some(function(t){if(t.label!==e.innerHTML)return i[0].src=t.src,t.kind&&(i[0].kind=t.kind),i[0].label=t.label,t.srclang&&(i[0].srclang=t.srclang),!0}),a.some(function(t){if(t.label===e.innerHTML)return setTimeout(function(){i[0].src=t.src,t.kind&&(i[0].kind=t.kind),i[0].label=t.label,t.srclang&&(i[0].srclang=t.srclang),i[0].track.mode="showing"}),!0})))}),n.removeClass(e.root,"xgplayer-texttrack-active"))}),r.addEventListener("mouseleave",function(t){t.preventDefault(),t.stopPropagation(),n.removeClass(e.root,"xgplayer-texttrack-active")})})},function(e,t,n){"use strict";var r,a=n(0),i=(r=a)&&r.__esModule?r:{default:r};i.default.install("s_error",function(){var e=this,t=e.root,n=i.default.util,r=n.createDom("xg-error",'请刷新试试',{},"xgplayer-error");e.once("ready",function(){t.appendChild(r)});var a=r.querySelector(".xgplayer-error-text"),o=null;function l(){e.config.lang&&"zh-cn"===e.config.lang?a.innerHTML=e.config.errorTips||'请刷新试试':a.innerHTML=e.config.errorTips||'please try to refresh',n.addClass(e.root,"xgplayer-is-error"),(o=r.querySelector(".xgplayer-error-refresh"))&&["touchend","click"].forEach(function(t){o.addEventListener(t,function(t){t.preventDefault(),t.stopPropagation(),e.autoplay=!0,e.once("playing",function(){n.removeClass(e.root,"xgplayer-is-error")}),e.src=e.config.url})})}e.on("error",l),e.once("destroy",function t(){e.off("error",l),e.off("destroy",t)})})},function(e,t,n){"use strict";var r,a=n(0),i=(r=a)&&r.__esModule?r:{default:r};i.default.install("s_memoryPlay",function(){var e=this,t=i.default.util,n=e.config.lastPlayTime||0,r=e.config.lastPlayTimeHideDelay||3,a=null;if(!(n<=0)){(a=t.createDom("xg-memoryplay",'您上次观看到
'+t.format(n)+' ,为您自动续播
',{},"xgplayer-memoryplay")).addEventListener("mouseover",function(e){e.stopPropagation()});var o=function(){a&&a.parentNode.removeChild(a),a=null};a.querySelector(".xgplayer-progress-tip .btn-close").addEventListener("click",o),e.once("play",function(){e.root.appendChild(a),e.emit("memoryPlayStart",n),r>0&&setTimeout(function(){o()},1e3*r)}),e.once("ended",o)}})}]);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/public/vite.svg b/public/vite.svg
deleted file mode 100644
index e7b8dfb..0000000
--- a/public/vite.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/api/internal/httpClient.ts b/src/api/internal/httpClient.ts
index bd35fae..8225eeb 100644
--- a/src/api/internal/httpClient.ts
+++ b/src/api/internal/httpClient.ts
@@ -41,7 +41,6 @@ export class HttpClient {
return Promise.resolve(response);
} else {
Toast.show({
- icon: "fail",
content: msg,
});
}
@@ -52,7 +51,6 @@ export class HttpClient {
let status = error.response.status;
if (status === 401) {
Toast.show({
- icon: "fail",
content: "请重新登录",
});
GoLogin();
diff --git a/src/assets/images/commen/icon-back-n.png b/src/assets/images/commen/icon-back-n.png
new file mode 100644
index 0000000..e172597
Binary files /dev/null and b/src/assets/images/commen/icon-back-n.png differ
diff --git a/src/assets/images/commen/icon-back.png b/src/assets/images/commen/icon-back.png
new file mode 100644
index 0000000..64aa512
Binary files /dev/null and b/src/assets/images/commen/icon-back.png differ
diff --git a/src/assets/images/commen/icon-more.png b/src/assets/images/commen/icon-more.png
new file mode 100644
index 0000000..e22e7ba
Binary files /dev/null and b/src/assets/images/commen/icon-more.png differ
diff --git a/src/assets/images/login/banner.png b/src/assets/images/login/banner.png
new file mode 100644
index 0000000..d634fa7
Binary files /dev/null and b/src/assets/images/login/banner.png differ
diff --git a/src/assets/images/login/bg.png b/src/assets/images/login/bg.png
new file mode 100644
index 0000000..29ddb13
Binary files /dev/null and b/src/assets/images/login/bg.png differ
diff --git a/src/components/bar-footer/index.tsx b/src/components/bar-footer/index.tsx
index e46e79c..6a48dd1 100644
--- a/src/components/bar-footer/index.tsx
+++ b/src/components/bar-footer/index.tsx
@@ -21,7 +21,7 @@ export const TabBarFooter: React.FC = () => {
) : (
),
},
diff --git a/src/main.scss b/src/main.scss
index 66c05e8..cf69932 100644
--- a/src/main.scss
+++ b/src/main.scss
@@ -35,6 +35,12 @@ code {
height: 30px;
}
+.main-body {
+ width: 100%;
+ float: left;
+ height: auto;
+}
+
.adm-tab-bar-item-title {
font-size: 11px;
font-weight: 400;
diff --git a/src/pages/login/index.module.scss b/src/pages/login/index.module.scss
index e69de29..b485c0c 100644
--- a/src/pages/login/index.module.scss
+++ b/src/pages/login/index.module.scss
@@ -0,0 +1,117 @@
+.login-content {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ background-image: url("../../assets//images/login/bg.png");
+ background-size: 100% 100%;
+ .top-content {
+ width: 100%;
+ height: 150px;
+ box-sizing: border-box;
+ padding: 0px 20px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ .title {
+ font-size: 24px;
+ font-weight: 600;
+ color: rgba(0, 0, 0, 0.88);
+ line-height: 24px;
+ }
+ }
+ .form-box {
+ width: 100%;
+ float: left;
+ height: auto;
+ box-sizing: border-box;
+ padding: 0px 20px;
+ margin-top: 30px;
+ .input-box {
+ width: 100%;
+ height: 109px;
+ background: #ffffff;
+ border-radius: 8px;
+ .input-item {
+ width: 100%;
+ height: 54px;
+ font-size: 16px;
+ font-weight: 400;
+ color: rgba(0, 0, 0, 0.3);
+ line-height: 54px;
+ box-sizing: border-box;
+ padding: 0px 15px;
+ }
+ .line {
+ width: auto;
+ height: 1px;
+ background: rgba(0, 0, 0, 0.05);
+ margin: 0px 15px;
+ }
+ }
+ .captcha-box {
+ width: 100%;
+ height: 54px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: 20px;
+ .input-item {
+ width: 200px;
+ height: 54px;
+ background: #ffffff;
+ border-radius: 8px;
+ box-sizing: border-box;
+ padding: 0px 15px;
+ font-size: 16px;
+ font-weight: 400;
+ color: rgba(0, 0, 0, 0.3);
+ line-height: 54px;
+ }
+ .captcha-button {
+ width: 125px;
+ height: 54px;
+ border-radius: 4px;
+ overflow: hidden;
+ .catpcha-loading-box {
+ width: 125px;
+ height: 54px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .captcha {
+ width: 125px;
+ height: 54px;
+ border-radius: 4px;
+ }
+ }
+ }
+
+ .button-box {
+ width: 100%;
+ height: 54px;
+ margin-top: 30px;
+ .primary-button {
+ width: 100%;
+ height: 54px;
+ border-radius: 8px;
+ font-size: 16px;
+ font-weight: 600;
+ }
+ }
+
+ .support-box {
+ position: fixed;
+ bottom: 90px;
+ left: 0;
+ right: 0;
+ font-size: 12px;
+ font-weight: 400;
+ color: rgba(0, 0, 0, 0.3);
+ line-height: 12px;
+ margin-top: 200px;
+ }
+ }
+}
diff --git a/src/pages/login/index.tsx b/src/pages/login/index.tsx
index 5857e6c..8ff4222 100644
--- a/src/pages/login/index.tsx
+++ b/src/pages/login/index.tsx
@@ -1,39 +1,165 @@
-import { Button } from "antd-mobile";
+import React, { useState, useEffect } from "react";
+import { Button, Toast, SpinLoading, Input, Image } from "antd-mobile";
+import styles from "./index.module.scss";
import { useDispatch, useSelector } from "react-redux";
+import { useNavigate } from "react-router-dom";
+import { login, system, user } from "../../api/index";
+import { setToken } from "../../utils/index";
import { loginAction, logoutAction } from "../../store/user/loginUserSlice";
+import banner from "../../assets/images/login/banner.png";
const LoginPage = () => {
const dispatch = useDispatch();
+ const navigate = useNavigate();
+ const [loading, setLoading] = useState(false);
+ const [image, setImage] = useState("");
+ const [email, setEmail] = useState("");
+ const [password, setPassword] = useState("");
+ const [captchaVal, setCaptchaVal] = useState("");
+ const [captchaKey, setCaptchaKey] = useState("");
+ const [captchaLoading, setCaptchaLoading] = useState(true);
const loginState = useSelector((state: any) => {
return state.loginUser.value;
});
- return (
- <>
-
+ useEffect(() => {
+ fetchImageCaptcha();
+ document.title = "登录";
+ }, []);
- {loginState.isLogin && (
-
- )}
- >
+ const fetchImageCaptcha = () => {
+ setCaptchaLoading(true);
+ system.imageCaptcha().then((res: any) => {
+ setImage(res.data.image);
+ setCaptchaKey(res.data.key);
+ setCaptchaLoading(false);
+ });
+ };
+
+ const loginSubmit = (e: any) => {
+ if (!email) {
+ Toast.show({
+ content: "请输入学员邮箱账号",
+ });
+ return;
+ }
+ if (!password) {
+ Toast.show({
+ content: "请输入密码",
+ });
+ return;
+ }
+ if (!captchaVal) {
+ Toast.show({
+ content: "请输入图形验证码",
+ });
+ return;
+ }
+ if (captchaVal.length < 4) {
+ Toast.show({
+ content: "图形验证码错误",
+ });
+ return;
+ }
+ if (loading) {
+ return;
+ }
+ handleSubmit();
+ };
+
+ const handleSubmit = () => {
+ if (loading) {
+ return;
+ }
+ setLoading(true);
+ login
+ .login(email, password, captchaKey, captchaVal)
+ .then((res: any) => {
+ const token = res.data.token;
+ setToken(token);
+ getUser();
+ })
+ .catch((e) => {
+ setLoading(false);
+ setCaptchaVal("");
+ fetchImageCaptcha();
+ });
+ };
+
+ const getUser = () => {
+ user.detail().then((res: any) => {
+ const data = res.data;
+ dispatch(loginAction(data));
+ setLoading(false);
+ navigate("/member", { replace: true });
+ });
+ };
+
+ return (
+
+
+
+
+
+
{
+ setCaptchaVal(val);
+ }}
+ />
+
+ {captchaLoading && (
+
+
+
+ )}
+ {!captchaLoading && (
+
+ )}
+
+
+
+
+
+
「PlayEdu提供技术支持」
+
+
);
};
diff --git a/src/pages/member/index.module.scss b/src/pages/member/index.module.scss
new file mode 100644
index 0000000..54e2401
--- /dev/null
+++ b/src/pages/member/index.module.scss
@@ -0,0 +1,11 @@
+.support-box {
+ position: fixed;
+ bottom: 90px;
+ left: 0;
+ right: 0;
+ font-size: 12px;
+ font-weight: 400;
+ color: rgba(0, 0, 0, 0.3);
+ line-height: 12px;
+ margin-top: 200px;
+}
diff --git a/src/pages/member/index.tsx b/src/pages/member/index.tsx
new file mode 100644
index 0000000..c8d0533
--- /dev/null
+++ b/src/pages/member/index.tsx
@@ -0,0 +1,32 @@
+import { useEffect, useState } from "react";
+import { user } from "../../api/index";
+import styles from "./index.module.scss";
+import { useSelector } from "react-redux";
+import { TabBarFooter } from "../../components";
+import moreIcon from "../../assets/images/commen/icon-more.png";
+
+const MemberPage = () => {
+ const systemConfig = useSelector((state: any) => state.systemConfig.value);
+ const [loading, setLoading] = useState(false);
+ const [tabKey, setTabKey] = useState(0);
+ const departments = useSelector(
+ (state: any) => state.loginUser.value.departments
+ );
+ const currentDepId = useSelector(
+ (state: any) => state.loginUser.value.currentDepId
+ );
+
+ useEffect(() => {
+ document.title = "我的";
+ }, []);
+
+ return (
+
+
我的
+
「PlayEdu提供技术支持」
+
+
+ );
+};
+
+export default MemberPage;
diff --git a/src/routes/index.tsx b/src/routes/index.tsx
index 1ab2db8..a9eec64 100644
--- a/src/routes/index.tsx
+++ b/src/routes/index.tsx
@@ -6,6 +6,7 @@ import { getToken } from "../utils";
import { InitPage } from "../pages/init";
import IndexPage from "../pages/index/index";
import LoginPage from "../pages/login";
+import MemberPage from "../pages/member/index";
import PrivateRoute from "../components/private-route";
let RootPage: any = null;
@@ -36,12 +37,16 @@ const routes: RouteObject[] = [
children: [
{
path: "/",
- element: ,
+ element: } />,
},
{
path: "/login",
element: ,
},
+ {
+ path: "/member",
+ element: } />,
+ },
],
},
];