diff --git a/src/api/admin/role.ts b/src/api/admin/role.ts index b47cb38..e9fae5a 100644 --- a/src/api/admin/role.ts +++ b/src/api/admin/role.ts @@ -109,3 +109,11 @@ export function validateRoleName(rule: any, value: any, callback: any, isEdit: b } }); } + + +export const listAllRole = () => { + return request({ + url: '/admin/role/listAllRole', + method: 'get', + }); +}; \ No newline at end of file diff --git a/src/layout/navBars/breadcrumb/user.vue b/src/layout/navBars/breadcrumb/user.vue index fe1c395..c40c605 100644 --- a/src/layout/navBars/breadcrumb/user.vue +++ b/src/layout/navBars/breadcrumb/user.vue @@ -65,6 +65,7 @@ {{ $t('user.dropdown1') }} {{ $t('user.dropdown2') }} + 切换角色 {{ $t('user.dropdown5') }} @@ -73,6 +74,8 @@ + + @@ -91,6 +94,9 @@ import { useMsg } from '/@/stores/msg'; import { fetchUserMessageList } from '/@/api/admin/message'; import {useFlowJob} from "/@/flow/stores/flowJob"; + +const ChangeRoleRef=ref() +const ChangeRole = defineAsyncComponent(() => import('/@/views/admin/system/role/change-role.vue')) // 引入组件 const GlobalWebsocket = defineAsyncComponent(() => import('/@/components/Websocket/index.vue')); const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/userNews.vue')); @@ -190,7 +196,10 @@ const onHandleCommandClick = (path: string) => { } else if (path === 'personal') { // 打开个人页面 personalDrawerRef.value.open(); - } else { + }else if(path === 'changeRole'){ + ChangeRoleRef.value.open() + } + else { router.push(path); } }; diff --git a/src/utils/request.ts b/src/utils/request.ts index 09d49f4..cbe8d2b 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -12,6 +12,8 @@ export enum CommonHeaderEnum { 'ENC_FLAG' = 'Enc-Flag', 'AUTHORIZATION' = 'Authorization', 'VERSION' = 'VERSION', + 'ROLE_CODE'='ROLE_CODE', + 'RRID'='RRID' } /** @@ -50,6 +52,15 @@ service.interceptors.request.use( if (tenantId) { config.headers![CommonHeaderEnum.TENANT_ID] = tenantId; } + //统一增加 当前角色CODE + const roleCode = Session.getRoleCode() + if(roleCode){ + config.headers![CommonHeaderEnum.ROLE_CODE] = roleCode; + } + const roleId = Session.getRoleId() + if(roleId){ + config.headers![CommonHeaderEnum.RRID] = roleId; + } // 增加 gray_version 请求头 const version = import.meta.env.VITE_GRAY_VERSION; diff --git a/src/utils/storage.ts b/src/utils/storage.ts index 99d8b7f..95407cb 100644 --- a/src/utils/storage.ts +++ b/src/utils/storage.ts @@ -80,4 +80,10 @@ export const Session = { getTenant() { return Local.get('tenantId') ? Local.get('tenantId') : 1; }, + getRoleCode(){ + return Local.get('roleCode') ? Local.get('roleCode') : ''; + }, + getRoleId(){ + return Local.get('roleId') ? Local.get('roleId') : ''; + } }; diff --git a/src/views/admin/system/role/change-role.vue b/src/views/admin/system/role/change-role.vue new file mode 100644 index 0000000..027511b --- /dev/null +++ b/src/views/admin/system/role/change-role.vue @@ -0,0 +1,67 @@ + + + + + + + + + {{item.roleName}} + + + + + + + + + 关 闭 + + + + + + + \ No newline at end of file diff --git a/src/views/admin/system/role/changeRole-fir.vue b/src/views/admin/system/role/changeRole-fir.vue new file mode 100644 index 0000000..7894ea1 --- /dev/null +++ b/src/views/admin/system/role/changeRole-fir.vue @@ -0,0 +1,59 @@ + + + + + 登录角色选择 + + + + + {{item.roleName}} + + + + + + + + \ No newline at end of file diff --git a/src/views/admin/system/role/form.vue b/src/views/admin/system/role/form.vue index 5df4233..77f56a7 100644 --- a/src/views/admin/system/role/form.vue +++ b/src/views/admin/system/role/form.vue @@ -87,7 +87,7 @@ const dataForm = reactive({ const dataRules = ref({ roleName: [ { required: true, message: '角色名称不能为空', trigger: 'blur' }, - { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }, + { min: 3, max: 50, message: '长度在 3 到 50 个字符', trigger: 'blur' }, { validator: (rule: any, value: any, callback: any) => { validateRoleName(rule, value, callback, form.roleId !== ''); @@ -97,7 +97,7 @@ const dataRules = ref({ ], roleCode: [ { required: true, message: '角色标识不能为空', trigger: 'blur' }, - { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }, + { min: 3, max: 50, message: '长度在 3 到 50 个字符', trigger: 'blur' }, { validator: rule.validatorCapital, trigger: 'blur' }, { validator: (rule: any, value: any, callback: any) => { diff --git a/src/views/admin/system/role/i18n/zh-cn.ts b/src/views/admin/system/role/i18n/zh-cn.ts index f229164..2b2d2fd 100644 --- a/src/views/admin/system/role/i18n/zh-cn.ts +++ b/src/views/admin/system/role/i18n/zh-cn.ts @@ -2,7 +2,7 @@ export default { sysrole: { index: '#', roleName: '角色名称', - inputRoleNameTip: '请输入角色名称', + inputRoleNameTip: '请输入角色或编码名称', permissionTip: '授权', deleteDisabledTip: '角色不允许删除', mustCheckOneTip: '必须选择【分配权限】菜单', diff --git a/src/views/admin/system/role/index.vue b/src/views/admin/system/role/index.vue index abc21c0..c885438 100644 --- a/src/views/admin/system/role/index.vue +++ b/src/views/admin/system/role/index.vue @@ -4,7 +4,7 @@ - + diff --git a/src/views/admin/system/user/form.vue b/src/views/admin/system/user/form.vue index ede49ba..8eeca5a 100644 --- a/src/views/admin/system/user/form.vue +++ b/src/views/admin/system/user/form.vue @@ -40,7 +40,7 @@ - + diff --git a/src/views/admin/system/user/personal.vue b/src/views/admin/system/user/personal.vue index 714d3d0..4983af8 100644 --- a/src/views/admin/system/user/personal.vue +++ b/src/views/admin/system/user/personal.vue @@ -189,7 +189,7 @@ const validatorPassword2 = (rule: any, value: any, callback: any) => { } }; const validatorScore = (rule: any, value: any, callback: any) => { - if (score.value <= 1) { + if (score.value <= 2) { callback(new Error(t('personal.passwordScore'))); } else { callback();