前台HTML页面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<script type="text/javascript" src="js/global.js"></script>
<link rel="stylesheet" href="./layui/css/layui.css" media="all">
<!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
<div hidden="hidden" class="layui-form-item" style="margin-top: 20px">
<label class="layui-form-label">ID:</label>
<div class="layui-input-inline" style="width: 350px">
<input type="text" name="id" id="userid" required lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<div style="margin-top: 20px" id="test4" class="demo-transfer"></div>
<!--<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">-->
<!--<legend>数据格式解析</legend>-->
<!--</fieldset>-->
<script src="./layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 -->
<script>
layui.use(['transfer', 'layer', 'util', 'form'], function() {
var $ = layui.$,
transfer = layui.transfer,
layer = layui.layer,
form = layui.form,
util = layui.util;
var userroles = [];
var datass = [];
var datas = [];
var ids = [];
function getReole() {
var userid = document.getElementById("userid").value;
$.ajax({
url: globalData.server + "./roles/getAllRoles",
type: 'post',
dataType: 'json',
data: {
"userId": userid
},
success: function(data) {
for(var i in data.data) {
userroles.push("" + data.data[i].id + "");
}
},
error: function(e) {
alert('请求失败')
}
});
$.ajax({
url: globalData.server + './roles/getAllRolesAlls',
type: 'post',
dataType: 'json',
success: function(data) {
for(var i in data.data) {
datas = {
value: data.data[i].id,
title: data.data[i].name
}
datass.push(datas);
}
setTimeout(function() {
transfer.render({
elem: '#test4',
data: datass,
title: ['系统所有角色', '当前用户角色'],
value: userroles,
onchange: function(obj, index) {
for(var i in obj) {
ids.push(obj[i].value)
}
var arr = ['系统所有角色', '当前用户角色'];
if(arr[index] == '系统所有角色') {
$.ajax({
url: globalData.server + 'UserRoles/addUsersByIdRoles',
type: 'post',
dataType: 'json',
data: {
"userId": userid,
"roleId": ids,
'ids': JSON.stringify(ids),
},
success: function(data) {
ids = [];
},
error: function(e) {
alert('请求失败')
}
});
} else {
$.ajax({
url: globalData.server + 'UserRoles/removeUsersByIdRoles',
type: 'post',
dataType: 'json',
data: {
"userId": userid,
"roleId": ids,
'ids': JSON.stringify(ids)
},
success: function(data) {
ids = [];
},
error: function(e) {
alert('请求失败')
}
});
}
}
})
}, 500);
},
error: function(e) {
alert('请求失败')
}
});
}
setTimeout(function() {
getReole();
}, 500);
});
</script>
</body>
</html>
后台控制层页面
package com.crm.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.crm.entity.UserRoles;
import com.crm.entity.Users;
import com.crm.service.UserRolesService;
import com.crm.util.Result;
@RestController
@RequestMapping("/UserRoles")
public class UserRolesController {
@Autowired
private UserRolesService userRolesService;
@RequestMapping("/addUsersByIdRoles")
public Object addUsersByIdRoles(UserRoles userRoles, @RequestParam("ids") Object ids, int userId) {
JSONArray js = JSON.parseArray(ids.toString());
Integer jg = 0;
for (Object i : js) {
userRoles.setUserId(userId);
userRoles.setRoleId(Integer.parseInt(i.toString()));
jg += userRolesService.addUsersByIdRoles(userRoles);
}
if (jg == js.size()) {
return new Result("0", "添加成功", jg, "后台请求成功");
}
Result result = new Result("0", "true", 100, "后台请求成功");
return result;
}
@RequestMapping("/removeUsersByIdRoles")
public Object removeUsersByIdRoles(UserRoles userRoles, @RequestParam("ids") Object ids, int userId) {
JSONArray js = JSON.parseArray(ids.toString());
Integer jg = 0;
for (Object i : js) {
userRoles.setUserId(userId);
userRoles.setRoleId(Integer.parseInt(i.toString()));
jg += userRolesService.removeUsersByIdRoles(userRoles);
}
if (jg == js.size()) {
return new Result("0", "移除成功", jg, "后台请求成功");
}
Result result = new Result("0", "true", 100, "后台请求成功");
return result;
}
}