Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
op-web-service
Project
Project
Details
Activity
Releases
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
bp
op-web-service
Commits
82694a76
Commit
82694a76
authored
Jun 08, 2021
by
mengwenhao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://git.yidian-inc.com:8021/bp/op-web-service
into dev
parents
b9c586d8
808dbc70
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
437 additions
and
231 deletions
+437
-231
app.js
app.js
+1
-1
image.js
server/controllers/image.js
+14
-14
role.js
server/controllers/role.js
+2
-1
system.js
server/controllers/system.js
+0
-1
user.js
server/controllers/user.js
+2
-12
utils.js
server/controllers/utils.js
+17
-0
request.js
server/utils/request.js
+3
-25
config.js
src/components/PageHeader/config.js
+1
-1
index.vue
src/components/PageHeader/index.vue
+2
-2
pageconfig.js
src/config/pageconfig.js
+3
-4
add-role.vue
src/pages/Role/add-role.vue
+46
-19
roleInfo.vue
src/pages/Role/components/roleInfo.vue
+0
-0
manage-role.vue
src/pages/Role/manage-role.vue
+47
-17
role-detail.vue
src/pages/Role/role-detail.vue
+8
-42
user-detail.vue
src/pages/User/user-detail.vue
+1
-1
UserInfoEditModal.vue
src/pages/User/userList/components/UserInfoEditModal.vue
+22
-23
UserInfoNewModal.vue
src/pages/User/userList/components/UserInfoNewModal.vue
+127
-0
index.vue
src/pages/User/userList/index.vue
+119
-47
Pagination.vue
src/pages/components/Pagination.vue
+1
-1
index.js
src/router/index.js
+10
-3
role.js
src/service/role.js
+8
-14
user.js
src/service/user.js
+2
-2
authUtil.js
src/utils/authUtil.js
+1
-1
No files found.
app.js
View file @
82694a76
...
@@ -12,7 +12,7 @@ const env = process.env.NODE_ENV;
...
@@ -12,7 +12,7 @@ const env = process.env.NODE_ENV;
const
app
=
new
Koa
();
const
app
=
new
Koa
();
app
.
use
(
serve
(
path
.
join
(
__dirname
,
'./public'
)));
app
.
use
(
serve
(
path
.
join
(
__dirname
,
'./public'
)));
app
.
use
(
koaBody
({
multipart
:
true
}));
app
.
use
(
koaBody
({
multipart
:
true
}));
app
.
use
(
bodyParser
());
app
.
use
(
bodyParser
());
app
.
use
(
router
.
routes
(),
router
.
allowedMethods
());
app
.
use
(
router
.
routes
(),
router
.
allowedMethods
());
...
...
server/controllers/image.js
View file @
82694a76
...
@@ -61,20 +61,20 @@ exports.get_token = async (ctx, next) => {
...
@@ -61,20 +61,20 @@ exports.get_token = async (ctx, next) => {
exports
.
get_ks3_config
=
async
(
ctx
,
next
)
=>
{
exports
.
get_ks3_config
=
async
(
ctx
,
next
)
=>
{
console
.
log
(
8888
,
await
_get_bucket
(
ctx
,
next
))
console
.
log
(
8888
,
await
_get_bucket
(
ctx
,
next
))
const
{
result
:
{
bucket
}}
=
JSON
.
parse
(
await
_get_bucket
(
ctx
,
next
))
const
{
result
:
{
bucket
}
}
=
JSON
.
parse
(
await
_get_bucket
(
ctx
,
next
))
const
{
result
:
{
objectId
}}
=
JSON
.
parse
(
await
_get_obj_id
(
ctx
,
next
))
const
{
result
:
{
objectId
}
}
=
JSON
.
parse
(
await
_get_obj_id
(
ctx
,
next
))
console
.
log
(
888834333
,
bucket
,
objectId
)
console
.
log
(
888834333
,
bucket
,
objectId
)
const
getExpires
=
(
seconds
)
=>
{
const
getExpires
=
(
seconds
)
=>
{
return
Math
.
round
(
new
Date
().
getTime
()
/
1000
)
+
seconds
;
return
Math
.
round
(
new
Date
().
getTime
()
/
1000
)
+
seconds
;
};
};
const
policy
=
{
const
policy
=
{
"expiration"
:
new
Date
(
getExpires
(
3600
)
*
1000
).
toISOString
(),
//一小时后
"expiration"
:
new
Date
(
getExpires
(
3600
)
*
1000
).
toISOString
(),
//一小时后
"conditions"
:
[
"conditions"
:
[
[
"eq"
,
"$bucket"
,
bucket
],
[
"eq"
,
"$bucket"
,
bucket
],
[
"starts-with"
,
"$acl"
,
"public-read"
],
[
"starts-with"
,
"$acl"
,
"public-read"
],
// ["starts-with", "$key", ""],
// ["starts-with", "$key", ""],
// ["starts-with", "$name", ""], //表单中传了name字段,也需要加到policy中
// ["starts-with", "$name", ""], //表单中传了name字段,也需要加到policy中
// ["starts-with", "$x-kss-meta-custom-param1",""],
// ["starts-with", "$x-kss-meta-custom-param1",""],
...
@@ -107,21 +107,21 @@ exports.upload_ks3_image = async (ctx, next) => {
...
@@ -107,21 +107,21 @@ exports.upload_ks3_image = async (ctx, next) => {
// console.log('upload_ks3_image::::::', ctx.request.files)
// console.log('upload_ks3_image::::::', ctx.request.files)
const
file
=
ctx
.
request
.
files
&&
ctx
.
request
.
files
.
file
;
const
file
=
ctx
.
request
.
files
&&
ctx
.
request
.
files
.
file
;
console
.
log
(
888899
,
await
_get_bucket
(
ctx
,
next
))
console
.
log
(
888899
,
await
_get_bucket
(
ctx
,
next
))
const
{
result
:
{
bucket
}}
=
JSON
.
parse
(
await
_get_bucket
(
ctx
,
next
))
const
{
result
:
{
bucket
}
}
=
JSON
.
parse
(
await
_get_bucket
(
ctx
,
next
))
const
{
result
:
{
objectId
}}
=
JSON
.
parse
(
await
_get_obj_id
(
ctx
,
next
))
const
{
result
:
{
objectId
}
}
=
JSON
.
parse
(
await
_get_obj_id
(
ctx
,
next
))
console
.
log
(
3334444
,
file
.
type
)
console
.
log
(
3334444
,
file
.
type
)
const
getExpires
=
(
seconds
)
=>
{
const
getExpires
=
(
seconds
)
=>
{
return
Math
.
round
(
new
Date
().
getTime
()
/
1000
)
+
seconds
;
return
Math
.
round
(
new
Date
().
getTime
()
/
1000
)
+
seconds
;
};
};
const
acl
=
'public-read'
;
const
acl
=
'public-read'
;
const
policy
=
{
const
policy
=
{
"expiration"
:
new
Date
(
getExpires
(
3600
)
*
1000
).
toISOString
(),
//一小时后
"expiration"
:
new
Date
(
getExpires
(
3600
)
*
1000
).
toISOString
(),
//一小时后
"conditions"
:
[
"conditions"
:
[
[
"eq"
,
"$bucket"
,
bucket
],
[
"eq"
,
"$bucket"
,
bucket
],
[
"starts-with"
,
"$acl"
,
"public-read"
],
[
"starts-with"
,
"$acl"
,
"public-read"
],
]
]
}
}
const
stringToSign
=
Ks3Util
.
Base64
.
encode
(
JSON
.
stringify
(
policy
))
const
stringToSign
=
Ks3Util
.
Base64
.
encode
(
JSON
.
stringify
(
policy
))
...
@@ -151,14 +151,14 @@ exports.upload_ks3_image = async (ctx, next) => {
...
@@ -151,14 +151,14 @@ exports.upload_ks3_image = async (ctx, next) => {
'x-kss-date'
:
date
,
'x-kss-date'
:
date
,
[
attrAcl
]:
acl
[
attrAcl
]:
acl
}
}
const
headerSignature
=
Ks3Util
.
generateToken
(
KS3_CONFIG
.
SK
,
bucket
,
objectId
,
'PUT'
,
file
.
type
,
headersForSign
,
date
)
const
headerSignature
=
Ks3Util
.
generateToken
(
KS3_CONFIG
.
SK
,
bucket
,
objectId
,
'PUT'
,
file
.
type
,
headersForSign
,
date
)
const
hmac
=
crypto
.
createHmac
(
'sha256'
,
KS3_CONFIG
.
SK
);
const
hmac
=
crypto
.
createHmac
(
'sha256'
,
KS3_CONFIG
.
SK
);
hmac
.
update
(
headerSignature
);
hmac
.
update
(
headerSignature
);
console
.
log
(
hmac
.
digest
(
'hex'
));
console
.
log
(
hmac
.
digest
(
'hex'
));
console
.
log
(
'headerSignature::::'
,
headerSignature
)
console
.
log
(
'headerSignature::::'
,
headerSignature
)
const
headers
=
{
const
headers
=
{
...
headersForSign
,
...
headersForSign
,
...
...
server/controllers/role.js
View file @
82694a76
...
@@ -20,7 +20,6 @@ exports.getRole_list = async (ctx, next) => {
...
@@ -20,7 +20,6 @@ exports.getRole_list = async (ctx, next) => {
json
:
true
,
json
:
true
,
body
:
ctx
.
request
.
body
body
:
ctx
.
request
.
body
}
}
console
.
log
(
'server getlist_role::::'
,
opts
)
ctx
.
body
=
await
req
(
ctx
,
opts
)
ctx
.
body
=
await
req
(
ctx
,
opts
)
}
}
exports
.
getAdd_role
=
async
(
ctx
,
next
)
=>
{
exports
.
getAdd_role
=
async
(
ctx
,
next
)
=>
{
...
@@ -52,6 +51,8 @@ exports.getUpdate_role = async (ctx, next) => {
...
@@ -52,6 +51,8 @@ exports.getUpdate_role = async (ctx, next) => {
json
:
true
,
json
:
true
,
body
:
ctx
.
request
.
body
body
:
ctx
.
request
.
body
}
}
console
.
log
(
opts
,
'optsoptsoptsopts888888'
)
console
.
log
(
ctx
.
request
.
query
,
'pppp'
)
ctx
.
body
=
await
req
(
ctx
,
opts
)
ctx
.
body
=
await
req
(
ctx
,
opts
)
}
}
exports
.
getDelete_role
=
async
(
ctx
,
next
)
=>
{
exports
.
getDelete_role
=
async
(
ctx
,
next
)
=>
{
...
...
server/controllers/system.js
View file @
82694a76
...
@@ -11,6 +11,5 @@ exports.fetch_user = async (ctx, next) => {
...
@@ -11,6 +11,5 @@ exports.fetch_user = async (ctx, next) => {
Cookie
:
ctx
.
request
.
header
.
cookie
Cookie
:
ctx
.
request
.
header
.
cookie
}
}
};
};
console
.
log
(
"fetch_user:::::"
,
ctx
.
request
);
ctx
.
body
=
await
req
(
ctx
,
opts
);
ctx
.
body
=
await
req
(
ctx
,
opts
);
};
};
server/controllers/user.js
View file @
82694a76
const
API_INTERNAL_URI
=
require
(
'../config.js'
).
API_INTERNAL_URI
const
API_INTERNAL_URI
=
require
(
'../config.js'
).
API_INTERNAL_URI
const
req
=
require
(
'../utils/request'
).
httpReq
const
req
=
require
(
'../utils/request'
).
httpReq
const
controller_utils
=
require
(
'./utils'
)
//用户详情
//用户详情
exports
.
getUser_detail
=
async
(
ctx
,
next
)
=>
{
exports
.
getUser_detail
=
async
(
ctx
,
next
)
=>
{
...
@@ -15,18 +16,7 @@ exports.getUser_detail = async (ctx, next) => {
...
@@ -15,18 +16,7 @@ exports.getUser_detail = async (ctx, next) => {
}
}
var
query
=
{
var
query
=
{
async
get_permissions
(
ctx
)
{
async
get_permissions
(
ctx
)
{
// http://bp-test.ini.yidian-inc.com/merchant/authority/get_role_list?user_email=jianghaiming@126.com
ctx
.
body
=
await
controller_utils
.
getUserPermission
(
ctx
);
const
url
=
`
${
API_INTERNAL_URI
}
/merchant/authority/get_role_list`
;
const
{
email
}
=
ctx
.
request
.
query
;
const
opts
=
{
url
,
method
:
"GET"
,
qs
:
{
user_email
:
"jianghaiming@126.com"
// user_email: email
}
};
ctx
.
body
=
await
req
(
ctx
,
opts
);
}
}
};
};
...
...
server/controllers/utils.js
0 → 100644
View file @
82694a76
const
API_INTERNAL_URI
=
require
(
'../config.js'
).
API_INTERNAL_URI
const
req
=
require
(
'../utils/request'
).
httpReq
exports
.
getUserPermission
=
async
(
ctx
)
=>
{
const
url
=
`
${
API_INTERNAL_URI
}
/merchant/authority/get_role_list`
;
const
{
email
,
op_cur_user
}
=
ctx
.
request
.
query
;
const
user
=
email
||
op_cur_user
;
const
opts
=
{
url
,
method
:
"GET"
,
qs
:
{
user_email
:
"jianghaiming@126.com"
// user_email: user
}
};
return
await
req
(
ctx
,
opts
);
}
\ No newline at end of file
server/utils/request.js
View file @
82694a76
const
{
options
}
=
require
(
'less'
);
const
request
=
require
(
'request'
)
const
request
=
require
(
'request'
)
exports
.
httpReq
=
(
ctx
,
opts
)
=>
{
exports
.
httpReq
=
(
ctx
,
opts
)
=>
{
opts
.
timeout
=
opts
.
timeout
||
1000
opts
.
timeout
=
opts
.
timeout
||
1000
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
//
var time_start = +new Date()
var
time_start
=
+
new
Date
()
//
opts.qs = {...ctx.request.query, ...opts.qs};
opts
.
qs
=
{...
ctx
.
request
.
query
,
...
opts
.
qs
};
request
(
opts
,
(
err
,
res
,
body
)
=>
{
request
(
opts
,
(
err
,
res
,
body
)
=>
{
//console.info(`[Api] httpReq (${opts.url},${opts.headers && opts.headers.cookie}
) spent: ${+new Date() - time_start}ms`)
console
.
info
(
`[Api] httpReq (
${
opts
.
url
}
,
${
opts
.
headers
&&
opts
.
headers
.
cookie
}
, user:[
${
opts
.
qs
.
op_cur_user
}
]
) spent:
${
+
new
Date
()
-
time_start
}
ms`
)
if
(
!
err
)
{
if
(
!
err
)
{
resolve
(
body
)
resolve
(
body
)
...
@@ -19,24 +18,3 @@ exports.httpReq = (ctx, opts) => {
...
@@ -19,24 +18,3 @@ exports.httpReq = (ctx, opts) => {
})
})
})
})
}
}
// const axios = require('axios')
// const instance = axios.create({})
// exports.httpReq = (ctx, opts) => {
// opts.timeout = opts.timeout || 1000
// return new Promise((resolve, reject) => {
// instance(opts).then((res) => {
// console.log(res);
// resolve(res.data);
// }).catch(({response}) => {
// // console.log(88888, response)
// reject(response.data.message)
// })
// })
// }
\ No newline at end of file
src/components/PageHeader/config.js
View file @
82694a76
...
@@ -15,7 +15,7 @@ const headerConfig = {
...
@@ -15,7 +15,7 @@ const headerConfig = {
name
:
'企业认证管理'
name
:
'企业认证管理'
},
},
{
{
path
:
'/life
-no/life
'
,
path
:
'/life
No
'
,
name
:
'生活号管理'
name
:
'生活号管理'
},
},
{
{
...
...
src/components/PageHeader/index.vue
View file @
82694a76
...
@@ -41,7 +41,7 @@ export default {
...
@@ -41,7 +41,7 @@ export default {
};
};
},
},
computed
:
{
computed
:
{
menuItemsWithAuth
:
function
()
{
menuItemsWithAuth
:
function
()
{
const
keys
=
Object
.
keys
(
this
.
$store
.
getters
.
subPermissions
)
const
keys
=
Object
.
keys
(
this
.
$store
.
getters
.
subPermissions
)
return
this
.
menuItems
.
filter
(
ele
=>
keys
.
includes
(
ele
.
key
))
return
this
.
menuItems
.
filter
(
ele
=>
keys
.
includes
(
ele
.
key
))
},
},
...
@@ -51,7 +51,7 @@ export default {
...
@@ -51,7 +51,7 @@ export default {
return
this
.
$route
.
path
;
return
this
.
$route
.
path
;
},
},
},
},
beforeMount
()
{
beforeMount
()
{
},
},
methods
:
{},
methods
:
{},
};
};
...
...
src/config/pageconfig.js
View file @
82694a76
...
@@ -38,10 +38,11 @@ export const PAGEMODULE_PERMISSIONNAME = {
...
@@ -38,10 +38,11 @@ export const PAGEMODULE_PERMISSIONNAME = {
enterprise
:
'enterprise_certification_management'
,
enterprise
:
'enterprise_certification_management'
,
lifeNo
:
'life_official_account_management'
,
lifeNo
:
'life_official_account_management'
,
role
:
'role_management'
,
role
:
'role_management'
,
// roleAddRole: 'role_addRole',
user
:
'user_management'
user
:
'user_management'
}
}
export
const
PERMISSIONNAME_PAGEMODULE
=
(
function
()
{
export
const
PERMISSIONNAME_PAGEMODULE
=
(
function
()
{
const
obj
=
{}
const
obj
=
{}
for
(
let
ele
in
PAGEMODULE_PERMISSIONNAME
)
{
for
(
let
ele
in
PAGEMODULE_PERMISSIONNAME
)
{
obj
[
PAGEMODULE_PERMISSIONNAME
[
ele
]]
=
ele
obj
[
PAGEMODULE_PERMISSIONNAME
[
ele
]]
=
ele
...
@@ -57,10 +58,8 @@ export const PATH_PERMISSION_NAME = {
...
@@ -57,10 +58,8 @@ export const PATH_PERMISSION_NAME = {
'/enterprise/certification'
:
'enterprise_certification_management'
,
'/enterprise/certification'
:
'enterprise_certification_management'
,
'/enterprise/audit'
:
'enterprise_certification_management.audit'
,
'/enterprise/audit'
:
'enterprise_certification_management.audit'
,
'/enterprise/establish'
:
'enterprise_certification_management.create'
,
'/enterprise/establish'
:
'enterprise_certification_management.create'
,
'/lifeNo'
:
'life_official_account_management'
,
'/lifeNo'
:
'life_official_account_management'
,
'/roleManageRole'
:
'role_management'
,
'/roleManageRole'
:
'role_management'
,
// '/roleAddRole': 'role_addRole',
'/user'
:
'user_management'
'/user'
:
'user_management'
}
}
\ No newline at end of file
src/pages/Role/add-role.vue
View file @
82694a76
<
template
>
<
template
>
<div
class=
"addRole"
>
<div
class=
"addRole"
>
<el-button
type=
"primary"
@
click=
"newAddRole"
>
新增
</el-button>
<el-button
type=
"primary"
v-if=
"permission.get('create')"
@
click=
"newAddRole"
>
新增
</el-button
>
<!-- 角色列表 -->
<!-- 角色列表 -->
<el-table
<el-table
:data=
"roleDataList"
:data=
"roleDataList"
...
@@ -28,7 +33,7 @@
...
@@ -28,7 +33,7 @@
<el-form>
<el-form>
<!-- 编辑 -->
<!-- 编辑 -->
<div
v-if=
"edit"
>
<div
v-if=
"edit"
>
<role
Detail
:role_info_detail=
"role_info_detail"
/>
<role
Info
:role_info_detail=
"role_info_detail"
/>
</div>
</div>
<!-- 新增 -->
<!-- 新增 -->
<el-form-item
label=
"角色名称"
:label-width=
"formLabelWidth"
>
<el-form-item
label=
"角色名称"
:label-width=
"formLabelWidth"
>
...
@@ -57,7 +62,7 @@
...
@@ -57,7 +62,7 @@
</template>
</template>
<
script
>
<
script
>
import
page
from
"../components/Pagination"
import
page
from
"../components/Pagination"
import
role
Detail
from
'./components/roleDetail
'
import
role
Info
from
'./components/roleInfo
'
import
{
import
{
getRole_list
as
reqGetRole_list
,
getAdd_role
as
reqGetAdd_role
,
getRole_list
as
reqGetRole_list
,
getAdd_role
as
reqGetAdd_role
,
getAll_role_list
as
reqGetAll_role_list
,
getAll_role_list
as
reqGetAll_role_list
,
...
@@ -66,20 +71,27 @@ import {
...
@@ -66,20 +71,27 @@ import {
}
from
"../../service/role"
;
}
from
"../../service/role"
;
import
{
ElMessage
}
from
'element-plus'
import
{
ElMessage
}
from
'element-plus'
export
default
{
export
default
{
name
:
'KeepaddRole'
,
components
:
{
components
:
{
page
,
page
,
roleDetail
roleInfo
},
computed
:
{
permission
()
{
const
modulePermissions
=
this
.
$store
.
getters
.
moduleSubPermissions
(
'role'
)
||
[];
return
new
Map
(
modulePermissions
.
map
(
ele
=>
[
ele
.
name
,
true
]))
},
},
},
data
()
{
data
()
{
return
{
return
{
parmas
:
{
parmas
:
{
page
:
1
,
page
:
1
,
page_size
:
1
0
page_size
:
2
0
},
},
user_info
:
{
user_info
:
{
user_
name
:
"jianghaiming"
,
name
:
"jianghaiming"
,
user_
email
:
"jianghaiming@126.com"
,
email
:
"jianghaiming@126.com"
,
op_cur_user
:
"jianghaiming@yidian-inc.com"
,
//
op_cur_user: "jianghaiming@yidian-inc.com",
},
},
roleDataList
:
[],
roleDataList
:
[],
totalNum
:
null
,
totalNum
:
null
,
...
@@ -120,8 +132,9 @@ export default {
...
@@ -120,8 +132,9 @@ export default {
this
.
$router
.
push
({
name
:
'RoleDetail'
,
query
:
{
roleId
:
row
.
role_id
}
});
this
.
$router
.
push
({
name
:
'RoleDetail'
,
query
:
{
roleId
:
row
.
role_id
}
});
},
},
getPermissionsAll
()
{
getPermissionsAll
()
{
let
{
user_name
,
user_email
}
=
this
.
user_info
// this.user_info = this.$store.state.userInfo
reqGetAll_role_list
(
user_name
,
user_email
).
then
(
res
=>
{
let
{
email
}
=
this
.
user_info
reqGetAll_role_list
(
email
).
then
(
res
=>
{
this
.
permissionsAll
=
res
this
.
permissionsAll
=
res
})
})
},
},
...
@@ -131,11 +144,16 @@ export default {
...
@@ -131,11 +144,16 @@ export default {
this
.
roleTitle
=
'新增角色'
this
.
roleTitle
=
'新增角色'
this
.
edit
=
false
this
.
edit
=
false
this
.
roleName
=
""
this
.
roleName
=
""
this
.
selectedOptions
=
[]
},
},
//获取角色列表
//获取角色列表
getGetRole_list
()
{
getGetRole_list
()
{
let
{
page
,
page_size
}
=
this
.
parmas
let
{
page
,
page_size
}
=
this
.
parmas
reqGetRole_list
(
page
,
page_size
).
then
(
res
=>
{
let
parmasRole_list
=
{
page
,
page_size
,
}
reqGetRole_list
(
parmasRole_list
).
then
(
res
=>
{
this
.
roleDataList
=
res
.
result
this
.
roleDataList
=
res
.
result
this
.
totalNum
=
res
.
count
this
.
totalNum
=
res
.
count
})
})
...
@@ -152,8 +170,13 @@ export default {
...
@@ -152,8 +170,13 @@ export default {
this
.
checkFn
()
this
.
checkFn
()
return
false
return
false
}
}
let
role_name
=
this
.
roleName
,
permissions
=
this
.
currentRolePrivilege
let
{
email
}
=
this
.
$store
.
state
.
userInfo
//当前登陆人
reqGetAdd_role
(
role_name
,
permissions
).
then
(
res
=>
{
let
parmasAdd_role
=
{
op_cur_user
:
email
,
role_name
:
this
.
roleName
,
permissions
:
this
.
currentRolePrivilege
}
reqGetAdd_role
(
parmasAdd_role
).
then
(
res
=>
{
if
(
res
.
status
===
"success"
)
{
if
(
res
.
status
===
"success"
)
{
this
.
dialogFormVisible
=
false
this
.
dialogFormVisible
=
false
this
.
getGetRole_list
()
this
.
getGetRole_list
()
...
@@ -205,7 +228,6 @@ export default {
...
@@ -205,7 +228,6 @@ export default {
}
}
})
})
this
.
selectedOptions
=
selectData
this
.
selectedOptions
=
selectData
console
.
log
(
this
.
selectedOptions
,
'00008u989'
)
},
},
//编辑角色
//编辑角色
getUpdate_role
()
{
getUpdate_role
()
{
...
@@ -213,10 +235,16 @@ export default {
...
@@ -213,10 +235,16 @@ export default {
this
.
checkFn
()
this
.
checkFn
()
return
false
return
false
}
}
let
{
role_name
,
role_id
,
role_status
}
=
this
.
role_info_detail
let
{
role_id
,
role_status
}
=
this
.
role_info_detail
let
{
op_cur_user
}
=
this
.
user_info
let
{
email
}
=
this
.
$store
.
state
.
userInfo
//当前登陆人
role_name
=
this
.
roleName
let
parmasUpdate_role
=
{
reqGetUpdate_role
(
op_cur_user
,
role_name
,
role_id
,
role_status
,
this
.
permissionsUpdate
).
then
(
res
=>
{
op_cur_user
:
email
,
role_name
:
this
.
roleName
,
role_id
,
role_status
,
permissions
:
this
.
permissionsUpdate
}
reqGetUpdate_role
(
parmasUpdate_role
).
then
(
res
=>
{
if
(
res
.
status
===
"success"
)
{
if
(
res
.
status
===
"success"
)
{
this
.
dialogFormVisible
=
false
this
.
dialogFormVisible
=
false
this
.
edit
=
true
this
.
edit
=
true
...
@@ -233,7 +261,6 @@ export default {
...
@@ -233,7 +261,6 @@ export default {
}
}
},
},
parentCateChange
(
id
)
{
parentCateChange
(
id
)
{
console
.
log
(
id
,
'000'
)
this
.
getSelectedOptions
(
id
)
this
.
getSelectedOptions
(
id
)
},
},
getSelectedOptions
(
selectedOptions
)
{
getSelectedOptions
(
selectedOptions
)
{
...
...
src/pages/Role/components/role
Detail
.vue
→
src/pages/Role/components/role
Info
.vue
View file @
82694a76
File moved
src/pages/Role/manage-role.vue
View file @
82694a76
...
@@ -35,9 +35,10 @@
...
@@ -35,9 +35,10 @@
></el-table-column>
></el-table-column>
<el-table-column
<el-table-column
label=
"状态"
label=
"状态"
prop=
"role_status
"
:formatter=
"hasStatusFormat
"
align=
"center"
align=
"center"
></el-table-column>
>
</el-table-column>
<el-table-column
<el-table-column
label=
"最后修改日期"
label=
"最后修改日期"
prop=
"update_time"
prop=
"update_time"
...
@@ -51,7 +52,10 @@
...
@@ -51,7 +52,10 @@
<el-table-column
label=
"操作"
align=
"center"
>
<el-table-column
label=
"操作"
align=
"center"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<el-button
<el-button
v-if=
"!(scope.row.role_status == 2 || scope.row.role_status == 3)"
v-if=
"
!(scope.row.role_status == 2 || scope.row.role_status == 3) &&
permission.get('edit')
"
size=
"mini"
size=
"mini"
@
click
.
stop=
"handelModify(scope.row)"
@
click
.
stop=
"handelModify(scope.row)"
type=
"primary"
type=
"primary"
...
@@ -59,18 +63,21 @@
...
@@ -59,18 +63,21 @@
>
>
<el-button
<el-button
size=
"mini"
size=
"mini"
v-if=
"permission.get('delete')"
@
click
.
stop=
"handelDelete(scope.row)"
@
click
.
stop=
"handelDelete(scope.row)"
type=
"warning"
type=
"warning"
>
删除
</el-button
>
删除
</el-button
>
>
<el-button
<el-button
size=
"mini"
size=
"mini"
v-if=
"permission.get('disable')"
@
click
.
stop=
"handelDisable(scope.row)"
@
click
.
stop=
"handelDisable(scope.row)"
type=
"danger"
type=
"danger"
>
禁用
</el-button
>
禁用
</el-button
>
>
<el-button
<el-button
size=
"mini"
size=
"mini"
v-if=
"permission.get('enable')"
@
click
.
stop=
"handelEnable(scope.row)"
@
click
.
stop=
"handelEnable(scope.row)"
type=
"success"
type=
"success"
>
启用
</el-button
>
启用
</el-button
...
@@ -116,11 +123,17 @@ import {
...
@@ -116,11 +123,17 @@ import {
getDelete_role
as
reqGetDelete_role
getDelete_role
as
reqGetDelete_role
}
from
"../../service/role"
;
}
from
"../../service/role"
;
export
default
{
export
default
{
name
:
'RoleManagement'
,
name
:
'
Keep
RoleManagement'
,
components
:
{
components
:
{
Layout
,
Layout
,
page
,
page
,
},
},
computed
:
{
permission
()
{
const
modulePermissions
=
this
.
$store
.
getters
.
moduleSubPermissions
(
'role'
)
||
[];
return
new
Map
(
modulePermissions
.
map
(
ele
=>
[
ele
.
name
,
true
]))
},
},
data
()
{
data
()
{
return
{
return
{
searchForm
:
{
searchForm
:
{
...
@@ -128,13 +141,13 @@ export default {
...
@@ -128,13 +141,13 @@ export default {
roleStatus
:
''
roleStatus
:
''
},
},
user_info
:
{
user_info
:
{
user_name
:
this
.
$store
.
state
.
name
,
name
:
"jianghaiming@yidian-inc.com"
,
op_cur_user
:
"jianghaiming@yidian-inc.com"
,
//
op_cur_user: "jianghaiming@yidian-inc.com",
user_
email
:
"jianghaiming@126.com"
,
email
:
"jianghaiming@126.com"
,
},
},
parmas
:
{
parmas
:
{
page
:
1
,
page
:
1
,
page_size
:
1
0
page_size
:
2
0
},
},
totalNum
:
null
,
totalNum
:
null
,
props
:
{
props
:
{
...
@@ -160,19 +173,29 @@ export default {
...
@@ -160,19 +173,29 @@ export default {
this
.
getPermissionsAll
()
this
.
getPermissionsAll
()
},
},
methods
:
{
methods
:
{
hasStatusFormat
(
row
)
{
let
statusText
=
[
'正常'
,
'禁用'
,
'删除'
]
return
statusText
[
row
.
role_status
-
1
]
},
toRoleDetail
(
row
)
{
toRoleDetail
(
row
)
{
this
.
$router
.
push
({
name
:
'RoleDetail'
,
query
:
{
roleId
:
row
.
role_id
}
});
this
.
$router
.
push
({
name
:
'RoleDetail'
,
query
:
{
roleId
:
row
.
role_id
}
});
},
},
getPermissionsAll
()
{
getPermissionsAll
()
{
let
{
user_name
,
user_
email
}
=
this
.
user_info
let
{
email
}
=
this
.
user_info
reqGetAll_role_list
(
user_name
,
user_
email
).
then
(
res
=>
{
reqGetAll_role_list
(
email
).
then
(
res
=>
{
this
.
permissionsAll
=
res
this
.
permissionsAll
=
res
})
})
},
},
//获取角色列表
//获取角色列表
getGetRole_list
()
{
getGetRole_list
()
{
let
{
page
,
page_size
}
=
this
.
parmas
let
{
page
,
page_size
}
=
this
.
parmas
reqGetRole_list
(
page
,
page_size
,
this
.
searchForm
.
roleStatus
,
this
.
searchForm
.
roleName
).
then
(
res
=>
{
let
parmasRole_list
=
{
page
,
page_size
,
role_status
:
this
.
searchForm
.
roleStatus
,
role_name
:
this
.
searchForm
.
roleName
}
reqGetRole_list
(
parmasRole_list
).
then
(
res
=>
{
this
.
managementList
=
res
.
result
this
.
managementList
=
res
.
result
this
.
totalNum
=
res
.
count
this
.
totalNum
=
res
.
count
})
})
...
@@ -228,7 +251,7 @@ export default {
...
@@ -228,7 +251,7 @@ export default {
role_name
,
role_name
,
}
}
this
.
permissionsUpdate
=
permissions
this
.
permissionsUpdate
=
permissions
let
{
op_cur_user
}
=
this
.
user_info
let
{
email
}
=
this
.
$store
.
state
.
userInfo
//当前用户
let
role_status
let
role_status
if
(
type
===
"disable"
)
{
if
(
type
===
"disable"
)
{
role_status
=
2
role_status
=
2
...
@@ -242,7 +265,7 @@ export default {
...
@@ -242,7 +265,7 @@ export default {
role_status
=
""
role_status
=
""
}
}
if
(
type
!==
"modify"
)
{
if
(
type
!==
"modify"
)
{
this
.
getUpdate_role
(
op_cur_user
,
role_name
,
role_id
,
role_status
,
permissions
)
this
.
getUpdate_role
(
email
,
role_name
,
role_id
,
role_status
,
permissions
)
}
}
})
})
},
},
...
@@ -284,8 +307,15 @@ export default {
...
@@ -284,8 +307,15 @@ export default {
this
.
openBounced
(
"disable"
,
row
.
role_id
)
this
.
openBounced
(
"disable"
,
row
.
role_id
)
},
},
//编辑列表操作
//编辑列表操作
getUpdate_role
(
op_cur_user
,
role_name
,
role_id
,
role_status
,
permissions
)
{
getUpdate_role
(
email
,
role_name
,
role_id
,
role_status
,
permissions
)
{
reqGetUpdate_role
(
op_cur_user
,
role_name
,
role_id
,
role_status
,
permissions
).
then
(
res
=>
{
let
parmasUpdate_role
=
{
op_cur_user
:
email
,
role_name
:
role_name
,
role_id
,
role_status
,
permissions
,
}
reqGetUpdate_role
(
parmasUpdate_role
).
then
(
res
=>
{
if
(
res
.
status
===
"success"
)
{
if
(
res
.
status
===
"success"
)
{
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
this
.
getGetRole_list
()
this
.
getGetRole_list
()
...
@@ -305,10 +335,10 @@ export default {
...
@@ -305,10 +335,10 @@ export default {
},
},
//确认修改
//确认修改
confirm
()
{
confirm
()
{
let
{
op_cur_user
}
=
this
.
user_i
nfo
let
{
email
}
=
this
.
$store
.
state
.
userI
nfo
let
{
role_id
,
role_name
}
=
this
.
role_info_detail
let
{
role_id
,
role_name
}
=
this
.
role_info_detail
let
role_status
=
''
let
role_status
=
''
this
.
getUpdate_role
(
op_cur_user
,
role_name
,
role_id
,
role_status
,
this
.
currentRolePrivilege
)
this
.
getUpdate_role
(
email
,
role_name
,
role_id
,
role_status
,
this
.
currentRolePrivilege
)
},
},
parentCateChange
(
id
)
{
parentCateChange
(
id
)
{
this
.
getSelectedOptions
(
id
)
this
.
getSelectedOptions
(
id
)
...
...
src/pages/Role/role-detail.vue
View file @
82694a76
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item>
<el-descriptions-item>
<
template
#
label
>
创建人账号
</
template
>
<
template
#
label
>
创建人账号
</
template
>
{{ role_info_detail.
upd
ate_user_name }}
{{ role_info_detail.
cre
ate_user_name }}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item>
<el-descriptions-item>
<
template
#
label
>
创建时间
</
template
>
<
template
#
label
>
创建时间
</
template
>
...
@@ -42,18 +42,6 @@
...
@@ -42,18 +42,6 @@
<div
class=
"tree"
v-if=
"selectedOptions"
>
<div
class=
"tree"
v-if=
"selectedOptions"
>
<h5
style=
"margin-bottom: 10px"
>
角色范围
</h5>
<h5
style=
"margin-bottom: 10px"
>
角色范围
</h5>
<div
class=
"content"
>
<div
class=
"content"
>
<!-- <el-tree
:data="permissionsAll"
show-checkbox
:default-checked-keys="checkedKeys"
:default-expanded-keys="expandedKeys"
node-key="id"
ref="tree"
highlight-current
:props="defaultProps"
:expand-on-click-node="false"
>
</el-tree> -->
<el-cascader
<el-cascader
v-model=
"selectedOptions"
v-model=
"selectedOptions"
:options=
"permissionsAll"
:options=
"permissionsAll"
...
@@ -73,13 +61,9 @@ export default {
...
@@ -73,13 +61,9 @@ export default {
data
()
{
data
()
{
return
{
return
{
roleId
:
this
.
$route
.
query
.
roleId
,
roleId
:
this
.
$route
.
query
.
roleId
,
defaultProps
:
{
children
:
'sub_permissions'
,
label
:
'desc'
},
user_info
:
{
user_info
:
{
user_
name
:
"jianghaiming"
,
name
:
"jianghaiming"
,
user_
email
:
"jianghaiming@126.com"
,
email
:
"jianghaiming@126.com"
,
},
},
props
:
{
props
:
{
multiple
:
true
,
//设置为多选
multiple
:
true
,
//设置为多选
...
@@ -88,8 +72,6 @@ export default {
...
@@ -88,8 +72,6 @@ export default {
children
:
'sub_permissions'
//children值和哪个值绑定
children
:
'sub_permissions'
//children值和哪个值绑定
},
},
selectedOptions
:
[],
selectedOptions
:
[],
checkedKeys
:
[],
expandedKeys
:
[],
permissionsAll
:
[],
permissionsAll
:
[],
role_info_detail
:
{
//详情非编辑项
role_info_detail
:
{
//详情非编辑项
role_id
:
""
,
role_id
:
""
,
...
@@ -99,19 +81,15 @@ export default {
...
@@ -99,19 +81,15 @@ export default {
update_user_name
:
""
,
update_user_name
:
""
,
create_time
:
""
,
create_time
:
""
,
create_user_name
:
""
create_user_name
:
""
}
,
}
}
}
},
},
created
()
{
created
()
{
let
{
user_name
,
user_email
}
=
this
.
user_info
// this.user_info = this.$store.state.userInfo
reqGetAll_role_list
(
user_name
,
user_email
).
then
(
res
=>
{
this
.
roleId
=
this
.
$route
.
query
.
roleId
let
{
email
}
=
this
.
user_info
reqGetAll_role_list
(
email
).
then
(
res
=>
{
this
.
permissionsAll
=
res
this
.
permissionsAll
=
res
// this.permissionsAll.forEach(item => {
// item.disabled = true
// item.sub_permissions.forEach(element => {
// element.disabled = true
// })
// })
})
})
reqGet_role_info
(
this
.
roleId
).
then
((
res
)
=>
{
reqGet_role_info
(
this
.
roleId
).
then
((
res
)
=>
{
const
{
role_id
,
role_name
,
role_status
,
update_time
,
update_user_name
,
create_time
,
create_user_name
,
permissions
}
=
res
const
{
role_id
,
role_name
,
role_status
,
update_time
,
update_user_name
,
create_time
,
create_user_name
,
permissions
}
=
res
...
@@ -133,18 +111,6 @@ export default {
...
@@ -133,18 +111,6 @@ export default {
},
},
//遍历回显值selectedOptions
//遍历回显值selectedOptions
editEchoData
(
permissions
)
{
editEchoData
(
permissions
)
{
// let childArr = [], selectExpandedKeys = []
// permissions.forEach(item => {
// selectExpandedKeys.push(item.id)
// if (item.sub_permissions) {
// item.sub_permissions.forEach(element => {
// childArr.push(element.id)
// })
// }
// })
// this.checkedKeys = childArr
// this.expandedKeys = selectExpandedKeys
// console.log(this.checkedKeys, this.expandedKeys, ' this.expandedKeys ')
let
selectData
=
[]
let
selectData
=
[]
permissions
.
map
(
item
=>
{
permissions
.
map
(
item
=>
{
let
one
=
{
id
:
item
.
id
}
let
one
=
{
id
:
item
.
id
}
...
...
src/pages/User/user-detail.vue
View file @
82694a76
...
@@ -53,7 +53,7 @@ import { getUser_detail as reqGetUser_detail } from "../../service/user";
...
@@ -53,7 +53,7 @@ import { getUser_detail as reqGetUser_detail } from "../../service/user";
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
user_id
:
'1'
,
user_id
:
this
.
$route
.
query
.
userId
,
user_info
:
{},
user_info
:
{},
role_list
:
[]
//角色池
role_list
:
[]
//角色池
}
}
...
...
src/pages/User/userList/components/UserInfoEditModal.vue
View file @
82694a76
<
template
>
<
template
>
<div
class=
"user-container"
>
<div
class=
"user-container"
>
<el-dialog
:title=
"mode==='edit' ? '编辑用户':'创建用户'
"
v-model=
"modalVisable"
:before-close=
"cancel"
>
<el-dialog
title=
"编辑用户
"
v-model=
"modalVisable"
:before-close=
"cancel"
>
<el-form
:model=
"userInfo"
>
<el-form
:model=
"userInfo"
>
<el-form-item
label=
"用户ID"
:label-width=
"formLabelWidth"
>
<el-form-item
label=
"用户ID"
:label-width=
"formLabelWidth"
>
<el-input
class=
"form-val"
v-model=
"userInfo.user_id"
size=
"medium"
disabled
></el-input>
<el-input
class=
"form-val"
v-model=
"userInfo.user_id"
size=
"medium"
disabled
></el-input>
...
@@ -10,8 +10,8 @@
...
@@ -10,8 +10,8 @@
<el-switch
<el-switch
class=
"form-val"
class=
"form-val"
v-model=
"userInfo.user_status"
v-model=
"userInfo.user_status"
active-value=
1
active-value=
'1'
inactive-value=
0
inactive-value=
'2'
active-text=
"启用"
active-text=
"启用"
inactive-text=
"禁用"
inactive-text=
"禁用"
>
>
...
@@ -30,23 +30,21 @@
...
@@ -30,23 +30,21 @@
<el-input
class=
"form-val"
v-model=
"userInfo.organization"
disabled
></el-input>
<el-input
class=
"form-val"
v-model=
"userInfo.organization"
disabled
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"授权角色信息"
:label-width=
"formLabelWidth"
>
<el-form-item
label=
"授权角色信息"
:label-width=
"formLabelWidth"
>
<!--
<el-input
class=
"form-val"
v-model=
"userInfo.roles"
></el-input>
-->
<el-select
v-model=
"userInfo.roles"
multiple
placeholder=
"请选择"
class=
"form-val"
>
<el-select
v-model=
"userInfo.roles"
multiple
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in roles"
v-for=
"item in roles"
:key=
"item.
value
"
:key=
"item.
role_id
"
:label=
"item.
label
"
:label=
"item.
role_name
"
:value=
"item.
value
"
>
:value=
"item.
role_id
"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"敏感词权限"
:label-width=
"formLabelWidth"
>
<el-form-item
label=
"敏感词权限"
:label-width=
"formLabelWidth"
>
<!--
<el-input
class=
"form-val"
>
{{
userInfo
.
is_sensitive_authority
===
1
?
'是'
:
'否'
}}
</el-input>
-->
<el-switch
<el-switch
v-model=
"userInfo.is_sensitive_authority"
v-model=
"userInfo.is_sensitive_authority"
class=
"form-val"
class=
"form-val"
active-value=
1
active-value=
'1'
inactive-value=
0
inactive-value=
'2'
active-text=
"开启"
active-text=
"开启"
inactive-text=
"关闭"
inactive-text=
"关闭"
>
>
...
@@ -55,7 +53,7 @@
...
@@ -55,7 +53,7 @@
</el-form>
</el-form>
<template
#
footer
>
<template
#
footer
>
<span
class=
"dialog-footer"
>
<span
class=
"dialog-footer"
>
<el-button>
取 消
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
确 定
</el-button>
</span>
</span>
</
template
>
</
template
>
...
@@ -63,20 +61,14 @@
...
@@ -63,20 +61,14 @@
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
ElMessage
}
from
"element-plus"
;
import
{
getRole_list
as
reqGetRoles
}
from
'@/service/role'
;
import
{
getRole_list
as
reqGetRoles
}
from
'@/service/role'
;
export
default
{
export
default
{
name
:
'UserInfoEditModal'
,
name
:
'UserInfoEditModal'
,
props
:
{
props
:
{
mode
:
{
type
:
String
,
default
:
'edit'
,
},
data
:
Object
,
data
:
Object
,
// title: {
// type: String,
// default: "用户信息",
// },
visable
:
{
visable
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
false
default
:
false
...
@@ -86,13 +78,16 @@ export default {
...
@@ -86,13 +78,16 @@ export default {
return
{
return
{
formLabelWidth
:
'120px'
,
formLabelWidth
:
'120px'
,
userInfo
:
{},
userInfo
:
{},
roles
:
null
,
roles
:
[]
,
modalVisable
:
false
modalVisable
:
false
}
}
},
},
watch
:
{
watch
:
{
data
(
val
)
{
data
(
val
)
{
this
.
userInfo
=
val
;
this
.
userInfo
=
val
;
this
.
userInfo
.
roles
=
val
.
roles
.
map
(
ele
=>
ele
.
role_id
);
this
.
userInfo
.
user_status
=
val
.
user_status
.
toString
();
this
.
userInfo
.
is_sensitive_authority
=
val
.
is_sensitive_authority
.
toString
();
},
},
visable
(
val
)
{
visable
(
val
)
{
this
.
modalVisable
=
val
;
this
.
modalVisable
=
val
;
...
@@ -103,8 +98,12 @@ export default {
...
@@ -103,8 +98,12 @@ export default {
},
},
methods
:
{
methods
:
{
async
getRoles
()
{
async
getRoles
()
{
const
roles
=
await
reqGetRoles
();
const
{
code
,
result
}
=
await
reqGetRoles
();
console
.
log
(
67777
,
roles
)
if
(
code
!==
0
)
{
ElMessage
.
error
(
"获取角色列表出错!"
);
return
}
this
.
roles
=
result
;
},
},
confirm
()
{
confirm
()
{
this
.
$emit
(
'confirm'
,
this
.
userInfo
);
this
.
$emit
(
'confirm'
,
this
.
userInfo
);
...
...
src/pages/User/userList/components/UserInfoNewModal.vue
0 → 100644
View file @
82694a76
<
template
>
<div
class=
"user-container"
>
<el-dialog
title=
"创建用户"
v-model=
"modalVisable"
:before-close=
"cancel"
>
<el-form
:model=
"userInfo"
>
<el-form-item
label=
"状态"
:label-width=
"formLabelWidth"
>
<!--
<el-input
class=
"form-val"
>
{{
data
.
user_status
===
1
?
'启用'
:
'禁用'
}}
</el-input>
-->
<el-switch
class=
"form-val"
v-model=
"userInfo.user_status"
active-value=
'1'
inactive-value=
'2'
active-text=
"启用"
inactive-text=
"禁用"
>
</el-switch>
</el-form-item>
<el-form-item
label=
"姓名"
:label-width=
"formLabelWidth"
>
<el-input
class=
"form-val"
v-model=
"userInfo.user_name"
></el-input>
</el-form-item>
<el-form-item
label=
"邮箱"
:label-width=
"formLabelWidth"
>
<el-input
class=
"form-val"
v-model=
"userInfo.user_email"
></el-input>
</el-form-item>
<el-form-item
label=
"手机号"
:label-width=
"formLabelWidth"
>
<el-input
class=
"form-val"
v-model=
"userInfo.user_mobile"
></el-input>
</el-form-item>
<el-form-item
label=
"所属组织"
:label-width=
"formLabelWidth"
>
<el-input
class=
"form-val"
v-model=
"userInfo.organization"
></el-input>
</el-form-item>
<el-form-item
label=
"授权角色"
:label-width=
"formLabelWidth"
>
<el-select
v-model=
"userInfo.roles"
multiple
placeholder=
"请选择"
class=
"form-val"
>
<el-option
v-for=
"item in roles"
:key=
"item.role_id"
:label=
"item.role_name"
:value=
"item.role_id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"敏感词权限"
:label-width=
"formLabelWidth"
>
<el-switch
v-model=
"userInfo.is_sensitive_authority"
class=
"form-val"
active-value=
'1'
inactive-value=
'2'
active-text=
"开启"
inactive-text=
"关闭"
>
</el-switch>
</el-form-item>
</el-form>
<template
#
footer
>
<span
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
确 定
</el-button>
</span>
</
template
>
</el-dialog>
</div>
</template>
<
script
>
import
{
ElMessage
}
from
"element-plus"
;
import
{
getRole_list
as
reqGetRoles
}
from
'@/service/role'
;
export
default
{
name
:
'UserInfoEditModal'
,
props
:
{
visable
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
formLabelWidth
:
'120px'
,
userInfo
:
{
user_name
:
''
,
user_email
:
''
,
is_sensitive_authority
:
'0'
,
user_mobile
:
''
,
roles
:
[],
user_status
:
'1'
,
organization
:
''
,
},
roles
:
[],
modalVisable
:
false
,
}
},
watch
:
{
data
(
val
)
{
this
.
userInfo
=
val
;
this
.
userInfo
.
roles
=
val
.
roles
.
map
(
ele
=>
ele
.
role_id
);
},
visable
(
val
)
{
this
.
modalVisable
=
val
;
}
},
beforeMount
(){
this
.
getRoles
();
},
methods
:
{
async
getRoles
()
{
const
{
code
,
result
}
=
await
reqGetRoles
();
if
(
code
!==
0
)
{
ElMessage
.
error
(
"获取角色列表出错!"
);
return
}
this
.
roles
=
result
;
},
confirm
()
{
this
.
$emit
(
'confirm'
,
this
.
userInfo
);
},
cancel
()
{
this
.
$emit
(
'cancel'
);
}
},
}
</
script
>
<
style
lang=
"less"
>
.form-val {
margin-left: 20px;
width: 300px;
}
.form-val.el-input {
width: 80%;
}
</
style
>
\ No newline at end of file
src/pages/User/userList/index.vue
View file @
82694a76
...
@@ -31,14 +31,12 @@
...
@@ -31,14 +31,12 @@
<el-form-item
class=
"func-btn"
>
<el-form-item
class=
"func-btn"
>
<el-button
type=
"primary"
@
click=
"getUserList"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"getUserList"
>
查询
</el-button>
<el-button
@
click=
"onReset"
>
重置
</el-button>
<el-button
@
click=
"onReset"
>
重置
</el-button>
<el-button
@
click=
"createUser"
>
新建用户
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-table
<el-table
:data=
"renderUserList"
border
style=
"width: 100%"
>
:data=
"renderUserList"
<el-table-column
prop=
"user_id"
label=
"用户ID"
width=
"70"
>
border
</el-table-column>
style=
"width: 100%"
>
<el-table-column
prop=
"user_id"
label=
"ID"
width=
70
>
</el-table-column>
<el-table-column
prop=
"user_name"
label=
"用户姓名"
>
</el-table-column>
<el-table-column
prop=
"user_name"
label=
"用户姓名"
>
</el-table-column>
<el-table-column
prop=
"user_email"
label=
"用户账号"
>
</el-table-column>
<el-table-column
prop=
"user_email"
label=
"用户账号"
>
</el-table-column>
<el-table-column
prop=
"user_status"
label=
"状态"
>
</el-table-column>
<el-table-column
prop=
"user_status"
label=
"状态"
>
</el-table-column>
...
@@ -49,10 +47,7 @@
...
@@ -49,10 +47,7 @@
</el-table-column>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"140"
>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"140"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<el-button
<el-button
type=
"text"
size=
"small"
@
click=
"checkUser(scope.row)"
type=
"text"
size=
"small"
@
click=
"checkUser(scope.row)"
>
查看
</el-button
>
查看
</el-button
>
>
<el-button
@
click=
"editUser(scope.row)"
type=
"text"
size=
"small"
<el-button
@
click=
"editUser(scope.row)"
type=
"text"
size=
"small"
...
@@ -62,14 +57,14 @@
...
@@ -62,14 +57,14 @@
v-if=
"scope.row.user_status === '启用'"
v-if=
"scope.row.user_status === '启用'"
type=
"text"
type=
"text"
size=
"small"
size=
"small"
@
click=
"
enableUser
"
@
click=
"
disableUser(scope.row)
"
>
禁用
</el-button
>
禁用
</el-button
>
>
<el-button
<el-button
v-if=
"scope.row.user_status === '禁用'"
v-if=
"scope.row.user_status === '禁用'"
type=
"text"
type=
"text"
size=
"small"
size=
"small"
@
click=
"
disableUser
"
@
click=
"
enableUser(scope.row)
"
>
启用
</el-button
>
启用
</el-button
>
>
</
template
>
</
template
>
...
@@ -82,22 +77,37 @@
...
@@ -82,22 +77,37 @@
/>
/>
</div>
</div>
<user-info-modal
:data=
"curUserInfo"
:visable=
"modalVisable.info"
@
cancel=
"cancelEditModal('info')"
></user-info-modal>
<user-info-modal
<user-info-edit-modal
:data=
"curUserInfo"
:visable=
"modalVisable.edit"
:mode=
"curOperateMode"
@
confirm=
"confirmEditModal"
@
cancel=
"cancelEditModal('edit')"
></user-info-edit-modal>
:data=
"curUserInfo"
:visable=
"modalVisable.info"
@
cancel=
"cancelModal('info')"
></user-info-modal>
<user-info-edit-modal
:data=
"curUserInfo"
:visable=
"modalVisable.edit"
@
confirm=
"confirmEditModal"
@
cancel=
"cancelModal('edit')"
></user-info-edit-modal>
<user-info-new-modal
:visable=
"modalVisable.new"
@
confirm=
"confirmEditModal"
@
cancel=
"cancelModal('new')"
></user-info-new-modal>
</layout>
</layout>
</template>
</template>
<
script
>
<
script
>
import
Layout
from
"@/layouts"
;
import
Layout
from
"@/layouts"
;
import
page
from
"@/components/Pagination"
;
import
page
from
"@/components/Pagination"
;
import
UserInfoModal
from
'./components/UserInfoModal'
;
import
UserInfoModal
from
"./components/UserInfoModal"
;
import
UserInfoEditModal
from
'./components/UserInfoEditModal'
;
import
UserInfoEditModal
from
"./components/UserInfoEditModal"
;
import
UserInfoNewModal
from
"./components/UserInfoNewModal"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
import
{
getUserList
as
reqGetUserList
,
getUserList
as
reqGetUserList
,
getUserDetail
as
reqGetUserDetail
,
getUserDetail
as
reqGetUserDetail
,
editUser
as
reqEditUser
,
editUser
as
reqEditUser
,
createUser
as
reqCreateUser
createUser
as
reqCreateUser
,
}
from
"@/service/user"
;
}
from
"@/service/user"
;
export
default
{
export
default
{
...
@@ -105,9 +115,10 @@ export default {
...
@@ -105,9 +115,10 @@ export default {
Layout
,
Layout
,
page
,
page
,
UserInfoModal
,
UserInfoModal
,
UserInfoEditModal
UserInfoEditModal
,
UserInfoNewModal
,
},
},
data
()
{
data
()
{
return
{
return
{
pageParams
:
{
pageParams
:
{
page
:
1
,
page
:
1
,
...
@@ -123,12 +134,13 @@ export default {
...
@@ -123,12 +134,13 @@ export default {
modalVisable
:
{
modalVisable
:
{
info
:
false
,
info
:
false
,
edit
:
false
,
edit
:
false
,
new
:
false
,
},
},
curOperateMode
:
'new'
curOperateMode
:
"new"
,
};
};
},
},
computed
:
{
computed
:
{
renderUserList
()
{
renderUserList
()
{
const
statusMap
=
new
Map
([
const
statusMap
=
new
Map
([
[
1
,
"启用"
],
[
1
,
"启用"
],
[
2
,
"禁用"
],
[
2
,
"禁用"
],
...
@@ -140,11 +152,11 @@ export default {
...
@@ -140,11 +152,11 @@ export default {
});
});
},
},
},
},
beforeMount
()
{
beforeMount
()
{
this
.
getUserList
();
this
.
getUserList
();
},
},
methods
:
{
methods
:
{
async
getUserList
()
{
async
getUserList
()
{
const
{
code
,
result
}
=
await
reqGetUserList
(
this
.
pageParams
);
const
{
code
,
result
}
=
await
reqGetUserList
(
this
.
pageParams
);
if
(
code
!==
0
)
{
if
(
code
!==
0
)
{
...
@@ -156,55 +168,96 @@ export default {
...
@@ -156,55 +168,96 @@ export default {
this
.
userList
=
data
;
this
.
userList
=
data
;
},
},
async
setCurUserInfo
(
user_id
)
{
async
setCurUserInfo
(
user_id
)
{
const
{
code
,
result
}
=
await
reqGetUserDetail
({
user_id
});
const
{
code
,
result
}
=
await
reqGetUserDetail
({
user_id
});
if
(
code
===
0
)
{
if
(
code
===
0
)
{
this
.
curUserInfo
=
{
this
.
curUserInfo
=
{
...
result
.
user_info
,
...
result
.
user_info
,
roles
:
result
.
role_list
roles
:
result
.
role_list
,
}
}
;
}
else
{
}
else
{
ElMessage
.
error
(
"获取用户信息出错!"
);
ElMessage
.
error
(
"获取用户信息出错!"
);
}
}
},
},
async
checkUser
(
row
)
{
async
checkUser
(
row
)
{
const
{
user_id
}
=
row
;
const
{
user_id
}
=
row
;
await
this
.
setCurUserInfo
(
user_id
);
await
this
.
setCurUserInfo
(
user_id
);
this
.
openModal
(
'info'
)
this
.
openModal
(
"info"
);
},
},
async
editUser
(
row
)
{
async
editUser
(
row
)
{
const
{
user_id
}
=
row
;
const
{
user_id
}
=
row
;
await
this
.
setCurUserInfo
(
user_id
);
await
this
.
setCurUserInfo
(
user_id
);
// this.openModal('edit');
// this.openModal('edit');
this
.
modalVisable
.
edit
=
true
;
this
.
modalVisable
.
edit
=
true
;
this
.
curOperateMode
=
'edit'
;
this
.
curOperateMode
=
"edit"
;
},
},
openModal
(
key
)
{
openModal
(
key
)
{
Object
.
keys
(
this
.
modalVisable
).
forEach
(
ele
=>
{
Object
.
keys
(
this
.
modalVisable
).
forEach
(
(
ele
)
=>
{
this
.
modalVisable
[
ele
]
=
(
key
===
ele
)
;
this
.
modalVisable
[
ele
]
=
key
===
ele
;
});
});
},
},
confirmEditModal
(
userInfo
)
{
async
confirmEditModal
(
userInfo
)
{
// this.curOperateMode
const
{
console
.
log
(
'confirmEditModal:::::'
,
userInfo
);
user_id
,
if
(
this
.
curOperateMode
===
'edit'
)
{
user_name
,
reqEditUser
()
user_email
,
}
else
if
(
this
.
curOperateMode
===
'new'
)
{
is_sensitive_authority
,
reqCreateUser
()
user_mobile
,
roles
,
user_status
,
organization
,
}
=
userInfo
;
let
res
=
{};
if
(
this
.
curOperateMode
===
"edit"
)
{
const
editData
=
{
user_id
,
user_name
,
user_email
,
is_sensitive_authority
:
parseInt
(
is_sensitive_authority
),
user_mobile
,
role_id
:
roles
,
user_status
:
parseInt
(
user_status
),
};
res
=
await
reqEditUser
(
editData
);
}
else
if
(
this
.
curOperateMode
===
"new"
)
{
const
newData
=
{
user_name
,
user_email
,
is_sensitive_authority
:
parseInt
(
is_sensitive_authority
),
user_mobile
,
role_id
:
roles
,
user_status
:
parseInt
(
user_status
),
organization
,
};
res
=
await
reqCreateUser
(
newData
);
}
}
if
(
res
.
code
===
0
)
{
this
.
cancelModal
(
this
.
curOperateMode
);
ElMessage
.
success
(
"更新成功!"
);
this
.
getUserList
();
}
else
{
ElMessage
.
error
(
res
.
reason
);
}
},
cancelModal
(
name
)
{
this
.
modalVisable
[
name
]
=
false
;
},
},
c
ancelEditModal
(
name
)
{
c
reateUser
(
)
{
console
.
log
(
44444
,
name
)
this
.
curOperateMode
=
"new"
;
this
.
modalVisable
[
name
]
=
false
this
.
openModal
(
"new"
);
},
},
//重置
//重置
onReset
()
{
onReset
()
{
this
.
pageParams
=
{
this
.
pageParams
=
{
page
:
1
,
page
:
1
,
pageSize
:
20
,
pageSize
:
20
,
...
@@ -215,15 +268,34 @@ export default {
...
@@ -215,15 +268,34 @@ export default {
};
};
},
},
updatePage
({
page
,
pageSize
})
{
updatePage
({
page
,
pageSize
})
{
page
&&
(
this
.
pageParams
.
page
=
page
);
page
&&
(
this
.
pageParams
.
page
=
page
);
pageSize
&&
(
this
.
pageParams
.
pageSize
=
pageSize
);
pageSize
&&
(
this
.
pageParams
.
pageSize
=
pageSize
);
this
.
getUserList
();
this
.
getUserList
();
},
},
enableUser
()
{
async
enableUser
(
row
)
{
const
{
user_id
}
=
row
;
const
{
code
,
reason
}
=
await
reqEditUser
({
user_status
:
1
,
user_id
});
if
(
code
===
0
)
{
ElMessage
.
success
(
"启用成功!"
);
this
.
getUserList
();
}
else
{
ElMessage
.
error
(
reason
);
}
},
}
async
disableUser
(
row
)
{
const
{
user_id
,
reason
}
=
row
;
const
{
code
}
=
await
reqEditUser
({
user_status
:
2
,
user_id
});
if
(
code
===
0
)
{
ElMessage
.
success
(
"禁用成功!"
);
this
.
getUserList
();
}
else
{
ElMessage
.
error
(
reason
);
}
},
},
},
};
};
</
script
>
</
script
>
...
...
src/pages/components/Pagination.vue
View file @
82694a76
...
@@ -18,7 +18,7 @@ export default {
...
@@ -18,7 +18,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
currentPage
:
1
,
currentPage
:
1
,
page_size
:
1
0
page_size
:
2
0
}
}
},
},
methods
:
{
methods
:
{
...
...
src/router/index.js
View file @
82694a76
...
@@ -63,6 +63,9 @@ const routes = [
...
@@ -63,6 +63,9 @@ const routes = [
path
:
'/lifeNo'
,
path
:
'/lifeNo'
,
name
:
'LifeNo'
,
name
:
'LifeNo'
,
component
:
LifeNo
,
component
:
LifeNo
,
meta
:
{
requireAuth
:
true
}
},
},
{
{
path
:
'/lifeNoDetail'
,
path
:
'/lifeNoDetail'
,
...
@@ -78,7 +81,7 @@ const routes = [
...
@@ -78,7 +81,7 @@ const routes = [
{
{
path
:
'/userDetail'
,
path
:
'/userDetail'
,
name
:
'UserDetail'
,
name
:
'UserDetail'
,
component
:
UserDetail
,
component
:
UserDetail
},
},
//角色管理
//角色管理
{
{
...
@@ -86,13 +89,17 @@ const routes = [
...
@@ -86,13 +89,17 @@ const routes = [
name
:
'AddRole'
,
name
:
'AddRole'
,
component
:
AddRole
,
component
:
AddRole
,
meta
:
{
meta
:
{
requireAuth
:
true
,
requireAuth
:
true
}
}
},
},
{
{
path
:
'/roleManageRole'
,
path
:
'/roleManageRole'
,
name
:
'ManageRole'
,
name
:
'ManageRole'
,
component
:
ManageRole
component
:
ManageRole
,
meta
:
{
requireAuth
:
true
,
keepAlive
:
true
}
},
},
{
{
path
:
'/roleRoleDetail'
,
path
:
'/roleRoleDetail'
,
...
...
src/service/role.js
View file @
82694a76
import
axios
from
'../utils/request'
;
import
axios
from
'../utils/request'
;
// import qs from 'qs';
// import qs from 'qs';
//角色列表
//角色列表
export
async
function
getRole_list
(
page
,
page_size
,
role_status
,
role_name
)
{
export
async
function
getRole_list
(
parmasRole_list
)
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/role_list"
,
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/role_list"
,
parmasRole_list
)
page
,
page_size
,
role_status
,
role_name
})
return
res
;
return
res
;
}
}
//添加角色
//添加角色
export
async
function
getAdd_role
(
role_name
,
permissions
)
{
export
async
function
getAdd_role
(
parmasAdd_role
)
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/add_role"
,
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/add_role"
,
parmasAdd_role
)
role_name
,
permissions
})
return
res
;
return
res
;
}
}
//角色编辑
//角色编辑
export
async
function
getUpdate_role
(
op_cur_user
,
role_name
,
role_id
,
role_status
,
permissions
)
{
export
async
function
getUpdate_role
(
parmasUpdate_role
)
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/update_role"
,
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/update_role"
,
parmasUpdate_role
)
op_cur_user
,
role_name
,
role_id
,
role_status
,
permissions
})
return
res
;
return
res
;
}
}
//角色详情
//角色详情
...
@@ -37,9 +31,9 @@ export async function getDelete_role (role_id) {
...
@@ -37,9 +31,9 @@ export async function getDelete_role (role_id) {
}
}
//权限列表
//权限列表
export
async
function
getAll_role_list
(
user_
name
,
user_
email
)
{
export
async
function
getAll_role_list
(
user_email
)
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/get_role_list"
,
{
const
res
=
await
axios
.
post
(
"/api/v1/merchant/authority/get_role_list"
,
{
user_
name
,
user_
email
user_email
})
})
return
res
.
permissions
;
return
res
.
permissions
;
}
}
src/service/user.js
View file @
82694a76
...
@@ -25,11 +25,11 @@ export async function getUserDetail (params) {
...
@@ -25,11 +25,11 @@ export async function getUserDetail (params) {
}
}
export
async
function
editUser
(
data
)
{
export
async
function
editUser
(
data
)
{
return
await
axios
.
post
(
"/api/v1/users/edit"
,
{
data
}
);
return
await
axios
.
post
(
"/api/v1/users/edit"
,
data
);
}
}
export
async
function
createUser
(
data
)
{
export
async
function
createUser
(
data
)
{
return
await
axios
.
post
(
"/api/v1/users/new"
,
{
data
}
);
return
await
axios
.
post
(
"/api/v1/users/new"
,
data
);
}
}
//用户详情
//用户详情
export
async
function
getUser_detail
(
user_id
)
{
export
async
function
getUser_detail
(
user_id
)
{
...
...
src/utils/authUtil.js
View file @
82694a76
...
@@ -58,4 +58,4 @@ export function checkPathAuth (path) {
...
@@ -58,4 +58,4 @@ export function checkPathAuth (path) {
// const authObj = getPermissionObj();
// const authObj = getPermissionObj();
// const modules = Object.keys(authObj).map(ele => PERMISSIONNAME_PAGEMODULE[ele])
// const modules = Object.keys(authObj).map(ele => PERMISSIONNAME_PAGEMODULE[ele])
// return modules.filter(ele => !!ele)
// return modules.filter(ele => !!ele)
// }
// }
\ No newline at end of file
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