添加用户

main
tamguo 7 years ago
parent 5faef5ab16
commit 0ed7b7e041

@ -0,0 +1,8 @@
package com.tamguo.modules.sys.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.tamguo.modules.sys.model.SysUserRoleEntity;
public interface SysUserRoleMapper extends BaseMapper<SysUserRoleEntity>{
}

@ -72,6 +72,8 @@ public class SysUserEntity implements Serializable {
@TableField(exist=false) @TableField(exist=false)
private List<String> employeePosts; private List<String> employeePosts;
@TableField(exist=false)
private String userRoleString;
public SysUserEntity() { public SysUserEntity() {
} }
@ -444,5 +446,13 @@ public class SysUserEntity implements Serializable {
this.empName = empName; this.empName = empName;
} }
public String getUserRoleString() {
return userRoleString;
}
public void setUserRoleString(String userRoleString) {
this.userRoleString = userRoleString;
}
} }

@ -0,0 +1,23 @@
package com.tamguo.modules.sys.model;
import com.baomidou.mybatisplus.annotations.TableName;
@TableName(value="sys_user_role")
public class SysUserRoleEntity {
private String userCode;
private String roleCode;
public String getRoleCode() {
return roleCode;
}
public void setRoleCode(String roleCode) {
this.roleCode = roleCode;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
}

@ -1,5 +1,6 @@
package com.tamguo.modules.sys.service; package com.tamguo.modules.sys.service;
import java.util.List;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
@ -21,4 +22,7 @@ public interface ISysRoleService extends IService<SysRoleEntity>{
/** 授权数据权限*/ /** 授权数据权限*/
void allowDataScope(SysRoleEntity role); void allowDataScope(SysRoleEntity role);
/** 角色树形结构*/
List<SysRoleEntity> treeDate(String userType);
} }

@ -19,4 +19,7 @@ public interface ISysUserService extends IService<SysUserEntity>{
/** 更新用户信息*/ /** 更新用户信息*/
public void update(SysUserEntity user); public void update(SysUserEntity user);
/** 添加用户信息*/
public void save(SysUserEntity user);
} }

@ -121,4 +121,10 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRoleEntity
} }
} }
} }
@SuppressWarnings("unchecked")
@Override
public List<SysRoleEntity> treeDate(String userType) {
return sysRoleMapper.selectList(Condition.create().eq("user_type", userType));
}
} }

@ -1,9 +1,11 @@
package com.tamguo.modules.sys.service.impl; package com.tamguo.modules.sys.service.impl;
import java.util.Date;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.hash.Sha256Hash;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -14,10 +16,14 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.tamguo.modules.sys.dao.SysUserMapper; import com.tamguo.modules.sys.dao.SysUserMapper;
import com.tamguo.modules.sys.dao.SysUserPostMapper; import com.tamguo.modules.sys.dao.SysUserPostMapper;
import com.tamguo.modules.sys.dao.SysUserRoleMapper;
import com.tamguo.modules.sys.model.SysUserEntity; import com.tamguo.modules.sys.model.SysUserEntity;
import com.tamguo.modules.sys.model.SysUserPostEntity; import com.tamguo.modules.sys.model.SysUserPostEntity;
import com.tamguo.modules.sys.model.SysUserRoleEntity;
import com.tamguo.modules.sys.model.condition.SysUserCondition; import com.tamguo.modules.sys.model.condition.SysUserCondition;
import com.tamguo.modules.sys.model.enums.SysUserStatusEnum;
import com.tamguo.modules.sys.service.ISysUserService; import com.tamguo.modules.sys.service.ISysUserService;
import com.tamguo.modules.sys.utils.ShiroUtils;
@Service @Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity> implements ISysUserService{ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity> implements ISysUserService{
@ -26,6 +32,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
public SysUserMapper sysUserMapper; public SysUserMapper sysUserMapper;
@Autowired @Autowired
public SysUserPostMapper sysUserPostMapper; public SysUserPostMapper sysUserPostMapper;
@Autowired
public SysUserRoleMapper sysUserRoleMapper;
@Transactional(readOnly=false) @Transactional(readOnly=false)
@Override @Override
@ -97,8 +105,37 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
userPost.setUserCode(user.getUserCode()); userPost.setUserCode(user.getUserCode());
sysUserPostMapper.insert(userPost); sysUserPostMapper.insert(userPost);
} }
}
@Transactional(readOnly=false)
@Override
public void save(SysUserEntity user) {
user.setCreateBy(ShiroUtils.getUserCode());
user.setCreateDate(new Date());
user.setStatus(SysUserStatusEnum.NORMAL);
// 设置初始密码
user.setPassword(new Sha256Hash("123456").toHex());
sysUserMapper.insert(user);
// 处理岗位
List<String> employeePosts = user.getEmployeePosts();
for(int i=0 ; i<employeePosts.size() ; i++) {
SysUserPostEntity userPost = new SysUserPostEntity();
userPost.setPostCode(employeePosts.get(i));
userPost.setUserCode(user.getUserCode());
sysUserPostMapper.insert(userPost);
}
// 处理角色
if(StringUtils.isEmpty(user.getUserRoleString())) {
String[] roleCodes = user.getUserRoleString().split(",");
for(String roleCode : roleCodes) {
SysUserRoleEntity role = new SysUserRoleEntity();
role.setRoleCode(roleCode);
role.setUserCode(user.getUserCode());
sysUserRoleMapper.insert(role);
}
}
} }
} }

