Jelajahi Sumber

角色管理新增角色bug修复

pixel 4 tahun lalu
induk
melakukan
7b0a012ae5
1 mengubah file dengan 123 tambahan dan 94 penghapusan
  1. 123 94
      web/src/view/superAdmin/authority/authority.vue

+ 123 - 94
web/src/view/superAdmin/authority/authority.vue

@@ -16,29 +16,48 @@
       <el-table-column fixed="right" label="操作" width="460">
         <template slot-scope="scope">
           <el-button @click="opdendrawer(scope.row)" size="small" type="primary">设置权限</el-button>
-          <el-button @click="addAuthority(scope.row.authorityId)" size="small" type="primary" icon="el-icon-plus">新增子角色</el-button>
-          <el-button @click="copyAuthority(scope.row)" size="small" type="primary" icon="el-icon-copy-document" >拷贝</el-button>
-          <el-button @click="editAuthority(scope.row)" size="small" type="primary" icon="el-icon-edit">编辑</el-button>
-          <el-button @click="deleteAuth(scope.row)" size="small" type="danger" icon="el-icon-delete">删除</el-button>
-
+          <el-button
+            @click="addAuthority(scope.row.authorityId)"
+            icon="el-icon-plus"
+            size="small"
+            type="primary"
+          >新增子角色</el-button>
+          <el-button
+            @click="copyAuthority(scope.row)"
+            icon="el-icon-copy-document"
+            size="small"
+            type="primary"
+          >拷贝</el-button>
+          <el-button
+            @click="editAuthority(scope.row)"
+            icon="el-icon-edit"
+            size="small"
+            type="primary"
+          >编辑</el-button>
+          <el-button
+            @click="deleteAuth(scope.row)"
+            icon="el-icon-delete"
+            size="small"
+            type="danger"
+          >删除</el-button>
         </template>
       </el-table-column>
     </el-table>
     <!-- 新增角色弹窗 -->
-    <el-dialog :visible.sync="dialogFormVisible" :title="dialogTitle">
+    <el-dialog :title="dialogTitle" :visible.sync="dialogFormVisible">
       <el-form :model="form" :rules="rules" ref="authorityForm">
-        <el-form-item label="父级角色"  prop="parentId">
-           <el-cascader
-              :disabled="dialogType=='add'"
-              v-model="form.parentId"
-              :options="AuthorityOption"
-              :show-all-levels="false"
-              :props="{ checkStrictly: true,label:'authorityName',value:'authorityId',disabled:'disabled',emitPath:false}"
-              filterable>
-              </el-cascader>
+        <el-form-item label="父级角色" prop="parentId">
+          <el-cascader
+            :disabled="dialogType=='add'"
+            :options="AuthorityOption"
+            :props="{ checkStrictly: true,label:'authorityName',value:'authorityId',disabled:'disabled',emitPath:false}"
+            :show-all-levels="false"
+            filterable
+            v-model="form.parentId"
+          ></el-cascader>
         </el-form-item>
         <el-form-item label="角色ID" prop="authorityId">
-          <el-input autocomplete="off" :disabled="dialogType=='edit'" v-model="form.authorityId"></el-input>
+          <el-input :disabled="dialogType=='edit'" autocomplete="off" v-model="form.authorityId"></el-input>
         </el-form-item>
         <el-form-item label="角色姓名" prop="authorityName">
           <el-input autocomplete="off" v-model="form.authorityName"></el-input>
@@ -51,15 +70,15 @@
     </el-dialog>
 
     <el-drawer :visible.sync="drawer" :with-header="false" size="40%" title="角色配置" v-if="drawer">
-      <el-tabs class="role-box" type="border-card" :before-leave="autoEnter">
+      <el-tabs :before-leave="autoEnter" class="role-box" type="border-card">
         <el-tab-pane label="角色菜单">
-          <Menus :row="activeRow" ref="menus"/>
+          <Menus :row="activeRow" ref="menus" />
         </el-tab-pane>
         <el-tab-pane label="角色api">
-          <apis :row="activeRow"  ref="apis"/>
+          <apis :row="activeRow" ref="apis" />
         </el-tab-pane>
         <el-tab-pane label="资源权限">
-          <Datas :authority="tableData" :row="activeRow"  ref="datas"/>
+          <Datas :authority="tableData" :row="activeRow" ref="datas" />
         </el-tab-pane>
       </el-tabs>
     </el-drawer>
@@ -74,7 +93,7 @@ import {
   deleteAuthority,
   createAuthority,
   updateAuthority,
-  copyAuthority 
+  copyAuthority
 } from '@/api/authority'
 
 import Menus from '@/view/superAdmin/authority/components/menus'
