Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
9
91isoft_vue_manage
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
杨硕
91isoft_vue_manage
Commits
594fd89b
Commit
594fd89b
authored
Jan 03, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
角色页面菜单权限父子关联问题修改
parent
f3120b2a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
85 additions
and
49 deletions
+85
-49
index.vue
src/views/system/role/index.vue
+64
-28
index.vue
src/views/system/user/index.vue
+21
-21
No files found.
src/views/system/role/index.vue
View file @
594fd89b
...
...
@@ -87,12 +87,12 @@
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"200px"
>
<
template
slot-scope=
"scope"
>
<coolbutton
style=
"color: #49cec9"
:type=
"typeParent"
:name=
"updateName"
:size=
"size"
:haspermi=
"hasUpdatePerm"
@
btn-click=
"handleUpdate(scope.row)"
/>
<!--
<el-button-->
<!-- v-hasPermi="['sys:role:update']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleMenu(scope.row)"-->
<!-- >数据权限
</el-button>
--
>
<el-button
v-hasPermi=
"['sys:role:update']"
size=
"mini"
type=
"text"
@
click=
"handleMenu(scope.row)"
>
数据权限
</el-button
>
<el-button
size=
"mini"
type=
"text"
...
...
@@ -125,19 +125,19 @@
<el-radio
v-model=
"form.flag"
label=
"1"
>
启用
</el-radio>
<el-radio
v-model=
"form.flag"
label=
"0"
>
停用
</el-radio>
</el-form-item>
<!-- <el-form-item label="菜单权限">--
>
<!-- <el-tree-->
<!-- ref="menu"-->
<!-- class="tree-border"-->
<!-- :data="menuOptions"-->
<!-- show-checkbox-->
<!-- node-key="id"-->
<!-- empty-text="加载中,请稍后"-->
<!-- :props="defaultProps"-->
<!-- :default-expanded-keys="updateMenu"-->
<!-- />-->
<!--<!– @check-change="handleMenuCheckChange"–>--
>
<!-- </el-form-item>--
>
<el-form-item
label=
"菜单权限"
>
<el-tree
ref=
"menu"
:check-strictly=
"true"
:data=
"menuOptions"
show-checkbox
node-key=
"id"
empty-text=
"加载中,请稍后"
:props=
"defaultProps"
:default-expanded-keys=
"updateMenu"
@
check=
"handleCheck"
/
>
</el-form-item
>
<el-form-item
label=
"备注"
>
<el-input
v-model
.
trim=
"form.remarks"
maxlength=
"200"
show-word-limit
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
...
...
@@ -151,11 +151,12 @@
<!-- 分配角色数据权限对话框 -->
<el-dialog
class=
"roleDialog"
@
close=
'getList'
title=
"数据权限信息"
:visible
.
sync=
"openDataScope"
width=
"900px"
append-to-body
>
append-to-body
@
close=
"getList"
>
<el-row>
<el-col
style=
"width: 43%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"70px"
>
...
...
@@ -163,8 +164,8 @@
<el-input
v-model
.
trim=
"form.roleName"
placeholder=
"请输入角色名称"
show-word-limit
:maxlength=
"30"
:disabled=
"true"
/>
</el-form-item>
<el-table
highlight-current-row
v-loading=
"loading"
highlight-current-row
:data=
"menuList"
row-key=
"businessId"
:tree-props=
"{children: 'children', hasChildren: 'hasChildren'}"
...
...
@@ -192,10 +193,10 @@
<el-col
style=
"width: 55%"
>
<el-form
:model=
"form"
label-width=
"80px"
>
<el-form-item
label=
"菜单名称"
prop=
"roleName"
>
<el-input
v-model=
"form.menuName"
placeholder=
"未选择菜单名称"
disabled
style
=
"width: 300px"
/>
<el-input
v-model=
"form.menuName"
placeholder=
"未选择菜单名称"
disabled
style
=
"width: 300px"
/>
</el-form-item>
<el-form-item
label=
"权限范围"
style
=
"width: 300px"
>
<el-select
v-model=
"form.dataScope"
style
=
"width: 300px"
>
<el-form-item
label=
"权限范围"
style
=
"width: 300px"
>
<el-select
v-model=
"form.dataScope"
style
=
"width: 300px"
>
<el-option
v-for=
"item in dataScopeOptions"
:key=
"item.value"
...
...
@@ -217,7 +218,7 @@
:default-expanded-keys=
"customSizeTree"
@
check-change=
"handleDeptCheckChange"
/>
<!-- 修改 :check-strictly="!form.deptCheckStrictly" 改为 check-strictly -->
<!-- 修改 :check-strictly="!form.deptCheckStrictly" 改为 check-strictly -->
</el-form-item>
</el-form>
</el-col>
...
...
@@ -369,6 +370,40 @@ export default {
this
.
getList
()
},
methods
:
{
/** 菜单权限check事件*/
handleCheck
(
data
,
{
checkedKeys
})
{
if
(
checkedKeys
.
includes
(
data
.
id
))
{
// 选中
const
node
=
this
.
$refs
.
menu
.
getNode
(
data
.
id
)
// getNode(node-key)
this
.
selectChildren
(
data
,
true
)
// 选中子节点
this
.
parentNodesChange
(
node
)
// 选中父节点
}
else
{
this
.
selectChildren
(
data
,
false
)
// 取消子节点
}
},
/** 选中子节点*/
selectChildren
(
data
,
checked
)
{
data
&&
data
.
children
&&
data
.
children
.
map
(
item
=>
{
this
.
$refs
.
menu
.
setChecked
(
item
.
id
,
checked
)
if
(
data
.
children
)
{
this
.
selectChildren
(
item
,
checked
)
}
})
},
/** 父级递归*/
parentNodesChange
(
node
)
{
// console.log(node);
if
(
node
.
parent
)
{
for
(
const
key
in
node
)
{
if
(
key
==
'id'
)
{
// console.log(node[key]);
this
.
$refs
.
menu
.
setChecked
(
node
,
true
)
}
}
if
(
node
.
parent
&&
node
.
id
!==
0
)
{
this
.
parentNodesChange
(
node
.
parent
)
}
}
},
/** 查询角色列表 */
getList
()
{
this
.
loading
=
true
...
...
@@ -420,6 +455,7 @@ export default {
},
// 树状图节点点击选中事件
handleMenuCheckChange
(
data
,
check
,
subCheck
)
{
// data为选中节点信息,check选中状态
console
.
log
(
'树状图节点点击选中事件'
,
data
,
check
)
if
(
data
.
children
!==
undefined
&&
data
.
children
!==
null
)
{
// 是否包含子节点
this
.
checkNode
(
data
.
children
,
check
)
// 调用checkNode方法
}
...
...
@@ -633,14 +669,14 @@ export default {
if
(
valid
)
{
this
.
form
.
menuCheckStrictly
=
0
if
(
this
.
form
.
businessId
!==
undefined
)
{
//
this.form.menuIds = this.getMenuAllCheckedKeys()
this
.
form
.
menuIds
=
this
.
getMenuAllCheckedKeys
()
updateRole
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
'修改成功'
)
this
.
open
=
false
this
.
getList
()
})
}
else
{
//
this.form.menuIds = this.getMenuAllCheckedKeys()
this
.
form
.
menuIds
=
this
.
getMenuAllCheckedKeys
()
addRole
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
'新增成功'
)
this
.
open
=
false
...
...
src/views/system/user/index.vue
View file @
594fd89b
...
...
@@ -475,16 +475,16 @@ export default {
queryParams
:
{
page
:
1
,
rows
:
10
,
username
:
undefined
,
email
:
undefined
,
phone
:
undefined
,
nickName
:
undefined
,
idNumber
:
undefined
,
userType
:
undefined
,
allowLogin
:
undefined
,
flag
:
undefined
,
deptId
:
undefined
,
name
:
undefined
username
:
''
,
email
:
''
,
phone
:
''
,
nickName
:
''
,
idNumber
:
''
,
userType
:
''
,
allowLogin
:
''
,
flag
:
''
,
deptId
:
''
,
name
:
''
},
// 表单校验
rules
:
{
...
...
@@ -657,18 +657,18 @@ export default {
// 表单重置
reset
()
{
this
.
form
=
{
userId
:
undefined
,
deptId
:
undefined
,
phone
:
undefined
,
username
:
undefined
,
userType
:
undefined
,
nickName
:
undefined
,
password
:
undefined
,
idNumber
:
undefined
,
email
:
undefined
,
sex
:
undefined
,
userId
:
''
,
deptId
:
''
,
phone
:
''
,
username
:
''
,
userType
:
''
,
nickName
:
''
,
password
:
''
,
idNumber
:
''
,
email
:
''
,
sex
:
''
,
flag
:
1
,
remark
:
undefined
,
remark
:
''
,
postIds
:
[],
roleIds
:
[]
}
...
...
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