傅行帆 6 年前
父节点
当前提交
751aaccfaf

+ 14
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/RoleController.java 查看文件

@@ -97,4 +97,18 @@ public class RoleController extends BaseController {
97 97
 		responseBean = roleService.updateRole(sysRole, userElement);
98 98
 		return responseBean;
99 99
 	}
100
+	
101
+	@ApiOperation(value = "删除角色", notes = "删除角色")
102
+	@ApiImplicitParams({
103
+			@ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "X-Auth-Token", value = "Token"),
104
+			@ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "Login-Type", value = "值为 web"),
105
+			@ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "sysRole", value = "idArray角色id集合")
106
+	})
107
+	@RequestMapping(value = "/role/delete", method = RequestMethod.POST)
108
+	public ResponseBean deleteRole(@RequestBody SysRole sysRole, HttpSession session) {
109
+		ResponseBean responseBean = new ResponseBean();
110
+		UserElement userElement = getUserElement(session);
111
+		responseBean = roleService.deleteRole(sysRole, userElement);
112
+		return responseBean;
113
+	}
100 114
 }

+ 6
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/SysRole.java 查看文件

@@ -79,4 +79,10 @@ public class SysRole implements Serializable {
79 79
      */
80 80
     @TableField(exist = false)
81 81
     private List<Integer> menuArray;
82
+    
83
+    /**
84
+     * 角色ID集合
85
+     */
86
+    @TableField(exist = false)
87
+    private List<Integer> idArray;
82 88
 }

+ 8
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/RoleServiceI.java 查看文件

@@ -40,4 +40,12 @@ public interface RoleServiceI extends IService<SysRole> {
40 40
 	 * @return
41 41
 	 */
42 42
 	ResponseBean updateRole(SysRole sysRole, UserElement userElement);
43
+	
44
+	/**
45
+	 * 批量删除角色
46
+	 * @param sysRole
47
+	 * @param userElement
48
+	 * @return
49
+	 */
50
+	ResponseBean deleteRole(SysRole sysRole, UserElement userElement);
43 51
 }

+ 28
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/RoleServiceImpl.java 查看文件

@@ -179,4 +179,32 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, SysRole> implements
179 179
 		responseBean.addSuccess(size);
180 180
 		return responseBean;
181 181
 	}
182
+	
183
+	/**
184
+	 * 批量删除角色
185
+	 *
186
+	 * @param sysRole
187
+	 * @param userElement
188
+	 * @return
189
+	 */
190
+	@Override
191
+	public ResponseBean deleteRole(SysRole sysRole, UserElement userElement) {
192
+		ResponseBean responseBean = new ResponseBean();
193
+		List<Integer> sysRoleIdList = sysRole.getIdArray();
194
+		//删除角色
195
+		int size = roleMapper.deleteBatchIds(sysRoleIdList);
196
+		if (size < 1){
197
+			responseBean.addError("删除失败");
198
+			return responseBean;
199
+		}
200
+		//维护角色与menu的关系表,全部删除
201
+		sysRoleIdList.stream().forEach(roleId -> {
202
+			QueryWrapper<SysRoleMenu> queryWrapper = new QueryWrapper<>();
203
+			queryWrapper.eq("role_id", roleId);
204
+			queryWrapper.eq("community_id", userElement.getCommunityId());
205
+			sysRoleMenuMapper.delete(queryWrapper);
206
+		});
207
+		responseBean.addSuccess(size);
208
+		return responseBean;
209
+	}
182 210
 }

+ 11
- 0
VUECODE/smart-property-manage/src/api/role.js 查看文件

@@ -45,3 +45,14 @@ export function getRoleInfo(id) {
45 45
     method: 'get'
46 46
   })
47 47
 }
48
+
49
+export function deleteRoles(ids) {
50
+  return request({
51
+    url: '/role/delete',
52
+    method: 'post',
53
+    data: {
54
+      idArray: ids
55
+    }
56
+  })
57
+}
58
+

+ 7
- 0
VUECODE/smart-property-manage/src/router/index.js 查看文件

@@ -206,6 +206,13 @@ export const constantRouterMap = [
206 206
         name: 'role-edit',
207 207
         hidden: true,
208 208
         meta: { title: '修改角色', icon: 'table' }
209
+      },
210
+      {
211
+        path: '/account/info',
212
+        component: () => import('@/views/account/info/role-info'),
213
+        name: 'role-info',
214
+        hidden: true,
215
+        meta: { title: '查看角色', icon: 'table' }
209 216
       }
