Explorar o código

feat: 不能删除自己的角色

louhangfei %!s(int64=2) %!d(string=hai) anos
pai
achega
c84ec77ced
Modificáronse 2 ficheiros con 10 adicións e 0 borrados
  1. 4 0
      src/store/modules/user.ts
  2. 6 0
      src/views/system/role/role.vue

+ 4 - 0
src/store/modules/user.ts

@@ -48,6 +48,10 @@ export const useUserStore = defineStore({
     getUserInfo(): any {
       return this.info;
     },
+    /** 获取角色类型,可能为多个 */
+    getRoleTypes(): string[] {
+      return this.info.roleType.split(',');
+    },
   },
   actions: {
     setTenantId(tenantId: number) {

+ 6 - 0
src/views/system/role/role.vue

@@ -62,12 +62,14 @@
   import { columns } from './columns';
   import { FileAddOutlined, SearchOutlined } from '@vicons/antd';
   import CreateDrawer from './CreateDrawer.vue';
+  import { useUserStore } from '@/store/modules/user';
 
   const message = ElMessage;
   const tableRef = ref();
   const createDrawerRef = ref();
   const drawerTitle = ref('添加角色');
   const treeData = ref([]);
+  const userStore = useUserStore();
 
   const params = reactive({
     roleName: '',
@@ -131,6 +133,10 @@
   }
 
   function handleDelete(record: Recordable) {
+    if (userStore.getRoleTypes.includes(String(record.roleId))) {
+      message.error('不能删除自己的角色');
+      return;
+    }
     delRole({ roleId: record.roleId }).then(() => {
       message.success('删除成功');
       reloadTable();