var setting = {
|
data: {
|
simpleData: {
|
enable: true,
|
idKey: "id",
|
pIdKey: "parentId",
|
rootPId: -1
|
},
|
key: {
|
url:"nourl"
|
}
|
}
|
};
|
var ztree;
|
|
var vm = new Vue({
|
el:'#rapp',
|
data:{
|
showList: true,
|
title: null,
|
menu:{
|
parentName:null,
|
parentId:0,
|
type:1,
|
orderNum:0
|
}
|
},
|
methods: {
|
query: function () {
|
var colunms = Menu.initColumn();
|
var menu = {
|
'name':$("#name").val(),
|
'type':$("#type").val(),
|
'perms':$("#perms").val(),
|
'parentName':$("#parentName").val()
|
}
|
var table = new TreeTable(Menu.id, restServerBaseURL + "sys/menu/list", colunms,menu);
|
table.setExpandColumn(2);
|
table.setIdField("id");
|
table.setCodeField("id");
|
table.setParentCodeField("parentId");
|
table.setExpandAll(false);
|
table.init();
|
Menu.table = table;
|
},
|
getMenu: function(){
|
//加载菜单树
|
$.get(restServerBaseURL + "sys/menu/select", function(r){
|
ztree = $.fn.zTree.init($("#menuTree"), setting, r.menuList);
|
var node = ztree.getNodeByParam("id", vm.menu.parentId);
|
ztree.selectNode(node);
|
|
vm.menu.parentName = node.name;
|
})
|
},
|
add: function(){
|
window.open(baseURL + "admin/modules/sys/menu_edit.html","_blank");
|
},
|
update: function () {
|
var menuId = getMenuId();
|
if(menuId == null){
|
return ;
|
}
|
|
$.get(restServerBaseURL + "sys/menu/info/"+menuId, function(r){
|
vm.showList = false;
|
vm.title = "修改";
|
vm.menu = r.menu;
|
|
vm.getMenu();
|
});
|
},
|
del: function () {
|
confirm('确定要删除选中的记录?', function(){
|
var menuId = getMenuId();
|
if(menuId == null){
|
return ;
|
}
|
$.ajax({
|
type: "POST",
|
url: restServerBaseURL + "sys/menu/delete",
|
data: "menuId=" + menuId,
|
success: function(r){
|
if(r.code === 0){
|
alert('操作成功', function(){
|
vm.reload();
|
});
|
}else{
|
alert(r.msg);
|
}
|
}
|
});
|
});
|
},
|
saveOrUpdate: function () {
|
var url = vm.menu.id == null ? "sys/menu/save" : "sys/menu/update";
|
vm.menu.isshow = $("#isshow")[0].checked==true ? 1 : 0;
|
$.ajax({
|
type: "POST",
|
url: restServerBaseURL + url,
|
contentType: "application/json",
|
data: JSON.stringify(vm.menu),
|
success: function(r){
|
if(r.code === 0){
|
alert('操作成功', function(){
|
vm.reload();
|
});
|
}else{
|
alert(r.msg);
|
}
|
}
|
});
|
},
|
menuTree: function(){
|
openLayerOfBtn("300px", "450px", "选择菜单", "menuLayer", vm.menuTreeCallback);
|
},
|
menuTreeCallback: function () {
|
var node = ztree.getSelectedNodes();
|
//选择上级菜单
|
vm.menu.parentId = node[0].id;
|
vm.menu.parentName = node[0].name;
|
},
|
reload: function () {
|
vm.showList = true;
|
Menu.table.refresh();
|
},
|
refresh: function () {
|
vm.showList = true;
|
window.location.reload();
|
}
|
}
|
});
|
|
var Menu = {
|
id: "menuTable",
|
table: null,
|
layerIndex: -1
|
};
|
|
/**
|
* 初始化表格的列
|
*/
|
Menu.initColumn = function () {
|
var columns = [
|
{field: 'selectItem', radio: true},
|
{title: '菜单名称', field: 'name', sortable: true, width: 160, align: 'center'},
|
{title: '上级菜单', field: 'parentName', sortable: true, width: 120, align: 'center'},
|
{title: '图标', field: 'icon', sortable: true, width: 60, align: 'center', formatter: function(item, index){
|
return item.icon == null ? '' : '<i class="'+item.icon+' fa-lg"></i>';
|
}},
|
{title: '类型', field: 'type', sortable: true, width: 60, align: 'center', formatter: function(item, index){
|
if(item.type === 0){
|
return '<span class="label label-primary">目录</span>';
|
}
|
if(item.type === 1){
|
return '<span class="label label-success">菜单</span>';
|
}
|
if(item.type === 2){
|
return '<span class="label label-warning">按钮</span>';
|
}
|
}},
|
{title: '排序号', field: 'orderNum', sortable: true, width: 60, align: 'center'},
|
{title: '菜单URL', field: 'url', sortable: true, width: 130, align: 'center'},
|
{title: '授权标识', field: 'perms', sortable: true, width: 130, align: 'center'},
|
{title: '操作',field: 'id', width: 50,align:'center', align: 'center', formatter:function(item, index){
|
var menuId = item.id;
|
return action(menuId);
|
}
|
}
|
]
|
return columns;
|
};
|
function action(menuId){
|
if (hasPermission('sys:menu:edit')) {
|
return '<div>'+
|
'<a class="btn btn-warning" style="padding:3px 6px;margin-left: 5px;" onclick="update1('+menuId+');">修改</a> '+
|
'<a class="btn btn-danger" style="padding:3px 6px;margin-left: 5px;" onclick="delete1();">删除</a>'+
|
'</div>';
|
}
|
}
|
|
function update1(menuId){
|
window.open(baseURL + "admin/modules/sys/menu_edit.html?menuId="+menuId, "_blank");
|
}
|
|
function delete1(){
|
confirm('确定要删除选中的记录?', function(){
|
var menuId = getMenuId();
|
if(menuId == null){
|
return ;
|
}
|
$.ajax({
|
type: "POST",
|
url: restServerBaseURL + "sys/menu/delete",
|
data: "menuId=" + menuId,
|
success: function(r){
|
if(r.code === 0){
|
alert('操作成功', function(){
|
vm.reload();
|
});
|
}else{
|
alert(r.msg);
|
}
|
}
|
});
|
});
|
}
|
|
|
function getMenuId () {
|
var selected = $('#menuTable').bootstrapTreeTable('getSelections');
|
var update = arguments[0] ? arguments[0] : false;
|
if (selected.length == 0) {
|
// update第一步GET的时候,为防止弹窗,不判断选择记录与否
|
if (!update) {
|
alert("请选择一条记录");
|
}
|
return;
|
} else {
|
return selected[0].id;
|
}
|
}
|
|
$(function () {
|
var colunms = Menu.initColumn();
|
var table = new TreeTable(Menu.id, restServerBaseURL + "sys/menu/list", colunms);
|
table.setExpandColumn(2);
|
table.setIdField("id");
|
table.setCodeField("id");
|
table.setParentCodeField("parentId");
|
table.setExpandAll(false);
|
table.init();
|
Menu.table = table;
|
});
|
|
function clearForm(){
|
$(".panel-body input").each(function(){
|
$(this).val("");
|
})
|
$("#type").val("");
|
}
|
|
var parentid=0; //用于排序时要列的parentid值
|
//排序列表
|
function ShowOrderList(){
|
var menu = $('#menuTable').bootstrapTreeTable('getSelections');
|
parentid = menu.length != 0 ?menu[0].id:parentid;
|
$.ajax({
|
type: "GET",
|
url: restServerBaseURL + "sys/menu/queryNoButtonListByParentId?parentid="+parentid,
|
contentType: "application/json",
|
success: function(msg) {
|
jQuery("#menu_order").empty();
|
var sysMenuList = msg.sysMenuList;
|
jQuery.each(sysMenuList, function(i, item) {
|
jQuery("#menu_order").append("<option rorder="+item.orderNum+" value=" + item.id + ">" + item.name + "</option>");
|
});
|
$("#menu_order").attr("size", 15);
|
}
|
});
|
}
|
|
function UpdateOrder(type){
|
// var valueids="";
|
// var sorts = "";
|
if ($("#menu_order option:selected").length == 0) {
|
alert("请选择节点!");
|
return false;
|
}
|
if ($("#menu_order option:selected").length >1) {
|
alert("请选择一个节点!");
|
return false;
|
}
|
// valueids = $("#menu_order option:selected").attr("value") +",";
|
if (type == 'up') {//升序
|
if ($("#menu_order option:selected").prev().length == 0) {
|
alert("已经是最上了!");
|
return false;
|
}else{
|
// valueids += $("#menu_order option:selected").prev().attr("value");
|
// sorts = $("#menu_order option:selected").prev().attr("rorder")+",";
|
$('#menu_order option:selected').insertBefore($('#menu_order option:selected').prev());
|
}
|
}else if(type == 'down'){//降序
|
if ($("#menu_order option:selected").next().length == 0) {
|
alert("已经是最下了!");
|
return false;
|
}else{
|
// valueids += $("#menu_order option:selected").next().attr("value");
|
// sorts = $("#menu_order option:selected").next().attr("rorder")+",";
|
$('#menu_order option:selected').insertAfter($('#menu_order option:selected').next());
|
}
|
}
|
else if(type == 'allup') {
|
if ($("#menu_order option:selected").prev().length == 0) {
|
alert("已经是最上了!");
|
return false;
|
}else{
|
$('#menu_order option:selected').insertBefore($('#menu_order option').first());
|
}
|
}
|
else if(type == 'alldown') {
|
if ($("#menu_order option:selected").next().length == 0) {
|
alert("已经是最下了!");
|
return false;
|
}else {
|
$('#menu_order option:selected').insertAfter($('#menu_order option').last());
|
}
|
}
|
// sorts+=$("#menu_order option:selected").attr("rorder");
|
|
}
|
|
function submitOrder() {
|
var valueids="";
|
$("#menu_order option").each(function () {
|
if(valueids != "") valueids+=",";
|
valueids += $(this).attr("value");
|
});
|
$.ajax({
|
type: "POST",
|
url: restServerBaseURL + "sys/menu/updateRorder",
|
contentType: "application/json",
|
data: JSON.stringify({valueids:valueids}),
|
success: function (r) {
|
if (r.code === 0) {
|
alert('保存成功!');
|
ShowOrderList();
|
vm.reload();
|
} else {
|
alert(r.msg);
|
}
|
}
|
});
|
}
|