Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_45598856
white-jotter
提交
977d6395
W
white-jotter
项目概览
qq_45598856
/
white-jotter
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
white-jotter
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
977d6395
编写于
4月 27, 2019
作者:
E
Evan
提交者:
GitHub
4月 27, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3 from Antabot/dev
Dev
上级
cacfa85a
ffdb126a
变更
26
展开全部
隐藏空白更改
内联
并排
Showing
26 changed file
with
225 addition
and
63 deletion
+225
-63
wj-vue/.eslintrc.js
wj-vue/.eslintrc.js
+1
-1
wj-vue/package-lock.json
wj-vue/package-lock.json
+3
-3
wj-vue/package.json
wj-vue/package.json
+1
-1
wj-vue/src/App.vue
wj-vue/src/App.vue
+15
-15
wj-vue/src/components/Login.vue
wj-vue/src/components/Login.vue
+7
-4
wj-vue/src/components/admin/AdminIndex.vue
wj-vue/src/components/admin/AdminIndex.vue
+26
-0
wj-vue/src/components/admin/AdminMenu.vue
wj-vue/src/components/admin/AdminMenu.vue
+43
-0
wj-vue/src/components/admin/Header.vue
wj-vue/src/components/admin/Header.vue
+23
-0
wj-vue/src/components/common/NavMenu.vue
wj-vue/src/components/common/NavMenu.vue
+1
-1
wj-vue/src/components/library/Books.vue
wj-vue/src/components/library/Books.vue
+10
-1
wj-vue/src/components/library/LibraryIndex.vue
wj-vue/src/components/library/LibraryIndex.vue
+3
-7
wj-vue/src/components/library/ViewSwitch.vue
wj-vue/src/components/library/ViewSwitch.vue
+21
-0
wj-vue/src/main.js
wj-vue/src/main.js
+19
-0
wj-vue/src/router/index.js
wj-vue/src/router/index.js
+32
-8
wj-vue/src/store/index.js
wj-vue/src/store/index.js
+4
-6
wj/pom.xml
wj/pom.xml
+1
-1
wj/src/main/java/com/gm/wj/controller/LoginController.java
wj/src/main/java/com/gm/wj/controller/LoginController.java
+1
-1
wj/src/main/java/com/gm/wj/interceptor/LoginInterceptor.java
wj/src/main/java/com/gm/wj/interceptor/LoginInterceptor.java
+0
-6
wj/src/main/resources/application.properties
wj/src/main/resources/application.properties
+2
-2
wj/src/main/resources/static/index.html
wj/src/main/resources/static/index.html
+1
-1
wj/src/main/resources/static/static/css/app.379b8d8461292708110affc48dbd9830.css
...tatic/static/css/app.379b8d8461292708110affc48dbd9830.css
+2
-0
wj/src/main/resources/static/static/css/app.379b8d8461292708110affc48dbd9830.css.map
...c/static/css/app.379b8d8461292708110affc48dbd9830.css.map
+1
-0
wj/src/main/resources/static/static/js/app.fbea860be5c8e3feb669.js
...in/resources/static/static/js/app.fbea860be5c8e3feb669.js
+2
-0
wj/src/main/resources/static/static/js/app.fbea860be5c8e3feb669.js.map
...esources/static/static/js/app.fbea860be5c8e3feb669.js.map
+1
-0
wj/src/main/resources/static/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
...ces/static/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
+1
-1
wj/wj.sql
wj/wj.sql
+4
-4
未找到文件。
wj-vue/.eslintrc.js
浏览文件 @
977d6395
...
...
@@ -23,7 +23,7 @@ module.exports = {
rules
:
{
// allow async-await
'
generator-star-spacing
'
:
'
off
'
,
'
no-tabs
'
:
'
off
'
,
//
'no-tabs': 'off',
'
indent
'
:
[
"
off
"
,
2
],
// allow debugger during development
'
no-debugger
'
:
process
.
env
.
NODE_ENV
===
'
production
'
?
'
error
'
:
'
off
'
...
...
wj-vue/package-lock.json
浏览文件 @
977d6395
...
...
@@ -3967,9 +3967,9 @@
"dev": true
},
"element-ui": {
"version": "2.
7.0
",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.
7.0
.tgz",
"integrity": "sha512-
FalWzOmT/K4w4C/8tw2kGvzzQnRJ5MqEvSL5rEKNa081PFGIcUS9exyVpYrNPKF8ua/W6qaqrXPC6DQ8sNcmOQ
==",
"version": "2.
8.2
",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.
8.2
.tgz",
"integrity": "sha512-
LABKHKGUyewFNvpf9BQLecB659Wq0XYvyP1tBveZ4RWpdlPSylDfGW/RLvDYU7zuCBoRasdZAz7ryjOwq1lLNg
==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
...
...
wj-vue/package.json
浏览文件 @
977d6395
...
...
@@ -15,7 +15,7 @@
},
"dependencies"
:
{
"axios"
:
"^0.18.0"
,
"element-ui"
:
"^2.
7.0
"
,
"element-ui"
:
"^2.
8.2
"
,
"mavon-editor"
:
"^2.6.17"
,
"vue"
:
"^2.6.10"
,
"vue-router"
:
"^3.0.1"
,
...
...
wj-vue/src/App.vue
浏览文件 @
977d6395
<
template
>
<!--此处的 id 虽然也名为 app,但与主 html 中含义不同-->
<div
id=
"app"
>
<router-view/>
</div>
<router-view/>
</div>
</
template
>
<
script
>
import
NavMenu
from
'
@/components/common/NavMenu
'
export
default
{
name
:
'
App
'
,
components
:
{
NavMenu
}
}
export
default
{
name
:
'
App
'
,
components
:
{
NavMenu
}
}
</
script
>
<
style
>
#app
{
font-family
:
'Avenir'
,
Helvetica
,
Arial
,
sans-serif
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
text-align
:
center
;
color
:
#2c3e50
;
margin-top
:
10px
;
}
#app
{
font-family
:
'Avenir'
,
Helvetica
,
Arial
,
sans-serif
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
text-align
:
center
;
color
:
#2c3e50
;
margin-top
:
10px
;
}
</
style
>
wj-vue/src/components/Login.vue
浏览文件 @
977d6395
...
...
@@ -37,15 +37,18 @@
},
methods
:
{
login
()
{
var
_this
=
this
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
'
})
.
then
(
resp
=>
{
if
(
resp
.
data
.
code
===
200
)
{
var
data
=
resp
.
data
_this
.
$store
.
commit
(
'
login
'
,
data
.
data
)
var
path
=
_this
.
$route
.
query
.
redirect
_this
.
$router
.
replace
({
path
:
path
===
'
/
'
||
path
===
undefined
?
'
/home
'
:
path
})
}
})
.
catch
(
failResponse
=>
{})
...
...
wj-vue/src/components/admin/AdminIndex.vue
0 → 100644
浏览文件 @
977d6395
<
template
>
<div>
<el-row
style=
"z-index: 1;"
>
<Header
style=
"position: absolute;width: 100%;"
></Header>
</el-row>
<el-row
style=
"z-index: 0;"
>
<el-col
style=
"width: 250px"
>
<admin-menu></admin-menu>
</el-col>
</el-row>
</div>
</
template
>
<
script
>
import
AdminMenu
from
'
./AdminMenu
'
import
Header
from
'
./Header
'
export
default
{
name
:
'
AdminIndex
'
,
components
:
{
AdminMenu
,
Header
}
}
</
script
>
<
style
scoped
>
</
style
>
wj-vue/src/components/admin/AdminMenu.vue
0 → 100644
浏览文件 @
977d6395
<
template
>
<div>
<el-menu
:default-active=
"'/admin/users'"
class=
"el-menu-admin"
router
mode=
"vertical"
background-color=
"#545c64"
text-color=
"#fff"
active-text-color=
"#ffd04b"
>
<div
style=
"height: 80px;"
></div>
<el-menu-item
v-for=
"(item,i) in navList"
:key=
"i"
:index=
"item.name"
style=
"font-size: 18px"
>
<i
:class=
"item.icon"
></i>
{{
item
.
navItem
}}
</el-menu-item>
</el-menu>
</div>
</
template
>
<
script
>
export
default
{
name
:
'
AdminMenu
'
,
data
()
{
return
{
navList
:
[
{
name
:
'
/admin/users
'
,
navItem
:
'
用户管理
'
,
icon
:
'
el-icon-user
'
},
{
name
:
'
/admin/library
'
,
navItem
:
'
图书管理
'
,
icon
:
'
el-icon-tickets
'
},
{
name
:
'
/admin/news
'
,
navItem
:
'
新闻管理
'
,
icon
:
'
el-icon-news
'
},
{
name
:
'
/system
'
,
navItem
:
'
系统设置
'
,
icon
:
'
el-icon-s-tools
'
}
],
keywords
:
''
}
}
}
</
script
>
<
style
scoped
>
.el-menu-admin
{
height
:
1200px
;
font-size
:
30px
;
border-radius
:
5px
;
}
</
style
>
wj-vue/src/components/admin/Header.vue
0 → 100644
浏览文件 @
977d6395
<
template
>
<el-card
class=
"admin-header"
>
<a
href=
"/index"
>
<img
src=
"../../assets/img/icon/icon2.png"
alt=
""
width=
"55px"
style=
"float: left;margin-top: -5px;"
>
</a>
<span
style=
"font-size: 32px;font-weight: bold;position:absolute;left: 100px"
>
白 卷
</span>
<i
class=
"el-icon-s-unfold"
style=
"font-size: 40px;float: right"
></i>
</el-card>
</
template
>
<
script
>
export
default
{
name
:
'
Header
'
}
</
script
>
<
style
scoped
>
.admin-header
{
height
:
80px
;
opacity
:
0.85
;
line-height
:
40px
;
}
</
style
>
wj-vue/src/components/common/NavMenu.vue
浏览文件 @
977d6395
...
...
@@ -35,7 +35,7 @@
{
name
:
'
/index
'
,
navItem
:
'
首页
'
},
{
name
:
'
/jotter
'
,
navItem
:
'
笔记本
'
},
{
name
:
'
/library
'
,
navItem
:
'
图书馆
'
},
{
name
:
'
#nowhere
'
,
navItem
:
'
个人中心
'
}
{
name
:
'
/admin
'
,
navItem
:
'
个人中心
'
}
],
keywords
:
''
}
...
...
wj-vue/src/components/library/Books.vue
浏览文件 @
977d6395
...
...
@@ -2,6 +2,7 @@
<div>
<el-row
style=
"height: 840px;"
>
<search-bar
@
onSearch=
"searchResult"
ref=
"searchBar"
></search-bar>
<view-switch
class=
"switch"
></view-switch>
<el-tooltip
effect=
"dark"
placement=
"right"
v-for=
"item in books.slice((currentPage-1)*pagesize,currentPage*pagesize)"
:key=
"item.id"
>
...
...
@@ -42,9 +43,10 @@
<
script
>
import
EditForm
from
'
./EditForm
'
import
SearchBar
from
'
./SearchBar
'
import
ViewSwitch
from
'
./ViewSwitch
'
export
default
{
name
:
'
Books
'
,
components
:
{
EditForm
,
SearchBar
},
components
:
{
EditForm
,
SearchBar
,
ViewSwitch
},
data
()
{
return
{
books
:
[],
...
...
@@ -155,6 +157,13 @@
float
:
right
;
}
.switch
{
display
:
flex
;
position
:
absolute
;
left
:
780px
;
top
:
25px
;
}
a
{
text-decoration
:
none
;
}
...
...
wj-vue/src/components/library/LibraryIndex.vue
浏览文件 @
977d6395
<
template
>
<el-container>
<el-aside
style=
"width: 200px;margin-top: 20px"
>
<switch></switch>
<SideMenu
@
indexSelect=
"listByCategory"
ref=
"sideMenu"
></SideMenu>
</el-aside>
<el-main>
<el-row>
<books
class=
"books-area"
ref=
"booksArea"
></books>
</el-row>
<books
class=
"books-area"
ref=
"booksArea"
></books>
</el-main>
</el-container>
</
template
>
<
script
>
import
SideMenu
from
'
./SideMenu
'
import
Tag
from
'
./Tag
'
import
Books
from
'
./Books
'
import
About
from
'
../common/About
'
import
ImgUpload
from
'
./ImgUpload
'
export
default
{
name
:
'
AppLibrary
'
,
components
:
{
Books
,
Tag
,
SideMenu
,
About
,
ImgUpload
},
components
:
{
Books
,
SideMenu
},
methods
:
{
listByCategory
()
{
var
_this
=
this
...
...
wj-vue/src/components/library/ViewSwitch.vue
0 → 100644
浏览文件 @
977d6395
<
template
>
<el-switch
v-model=
"value"
active-text=
"列表视图"
>
</el-switch>
</
template
>
<
script
>
export
default
{
name
:
'
Switch
'
,
data
()
{
return
{
value
:
true
}
}
}
</
script
>
<
style
scoped
>
</
style
>
wj-vue/src/main.js
浏览文件 @
977d6395
...
...
@@ -7,6 +7,7 @@ import App from './App'
import
router
from
'
./router
'
import
mavonEditor
from
'
mavon-editor
'
import
'
mavon-editor/dist/css/index.css
'
import
store
from
'
./store
'
var
axios
=
require
(
'
axios
'
)
axios
.
defaults
.
baseURL
=
'
http://localhost:8443/api
'
...
...
@@ -16,11 +17,29 @@ Vue.config.productionTip = false
Vue
.
use
(
ElementUI
)
Vue
.
use
(
mavonEditor
)
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
if
(
to
.
meta
.
requireAuth
)
{
if
(
store
.
state
.
user
.
username
)
{
console
.
log
(
store
.
state
.
user
.
username
)
next
()
}
else
{
next
({
path
:
'
login
'
,
query
:
{
redirect
:
to
.
fullPath
}
})
}
}
else
{
next
()
}
}
)
/* eslint-disable no-new */
new
Vue
({
el
:
'
#app
'
,
render
:
h
=>
h
(
App
),
router
,
store
,
components
:
{
App
},
template
:
'
<App/>
'
})
wj-vue/src/router/index.js
浏览文件 @
977d6395
...
...
@@ -6,6 +6,7 @@ import Editor from '@/components/jotter/Editor'
import
LibraryIndex
from
'
@/components/library/LibraryIndex
'
import
Login
from
'
@/components/Login
'
import
Home
from
'
@/components/Home
'
import
AdminIndex
from
'
@/components/admin/AdminIndex
'
Vue
.
use
(
Router
)
...
...
@@ -14,9 +15,12 @@ export default new Router({
routes
:
[
{
path
:
'
/
'
,
name
:
'
Login
'
,
redirect
:
'
/login
'
,
component
:
Login
name
:
'
index
'
,
redirect
:
'
/index
'
,
component
:
AppIndex
,
meta
:
{
requireAuth
:
true
}
},
{
// home页面并不需要被访问,只是作为其它组件的父组件
...
...
@@ -28,22 +32,34 @@ export default new Router({
{
path
:
'
/index
'
,
name
:
'
AppIndex
'
,
component
:
AppIndex
component
:
AppIndex
,
meta
:
{
requireAuth
:
true
}
},
{
path
:
'
/jotter
'
,
name
:
'
JotterIndex
'
,
component
:
JotterIndex
name
:
'
Jotter
'
,
component
:
JotterIndex
,
meta
:
{
requireAuth
:
true
}
},
{
path
:
'
/editor
'
,
name
:
'
Editor
'
,
component
:
Editor
component
:
Editor
,
meta
:
{
requireAuth
:
true
}
},
{
path
:
'
/library
'
,
name
:
'
Library
'
,
component
:
LibraryIndex
component
:
LibraryIndex
,
meta
:
{
requireAuth
:
true
}
}
]
},
...
...
@@ -51,6 +67,14 @@ export default new Router({
path
:
'
/login
'
,
name
:
'
Login
'
,
component
:
Login
},
{
path
:
'
/admin
'
,
name
:
'
Admin
'
,
component
:
AdminIndex
,
meta
:
{
requireAuth
:
true
}
}
]
})
wj-vue/src/store/index.js
浏览文件 @
977d6395
import
Vue
from
'
vue
'
import
Vuex
from
'
vuex
'
import
'
../lib/sockjs
'
import
'
../lib/stomp
'
Vue
.
use
(
Vuex
)
export
default
new
Vuex
.
Store
({
state
:
{
user
:
{
name
:
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)
==
null
?
'
未登录
'
:
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)).
name
,
userface
:
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)
==
null
?
''
:
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)).
userface
,
username
:
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)
==
null
?
''
:
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)).
username
,
roles
:
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)
==
null
?
''
:
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)).
roles
//
name: window.localStorage.getItem('user' || '[]') == null ? '未登录' : JSON.parse(window.localStorage.getItem('user' || '[]')).name,
//
userface: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).userface,
username
:
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)
==
null
?
''
:
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'
user
'
||
'
[]
'
)).
username
//
roles: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).roles
},
routes
:
[]
},
...
...
wj/pom.xml
浏览文件 @
977d6395
...
...
@@ -86,7 +86,7 @@
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.21
</version>
<version>
8.0.13
</version>
</dependency>
<!-- junit -->
...
...
wj/src/main/java/com/gm/wj/controller/LoginController.java
浏览文件 @
977d6395
...
...
@@ -30,7 +30,7 @@ public class LoginController {
return
ResultFactory
.
buildFailResult
(
message
);
}
else
{
session
.
setAttribute
(
"user"
,
user
);
return
ResultFactory
.
buildSuccessResult
(
"登录成功"
);
return
ResultFactory
.
buildSuccessResult
(
user
);
}
}
}
wj/src/main/java/com/gm/wj/interceptor/LoginInterceptor.java
浏览文件 @
977d6395
...
...
@@ -50,12 +50,6 @@ public class LoginInterceptor implements HandlerInterceptor{
return
result
;
}
@Override
public
void
postHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
ModelAndView
modelAndView
)
throws
Exception
{
...
...
wj/src/main/resources/application.properties
浏览文件 @
977d6395
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.datasource.password
=
Admin123!
spring.datasource.driver-class-name
=
com.mysql.
cj.
jdbc.Driver
spring.jpa.hibernate.ddl-auto
=
none
...
...
wj/src/main/resources/static/index.html
浏览文件 @
977d6395
<!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.dc32149923d2eba22d5855d7ada511b1.css
rel=
stylesheet
></head><body
style=
"background: #f6f6f6"
><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.2ae2e69a05c33dfc65f8.js
></script><script
type=
text/javascript
src=
/static/js/vendor.578a67f45ff71504b68d.js
></script><script
type=
text/javascript
src=
/static/js/app.633e822534ffa18fcf67.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.379b8d8461292708110affc48dbd9830.css
rel=
stylesheet
></head><body
style=
"background: #f6f6f6"
><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.2ae2e69a05c33dfc65f8.js
></script><script
type=
text/javascript
src=
/static/js/vendor.578a67f45ff71504b68d.js
></script><script
type=
text/javascript
src=
/static/js/app.fbea860be5c8e3feb669.js
></script></body></html>
\ No newline at end of file
wj/src/main/resources/static/static/css/app.379b8d8461292708110affc48dbd9830.css
0 → 100644
浏览文件 @
977d6395
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
wj/src/main/resources/static/static/css/app.379b8d8461292708110affc48dbd9830.css.map
0 → 100644
浏览文件 @
977d6395
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
wj/src/main/resources/static/static/js/app.fbea860be5c8e3feb669.js
0 → 100644
浏览文件 @
977d6395
此差异已折叠。
点击以展开。
wj/src/main/resources/static/static/js/app.fbea860be5c8e3feb669.js.map
0 → 100644
浏览文件 @
977d6395
此差异已折叠。
点击以展开。
wj/src/main/resources/static/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
浏览文件 @
977d6395
{"version":3,"sources":["webpack:///webpack/bootstrap 8224e931b26be67392f1"],"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 8224e931b26be67392f1"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 5b541ecda23339773503"],"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 5b541ecda23339773503"],"sourceRoot":""}
\ No newline at end of file
wj/wj.sql
浏览文件 @
977d6395
...
...
@@ -2,15 +2,15 @@
Navicat MySQL Data Transfer
Source Server : MySQL
Source Server Version : 5072
5
Source Server Version : 5072
1
Source Host : localhost:3306
Source Database : wj
Target Server Type : MYSQL
Target Server Version : 5072
5
Target Server Version : 5072
1
File Encoding : 65001
Date: 2019-04-1
1 19:26:20
Date: 2019-04-1
5 18:54:23
*/
SET
FOREIGN_KEY_CHECKS
=
0
;
...
...
@@ -31,7 +31,7 @@ CREATE TABLE `book` (
PRIMARY
KEY
(
`id`
),
KEY
`fk_book_category_on_cid`
(
`cid`
),
CONSTRAINT
`fk_book_category_on_cid`
FOREIGN
KEY
(
`cid`
)
REFERENCES
`category`
(
`id`
)
ON
DELETE
SET
NULL
ON
UPDATE
CASCADE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
9
2
DEFAULT
CHARSET
=
utf8
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
10
2
DEFAULT
CHARSET
=
utf8
;
-- ----------------------------
-- Records of book
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录