Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Springboot Plus
Commits
f2544d0e
Commit
f2544d0e
authored
Sep 01, 2019
by
一日看尽长安花
Committed by
trumansdo
Sep 01, 2019
Browse files
none
parent
95285c62
Changes
9
Show whitespace changes
Inline
Side-by-side
admin-web/.eslintrc.js
View file @
f2544d0e
module
.
exports
=
{
module
.
exports
=
{
root
:
true
,
root
:
true
,
parserOptions
:
{
parser
:
'
babel-eslint
'
,
sourceType
:
'
module
'
},
env
:
{
env
:
{
browser
:
true
,
node
:
true
node
:
true
,
es6
:
true
,
},
},
extends
:
[
'
plugin:vue/recommended
'
,
'
eslint:recommended
'
],
// add your custom rules here
extends
:
[
'
plugin:vue/essential
'
,
'
@vue/prettier
'
],
//it is base on https://github.com/vuejs/eslint-config-vue
// 各种eslint检查的规则
rules
:
{
rules
:
{
"
vue/max-attributes-per-line
"
:
[
2
,
{
"
singleline
"
:
10
,
"
multiline
"
:
{
"
max
"
:
1
,
"
allowFirstLine
"
:
false
}
}],
"
vue/singleline-html-element-content-newline
"
:
"
off
"
,
"
vue/multiline-html-element-content-newline
"
:
"
off
"
,
"
vue/name-property-casing
"
:
[
"
error
"
,
"
PascalCase
"
],
"
vue/no-v-html
"
:
"
off
"
,
'
accessor-pairs
'
:
2
,
'
arrow-spacing
'
:
[
2
,
{
'
before
'
:
true
,
'
after
'
:
true
}],
'
block-spacing
'
:
[
2
,
'
always
'
],
'
brace-style
'
:
[
2
,
'
1tbs
'
,
{
'
allowSingleLine
'
:
true
}],
'
camelcase
'
:
[
0
,
{
'
properties
'
:
'
always
'
}],
'
comma-dangle
'
:
[
2
,
'
never
'
],
'
comma-spacing
'
:
[
2
,
{
'
before
'
:
false
,
'
after
'
:
true
}],
'
comma-style
'
:
[
2
,
'
last
'
],
'
constructor-super
'
:
2
,
'
curly
'
:
[
2
,
'
multi-line
'
],
'
dot-location
'
:
[
2
,
'
property
'
],
'
eol-last
'
:
2
,
'
eqeqeq
'
:
[
"
error
"
,
"
always
"
,
{
"
null
"
:
"
ignore
"
}],
'
generator-star-spacing
'
:
[
2
,
{
'
before
'
:
true
,
'
after
'
:
true
}],
'
handle-callback-err
'
:
[
2
,
'
^(err|error)$
'
],
'
indent
'
:
[
2
,
2
,
{
'
SwitchCase
'
:
1
}],
'
jsx-quotes
'
:
[
2
,
'
prefer-single
'
],
'
key-spacing
'
:
[
2
,
{
'
beforeColon
'
:
false
,
'
afterColon
'
:
true
}],
'
keyword-spacing
'
:
[
2
,
{
'
before
'
:
true
,
'
after
'
:
true
}],
'
new-cap
'
:
[
2
,
{
'
newIsCap
'
:
true
,
'
capIsNew
'
:
false
}],
'
new-parens
'
:
2
,
'
no-array-constructor
'
:
2
,
'
no-caller
'
:
2
,
'
no-console
'
:
'
off
'
,
'
no-console
'
:
'
off
'
,
'
no-class-assign
'
:
2
,
'
no-debugger
'
:
'
off
'
,
'
no-cond-assign
'
:
2
,
'
no-unused-vars
'
:
'
off
'
,
'
no-const-assign
'
:
2
,
'
vue/no-unused-vars
'
:
'
off
'
,
'
no-control-regex
'
:
0
,
quotes
:
[
'
no-delete-var
'
:
2
,
2
,
'
no-dupe-args
'
:
2
,
'
single
'
,
'
no-dupe-class-members
'
:
2
,
{
'
no-dupe-keys
'
:
2
,
avoidEscape
:
true
,
'
no-duplicate-case
'
:
2
,
allowTemplateLiterals
:
true
'
no-empty-character-class
'
:
2
,
}
'
no-empty-pattern
'
:
2
,
],
'
no-eval
'
:
2
,
'
jsx-quotes
'
:
[
2
,
'
prefer-single
'
]
'
no-ex-assign
'
:
2
,
},
'
no-extend-native
'
:
2
,
'
no-extra-bind
'
:
2
,
parserOptions
:
{
'
no-extra-boolean-cast
'
:
2
,
parser
:
'
babel-eslint
'
'
no-extra-parens
'
:
[
2
,
'
functions
'
],
},
'
no-fallthrough
'
:
2
,
'
no-floating-decimal
'
:
2
,
overrides
:
[
'
no-func-assign
'
:
2
,
{
'
no-implied-eval
'
:
2
,
files
:
[
'
**/__tests__/*.{j,t}s?(x)
'
],
'
no-inner-declarations
'
:
[
2
,
'
functions
'
],
env
:
{
'
no-invalid-regexp
'
:
2
,
jest
:
true
'
no-irregular-whitespace
'
:
2
,
'
no-iterator
'
:
2
,
'
no-label-var
'
:
2
,
'
no-labels
'
:
[
2
,
{
'
allowLoop
'
:
false
,
'
allowSwitch
'
:
false
}],
'
no-lone-blocks
'
:
2
,
'
no-mixed-spaces-and-tabs
'
:
2
,
'
no-multi-spaces
'
:
2
,
'
no-multi-str
'
:
2
,
'
no-multiple-empty-lines
'
:
[
2
,
{
'
max
'
:
1
}],
'
no-native-reassign
'
:
2
,
'
no-negated-in-lhs
'
:
2
,
'
no-new-object
'
:
2
,
'
no-new-require
'
:
2
,
'
no-new-symbol
'
:
2
,
'
no-new-wrappers
'
:
2
,
'
no-obj-calls
'
:
2
,
'
no-octal
'
:
2
,
'
no-octal-escape
'
:
2
,
'
no-path-concat
'
:
2
,
'
no-proto
'
:
2
,
'
no-redeclare
'
:
2
,
'
no-regex-spaces
'
:
2
,
'
no-return-assign
'
:
[
2
,
'
except-parens
'
],
'
no-self-assign
'
:
2
,
'
no-self-compare
'
:
2
,
'
no-sequences
'
:
2
,
'
no-shadow-restricted-names
'
:
2
,
'
no-spaced-func
'
:
2
,
'
no-sparse-arrays
'
:
2
,
'
no-this-before-super
'
:
2
,
'
no-throw-literal
'
:
2
,
'
no-trailing-spaces
'
:
2
,
'
no-undef
'
:
2
,
'
no-undef-init
'
:
2
,
'
no-unexpected-multiline
'
:
2
,
'
no-unmodified-loop-condition
'
:
2
,
'
no-unneeded-ternary
'
:
[
2
,
{
'
defaultAssignment
'
:
false
}],
'
no-unreachable
'
:
2
,
'
no-unsafe-finally
'
:
2
,
'
no-unused-vars
'
:
[
2
,
{
'
vars
'
:
'
all
'
,
'
args
'
:
'
none
'
}],
'
no-useless-call
'
:
2
,
'
no-useless-computed-key
'
:
2
,
'
no-useless-constructor
'
:
2
,
'
no-useless-escape
'
:
0
,
'
no-whitespace-before-property
'
:
2
,
'
no-with
'
:
2
,
'
one-var
'
:
[
2
,
{
'
initialized
'
:
'
never
'
}],
'
operator-linebreak
'
:
[
2
,
'
after
'
,
{
'
overrides
'
:
{
'
?
'
:
'
before
'
,
'
:
'
:
'
before
'
}
}
}],
'
padded-blocks
'
:
[
2
,
'
never
'
],
'
quotes
'
:
[
2
,
'
single
'
,
{
'
avoidEscape
'
:
true
,
'
allowTemplateLiterals
'
:
true
}],
'
semi
'
:
[
2
,
'
never
'
],
'
semi-spacing
'
:
[
2
,
{
'
before
'
:
false
,
'
after
'
:
true
}],
'
space-before-blocks
'
:
[
2
,
'
always
'
],
'
space-before-function-paren
'
:
[
2
,
'
never
'
],
'
space-in-parens
'
:
[
2
,
'
never
'
],
'
space-infix-ops
'
:
2
,
'
space-unary-ops
'
:
[
2
,
{
'
words
'
:
true
,
'
nonwords
'
:
false
}],
'
spaced-comment
'
:
[
2
,
'
always
'
,
{
'
markers
'
:
[
'
global
'
,
'
globals
'
,
'
eslint
'
,
'
eslint-disable
'
,
'
*package
'
,
'
!
'
,
'
,
'
]
}],
'
template-curly-spacing
'
:
[
2
,
'
never
'
],
'
use-isnan
'
:
2
,
'
valid-typeof
'
:
2
,
'
wrap-iife
'
:
[
2
,
'
any
'
],
'
yield-star-spacing
'
:
[
2
,
'
both
'
],
'
yoda
'
:
[
2
,
'
never
'
],
'
prefer-const
'
:
2
,
'
no-debugger
'
:
process
.
env
.
NODE_ENV
===
'
production
'
?
2
:
0
,
'
object-curly-spacing
'
:
[
2
,
'
always
'
,
{
objectsInObjects
:
false
}],
'
array-bracket-spacing
'
:
[
2
,
'
never
'
]
}
}
}
],
extends
:
[
'
plugin:vue/essential
'
,
'
@vue/prettier
'
]
};
admin-web/.prettierrc
0 → 100644
View file @
f2544d0e
{
"eslintIntegration": true,
"singleQuote": true,
"semi": false
}
admin-web/mock/user.js
View file @
f2544d0e
const
tokens
=
{
const
tokens
=
{
admin
:
{
admin
:
{
token
:
'
admin-token
'
token
:
'
admin-token
'
...
@@ -12,13 +11,15 @@ const users = {
...
@@ -12,13 +11,15 @@ const users = {
'
admin-token
'
:
{
'
admin-token
'
:
{
roles
:
[
'
admin
'
],
roles
:
[
'
admin
'
],
introduction
:
'
I am a super administrator
'
,
introduction
:
'
I am a super administrator
'
,
avatar
:
'
https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif
'
,
avatar
:
'
https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif
'
,
name
:
'
Super Admin
'
name
:
'
Super Admin
'
},
},
'
editor-token
'
:
{
'
editor-token
'
:
{
roles
:
[
'
editor
'
],
roles
:
[
'
editor
'
],
introduction
:
'
I am an editor
'
,
introduction
:
'
I am an editor
'
,
avatar
:
'
https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif
'
,
avatar
:
'
https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif
'
,
name
:
'
Normal Editor
'
name
:
'
Normal Editor
'
}
}
}
}
...
@@ -49,7 +50,7 @@ export default [
...
@@ -49,7 +50,7 @@ export default [
// get user info
// get user info
{
{
url
:
'
/user/info
\
.*
'
,
url
:
'
/user/info.*
'
,
type
:
'
get
'
,
type
:
'
get
'
,
response
:
config
=>
{
response
:
config
=>
{
const
{
token
}
=
config
.
query
const
{
token
}
=
config
.
query
...
...
admin-web/package.json
View file @
f2544d0e
...
@@ -75,6 +75,7 @@
...
@@ -75,6 +75,7 @@
"@babel/register"
:
"7.0.0"
,
"@babel/register"
:
"7.0.0"
,
"@vue/cli-plugin-babel"
:
"3.5.3"
,
"@vue/cli-plugin-babel"
:
"3.5.3"
,
"@vue/cli-plugin-eslint"
:
"^3.9.1"
,
"@vue/cli-plugin-eslint"
:
"^3.9.1"
,
"@vue/eslint-config-prettier"
:
"^5.0.0"
,
"@vue/cli-plugin-unit-jest"
:
"3.5.3"
,
"@vue/cli-plugin-unit-jest"
:
"3.5.3"
,
"@vue/cli-service"
:
"3.5.3"
,
"@vue/cli-service"
:
"3.5.3"
,
"@vue/test-utils"
:
"1.0.0-beta.29"
,
"@vue/test-utils"
:
"1.0.0-beta.29"
,
...
@@ -86,7 +87,9 @@
...
@@ -86,7 +87,9 @@
"chokidar"
:
"2.1.5"
,
"chokidar"
:
"2.1.5"
,
"connect"
:
"3.6.6"
,
"connect"
:
"3.6.6"
,
"eslint"
:
"5.15.3"
,
"eslint"
:
"5.15.3"
,
"eslint-plugin-prettier"
:
"^3.1.0"
,
"eslint-plugin-vue"
:
"5.2.2"
,
"eslint-plugin-vue"
:
"5.2.2"
,
"prettier"
:
"^1.18.2"
,
"html-webpack-plugin"
:
"3.2.0"
,
"html-webpack-plugin"
:
"3.2.0"
,
"husky"
:
"1.3.1"
,
"husky"
:
"1.3.1"
,
"lint-staged"
:
"8.1.5"
,
"lint-staged"
:
"8.1.5"
,
...
...
admin-web/src/App.vue
View file @
f2544d0e
...
@@ -6,6 +6,6 @@
...
@@ -6,6 +6,6 @@
<
script
>
<
script
>
export
default
{
export
default
{
name
:
"
App
"
name
:
'
App
'
}
;
}
</
script
>
</
script
>
admin-web/src/main.js
View file @
f2544d0e
...
@@ -27,10 +27,12 @@ import * as filters from './filters' // global filters
...
@@ -27,10 +27,12 @@ import * as filters from './filters' // global filters
* Currently MockJs will be used in the production environment,
* Currently MockJs will be used in the production environment,
* please remove it before going online! ! !
* please remove it before going online! ! !
*/
*/
/*
import { mockXHR } from '../mock'
import { mockXHR } from '../mock'
if (process.env.NODE_ENV === 'unknown env') {
if (process.env.NODE_ENV === 'unknown env') {
mockXHR()
mockXHR()
}
}
*/
Vue
.
use
(
Element
,
{
Vue
.
use
(
Element
,
{
size
:
Cookies
.
get
(
'
size
'
)
||
'
medium
'
// set element-ui default size
size
:
Cookies
.
get
(
'
size
'
)
||
'
medium
'
// set element-ui default size
...
...
admin-web/src/utils/request.js
View file @
f2544d0e
...
@@ -3,6 +3,9 @@ import { MessageBox, Message } from 'element-ui'
...
@@ -3,6 +3,9 @@ import { MessageBox, Message } from 'element-ui'
import
store
from
'
@/store
'
import
store
from
'
@/store
'
import
{
getToken
}
from
'
@/utils/auth
'
import
{
getToken
}
from
'
@/utils/auth
'
const
axiosUrl
=
process
.
env
.
NODE_ENV
===
'
development
'
?
'
localhost:8080
'
:
'
localhost
'
// request host
// create an axios instance
// create an axios instance
const
service
=
axios
.
create
({
const
service
=
axios
.
create
({
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// url = base url + request url
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// url = base url + request url
...
@@ -25,7 +28,7 @@ service.interceptors.request.use(
...
@@ -25,7 +28,7 @@ service.interceptors.request.use(
},
},
error
=>
{
error
=>
{
// do something with request error
// do something with request error
console
.
log
(
error
)
// for debug
console
.
log
(
'
request err =>
'
+
error
)
// for debug
return
Promise
.
reject
(
error
)
return
Promise
.
reject
(
error
)
}
}
)
)
...
@@ -56,11 +59,15 @@ service.interceptors.response.use(
...
@@ -56,11 +59,15 @@ service.interceptors.response.use(
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
if
(
res
.
code
===
50008
||
res
.
code
===
50012
||
res
.
code
===
50014
)
{
if
(
res
.
code
===
50008
||
res
.
code
===
50012
||
res
.
code
===
50014
)
{
// to re-login
// to re-login
MessageBox
.
confirm
(
'
You have been logged out, you can cancel to stay on this page, or log in again
'
,
'
Confirm logout
'
,
{
MessageBox
.
confirm
(
'
You have been logged out, you can cancel to stay on this page, or log in again
'
,
'
Confirm logout
'
,
{
confirmButtonText
:
'
Re-Login
'
,
confirmButtonText
:
'
Re-Login
'
,
cancelButtonText
:
'
Cancel
'
,
cancelButtonText
:
'
Cancel
'
,
type
:
'
warning
'
type
:
'
warning
'
}).
then
(()
=>
{
}
).
then
(()
=>
{
store
.
dispatch
(
'
user/resetToken
'
).
then
(()
=>
{
store
.
dispatch
(
'
user/resetToken
'
).
then
(()
=>
{
location
.
reload
()
location
.
reload
()
})
})
...
@@ -72,7 +79,7 @@ service.interceptors.response.use(
...
@@ -72,7 +79,7 @@ service.interceptors.response.use(
}
}
},
},
error
=>
{
error
=>
{
console
.
log
(
'
err
'
+
error
)
// for debug
console
.
log
(
'
response err ==>
'
+
error
)
// for debug
Message
({
Message
({
message
:
error
.
message
,
message
:
error
.
message
,
type
:
'
error
'
,
type
:
'
error
'
,
...
...
admin-web/src/views/login/index.vue
View file @
f2544d0e
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
autocomplete=
"on"
label-position=
"left"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
autocomplete=
"on"
label-position=
"left"
>
<div
class=
"title-container"
>
<div
class=
"title-container"
>
<h3
class=
"title"
>
Login Form
</h3>
<h3
class=
"title"
>
用户登录
</h3>
</div>
</div>
<el-form-item
prop=
"username"
>
<el-form-item
prop=
"username"
>
...
@@ -49,14 +49,8 @@
...
@@ -49,14 +49,8 @@
<div
style=
"position:relative"
>
<div
style=
"position:relative"
>
<div
class=
"tips"
>
<div
class=
"tips"
>
<span>
Username : admin
</span>
<span
/>
<span>
Password : any
</span>
</div>
</div>
<div
class=
"tips"
>
<span
style=
"margin-right:18px;"
>
Username : editor
</span>
<span>
Password : any
</span>
</div>
<el-button
class=
"thirdparty-button"
type=
"primary"
@
click=
"showDialog=true"
>
<el-button
class=
"thirdparty-button"
type=
"primary"
@
click=
"showDialog=true"
>
Or connect with
Or connect with
</el-button>
</el-button>
...
@@ -64,7 +58,7 @@
...
@@ -64,7 +58,7 @@
</el-form>
</el-form>
<el-dialog
title=
"Or connect with"
:visible.sync=
"showDialog"
>
<el-dialog
title=
"Or connect with"
:visible.sync=
"showDialog"
>
Can not be simulated on local, so please combine you own business simulation! !
!
本地环境无法模拟,请合并到线上环境再测试!
!
<br>
<br>
<br>
<br>
<br>
<br>
...
...
admin-web/vue.config.js
View file @
f2544d0e
...
@@ -6,7 +6,7 @@ function resolve(dir) {
...
@@ -6,7 +6,7 @@ function resolve(dir) {
return
path
.
join
(
__dirname
,
dir
)
return
path
.
join
(
__dirname
,
dir
)
}
}
const
name
=
defaultSettings
.
title
||
'
vue Element
Admin
'
// page title
const
name
=
defaultSettings
.
title
||
'
Boot Plus
Admin
'
// page title
// If your port is set to 80,
// If your port is set to 80,
// use administrator privileges to execute the command line.
// use administrator privileges to execute the command line.
...
@@ -93,23 +93,22 @@ module.exports = {
...
@@ -93,23 +93,22 @@ module.exports = {
config
config
// https://webpack.js.org/configuration/devtool/#development
// https://webpack.js.org/configuration/devtool/#development
.
when
(
process
.
env
.
NODE_ENV
===
'
development
'
,
.
when
(
process
.
env
.
NODE_ENV
===
'
development
'
,
config
=>
config
=>
config
.
devtool
(
'
cheap-source-map
'
)
config
.
devtool
(
'
cheap-source-map
'
)
)
)
config
config
.
when
(
process
.
env
.
NODE_ENV
!==
'
development
'
,
config
=>
{
.
when
(
process
.
env
.
NODE_ENV
!==
'
development
'
,
config
=>
{
config
config
.
plugin
(
'
ScriptExtHtmlWebpackPlugin
'
)
.
plugin
(
'
ScriptExtHtmlWebpackPlugin
'
)
.
after
(
'
html
'
)
.
after
(
'
html
'
)
.
use
(
'
script-ext-html-webpack-plugin
'
,
[{
.
use
(
'
script-ext-html-webpack-plugin
'
,
[
{
// `runtime` must same as runtimeChunk name. default is `runtime`
// `runtime` must same as runtimeChunk name. default is `runtime`
inline
:
/runtime
\.
.*
\.
js$/
inline
:
/runtime
\.
.*
\.
js$/
}])
}
])
.
end
()
.
end
()
config
config
.
optimization
.
splitChunks
({
.
optimization
.
splitChunks
({
chunks
:
'
all
'
,
chunks
:
'
all
'
,
cacheGroups
:
{
cacheGroups
:
{
libs
:
{
libs
:
{
...
@@ -133,7 +132,6 @@ module.exports = {
...
@@ -133,7 +132,6 @@ module.exports = {
}
}
})
})
config
.
optimization
.
runtimeChunk
(
'
single
'
)
config
.
optimization
.
runtimeChunk
(
'
single
'
)
}
})
)
}
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment