diff --git a/core/core-frontend/src/api/permission/menu.ts b/core/core-frontend/src/api/permission/menu.ts new file mode 100644 index 0000000..bed76e6 --- /dev/null +++ b/core/core-frontend/src/api/permission/menu.ts @@ -0,0 +1,8 @@ +import request from '@/config/axios' + +export const getMenuTree = params => request.post({ url: '/menuInterface/getMenuTree', params }) // 查询用户 +export const addMenu = data => request.post({ url: '/menuInterface/addMenu', data }) // 新增用户 +export const updateMenuById = data => request.post({ url: '/menuInterface/updateMenuById', data }) //修改用户 +export const deleteMenuById = id => request.post({ url: '/menuInterface/deleteMenuById?id=' + id }) //删除 +// export const setStatus = params => request.post({ url: '/user/setStatus', params }) //设置有效状态 +// export const resetPassword = id => request.post({ url: '/user/resetPassword?id=' + id }) //重置密码 \ No newline at end of file diff --git a/core/core-frontend/src/api/permission/organization.ts b/core/core-frontend/src/api/permission/organization.ts index b9fb0f9..1dcd7a2 100644 --- a/core/core-frontend/src/api/permission/organization.ts +++ b/core/core-frontend/src/api/permission/organization.ts @@ -1,9 +1,8 @@ import request from '@/config/axios' -import { param } from 'jquery' export const getOrganizations = params => request.post({ url: '/organization/getOrganizations', params }) // 查询企业/部门 export const addOrganization = data => request.post({ url: '/organization/addOrganization', data }) // 新增企业/部门 export const updateOrganizationById = data => request.post({ url: '/organization/updateOrganizationById', data }) //修改企业/部门 export const setIsValid = params => request.post({ url: '/organization/setIsValid', params }) //设置有效状态 export const deleteById = id => request.delete({ url: '/organization/deleteById?id=' + id }) //删除 -export const getOrganizationById = data => request.post({ url: '/organization/getOrganizationById', data })//根据id查询部门 +export const getOrganizationById = appId => request.post({ url: '/organization/listOrganization?appId=' + appId })//查询所有 diff --git a/core/core-frontend/src/api/permission/role.ts b/core/core-frontend/src/api/permission/role.ts index 77f23c4..48a93cf 100644 --- a/core/core-frontend/src/api/permission/role.ts +++ b/core/core-frontend/src/api/permission/role.ts @@ -5,4 +5,6 @@ export const addRole = data => request.post({ url: '/role/addRole', data }) // export const updateRole = data => request.post({ url: '/role/updateRole', data }) //修改企业/部门 export const setIsValid = params => request.post({ url: '/role/setIsvaild', params }) //设置有效状态 export const deleteRoleById = id => request.post({ url: '/role/deleteRoleById?id=' + id }) //删除 -export const deleteRoleByIds = id => request.post({ url: '/role/deleteRoleByIds?ids=' + id }) //删除 \ No newline at end of file +export const deleteRoleByIds = id => request.post({ url: '/role/deleteRoleByIds?ids=' + id }) //删除 +export const permissionAssignment = params => request.post({ url: '/menuInterface/permissionAssignment', params }) //查询角色权限 +export const setMenuByRoleId = params => request.post({ url: '/menuInterface/setMenuByRoleId', params }) //设置角色权限 \ No newline at end of file diff --git a/core/core-frontend/src/api/permission/user.ts b/core/core-frontend/src/api/permission/user.ts index 77f23c4..eda4bc6 100644 --- a/core/core-frontend/src/api/permission/user.ts +++ b/core/core-frontend/src/api/permission/user.ts @@ -1,8 +1,9 @@ import request from '@/config/axios' -export const listRole = params => request.post({ url: '/role/listRole', params }) // 查询角色 -export const addRole = data => request.post({ url: '/role/addRole', data }) // 新增角色 -export const updateRole = data => request.post({ url: '/role/updateRole', data }) //修改企业/部门 -export const setIsValid = params => request.post({ url: '/role/setIsvaild', params }) //设置有效状态 -export const deleteRoleById = id => request.post({ url: '/role/deleteRoleById?id=' + id }) //删除 -export const deleteRoleByIds = id => request.post({ url: '/role/deleteRoleByIds?ids=' + id }) //删除 \ No newline at end of file +export const queryUsers = params => request.get({ url: '/user/queryUsers', params }) // 查询用户 +export const addUser = data => request.post({ url: '/user/addUser', data }) // 新增用户 +export const updateUser = data => request.post({ url: '/user/updateUser', data }) //修改用户 +export const setStatus = params => request.post({ url: '/user/setStatus', params }) //设置有效状态 +export const deleteUserById = id => request.post({ url: '/user/deleteUserById?id=' + id }) //删除 +export const deleteUserByIds = id => request.post({ url: '/user/deleteUserByIds?ids=' + id }) //删除 +export const resetPassword = id => request.post({ url: '/user/resetPassword?id=' + id }) //重置密码 \ No newline at end of file diff --git a/core/core-frontend/src/assets/svg/menuconfig_treeadd_white.svg b/core/core-frontend/src/assets/svg/menuconfig_treeadd_white.svg new file mode 100644 index 0000000..bd5e1d9 --- /dev/null +++ b/core/core-frontend/src/assets/svg/menuconfig_treeadd_white.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/core/core-frontend/src/assets/svg/reset_password_blue.svg b/core/core-frontend/src/assets/svg/reset_password_blue.svg new file mode 100644 index 0000000..0028219 --- /dev/null +++ b/core/core-frontend/src/assets/svg/reset_password_blue.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/core/core-frontend/src/assets/svg/user_connect_white.svg b/core/core-frontend/src/assets/svg/user_connect_white.svg new file mode 100644 index 0000000..bc107b3 --- /dev/null +++ b/core/core-frontend/src/assets/svg/user_connect_white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/core-frontend/src/router/index.ts b/core/core-frontend/src/router/index.ts index 49ca9f8..ab66a0e 100644 --- a/core/core-frontend/src/router/index.ts +++ b/core/core-frontend/src/router/index.ts @@ -212,6 +212,13 @@ export const routes: AppRouteRecordRaw[] = [ hidden: true, meta: {}, component: () => import('@/viewsnew/application/permissionset/index.vue') + }, + { + path: '/menuconfig', + name: 'menuconfig', + hidden: true, + meta: {}, + component: () => import('@/viewsnew/application/menuconfig/index.vue') } ] diff --git a/core/core-frontend/src/viewsnew/application/index.vue b/core/core-frontend/src/viewsnew/application/index.vue index ae4b6d9..94c09b8 100644 --- a/core/core-frontend/src/viewsnew/application/index.vue +++ b/core/core-frontend/src/viewsnew/application/index.vue @@ -104,7 +104,7 @@ function delClick(row){ - + diff --git a/core/core-frontend/src/viewsnew/application/menuconfig/header.vue b/core/core-frontend/src/viewsnew/application/menuconfig/header.vue new file mode 100644 index 0000000..0910b53 --- /dev/null +++ b/core/core-frontend/src/viewsnew/application/menuconfig/header.vue @@ -0,0 +1,104 @@ + + + + diff --git a/core/core-frontend/src/viewsnew/application/menuconfig/index.vue b/core/core-frontend/src/viewsnew/application/menuconfig/index.vue new file mode 100644 index 0000000..cef7299 --- /dev/null +++ b/core/core-frontend/src/viewsnew/application/menuconfig/index.vue @@ -0,0 +1,498 @@ + + + + + + \ No newline at end of file diff --git a/core/core-frontend/src/viewsnew/application/module/Leftmenu/index.vue b/core/core-frontend/src/viewsnew/application/module/Leftmenu/index.vue index c5a3477..3dfde66 100644 --- a/core/core-frontend/src/viewsnew/application/module/Leftmenu/index.vue +++ b/core/core-frontend/src/viewsnew/application/module/Leftmenu/index.vue @@ -357,7 +357,8 @@ function delTreeClic(){ // 删除 border-style: solid; border-color: rgba(51, 51, 51, 0); border-radius: 4px; - box-shadow:0 0 0 1px transparent ; + box-shadow:none ; + border: none !important; } :deep(.ed-input__inner){ background-color: rgba(37, 38, 38, 1); diff --git a/core/core-frontend/src/viewsnew/application/permissionset/organization/index.vue b/core/core-frontend/src/viewsnew/application/permissionset/organization/index.vue index a5f17d7..dc8e31f 100644 --- a/core/core-frontend/src/viewsnew/application/permissionset/organization/index.vue +++ b/core/core-frontend/src/viewsnew/application/permissionset/organization/index.vue @@ -7,7 +7,7 @@ import icon_permission_del_blue from '@/assets/svg/permission_del_blue.svg' import permission_table_edit_blue from '@/assets/svg/permission_table_edit_blue.svg' import permission_table_del_blue from '@/assets/svg/permission_table_del_blue.svg' import icon_add from '@/assets/svg/add_white.svg' -import type { FormInstance, FormRules } from 'element-plus' +import type { FormInstance } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus' import { Delete } from '@element-plus/icons-vue' import { ElTable,ElTree } from 'element-plus' @@ -735,6 +735,6 @@ function formatDateTime(dateTimeStr:any){ box-shadow: none; } .el-loading-mask{ - background-color: rgba(41, 41, 41, 0.9) + background-color: rgba(37,38, 38, 0.9); } \ No newline at end of file diff --git a/core/core-frontend/src/viewsnew/application/permissionset/role/index.vue b/core/core-frontend/src/viewsnew/application/permissionset/role/index.vue index e56e23b..fa96789 100644 --- a/core/core-frontend/src/viewsnew/application/permissionset/role/index.vue +++ b/core/core-frontend/src/viewsnew/application/permissionset/role/index.vue @@ -4,11 +4,11 @@ import permission_table_edit_blue from '@/assets/svg/permission_table_edit_blue. import permission_table_del_blue from '@/assets/svg/permission_table_del_blue.svg' import perission_role_blue from '@/assets/svg/perission_role_blue.svg' import icon_add from '@/assets/svg/add_white.svg' -import type { FormInstance, FormRules } from 'element-plus' -import { ElMessage, ElMessageBox } from 'element-plus' +import type { FormInstance } from 'element-plus' import { Delete } from '@element-plus/icons-vue' -import { ElTable } from 'element-plus' -import { listRole,addRole,updateRole,setIsValid,deleteRoleById,deleteRoleByIds } from '@/api/permission/role' +import { ElTable,ElTree,ElMessage, ElMessageBox } from 'element-plus' +import { listRole,addRole,updateRole,setIsValid,deleteRoleById,deleteRoleByIds,permissionAssignment,setMenuByRoleId } from '@/api/permission/role' +import { getMenuTree } from '@/api/permission/menu' const props = defineProps({ applicationId:String }) @@ -34,6 +34,14 @@ const typeoptions = ref([ { value: '1', label: '管理员' }, { value: '2', label: '普通用户' }, ]) +const configdialog = ref(false) +const treeData:any = ref([]) +const defaultProps = { + children: 'children', + label: 'name' +} +const treeloading = ref(false); +const treeRef = ref>() const submitForm = (formEl: FormInstance | undefined) => { if (!formEl) return formEl.validate((valid) => { @@ -83,7 +91,22 @@ onMounted(() => { gettable() }) function permissionset(row:any){ - + // const params = { + // roleId: row.id, + // appId: row.appId + // } + // permissionAssignment(params).then(res => { + // console.log(res,'权限设置') + // }) + const params = { + appId: props.applicationId, + name:'', + isdisplay:'' + } + getMenuTree(params).then(res => { + treeData.value = res.data + }) + configdialog.value = true } function gettable(){ tableloading.value = true @@ -200,6 +223,19 @@ function setisValid(row:any){ tableloading.value = false }) } +function confighandleClose(){ + configdialog.value = false +} +function consfigsubmit(){ + const params = { + id: '', + menuIds: '' + } + setMenuByRoleId(params).then(res => { + console.log(res,'权限设置') + }) + configdialog.value = false +} + + + + + @@ -323,4 +371,31 @@ function setisValid(row:any){ .ed-select-dropdown__item.selected{ color: #0089ff; } + .el-tree{ + background:#212121; + color: #ffffff; + font-size: 14px; + } + .el-tree-node__content{ + height: 40px; + line-height: 40px; + } + .el-tree-node__content:hover{ + background: rgba(61,158, 255, 0.1); + color: #0089FF; + } + .el-tree-node:focus>.el-tree-node__content{ + background:#212121; + color: #ffffff; + } + .el-text{ + color: #ffffff; + } + .el-tree-node__expand-icon{ + color: #ffffff; + } + .el-checkbox__inner{ + background:#212121; + border-color:#636363; + } \ No newline at end of file diff --git a/core/core-frontend/src/viewsnew/application/permissionset/user/index.vue b/core/core-frontend/src/viewsnew/application/permissionset/user/index.vue index ec5c3ef..0bad951 100644 --- a/core/core-frontend/src/viewsnew/application/permissionset/user/index.vue +++ b/core/core-frontend/src/viewsnew/application/permissionset/user/index.vue @@ -1,76 +1,81 @@ @@ -406,35 +420,45 @@ function depthandleClose() { align-items: center; justify-content: center; } - :deep(.ed-tree){ + :deep(.el-tree){ background:#212121; - height: calc(100vh - 210px); - margin-top: 20px; + height: calc(100vh - 145px); + margin-top: 5px; color: #ffffff; font-size: 14px; } - :deep(.ed-tree-node__content){ + :deep(.el-tree-node__content){ height: 40px; line-height: 40px; } - :deep(.ed-tree-node__content:hover){ + :deep(.el-tree-node__content:hover){ background: rgba(61,158, 255, 0.1); color: #0089FF; } - :deep(.ed-tree--highlight-current .ed-tree-node.is-current>.ed-tree-node__content){ + :deep(.custom-tree-node){ + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; + padding-right: 8px; + } + :deep(.el-tree-node__content>.ed-tree-node__expand-icon){ + padding: 2px; + } + :deep(.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content){ background: #409eff; color: #ffffff; } - :deep(.custom-tree-node){ - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - font-size: 14px; - padding-right: 8px; + :deep(.el-tree-node:focus>.el-tree-node__content){ + background:#212121; + color: #ffffff; } - :deep(.ed-tree-node__content>.ed-tree-node__expand-icon){ - padding: 2px; + :deep(.el-text){ + color: #ffffff; + } + :deep(.el-tree-node__expand-icon){ + color: #ffffff; } } .organization-rightbox{ @@ -579,5 +603,45 @@ function depthandleClose() { box-shadow: none; border: 1px solid #0089ff; } - + .ed-pagination__total{ + color: #F2F4F5; + } + .ed-pagination__jump{ + color: #F2F4F5; + } + .ed-pagination .ed-pager li{ + background: #252626; + border: 1px solid #434343 !important; + color:#fff !important; + } + .ed-pagination .ed-pager li:hover{ + background: #252626; + } + .ed-pagination button.is-disabled, .ed-pagination button:disabled { + color: #787878; + background-color: #252626; + border-color: #636363 !important; + } + .ed-pagination .btn-next[aria-disabled=true]:active, .ed-pagination .btn-next[aria-disabled=true]:hover, .ed-pagination .btn-prev[aria-disabled=true]:active, .ed-pagination .btn-prev[aria-disabled=true]:hover{ + color: #bbbfc4 !important; + background-color: #252626 !important; + border-color: #636363 !important; + } + .ed-pagination__jump{ + color:#fff !important; + } + .ed-pagination .btn-next:hover, .ed-pagination .btn-prev:hover{ + background: #252626 !important; + border: 1px solid #0089ff !important; + color:#0089ff !important; + } + .ed-pagination button{ + background: #252626; + border: 1px solid #434343 !important; + color:#fff !important; + } + .ed-pagination.is-background .btn-next.is-active, .ed-pagination.is-background .btn-prev.is-active, .ed-pagination.is-background .ed-pager li.is-active { + border-color: #0089ff !important; + color: #0089ff !important; + } \ No newline at end of file