@@ -87,16 +106,18 @@ export default {
   mixins: [infoList],
   data() {
     return {
-      AuthorityOption:[{
-          authorityId:"0",
-          authorityName:"根角色"
-        }],
+      AuthorityOption: [
+        {
+          authorityId: '0',
+          authorityName: '根角色'
+        }
+      ],
       listApi: getAuthorityList,
       drawer: false,
-      dialogType:"add",
+      dialogType: 'add',
       activeRow: {},
       activeUserId: 0,
-      dialogTitle:"新增角色",
+      dialogTitle: '新增角色',
       dialogFormVisible: false,
       apiDialogFlag: false,
       copyForm: {},
@@ -124,10 +145,10 @@ export default {
     Datas
   },
   methods: {
-    autoEnter(activeName, oldActiveName){
-      const paneArr = ["menus","apis","datas"]
-      if(oldActiveName){
-        if(this.$refs[paneArr[oldActiveName]].needConfirm){
+    autoEnter(activeName, oldActiveName) {
+      const paneArr = ['menus', 'apis', 'datas']
+      if (oldActiveName) {
+        if (this.$refs[paneArr[oldActiveName]].needConfirm) {
           this.$refs[paneArr[oldActiveName]].enterAndNext()
           this.$refs[paneArr[oldActiveName]].needConfirm = false
         }
@@ -136,13 +157,13 @@ export default {
     // 拷贝角色
     copyAuthority(row) {
       this.setOptions()
-      this.dialogTitle = "拷贝角色"
-      this.dialogType = "copy"
-      for(let k in this.form) {
+      this.dialogTitle = '拷贝角色'
+      this.dialogType = 'copy'
+      for (let k in this.form) {
         this.form[k] = row[k]
       }
       this.copyForm = row
-      this.dialogFormVisible = true;
+      this.dialogFormVisible = true
     },
     opdendrawer(row) {
       this.drawer = true
@@ -174,8 +195,10 @@ export default {
     },
     // 初始化表单
     initForm() {
-      this.$refs.authorityForm.resetFields()
-      this.form =  {
+      if (this.$refs.authorityForm) {
+        this.$refs.authorityForm.resetFields()
+      }
+      this.form = {
         authorityId: '',
         authorityName: '',
         parentId: '0'
@@ -212,7 +235,7 @@ export default {
                   this.closeDialog()
                 }
               }
-              break;
+              break
             case 'edit':
               {
                 const res = await updateAuthority(this.form)
@@ -225,82 +248,88 @@ export default {
                   this.closeDialog()
                 }
               }
-              break;
-              case 'copy': {
-                const data = {
-                  "authority": {
-                      "authorityId": "string",
-                      "authorityName": "string",
-                      "datauthorityId": [],
-                      "parentId": "string",
-                  },
-                      "oldAuthorityId": 0
-                }
-                data.authority.authorityId = this.form.authorityId
-                data.authority.authorityName = this.form.authorityName
-                data.authority.parentId = this.form.parentId
-                data.authority.dataAuthorityId = this. copyForm.dataAuthorityId
-                data.oldAuthorityId = this.copyForm.authorityId
-                const res = await copyAuthority(data)
-                if(res.code == 0) {
-                  this.$message({
-                    type: 'success',
-                    message: '复制成功!'
-                  })
-                  this.getTableData()
-                }
+              break
+            case 'copy': {
+              const data = {
+                authority: {
+                  authorityId: 'string',
+                  authorityName: 'string',
+                  datauthorityId: [],
+                  parentId: 'string'
+                },
+                oldAuthorityId: 0
+              }
+              data.authority.authorityId = this.form.authorityId
+              data.authority.authorityName = this.form.authorityName
+              data.authority.parentId = this.form.parentId
+              data.authority.dataAuthorityId = this.copyForm.dataAuthorityId
+              data.oldAuthorityId = this.copyForm.authorityId
+              const res = await copyAuthority(data)
+              if (res.code == 0) {
+                this.$message({
+                  type: 'success',
+                  message: '复制成功!'
+                })
+                this.getTableData()
               }
+            }
           }
-          
+
           this.initForm()
           this.dialogFormVisible = false
         }
       })
     },
-    setOptions(){
-       this.AuthorityOption = [{
-          authorityId:"0",
-          authorityName:"根角色"
-        }]
-      this.setAuthorityOptions(this.tableData,this.AuthorityOption,false)
-    },
-    setAuthorityOptions(AuthorityData,optionsData,disabled){
-      AuthorityData&&AuthorityData.map(item=>{
-        if(item.children&&item.children.length){
-          const option = {
-            authorityId:item.authorityId,
-            authorityName:item.authorityName,
-            disabled:disabled||item.authorityId == this.form.authorityId,
-            children:[]
+    setOptions() {
+      this.AuthorityOption = [
+        {
+          authorityId: '0',
+          authorityName: '根角色'
         }
-          this.setAuthorityOptions(item.children,option.children,disabled||item.authorityId == this.form.authorityId)
-          optionsData.push(option)
-        }else{
-          const option = {
-              authorityId:item.authorityId,
-              authorityName:item.authorityName,
-              disabled:disabled||item.authorityId == this.form.authorityId,
+      ]
+      this.setAuthorityOptions(this.tableData, this.AuthorityOption, false)
+    },
+    setAuthorityOptions(AuthorityData, optionsData, disabled) {
+      AuthorityData &&
+        AuthorityData.map(item => {
+          if (item.children && item.children.length) {
+            const option = {
+              authorityId: item.authorityId,
+              authorityName: item.authorityName,
+              disabled: disabled || item.authorityId == this.form.authorityId,
+              children: []
+            }
+            this.setAuthorityOptions(
+              item.children,
+              option.children,
+              disabled || item.authorityId == this.form.authorityId
+            )
+            optionsData.push(option)
+          } else {
+            const option = {
+              authorityId: item.authorityId,
+              authorityName: item.authorityName,
+              disabled: disabled || item.authorityId == this.form.authorityId
+            }
+            optionsData.push(option)
           }
-          optionsData.push(option)
-        }
-      })
+        })
     },
     // 增加角色
     addAuthority(parentId) {
       this.initForm()
-      this.dialogTitle = "新增角色"
-      this.dialogType = "add"
+      this.dialogTitle = '新增角色'
+      this.dialogType = 'add'
       this.form.parentId = parentId
       this.setOptions()
       this.dialogFormVisible = true
-      
     },
     // 编辑角色
     editAuthority(row) {
       this.setOptions()
-      this.dialogTitle = "编辑角色"
-      this.dialogType = "edit"
-      for(let key in this.form){
+      this.dialogTitle = '编辑角色'
+      this.dialogType = 'edit'
+      for (let key in this.form) {
         this.form[key] = row[key]
       }
       this.setOptions()