Ver Fonte

新增个人信息修改

RuoYi há 7 anos atrás
pai
commit
6f6a9c8ca0

+ 3 - 1
pom.xml

@@ -23,7 +23,9 @@
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		<java.version>1.8</java.version>
 		<java.version>1.8</java.version>
 		<shiro.version>1.3.2</shiro.version>
 		<shiro.version>1.3.2</shiro.version>
-		<thymeleaf-extras-shiro.version>1.2.1</thymeleaf-extras-shiro.version>
+		<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
+    	<thymeleaf-layout-dialect.version>2.0.1</thymeleaf-layout-dialect.version>
+		<thymeleaf-extras-shiro.version>2.0.0</thymeleaf-extras-shiro.version>
 		<mybatis-spring-boot-starter.version>1.1.1</mybatis-spring-boot-starter.version>
 		<mybatis-spring-boot-starter.version>1.1.1</mybatis-spring-boot-starter.version>
 		<fastjson.version>1.2.31</fastjson.version>
 		<fastjson.version>1.2.31</fastjson.version>
 		<druid.version>1.0.28</druid.version>		
 		<druid.version>1.0.28</druid.version>		

+ 4 - 2
sql/ry_20180423.sql → sql/ry_20180505.sql

@@ -44,6 +44,8 @@ create table sys_user (
   user_name 		varchar(30) 	default '' 				   comment '用户昵称',
   user_name 		varchar(30) 	default '' 				   comment '用户昵称',
   email  			varchar(100) 	default '' 				   comment '用户邮箱',
   email  			varchar(100) 	default '' 				   comment '用户邮箱',
   phonenumber  		varchar(20) 	default '' 				   comment '手机号码',
   phonenumber  		varchar(20) 	default '' 				   comment '手机号码',
+  sex  		        char(20) 	    default '0' 			   comment '用户性别:0男,1女',
+  avatar            varchar(100) 	default '' 				   comment '头像路径',
   password 			varchar(100) 	default '' 				   comment '密码',
   password 			varchar(100) 	default '' 				   comment '密码',
   salt 				varchar(100) 	default '' 				   comment '盐加密',
   salt 				varchar(100) 	default '' 				   comment '盐加密',
   user_type         char(1)         default 'N'                comment '类型:Y默认用户,N非默认用户',
   user_type         char(1)         default 'N'                comment '类型:Y默认用户,N非默认用户',
@@ -59,8 +61,8 @@ create table sys_user (
 -- ----------------------------
 -- ----------------------------
 -- 初始化-用户信息表数据
 -- 初始化-用户信息表数据
 -- ----------------------------
 -- ----------------------------
-insert into sys_user values(1, 106, 'admin', '若依', 'yzz_ivy@163.com', '15088888888', '29c67a30398638269fe600f73a054934', '111111', 'Y', 0, '维护中', 'admin', '2018-03-01', 'ry', '2018-03-01');
-insert into sys_user values(2, 108, 'ry',    '若依', 'ry@163.com',      '15288888888', '8e6d98b90472783cc73c17047ddccf36', '222222', 'N', 1, '锁定中', 'admin', '2018-03-01', 'ry', '2018-03-01');
+insert into sys_user values(1, 106, 'admin', '若依', 'yzz_ivy@163.com', '15088888888', '0', 'img/a5.jpg', '29c67a30398638269fe600f73a054934', '111111', 'N', 1, '维护中', 'admin', '2018-03-01', 'ry', '2018-03-01');
+insert into sys_user values(2, 108, 'ry',    '若依', 'ry@163.com',      '15288888888', '1', 'img/a5.jpg', '8e6d98b90472783cc73c17047ddccf36', '222222', 'N', 1, '锁定中', 'admin', '2018-03-01', 'ry', '2018-03-01');
 
 
 
 
 -- ----------------------------
 -- ----------------------------

+ 2 - 2
src/main/java/com/ruoyi/project/system/post/dao/IPostDao.java

@@ -12,10 +12,10 @@ public interface IPostDao
 {
 {
 
 
     /**
     /**
-     * 查询系统操作日志集合
+     * 查询岗位数据集合
      * 
      * 
      * @param post 岗位信息
      * @param post 岗位信息
-     * @return 操作日志集合
+     * @return 岗位数据集合
      */
      */
     public List<Post> selectPostList(Post post);
     public List<Post> selectPostList(Post post);
 
 

+ 0 - 7
src/main/java/com/ruoyi/project/system/user/controller/IndexController.java

@@ -47,11 +47,4 @@ public class IndexController extends BaseController
         return "main";
         return "main";
     }
     }
 
 
-    // 个人信息
-    @GetMapping("/system/profile")
-    public String profile(Model model)
-    {
-        return "system/user/profile";
-    }
-
 }
 }

