Ver Fonte

更新 views/devops/rbac 模块

reghao há 3 meses atrás
pai
commit
74202bccd9
3 ficheiros alterados com 88 adições e 21 exclusões
  1. 20 0
      src/api/devops.js
  2. 17 11
      src/views/devops/rbac/Role.vue
  3. 51 10
      src/views/devops/rbac/User.vue

+ 20 - 0
src/api/devops.js

@@ -317,6 +317,10 @@ export function getRoleMenu(roleId) {
   return get(devopsApi.getRoleList + '/menus?id=' + roleId)
 }
 
+export function updateRoleMenu(formData) {
+  return postForm(devopsApi.getRoleList + '/menus', formData)
+}
+
 export function getUserList() {
   return get(devopsApi.getUserList)
 }
@@ -328,3 +332,19 @@ export function getUserRole(userId) {
 export function getAddUserRoleList() {
   return get(devopsApi.getUserList + '/add')
 }
+
+export function addUser(formData) {
+  return postForm(devopsApi.getUserList + '/add', formData)
+}
+
+export function updateUserRole(formData) {
+  return postForm(devopsApi.getUserList + '/role', formData)
+}
+
+export function updateUserPasswd(formData) {
+  return postForm(devopsApi.getUserList + '/passwd', formData)
+}
+
+export function deleteUser(formData) {
+  return postForm(devopsApi.getUserList + '/delete', formData)
+}

+ 17 - 11
src/views/devops/rbac/Role.vue

@@ -111,7 +111,6 @@
                   :data="allMenus"
                   :props="defaultProps"
                   :default-checked-keys="roleMenuIds"
-                  :check-strictly="true"
                   show-checkbox
                   highlight-current
                   @check-change="handleCheckChange"
@@ -131,7 +130,7 @@
 </template>
 
 <script>
-import { getRoleList, getRoleMenu, getRoleUser } from '@/api/devops'
+import { getRoleList, getRoleMenu, getRoleUser, updateRoleMenu } from '@/api/devops'
 
 export default {
   name: 'Role',
@@ -149,7 +148,8 @@ export default {
         value: 'value'
       },
       allMenus: [],
-      roleMenuIds: []
+      roleMenuIds: [],
+      roleId: null
     }
   },
   created() {
@@ -182,11 +182,11 @@ export default {
       })
     },
     handleUpdateResource(index, row) {
+      this.roleId = row.id
       getRoleMenu((row.id)).then(resp => {
         if (resp.code === 0) {
           this.allMenus = resp.data.allMenus
           this.roleMenuIds = resp.data.roleMenuIds
-          console.log(this.roleMenuIds.length)
           this.showUpdateDialog = true
         } else {
           this.$message.error(resp.msg)
@@ -195,15 +195,11 @@ export default {
         this.$message.error(error.message)
       })
     },
-    handleDelete(index, row) {
-      this.$message.info('delete -> ' + row.name)
-    },
     handleCheckChange(data, checked, indeterminate) {
       const menuId = data.id
       if (checked) {
         this.roleMenuIds.push(menuId)
       } else {
-        // this.roleMenuIds.push(data.id)
         const index = this.roleMenuIds.indexOf(menuId)
         if (index > -1) {
           this.roleMenuIds.splice(index, 1)
@@ -211,9 +207,19 @@ export default {
       }
     },
     onUpdateMenu() {
-      this.showUpdateDialog = false
-      this.$message.info('update role menu')
-      console.log(this.roleMenuIds.length)
+      const formData = new FormData()
+      formData.append('id', this.roleId)
+      formData.append('menuIds', this.roleMenuIds)
+      updateRoleMenu(formData).then(resp => {
+        this.$message.info(resp.msg)
+      }).catch(error => {
+        this.$message.error(error.message)
+      }).finally(() => {
+        this.showUpdateDialog = false
+      })
+    },
+    handleDelete(index, row) {
+      this.$message.info('delete role ' + row.name)
     }
   }
 }

+ 51 - 10
src/views/devops/rbac/User.vue

@@ -161,7 +161,15 @@
 </template>
 
 <script>
-import { getAddUserRoleList, getUserList, getUserRole } from '@/api/devops'
+import {
+  addUser,
+  deleteUser,
+  getAddUserRoleList,
+  getUserList,
+  getUserRole,
+  updateUserPasswd,
+  updateUserRole
+} from '@/api/devops'
 
 export default {
   name: 'User',
@@ -240,13 +248,18 @@ export default {
       })
     },
     onAdd() {
-      this.showAddDialog = false
-      this.$message.info('add account')
-      console.log(this.addForm)
       const formData = new FormData()
-      formData.append('userId', this.addForm.username)
+      formData.append('username', this.addForm.username)
       formData.append('password', this.addForm.password)
       formData.append('roles', this.addForm.roles)
+      addUser(formData).then(resp => {
+        this.getData()
+        this.$message.info(resp.msg)
+      }).catch(error => {
+        this.$message.error(error.message)
+      }).finally(() => {
+        this.showAddDialog = false
+      })
     },
     handleUpdateRole(index, row) {
       this.updateRoleForm.userId = row.userId
@@ -266,8 +279,13 @@ export default {
       const formData = new FormData()
       formData.append('userId', this.updateRoleForm.userId)
       formData.append('roles', this.userRoleList)
-      console.log(this.userRoleList)
-      this.showUpdateRoleDialog = false
+      updateUserRole(formData).then(resp => {
+        this.$message.info(resp.msg)
+      }).catch(error => {
+        this.$message.error(error.message)
+      }).finally(() => {
+        this.showUpdateRoleDialog = false
+      })
     },
     handleUpdatePasswd(index, row) {
       this.updatePasswdForm.userId = row.userId
@@ -275,14 +293,37 @@ export default {
       this.showUpdatePasswdDialog = true
     },
     onUpdatePasswd() {
-      this.showUpdatePasswdDialog = false
-      this.$message.info('update passwd')
       const formData = new FormData()
       formData.append('userId', this.updatePasswdForm.userId)
       formData.append('password', this.updatePasswdForm.password)
+      updateUserPasswd(formData).then(resp => {
+        this.$message.info(resp.msg)
+      }).catch(error => {
+        this.$message.error(error.message)
+      }).finally(() => {
+        this.showUpdatePasswdDialog = false
+      })
     },
     handleDelete(index, row) {
-      this.$message.info('delete -> ' + row.username)
+      this.$confirm('确定要删除 ' + row.username + '?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        const formData = new FormData()
+        formData.append('userId', row.userId)
+        deleteUser(formData).then(resp => {
+          this.getData()
+          this.$message.info(resp.msg)
+        }).catch(error => {
+          this.$message.error(error.message)
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        })
+      })
     }
   }
 }