210 217
     ]
211 218
   },

+ 10
- 1
VUECODE/smart-property-manage/src/store/modules/role.js 查看文件

@@ -1,4 +1,4 @@
1
-import { fetchList, fetchMenuList, addRoleInfo, getRoleInfo, updateRoleInfo } from '@/api/role'
1
+import { fetchList, fetchMenuList, addRoleInfo, getRoleInfo, updateRoleInfo, deleteRoles } from '@/api/role'
2 2
 
3 3
 const transaction = {
4 4
   namespaced: true,
@@ -72,6 +72,15 @@ const transaction = {
72 72
         })
73 73
       })
74 74
     },
75
+    DeleteRoles({ commit }, ids) {
76
+      return new Promise((resolve, reject) => {
77
+        deleteRoles(ids).then(response => {
78
+          resolve(response)
79
+        }).catch(error => {
80
+          reject(error)
81
+        })
82
+      })
83
+    }
75 84
   }
76 85
 }
77 86
 

+ 2
- 2
VUECODE/smart-property-manage/src/views/account/add/role-add.vue 查看文件

@@ -64,7 +64,7 @@ export default {
64 64
     }),
65 65
     ...mapActions('role', [
66 66
       'FetchMenuList',
67
-      'AddMenuInfo'
67
+      'AddRoleInfo'
68 68
     ]),
69 69
     submitForm(formName) { // 提交
70 70
       // 获取选中的树形节点 key
@@ -96,7 +96,7 @@ export default {
96 96
         spinner: 'el-icon-loading',
97 97
         background: 'rgba(0, 0, 0, 0.7)'
98 98
       })