+ 31 - 7
src/main/java/com/ruoyi/project/system/user/controller/UserController.java

@@ -37,10 +37,10 @@ public class UserController extends BaseController
 
 
     @Autowired
     @Autowired
     private IUserService userService;
     private IUserService userService;
-    
+
     @Autowired
     @Autowired
     private IRoleService roleService;
     private IRoleService roleService;
-    
+
     @Autowired
     @Autowired
     private IPostService postService;
     private IPostService postService;
 
 
@@ -92,7 +92,7 @@ public class UserController extends BaseController
         model.addAttribute("posts", posts);
         model.addAttribute("posts", posts);
         return prefix + "/add";
         return prefix + "/add";
     }
     }
-    
+
     @RequiresPermissions("system:user:resetPwd")
     @RequiresPermissions("system:user:resetPwd")
     @Log(title = "系统管理", action = "用户管理-重置密码")
     @Log(title = "系统管理", action = "用户管理-重置密码")
     @GetMapping("/resetPwd/{userId}")
     @GetMapping("/resetPwd/{userId}")
@@ -102,7 +102,7 @@ public class UserController extends BaseController
         model.addAttribute("user", user);
         model.addAttribute("user", user);
         return prefix + "/resetPwd";
         return prefix + "/resetPwd";
     }
     }
-    
+
     @RequiresPermissions("system:user:resetPwd")
     @RequiresPermissions("system:user:resetPwd")
     @Log(title = "系统管理", action = "用户管理-重置密码")
     @Log(title = "系统管理", action = "用户管理-重置密码")
     @PostMapping("/resetPwd")
     @PostMapping("/resetPwd")
@@ -120,7 +120,7 @@ public class UserController extends BaseController
     @RequiresPermissions("system:user:remove")
     @RequiresPermissions("system:user:remove")
     @Log(title = "系统管理", action = "用户管理-删除用户")
     @Log(title = "系统管理", action = "用户管理-删除用户")
     @RequestMapping("/remove/{userId}")
     @RequestMapping("/remove/{userId}")
-    @Transactional(rollbackFor=Exception.class)
+    @Transactional(rollbackFor = Exception.class)
     @ResponseBody
     @ResponseBody
     public Message remove(@PathVariable("userId") Long userId)
     public Message remove(@PathVariable("userId") Long userId)
     {
     {
@@ -139,7 +139,7 @@ public class UserController extends BaseController
     @RequiresPermissions("system:user:batchRemove")
     @RequiresPermissions("system:user:batchRemove")
     @Log(title = "系统管理", action = "用户管理-批量删除")
     @Log(title = "系统管理", action = "用户管理-批量删除")
     @PostMapping("/batchRemove")
     @PostMapping("/batchRemove")
-    @Transactional(rollbackFor=Exception.class)
+    @Transactional(rollbackFor = Exception.class)
     @ResponseBody
     @ResponseBody
     public Message batchRemove(@RequestParam("ids[]") Long[] ids)
     public Message batchRemove(@RequestParam("ids[]") Long[] ids)
     {
     {
@@ -157,7 +157,7 @@ public class UserController extends BaseController
     @RequiresPermissions("system:user:save")
     @RequiresPermissions("system:user:save")
     @Log(title = "系统管理", action = "部门管理-保存部门")
     @Log(title = "系统管理", action = "部门管理-保存部门")
     @PostMapping("/save")
     @PostMapping("/save")
-    @Transactional(rollbackFor=Exception.class)
+    @Transactional(rollbackFor = Exception.class)
     @ResponseBody
     @ResponseBody
     public Message save(User user)
     public Message save(User user)
     {
     {
@@ -183,4 +183,28 @@ public class UserController extends BaseController
         return uniqueFlag;
         return uniqueFlag;
     }
     }
 
 
+    /**
+     * 个人信息
+     */
+    @GetMapping("/profile")
+    public String profile(Model model)
+    {
+        User user = getUser();
+        String sex = user.getSex();
+        if ("0".equals(sex))
+        {
+            user.setSex("性别:男");
+        }
+        else if ("1".equals(sex))
+        {
+            user.setSex("性别:女");
+        }
+        String roleGroup = userService.selectUserRoleGroup(user.getUserId());
+        String postGroup = userService.selectUserPostGroup(user.getUserId());
+        model.addAttribute("user", user);
+        model.addAttribute("roleGroup", roleGroup);
+        model.addAttribute("postGroup", postGroup);
+        return prefix + "/profile";
+    }
+
 }
 }

+ 24 - 0
src/main/java/com/ruoyi/project/system/user/domain/User.java

@@ -28,6 +28,10 @@ public class User extends PageDomain
     private String email;
     private String email;
     /** 手机号码 */
     /** 手机号码 */
     private String phonenumber;
     private String phonenumber;
+    /** 用户性别 */
+    private String sex;
+    /** 用户头像 */
+    private String avatar;
     /** 密码 */
     /** 密码 */
     private String password;
     private String password;
     /** 盐加密 */
     /** 盐加密 */
@@ -123,6 +127,26 @@ public class User extends PageDomain
         this.phonenumber = phonenumber;
         this.phonenumber = phonenumber;
     }
     }
 
 
