1
0
xiongzhu 7 лет назад
Родитель
Сommit
a9b5ce66cf

+ 3 - 0
src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.java

@@ -3,6 +3,7 @@ package com.izouma.awesomeadmin.dao;
 import java.util.List;
 import java.util.Map;
 
+import com.izouma.awesomeadmin.model.UserInfo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -44,5 +45,7 @@ public interface DepartInfoMapper {
     int clearUserDeparts(@Param("userId") Integer userId);
 
     String getUserDepartId(Integer id);
+
+    List<UserInfo> getDepartUsers(Integer departId);
 }
 

+ 3 - 0
src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.xml

@@ -334,5 +334,8 @@
 	<select id="getUserDepartId" resultType="java.lang.String">
 		SELECT group_concat(depart_id) FROM sys_user_depart WHERE user_id = #{id}
 	</select>
+	<select id="getDepartUsers" resultType="com.izouma.awesomeadmin.model.UserInfo">
+		select * from sys_user where id in (select user_id from sys_user_depart where depart_id = #{departId}) and del_flag = 'N'
+	</select>
 </mapper>
 

+ 3 - 0
src/main/java/com/izouma/awesomeadmin/service/DepartInfoService.java

@@ -5,6 +5,7 @@ import java.util.List;
 import com.izouma.awesomeadmin.dto.Page;
 import com.izouma.awesomeadmin.dto.TreeNode;
 import com.izouma.awesomeadmin.model.DepartInfo;
+import com.izouma.awesomeadmin.model.UserInfo;
 
 /**
  * depart_info service接口类
@@ -29,5 +30,7 @@ public interface DepartInfoService {
     List<DepartInfo> getParentList(Integer id);
 
     List<TreeNode> getDepartTree(boolean all, Integer userId);
+
+    List<UserInfo> getDepartUsers(Integer departId);
 }
 

+ 13 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/DepartInfoServiceImpl.java

@@ -196,6 +196,19 @@ public class DepartInfoServiceImpl implements DepartInfoService {
         return null;
     }
 
+    @Override
+    public List<UserInfo> getDepartUsers(Integer departId) {
+
+        logger.info("getDepartUsers");
+        try {
+            return departInfoMapper.getDepartUsers(departId);
+        } catch (Exception e) {
+            logger.error("getDepartUsers", e);
+        }
+
+        return null;
+    }
+
     private List removeDuplicate(List list) {
         HashSet h = new HashSet(list);
         list.clear();

+ 11 - 0
src/main/java/com/izouma/awesomeadmin/web/DepartInfoController.java

@@ -5,6 +5,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.izouma.awesomeadmin.dto.TreeNode;
+import com.izouma.awesomeadmin.model.UserInfo;
 import com.izouma.awesomeadmin.service.UserInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -131,5 +132,15 @@ public class DepartInfoController extends BaseController {
         return new Result(false, "获取失败");
     }
 
+    @RequestMapping(value = "/departUsers", method = RequestMethod.GET)
+    @ResponseBody
+    public Result departUsers(@RequestParam("departId") Integer departId) {
+        List<UserInfo> users = departInfoService.getDepartUsers(departId);
+        if (users != null) {
+            return new Result(true, users);
+        }
+        return new Result(false, "获取失败");
+    }
+
 }
 

+ 64 - 30
src/main/vue/src/pages/Departs.vue

@@ -1,30 +1,38 @@
-<!--suppress ALL -->
 <template>
-    <div style="width: 550px">
-        <el-tree
-            :data="menus"
-            :render-content="renderContent"
-            :highlight-current="true"
-            :expand-on-click-node="false"
-            node-key="id"
-            default-expand-all>
-        </el-tree>
-        <el-button size="mini" type="text" @click="addRootMenu" style="margin-left: 24px">添加</el-button>
-        <el-dialog :visible.sync="dialogVisible" title="添加菜单">
-            <el-form :model="menu" ref="form" size="small">
-                <el-form-item label="部门名称" prop="departName" :rules="[{required: true, message: '请填写部门名', trigger: 'blur'}]">
-                    <el-input v-model="menu.departName"></el-input>
-                </el-form-item>
-                <el-form-item label="部门代码" prop="departCode">
-                    <el-input v-model="menu.departCode"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer">
-                <el-button @click="dialogVisible = false" size="small">取消</el-button>
-                <el-button type="primary" @click="addMenu" :loading="loading" size="small">保存</el-button>
-            </div>
-        </el-dialog>
-    </div>
+    <el-container class="container">
+        <el-aside class="depart-tree" style="width: 400px;">
+            <el-tree
+                :data="menus"
+                :render-content="renderContent"
+                :highlight-current="true"
+                :expand-on-click-node="false"
+                @node-click="nodeClick"
+                node-key="id"
+                default-expand-all>
+            </el-tree>
+            <el-button size="mini" type="text" @click="addRootMenu" class="btn-add">添加</el-button>
+        </el-aside>
+        <el-main class="users">
+            <el-table :data="departUsers" :show-header="false">
+                <el-table-column prop="username" label="用户名"></el-table-column>
+            </el-table>
+            <el-dialog :visible.sync="dialogVisible" title="添加菜单">
+                <el-form :model="menu" ref="form" size="small">
+                    <el-form-item label="部门名称" prop="departName"
+                                  :rules="[{required: true, message: '请填写部门名', trigger: 'blur'}]">
+                        <el-input v-model="menu.departName"></el-input>
+                    </el-form-item>
+                    <el-form-item label="部门代码" prop="departCode">
+                        <el-input v-model="menu.departCode"></el-input>
+                    </el-form-item>
+                </el-form>
+                <div slot="footer">
+                    <el-button @click="dialogVisible = false" size="small">取消</el-button>
+                    <el-button type="primary" @click="addMenu" :loading="loading" size="small">保存</el-button>
+                </div>
+            </el-dialog>
+        </el-main>
+    </el-container>
 </template>
 <script>
     import axios from 'axios'
@@ -42,7 +50,8 @@
                 menu: {
                     departName: '',
                     departCode: ''
-                }
+                },
+                departUsers: []
             }
         },
         methods: {
@@ -82,7 +91,7 @@
                         }).then(res => {
                             this.loading = false;
                             if (res.success) {
-                                this.$message.success('保存成功')
+                                this.$message.success('保存成功');
                                 this.dialogVisible = false;
                                 this.getData();
                             } else {
@@ -109,7 +118,7 @@
                         }
                     }
                     return formData;
-                }
+                };
                 if (node.previousSibling) {
                     axios.all([axios.post(this.$baseUrl + '/departInfo/update', formData({
                         id: node.data.id,
@@ -131,7 +140,7 @@
                         }
                     }
                     return formData;
-                }
+                };
                 if (node.nextSibling) {
                     axios.all([axios.post(this.$baseUrl + '/departInfo/update', formData({
                         id: node.data.id,
@@ -166,6 +175,18 @@
                 }).catch(() => {
                 });
             },
+            nodeClick(data, node, component) {
+                this.$http.get({
+                    url: '/departInfo/departUsers',
+                    data: {
+                        departId: data.id
+                    }
+                }).then(res => {
+                    if (res.success) {
+                        this.departUsers = res.data
+                    }
+                })
+            },
             getData() {
                 this.$http.get({
                     url: '/departInfo/departTree'
@@ -211,6 +232,19 @@
     }
 </script>
 <style lang="less">
+    .container {
+        display: flex;
+        .depart-tree {
+            width: 400px;
+        }
+        .btn-add {
+            margin-left: 20px;
+        }
+        .users{
+            flex-grow: 1;
+        }
+    }
+
     .custom-tree-node {
         flex: 1;
         display: flex;

+ 6 - 0
src/main/vue/src/pages/User.vue

@@ -11,6 +11,9 @@
             <el-form-item prop="phone" label="手机">
                 <el-input v-model="formData.phone"></el-input>
             </el-form-item>
+            <el-form-item prop="phone" label="密码" v-if="!$route.query.id">
+                <el-input v-model="formData.password"></el-input>
+            </el-form-item>
             <el-form-item prop="roleId" label="角色">
                 <el-select v-model="formData.roleId" multiple placeholder="请选择" style="width: 100%;">
                     <el-option
@@ -127,6 +130,9 @@
                             }, trigger: 'blur'
                         }
                     ],
+                    password: [
+                        {required: true, message: '请输入密码', trigger: 'blur'},
+                    ],
                     roleId: [
                         {required: true, message: '请选择角色', trigger: 'blur'},
                     ]