Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
W
web-monitor
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
web-monitor
Commits
2bfd0d5b
Commit
2bfd0d5b
authored
Feb 23, 2022
by
yanzhongrong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户管理及登录逻辑完成
parent
189ec294
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
391 additions
and
204 deletions
+391
-204
user.js
src/api/user.js
+2
-6
main.js
src/main.js
+1
-2
getters.js
src/store/getters.js
+0
-2
depart.js
src/store/modules/depart.js
+3
-0
user.js
src/store/modules/user.js
+19
-31
auth.js
src/utils/auth.js
+0
-26
index.vue
src/views/login/index.vue
+2
-6
api.js
src/views/user/api.js
+10
-0
const.js
src/views/user/const.js
+28
-0
baseInfo.vue
src/views/user/updateUser/components/baseInfo.vue
+28
-14
password.vue
src/views/user/updateUser/components/password.vue
+14
-13
editInfo.vue
src/views/user/userList/components/editInfo.vue
+106
-0
editPwd.vue
src/views/user/userList/components/editPwd.vue
+99
-0
index.vue
src/views/user/userList/index.vue
+36
-4
index.vue
src/views/user/userLog/index.vue
+43
-100
No files found.
src/api/user.js
View file @
2bfd0d5b
...
@@ -8,12 +8,8 @@ export function login(data) {
...
@@ -8,12 +8,8 @@ export function login(data) {
})
})
}
}
export
function
getInfo
(
token
)
{
export
function
getInfo
()
{
return
request
({
return
request
.
post
(
'/user/selectUserBaseInfo'
,
...
arguments
)
url
:
'/user/info'
,
method
:
'get'
,
params
:
{
token
}
})
}
}
export
function
logout
()
{
export
function
logout
()
{
...
...
src/main.js
View file @
2bfd0d5b
...
@@ -10,7 +10,6 @@ import router from './router'
...
@@ -10,7 +10,6 @@ import router from './router'
import
'@/icons'
// icon
import
'@/icons'
// icon
import
'@/permission'
// permission control
import
'@/permission'
// permission control
import
performLoader
from
'@/utils/global_main_loader.js'
import
performLoader
from
'@/utils/global_main_loader.js'
import
{
Loading
}
from
'element-ui'
Vue
.
use
(
ElementUI
,
{
locale
})
Vue
.
use
(
ElementUI
,
{
locale
})
performLoader
(
Vue
)
// 所有的第三方插件性质的东西都放到这里面了
performLoader
(
Vue
)
// 所有的第三方插件性质的东西都放到这里面了
...
@@ -23,8 +22,8 @@ function dispatchWithPromise(path) {
...
@@ -23,8 +22,8 @@ function dispatchWithPromise(path) {
}
}
const
beforeEnterApp
=
()
=>
{
const
beforeEnterApp
=
()
=>
{
// const loading = Loading.service({ fullscreen: true, text: '拼命加载中' })
dispatchWithPromise
(
'depart/getDepart'
)
dispatchWithPromise
(
'depart/getDepart'
)
dispatchWithPromise
(
'user/getInfo'
)
}
}
beforeEnterApp
()
beforeEnterApp
()
...
...
src/store/getters.js
View file @
2bfd0d5b
...
@@ -2,7 +2,5 @@ const getters = {
...
@@ -2,7 +2,5 @@ const getters = {
sidebar
:
state
=>
state
.
app
.
sidebar
,
sidebar
:
state
=>
state
.
app
.
sidebar
,
device
:
state
=>
state
.
app
.
device
,
device
:
state
=>
state
.
app
.
device
,
token
:
state
=>
state
.
user
.
token
,
token
:
state
=>
state
.
user
.
token
,
avatar
:
state
=>
state
.
user
.
avatar
,
name
:
state
=>
state
.
user
.
name
}
}
export
default
getters
export
default
getters
src/store/modules/depart.js
View file @
2bfd0d5b
...
@@ -32,6 +32,9 @@ const getters = {
...
@@ -32,6 +32,9 @@ const getters = {
departMap
(
state
)
{
departMap
(
state
)
{
return
state
.
departMap
return
state
.
departMap
},
},
departList
(
state
)
{
return
state
.
departList
},
}
}
function
handleDepart
(
list
)
{
function
handleDepart
(
list
)
{
...
...
src/store/modules/user.js
View file @
2bfd0d5b
...
@@ -5,9 +5,7 @@ import { resetRouter } from '@/router'
...
@@ -5,9 +5,7 @@ import { resetRouter } from '@/router'
const
getDefaultState
=
()
=>
{
const
getDefaultState
=
()
=>
{
return
{
return
{
token
:
getToken
(),
token
:
getToken
(),
name
:
getUserName
(),
userBaseInfo
:
{}
avatar
:
''
,
userId
:
getUserId
()
}
}
}
}
...
@@ -20,15 +18,9 @@ const mutations = {
...
@@ -20,15 +18,9 @@ const mutations = {
SET_TOKEN
:
(
state
,
token
)
=>
{
SET_TOKEN
:
(
state
,
token
)
=>
{
state
.
token
=
token
state
.
token
=
token
},
},
SET_
NAME
:
(
state
,
name
)
=>
{
SET_
BASEINFO
:
(
state
,
data
)
=>
{
state
.
name
=
name
state
.
userBaseInfo
=
data
},
},
SET_AVATAR
:
(
state
,
avatar
)
=>
{
state
.
avatar
=
avatar
},
SET_USERID
:
(
state
,
userId
)
=>
{
state
.
userId
=
userId
}
}
}
const
actions
=
{
const
actions
=
{
...
@@ -49,23 +41,10 @@ const actions = {
...
@@ -49,23 +41,10 @@ const actions = {
},
},
// get user info
// get user info
getInfo
({
commit
,
state
})
{
getInfo
({
commit
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getInfo
({
type
:
0
}).
then
(
res
=>
{
getInfo
(
state
.
token
).
then
(
response
=>
{
if
(
!
res
)
return
const
{
data
}
=
response
commit
(
'SET_BASEINFO'
,
res
)
if
(
!
data
)
{
return
reject
(
'Verification failed, please Login again.'
)
}
const
{
name
,
avatar
}
=
data
// commit('SET_NAME', name)
commit
(
'SET_AVATAR'
,
avatar
)
resolve
(
data
)
}).
catch
(
error
=>
{
reject
(
error
)
})
})
})
},
},
...
@@ -77,8 +56,7 @@ const actions = {
...
@@ -77,8 +56,7 @@ const actions = {
removeUserId
()
// must remove token first
removeUserId
()
// must remove token first
resetRouter
()
resetRouter
()
commit
(
"SET_TOKEN"
,
""
)
commit
(
"SET_TOKEN"
,
""
)
commit
(
"SET_NAME"
,
""
)
commit
(
"SET_BASEINFO"
,
{})
commit
(
"SET_USERID"
,
""
)
commit
(
'RESET_STATE'
)
commit
(
'RESET_STATE'
)
resolve
()
resolve
()
})
})
...
@@ -96,10 +74,20 @@ const actions = {
...
@@ -96,10 +74,20 @@ const actions = {
}
}
}
}
const
getters
=
{
token
(
state
)
{
return
state
.
token
},
userBaseInfo
(
state
)
{
return
state
.
userBaseInfo
},
}
export
default
{
export
default
{
namespaced
:
true
,
namespaced
:
true
,
state
,
state
,
mutations
,
mutations
,
actions
actions
,
getters
}
}
src/utils/auth.js
View file @
2bfd0d5b
import
Cookies
from
'js-cookie'
import
Cookies
from
'js-cookie'
const
TokenKey
=
'token'
const
TokenKey
=
'token'
const
userName
=
'name'
const
userId
=
'id'
export
function
getToken
()
{
export
function
getToken
()
{
return
Cookies
.
get
(
TokenKey
)
return
Cookies
.
get
(
TokenKey
)
...
@@ -15,27 +13,3 @@ export function setToken(token) {
...
@@ -15,27 +13,3 @@ export function setToken(token) {
export
function
removeToken
()
{
export
function
removeToken
()
{
return
Cookies
.
remove
(
TokenKey
)
return
Cookies
.
remove
(
TokenKey
)
}
}
export
function
getUserName
()
{
return
Cookies
.
get
(
userName
)
}
export
function
setUserName
(
name
)
{
return
Cookies
.
set
(
userName
,
name
)
}
export
function
removeUserName
()
{
return
Cookies
.
remove
(
userName
)
}
export
function
getUserId
()
{
return
Cookies
.
get
(
userId
)
}
export
function
setUserId
(
id
)
{
return
Cookies
.
set
(
userId
,
id
)
}
export
function
removeUserId
()
{
return
Cookies
.
remove
(
userId
)
}
\ No newline at end of file
src/views/login/index.vue
View file @
2bfd0d5b
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
<
script
>
<
script
>
import
{
login
}
from
"@/api/user"
import
{
login
}
from
"@/api/user"
import
{
setToken
,
setUserName
,
setUserId
}
from
"@/utils/auth"
import
{
setToken
}
from
"@/utils/auth"
export
default
{
export
default
{
name
:
"Login"
,
name
:
"Login"
,
...
@@ -125,7 +125,7 @@ export default {
...
@@ -125,7 +125,7 @@ export default {
username
,
username
,
password
password
}
=
this
.
loginForm
}
=
this
.
loginForm
let
{
userName
,
token
,
userId
}
=
await
login
({
let
{
token
}
=
await
login
({
userName
:
username
,
userName
:
username
,
password
:
password
,
password
:
password
,
},
{
},
{
...
@@ -133,11 +133,7 @@ export default {
...
@@ -133,11 +133,7 @@ export default {
})
})
if
(
!
token
)
return
if
(
!
token
)
return
this
.
$store
.
commit
(
"user/SET_TOKEN"
,
token
)
this
.
$store
.
commit
(
"user/SET_TOKEN"
,
token
)
this
.
$store
.
commit
(
"user/SET_NAME"
,
userName
)
this
.
$store
.
commit
(
"user/SET_USERID"
,
userId
)
setToken
(
token
)
setToken
(
token
)
setUserName
(
userName
)
setUserId
(
userId
)
this
.
$router
.
push
({
path
:
"/"
})
this
.
$router
.
push
({
path
:
"/"
})
// setTimeout(() => {
// setTimeout(() => {
// location.reload()
// location.reload()
...
...
src/views/user/api.js
View file @
2bfd0d5b
...
@@ -5,6 +5,8 @@ const path = {
...
@@ -5,6 +5,8 @@ const path = {
create
:
'user/saveUser'
,
create
:
'user/saveUser'
,
updatePwd
:
'user/updatePwd'
,
updatePwd
:
'user/updatePwd'
,
updateInfo
:
'user/updateUserBaseInfo'
,
updateInfo
:
'user/updateUserBaseInfo'
,
exportLog
:
'sysLog/exportLog'
,
logList
:
'sysLog/selectLogPage'
,
}
}
export
function
list
()
{
export
function
list
()
{
...
@@ -23,3 +25,11 @@ export function updateInfo() {
...
@@ -23,3 +25,11 @@ export function updateInfo() {
return
request
.
post
(
path
.
updateInfo
,
...
arguments
)
return
request
.
post
(
path
.
updateInfo
,
...
arguments
)
}
}
export
function
exportLog
()
{
return
request
.
post
(
path
.
exportLog
,
...
arguments
)
}
export
function
logList
()
{
return
request
.
post
(
path
.
logList
,
...
arguments
)
}
src/views/user/const.js
0 → 100644
View file @
2bfd0d5b
export
function
formInit
(
data
=
{})
{
return
{
originName
:
''
,
realName
:
''
,
userName
:
''
,
deptId
:
''
,
password
:
'123456'
,
phone
:
''
,
email
:
''
,
userId
:
''
,
...
data
}
}
export
function
formInitPwd
(
data
=
{})
{
return
{
userName
:
''
,
originPwd
:
''
,
password
:
''
,
sureNewPwd
:
''
,
userId
:
''
,
...
data
}
}
export
const
rules
=
{
userName
:
{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
deptId
:
{
required
:
true
,
message
:
'请选择所在部门'
,
trigger
:
'blur'
}
}
src/views/user/updateUser/components/baseInfo.vue
View file @
2bfd0d5b
...
@@ -2,14 +2,21 @@
...
@@ -2,14 +2,21 @@
<div>
<div>
<div
class=
"title"
>
修改基本信息
</div>
<div
class=
"title"
>
修改基本信息
</div>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-form-item
label=
"用户名:"
prop=
"
n
ame"
>
<el-form-item
label=
"用户名:"
prop=
"
userN
ame"
>
<el-input
v-model=
"form.
n
ame"
/>
<el-input
v-model=
"form.
userN
ame"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"所在部门:"
prop=
"depart"
>
<el-form-item
label=
"所在部门:"
prop=
"deptId"
>
<el-input
v-model=
"form.depart"
/>
<el-select
v-model=
"form.deptId"
style=
"width:100%"
placeholder=
"请选择"
>
<el-option
v-for=
"item in departList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"电话号码:"
>
<el-form-item
label=
"电话号码:"
>
<el-input
v-model=
"form.
tel
"
/>
<el-input
v-model=
"form.
phone
"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"邮箱:"
>
<el-form-item
label=
"邮箱:"
>
<el-input
v-model=
"form.email"
/>
<el-input
v-model=
"form.email"
/>
...
@@ -22,26 +29,33 @@
...
@@ -22,26 +29,33 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
mapGetters
}
from
'vuex'
import
{
rules
}
from
'../../const'
import
{
updateInfo
}
from
'../../api'
export
default
{
export
default
{
data
()
{
data
()
{
let
{
deptId
,
email
,
phone
,
userId
,
userName
}
=
this
.
$store
.
state
.
user
.
userBaseInfo
return
{
return
{
form
:
{
form
:
{
name
:
'admin'
,
deptId
:
deptId
,
depart
:
''
,
email
:
email
,
tel
:
''
,
phone
:
phone
,
email
:
''
userId
:
userId
,
userName
:
userName
},
},
rules
:
{
rules
name
:
{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
depart
:
{
required
:
true
,
message
:
'请输入所在部门'
,
trigger
:
'blur'
}
}
}
}
},
},
computed
:
{
...
mapGetters
(
'depart'
,
[
'departList'
]),
},
methods
:
{
methods
:
{
confirm
()
{
confirm
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
// alert('submit!');
updateInfo
(
this
.
form
).
then
(
res
=>
{
this
.
$message
.
success
(
'操作成功'
)
})
}
else
{
}
else
{
console
.
log
(
'error submit!!'
)
console
.
log
(
'error submit!!'
)
return
false
return
false
...
...
src/views/user/updateUser/components/password.vue
View file @
2bfd0d5b
...
@@ -2,17 +2,17 @@
...
@@ -2,17 +2,17 @@
<div>
<div>
<div
class=
"title"
>
修改密码
</div>
<div
class=
"title"
>
修改密码
</div>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-form-item
label=
"用户名:"
prop=
"
n
ame"
>
<el-form-item
label=
"用户名:"
prop=
"
userN
ame"
>
<el-input
v-model=
"form.
n
ame"
/>
<el-input
v-model=
"form.
userN
ame"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"原密码:"
prop=
"originPwd"
>
<el-form-item
label=
"原密码:"
prop=
"originPwd"
>
<el-input
v-model=
"form.originPwd"
/>
<el-input
type=
"password"
v-model=
"form.originPwd"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"新密码:"
prop=
"password"
>
<el-form-item
label=
"新密码:"
prop=
"password"
>
<el-input
v-model=
"form.password"
/>
<el-input
type=
"password"
v-model=
"form.password"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"确认新密码:"
prop=
"sureNewPwd"
>
<el-form-item
label=
"确认新密码:"
prop=
"sureNewPwd"
>
<el-input
v-model=
"form.sureNewPwd"
/>
<el-input
type=
"password"
v-model=
"form.sureNewPwd"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
class=
"btn"
>
<div
class=
"btn"
>
...
@@ -28,25 +28,26 @@ export default {
...
@@ -28,25 +28,26 @@ export default {
var
validatePass2
=
(
rule
,
value
,
callback
)
=>
{
var
validatePass2
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
)
{
if
(
value
===
''
)
{
callback
(
new
Error
(
'请再次输入新密码'
))
callback
(
new
Error
(
'请再次输入新密码'
))
}
else
if
(
value
!==
this
.
form
.
newPass
)
{
}
else
if
(
value
!==
this
.
form
.
password
)
{
callback
(
new
Error
(
'两次输入密码不一致!'
))
callback
(
new
Error
(
'两次输入密码不一致!'
))
}
else
{
}
else
{
callback
()
callback
()
}
}
}
}
let
{
userId
,
userName
}
=
this
.
$store
.
state
.
user
.
userBaseInfo
return
{
return
{
form
:
{
form
:
{
name
:
this
.
$store
.
getters
.
n
ame
,
userName
:
userN
ame
,
originPwd
:
''
,
originPwd
:
''
,
password
:
''
,
password
:
''
,
sureNewPwd
:
''
,
sureNewPwd
:
''
,
userId
:
this
.
$store
.
getters
userId
:
userId
},
},
rules
:
{
rules
:
{
n
ame
:
{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
userN
ame
:
{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
o
ldPass
:
{
required
:
true
,
message
:
'请输入原密码'
,
trigger
:
'blur'
},
o
riginPwd
:
{
required
:
true
,
message
:
'请输入原密码'
,
trigger
:
'blur'
},
newPass
:
{
required
:
true
,
message
:
'请输入新密码'
,
trigger
:
'blur'
},
password
:
{
required
:
true
,
message
:
'请输入新密码'
,
trigger
:
'blur'
},
confirm
Pwd
:
[{
required
:
true
,
validator
:
validatePass2
,
trigger
:
'blur'
}]
sureNew
Pwd
:
[{
required
:
true
,
validator
:
validatePass2
,
trigger
:
'blur'
}]
}
}
}
}
},
},
...
@@ -55,7 +56,7 @@ export default {
...
@@ -55,7 +56,7 @@ export default {
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
updatePwd
(
this
.
form
).
then
(
res
=>
{
updatePwd
(
this
.
form
).
then
(
res
=>
{
console
.
log
(
res
,
111
);
this
.
$message
.
success
(
'操作成功'
)
})
})
}
else
{
}
else
{
console
.
log
(
'error submit!!'
)
console
.
log
(
'error submit!!'
)
...
...
src/views/user/userList/components/editInfo.vue
0 → 100644
View file @
2bfd0d5b
<
template
>
<el-dialog
:title=
"editText"
:visible
.
sync=
"visible"
@
close=
"cancel"
width=
"700px"
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-form-item
label=
"用户名:"
prop=
"userName"
>
<el-input
v-model=
"form.userName"
/>
</el-form-item>
<el-form-item
label=
"真实姓名:"
prop=
"realName"
>
<el-input
v-model=
"form.realName"
/>
</el-form-item>
<el-form-item
label=
"所在部门:"
prop=
"deptId"
>
<el-select
v-model=
"form.deptId"
style=
"width:100%"
placeholder=
"请选择"
>
<el-option
v-for=
"item in departList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"电话号码:"
>
<el-input
v-model=
"form.phone"
/>
</el-form-item>
<el-form-item
label=
"邮箱:"
>
<el-input
v-model=
"form.email"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"confrim"
>
确定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
import
{
formInit
,
rules
}
from
'../../const'
import
{
updateInfo
,
create
}
from
'../../api'
import
{
mapGetters
}
from
'vuex'
export
default
{
name
:
'edit'
,
data
()
{
return
{
rules
,
form
:
formInit
(),
visible
:
false
}
},
props
:
{
flag
:
{
type
:
Number
,
default
:
1
},
curInfo
:
{
type
:
Object
,
default
:
()
=>
{
}
}
},
watch
:
{
flag
:
{
immediate
:
true
,
handler
(
newV
)
{
this
.
visible
=
!!
newV
this
.
form
=
formInit
(
this
.
curInfo
)
},
},
},
computed
:
{
...
mapGetters
(
'depart'
,
[
'departList'
]),
editText
()
{
return
`
${
this
.
flag
===
1
?
'新增'
:
'编辑'
}
基本信息`
}
},
methods
:
{
cancel
()
{
this
.
form
=
formInit
()
this
.
$emit
(
'reset'
)
},
confrim
()
{
let
apiMap
=
{
1
:
create
,
2
:
updateInfo
,
}
let
api
=
apiMap
[
this
.
flag
]
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
let
params
=
{
...
this
.
form
}
if
(
valid
)
{
api
(
params
).
then
(()
=>
{
this
.
$message
.
success
(
'操作成功'
)
this
.
$emit
(
'reset'
,
true
)
})
}
})
}
}
}
</
script
>
src/views/user/userList/components/editPwd.vue
0 → 100644
View file @
2bfd0d5b
<
template
>
<el-dialog
title=
"修改密码"
:visible
.
sync=
"visible"
@
close=
"cancel"
width=
"700px"
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-form-item
label=
"用户名:"
prop=
"userName"
>
<el-input
v-model=
"form.userName"
/>
</el-form-item>
<el-form-item
label=
"原密码:"
prop=
"originPwd"
>
<el-input
type=
"password"
v-model=
"form.originPwd"
/>
</el-form-item>
<el-form-item
label=
"新密码:"
prop=
"password"
>
<el-input
type=
"password"
v-model=
"form.password"
/>
</el-form-item>
<el-form-item
label=
"确认新密码:"
prop=
"sureNewPwd"
>
<el-input
type=
"password"
v-model=
"form.sureNewPwd"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"confrim"
>
确定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
import
{
formInitPwd
}
from
'../../const'
import
{
updatePwd
}
from
'../../api'
export
default
{
name
:
'editPwd'
,
data
()
{
var
validatePass2
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
)
{
callback
(
new
Error
(
'请再次输入新密码'
))
}
else
if
(
value
!==
this
.
form
.
password
)
{
callback
(
new
Error
(
'两次输入密码不一致!'
))
}
else
{
callback
()
}
}
return
{
rules
:
{
userName
:
{
required
:
true
,
message
:
'请输入用户名'
,
trigger
:
'blur'
},
originPwd
:
{
required
:
true
,
message
:
'请输入原密码'
,
trigger
:
'blur'
},
password
:
{
required
:
true
,
message
:
'请输入新密码'
,
trigger
:
'blur'
},
sureNewPwd
:
[{
required
:
true
,
validator
:
validatePass2
,
trigger
:
'blur'
}]
},
form
:
formInitPwd
(),
visible
:
false
}
},
props
:
{
flag1
:
{
type
:
Number
,
default
:
0
},
curInfo
:
{
type
:
Object
,
default
:
()
=>
{
}
}
},
watch
:
{
flag1
:
{
immediate
:
true
,
handler
(
newV
)
{
this
.
visible
=
!!
newV
this
.
form
=
formInitPwd
(
this
.
curInfo
)
},
},
},
computed
:
{
},
methods
:
{
cancel
()
{
this
.
form
=
formInitPwd
()
this
.
$emit
(
'reset'
)
},
confrim
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
let
params
=
{
...
this
.
form
}
if
(
valid
)
{
updatePwd
(
params
).
then
(()
=>
{
this
.
$message
.
success
(
'操作成功'
)
this
.
$emit
(
'reset'
,
true
)
})
}
})
}
}
}
</
script
>
src/views/user/userList/index.vue
View file @
2bfd0d5b
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div
class=
"leakage-top"
>
<div
class=
"leakage-top"
>
<div
style=
"color: #666666"
></div>
<div
style=
"color: #666666"
></div>
<div
class=
"operate-btn"
>
<div
class=
"operate-btn"
>
<el-button
type=
"primary"
>
添加新用户
</el-button>
<el-button
type=
"primary"
@
click=
"addUser"
>
添加新用户
</el-button>
</div>
</div>
</div>
</div>
<el-table
<el-table
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
/>
/>
<el-table-column
prop=
"userName"
label=
"用户名"
align=
"center"
/>
<el-table-column
prop=
"userName"
label=
"用户名"
align=
"center"
/>
<el-table-column
prop=
"realName"
label=
"真实姓名"
align=
"center"
/>
<el-table-column
prop=
"realName"
label=
"真实姓名"
align=
"center"
/>
<el-table-column
prop=
"dept
Id
"
label=
"用户部门"
align=
"center"
/>
<el-table-column
prop=
"dept
Name
"
label=
"用户部门"
align=
"center"
/>
<el-table-column
prop=
"phone"
label=
"电话号码"
align=
"center"
/>
<el-table-column
prop=
"phone"
label=
"电话号码"
align=
"center"
/>
<el-table-column
prop=
"email"
label=
"邮箱"
align=
"center"
/>
<el-table-column
prop=
"email"
label=
"邮箱"
align=
"center"
/>
<el-table-column
label=
"操作"
align=
"center"
>
<el-table-column
label=
"操作"
align=
"center"
>
...
@@ -44,11 +44,17 @@
...
@@ -44,11 +44,17 @@
class=
"pagination"
class=
"pagination"
@
pagination=
"handlePageChange"
@
pagination=
"handlePageChange"
/>
/>
<edit
@
reset=
"reset"
:cur-info=
"curInfo"
:flag=
"flag"
></edit>
<ediPwd
@
reset=
"reset"
:cur-info=
"curInfo"
:flag1=
"flag1"
></ediPwd>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
list
,
create
,
updatePwd
,
updateInfo
}
from
'../api'
import
{
list
}
from
'../api'
import
edit
from
'./components/editInfo.vue'
import
ediPwd
from
'./components/editPwd.vue'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -58,9 +64,16 @@ export default {
...
@@ -58,9 +64,16 @@ export default {
},
},
tableData
:
[],
tableData
:
[],
total
:
5
,
total
:
5
,
loading
:
false
loading
:
false
,
curInfo
:
{},
flag
:
0
,
flag1
:
0
}
}
},
},
components
:
{
edit
,
ediPwd
},
methods
:
{
methods
:
{
tableRowClassName
({
row
,
rowIndex
})
{
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
''
:
'single-row'
return
rowIndex
%
2
===
0
?
''
:
'single-row'
...
@@ -81,6 +94,25 @@ export default {
...
@@ -81,6 +94,25 @@ export default {
this
.
total
=
res
.
total
this
.
total
=
res
.
total
})
})
},
},
addUser
()
{
this
.
curInfo
=
{}
this
.
flag
=
1
},
toEditInfo
(
row
)
{
this
.
curInfo
=
row
this
.
flag
=
2
},
toEditPwd
(
row
)
{
this
.
curInfo
=
row
this
.
flag1
=
3
},
reset
(
needRefresh
)
{
this
.
flag
=
0
this
.
flag1
=
0
if
(
needRefresh
)
{
this
.
getTableData
()
}
}
},
},
mounted
()
{
mounted
()
{
this
.
getTableData
()
this
.
getTableData
()
...
...
src/views/user/userLog/index.vue
View file @
2bfd0d5b
...
@@ -4,142 +4,85 @@
...
@@ -4,142 +4,85 @@
<div
class=
"leakage-top"
>
<div
class=
"leakage-top"
>
<div
style=
"color: #666666"
></div>
<div
style=
"color: #666666"
></div>
<div
class=
"operate-btn"
>
<div
class=
"operate-btn"
>
<!--
<el-button
<el-button
type=
"primary"
@
click=
"getTableData"
>
刷新
</el-button>
:type=
"multipleSelection.length ? 'primary' : 'info'"
:disabled=
"!multipleSelection.length"
>
删除
</el-button
>
-->
<el-button
type=
"primary"
>
刷新
</el-button>
<el-button
type=
"primary"
>
查询
</el-button>
<el-button
type=
"primary"
>
查询
</el-button>
<el-button
type=
"primary"
>
导出
</el-button>
<el-button
type=
"primary"
@
click=
"exportLog"
>
导出
</el-button>
</div>
</div>
</div>
</div>
<el-table
<el-table
:data=
"tableData
2
"
:data=
"tableData"
style=
"width: 100%"
style=
"width: 100%"
class=
"statistics-table"
class=
"statistics-table"
:row-class-name=
"tableRowClassName"
:row-class-name=
"tableRowClassName"
:row-style=
"
{ height: '50px' }"
:row-style=
"
{ height: '50px' }"
:header-cell-style="{ background: '#EAF1FE', color: '#666666' }"
:header-cell-style="{ background: '#EAF1FE', color: '#666666' }"
@selection-change="handleSelectionChange"
>
>
<el-table-column
prop=
"
n
ame"
label=
"用户名"
align=
"center"
/>
<el-table-column
prop=
"
userN
ame"
label=
"用户名"
align=
"center"
/>
<el-table-column
prop=
"operat
ingClass
"
label=
"操作类别"
align=
"center"
/>
<el-table-column
prop=
"operat
eTypeValue
"
label=
"操作类别"
align=
"center"
/>
<el-table-column
prop=
"operat
ingObject
"
label=
"操作对象"
align=
"center"
/>
<el-table-column
prop=
"operat
eObj
"
label=
"操作对象"
align=
"center"
/>
<el-table-column
prop=
"objectName"
label=
"对象名称"
align=
"center"
/>
<el-table-column
prop=
"objectName"
label=
"对象名称"
align=
"center"
/>
<el-table-column
<el-table-column
prop=
"operat
ing
Content"
prop=
"operat
e
Content"
label=
"操作内容"
label=
"操作内容"
align=
"center"
align=
"center"
/>
/>
<el-table-column
prop=
"operat
ingeRsult
"
label=
"操作结果"
align=
"center"
/>
<el-table-column
prop=
"operat
eResultValue
"
label=
"操作结果"
align=
"center"
/>
<el-table-column
prop=
"
operatingDat
e"
label=
"操作时间"
align=
"center"
/>
<el-table-column
prop=
"
creationTim
e"
label=
"操作时间"
align=
"center"
/>
</el-table>
</el-table>
<
p
agination
<
P
agination
:limit=
"
searchForm
.pageSize"
:limit=
"
params
.pageSize"
:page=
"
searchForm
.pageNum"
:page=
"
params
.pageNum"
:total=
"total"
:total=
"total"
class=
"pagination"
class=
"pagination"
@
pagination=
"handlePageChange"
@
pagination=
"handlePageChange"
/>
/>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
Pagination
from
"@/components/Pagination"
;
import
{
exportLog
,
logList
}
from
'../api'
export
default
{
export
default
{
props
:
[],
components
:
{
Pagination
,
},
data
()
{
data
()
{
return
{
return
{
multipleSelection
:
[],
params
:
{
searchForm
:
{
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
10
,
pageSize
:
10
,
},
},
total
:
10
,
total
:
10
,
tableData2
:[],
tableData
:
[],
tableData
:
[
{
name
:
"admin"
,
operatingClass
:
"修改"
,
operatingObject
:
"FSU"
,
objectName
:
"FSU_193.168.1.20"
,
operatingContent
:
"修改FSU现场管理单位"
,
operatingeRsult
:
"成功"
,
operatingDate
:
"2022/12/18 11:59:42"
,
},
{
name
:
"admin"
,
operatingClass
:
"告警确认"
,
operatingObject
:
"故障定位设备"
,
objectName
:
"故障定位单位_12"
,
operatingContent
:
"确认连接告警"
,
operatingeRsult
:
"失败"
,
operatingDate
:
"2022/12/18 12:24:15"
,
},
{
name
:
"admin"
,
operatingClass
:
"修改"
,
operatingObject
:
"FSU"
,
objectName
:
"FSU_193.168.1.20"
,
operatingContent
:
"修改FSU现场管理单位"
,
operatingeRsult
:
"成功"
,
operatingDate
:
"2022/12/18 11:59:42"
,
},
{
name
:
"admin"
,
operatingClass
:
"告警确认"
,
operatingObject
:
"故障定位设备"
,
objectName
:
"故障定位单位_12"
,
operatingContent
:
"确认连接告警"
,
operatingeRsult
:
"失败"
,
operatingDate
:
"2022/12/18 12:24:15"
,
},
{
name
:
"admin"
,
operatingClass
:
"修改"
,
operatingObject
:
"FSU"
,
objectName
:
"FSU_193.168.1.20"
,
operatingContent
:
"修改FSU现场管理单位"
,
operatingeRsult
:
"成功"
,
operatingDate
:
"2022/12/18 11:59:42"
,
},
{
name
:
"admin"
,
operatingClass
:
"告警确认"
,
operatingObject
:
"故障定位设备"
,
objectName
:
"故障定位单位_12"
,
operatingContent
:
"确认连接告警"
,
operatingeRsult
:
"失败"
,
operatingDate
:
"2022/12/18 12:24:15"
,
},
],
};
};
},
},
computed
:
{},
computed
:
{},
methods
:
{
methods
:
{
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
},
handlePageChange
(
pageData
)
{
handlePageChange
(
pageData
)
{
this
.
searchForm
.
pageSize
=
pageData
.
size
;
this
.
params
.
pageSize
=
pageData
.
size
;
this
.
searchForm
.
pageNum
=
pageData
.
page
;
this
.
params
.
pageNum
=
pageData
.
page
;
this
.
getTableData
()
this
.
getTableData
()
},
},
getTableData
()
{
getTableData
()
{
this
.
tableData2
=
this
.
tableData
.
slice
((
this
.
searchForm
.
pageNum
-
1
)
*
this
.
searchForm
.
pageSize
,
let
params
=
{
this
.
searchForm
.
pageNum
*
this
.
searchForm
.
pageSize
current
:
this
.
params
.
pageNum
,
);
size
:
this
.
params
.
pageSize
this
.
total
=
this
.
tableData
.
length
}
logList
(
params
).
then
(
res
=>
{
let
list
=
res
.
records
||
[]
this
.
tableData
=
list
this
.
total
=
res
.
total
})
},
},
tableRowClassName
({
row
,
rowIndex
})
{
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
''
:
'single-row'
return
rowIndex
%
2
===
0
?
''
:
'single-row'
},
},
exportLog
()
{
let
params
=
{
current
:
this
.
params
.
pageNum
,
size
:
this
.
params
.
pageSize
}
exportLog
(
params
).
then
(
res
=>
{})
}
},
},
mounted
()
{
this
.
getTableData
()},
mounted
()
{
this
.
getTableData
()
},
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
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