OpenAuth.Net/OpenAuth.Mvc/userJs/modules.js
yubaolee 7989b4e563 优化api异常提示;
优化授权菜单加载逻辑
2018-04-04 11:59:18 +08:00

250 lines
7.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

layui.config({
base: "/js/"
}).use(['form','vue', 'ztree', 'layer', 'jquery', 'table','droptree','openauth','utils'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.jquery;
var table = layui.table;
var openauth = layui.openauth;
layui.droptree("/UserSession/QueryModuleList", "#ParentName", "#ParentId", false);
$("#menus").loadMenus();
//主列表加载,可反复调用进行刷新
var config= {}; //table的参数如搜索key点击tree的id
var mainList = function (options) {
if (options != undefined) {
$.extend(config, options);
}
table.reload('mainList', {
url: '/UserSession/GetModules',
where: config
});
}
//菜单列表
var menucon = {}; //table的参数如搜索key点击tree的id
var menuList = function (options) {
if (options != undefined) {
$.extend(menucon, options);
}
table.reload('menuList', {
url: '/ModuleManager/LoadMenus',
where: menucon
});
}
//左边树状机构列表
var ztree = function () {
var url = '/UserSession/QueryModuleList';
var zTreeObj;
var setting = {
view: { selectedMulti: false },
data: {
key: {
name: 'Name',
title: 'Name'
},
simpleData: {
enable: true,
idKey: 'Id',
pIdKey: 'ParentId',
rootPId: 'null'
}
},
callback: {
onClick: function (event, treeId, treeNode) {
mainList({ pId: treeNode.Id });
}
}
};
var load = function () {
$.getJSON(url, function (json) {
zTreeObj = $.fn.zTree.init($("#tree"), setting);
var newNode = { Name: "根节点", Id: null, ParentId: "" };
json.push(newNode);
zTreeObj.addNodes(null, json);
mainList({ pId: "" });
zTreeObj.expandAll(true);
});
};
load();
return {
reload: load
}
}();
//添加(编辑)模块对话框
var editDlg = function() {
var vm = new Vue({
el: "#formEdit"
});
var update = false; //是否为更新
var show = function (data) {
var title = update ? "编辑信息" : "添加";
layer.open({
title: title,
area: ["500px", "400px"],
type: 1,
content: $('#divEdit'),
success: function() {
vm.$set('$data', data);
},
end: mainList
});
var url = "/moduleManager/Add";
if (update) {
url = "/moduleManager/Update";
}
//提交数据
form.on('submit(formSubmit)',
function(data) {
$.post(url,
data.field,
function(data) {
layer.msg(data.Message);
},
"json");
return false;
});
}
return {
add: function() { //弹出添加
update = false;
show({
Id: "",
SortNo:1
});
},
update: function(data) { //弹出编辑框
update = true;
show(data);
}
};
}();
//添加菜单对话框
var meditDlg = function () {
var vm = new Vue({
el: "#mfromEdit"
});
var update = false; //是否为更新
var show = function (data) {
var title = update ? "编辑信息" : "添加";
layer.open({
title: title,
area: ["500px", "400px"],
type: 1,
content: $('#divMenuEdit'),
success: function () {
vm.$set('$data', data);
},
end: menuList
});
var url = "/moduleManager/AddMenu";
if (update) {
url = "/moduleManager/UpdateMenu";
}
//提交数据
form.on('submit(mformSubmit)',
function (data) {
$.post(url,
data.field,
function (data) {
layer.msg(data.Message);
},
"json");
return false;
});
}
return {
add: function (moduleId) { //弹出添加
update = false;
show({
Id: "",
ModuleId:moduleId,
SortNo: 1
});
},
update: function (data) { //弹出编辑框
update = true;
show(data);
}
};
}();
//监听模块表格内部按钮
table.on('tool(list)', function (obj) {
var data = obj.data;
if (obj.event === 'detail') { //查看
//layer.msg('ID' + data.Id + ' 的查看操作');
menuList({moduleId:data.Id});
}
});
//监听菜单表格内部按钮
table.on('tool(menulist)', function (obj) {
var data = obj.data;
if (obj.event === 'del') { //删除菜单
openauth.del("/moduleManager/delMenu",
data.Id,menuList);
}
});
//监听页面主按钮操作
var active = {
btnDel: function () { //批量删除
var checkStatus = table.checkStatus('mainList')
, data = checkStatus.data;
openauth.del("/moduleManager/Delete",
data.map(function (e) { return e.Id; }),
mainList);
}
, btnAdd: function () { //添加模块
editDlg.add();
}
, btnAddMenu: function () { //添加菜单
var checkStatus = table.checkStatus('mainList')
, data = checkStatus.data;
if (data.length != 1) {
layer.msg("请选择一个要添加菜单的模块");
return;
}
meditDlg.add(data[0].Id);
}
, btnEdit: function () { //编辑
var checkStatus = table.checkStatus('mainList')
, data = checkStatus.data;
if (data.length != 1) {
layer.msg("请选择编辑的行,且同时只能编辑一行");
return;
}
editDlg.update(data[0]);
}
, search: function () { //搜索
mainList({ key: $('#key').val() });
}
, btnRefresh: function() {
mainList();
}
, btnAccessModule: function () {
var index = layer.open({
title: "为用户分配模块",
type: 2,
content: "newsAdd.html",
success: function(layero, index) {
}
});
}
};
$('.toolList .layui-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//监听页面主按钮操作 end
})