minijson使用_java layuimini使用json传值
layuiAdmin首頁(yè)加載權(quán)限
// layuimini.init('api/init.json');原項(xiàng)目請(qǐng)求的是這些靜態(tài)資源
layuimini.init('/permission/initMenu');
init.json格式
所以要從后臺(tái)定義請(qǐng)求這些數(shù)據(jù)
特別注意:一定要按照要求格式,采用遞歸,由上到下獲取數(shù)據(jù)
/**
* 初始化菜單
* @return
*/
@RequestMapping(value = "/initMenu")
@ResponseBody
public Map initMenu(){
Mapmap=new HashMap<>();
MapclearInfo=new HashMap<>();
clearInfo.put("clearUrl","api/clear.json");
map.put("clearInfo",clearInfo);
MaphomeInfo=new HashMap<>();
homeInfo.put("title","首頁(yè)");
homeInfo.put("icon","fa fa-home");
homeInfo.put("href","page/welcome-1.html?mpi=m-p-i-0");
map.put("homeInfo",homeInfo);
MaplogoInfo=new HashMap<>();
logoInfo.put("title","layuiAdmin");
logoInfo.put("image","images/logo.png");
logoInfo.put("href","");
map.put("logoInfo",logoInfo);
MapmenuInfo=new LinkedHashMap<>();//保證菜單的順序
List permission = getPermission(1, 0);
permission.forEach(t->{
menuInfo.put(t.getTitle(),t);
});
map.put("menuInfo",menuInfo);
return map;
}
/**
* 按照需求獲取角色的權(quán)限
* @return
*/
@RequestMapping(value = "/getPermissionBySelect")
@ResponseBody
public ListgetPermissionBySelect(){
List permission = getPermission(1, 0);
return permission;
}
/**
* 遞歸獲取權(quán)限
* @param roleId
* @param permissionId
* @return
*/
public List getPermission(Integer roleId, Integer permissionId){
List list=new ArrayList<>();
ListrolePermission = permissionDao.getListRolePermission(roleId,permissionId);
rolePermission.forEach(t->{
if (t.getPermission().getHasSon()!=0){//嚴(yán)格按照l(shuí)ayuiadmin菜單格式
List permission = getPermission(roleId, t.getPermissionId());
t.getPermission().setChild(permission);
}
list.add(t.getPermission());
});
return list;
}
而權(quán)限列表頁(yè)面邏輯分為三個(gè)部分
權(quán)限列表,可以更新刪除權(quán)限,刪除的同時(shí)必須刪除角色權(quán)限表中的數(shù)據(jù),同樣采用遞歸由上到下全部刪除
角色列表,實(shí)現(xiàn)用戶即角色,刪除時(shí),所有角色權(quán)限相應(yīng)內(nèi)容刪除。
樹形權(quán)限菜單,給某個(gè)級(jí)別的權(quán)限添加子集。賦予某個(gè)角色相應(yīng)的權(quán)限。
其他的操作再用戶管理,操作用戶角色關(guān)系,可做到用戶即角色。
關(guān)于權(quán)限頁(yè)面的代碼:
//模擬數(shù)據(jù)有children的才叫節(jié)點(diǎn)
data = null;
/**
* 通過角色I(xiàn)d直接獲取權(quán)限數(shù)據(jù)
* @param roleId
*/
function getPermissionByRoleId(roleId) {
var sendDate = (new Date()).getTime();
$.ajax({
url: "/permission/getTreePermissionList",
type: "get",
data: {
roleId: roleId
},
async: false,
beforeSend: function () {
var icon_load = ``;
$("#test12").html(icon_load);
//在請(qǐng)求后臺(tái)數(shù)據(jù)之前顯示loading圖標(biāo)
},
success: function (msg) {
var receiveDate = (new Date()).getTime();
var responseTimeMs = receiveDate - sendDate;
setTimeout(function () {
$("#icon_loading").remove();
data = msg;
console.log(data);
initTreePermission();
}, responseTimeMs);
},
dataType: "json"
});
}
/**
* 初始化權(quán)限
*/
function initTreePermission() {
//基本演示
tree.render({
elem: '#test12',
data: data,
showCheckbox: true //是否顯示復(fù)選框
,
id: 'demoId1',
isJump: true //是否允許點(diǎn)擊節(jié)點(diǎn)時(shí)彈出新窗口跳轉(zhuǎn)
, oncheck: function (obj) {///復(fù)選框點(diǎn)擊觸發(fā)的事件,,直接和角色綁定添加即可
console.log(obj.data); //得到當(dāng)前點(diǎn)擊的節(jié)點(diǎn)數(shù)據(jù)
console.log(obj.checked); //得到當(dāng)前節(jié)點(diǎn)的展開狀態(tài):open、close、normal
console.log(obj.elem); //得到當(dāng)前節(jié)點(diǎn)元素
},
click: function (obj) {
console.log(obj);
var data = obj.data; //獲取當(dāng)前點(diǎn)擊的節(jié)點(diǎn)數(shù)據(jù)
console.log(data);
layer.open({
type: 1,
// closeBtn:0,
title: ['添加子集權(quán)限', 'font-size:20px;font-weight:bolder;text-align:center;'],
content: $('#updatePermissionForm'), //這里content是一個(gè)DOM,注意:最好該元素要存放在body最外層,否則可能被其它的相對(duì)元素所影響
skin: 'layui-layer-lan',
area: ['500px', '480px'],
offset: '40px',
// 彈出后,渲染表格
success: function (layero, index) {
$("#updatePermissionForm form")[0].reset();//清空之前彈出的內(nèi)容
form.val("updatePermissionForm", { //formTest 即 class="layui-form" 所在元素屬性 lay-filter="" 對(duì)應(yīng)的值
"fatherId": data.id
, "level": data.level + 1
, "hasSon": 0
});
},
cancel: function (index, layero) {
}
});
// layer.msg('狀態(tài):' + obj.state + '
節(jié)點(diǎn)數(shù)據(jù):' + JSON.stringify(data));
}
});
}
//按鈕事件test12
util.event('lay-demo', {
getChecked: function (othis) {
var checkedData = tree.getChecked('demoId1'); //獲取選中節(jié)點(diǎn)的數(shù)據(jù)
console.log("---獲取選中的數(shù)據(jù)--");
console.log(checkedData);
var roleId = $("#editRoleNameByLeft").attr("role_id");
$.ajax({
url: "/permission/savePermissionWithRoleId",
type: "post",
async: false,
data: {
roleId: roleId,
permissionList: JSON.stringify(checkedData)
},
success: function (msg) {
layer.msg("權(quán)限保存成功!");
},
dataType: "json"
});
},
setChecked: function () {
tree.setChecked('demoId1', [12, 18]); //勾選指定節(jié)點(diǎn)
},
reload: function () {
//重載實(shí)例
tree.reload('demoId1', {});
},
addFirstMenu: function () {
//添加一級(jí)菜單
// $("#updatePermissionForm form input[name='hasSon']").parent().parent().remove();
// $("#updatePermissionForm form input[name='href']").parent().parent().remove();
layer.open({
type: 1,
// closeBtn:0,
title: ['添加子集權(quán)限', 'font-size:20px;font-weight:bolder;text-align:center;'],
content: $('#updatePermissionForm'), //這里content是一個(gè)DOM,注意:最好該元素要存放在body最外層,否則可能被其它的相對(duì)元素所影響
skin: 'layui-layer-lan',
area: ['500px', '480px'],
offset: '40px',
// 彈出后,渲染表格
success: function (layero, index) {
$("#updatePermissionForm form")[0].reset();//清空之前彈出的內(nèi)容
form.val("updatePermissionForm", { //formTest 即 class="layui-form" 所在元素屬性 lay-filter="" 對(duì)應(yīng)的值
"fatherId": 0
, "level": 1,
"hasSon": 0
});
},
cancel: function (index, layero) {
}
});
}
});
至此,完成了layuiAdmin的權(quán)限菜單的管理設(shè)置。
總結(jié)
以上是生活随笔為你收集整理的minijson使用_java layuimini使用json传值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle proedure 文件_关
- 下一篇: mysql5.7审计功能开启_MySQL