@ -1,5 +1,6 @@
package com.tamguo.modules.sys.web; package com.tamguo.modules.sys.web;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -86,4 +87,11 @@ public class SysRoleController {
return Result.result(0, null, "保存角色【"+role.getRoleName()+"】成功!"); return Result.result(0, null, "保存角色【"+role.getRoleName()+"】成功!");
} }
/** 角色树结构*/
@RequestMapping(path="treeData",method=RequestMethod.POST)
@ResponseBody
public List<SysRoleEntity> treeData(String userType){
return iSysRoleService.treeDate(userType);
}
} }

@ -21,7 +21,8 @@ import com.tamguo.modules.sys.utils.Result;
public class SysUserController { public class SysUserController {
private final String USER_LIST_PAGE = "modules/sys/user/list"; private final String USER_LIST_PAGE = "modules/sys/user/list";
private final String USER_DETAIL_PAGE = "modules/sys/user/update"; private final String USER_UPDATE_PAGE = "modules/sys/user/update";
private final String USER_ADD_PAGE = "modules/sys/user/add";
@Autowired @Autowired
private ISysUserService iSysUserService; private ISysUserService iSysUserService;
@ -36,10 +37,18 @@ public class SysUserController {
return model; return model;
} }
@SuppressWarnings("unchecked")
@RequestMapping(path="add")
public ModelAndView add(String userCode , ModelAndView model) {
model.setViewName(USER_ADD_PAGE);
model.addObject("postList", iPostService.selectList(Condition.create().eq("status", "0")));
return model;
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@RequestMapping(path="update") @RequestMapping(path="update")
public ModelAndView update(String userCode , ModelAndView model) { public ModelAndView update(String userCode , ModelAndView model) {
model.setViewName(USER_DETAIL_PAGE); model.setViewName(USER_UPDATE_PAGE);
model.addObject("user", iSysUserService.selectById(userCode)); model.addObject("user", iSysUserService.selectById(userCode));
model.addObject("postList", iPostService.selectList(Condition.create().eq("status", "0"))); model.addObject("postList", iPostService.selectList(Condition.create().eq("status", "0")));
model.addObject("userPostCode", iSysUserService.queryUserPostByUserCode(userCode)); model.addObject("userPostCode", iSysUserService.queryUserPostByUserCode(userCode));
@ -65,4 +74,11 @@ public class SysUserController {
iSysUserService.update(user); iSysUserService.update(user);
return Result.result(0, null, "保存用户【"+user.getUserCode()+"】成功!"); return Result.result(0, null, "保存用户【"+user.getUserCode()+"】成功!");
} }
@RequestMapping(path="save",method=RequestMethod.POST)
@ResponseBody
public Result save(SysUserEntity user) {
iSysUserService.save(user);
return Result.result(0, null, "保存用户【"+user.getUserCode()+"】成功!");
}
} }

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tamguo.modules.sys.dao.SysUserRoleMapper">
</mapper>

@ -0,0 +1,407 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>用户管理 - JeeSite Demo</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
<!--[if lt IE 9]><script src="/js/static/common/h5fix.min.js"></script><![endif]-->
<link rel="stylesheet" th:href="${setting.domain + 'fonts/font-icons.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'bootstrap/css/bootstrap.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'select2/4.0/select2.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'icheck/1.0/minimal/grey.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'jqGrid/4.7/css/ui.jqgrid.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'adminlte/css/AdminLTE.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/jeesite.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/common.css'}">
</head><body class="hold-transition ">
<div class="wrapper"><div class="main-content">
<div class="box box-main">
<div class="box-header with-border">
<div class="box-title">
<i class="fa icon-people"></i> 新增用户
</div>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<form id="inputForm" th:action="${setting.domain + 'sys/user/save'}" method="post" class="form-horizontal">
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 归属机构:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group treeselect" id="officeDiv" data-url="sys/office/treeData?">
<input id="officeCode" type="hidden" name="officeCode" value="" class="isReset"/>
<input id="officeName" type="text" name="officeName" value=""
class="form-control required " readonly="readonly"
/><span class="input-group-btn"><a id="officeButton" href="javascript:"
class="btn btn-default "><i class="fa fa-search"></i></a>
</span>
</div>
<script>
$("#officeButton,#officeName").click(function(){
if ($("#officeButton").hasClass("disabled")){
return true;
}
var options = {
type: 2,
maxmin: true,
shadeClose: true,
title: '机构选择',
area: ['300px', '400px'],
content: 'sys/treeselect',
contentFormData: {
url: $('#officeDiv').attr('data-url'),
checkbox: 'false',
expandLevel: '-1',
selectCodes: $("#officeCode").val(),
isReturnValue: 'false'
},
success: function(layero, index){
if ($(js.layer.window).width() < 300
|| $(js.layer.window).height() < 400){
js.layer.full(index);
}
},
btn: ['<i class="fa fa-check"></i> 确定'],
btn1: function(index, layero){
var win = js.layer.iframeWindow(index);
win.$('#keyword').val('').change(); var codes = [], names = [], nodes;
if ("false" == "true"){
nodes = win.tree.getCheckedNodes(true);
}else{
nodes = win.tree.getSelectedNodes();
}
for(var i=0; i<nodes.length; i++) {
if (nodes[i].level == 0 && nodes[i].isParent){
js.showMessage("不能选择根节点("+nodes[i].name+")请重新选择。");
return false;
}
if (nodes[i].isParent){
js.showMessage("不能选择父节点("+nodes[i].name+")请重新选择。");
return false;
}
var code = nodes[i]['false'=='true'?'value':'id'], name = nodes[i]['name'];
codes.push(code.replace(/^u_/g,''));
names.push(name.replace(/\([0-9]*\)/g,''));
break;
}
if(typeof treeselectCheck == 'function'){
if (!treeselectCheck('office', nodes)){
return false;
}
}
$("#officeCode").val(codes.join(',')).change();
$("#officeName").val(names.join(',')).change();
try { $('#officeCode,#officeName').valid(); }catch(e){}
if(typeof treeselectCallback == 'function'){
treeselectCallback('office', 'ok', index, layero, nodes);
}
}
};
options.btn.push('<i class="fa fa-close"></i> 关闭');
options['btn'+options.btn.length] = function(index, layero){
if(typeof treeselectCallback == 'function'){
treeselectCallback('office', 'cancel', index, layero);
}
};
js.layer.open(options);
});
</script> </div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 归属公司:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group treeselect" id="companyDiv" data-url="sys/company/treeData?">
<input id="companyCode" type="hidden" name="companyCode" value="" class="isReset"/>
<input id="companyName" type="text" name="companyName" value=""
class="form-control " readonly="readonly"
/><span class="input-group-btn"><a id="companyButton" href="javascript:"
class="btn btn-default "><i class="fa fa-search"></i></a>
</span>
</div>
<script>
$("#companyButton,#companyName").click(function(){
if ($("#companyButton").hasClass("disabled")){
return true;
}
var options = {
type: 2,
maxmin: true,
shadeClose: true,
title: '公司选择',
area: ['300px', '400px'],
content: 'sys/treeselect',
contentFormData: {
url: $('#companyDiv').attr('data-url'),
checkbox: 'false',
expandLevel: '-1',
selectCodes: $("#companyCode").val(),
isReturnValue: 'false'
},
success: function(layero, index){
if ($(js.layer.window).width() < 300
|| $(js.layer.window).height() < 400){
js.layer.full(index);
}
},
btn: ['<i class="fa fa-check"></i> 确定'],
btn1: function(index, layero){
var win = js.layer.iframeWindow(index);
win.$('#keyword').val('').change(); var codes = [], names = [], nodes;
if ("false" == "true"){
nodes = win.tree.getCheckedNodes(true);
}else{
nodes = win.tree.getSelectedNodes();
}
for(var i=0; i<nodes.length; i++) {
if (nodes[i].level == 0 && nodes[i].isParent){
js.showMessage("不能选择根节点("+nodes[i].name+")请重新选择。");
return false;
}
if (nodes[i].isParent){
js.showMessage("不能选择父节点("+nodes[i].name+")请重新选择。");
return false;
}
var code = nodes[i]['false'=='true'?'value':'id'], name = nodes[i]['name'];
codes.push(code.replace(/^u_/g,''));
names.push(name.replace(/\([0-9]*\)/g,''));
break;
}
if(typeof treeselectCheck == 'function'){
if (!treeselectCheck('company', nodes)){
return false;
}
}
$("#companyCode").val(codes.join(',')).change();
$("#companyName").val(names.join(',')).change();
try { $('#companyCode,#companyName').valid(); }catch(e){}
if(typeof treeselectCallback == 'function'){
treeselectCallback('company', 'ok', index, layero, nodes);
}
}
};
options.btn.push('<i class="fa fa-eraser"></i> 清除');
options['btn'+options.btn.length] = function(index, layero){
$("#companyCode").val('').change();
$("#companyName").val('').change();
if(typeof treeselectCallback == 'function'){
treeselectCallback('company', 'clear', index, layero);
}
};
options.btn.push('<i class="fa fa-close"></i> 关闭');
options['btn'+options.btn.length] = function(index, layero){
if(typeof treeselectCallback == 'function'){
treeselectCallback('company', 'cancel', index, layero);
}
};
js.layer.open(options);
});
</script> </div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 登录账号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="hidden" id="oldLoginCode" name="oldLoginCode" value=""/>
<input type="text" id="loginCode" name="loginCode" value="" minlength="4" maxlength="20" class="form-control required userName" th:remote="${setting.domain + 'sys/user/checkLoginCode?oldLoginCode='}" data-msg-remote="登录账号已存在"/>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 用户昵称:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="userName" name="userName" value="" maxlength="32" class="form-control required "/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 电子邮箱:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group">
<input type="text" id="email" name="email" value="" maxlength="300" class="form-control email"/>
<span class="input-group-addon"><i class="fa fa-fw fa-envelope" style="margin-top:-2px;display:block;"></i></span>
</div>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 手机号码:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group">
<input type="text" id="mobile" name="mobile" value="" maxlength="100" class="form-control mobile"/>
<span class="input-group-addon"><i class="fa fa-fw fa-mobile" style="margin-top:-2px;display:block;"></i></span>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 办公电话:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group">
<input type="text" id="phone" name="phone" value="" maxlength="100" class="form-control phone"/>
<span class="input-group-addon"><i class="fa fa-fw fa-phone"></i></span>
</div>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 权重(排序)<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="userWeight" name="userWeight" value="" maxlength="8" class="form-control digits" placeholder="权重越大排名越靠前,请填写数字。"/>
</div>
</div>
</div>
</div>
<div class="form-unit">详细信息</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 员工编号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="userCode" name="userCode" value="" maxlength="32" class="form-control userName"/>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 员工姓名:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="empName" name="empName" value="" maxlength="32" class="form-control "/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 所在岗位:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<select id="employeePosts" name="employeePosts" class="form-control" multiple="true">
<option th:value="${post.postCode}" th:each="post,postStat:${postList}" th:text="${post.postName}">财务经理</option>
</select>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 英文名:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="empNameEn" name="empNameEn" value="" maxlength="32" class="form-control "/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> 备注信息:<i class="fa icon-question hide"></i></label>
<div class="col-sm-10">
<textarea id="remarks" name="remarks" rows="4" maxlength="500" class="form-control "></textarea>
</div>
</div>
</div>
</div>
<div class="form-unit">分配角色</div>
<div class="pl10 pb20">
<table id="roleGrid"></table>
<input type="hidden" id="userRoleString" name="userRoleString" value=""/>
</div>
</div>
<div class="box-footer">
<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> 保 存</button>&nbsp;
<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> 关 闭</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<a id="scroll-up" href="#" class="btn btn-sm"><i class="fa fa-angle-double-up"></i></a>
<script th:src="${setting.domain + 'bootstrap/js/bootstrap.min.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/select2.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'layer/3.1/layer.js'}"></script>
<script th:src="${setting.domain + 'my97/WdatePicker.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/jquery.jqGrid.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/jquery.jqGrid.extend.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/jquery.validate.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/localization/messages_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'jquery-validation/1.16/jquery.validate.extend.js'}"></script>
<script th:src="${setting.domain + 'common/jeesite.js'}"></script>
<script th:src="${setting.domain + 'common/i18n/jeesite_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'common/common.js'}"></script>
<script>
$("#inputForm").validate({
submitHandler: function(form){
// 获取选中角色
$("#userRoleString").val(roleGrid.dataGrid('getSelectRows').join(','));
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);
if(data.result == Global.TRUE){
js.closeCurrentTabPage(function(contentWindow){
contentWindow.page();
});
}
}, "json");
}
});
// 加载角色列表
var roleGrid = $("#roleGrid").dataGrid({
url: ctx + 'sys/role/treeData',
postData: [
{name:'userType',value:'employee'},
{name:'ctrlPermi',value:'2'}
],
columnModel: [
{header:'角色名称', name:'roleName', sortable:false, width:100, align:"center"},
{header:'角色编码', name:'id', sortable:false, width:100, align:"center"}
],
showCheckbox: true,
autoGridHeight: function(){
return 'auto';
},
autoGridWidth: function(){
return $('#inputForm .box-body').width()-20;
},
ajaxSuccess: function(){
}
});
</script>

@ -25,7 +25,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
</div> </div>
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a> <a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
<a href="/js/a/sys/empUser/form?op=add" class="btn btn-default btnTool" title="新增用户"><i class="fa fa-plus"></i> 新增</a> <a href="sys/user/add" class="btn btn-default btnTool" title="新增用户"><i class="fa fa-plus"></i> 新增</a>
<div class="btn-group"> <div class="btn-group">
<a href="javascript:" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> <a href="javascript:" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-navicon"></i> <span class="caret"></span> <i class="fa fa-navicon"></i> <span class="caret"></span>

Loading…
Cancel
Save