+    public String getSex()
+    {
+        return sex;
+    }
+
+    public void setSex(String sex)
+    {
+        this.sex = sex;
+    }
+
+    public String getAvatar()
+    {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar)
+    {
+        this.avatar = avatar;
+    }
+
     public String getPassword()
     public String getPassword()
     {
     {
         return password;
         return password;

+ 17 - 1
src/main/java/com/ruoyi/project/system/user/service/IUserService.java

@@ -58,7 +58,7 @@ public interface IUserService
      * @return 结果
      * @return 结果
      */
      */
     public int saveUser(User user);
     public int saveUser(User user);
-    
+
     /**
     /**
      * 修改用户信息
      * 修改用户信息
      * 
      * 
@@ -75,4 +75,20 @@ public interface IUserService
      */
      */
     public String checkUserNameUnique(String loginName);
     public String checkUserNameUnique(String loginName);
 
 
+    /**
+     * 根据用户ID查询用户所属角色组
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public String selectUserRoleGroup(Long userId);
+
+    /**
+     * 根据用户ID查询用户所属岗位组
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public String selectUserPostGroup(Long userId);
+
 }
 }

+ 54 - 0
src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java

@@ -10,6 +10,10 @@ import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.security.ShiroUtils;
 import com.ruoyi.common.utils.security.ShiroUtils;
 import com.ruoyi.framework.shiro.service.PasswordService;
 import com.ruoyi.framework.shiro.service.PasswordService;
+import com.ruoyi.project.system.post.dao.IPostDao;
+import com.ruoyi.project.system.post.domain.Post;
+import com.ruoyi.project.system.role.dao.IRoleDao;
+import com.ruoyi.project.system.role.domain.Role;
 import com.ruoyi.project.system.user.dao.IUserDao;
 import com.ruoyi.project.system.user.dao.IUserDao;
 import com.ruoyi.project.system.user.dao.IUserPostDao;
 import com.ruoyi.project.system.user.dao.IUserPostDao;
 import com.ruoyi.project.system.user.dao.IUserRoleDao;
 import com.ruoyi.project.system.user.dao.IUserRoleDao;
@@ -29,6 +33,12 @@ public class UserServiceImpl implements IUserService
     @Autowired
     @Autowired
     private IUserDao userDao;
     private IUserDao userDao;
 
 
+    @Autowired
+    private IRoleDao roleDao;
+
+    @Autowired
+    private IPostDao postDao;
+
     @Autowired
     @Autowired
     private IUserPostDao userPostDao;
     private IUserPostDao userPostDao;
 
 
@@ -220,4 +230,48 @@ public class UserServiceImpl implements IUserService
         }
         }
         return UserConstants.NAME_UNIQUE;
         return UserConstants.NAME_UNIQUE;
     }
     }
+
+    /**
+     * 查询用户所属角色组
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    @Override
+    public String selectUserRoleGroup(Long userId)
+    {
+        List<Role> list = roleDao.selectRolesByUserId(userId);
+        StringBuffer idsStr = new StringBuffer();
+        for (Role role : list)
+        {
+            idsStr.append(role.getRoleName()).append(",");
+        }
+        if (StringUtils.isNotEmpty(idsStr.toString()))
+        {
+            idsStr.substring(0, idsStr.length() - 1);
+        }
+        return idsStr.toString();
+    }
+
+    /**
+     * 查询用户所属岗位组
+     * 
+     * @param userId 用户ID
+     * @return 结果
+     */
+    @Override
+    public String selectUserPostGroup(Long userId)
+    {
+        List<Post> list = postDao.selectPostsByUserId(userId);
+        StringBuffer idsStr = new StringBuffer();
+        for (Post post : list)
+        {
+            idsStr.append(post.getPostName()).append(",");
+        }
+        if (StringUtils.isNotEmpty(idsStr.toString()))
+        {
+            idsStr.substring(0, idsStr.length() - 1);
+        }
+        return idsStr.toString();
+    }
 }
 }

