开发陪玩游戏源码的后台管理系统,登录的实现是第一步!

开发陪玩游戏源码的后台管理系统,登录的实现是第一步!

在开发陪玩游戏源码时,不仅需要开发Android端和iOS端,还需要开发服务端,也就是后台管理系统,由于后天管理系统掌控者用户端的陪玩游戏源码使用效果,所以非常重要,今天我们先来了解一下号后台管理系统中的基础功能模块,也就是登录页的实现。陪玩游戏源码的登录页面开发:1.用户名和密码input标签中使用name属性,通过e.target.name可以获取(Bootstrap文档组件-panel完成登录界面)importReactfrom'react';importMUtilfrom'util/mm.jsx'importUserfrom'service/user-service.jsx'const_mm=newMUtil();const_user=newUser();import'./index.scss';classLoginextendsReact.Component{constructor(props){super(props);this.state={username:'',password:'',redirect:_mm.getUrlParam('redirect')||'/'}}componentWillMount(){document.title='登录-MMALLADMIN';}//当用户名、密码发生改变onInputChange(e){letinputValue=e.target.value,inputName=e.target.name;this.setState({[inputName]:inputValue});}onInputKeyUp(e){if(e.keyCode===13){this.onSubmit();}}//当用户提交表单onSubmit(){letloginInfo={username:this.state.username,password:this.state.password},checkResult=_user.checkLoginInfo(loginInfo);//验证通过if(checkResult.status){_user.login(loginInfo).then((res)=>{_mm.setStorage('userInfo',res);this.props.history.push(this.state.redirect);},(errMsg)=>{_mm.errorTips(errMsg);});}//验证不通过else{_mm.errorTips(checkResult.msg);}}render(){return(<divclassName="col-md-4col-md-offset-4"><divclassName="panelpanel-defaultlogin-panel"><divclassName="panel-heading">欢迎登录-MMALL管理系统</div><divclassName="panel-body"><div><divclassName="form-group"><inputtype="text"name="username"className="form-control"placeholder="请输入用户名"onKeyUp={e=>this.onInputKeyUp(e)}onChange={e=>this.onInputChange(e)}/></div><divclassName="form-group"><inputtype="password"name="password"className="form-control"placeholder="请输入密码"onKeyUp={e=>this.onInputKeyUp(e)}onChange={e=>this.onInputChange(e)}/></div><buttonclassName="btnbtn-lgbtn-primarybtn-block"onClick={e=>{this.onSubmit(e)}}>登录</button></div></div></div></div>);}}exportdefaultLogin;2.index.html引用jquery的CDN版本<scriptsrc="3.src->util->mm.jsx封装ajax请求classMUtil{request(param){returnnewPromise((resolve,reject)=>{$.ajax({type:param.type||'get',url:param.url||'',dataType:param.dataType||'json',data:param.data||null,success:res=>{//console.log(res)//数据请求成功if(0===res.status){typeofresolve==='function'&&resolve(res.data,res.msg);}//没有登录状态,强制登录elseif(10===res.status){this.doLogin();}else{typeofreject==='function'&&reject(res.msg||res.data);}},error:err=>{//console.log(err)typeofreject==='function'&&reject(err.statusText);}});});}//跳转登录doLogin(){window.location.href='/login?redirect='+encodeURIComponent(window.location.pathname);}//获取URL参数getUrlParam(name){//xxxx.com?param=123&param1=456letqueryString=window.location.search.split('?')[1]||'',reg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"),result=queryString.match(reg);//result:['param=123','','123','&']returnresult?decodeURIComponent(result[2]):null;}//成功提示successTips(successMsg){alert(successMsg||'操作成功!');}//错误提示errorTips(errMsg){alert(errMsg||'好像哪里不对了~');}//本地存储setStorage(name,data){letdataType=typeofdata;//json对象if(dataType==='object'){window.localStorage.setItem(name,JSON.stringify(data));}//基础类型elseif(['number','string','boolean'].indexOf(dataType)>=0){window.localStorage.setItem(name,data);}//其他不支持的类型else{alert('该类型不能用于本地存储');}}//取出本地存储内容getStorage(name){letdata=window.localStorage.getItem(name);if(data){returnJSON.parse(data);}else{return'';}}//删除本地存储removeStorage(name){window.localStorage.removeItem(name);}}exportdefaultMUtil;陪玩游戏源码后台用户接口的response 4.webpack中配置proxy服务端代理跨域classMUtil{request(param){returnnewPromise((resolve,reject)=>{$.ajax({type:param.type||'get',url:param.url||'',dataType:param.dataType||'json',data:param.data||null,success:res=>{//console.log(res)//数据请求成功if(0===res.status){typeofresolve==='function'&&resolve(res.data,res.msg);}//没有登录状态,强制登录elseif(10===res.status){this.doLogin();}else{typeofreject==='function'&&reject(res.msg||res.data);}},error:err=>{//console.log(err)typeofreject==='function'&&reject(err.statusText);}});});}//跳转登录doLogin(){window.location.href='/login?redirect='+encodeURIComponent(window.location.pathname);}//获取URL参数getUrlParam(name){//xxxx.com?param=123&param1=456letqueryString=window.location.search.split('?')[1]||'',reg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"),result=queryString.match(reg);//result:['param=123','','123','&']returnresult?decodeURIComponent(result[2]):null;}//成功提示successTips(successMsg){alert(successMsg||'操作成功!');}//错误提示errorTips(errMsg){alert(errMsg||'好像哪里不对了~');}//本地存储setStorage(name,data){letdataType=typeofdata;//json对象if(dataType==='object'){window.localStorage.setItem(name,JSON.stringify(data));}//基础类型elseif(['number','string','boolean'].indexOf(dataType)>=0){window.localStorage.setItem(name,data);}//其他不支持的类型else{alert('该类型不能用于本地存储');}}//取出本地存储内容getStorage(name){letdata=window.localStorage.getItem(name);if(data){returnJSON.parse(data);}else{return'';}}//删除本地存储removeStorage(name){window.localStorage.removeItem(name);}}exportdefaultMUtil;5.把数据请求接口分到src->service->user-service.jsx中classMUtil{request(param){returnnewPromise((resolve,reject)=>{$.ajax({type:param.type||'get',url:param.url||'',dataType:param.dataType||'json',data:param.data||null,success:res=>{//console.log(res)//数据请求成功if(0===res.status){typeofresolve==='function'&&resolve(res.data,res.msg);}//没有登录状态,强制登录elseif(10===res.status){this.doLogin();}else{typeofreject==='function'&&reject(res.msg||res.data);}},error:err=>{//console.log(err)typeofreject==='function'&&reject(err.statusText);}});});}//跳转登录doLogin(){window.location.href='/login?redirect='+encodeURIComponent(window.location.pathname);}//获取URL参数getUrlParam(name){//xxxx.com?param=123&param1=456letqueryString=window.location.search.split('?')[1]||'',reg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"),result=queryString.match(reg);//result:['param=123','','123','&']returnresult?decodeURIComponent(result[2]):null;}//成功提示successTips(successMsg){alert(successMsg||'操作成功!');}//错误提示errorTips(errMsg){alert(errMsg||'好像哪里不对了~');}//本地存储setStorage(name,data){letdataType=typeofdata;//json对象if(dataType==='object'){window.localStorage.setItem(name,JSON.stringify(data));}//基础类型elseif(['number','string','boolean'].indexOf(dataType)>=0){window.localStorage.setItem(name,data);}//其他不支持的类型else{alert('该类型不能用于本地存储');}}//取出本地存储内容getStorage(name){letdata=window.localStorage.getItem(name);if(data){returnJSON.parse(data);}else{return'';}}//删除本地存储removeStorage(name){window.localStorage.removeItem(name);}}exportdefaultMUtil;6.webpack中配置util和service的resolveclassMUtil{request(param){returnnewPromise((resolve,reject)=>{$.ajax({type:param.type||'get',url:param.url||'',dataType:param.dataType||'json',data:param.data||null,success:res=>{//console.log(res)//数据请求成功if(0===res.status){typeofresolve==='function'&&resolve(res.data,res.msg);}//没有登录状态,强制登录elseif(10===res.status){this.doLogin();}else{typeofreject==='function'&&reject(res.msg||res.data);}},error:err=>{//console.log(err)typeofreject==='function'&&reject(err.statusText);}});});}//跳转登录doLogin(){window.location.href='/login?redirect='+encodeURIComponent(window.location.pathname);}//获取URL参数getUrlParam(name){//xxxx.com?param=123&param1=456letqueryString=window.location.search.split('?')[1]||'',reg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"),result=queryString.match(reg);//result:['param=123','','123','&']returnresult?decodeURIComponent(result[2]):null;}//成功提示successTips(successMsg){alert(successMsg||'操作成功!');}//错误提示errorTips(errMsg){alert(errMsg||'好像哪里不对了~');}//本地存储setStorage(name,data){letdataType=typeofdata;//json对象if(dataType==='object'){window.localStorage.setItem(name,JSON.stringify(data));}//基础类型elseif(['number','string','boolean'].indexOf(dataType)>=0){window.localStorage.setItem(name,data);}//其他不支持的类型else{alert('该类型不能用于本地存储');}}//取出本地存储内容getStorage(name){letdata=window.localStorage.getItem(name);if(data){returnJSON.parse(data);}else{return'';}}//删除本地存储removeStorage(name){window.localStorage.removeItem(name);}}exportdefaultMUtil;到这陪玩游戏源码中后台管理系统的登录页面基本就完成了,虽然过程比较复杂,但好在实现的效果还不错,希望对大家有帮助。本文转载自网络,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理原文链接:https://blog.csdn.net/qq_34235864/article/details/113798385

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes