Преглед на файлове

fix: 团队管理权限控制修正

- add.vue: 新建按钮+抽屉权限由 read 改为 insertuser
- edit.vue: 编辑按钮+抽屉权限由 read 改为 updateuser
- RemoveTeam.vue: 删除按钮增加 deleterole 权限检查
- TeamManage.vue: rolenames 列增加 selectrole 权限检查
- add/edit.vue: 角色配置区由 selectrole 控制显示,
  insertrole/updaterole 控制是否可编辑
- add/edit.vue: roleids 表单验证改为动态规则
Zachary преди 2 дни
родител
ревизия
2c32d0c276

+ 1 - 1
src/SManagement/user/team-manage/TeamManage.vue

@@ -13,7 +13,7 @@
       @listCreate="list">
       <div slot="custom"></div>
       <template v-slot:tbList="scope">
-        <div v-if="scope.data.column.columnname == 'rolenames'">
+        <div v-if="scope.data.column.columnname == 'rolenames' && tool.checkAuth($route.name,'selectrole')">
           <el-tag v-for="(item,index) in scope.data.column.data[[scope.data.column.columnname]]" :key="index" style="margin-right:10px">{{$t(item)}}</el-tag>
         </div>
         <div v-else>

+ 3 - 1
src/SManagement/user/team-manage/components/RemoveTeam.vue

@@ -1,6 +1,8 @@
 <template>
   <div class="remove">
-    <img src="@/assets/remove_btn.png" alt="" @click.stop="dialogVisible=true" slot="icon">
+  <div v-if="tool.checkAuth($route.name,'deleterole')" slot="icon">
+    <img src="@/assets/remove_btn.png" alt="" @click.stop="dialogVisible=true">
+  </div>
     <el-dialog :title="$t('提示')" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
       <span>{{$t(`该角色已授权,是否确认删除`)}}?</span>
       <span slot="footer" class="dialog-footer">

+ 22 - 17
src/SManagement/user/team-manage/components/add.vue

@@ -1,7 +1,7 @@
 <template>
 <div>
-  <el-button type="primary" size="small" @click="dialogVisible = true">{{$t('新 建')}}</el-button>
-  <el-drawer append-to-body :title="$t('新建')" :visible.sync="dialogVisible" :before-close="handleClose" v-if="tool.checkAuth($route.name,'read')" size="800px">
+  <el-button type="primary" size="small" v-if="tool.checkAuth($route.name,'insertuser')" @click="dialogVisible = true">{{$t('新 建')}}</el-button>
+  <el-drawer append-to-body :title="$t('新建')" :visible.sync="dialogVisible" :before-close="handleClose" v-if="tool.checkAuth($route.name,'insertuser')" size="800px">
     <div class="drawer__panel">
       <el-row :gutter="20">
         <el-form ref="formInfo" :model="param.content" :rules="rules" :label-width="tool.onlyZh('90px')" label-position="right">
@@ -25,9 +25,9 @@
               <el-input v-model="param.content.email" :placeholder="$t('请输入')" size="small"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="12" v-if="tool.checkAuth($route.name,'selectrole')">
             <el-form-item :label="`${$t(`角色配置`)}:`" prop="roleids">
-              <el-select style="width:100%" v-model="param.content.roleids" multiple :placeholder="$t('请选择')" size="small">
+              <el-select style="width:100%" v-model="param.content.roleids" multiple :disabled="!tool.checkAuth($route.name,'insertrole')" :placeholder="$t('请选择')" size="small">
                 <el-option
                   v-for="(item,index) in checkList"
                   :key="index"
@@ -68,29 +68,34 @@ export default {
           }
       },
       dialogVisible: false,
-      rules: {
+      checkList: []
+    };
+  },
+  props:['editTarget'],
+  components: {
+  },
+  computed: {
+    rules () {
+      let rules = {
         name: [
           { required: true, message: this.$t('请输入名称'), trigger: 'blur' },
         ],
         phonenumber: [
           { required: true, message: this.$t('请输入手机号'), trigger: 'blur' },
-          { pattern:/^1[3-9]\d{9}$/, message: this.$t('请输入正确手机号码'),trigger: 'blur' }
+          { pattern:/^1[3-9]\\d{9}$/, message: this.$t('请输入正确手机号码'),trigger: 'blur' }
         ],
         email: [
           { required: true, message: this.$t('请输入电子邮箱'), trigger: 'blur' },
-          { pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/, message: this.$t('请输入正确电子邮箱'),trigger: 'blur' }
-        ],
-        roleids: [
+          { pattern: /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/, message: this.$t('请输入正确电子邮箱'),trigger: 'blur' }
+        ]
+      }
+      if (this.tool.checkAuth(this.$route.name, 'insertrole')) {
+        rules.roleids = [
           { required: true, message: this.$t('请选择你的权限'), trigger: 'blur' }
         ]
-      },
-      checkList: []
-    };
-  },
-  props:['editTarget'],
-  components: {
-  },
-  computed: {
+      }
+      return rules
+    }
   },
   watch: {
     editTarget: {

+ 21 - 16
src/SManagement/user/team-manage/components/edit.vue

@@ -1,7 +1,7 @@
 <template>
 <div>
-  <el-button type="text" size="small" @click="onShow(dialogVisible = true)">{{$t('编 辑')}}</el-button>
-  <el-drawer append-to-body :title="$t('编辑')" :visible.sync="dialogVisible" :before-close="handleClose" v-if="tool.checkAuth($route.name,'read')" size="800px">
+  <el-button type="text" size="small" v-if="tool.checkAuth($route.name,'updateuser')" @click="onShow(dialogVisible = true)">{{$t('编 辑')}}</el-button>
+  <el-drawer append-to-body :title="$t('编辑')" :visible.sync="dialogVisible" :before-close="handleClose" v-if="tool.checkAuth($route.name,'updateuser')" size="800px">
     <div class="drawer__panel">
       <el-row :gutter="20">
         <el-form ref="formInfo" :model="form" :rules="rules" :label-width="tool.onlyZh('90px')" label-position="right">
@@ -25,9 +25,9 @@
               <el-input v-model="form.email" :placeholder="$t('请输入')" size="small"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="12" v-if="tool.checkAuth($route.name,'selectrole')">
             <el-form-item :label="`${$t(`角色配置`)}:`" prop="roleids">
-              <el-select style="width:100%" v-model="form.roleids" multiple :placeholder="$t('请选择')" size="small">
+              <el-select style="width:100%" v-model="form.roleids" multiple :disabled="!tool.checkAuth($route.name,'updaterole')" :placeholder="$t('请选择')" size="small">
                 <el-option
                   v-for="(item,index) in checkList"
                   :key="index"
@@ -70,28 +70,33 @@ export default {
         "roleids":[]
       },
       dialogVisible: false,
-      rules: {
+      checkList: []
+    };
+  },
+  components: {
+  },
+  computed: {
+    rules () {
+      let rules = {
         name: [
           { required: true, message: this.$t('请输入名称'), trigger: 'blur' },
         ],
         phonenumber: [
           { required: true, message: this.$t('请输入手机号'), trigger: 'blur' },
-          { pattern:/^1[3-9]\d{9}$/, message: this.$t('请输入正确手机号码'),trigger: 'blur' }
+          { pattern:/^1[3-9]\\d{9}$/, message: this.$t('请输入正确手机号码'),trigger: 'blur' }
         ],
         email: [
           { required: true, message: this.$t('请输入电子邮箱'), trigger: 'blur' },
-          { pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/, message: this.$t('请输入正确电子邮箱'),trigger: 'blur' }
-        ],
-        roleids: [
+          { pattern: /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/, message: this.$t('请输入正确电子邮箱'),trigger: 'blur' }
+        ]
+      }
+      if (this.tool.checkAuth(this.$route.name, 'updaterole')) {
+        rules.roleids = [
           { required: true, message: this.$t('请选择你的权限'), trigger: 'blur' }
         ]
-      },
-      checkList: []
-    };
-  },
-  components: {
-  },
-  computed: {
+      }
+      return rules
+    }
   },
   watch: {
     editTarget: {