+ 3 - 3
src/main/resources/mybatis/system/RoleMapper.xml

@@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	</resultMap>
 	
 	
 	<select id="selectRoleList" parameterType="Role" resultMap="RoleResult">
 	<select id="selectRoleList" parameterType="Role" resultMap="RoleResult">
-		select role_id, role_name, role_key, role_sort, status, create_time from sys_role
+		select role_id, role_name, role_key, role_sort, status, create_time, remark from sys_role
 		<where>
 		<where>
 			<if test="searchValue != null and searchValue != ''">
 			<if test="searchValue != null and searchValue != ''">
 				AND role_name = #{searchValue} OR role_key = #{searchValue}
 				AND role_name = #{searchValue} OR role_key = #{searchValue}
@@ -35,11 +35,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 	</select>
 	
 	
 	<select id="selectRolesAll" resultMap="RoleResult">
 	<select id="selectRolesAll" resultMap="RoleResult">
-		SELECT role_id, role_name, role_key, role_sort, status, create_time FROM sys_role
+		SELECT role_id, role_name, role_key, role_sort, status, create_time, remark FROM sys_role
 	</select>
 	</select>
 	
 	
 	<select id="selectRoleById" parameterType="Long" resultMap="RoleResult">
 	<select id="selectRoleById" parameterType="Long" resultMap="RoleResult">
-		select role_id, role_name, role_key, role_sort, status, create_time
+		select role_id, role_name, role_key, role_sort, status, create_time, remark
 		from sys_role u
 		from sys_role u
 		where u.role_id = #{roleId}
 		where u.role_id = #{roleId}
 	</select>
 	</select>

+ 9 - 3
src/main/resources/mybatis/system/UserMapper.xml

@@ -11,6 +11,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="userName"     column="user_name"    />
 		<result property="userName"     column="user_name"    />
 		<result property="email"        column="email"        />
 		<result property="email"        column="email"        />
 		<result property="phonenumber"  column="phonenumber"  />
 		<result property="phonenumber"  column="phonenumber"  />
+		<result property="sex"          column="sex"          />
+		<result property="avatar"       column="avatar"       />
 		<result property="password"     column="password"     />
 		<result property="password"     column="password"     />
 		<result property="salt"         column="salt"         />
 		<result property="salt"         column="salt"         />
 		<result property="userType"     column="user_type"    />
 		<result property="userType"     column="user_type"    />
@@ -32,7 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	</resultMap>
 	
 	
 	<select id="selectUserList" parameterType="User" resultMap="UserResult">
 	<select id="selectUserList" parameterType="User" resultMap="UserResult">
-		select user_id, dept_id, login_name, user_name, email, phonenumber, password, salt, user_type, status, refuse_des, create_by, create_time from sys_user
+		select user_id, dept_id, login_name, user_name, email, phonenumber, password, sex, avatar, salt, user_type, status, refuse_des, create_by, create_time from sys_user
 		<where>
 		<where>
 			<if test="searchValue != null and searchValue != ''">
 			<if test="searchValue != null and searchValue != ''">
 				AND login_name = #{searchValue}
 				AND login_name = #{searchValue}
@@ -44,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 	</select>
 	
 	
 	<select id="selectUserByName" parameterType="String" resultMap="UserResult">
 	<select id="selectUserByName" parameterType="String" resultMap="UserResult">
-		select  u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.phonenumber, u.password, u.salt, u.status, u.refuse_des, u.create_time,
+		select  u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.phonenumber, u.sex, u.avatar, u.password, u.salt, u.status, u.refuse_des, u.create_time,
        		    d.dept_id, d.parent_id, d.dept_name, d.order_num, d.status as dept_status
        		    d.dept_id, d.parent_id, d.dept_name, d.order_num, d.status as dept_status
 		from sys_user u
 		from sys_user u
 			 left join sys_dept d on u.dept_id = d.dept_id
 			 left join sys_dept d on u.dept_id = d.dept_id
@@ -57,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 	</select>
 	
 	
 	<select id="selectUserById" parameterType="Long" resultMap="UserResult">
 	<select id="selectUserById" parameterType="Long" resultMap="UserResult">
-		select  u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.phonenumber, u.password, u.salt, u.status, u.refuse_des, u.create_time,
+		select  u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.phonenumber, u.sex, u.avatar, u.password, u.salt, u.status, u.refuse_des, u.create_time,
        		    d.dept_id, d.parent_id, d.dept_name, d.order_num, d.status as dept_status
        		    d.dept_id, d.parent_id, d.dept_name, d.order_num, d.status as dept_status
 		from sys_user u
 		from sys_user u
 			 left join sys_dept d on u.dept_id = d.dept_id
 			 left join sys_dept d on u.dept_id = d.dept_id
