Explorar o código

新增权限控制删除,新增按钮

gemercheung hai 4 meses
pai
achega
9e4c518dc4
Modificáronse 3 ficheiros con 8 adicións e 7 borrados
  1. 1 1
      src/store/user.ts
  2. 2 2
      src/view/scene.vue
  3. 5 4
      src/view/users.vue

+ 1 - 1
src/store/user.ts

@@ -12,7 +12,7 @@ export enum UserStatus {
 }
 export const userStatus = ref<UserStatus>(UserStatus.UNKNOWN);
 
-export const isSuper = computed(() => user.value ? user.value.roles.filter(item => item.roleKey === "super_admin").length > 0 : false)
+export const isSuper = computed(() => user.value ? user.value.roles.filter(item => ['super_admin', 'system_admin'].includes(item.roleKey)).length > 0 : false)
 
 export const login = async (props: LoginProps) => {
   const data = await loginFetch({

+ 2 - 2
src/view/scene.vue

@@ -129,7 +129,7 @@
               type="danger"
               @click="delHandler(row.sceneId)"
               size="small"
-              v-if="row.calcStatus !== SceneStatus.RUN"
+              v-if="row.calcStatus !== SceneStatus.RUN && isSuper"
             >
               删除
             </el-button>
@@ -166,9 +166,9 @@ import { ElMessageBox } from "element-plus";
 import { gotoScene } from "@/store/scene";
 import TexToolTip from "@/components/tex-tooltip.vue";
 import { debounce } from "@/util";
+import { isSuper } from '@/store/user';
 
 const props = defineProps<{ tableProps?: { [key in string]: any }; simple?: boolean }>();
-
 const initProps: ScenePageProps = {
   pageNum: 1,
   pageSize: 10,

+ 5 - 4
src/view/users.vue

@@ -15,7 +15,7 @@
             <el-button type="primary" plain @click="pageProps = { ...initProps }">
               重置
             </el-button>
-            <el-button type="primary" @click="addHandler"> 创建用户 </el-button>
+            <el-button v-if="isSuper" type="primary" @click="addHandler"> 创建用户 </el-button>
           </el-form-item>
         </el-form>
       </div>
@@ -45,7 +45,7 @@
             <el-button link type="primary" @click="editHandler(row)" size="small">
               编辑
             </el-button>
-            <el-button link type="danger" @click="delHandler(row)" size="small" v-if="!isMe(row.userId)">
+            <el-button link type="danger" @click="delHandler(row)" size="small" v-if="!isMe(row.userId) && isSuper">
               删除
             </el-button>
           </template>
@@ -77,11 +77,12 @@ import { ElMessageBox } from "element-plus";
 import { debounce } from "@/util";
 import { user } from "@/store/user";
 
-const isSuper = computed(() => user.value.roles.filter(item => item.roleKey === "super_admin").length > 0)
+const isSuper = computed(() => user.value.roles.filter(item => ['super_admin', 'system_admin'].includes(item.roleKey)).length > 0)
+
 const isMe = computed(() => (id: any) => {
   return id === user.value.userId
 })
-console.log('isSuper', isSuper)
+
 const initProps: PageProps<Partial<Pick<UserType, "userName" | "orgName">>> = {
   pageNum: 1,
   pageSize: 10,