提交 5ef4c72b 编写于 作者: E Evan

update:登录页面完善,登录拦截器后端代码修改

上级 e6471eec
<template>
<body>
<body id="paper">
<el-form :rules="rules" class="login-container" label-position="left"
label-width="0px" v-loading="loading">
<h3 class="login_title">系统登录</h3>
......@@ -14,7 +14,7 @@
<el-checkbox class="login_remember" v-model="checked"
label-position="left">记住密码</el-checkbox>
<el-form-item style="width: 100%">
<el-button type="primary" style="width: 100%" @click="submitClick">登录</el-button>
<el-button type="primary" style="width: 100%" v-on:click="login">登录</el-button>
</el-form-item>
</el-form>
</body>
......@@ -36,30 +36,30 @@
}
},
methods: {
submitClick: function () {
var _this = this
this.loading = true
this.postRequest('/login', {
username: this.loginForm.username,
password: this.loginForm.password
}).then(resp => {
_this.loading = false
if (resp && resp.status === 200) {
var data = resp.data
_this.$store.commit('login', data.obj)
var path = _this.$route.query.redirect
_this.$router
.replace({path: path === '/' || path === undefined ? '/home' : path})
}
})
login () {
this.$axios
.post('/login', {
username: this.loginForm.username,
password: this.loginForm.password
})
.then(successResponse => {
this.responseResult = JSON.stringify(successResponse.data)
if (successResponse.data.code === 200) {
this.$router.replace({path: '/home'})
}
})
.catch(failResponse => {})
}
}
}
}
</script>
<style>
body{
#paper {
background:url("../assets/img/bg/eva1.jpg") no-repeat;
background-position: center;
height: 100%;
width: 100%;
position: fixed;
}
.login-container {
border-radius: 15px;
......
import * as types from './types.js'
// actions常用于异步更改状态。也就是说它一般用来先发送请求,然后再commit
export default {
UserLogin ({commit}, data) {
commit(types.LOGIN, data)
},
UserLogout ({commit}) {
commit(types.LOGOUT)
}
}
import * as types from './types.js'
const mutations = {
[types.LOGIN]: (state, data) => {
localStorage.setItem('userName', data.username)
localStorage.setItem('token', data.token)
localStorage.setItem('refresh_token', data.refresh_token)
},
[types.LOGOUT]: (state) => {
localStorage.removeItem('userName')
localStorage.removeItem('token')
localStorage.removeItem('refresh_token')
}
}
export default mutations
const state = {
currentUser: {
get UserName () {
return localStorage.getItem('name')
},
get UserToken () {
return localStorage.getItem('token')
},
get UserRefreshToken () {
return localStorage.getItem('refresh_token')
}
}
}
export default state
import Vue from 'vue'
import Vuex from 'vuex'
import state from './states.js'
import mutations from './mutations.js'
import actions from './actions.js'
Vue.use(Vuex)
export default new Vuex.Store({
state,
mutations,
actions
})
export const LOGIN = 'LOGIN'
export const LOGOUT = 'LOGOUT'
package com.gm.wj.controller;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import com.gm.wj.pojo.User;
import com.gm.wj.pojo.vo.VueLoginInfoVo;
import com.gm.wj.result.Result;
import com.gm.wj.result.ResultFactory;
import org.apache.http.HttpResponse;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.validation.Valid;
import java.util.Objects;
@Controller
public class LoginController {
/**
* 登录控制器,前后端分离用的不同协议和端口,所以需要加入@CrossOrigin支持跨域。
* 给VueLoginInfoVo对象加入@Valid注解,并在参数中加入BindingResult来获取错误信息。
* 在逻辑处理中我们判断BindingResult知否含有错误信息,如果有错误信息,则直接返回错误信息。
*/
@CrossOrigin
@RequestMapping(value = "/api/login", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
@ResponseBody
public Result login(@Valid @RequestBody VueLoginInfoVo loginInfoVo, BindingResult bindingResult) {
public Result login(@Valid @RequestBody VueLoginInfoVo loginInfoVo, BindingResult bindingResult, HttpSession session) {
if (bindingResult.hasErrors()) {
String message = String.format("登失败,详细信息[%s]。", bindingResult.getFieldError().getDefaultMessage());
String message = String.format("登失败,详细信息[%s]。", bindingResult.getFieldError().getDefaultMessage());
return ResultFactory.buildFailResult(message);
}
if (!Objects.equals("admin", loginInfoVo.getUsername()) || !Objects.equals("123", loginInfoVo.getPassword())) {
String message = String.format("登陆失败,详细信息[用户名、密码信息不正确]。");
return ResultFactory.buildFailResult(message);
}
return ResultFactory.buildSuccessResult("登录成功");
User user = new User();
user.setUsername(loginInfoVo.getUsername());
user.setPassword(loginInfoVo.getPassword());
session.setAttribute("user",user);
return ResultFactory.buildSuccessResult("登陆成功。");
}
}
}
\ No newline at end of file
......@@ -31,7 +31,7 @@ public class LoginInterceptor implements HandlerInterceptor{
if(begingWith(page, requireAuthPages)){
User user = (User) session.getAttribute("user");
if(user==null) {
httpServletResponse.sendRedirect("guapi");
httpServletResponse.sendRedirect("login");
return false;
}
}
......
......@@ -14,7 +14,7 @@ public class User {
@Column(name = "id")
int id;
String name;
String username;
String password;
public int getId() {
......@@ -25,12 +25,12 @@ public class User {
this.id = id;
}
public String getName() {
return name;
public String getUsername() {
return username;
}
public void setName(String name) {
this.name = name;
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
......
server.port=8443
\ No newline at end of file
server.port=8443
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/wj?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto = none
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>白卷 - White Jotter</title><link href=/static/css/app.925e6218589c5a2e0dfdd32ca8e5f9e8.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.d950605b7eda240dbe9b.js></script><script type=text/javascript src=/static/js/app.667c3d34ada3c3c6a4c4.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>白卷 - White Jotter</title><link href=/static/css/app.7fceeab29967a58ec4c9edd55656c8ab.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.43fe1a26728d8342f824.js></script><script type=text/javascript src=/static/js/app.37e3c313952ea5b3d344.js></script></body></html>
\ No newline at end of file
webpackJsonp([1],{"+oRr":function(t,e){},"4g0t":function(t,e){},"54j/":function(t,e){},"82wI":function(t,e){},"D/oF":function(t,e){},EJow:function(t,e){},Fla3:function(t,e){},NHnr:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("7+uW"),i=n("zL8q"),s=n.n(i),l=(n("tvR6"),{name:"NavMenu",data:function(){return{navList:[{name:"/appindex",navItem:"首页"},{name:"/jotterindex",navItem:"笔记本"},{name:"/libraryindex",navItem:"图书馆"},{name:"/#nowhere",navItem:"个人中心"}]}},methods:{handleSelect:function(t,e){console.log(t,e)}}}),r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("el-menu",{attrs:{"default-active":this.$router.path,router:"true",mode:"horizontal","background-color":"#545c64","text-color":"#fff","active-text-color":"#ffd04b"},on:{select:t.handleSelect}},[t._l(t.navList,function(e,a){return n("el-menu-item",{key:a,attrs:{index:e.name}},[t._v("\n "+t._s(e.navItem)+"\n ")])}),t._v(" "),n("span",{staticStyle:{float:"right",padding:"20px"}},[n("a",{staticStyle:{color:"#fff"},attrs:{href:"#nowhere"}},[t._v("登录/注册")])]),t._v(" "),n("i",{staticClass:"el-icon-menu",staticStyle:{float:"right","font-size":"45px",color:"aliceblue","padding-top":"8px"}})],2)],1)},staticRenderFns:[]};var o={name:"App",components:{NavMenu:n("VU/8")(l,r,!1,function(t){n("imhR")},"data-v-bef069b6",null).exports}},c={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("nav-menu"),this._v(" "),e("router-view")],1)},staticRenderFns:[]};var u=n("VU/8")(o,c,!1,function(t){n("Xv4z")},null,null).exports,d=n("/ocq"),v={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"header"})},staticRenderFns:[]};var m=n("VU/8")({name:"AppHeader"},v,!1,function(t){n("fvga")},"data-v-1a5d4a04",null).exports,p={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-carousel",{attrs:{interval:4e3,type:"card",height:"300px"}},t._l(6,function(e){return n("el-carousel-item",{key:e},[n("h3",[t._v(t._s(e))])])}),1)},staticRenderFns:[]};var f=n("VU/8")({name:"Carousel"},p,!1,function(t){n("hMVz")},null,null).exports,_={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"pro-div"}},[n("el-row",{attrs:{id:"introduce"}},[n("el-col",{attrs:{span:24}},[n("i",{staticClass:"el-icon-time",staticStyle:{"font-size":"300px",color:"azure","margin-top":"50px"}}),t._v(" "),n("span",{staticStyle:{"font-size":"30px",color:"azure"}},[t._v("How much time do you left?")]),n("br"),t._v(" "),n("span",{staticStyle:{color:"azure","margin-left":"280px"}},[t._v("Little ugly mmk")])])],1),t._v(" "),n("el-row",{attrs:{id:"quick-nav"}},[n("el-col",{staticClass:"nav-item",attrs:{span:6}}),t._v(" "),n("el-col",{staticClass:"nav-item",attrs:{span:6}}),t._v(" "),n("el-col",{staticClass:"nav-item",attrs:{span:6}}),t._v(" "),n("el-col",{staticClass:"nav-item",attrs:{span:6}})],1)],1)},staticRenderFns:[]};var h=n("VU/8")({name:"QuickNav"},_,!1,function(t){n("4g0t")},"data-v-25dcdd9f",null).exports,x={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("el-card",{staticClass:"box-card"},[n("div",{staticClass:"clearfix",attrs:{slot:"header"},slot:"header"},[n("span",[t._v("学科名称")]),t._v(" "),n("el-button",{staticStyle:{float:"right",padding:"3px 0"},attrs:{type:"text"}},[t._v("操作按钮")])],1),t._v(" "),t._l(4,function(e){return n("div",{key:e,staticClass:"text item"},[t._v("\n "+t._s("待学内容 "+e)+"\n ")])})],2)],1)},staticRenderFns:[]};var g={name:"Tips",components:{Card:n("VU/8")({name:"Card"},x,!1,function(t){n("XB2X")},"data-v-7e8f8982",null).exports}},C={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("el-row",[e("el-col",{attrs:{span:"8"}},[e("Card")],1),this._v(" "),e("el-col",{attrs:{span:"8"}},[e("Card")],1),this._v(" "),e("el-col",{attrs:{span:"8"}},[e("Card")],1)],1)],1)},staticRenderFns:[]};var b={name:"AppIndex",components:{AppHeader:m,Carousel:f,QuickNav:h,Tips:n("VU/8")(g,C,!1,function(t){n("D/oF")},"data-v-40c470e4",null).exports}},R={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("app-header"),this._v(" "),e("carousel"),this._v(" "),e("tips"),this._v(" "),e("quick-nav")],1)},staticRenderFns:[]};var y=n("VU/8")(b,R,!1,function(t){n("82wI")},"data-v-0eb808b3",null).exports,A={name:"JotterNav",methods:{handleOpen:function(t,e){console.log(t,e)},handleClose:function(t,e){console.log(t,e)}}},S={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("el-row",{staticClass:"tac"},[n("el-col",{attrs:{span:24}},[n("h4",[t._v("科目")]),t._v(" "),n("el-menu",{staticClass:"el-menu-vertical-demo",attrs:{"default-active":"2","background-color":"#545c64","text-color":"#fff","active-text-color":"#ffd04b"},on:{open:t.handleOpen,close:t.handleClose}},[n("el-submenu",{attrs:{index:"1"}},[n("template",{slot:"title"},[n("i",{staticClass:"el-icon-location"}),t._v(" "),n("span",[t._v("导航一")])]),t._v(" "),n("el-menu-item-group",[n("template",{slot:"title"},[t._v("分组一")]),t._v(" "),n("el-menu-item",{attrs:{index:"1-1"}},[t._v("选项1")]),t._v(" "),n("el-menu-item",{attrs:{index:"1-2"}},[t._v("选项2")])],2),t._v(" "),n("el-menu-item-group",{attrs:{title:"分组2"}},[n("el-menu-item",{attrs:{index:"1-3"}},[t._v("选项3")])],1),t._v(" "),n("el-submenu",{attrs:{index:"1-4"}},[n("template",{slot:"title"},[t._v("选项4")]),t._v(" "),n("el-menu-item",{attrs:{index:"1-4-1"}},[t._v("选项1")])],2)],2),t._v(" "),n("el-menu-item",{attrs:{index:"2"}},[n("i",{staticClass:"el-icon-menu"}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航二")])]),t._v(" "),n("el-menu-item",{attrs:{index:"3"}},[n("i",{staticClass:"el-icon-document"}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航三")])]),t._v(" "),n("el-menu-item",{attrs:{index:"4"}},[n("i",{staticClass:"el-icon-setting"}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航四")])]),t._v(" "),n("el-menu-item",{attrs:{index:"5"}},[n("i",{staticClass:"el-icon-circle-plus-outline",staticStyle:{color:"white"}})])],1)],1)],1)],1)},staticRenderFns:[]};var V={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("a",{staticClass:"module",attrs:{href:"/editor"}},[e("img",{attrs:{src:n("j4B8"),alt:""}}),this._v(" "),e("span",{staticClass:"sub-name"},[this._v("[HelloWorld]")]),this._v(" "),e("br"),this._v(" "),e("br"),this._v(" "),e("br"),this._v(" "),e("span",{staticClass:"desc"},[this._v("开启程序人生!")])])])}]};var w={name:"JotterIndex",components:{JotterNav:n("VU/8")(A,S,!1,function(t){n("EJow")},"data-v-49e267d1",null).exports,Module:n("VU/8")({name:"Module"},V,!1,function(t){n("54j/")},"data-v-27b49363",null).exports}},E={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("el-container",[e("el-aside",{attrs:{width:"200px"}},[e("jotter-nav")],1),this._v(" "),e("el-main",{staticStyle:{"padding-top":"50px","padding-left":"50px"}},[e("module"),this._v(" "),e("module"),this._v(" "),e("module"),this._v(" "),e("div",{staticStyle:{float:"left",width:"280px",height:"150px",margin:"30px"}},[e("i",{staticClass:"el-icon-circle-plus-outline",staticStyle:{margin:"50px 100px","font-size":"100px"}})])],1)],1)],1)},staticRenderFns:[]};var U=n("VU/8")(w,E,!1,function(t){n("RuXK")},"data-v-677f4ff9",null).exports,k={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"main"}},[n("mavon-editor",{ref:"md",staticStyle:{height:"100%",width:"100%",position:"fixed"},attrs:{fontSize:"20px"},on:{imgAdd:t.$imgAdd,imgDel:t.$imgDel},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}})],1)},staticRenderFns:[]},M=n("VU/8")({name:"Editor"},k,!1,null,null,null).exports,I={name:"SideMenu",methods:{handleOpen:function(t,e){console.log(t,e)},handleClose:function(t,e){console.log(t,e)}}},J={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-menu",{staticClass:"el-menu-vertical-demo",attrs:{"default-active":"2","background-color":"#545c64","text-color":"#fff","active-text-color":"#ffd04b"},on:{open:t.handleOpen,close:t.handleClose}},[n("el-submenu",{attrs:{index:"1"}},[n("template",{slot:"title"},[n("i",{staticClass:"el-icon-location"}),t._v(" "),n("span",[t._v("导航一")])]),t._v(" "),n("el-menu-item-group",[n("template",{slot:"title"},[t._v("分组一")]),t._v(" "),n("el-menu-item",{attrs:{index:"1-1"}},[t._v("选项1")]),t._v(" "),n("el-menu-item",{attrs:{index:"1-2"}},[t._v("选项2")])],2),t._v(" "),n("el-menu-item-group",{attrs:{title:"分组2"}},[n("el-menu-item",{attrs:{index:"1-3"}},[t._v("选项3")])],1),t._v(" "),n("el-submenu",{attrs:{index:"1-4"}},[n("template",{slot:"title"},[t._v("选项4")]),t._v(" "),n("el-menu-item",{attrs:{index:"1-4-1"}},[t._v("选项1")])],2)],2),t._v(" "),n("el-menu-item",{attrs:{index:"2"}},[n("i",{staticClass:"el-icon-menu"}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航二")])]),t._v(" "),n("el-menu-item",{attrs:{index:"3"}},[n("i",{staticClass:"el-icon-document"}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航三")])]),t._v(" "),n("el-menu-item",{attrs:{index:"4"}},[n("i",{staticClass:"el-icon-setting"}),t._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航四")])])],1)},staticRenderFns:[]};var z=n("VU/8")(I,J,!1,function(t){n("XMUK")},"data-v-dd2e4f20",null).exports,F={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",t._l(t.tags,function(e){return n("el-tag",{key:e.name,attrs:{closable:"",type:e.type}},[t._v("\n "+t._s(e.name)+"\n")])}),1)},staticRenderFns:[]};var j=n("VU/8")({name:"Tag",data:function(){return{tags:[{name:"标签一",type:""},{name:"标签二",type:"success"},{name:"标签三",type:"info"},{name:"标签四",type:"warning"},{name:"标签五",type:"danger"}]}}},F,!1,function(t){n("nidP")},"data-v-377d883e",null).exports,O={render:function(){var t=this.$createElement;return(this._self._c||t)("el-pagination",{attrs:{"page-size":20,"pager-count":11,layout:"prev, pager, next",total:1e3}})},staticRenderFns:[]};var Q=n("VU/8")({name:"Pagination"},O,!1,function(t){n("+oRr")},"data-v-7f928970",null).exports,B={render:function(){var t=this.$createElement,e=this._self._c||t;return e("elmain",[e("el-row",{staticClass:"proto-card-list"},[e("el-col",{staticClass:"picture",attrs:{span:8}},[e("img",{attrs:{src:"book.png"}})]),this._v(" "),e("el-col",{staticClass:"body",attrs:{span:8}},[e("h1",{staticClass:"header"},[this._v("书名")]),this._v(" "),e("p",{staticClass:"text"},[this._v("简介 啊啊啊啊啊编程好难啊")])]),this._v(" "),e("el-col",{staticClass:"footer",attrs:{span:8}})],1)],1)},staticRenderFns:[]};var N={name:"AppLibrary",components:{BookCard:n("VU/8")({name:"BookCard"},B,!1,function(t){n("Fla3")},"data-v-d6d9fc0a",null).exports,Pagination:Q,Tag:j,SideMenu:z}},$={render:function(){var t=this.$createElement,e=this._self._c||t;return e("el-container",[e("el-container",[e("el-aside",{staticStyle:{width:"200px","margin-top":"20px"}},[e("SideMenu")],1),this._v(" "),e("el-container",[e("el-main",[e("el-row",[e("el-col",{staticStyle:{width:"100%","text-align":"left","line-height":"100%",height:"40px"},attrs:{span:24}},[e("Tag")],1)],1),this._v(" "),e("el-row",[e("el-col",{attrs:{span:12}},[e("BookCard")],1),this._v(" "),e("el-col",{attrs:{span:12}},[e("BookCard")],1)],1)],1),this._v(" "),e("el-footer",[e("Pagination")],1)],1)],1)],1)},staticRenderFns:[]};var K=n("VU/8")(N,$,!1,function(t){n("xM5T")},"data-v-33962518",null).exports;a.default.use(d.a);var P=new d.a({mode:"history",routes:[{path:"/",name:"AppIndex",component:y},{path:"/appindex",name:"AppIndex",component:y},{path:"/jotterindex",name:"JotterIndex",component:U},{path:"/editor",name:"Editor",component:M},{path:"/libraryindex",name:"LibraryIndex",component:K}]}),L=n("OS1Z"),q=n.n(L);n("pw1w");a.default.config.productionTip=!1,a.default.use(s.a),a.default.use(q.a),new a.default({el:"#app",data:function(){return{value:""}},router:P,components:{App:u},template:"<App/>"})},RuXK:function(t,e){},XB2X:function(t,e){},XMUK:function(t,e){},Xv4z:function(t,e){},fvga:function(t,e){},hMVz:function(t,e){},imhR:function(t,e){},j4B8:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAACm0lEQVR42p2VTWxMURTHb6v6wVCJNNKNhbahE0kb0QhREj8sLIQgItLEAgu6sWIlkdjURmIhdqKiQkTiIyFCfWzUd4Ih8V2qilGVEVPtdMb/zdz5eNPpyzz3JC/n3Xv///fOOf97rjGugWNVNLCGvZzkAi95x1VOc5CNzGe6s+4xkuCVnOc9EcZI5FicKH1000b1BCSaLqeVLn65gPkWFcm6An+iiUaOMegJzpJcZJmLQi+zuVEUOG2vWJKhkFPNKV9wxx7onx0KPSrpIOabIMEValME7YoqOx0hzEjSG5P3VX6Mfj4ybKvxXW8jdu8RygwBbubAh9nJYp4n/R+spZmHgrRST49d38JCXtvdb5lnJI/eHII/yu80gRz/m9bKuS2CpczhbmZ9JiG7e4Rdhj2MehLcktfPJxuCmyBBl+GsKzHOhoBAEQnqjfKcIvjCZ/4WJAgZ7ucRLFdag7TImiXsSoUQ1lyQJwUJxgyXCxBMURgBplIqijsMUKe3HqvCTTRJRun9YSMN5IdQRSePJJRrAlbkEcRV2L5MGRNcN6xiyDOJ+QSDms8SdBpm8dgHwTBblZtndvcQmx0l7ssRshNjkKep+PR39dxLCqnRJjHKBuba9QQnqHIIZnAmp3EMSLapkjkS7tU3YypiVsrZdafM9jQ2KGV+j9Jvid6Q6YMr+OAL3s8O5SenoZSwgHOuU+llIWWnZHxTC7DNnkMv6+O4qlOosSZDqVMD71b+4xM0sg7psAzPxm4k4Ra2c5gXLvBPDinZ3veCi2gSRzPgUR2p1UwuEmwJFinadMb3U1P0ty28QldMqudcUosr9QG2eVgvoSR0xe12rjKfQ/Aa9aGo7oqmcdUu8vvtOm9t6gvmP4bgtRyYQCoFxj8xs/3cSj+ZBQAAAABJRU5ErkJggg=="},nidP:function(t,e){},pw1w:function(t,e){},tvR6:function(t,e){},xM5T:function(t,e){}},["NHnr"]);
//# sourceMappingURL=app.667c3d34ada3c3c6a4c4.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 5c6668609d6b26bd2841"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,IAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.2ae2e69a05c33dfc65f8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 5c6668609d6b26bd2841"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap be168349f4928e7f0394"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,IAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.2ae2e69a05c33dfc65f8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap be168349f4928e7f0394"],"sourceRoot":""}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册