@@ -84,6 +86,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="userName != null and userName != ''">user_name = #{userName},</if>
  			<if test="userName != null and userName != ''">user_name = #{userName},</if>
  			<if test="email != null and email != ''">email = #{email},</if>
  			<if test="email != null and email != ''">email = #{email},</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if>
+ 			<if test="sex != null and sex != ''">sex = #{sex},</if>
+ 			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
  			<if test="salt != null and salt != ''">salt = #{salt},</if>
  			<if test="salt != null and salt != ''">salt = #{salt},</if>
  			<if test="status !=null">status = #{status},</if>
  			<if test="status !=null">status = #{status},</if>
@@ -103,6 +107,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="userName != null and userName != ''">user_name,</if>
  			<if test="userName != null and userName != ''">user_name,</if>
  			<if test="email != null and email != ''">email,</if>
  			<if test="email != null and email != ''">email,</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
+ 			<if test="sex != null and sex != ''">sex,</if>
  			<if test="password != null and password != ''">password,</if>
  			<if test="password != null and password != ''">password,</if>
  			<if test="salt != null and salt != ''">salt,</if>
  			<if test="salt != null and salt != ''">salt,</if>
  			<if test="status !=null and status != ''">status,</if>
  			<if test="status !=null and status != ''">status,</if>
@@ -116,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="userName != null and userName != ''">#{userName},</if>
  			<if test="userName != null and userName != ''">#{userName},</if>
  			<if test="email != null and email != ''">#{email},</if>
  			<if test="email != null and email != ''">#{email},</if>
  			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
  			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
+ 			<if test="sex != null and sex != ''">#{sex},</if>
  			<if test="password != null and password != ''">#{password},</if>
  			<if test="password != null and password != ''">#{password},</if>
  			<if test="salt != null and salt != ''">#{salt},</if>
  			<if test="salt != null and salt != ''">#{salt},</if>
  			<if test="status !=null and status != ''">#{status},</if>
  			<if test="status !=null and status != ''">#{status},</if>

+ 16 - 4
src/main/resources/static/ruoyi/js/ry-ui.js