99
-      this.AddMenuInfo(this.ruleForm).then((res) => {
99
+      this.AddRoleInfo(this.ruleForm).then((res) => {
100 100
         if (res.code === '0') {
101 101
           this.$message({
102 102
             message: res.message,

+ 145
- 0
VUECODE/smart-property-manage/src/views/account/info/role-info.vue 查看文件

@@ -0,0 +1,145 @@
1
+<template>
2
+  <div class="root">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="add-ruleForm">
4
+      <el-form-item label="角色名称" prop="roleName">
5
+        <el-input :disabled="true" v-model="ruleForm.roleName"/>
6
+      </el-form-item>
7
+      <el-form-item label="角色描述" prop="description">
8
+        <el-input :disabled="true" v-model="ruleForm.description"/>
9
+      </el-form-item>
10
+      <el-form-item label="资源权限" prop="menuArray">
11
+        <el-tree
12
+          ref="tree"
13
+          :data="menuList"
14
+          show-checkbox
15
+          node-key="id"
16
+          :default-expanded-keys="ruleForm.menuArray"
17
+          :default-checked-keys="ruleForm.menuArray"
18
+          :props="defaultProps">
19
+        </el-tree>
20
+      </el-form-item> 
21
+      <el-form-item>
22
+        <el-button type="primary" @click="goEditRole">去修改</el-button>
23
+      </el-form-item>
24
+    </el-form>
25
+  </div>
26
+</template>
27
+
28
+<script>
29
+import { mapState, mapActions, mapMutations } from 'vuex'
30
+import waves from '@/directive/waves' // Waves directive
31
+import { parseTime } from '@/utils'
32
+
33
+export default {
34
+  computed: {
35
+    ...mapState('role', {
36
+      menuList: s => s.menuList
37
+    })
38
+  },
39
+  data() {
40
+    return {
41
+      ruleForm: {
42
+        id: '',
43
+        roleName: '',
44
+        description: '',
45
+        menuArray: []
46
+      },
47
+      rules: {
48
+        roleName: [
49
+          { required: true, message: '请输入角色名称', trigger: 'blur' }
50
+        ],
51
+        menuArray: [
52
+          { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
53
+        ]
54
+      },
55
+      defaultProps: {
56
+        children: 'children',
57
+        label: 'menuName',
58
+        disabled: () => true
59
+      }
60
+    }
61
+  },
62
+  created(){
63
+    this.ruleForm.id = this.$route.params.id
64
+    this.getDataById()
65
+    this.getMenuList()
66
+  },
67
+  methods: {
68
+    ...mapMutations('role', {
69
+    }),
70
+    ...mapActions('role', [
71
+      'FetchMenuList',
72
+      'UpdateRoleInfo',
73
+      'GetRoleInfo'
74
+    ]),
75
+    submitForm(formName) { // 提交
76
+      // 获取选中的树形节点 key
77
+      this.ruleForm.menuArray = this.$refs.tree.getCheckedKeys()
78
+      console.log(this.ruleForm.menuArray)
79
+      this.$refs[formName].validate((valid) => {
80
+        if (valid) {
81
+          this.updateRole()
82
+        } else {
83
+          console.log('error submit!!')
84
+          return false
85
+        }
86
+      })
87
+    },
88
+    getMenuList() {
89
+      this.FetchMenuList().then(() => {
90
+      }).catch(() => {
91
+        console.log('get list error')
92
+      })
93
+    },
94
+    resetForm(formName) { // 重置
95
+      this.$refs[formName].resetFields()
96
+    },
97
+    updateRole() {
98
+      // 加载框
99
+      const loading = this.$loading({
100
+        lock: true,
101
+        text: 'Loading',
102
+        spinner: 'el-icon-loading',
103
+        background: 'rgba(0, 0, 0, 0.7)'
104
+      })
105
+      this.UpdateRoleInfo(this.ruleForm).then((res) => {
106
+        if (res.code === '0') {
107
+          this.$message({
108
+            message: res.message,
109
+            type: 'success'
110
+          })
111
+          this.$router.push({ name: 'role-index' })
112
+          loading.close()
113
+          return
114
+        }
115
+        this.$message.error(res.message)
116
+        loading.close()
117
+      }).catch(() => {
118
+        loading.close()
119
+        console.log('error updateRole')
120
+      })
121
+    },
122
+    goEditRole(){
123
+      this.$router.push({ name: 'role-edit', params: { id: this.ruleForm.id }})
124
+    },
125
+    getDataById() {
126
+      this.GetRoleInfo(this.ruleForm.id).then((res) => {
127
+        this.ruleForm.roleName = res.data.roleName
128
+        this.ruleForm.description = res.data.description
129
+        this.ruleForm.menuArray = res.data.menuArray
130
+      }).catch(() => {
131
+        console.log('error init role')
132
+      })
133
+    }
134
+  }
135
+}
136
+</script>
137
+
138
+<style scoped>
139
+.add-ruleForm{
140
+  width: 800px;
141
+  margin-left: auto;
142
+  margin-right: auto;
143
+  margin-top: 50px;
144
+}
145
+</style>

+ 26
- 2
VUECODE/smart-property-manage/src/views/account/role.vue 查看文件

@@ -112,7 +112,8 @@ export default {
112 112
     ...mapMutations('role', {
113 113
     }),
114 114
     ...mapActions('role', [
115
-      'FetchRoleList'
115
+      'FetchRoleList',
116
+      'DeleteRoles'
116 117
     ]),
117 118
     setCurrent(item) {
118 119
       this.setDetail({ ...item })
@@ -181,6 +182,29 @@ export default {
181 182
       }
182 183
       this.$router.push({ name: 'role-edit', params: { id: ids[0] }})
183 184
     },
185
+    deleteRole(){
186
+      const ids = this.selectedIds
187
+      if (ids < 1) {
188
+        this.$message.error('请选择数据!')
189
+        return
190
+      }
191
+      this.listLoading = true
192
+      this.DeleteRoles(ids).then((res) => {
193
+        if (res.code === '0') {
194
+          this.$message({
195
+            message: res.message,
196
+            type: 'success'
197
+          })
198
+          this.getList()
199
+          this.listLoading = false
200
+          return
201
+        }
202
+      }).catch(() => {
203
+        this.loading = false
204
+        console.log('get list error')
205
+      })
206
+
207
+    },
184 208
     sortByID(order) {
185 209
       if (order === 'ascending') {
186 210
         this.listQuery.sort = '+id'
@@ -200,7 +224,7 @@ export default {
200 224
       this.getEditDistrictList()
201 225
     },
202 226
     handleLook(id) {
203
-      this.$router.push({ name: 'transaction-info', params: { id: id }})
227
+      this.$router.push({ name: 'role-info', params: { id: id }})
204 228
     },
205 229
     handleCreate() {
206 230
       this.resetDetail()