Explorar o código

管理员修改限制

zhangjie %!s(int64=3) %!d(string=hai) anos
pai
achega
5230ce9982

+ 8 - 0
src/components/RoleSelect.vue

@@ -26,6 +26,10 @@ export default {
     value: [String, Array],
     multiple: Boolean,
     styles: { type: String },
+    showAdmin: {
+      type: Boolean,
+      default: true,
+    },
   },
   data() {
     return {
@@ -37,6 +41,10 @@ export default {
     const res = await this.$http.post("/api/admin/sys/role/query");
     // console.log(res.data);
     this.optionList = res.data.data;
+    if (!this.showAdmin)
+      this.optionList = this.optionList.filter(
+        (item) => item.roleCode !== "ADMIN"
+      );
   },
   watch: {
     value: {

+ 13 - 6
src/features/system/UserManagement/UserManagement.vue

@@ -37,7 +37,7 @@
     </div>
 
     <el-table :data="tableData">
-      <el-table-column width="100" label="ID">
+      <el-table-column label="ID">
         <span slot-scope="scope">{{ scope.row.id }}</span>
       </el-table-column>
       <el-table-column
@@ -47,16 +47,16 @@
       >
         <span slot-scope="scope">{{ scope.row.orgName }}</span>
       </el-table-column>
-      <el-table-column width="100" label="姓名">
+      <el-table-column label="姓名">
         <span slot-scope="scope">{{ scope.row.name }}</span>
       </el-table-column>
       <el-table-column label="登录名">
         <span slot-scope="scope">{{ scope.row.loginName }}</span>
       </el-table-column>
-      <el-table-column width="100" label="角色">
+      <el-table-column label="角色">
         <span slot-scope="scope">{{ scope.row.roleNameStr }}</span>
       </el-table-column>
-      <el-table-column width="120" label="状态">
+      <el-table-column width="100" label="状态">
         <span slot-scope="scope">{{
           scope.row.enable | zeroOneEnableDisableFilter
         }}</span>
@@ -64,14 +64,20 @@
       <el-table-column width="120" label="更新人">
         <span slot-scope="scope">{{ scope.row.updateName }}</span>
       </el-table-column>
-      <el-table-column width="100" label="更新时间">
+      <el-table-column width="170" label="更新时间">
         <span slot-scope="scope">{{
           scope.row.updateTime | datetimeFilter
         }}</span>
       </el-table-column>
       <el-table-column :context="_self" label="操作" width="250" fixed="right">
         <div slot-scope="scope">
-          <el-button size="mini" type="primary" plain @click="edit(scope.row)">
+          <el-button
+            v-if="IS_SUPER_ADMIN || !scope.row.roleCode.includes('ADMIN')"
+            size="mini"
+            type="primary"
+            plain
+            @click="edit(scope.row)"
+          >
             编辑
           </el-button>
           <el-popconfirm
@@ -148,6 +154,7 @@ export default {
       pageSize: 10,
       total: 10,
       selectedUser: {},
+      IS_SUPER_ADMIN: this.$store.state.user.roleCodes.includes("SUPER_ADMIN"),
     };
   },
   async created() {

+ 6 - 1
src/features/system/UserManagement/UserManagementDialog.vue

@@ -60,7 +60,11 @@
       </el-row>
       <el-row>
         <el-form-item label="角色" prop="roleCode">
-          <RoleSelect v-model="form.roleCode" :multiple="true" />
+          <RoleSelect
+            v-model="form.roleCode"
+            :multiple="true"
+            :show-admin="IS_SUPER_ADMIN"
+          />
         </el-form-item>
       </el-row>
       <el-row>
@@ -185,6 +189,7 @@ export default {
       visible: false,
       form: {},
       loading: false,
+      IS_SUPER_ADMIN: this.$store.state.user.roleCodes.includes("SUPER_ADMIN"),
     };
   },
   watch: {