Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
front-backend
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
front-backend
Commits
d99fb71f
Commit
d99fb71f
authored
Nov 22, 2019
by
dqjdda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更换logo,用户管理优化完成
parent
ea085433
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
17 additions
and
248 deletions
+17
-248
public/favicon.ico
+0
-0
src/api/job.js
+1
-16
src/api/user.js
+3
-9
src/assets/images/logo.png
+0
-0
src/assets/styles/variables.scss
+1
-1
src/layout/components/Sidebar/Logo.vue
+4
-3
src/mixins/crud.js
+1
-1
src/utils/validate.js
+5
-0
src/views/system/user/center.vue
+2
-0
src/views/system/user/form.vue
+0
-218
src/views/system/user/index.vue
+0
-0
No files found.
public/favicon.ico
View file @
d99fb71f
No preview for this file type
src/api/job.js
View file @
d99fb71f
...
...
@@ -36,19 +36,4 @@ export function edit(data) {
})
}
export
function
downloadJob
(
params
)
{
return
request
({
url
:
'api/job/download'
,
method
:
'get'
,
params
,
responseType
:
'blob'
})
}
export
default
{
add
,
edit
,
del
,
getAllJob
,
downloadJob
}
export
default
{
add
,
edit
,
del
}
src/api/user.js
View file @
d99fb71f
...
...
@@ -8,15 +8,6 @@ export function add(data) {
})
}
export
function
downloadUser
(
params
)
{
return
request
({
url
:
'api/users/download'
,
method
:
'get'
,
params
,
responseType
:
'blob'
})
}
export
function
del
(
id
)
{
return
request
({
url
:
'api/users/'
+
id
,
...
...
@@ -51,3 +42,6 @@ export function updateEmail(code, data) {
data
})
}
export
default
{
add
,
edit
,
del
}
src/assets/images/logo.png
View file @
d99fb71f
13.1 KB
|
W:
|
H:
8.64 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/assets/styles/variables.scss
View file @
d99fb71f
...
...
@@ -19,7 +19,7 @@ $menuHover:#263445;
$subMenuBg
:
#1f2d3d
;
$subMenuHover
:
#001528
;
$sideBarWidth
:
20
0
px
;
$sideBarWidth
:
20
5
px
;
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
...
...
src/layout/components/Sidebar/Logo.vue
View file @
d99fb71f
...
...
@@ -14,6 +14,7 @@
</
template
>
<
script
>
import
Logo
from
'@/assets/images/logo.png'
export
default
{
name
:
'SidebarLogo'
,
props
:
{
...
...
@@ -24,8 +25,8 @@ export default {
},
data
()
{
return
{
title
:
'EL
-ADMIN
后台管理'
,
logo
:
'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png'
title
:
'EL
ADMIN-
后台管理'
,
logo
:
Logo
}
}
}
...
...
@@ -57,7 +58,7 @@ export default {
width
:
32px
;
height
:
32px
;
vertical-align
:
middle
;
margin-right
:
12
px
;
margin-right
:
6
px
;
}
&
.sidebar-title
{
...
...
src/mixins/crud.js
View file @
d99fb71f
...
...
@@ -8,7 +8,7 @@ export default {
// 表格数据
data
:
[],
// 排序规则,默认 id 降序, 支持多字段排序 ['id,desc', 'createTime,asc']
sort
:
[
'id,desc'
,
'createTime,asc'
],
sort
:
[
'id,desc'
],
// 页码
page
:
0
,
// 每页数据条数
...
...
src/utils/validate.js
View file @
d99fb71f
...
...
@@ -64,6 +64,11 @@ export function validEmail(email) {
return
reg
.
test
(
email
)
}
export
function
isvalidPhone
(
phone
)
{
const
reg
=
/^1
[
3|4|5|7|8
][
0-9
]\d{8}
$/
return
reg
.
test
(
phone
)
}
/**
* @param {string} str
* @returns {Boolean}
...
...
src/views/system/user/center.vue
View file @
d99fb71f
...
...
@@ -36,6 +36,7 @@
</div>
</el-card>
</el-col>
<!-- 用户日志 -->
<el-col
:xs=
"24"
:sm=
"24"
:md=
"16"
:lg=
"18"
:xl=
"19"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
...
...
@@ -143,6 +144,7 @@ export default {
duration
:
2500
})
},
// 刷新日志
refresh
()
{
this
.
ico
=
'el-icon-loading'
this
.
init
()
...
...
src/views/system/user/form.vue
deleted
100644 → 0
View file @
ea085433
<
template
>
<el-dialog
:visible
.
sync=
"dialog"
:close-on-click-modal=
"false"
:before-close=
"cancel"
:title=
"isAdd ? '新增用户' : '编辑用户'"
append-to-body
width=
"570px"
>
<el-form
ref=
"form"
:inline=
"true"
:model=
"form"
:rules=
"rules"
size=
"small"
label-width=
"66px"
>
<el-form-item
label=
"用户名"
prop=
"username"
>
<el-input
v-model=
"form.username"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"enabled"
>
<el-radio
v-for=
"item in dicts"
:key=
"item.id"
v-model=
"form.enabled"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-form-item>
<el-form-item
label=
"电话"
prop=
"phone"
>
<el-input
v-model
.
number=
"form.phone"
/>
</el-form-item>
<el-form-item
label=
"邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
/>
</el-form-item>
<el-form-item
label=
"部门"
>
<treeselect
v-model=
"deptId"
:options=
"depts"
style=
"width: 178px"
placeholder=
"选择部门"
@
select=
"selectFun"
/>
</el-form-item>
<el-form-item
label=
"岗位"
>
<el-select
v-model=
"jobId"
style=
"width: 178px"
placeholder=
"请先选择部门"
>
<el-option
v-for=
"(item, index) in jobs"
:key=
"item.name + index"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
style=
"margin-bottom: 0px;"
label=
"角色"
>
<el-select
v-model=
"roleIds"
style=
"width: 450px;"
multiple
placeholder=
"请选择"
>
<el-option
v-for=
"(item, index) in roles"
:key=
"item.name + index"
:disabled=
"level !== 1 && item.level
<
=
level
"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancel"
>
取消
</el-button>
<el-button
:loading=
"loading"
type=
"primary"
@
click=
"doSubmit"
>
确认
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
add
,
edit
}
from
'@/api/user'
import
{
getDepts
}
from
'@/api/dept'
import
{
getAll
,
getLevel
}
from
'@/api/role'
import
{
getAllJob
}
from
'@/api/job'
import
Treeselect
from
'@riophae/vue-treeselect'
import
'@riophae/vue-treeselect/dist/vue-treeselect.css'
export
default
{
components
:
{
Treeselect
},
props
:
{
isAdd
:
{
type
:
Boolean
,
required
:
true
},
dicts
:
{
type
:
Array
,
required
:
true
}
},
data
()
{
const
validPhone
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
callback
(
new
Error
(
'请输入电话号码'
))
}
else
if
(
!
this
.
isvalidPhone
(
value
))
{
callback
(
new
Error
(
'请输入正确的11位手机号码'
))
}
else
{
callback
()
}
}
return
{
dialog
:
false
,
loading
:
false
,
form
:
{
username
:
''
,
email
:
''
,
enabled
:
'false'
,
roles
:
[],
job
:
{
id
:
''
},
dept
:
{
id
:
''
},
phone
:
null
},
roleIds
:
[],
roles
:
[],
depts
:
[],
deptId
:
null
,
jobId
:
null
,
jobs
:
[],
level
:
3
,
rules
:
{
username
:
[
{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
{
min
:
2
,
max
:
20
,
message
:
'长度在 2 到 20 个字符'
,
trigger
:
'blur'
}
],
email
:
[
{
required
:
true
,
message
:
'请输入邮箱地址'
,
trigger
:
'blur'
},
{
type
:
'email'
,
message
:
'请输入正确的邮箱地址'
,
trigger
:
'blur'
}
],
phone
:
[
{
required
:
true
,
trigger
:
'blur'
,
validator
:
validPhone
}
],
enabled
:
[
{
required
:
true
,
message
:
'状态不能为空'
,
trigger
:
'blur'
}
]
}
}
},
methods
:
{
cancel
()
{
this
.
resetForm
()
},
doSubmit
()
{
this
.
form
.
dept
.
id
=
this
.
deptId
this
.
form
.
job
.
id
=
this
.
jobId
this
.
$refs
[
'form'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
this
.
deptId
===
null
||
this
.
deptId
===
undefined
)
{
this
.
$message
({
message
:
'部门不能为空'
,
type
:
'warning'
})
}
else
if
(
this
.
jobId
===
null
)
{
this
.
$message
({
message
:
'岗位不能为空'
,
type
:
'warning'
})
}
else
if
(
this
.
roleIds
.
length
===
0
)
{
this
.
$message
({
message
:
'角色不能为空'
,
type
:
'warning'
})
}
else
{
this
.
loading
=
true
this
.
form
.
roles
=
[]
const
_this
=
this
this
.
roleIds
.
forEach
(
function
(
data
,
index
)
{
const
role
=
{
id
:
data
}
_this
.
form
.
roles
.
push
(
role
)
})
if
(
this
.
isAdd
)
{
this
.
doAdd
()
}
else
this
.
doEdit
()
}
}
else
{
return
false
}
})
},
doAdd
()
{
add
(
this
.
form
).
then
(
res
=>
{
this
.
resetForm
()
this
.
$notify
({
title
:
'添加成功'
,
message
:
'默认密码:123456'
,
type
:
'success'
,
duration
:
2500
})
this
.
loading
=
false
this
.
$parent
.
init
()
}).
catch
(
err
=>
{
this
.
loading
=
false
console
.
log
(
err
.
response
.
data
.
message
)
})
},
doEdit
()
{
edit
(
this
.
form
).
then
(
res
=>
{
this
.
resetForm
()
this
.
$notify
({
title
:
'修改成功'
,
type
:
'success'
,
duration
:
2500
})
this
.
loading
=
false
this
.
$parent
.
init
()
}).
catch
(
err
=>
{
this
.
loading
=
false
console
.
log
(
err
.
response
.
data
.
message
)
})
},
resetForm
()
{
this
.
dialog
=
false
this
.
$refs
[
'form'
].
resetFields
()
this
.
deptId
=
null
this
.
jobId
=
null
this
.
roleIds
=
[]
this
.
form
=
{
username
:
''
,
email
:
''
,
enabled
:
'false'
,
roles
:
[],
job
:
{
id
:
''
},
dept
:
{
id
:
''
},
phone
:
null
}
},
getRoles
()
{
getAll
().
then
(
res
=>
{
this
.
roles
=
res
}).
catch
(
err
=>
{
console
.
log
(
err
.
response
.
data
.
message
)
})
},
getJobs
(
id
)
{
getAllJob
(
id
).
then
(
res
=>
{
this
.
jobs
=
res
.
content
}).
catch
(
err
=>
{
console
.
log
(
err
.
response
.
data
.
message
)
})
},
getDepts
()
{
getDepts
({
enabled
:
true
}).
then
(
res
=>
{
this
.
depts
=
res
.
content
})
},
isvalidPhone
(
str
)
{
const
reg
=
/^1
[
3|4|5|7|8
][
0-9
]\d{8}
$/
return
reg
.
test
(
str
)
},
selectFun
(
node
,
instanceId
)
{
this
.
getJobs
(
node
.
id
)
},
getRoleLevel
()
{
getLevel
().
then
(
res
=>
{
this
.
level
=
res
.
level
}).
catch
(
err
=>
{
console
.
log
(
err
.
response
.
data
.
message
)
})
}
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/system/user/index.vue
View file @
d99fb71f
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
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