mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-11 11:56:51 +08:00
角色和权限
This commit is contained in:
@@ -50,3 +50,10 @@ export function getRoleList(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取角色菜单列表
|
||||||
|
export function getRoleMenu(roleId) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/sysRoleEx/getRoleMenu?roleId=' + roleId),
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,26 +27,46 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<r-table :columns="tableConfig.columns" :data="tableData" :deletion="false" :total="tableConfig.total"
|
<r-table
|
||||||
@currentChange="handleCurrentChange" @sizeChange="handleSizeChange" :currentPage="tableConfig.currentPage"
|
:columns="tableConfig.columns"
|
||||||
:pageSize="tableConfig.pageSize" />
|
:data="tableData"
|
||||||
|
:deletion="false"
|
||||||
|
:total="tableConfig.total"
|
||||||
|
@currentChange="handleCurrentChange"
|
||||||
|
@sizeChange="handleSizeChange"
|
||||||
|
:currentPage="tableConfig.currentPage"
|
||||||
|
:pageSize="tableConfig.pageSize"
|
||||||
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 角色新增弹窗 -->
|
<!-- 角色新增弹窗 -->
|
||||||
<role-dialog :visible.sync="dialogVisible" :title="dialogTitle" :is-edit="isEdit" :is-view="isView"
|
<role-dialog :visible.sync="dialogVisible" :title="dialogTitle" :is-edit="isEdit" :is-view="isView" :role-data="currentRoleData" @submit="handleSubmit" />
|
||||||
:role-data="currentRoleData" @submit="handleSubmit" />
|
|
||||||
|
|
||||||
<!-- 角色权限 抽屉 -->
|
<!-- 角色权限 抽屉 -->
|
||||||
<el-drawer :visible.sync="permissionDrawer.visible" :title="permissionDrawer.title" size="60%">
|
<el-drawer :visible.sync="permissionDrawer.visible" :title="permissionDrawer.title" size="60%">
|
||||||
<el-tree :data="data" show-checkbox node-key="id" :default-expanded-keys="[2, 3]" :default-checked-keys="[5]"
|
<el-tree
|
||||||
:props="defaultProps">
|
:data="menuTree"
|
||||||
|
show-checkbox
|
||||||
|
node-key="id"
|
||||||
|
default-expand-all
|
||||||
|
:props="defaultProps"
|
||||||
|
:default-checked-keys="defaultCheckedKeys"
|
||||||
|
@check="handleCheckChange"
|
||||||
|
>
|
||||||
</el-tree>
|
</el-tree>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-button type="primary" size="medium" @click="handleOnSave">确定</el-button>
|
||||||
|
<el-button type="primary" plain size="medium" @click="handleOnClose">取消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getRolePage, deleteRole, queryRoleDetail, getMenuTree } from '@/api/system/role'
|
import { getRolePage, deleteRole, queryRoleDetail, updateRole, getRoleMenu } from '@/api/system/role'
|
||||||
|
import { getMenuTree } from '@/api/system/menu'
|
||||||
import RoleDialog from '@/views/system/role/components/RoleDialog'
|
import RoleDialog from '@/views/system/role/components/RoleDialog'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -69,12 +89,23 @@ export default {
|
|||||||
currentRoleData: {},
|
currentRoleData: {},
|
||||||
total: 0,
|
total: 0,
|
||||||
roleList: [],
|
roleList: [],
|
||||||
|
menuTree: [],
|
||||||
|
defaultProps: {
|
||||||
|
children: 'children',
|
||||||
|
label: 'menuName'
|
||||||
|
},
|
||||||
|
defaultCheckedKeys: [],
|
||||||
|
checkedKeys: [], // 存储当前选中的节点key
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
roleCodeLike: '',
|
roleCodeLike: '',
|
||||||
roleNameLike: ''
|
roleNameLike: ''
|
||||||
},
|
},
|
||||||
|
roleMenuForm: {
|
||||||
|
id: '',
|
||||||
|
sysMenuRoleDTOs: [{ menuId: '' }]
|
||||||
|
},
|
||||||
// 表格配置项
|
// 表格配置项
|
||||||
tableConfig: {
|
tableConfig: {
|
||||||
total: 0,
|
total: 0,
|
||||||
@@ -89,31 +120,28 @@ export default {
|
|||||||
isRedraw: true,
|
isRedraw: true,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h('div', [
|
return h('div', [
|
||||||
h(
|
h('el-button', {
|
||||||
'el-button',
|
props: { type: 'primary', size: 'mini', icon: 'el-icon-edit-outline', title: '编辑' },
|
||||||
{
|
class: 'normal-button',
|
||||||
props: { type: 'primary', size: 'mini', icon: 'el-icon-edit-outline', title: '编辑' },
|
on: { click: () => this.handleEdit(params.row) }
|
||||||
class: "normal-button",
|
}),
|
||||||
on: { click: () => this.handleEdit(params.row) }
|
|
||||||
},
|
|
||||||
),
|
|
||||||
h(
|
h(
|
||||||
'el-button',
|
'el-button',
|
||||||
{
|
{
|
||||||
props: { type: 'danger', size: 'mini', icon: 'el-icon-delete', title: '删除' },
|
props: { type: 'danger', size: 'mini', icon: 'el-icon-delete', title: '删除' },
|
||||||
class: "normal-button",
|
class: 'normal-button',
|
||||||
on: { click: () => this.handleDelete(params.row) }
|
on: { click: () => this.handleDelete(params.row) }
|
||||||
},
|
},
|
||||||
"删除"
|
'删除'
|
||||||
),
|
),
|
||||||
h(
|
h(
|
||||||
'el-button',
|
'el-button',
|
||||||
{
|
{
|
||||||
props: { type: 'primary', size: 'mini', icon: 'el-icon-tickets', title: '设置权限' },
|
props: { type: 'primary', size: 'mini', icon: 'el-icon-tickets', title: '设置权限' },
|
||||||
class: "normal-button",
|
class: 'normal-button',
|
||||||
on: { click: () => this.handlePermissionVisible(params.row) }
|
on: { click: () => this.handlePermissionVisible(params.row) }
|
||||||
},
|
},
|
||||||
"设置权限"
|
'设置权限'
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@@ -128,11 +156,46 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async handlePermissionVisible(row) {
|
async handlePermissionVisible(row) {
|
||||||
|
this.getRoleMenuData(row.id)
|
||||||
|
this.roleMenuForm.id = row.id
|
||||||
this.permissionDrawer.visible = true
|
this.permissionDrawer.visible = true
|
||||||
|
|
||||||
// const response = await getMenuTree()
|
getMenuTree({})
|
||||||
// console.log(response);
|
.then(response => {
|
||||||
|
if (response.code === '0') {
|
||||||
|
this.menuTree = response.content.content
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.msg || '获取菜单列表失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
this.$message.error('获取菜单列表出错', error)
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getRoleMenuData(roleId) {
|
||||||
|
getRoleMenu(roleId)
|
||||||
|
.then(response => {
|
||||||
|
if (response.code === '0') {
|
||||||
|
const nodes = response.content.content
|
||||||
|
nodes.forEach(node => {
|
||||||
|
this.defaultCheckedKeys.push(node.id)
|
||||||
|
if (node.children !== null) {
|
||||||
|
node.children.forEach(v => {
|
||||||
|
this.defaultCheckedKeys.push(v.id)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(this.defaultCheckedKeys, 'getRoleMenu')
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.msg || '获取角色菜单失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
this.$message.error('获取角色菜单出错', error)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 获取角色列表
|
// 获取角色列表
|
||||||
getRoleList() {
|
getRoleList() {
|
||||||
@@ -188,7 +251,6 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error('获取角色详情出错:', error)
|
|
||||||
this.$message.error('获取角色详情出错')
|
this.$message.error('获取角色详情出错')
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
@@ -237,6 +299,38 @@ export default {
|
|||||||
.catch(() => {
|
.catch(() => {
|
||||||
this.$message.info('已取消删除')
|
this.$message.info('已取消删除')
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
// 关闭权限抽屉
|
||||||
|
handleOnClose() {
|
||||||
|
this.permissionDrawer.visible = false
|
||||||
|
},
|
||||||
|
// 选中状态变化时的处理
|
||||||
|
handleCheckChange(checkedNodes, object) {
|
||||||
|
this.checkedKeys = object.checkedKeys
|
||||||
|
},
|
||||||
|
// 修改权限
|
||||||
|
handleOnSave() {
|
||||||
|
this.checkedKeys.forEach(menuId => {
|
||||||
|
if (menuId !== '' && menuId !== null) {
|
||||||
|
this.roleMenuForm.sysMenuRoleDTOs.push({ menuId: menuId })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(this.roleMenuForm, '角色权限表单')
|
||||||
|
updateRole(this.roleMenuForm)
|
||||||
|
.then(response => {
|
||||||
|
if (response.code === '0') {
|
||||||
|
this.$message.success(this.isEdit ? '修改成功' : '添加成功')
|
||||||
|
delete this.roleMenuForm.id
|
||||||
|
delete this.roleMenuForm.sysMenuRoleDTOs
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.msg || (this.isEdit ? '修改失败' : '添加失败'))
|
||||||
|
delete this.roleMenuForm.id
|
||||||
|
delete this.roleMenuForm.sysMenuRoleDTOs
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.permissionDrawer.visible = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user