@@ -138,15 +138,27 @@ $(function(){
 	}
 	}
 	// 获取选中复选框项
 	// 获取选中复选框项
 	$.getCheckeds = function (_name) {
 	$.getCheckeds = function (_name) {
-	    var roleIds = "";
+	    var checkeds = "";
 	    $('input:checkbox[name="' + _name + '"]:checked').each(function(i) {
 	    $('input:checkbox[name="' + _name + '"]:checked').each(function(i) {
 	        if (0 == i) {
 	        if (0 == i) {
-	        	roleIds = $(this).val();
+	        	checkeds = $(this).val();
 	        } else {
 	        } else {
-	        	roleIds += ("," + $(this).val());
+	        	checkeds += ("," + $(this).val());
 	        }
 	        }
 	    });
 	    });
-	    return roleIds;
+	    return checkeds;
+	}
+	// 获取选中复选框项
+	$.getSelects = function (_name) {
+	    var selects = "";
+	    $('#' + _name + ' option:selected').each(function (i) {
+	        if (0 == i) {
+	        	selects = $(this).val();
+	        } else {
+	        	selects += ("," + $(this).val());
+	        }
+	    });
+	    return selects;
 	}
 	}
 	// 复选框事件绑定
 	// 复选框事件绑定
 	if ($.fn.select2 !== undefined) {
 	if ($.fn.select2 !== undefined) {

+ 3 - 1
src/main/resources/static/ruoyi/system/user/add.js

@@ -51,9 +51,10 @@ function add() {
 	var password = $("input[name='password']").val();
 	var password = $("input[name='password']").val();
 	var email = $("input[name='email']").val();
 	var email = $("input[name='email']").val();
 	var phonenumber = $("input[name='phonenumber']").val();
 	var phonenumber = $("input[name='phonenumber']").val();
+	var sex = $("input[name='sex']:checked").val();
 	var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
 	var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
 	var roleIds = $.getCheckeds("role");
 	var roleIds = $.getCheckeds("role");
-	var postIds = $("#post").val() + "";
+	var postIds = $.getSelects("post");
 	$.ajax({
 	$.ajax({
 		cache : true,
 		cache : true,
 		type : "POST",
 		type : "POST",
@@ -66,6 +67,7 @@ function add() {
 			"password": password,
 			"password": password,
 			"email": email,
 			"email": email,
 			"phonenumber": phonenumber,
 			"phonenumber": phonenumber,
+			"sex": sex,
 			"status": status,
 			"status": status,
 			"roleIds": roleIds,
 			"roleIds": roleIds,
 			"postIds": postIds
 			"postIds": postIds

+ 3 - 1
src/main/resources/static/ruoyi/system/user/edit.js

@@ -27,9 +27,10 @@ function update() {
 	var password = $("input[name='password']").val();
 	var password = $("input[name='password']").val();
 	var email = $("input[name='email']").val();
 	var email = $("input[name='email']").val();
 	var phonenumber = $("input[name='phonenumber']").val();
 	var phonenumber = $("input[name='phonenumber']").val();
+	var sex = $("input[name='sex']:checked").val();
 	var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
 	var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
 	var roleIds = $.getCheckeds("role");
 	var roleIds = $.getCheckeds("role");
-	var postIds = $("#post").val() + "";
+	var postIds = $.getSelects("post");
 	$.ajax({
 	$.ajax({
 		cache : true,
 		cache : true,
 		type : "POST",
 		type : "POST",
@@ -41,6 +42,7 @@ function update() {
 			"password": password,
 			"password": password,
 			"email": email,
 			"email": email,
 			"phonenumber": phonenumber,
 			"phonenumber": phonenumber,
+			"sex": sex,
 			"status": status,
 			"status": status,
 			"roleIds": roleIds,
 			"roleIds": roleIds,
 			"postIds": postIds
 			"postIds": postIds

+ 6 - 6
src/main/resources/templates/index.html

@@ -11,7 +11,7 @@
     <!--[if lt IE 9]>
     <!--[if lt IE 9]>
     <meta http-equiv="refresh" content="0;ie.html"/>
     <meta http-equiv="refresh" content="0;ie.html"/>
     <![endif]-->
     <![endif]-->
-    <link rel="shortcut icon" href="../static/favicon.ico" th:href="@{favicon.ico}" rel="stylesheet"/>
+    <link href="../static/favicon.ico" th:href="@{favicon.ico}" rel="stylesheet"/>
     <link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
     <link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
     <link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.css}" rel="stylesheet"/>
     <link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.css}" rel="stylesheet"/>
     <link href="../static/css/animate.css" th:href="@{/css/animate.css}" rel="stylesheet"/>
     <link href="../static/css/animate.css" th:href="@{/css/animate.css}" rel="stylesheet"/>
@@ -34,10 +34,10 @@
                     <div class="dropdown profile-element"> <span>
                     <div class="dropdown profile-element"> <span>
                          <img src="img/profile_small.jpg" alt="image" class="img-circle" height="60" width="60"/></span>
                          <img src="img/profile_small.jpg" alt="image" class="img-circle" height="60" width="60"/></span>
                          <a data-toggle="dropdown" class="dropdown-toggle" href="#">
                          <a data-toggle="dropdown" class="dropdown-toggle" href="#">
-                         <span class="clear"><span class="block m-t-xs"><strong class="font-bold" th:text="${user.userName}">RuoYi</strong></span>
-                         <span class="text-muted text-xs block"><span th:text="${user.dept.deptName}">研发部</span> <b class="caret"></b></span> </span> </a>
+                          <span class="clear"><span class="block m-t-xs"><strong class="font-bold">[[${user.userName}]]</strong></span>
+                         <span class="text-muted text-xs block"><span>[[${user.dept.deptName}]]</span> <b class="caret"></b></span> </span> </a>
                          <ul class="dropdown-menu animated fadeInRight m-t-xs">
                          <ul class="dropdown-menu animated fadeInRight m-t-xs">
-                             <li><a class="menuItem" th:href="@{/system/profile}">个人信息</a></li>
+                             <li><a class="menuItem" th:href="@{/system/user/profile}">个人信息</a></li>
                              <li class="divider"></li>
                              <li class="divider"></li>
                              <li><a th:href="@{logout}">退出</a></li>
                              <li><a th:href="@{logout}">退出</a></li>
                          </ul>
                          </ul>
@@ -86,7 +86,7 @@
 	                <li>
 	                <li>
 	                    <span class="m-r-sm text-muted welcome-message">欢迎来到若依管理后台.</span>
 	                    <span class="m-r-sm text-muted welcome-message">欢迎来到若依管理后台.</span>
 	                </li>
 	                </li>
-                    <li class="hidden-xs"><a th:href="@{logout}"><i class="fa fa-sign-out"></i>退出</li>
+                    <li class="hidden-xs"><a th:href="@{logout}"><i class="fa fa-sign-out"></i>退出</a></li>
                 </ul>
                 </ul>
             </nav>
             </nav>
         </div>
         </div>
@@ -118,7 +118,7 @@
                     th:src="@{/system/main}" frameborder="0" seamless></iframe>
                     th:src="@{/system/main}" frameborder="0" seamless></iframe>
         </div>
         </div>
         <div class="footer">
         <div class="footer">
-            <div class="pull-right" th:text="'© '+${copyrightYear}+' RuoYi Copyright '"></div>
+            <div class="pull-right">© [[${copyrightYear}]] RuoYi Copyright </div>
         </div>
         </div>
     </div>
     </div>
     <!--右侧部分结束-->
     <!--右侧部分结束-->

+ 1 - 1
src/main/resources/templates/main.html

@@ -35,7 +35,7 @@
             <h2>若依后台管理框架</h2>
             <h2>若依后台管理框架</h2>
             <p>一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如<b>网站管理后台</b>,<b>网站会员中心</b>,<b>CMS</b>,<b>CRM</b>,<b>OA</b>等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。</p>
             <p>一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如<b>网站管理后台</b>,<b>网站会员中心</b>,<b>CMS</b>,<b>CRM</b>,<b>OA</b>等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。</p>
             <p>
             <p>
-                <b>当前版本:</b><span th:text="'v'+${version}"></span>
+                <b>当前版本:</b><span>v[[${version}]]</span>
             </p>
             </p>
             <p>
             <p>
                 <span class="label label-warning">&yen;免费开源</span>
                 <span class="label label-warning">&yen;免费开源</span>

+ 14 - 1
src/main/resources/templates/system/user/add.html

@@ -36,7 +36,7 @@
 			<div class="form-group">
 			<div class="form-group">
 				<label class="col-sm-3 control-label">邮箱:</label>
 				<label class="col-sm-3 control-label">邮箱:</label>
 				<div class="col-sm-8">
 				<div class="col-sm-8">
-					<input class="form-control" type="text" name="email" name="email">
+					<input class="form-control" type="text" name="email">
 				</div>
 				</div>
 			</div>
 			</div>
 			<div class="form-group">
 			<div class="form-group">
@@ -45,6 +45,19 @@
 					<input class="form-control" type="text" name="phonenumber" id="phonenumber">
 					<input class="form-control" type="text" name="phonenumber" id="phonenumber">
 				</div>
 				</div>
 			</div>
 			</div>
+			<div class="form-group">
+				<label class="col-sm-3 control-label">性别:</label>
+				<div class="col-sm-8">
+                     <div class="radio radio-info radio-inline">
+						<input type="radio" id="radio1" name="sex" value="0" checked="">
+						<label for="radio1">男</label>
+					</div>
+					<div class="radio radio-danger radio-inline">
+						<input type="radio" id="radio2" name="sex" value="1">
+						<label for="radio2">女</label>
+					</div>
+				</div>
+			</div>
 			<div class="form-group">
 			<div class="form-group">
 				<label class="col-sm-3 control-label">状态:</label>
 				<label class="col-sm-3 control-label">状态:</label>
 				<div class="col-sm-8">
 				<div class="col-sm-8">

+ 14 - 1
src/main/resources/templates/system/user/edit.html

@@ -31,7 +31,7 @@
 			<div class="form-group">
 			<div class="form-group">
 				<label class="col-sm-3 control-label">邮箱:</label>
 				<label class="col-sm-3 control-label">邮箱:</label>
 				<div class="col-sm-8">
 				<div class="col-sm-8">
-					<input class="form-control" type="text" name="email" name="email" th:value="${user.email}">
+					<input class="form-control" type="text" name="email" th:value="${user.email}">
 				</div>
 				</div>
 			</div>
 			</div>
 			<div class="form-group">
 			<div class="form-group">
@@ -40,6 +40,19 @@
 					<input class="form-control" type="text" name="phonenumber" id="phonenumber" th:value="${user.phonenumber}">
 					<input class="form-control" type="text" name="phonenumber" id="phonenumber" th:value="${user.phonenumber}">
 				</div>
 				</div>
 			</div>
 			</div>
+			<div class="form-group">
+				<label class="col-sm-3 control-label">性别:</label>
+				<div class="col-sm-8">
+					<div class="radio radio-info radio-inline">
+						<input type="radio" id="radio1" th:field="*{user.sex}" name="sex" value="0">
+						<label for="radio1">男</label>
+					</div>
+					<div class="radio radio-danger radio-inline">
+						<input type="radio" id="radio2" th:field="*{user.sex}" name="sex" value="1">
+						<label for="radio2">女</label>
+					</div>
+				</div>
+			</div>
 			<div class="form-group">
 			<div class="form-group">
 				<label class="col-sm-3 control-label">状态:</label>
 				<label class="col-sm-3 control-label">状态:</label>
 				<div class="col-sm-8">
 				<div class="col-sm-8">

+ 39 - 11
src/main/resources/templates/system/user/profile.html

@@ -18,23 +18,35 @@
             <div class="col-sm-6">
             <div class="col-sm-6">
                 <div class="ibox float-e-margins">
                 <div class="ibox float-e-margins">
                     <div class="ibox-title">
                     <div class="ibox-title">
-                        <h5>个人资料</h5>
+                        <h5>个人信息</h5>
+                    <div class="ibox-tools">
+                        
+                        <a class="dropdown-toggle" data-toggle="dropdown" href="profile.html#">
+                            <i class="fa fa-edit"></i>
+                        </a>
+                        <ul class="dropdown-menu dropdown-user">
+                            <li><a href="javascript:editProfile()">修改信息</a></li>
+                            <li><a href="javascript:editHead()">修改头像</a></li>
+                            <li><a href="javascript:editPasswod()">修改密码</a></li>
+                        </ul>
+                       
+                    </div>
                     </div>
                     </div>
                     <div class="contact-box">
                     <div class="contact-box">
 	                        <div class="col-sm-4">
 	                        <div class="col-sm-4">
 	                            <div class="text-center">
 	                            <div class="text-center">
-	                                <img alt="image" class="img-circle m-t-xs img-responsive" src="/img/a2.jpg">
+	                                <img alt="image" class="img-circle m-t-xs img-responsive" src="/img/a5.jpg">
 	                                <div class="m-t-xs font-bold">CEO</div>
 	                                <div class="m-t-xs font-bold">CEO</div>
 	                            </div>
 	                            </div>
 	                        </div>
 	                        </div>
 	                        <div class="col-sm-8">
 	                        <div class="col-sm-8">
-	                            <h3><strong>admin</strong></h3>
-	                            <p><i class="fa fa-user"></i> 若依 / 管理员</p>
-	                            <p><i class="fa fa-phone"></i> 15888888888</p>
-	                            <p><i class="fa fa-group"></i> 开发一部 / 初级开发</p>
-	                            <p><i class="fa fa-transgender"></i> </p>
-	                            <p><i class="fa fa-envelope-o"></i> ruoyi@163.com</p>
-	                            <p><i class="fa fa-calendar"></i> 2018-05-20 13:14:00</p>
+	                            <h3><strong>[[${user.loginName}]]</strong></h3>
+	                            <p><i class="fa fa-user"></i> [[${user.userName}]] / [[${#strings.defaultString(roleGroup,'无角色')}]]
+	                            <p><i class="fa fa-phone"></i> [[${user.phonenumber}]]</p>
+	                            <p><i class="fa fa-group"></i> [[${user.dept.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
+	                            <p><i class="fa fa-transgender"></i> [[${user.sex}]]</p>
+	                            <p><i class="fa fa-envelope-o"></i> [[${user.email}]]</p>
+	                            <p><i class="fa fa-calendar"></i> [[${user.createTime}]]</p>
 	                        </div>
 	                        </div>
 	                        <div class="clearfix"></div>
 	                        <div class="clearfix"></div>
 	                    </a>
 	                    </a>
@@ -43,7 +55,23 @@
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>
-    <script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
-    <script src="../static/js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script>
+    
+    <div th:include="include::footer"></div>
+    <script>
+        var userId = [[${user.userId}]];
+	    /*用户信息-修改*/
+	    function editProfile() {
+	        var url = ctx + "system/user/edit/" + userId;
+	        layer_showAuto("修改用户", url);
+	    }
+	    /*用户头像-修改*/
+	    function editHead() {
+	    	$.modalAlert("敬请期待", "success");
+	    }
+	    /*用户密码-修改*/
+	    function editPasswod() {
+	    	$.modalAlert("敬请期待", "success");
+	    }
+	</script>
 </body>
 </body>
 </html>
 </html>

+ 1 - 1
src/main/resources/templates/system/user/resetPwd.html

@@ -45,7 +45,7 @@
 			$.ajax({
 			$.ajax({
 				cache : true,
 				cache : true,
 				type : "post",
 				type : "post",
-				url : ctx + "/system/user/resetPwd",
+				url : ctx + "system/user/resetPwd",
 				data : $('#form-user-resetPwd').serialize(),
 				data : $('#form-user-resetPwd').serialize(),
 				async : false,
 				async : false,
 				error : function(request) {
 				error : function(request) {