精简framework.js使用$.bc
This commit is contained in:
parent
1c17bb7362
commit
11326158f2
|
@ -47,7 +47,7 @@
|
||||||
if (!$.browser.versions.ios) $("#sidebar").niceScroll({ styler: "fb", cursorcolor: "#e8403f", cursorwidth: '3', cursorborderradius: '10px', background: '#404040', spacebarenabled: false, cursorborder: '', scrollspeed: 60 });
|
if (!$.browser.versions.ios) $("#sidebar").niceScroll({ styler: "fb", cursorcolor: "#e8403f", cursorwidth: '3', cursorborderradius: '10px', background: '#404040', spacebarenabled: false, cursorborder: '', scrollspeed: 60 });
|
||||||
|
|
||||||
// load widget data
|
// load widget data
|
||||||
bd({
|
$.bc({
|
||||||
url: '../api/Notifications/',
|
url: '../api/Notifications/',
|
||||||
swal: false,
|
swal: false,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
(function ($) {
|
(function ($) {
|
||||||
var handlerCallback = function (callback, e, data) {
|
|
||||||
if ($.isFunction(callback)) callback.call(e, data);
|
|
||||||
if ($.isFunction(this.options.callback)) this.options.callback.call(e, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
BootstrapAdmin = function (options) {
|
BootstrapAdmin = function (options) {
|
||||||
var that = this;
|
var that = this;
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
@ -252,184 +247,118 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var htmlTemplate = '<div class="form-group checkbox col-lg-3 col-xs-4"><label class="tooltips" data-placement="top" data-original-title="{3}" title="{3}"><input type="checkbox" value="{0}" {2}/>{1}</label></div>';
|
var handlerCallback = function (callback, e, data) {
|
||||||
|
if ($.isFunction(callback)) callback.call(e, data);
|
||||||
|
if ($.isFunction(this.options.callback)) this.options.callback.call(e, data);
|
||||||
|
}
|
||||||
|
|
||||||
var processData = function (options) {
|
|
||||||
var data = $.extend({ data: {}, remote: true, method: "POST", Id: "", url: this.url, title: this.title, html: this.html, swal: true }, options);
|
|
||||||
|
|
||||||
if (data.remote) {
|
$.extend({
|
||||||
$.ajax({
|
bc: function (options, callback) {
|
||||||
url: data.url + data.Id,
|
var data = $.extend({
|
||||||
data: data.data,
|
remote: true,
|
||||||
type: data.method,
|
Id: "",
|
||||||
success: function (result) {
|
url: this.url,
|
||||||
success(result);
|
data: {},
|
||||||
},
|
method: "POST",
|
||||||
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
htmlTemplate: '<div class="form-group checkbox col-lg-3 col-xs-4"><label class="tooltips" data-placement="top" data-original-title="{3}" title="{3}"><input type="checkbox" value="{0}" {2}/>{1}</label></div>',
|
||||||
if ($.isFunction(data.callback)) data.callback(false);
|
title: this.title,
|
||||||
}
|
swal: true,
|
||||||
});
|
modal: null,
|
||||||
}
|
callback: null
|
||||||
else success()
|
}, options);
|
||||||
|
|
||||||
function success(result) {
|
if (!data.url || data.url == "") {
|
||||||
if ($.isFunction(data.callback)) {
|
swal('参数错误', '未设置请求地址Url', 'error');
|
||||||
var formatData = result;
|
return;
|
||||||
if ($.isArray(result)) {
|
|
||||||
if ($.isFunction(data.html)) formatData = data.html(result);
|
|
||||||
}
|
|
||||||
data.callback(formatData);
|
|
||||||
}
|
}
|
||||||
else if ($.isPlainObject(data.callback) && data.callback.modal !== undefined) {
|
|
||||||
$("#" + data.callback.modal).modal('hide');
|
if (data.remote && data.url) {
|
||||||
|
$.ajax({
|
||||||
|
url: data.url + data.Id,
|
||||||
|
data: data.data,
|
||||||
|
type: data.method,
|
||||||
|
success: function (result) {
|
||||||
|
success(result);
|
||||||
|
},
|
||||||
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
||||||
|
if ($.isFunction(data.callback)) data.callback(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (data.swal) {
|
function success(result) {
|
||||||
if (result) { swal("成功", data.title, "success"); }
|
if ($.isFunction(data.callback)) {
|
||||||
else { swal("失败", data.title, "error"); }
|
data.callback(result);
|
||||||
|
}
|
||||||
|
if (data.modal !== null) {
|
||||||
|
$("#" + data.modal).modal('hide');
|
||||||
|
}
|
||||||
|
if (data.swal) {
|
||||||
|
if (result) { swal("成功", data.title, "success"); }
|
||||||
|
else { swal("失败", data.title, "error"); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
window.bd = processData;
|
|
||||||
|
|
||||||
// Roles
|
// Roles
|
||||||
Role = {
|
Role = {
|
||||||
url: '../api/Roles/',
|
url: '../api/Roles/',
|
||||||
title: "授权角色",
|
title: "授权角色"
|
||||||
html: function (result) {
|
|
||||||
return $.map(result, function (element, index) {
|
|
||||||
return $.format(htmlTemplate, element.ID, element.RoleName, element.Checked, element.Description);
|
|
||||||
}).join('');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Role.getRolesByUserId = function (userId, callback) {
|
|
||||||
processData.call(this, { Id: userId, callback: callback, data: { type: "user" }, swal: false });
|
|
||||||
};
|
|
||||||
Role.getRolesByGroupId = function (groupId, callback) {
|
|
||||||
processData.call(this, { Id: groupId, callback: callback, data: { type: "group" }, swal: false });
|
|
||||||
};
|
|
||||||
Role.getRolesByMenuId = function (menuId, callback) {
|
|
||||||
processData.call(this, { Id: menuId, callback: callback, data: { type: "menu" }, swal: false });
|
|
||||||
};
|
|
||||||
Role.saveRolesByUserId = function (userId, roleIds, callback) {
|
|
||||||
processData.call(this, { Id: userId, callback: callback, method: "PUT", data: { type: "user", roleIds: roleIds } });
|
|
||||||
};
|
|
||||||
Role.saveRolesByGroupId = function (groupId, roleIds, callback) {
|
|
||||||
processData.call(this, { Id: groupId, callback: callback, method: "PUT", data: { type: "group", roleIds: roleIds } });
|
|
||||||
};
|
|
||||||
Role.saveRolesByMenuId = function (menuId, roleIds, callback) {
|
|
||||||
processData.call(this, { Id: menuId, callback: callback, method: "PUT", data: { type: "menu", roleIds: roleIds } });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
User = {
|
User = {
|
||||||
url: '../api/Users/',
|
url: '../api/Users/',
|
||||||
title: "授权用户",
|
title: "授权用户"
|
||||||
html: function (result) {
|
|
||||||
return $.map(result, function (element, index) {
|
|
||||||
return $.format(htmlTemplate, element.ID, element.DisplayName, element.Checked, element.UserName);
|
|
||||||
}).join('');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
User.getUsersByRoleId = function (roleId, callback) {
|
|
||||||
processData.call(this, { Id: roleId, callback: callback, data: { type: "role" }, swal: false });
|
|
||||||
};
|
|
||||||
User.saveUsersByRoleId = function (roleId, userIds, callback) {
|
|
||||||
processData.call(this, { Id: roleId, callback: callback, method: "PUT", data: { type: "role", userIds: userIds } });
|
|
||||||
};
|
|
||||||
User.getUsersByGroupeId = function (groupId, callback) {
|
|
||||||
processData.call(this, { Id: groupId, callback: callback, data: { type: "group" }, swal: false });
|
|
||||||
};
|
|
||||||
User.saveUsersByGroupId = function (groupId, userIds, callback) {
|
|
||||||
processData.call(this, { Id: groupId, callback: callback, method: "PUT", data: { type: "group", userIds: userIds } });
|
|
||||||
};
|
|
||||||
User.saveUserDisplayName = function (user, callback) {
|
|
||||||
processData.call(this, { Id: '', callback: callback, method: "PUT", data: user, title: "修改用户显示名称" });
|
|
||||||
};
|
|
||||||
User.changePassword = function (user) {
|
|
||||||
processData.call(this, { Id: '', method: "PUT", data: user });
|
|
||||||
};
|
|
||||||
User.processUser = function (id, result, callback) {
|
|
||||||
processData.call(this, { Id: id, callback: callback, method: "PUT", data: { type: "user", userIds: result }, title: result == "1" ? "授权用户" : "拒绝用户" });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Groups
|
// Groups
|
||||||
Group = {
|
Group = {
|
||||||
url: '../api/Groups/',
|
url: '../api/Groups/',
|
||||||
title: "授权部门",
|
title: "授权部门"
|
||||||
html: function (result) {
|
|
||||||
return $.map(result, function (element, index) {
|
|
||||||
return $.format(htmlTemplate, element.ID, element.GroupName, element.Checked, element.Description);
|
|
||||||
}).join('');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Group.getGroupsByUserId = function (userId, callback) {
|
|
||||||
processData.call(this, { Id: userId, callback: callback, data: { type: "user" }, swal: false });
|
|
||||||
};
|
|
||||||
Group.saveGroupsByUserId = function (userId, groupIds, callback) {
|
|
||||||
processData.call(this, { Id: userId, callback: callback, method: "PUT", data: { type: "user", groupIds: groupIds } });
|
|
||||||
};
|
|
||||||
Group.getGroupsByRoleId = function (roleId, callback) {
|
|
||||||
processData.call(this, { Id: roleId, callback: callback, data: { type: "role" }, swal: false });
|
|
||||||
};
|
|
||||||
Group.saveGroupsByRoleId = function (roleId, groupIds, callback) {
|
|
||||||
processData.call(this, { Id: roleId, callback: callback, method: "PUT", data: { type: "role", groupIds: groupIds } });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Menus
|
// Menus
|
||||||
Menu = {
|
Menu = {
|
||||||
url: '../api/Menus/',
|
url: '../api/Menus/',
|
||||||
title: "授权菜单",
|
title: "授权菜单"
|
||||||
html: function (result) {
|
|
||||||
var htmlString = "";
|
|
||||||
if ($.isArray(result)) {
|
|
||||||
htmlString = Menu.cascadeMenu(result)
|
|
||||||
}
|
|
||||||
return htmlString;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Menu.cascadeMenu = function (menus) {
|
|
||||||
var html = "";
|
|
||||||
$.each(menus, function (index, menu) {
|
|
||||||
if (menu.Menus.length == 0) {
|
|
||||||
html += $.format('<li class="dd-item dd3-item" data-id="{0}" data-category="{3}"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><label><input type="checkbox" value="{0}"><span><i class="{1}"></i>{2}</span></label><label><input type="radio" name="menu" value="{0}"><span><i class="{1}"></i>{2}</span></label></div></li>', menu.ID, menu.Icon, menu.Name, menu.Category);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html = $.format('<li class="dd-item dd3-item" data-id="{0}" data-category="{3}"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><label><input type="checkbox" value="{0}"><span><i class="{1}"></i>{2}</span></label><label><input type="radio" name="menu" value="{0}"><span><i class="{1}"></i>{2}</span></label></div></li><ol class="dd-list">{4}</ol>', menu.ID, menu.Icon, menu.Name, menu.Category, Menu.cascadeMenu(menu.Menus));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return html;
|
|
||||||
};
|
|
||||||
Menu.getMenus = function (callback) {
|
|
||||||
processData.call(this, { Id: 0, callback: callback, data: { type: "user" }, swal: false });
|
|
||||||
};
|
|
||||||
Menu.getMenusByRoleId = function (roleId, callback) {
|
|
||||||
processData.call(this, { Id: roleId, callback: callback, data: { type: "role" }, swal: false, html: null });
|
|
||||||
};
|
|
||||||
Menu.saveMenusByRoleId = function (roleId, menuIds, callback) {
|
|
||||||
processData.call(this, { Id: roleId, callback: callback, method: "PUT", data: { type: "role", menuIds: menuIds } });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Exceptions
|
// Exceptions
|
||||||
Exceptions = {
|
Exceptions = {
|
||||||
url: '../api/Exceptions/',
|
url: '../api/Exceptions/',
|
||||||
title: "程序异常日志",
|
title: "程序异常日志"
|
||||||
html: function (result) {
|
|
||||||
return result.map(function (ele) {
|
|
||||||
return $.format('<div class="form-group col-lg-3 col-md-3 col-sm-4 col-xs-6"><a class="logfile" href="#"><i class="fa fa-file-text-o"></i><span>{0}</span></a></div>', ele);
|
|
||||||
}).join('');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Exceptions.getFiles = function (callback) {
|
|
||||||
processData.call(this, { Id: "", callback: callback, swal: false });
|
|
||||||
}
|
|
||||||
Exceptions.getFileByName = function (fileName, callback) {
|
|
||||||
processData.call(this, { Id: "", callback: callback, method: "PUT", swal: false, data: { "": fileName } });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Dicts
|
// Dicts
|
||||||
Dicts = {
|
Dicts = {
|
||||||
url: '../api/Dicts/'
|
url: '../api/Dicts/'
|
||||||
};
|
};
|
||||||
Dicts.retrieveCategories = function (callback) {
|
|
||||||
processData.call(this, { Id: 1, callback: callback, swal: false, data: { type: 'category' } });
|
// Infos
|
||||||
};
|
Infos = {
|
||||||
|
url: '../api/Infos/'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Profiles
|
||||||
|
Profiles = {
|
||||||
|
url: '../api/Profiles/',
|
||||||
|
title: '网站设置'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Messages
|
||||||
|
Messages = {
|
||||||
|
url: '../api/Messages/'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tasks
|
||||||
|
Tasks = {
|
||||||
|
url: '../api/Tasks/'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Notifications
|
||||||
|
Notifications = {
|
||||||
|
url: '../api/Notifications/'
|
||||||
|
}
|
||||||
})(jQuery);
|
})(jQuery);
|
|
@ -1,27 +1,15 @@
|
||||||
using Bootstrap.DataAccess;
|
using Bootstrap.DataAccess;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Web.Http;
|
using System.Web.Http;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Bootstrap.Admin.Controllers
|
namespace Bootstrap.Admin.Controllers
|
||||||
{
|
{
|
||||||
public class TasksController : ApiController
|
public class TasksController : ApiController
|
||||||
{
|
{
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public Tasks Get()
|
public IEnumerable<Task> Get()
|
||||||
{
|
{
|
||||||
var tasks = new Tasks();
|
return TaskHelper.RetrieveTasks();
|
||||||
TaskHelper.RetrieveTasks().AsParallel().ForAll(n => tasks.Users.Add(n));
|
|
||||||
return tasks;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Tasks
|
|
||||||
{
|
|
||||||
public Tasks()
|
|
||||||
{
|
|
||||||
Users = new List<Task>();
|
|
||||||
}
|
|
||||||
public List<Task> Users { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
$('#panelResultHeader').html('查询结果<span class="hidden-400 text-danger">(仅 Administrators 角色成员可删除数据)<span>');
|
$('#panelResultHeader').html('查询结果<span class="hidden-400 text-danger">(仅 Administrators 角色成员可删除数据)<span>');
|
||||||
var bsa = new BootstrapAdmin({
|
var bsa = new BootstrapAdmin({
|
||||||
url: '../api/Dicts',
|
url: Dicts.url,
|
||||||
dataEntity: new DataEntity({
|
dataEntity: new DataEntity({
|
||||||
map: {
|
map: {
|
||||||
ID: "dictID",
|
ID: "dictID",
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$('table').smartTable({
|
$('table').smartTable({
|
||||||
url: '../api/Dicts',
|
url: Dicts.url,
|
||||||
sortName: 'Category',
|
sortName: 'Category',
|
||||||
queryParams: function (params) { return $.extend(params, { category: $('#txt_dict_cate').val(), name: $("#txt_dict_name").val(), define: $("#txt_dict_define").val() }); },
|
queryParams: function (params) { return $.extend(params, { category: $('#txt_dict_cate').val(), name: $("#txt_dict_name").val(), define: $("#txt_dict_define").val() }); },
|
||||||
columns: [{ checkbox: true },
|
columns: [{ checkbox: true },
|
||||||
|
@ -49,10 +49,13 @@
|
||||||
$('select').selectpicker();
|
$('select').selectpicker();
|
||||||
|
|
||||||
// autocomplete
|
// autocomplete
|
||||||
Dicts.retrieveCategories(function (result) {
|
$.bc({
|
||||||
$('#txt_dict_cate').typeahead({
|
Id: 1, url: Dicts.url, data: { type: 'category' }, swal: false,
|
||||||
source: result,
|
callback: function (result) {
|
||||||
autoSelect: true
|
$('#txt_dict_cate').typeahead({
|
||||||
});
|
source: result,
|
||||||
|
autoSelect: true
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
|
@ -32,8 +32,14 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_view').on('click', function (row) {
|
$('#btn_view').on('click', function (row) {
|
||||||
Exceptions.getFiles(function (data) {
|
$.bc({
|
||||||
$dataForm.children('div').html(data);
|
Id: "", url: Exceptions.url, swal: false,
|
||||||
|
callback: function (result) {
|
||||||
|
var html = result.map(function (ele) {
|
||||||
|
return $.format('<div class="form-group col-lg-3 col-md-3 col-sm-4 col-xs-6"><a class="logfile" href="#"><i class="fa fa-file-text-o"></i><span>{0}</span></a></div>', ele);
|
||||||
|
}).join('');
|
||||||
|
$dataForm.children('div').html(html);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
$dialog.modal('show');
|
$dialog.modal('show');
|
||||||
});
|
});
|
||||||
|
@ -44,8 +50,11 @@
|
||||||
$errorList.hide();
|
$errorList.hide();
|
||||||
$errorDetail.show();
|
$errorDetail.show();
|
||||||
$dataFormDetail.html('<div class="text-center"><i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i></div>');
|
$dataFormDetail.html('<div class="text-center"><i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i></div>');
|
||||||
Exceptions.getFileByName(fileName, function (data) {
|
$.bc({
|
||||||
$dataFormDetail.html(data);
|
Id: "", url: Exceptions.url, method: "PUT", swal: false, data: { "": fileName },
|
||||||
|
callback: function (result) {
|
||||||
|
$dataFormDetail.html(result);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
|
var $dialogUser = $("#dialogUser");
|
||||||
|
var $dialogUserHeader = $('#myUserModalLabel');
|
||||||
|
var $dialogUserForm = $('#userForm');
|
||||||
|
var $dialogRole = $('#dialogRole');
|
||||||
|
var $dialogRoleHeader = $('#myRoleModalLabel');
|
||||||
|
var $dialogRoleForm = $('#roleForm');
|
||||||
|
|
||||||
var bsa = new BootstrapAdmin({
|
var bsa = new BootstrapAdmin({
|
||||||
url: '../api/Groups',
|
url: Group.url,
|
||||||
dataEntity: new DataEntity({
|
dataEntity: new DataEntity({
|
||||||
map: {
|
map: {
|
||||||
ID: "groupID",
|
ID: "groupID",
|
||||||
|
@ -12,45 +19,59 @@
|
||||||
assign: [{
|
assign: [{
|
||||||
id: 'btn_assignRole',
|
id: 'btn_assignRole',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
Role.getRolesByGroupId(row.ID, function (data) {
|
$.bc({
|
||||||
$("#dialogRole .modal-title").text($.format('{0}-角色授权窗口', row.GroupName));
|
Id: row.ID, url: Role.url, data: { type: "group" }, swal: false,
|
||||||
$('#dialogRole form').html(data);
|
callback: function (result) {
|
||||||
$('#dialogRole').modal('show');
|
var htmlTemplate = this.htmlTemplate;
|
||||||
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.RoleName, element.Checked, element.Description);
|
||||||
|
}).join('')
|
||||||
|
$dialogRoleHeader.text($.format('{0}-角色授权窗口', row.GroupName));
|
||||||
|
$dialogRoleForm.html(html);
|
||||||
|
$dialogRole.modal('show');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btn_assignUser',
|
id: 'btn_assignUser',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
User.getUsersByGroupeId(row.ID, function (data) {
|
$.bc({
|
||||||
$("#dialogUser .modal-title").text($.format('{0}-用户授权窗口', row.GroupName));
|
Id: row.ID, url: User.url, data: { type: "group" }, swal: false,
|
||||||
$('#dialogUser form').html(data);
|
callback: function (result) {
|
||||||
$('#dialogUser').modal('show');
|
var htmlTemplate = this.htmlTemplate;
|
||||||
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.DisplayName, element.Checked, element.UserName);
|
||||||
|
}).join('');
|
||||||
|
$dialogUserHeader.text($.format('{0}-用户授权窗口', row.GroupName));
|
||||||
|
$dialogUserForm.html(html);
|
||||||
|
$dialogUser.modal('show');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btnSubmitRole',
|
id: 'btnSubmitRole',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var groupId = row.ID;
|
var groupId = row.ID;
|
||||||
var roleIds = $('#dialogRole :checked').map(function (index, element) {
|
var roleIds = $dialogRole.find('input:checked').map(function (index, element) {
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
Role.saveRolesByGroupId(groupId, roleIds, { modal: 'dialogRole' });
|
$.bc({ Id: groupId, url: Role.url, method: "PUT", data: { type: "group", roleIds: roleIds }, title: Role.title, modal: 'dialogRole' });
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btnSubmitUser',
|
id: 'btnSubmitUser',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var groupId = row.ID;
|
var groupId = row.ID;
|
||||||
var userIds = $('#dialogUser :checked').map(function (index, element) {
|
var userIds = $dialogUser.find(':checked').map(function (index, element) {
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
User.saveUsersByGroupId(groupId, userIds, { modal: 'dialogUser' });
|
$.bc({ Id: groupId, url: User.url, method: "PUT", data: { type: "group", userIds: userIds }, title: User.title, modal: 'dialogUser' });
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$('table').smartTable({
|
$('table').smartTable({
|
||||||
url: '../api/Groups', //请求后台的URL(*)
|
url: Group.url, //请求后台的URL(*)
|
||||||
sortName: 'GroupName',
|
sortName: 'GroupName',
|
||||||
queryParams: function (params) { return $.extend(params, { groupName: $("#txt_search_name").val(), description: $("#txt_group_desc").val() }); }, //传递参数(*)
|
queryParams: function (params) { return $.extend(params, { groupName: $("#txt_search_name").val(), description: $("#txt_group_desc").val() }); }, //传递参数(*)
|
||||||
columns: [{ checkbox: true },
|
columns: [{ checkbox: true },
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
var $headerIcon = $('#headerIcon');
|
var $headerIcon = $('#headerIcon');
|
||||||
var preIcon = $headerIcon.attr('src');
|
var preIcon = $headerIcon.attr('src');
|
||||||
$('#fileIcon').fileinput({
|
$('#fileIcon').fileinput({
|
||||||
uploadUrl: '../api/Infos',
|
uploadUrl: Infos.url,
|
||||||
language: 'zh',
|
language: 'zh',
|
||||||
allowedFileExtensions: ['jpg'],
|
allowedFileExtensions: ['jpg'],
|
||||||
initialPreview: [
|
initialPreview: [
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
click: function (row, data) {
|
click: function (row, data) {
|
||||||
if ($(this).attr('data-valid') == "true") {
|
if ($(this).attr('data-valid') == "true") {
|
||||||
data.UserStatus = 2;
|
data.UserStatus = 2;
|
||||||
User.changePassword(data);
|
$.bc({ url: User.url, method: "PUT", data: data, title: "更改密码" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
@ -70,9 +70,12 @@
|
||||||
click: function (row, data) {
|
click: function (row, data) {
|
||||||
if ($(this).attr('data-valid') == "true") {
|
if ($(this).attr('data-valid') == "true") {
|
||||||
data.UserStatus = 1;
|
data.UserStatus = 1;
|
||||||
User.saveUserDisplayName(data, function (result) {
|
$.bc({
|
||||||
if (result) {
|
url: User.url, method: "PUT", data: data, title: "修改用户显示名称",
|
||||||
$('#userDisplayName').text(data.DisplayName);
|
callback: function (result) {
|
||||||
|
if (result) {
|
||||||
|
$('#userDisplayName').text(data.DisplayName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
|
var $dialog = $('#dialogNew');
|
||||||
|
var $pickIcon = $('#pickIcon');
|
||||||
|
var $iconList = $('#iconTab').find('div.fontawesome-icon-list');
|
||||||
|
var $dialogNew = $dialog.find('div.modal-dialog');
|
||||||
|
var $dialogIcon = $('#dialogIcon');
|
||||||
|
var $dialogMenu = $('#dialogSubMenu').find('.modal-content');
|
||||||
|
var $dialogRole = $('#dialogRole');
|
||||||
|
var $dialogRoleHeader = $('#myRoleModalLabel');
|
||||||
|
var $dialogRoleForm = $('#roleForm');
|
||||||
|
var $btnSubmitMenu = $('#btnSubmitMenu');
|
||||||
|
var $btnPickIcon = $('#btnIcon');
|
||||||
|
var $inputIcon = $('#icon');
|
||||||
|
var $nestMenu = $('#nestable_menu');
|
||||||
|
var $nestMenuInput = $nestMenu.find('div.dd3-content');
|
||||||
|
var $parentMenuID = $('#parentId');
|
||||||
|
var $parentMenuName = $('#parentName');
|
||||||
|
$nestMenuInput.find('label:first').hide();
|
||||||
|
|
||||||
var bsa = new BootstrapAdmin({
|
var bsa = new BootstrapAdmin({
|
||||||
url: '../api/Menus',
|
url: '../api/Menus',
|
||||||
dataEntity: new DataEntity({
|
dataEntity: new DataEntity({
|
||||||
|
@ -17,39 +35,62 @@
|
||||||
assign: [{
|
assign: [{
|
||||||
id: 'btn_assignRole',
|
id: 'btn_assignRole',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
Role.getRolesByMenuId(row.ID, function (data) {
|
$.bc({
|
||||||
var dialog = $('#dialogRole');
|
Id: row.ID, url: Role.url, data: { type: "menu" }, swal: false,
|
||||||
dialog.find('.modal-title').text($.format('{0}-角色授权窗口', row.Name));
|
callback: function (result) {
|
||||||
dialog.find('form').html(data);
|
var htmlTemplate = this.htmlTemplate;
|
||||||
dialog.modal('show');
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.RoleName, element.Checked, element.Description);
|
||||||
|
}).join('')
|
||||||
|
$dialogRoleHeader.text($.format('{0}-角色授权窗口', row.Name));
|
||||||
|
$dialogRoleForm.html(html);
|
||||||
|
$dialogRole.modal('show');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btnSubmitRole',
|
id: 'btnSubmitRole',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var menuId = row.ID;
|
var menuId = row.ID;
|
||||||
var dialog = $('#dialogRole');
|
var roleIds = $dialogRole.find('input:checked').map(function (index, element) {
|
||||||
var roleIds = dialog.find('input:checked').map(function (index, element) {
|
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
Role.saveRolesByMenuId(menuId, roleIds, { modal: 'dialogRole' });
|
$.bc({ Id: menuId, url: Role.url, method: "PUT", data: { type: "menu", roleIds: roleIds }, title: Role.title, modal: 'dialogRole' });
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
if (!result.success) return;
|
if (!result.success) return;
|
||||||
if ((result.oper == "save") || result.oper == "del") {
|
if ((result.oper == "save") || result.oper == "del") {
|
||||||
Menu.getMenus(function (data) {
|
$.bc({
|
||||||
$nestMenu.find('ol:first').html(data);
|
Id: 0, url: Menu.url, data: { type: "user" }, swal: false,
|
||||||
$nestMenuInput = $nestMenu.find('div.dd3-content');
|
callback: function (result) {
|
||||||
$nestMenuInput.find('label:first').hide();
|
var html = "";
|
||||||
|
if ($.isArray(result)) html = cascadeMenu(result);
|
||||||
|
$nestMenu.find('ol:first').html(html);
|
||||||
|
$nestMenuInput = $nestMenu.find('div.dd3-content');
|
||||||
|
$nestMenuInput.find('label:first').hide();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var cascadeMenu = function (menus) {
|
||||||
|
var html = "";
|
||||||
|
$.each(menus, function (index, menu) {
|
||||||
|
if (menu.Menus.length == 0) {
|
||||||
|
html += $.format('<li class="dd-item dd3-item" data-id="{0}" data-category="{3}"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><label><input type="checkbox" value="{0}"><span><i class="{1}"></i>{2}</span></label><label><input type="radio" name="menu" value="{0}"><span><i class="{1}"></i>{2}</span></label></div></li>', menu.ID, menu.Icon, menu.Name, menu.Category);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
html = $.format('<li class="dd-item dd3-item" data-id="{0}" data-category="{3}"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><label><input type="checkbox" value="{0}"><span><i class="{1}"></i>{2}</span></label><label><input type="radio" name="menu" value="{0}"><span><i class="{1}"></i>{2}</span></label></div></li><ol class="dd-list">{4}</ol>', menu.ID, menu.Icon, menu.Name, menu.Category, cascadeMenu(menu.Menus));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return html;
|
||||||
|
};
|
||||||
|
|
||||||
$('table').smartTable({
|
$('table').smartTable({
|
||||||
url: '../api/Menus', //请求后台的URL(*)
|
url: Menu.url, //请求后台的URL(*)
|
||||||
sortName: 'Order',
|
sortName: 'Order',
|
||||||
queryParams: function (params) { return $.extend(params, { parentName: $('#txt_parent_menus_name').val(), name: $("#txt_menus_name").val(), category: $('#sel_menus_category').val() }); }, //传递参数(*)
|
queryParams: function (params) { return $.extend(params, { parentName: $('#txt_parent_menus_name').val(), name: $("#txt_menus_name").val(), category: $('#sel_menus_category').val() }); }, //传递参数(*)
|
||||||
columns: [{ checkbox: true },
|
columns: [{ checkbox: true },
|
||||||
|
@ -82,21 +123,6 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var $dialog = $('#dialogNew');
|
|
||||||
var $pickIcon = $('#pickIcon');
|
|
||||||
var $iconList = $('#iconTab').find('div.fontawesome-icon-list');
|
|
||||||
var $dialogNew = $dialog.find('div.modal-dialog');
|
|
||||||
var $dialogIcon = $('#dialogIcon');
|
|
||||||
var $dialogMenu = $('#dialogSubMenu').find('.modal-content');
|
|
||||||
var $btnSubmitMenu = $('#btnSubmitMenu');
|
|
||||||
var $btnPickIcon = $('#btnIcon');
|
|
||||||
var $inputIcon = $('#icon');
|
|
||||||
var $nestMenu = $('#nestable_menu');
|
|
||||||
var $nestMenuInput = $nestMenu.find('div.dd3-content');
|
|
||||||
var $parentMenuID = $('#parentId');
|
|
||||||
var $parentMenuName = $('#parentName');
|
|
||||||
$nestMenuInput.find('label:first').hide();
|
|
||||||
|
|
||||||
$iconList.find('ul li').addClass('col-md-3 col-sm-4 col-sm-6');
|
$iconList.find('ul li').addClass('col-md-3 col-sm-4 col-sm-6');
|
||||||
$iconList.on('click', 'div.fa-hover a, ul li', function () {
|
$iconList.on('click', 'div.fa-hover a, ul li', function () {
|
||||||
$pickIcon.attr('class', $(this).find('i, span:first').attr('class'));
|
$pickIcon.attr('class', $(this).find('i, span:first').attr('class'));
|
||||||
|
@ -182,9 +208,7 @@
|
||||||
if (icon == "") icon = "fa fa-dashboard";
|
if (icon == "") icon = "fa fa-dashboard";
|
||||||
$btnPickIcon.find('i').attr('class', icon);
|
$btnPickIcon.find('i').attr('class', icon);
|
||||||
});
|
});
|
||||||
|
|
||||||
$nestMenu.nestable();
|
$nestMenu.nestable();
|
||||||
|
|
||||||
// select
|
// select
|
||||||
$('select').selectpicker();
|
$('select').selectpicker();
|
||||||
});
|
});
|
|
@ -17,10 +17,8 @@
|
||||||
button: ['footSave']
|
button: ['footSave']
|
||||||
});
|
});
|
||||||
|
|
||||||
var options = { url: '../api/Profiles', title: '网站设置' };
|
|
||||||
|
|
||||||
var bsa = new BootstrapAdmin({
|
var bsa = new BootstrapAdmin({
|
||||||
url: options.url,
|
url: Profiles.url,
|
||||||
bootstrapTable: null,
|
bootstrapTable: null,
|
||||||
validateForm: null,
|
validateForm: null,
|
||||||
modal: null,
|
modal: null,
|
||||||
|
@ -35,26 +33,24 @@
|
||||||
id: 'sysSave',
|
id: 'sysSave',
|
||||||
click: function (row, data) {
|
click: function (row, data) {
|
||||||
if ($(this).attr('data-valid') == "true") {
|
if ($(this).attr('data-valid') == "true") {
|
||||||
var op = $.extend({
|
$.bc({
|
||||||
data: { name: '网站标题', code: data.Title, category: '网站设置' },
|
url: Profiles.url, data: { name: '网站标题', code: data.Title, category: Profiles.title }, title: Profiles.title,
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
$('#websiteTitle').text(data.Title);
|
if (result) $('#websiteTitle').text(data.Title);
|
||||||
}
|
}
|
||||||
}, options)
|
});
|
||||||
bd(op);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'footSave',
|
id: 'footSave',
|
||||||
click: function (row, data) {
|
click: function (row, data) {
|
||||||
if ($(this).attr('data-valid') == "true") {
|
if ($(this).attr('data-valid') == "true") {
|
||||||
var op = $.extend({
|
$.bc({
|
||||||
data: { name: '网站页脚', code: data.Footer, category: '网站设置' },
|
url: Profiles.url, data: { name: '网站页脚', code: data.Footer, category: Profiles.title }, title: Profiles.title,
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
$('#websiteFooter').text(data.Footer);
|
if (result) $('#websiteFooter').text(data.Footer);
|
||||||
}
|
}
|
||||||
}, options)
|
});
|
||||||
bd(op);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
@ -63,7 +59,7 @@
|
||||||
|
|
||||||
function listCache(options) {
|
function listCache(options) {
|
||||||
options = $.extend({ url: '../../CacheList.axd' }, options);
|
options = $.extend({ url: '../../CacheList.axd' }, options);
|
||||||
bd({
|
$.bc({
|
||||||
url: options.url,
|
url: options.url,
|
||||||
swal: false,
|
swal: false,
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
var $dialogUser = $("#dialogUser");
|
var $dialogUser = $("#dialogUser");
|
||||||
|
var $dialogUserHeader = $('#myUserModalLabel');
|
||||||
|
var $dialogUserForm = $('#userForm');
|
||||||
var $dialogGroup = $("#dialogGroup");
|
var $dialogGroup = $("#dialogGroup");
|
||||||
|
var $dialogGroupHeader = $('#myGroupModalLabel');
|
||||||
|
var $dialogGroupForm = $('#groupForm');
|
||||||
var $dialogMenu = $('#dialogMenu');
|
var $dialogMenu = $('#dialogMenu');
|
||||||
|
var $dialogMenuHeader = $('#myMenuModalLabel');
|
||||||
var $dialogSubMenu = $('#dialogSubMenu').find('.modal-content');
|
var $dialogSubMenu = $('#dialogSubMenu').find('.modal-content');
|
||||||
var $btnSubmitMenu = $('#btnSubmitMenu');
|
var $btnSubmitMenu = $('#btnSubmitMenu');
|
||||||
var $nestMenu = $('#nestable_menu');
|
var $nestMenu = $('#nestable_menu');
|
||||||
|
@ -9,7 +14,7 @@
|
||||||
$nestMenuInput.find('label:last').hide();
|
$nestMenuInput.find('label:last').hide();
|
||||||
|
|
||||||
var bsa = new BootstrapAdmin({
|
var bsa = new BootstrapAdmin({
|
||||||
url: '../api/Roles',
|
url: Role.url,
|
||||||
dataEntity: new DataEntity({
|
dataEntity: new DataEntity({
|
||||||
map: {
|
map: {
|
||||||
ID: "roleID",
|
ID: "roleID",
|
||||||
|
@ -21,20 +26,54 @@
|
||||||
assign: [{
|
assign: [{
|
||||||
id: 'btn_assignUser',
|
id: 'btn_assignUser',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
User.getUsersByRoleId(row.ID, function (data) {
|
$.bc({
|
||||||
$dialogUser.find("div.modal-header").find('h4').text($.format('{0}-用户授权窗口', row.RoleName));
|
Id: row.ID, url: User.url, data: { type: "role" }, swal: false,
|
||||||
$dialogUser.find('form').html(data);
|
callback: function (result) {
|
||||||
$dialogUser.modal('show');
|
var htmlTemplate = this.htmlTemplate;
|
||||||
})
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.DisplayName, element.Checked, element.UserName);
|
||||||
|
}).join('');
|
||||||
|
$dialogUserHeader.text($.format('{0}-用户授权窗口', row.RoleName));
|
||||||
|
$dialogUserForm.html(html);
|
||||||
|
$dialogUser.modal('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btn_assignGroup',
|
id: 'btn_assignGroup',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
Group.getGroupsByRoleId(row.ID, function (data) {
|
$.bc({
|
||||||
$dialogGroup.find("div.modal-header").find("h4").text($.format('{0}-部门授权窗口', row.RoleName));
|
Id: row.ID, url: Group.url, data: { type: "role" }, swal: false,
|
||||||
$dialogGroup.find('form').html(data);
|
callback: function (result) {
|
||||||
$dialogGroup.modal('show');
|
var htmlTemplate = this.htmlTemplate;
|
||||||
})
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.GroupName, element.Checked, element.Description);
|
||||||
|
}).join('');
|
||||||
|
$dialogGroupHeader.text($.format('{0}-部门授权窗口', row.RoleName));
|
||||||
|
$dialogGroupForm.html(html);
|
||||||
|
$dialogGroup.modal('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
id: 'btn_assignMenu',
|
||||||
|
click: function (row) {
|
||||||
|
$.bc({
|
||||||
|
Id: row.ID, url: Menu.url, data: { type: "role" }, swal: false,
|
||||||
|
callback: function (result) {
|
||||||
|
$dialogMenuHeader.text($.format('{0}-菜单授权窗口', row.RoleName));
|
||||||
|
$btnSubmitMenu.data('type', 'menu');
|
||||||
|
// set checkbox status
|
||||||
|
var menus = $nestMenu.find('input:checkbox');
|
||||||
|
menus.removeProp('checked');
|
||||||
|
$.each(result, function (index, item) {
|
||||||
|
var selector = $.format('[value={0}]', item.ID);
|
||||||
|
menus.filter(selector).prop('checked', 'checked');
|
||||||
|
});
|
||||||
|
$dialogSubMenu.show();
|
||||||
|
$dialogMenu.modal('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btnSubmitUser',
|
id: 'btnSubmitUser',
|
||||||
|
@ -43,38 +82,18 @@
|
||||||
var userIds = $dialogUser.find(':checked').map(function (index, element) {
|
var userIds = $dialogUser.find(':checked').map(function (index, element) {
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
User.saveUsersByRoleId(roleId, userIds, { modal: 'dialogUser' });
|
$.bc({ Id: roleId, url: User.url, method: "PUT", data: { type: "role", userIds: userIds }, modal: 'dialogUser', title: User.title });
|
||||||
}
|
}
|
||||||
},
|
}, {
|
||||||
{
|
|
||||||
id: 'btnSubmitGroup',
|
id: 'btnSubmitGroup',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var roleId = row.ID;
|
var roleId = row.ID;
|
||||||
var groupIds = $dialogGroup.find(':checked').map(function (index, element) {
|
var groupIds = $dialogGroup.find(':checked').map(function (index, element) {
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
Group.saveGroupsByRoleId(roleId, groupIds, { modal: 'dialogGroup' });
|
$.bc({ Id: roleId, url: Group.url, method: "PUT", data: { type: "role", groupIds: groupIds }, modal: 'dialogGroup', title: Group.title });
|
||||||
}
|
}
|
||||||
},
|
}, {
|
||||||
{
|
|
||||||
id: 'btn_assignMenu',
|
|
||||||
click: function (row) {
|
|
||||||
Menu.getMenusByRoleId(row.ID, function (data) {
|
|
||||||
$dialogSubMenu.find("div.modal-header").find('h4').text($.format('{0}-菜单授权窗口', row.RoleName));
|
|
||||||
$btnSubmitMenu.data('type', 'menu');
|
|
||||||
// set checkbox status
|
|
||||||
var menus = $nestMenu.find('input:checkbox');
|
|
||||||
menus.removeProp('checked');
|
|
||||||
$.each(data, function (index, item) {
|
|
||||||
var selector = $.format('[value={0}]', item.ID);
|
|
||||||
menus.filter(selector).prop('checked', 'checked');
|
|
||||||
});
|
|
||||||
$dialogSubMenu.show();
|
|
||||||
$dialogMenu.modal('show');
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'btnSubmitMenu',
|
id: 'btnSubmitMenu',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var roleId = row.ID;
|
var roleId = row.ID;
|
||||||
|
@ -88,7 +107,7 @@
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Menu.saveMenusByRoleId(roleId, menuIds, { modal: 'dialogMenu' });
|
$.bc({ Id: roleId, url: Menu.url, method: "PUT", data: { type: "role", menuIds: menuIds }, modal: 'dialogMenu', title: Menu.title });
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
@ -97,7 +116,7 @@
|
||||||
$nestMenu.nestable();
|
$nestMenu.nestable();
|
||||||
|
|
||||||
$('table').smartTable({
|
$('table').smartTable({
|
||||||
url: '../api/Roles', //请求后台的URL(*)
|
url: Role.url, //请求后台的URL(*)
|
||||||
sortName: 'RoleName',
|
sortName: 'RoleName',
|
||||||
queryParams: function (params) { return $.extend(params, { roleName: $("#txt_search_name").val(), description: $("#txt_role_desc").val() }); }, //传递参数(*)
|
queryParams: function (params) { return $.extend(params, { roleName: $("#txt_search_name").val(), description: $("#txt_role_desc").val() }); }, //传递参数(*)
|
||||||
columns: [{ checkbox: true },
|
columns: [{ checkbox: true },
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
|
var $dialogRole = $('#dialogRole');
|
||||||
|
var $dialogRoleHeader = $('#myRoleModalLabel');
|
||||||
|
var $dialogRoleForm = $('#roleForm');
|
||||||
|
var $dialogGroup = $("#dialogGroup");
|
||||||
|
var $dialogGroupHeader = $('#myGroupModalLabel');
|
||||||
|
var $dialogGroupForm = $('#groupForm');
|
||||||
|
|
||||||
var bsa = new BootstrapAdmin({
|
var bsa = new BootstrapAdmin({
|
||||||
url: '../api/Users',
|
url: User.url,
|
||||||
dataEntity: new DataEntity({
|
dataEntity: new DataEntity({
|
||||||
map: {
|
map: {
|
||||||
ID: "userID",
|
ID: "userID",
|
||||||
|
@ -14,38 +21,52 @@
|
||||||
assign: [{
|
assign: [{
|
||||||
id: 'btn_assignRole',
|
id: 'btn_assignRole',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
Role.getRolesByUserId(row.ID, function (data) {
|
$.bc({
|
||||||
$("#dialogRole .modal-title").text($.format('{0}-角色授权窗口', row.DisplayName));
|
Id: row.ID, url: Role.url, data: { type: "user" }, swal: false,
|
||||||
$('#dialogRole form').html(data);
|
callback: function (result) {
|
||||||
$('#dialogRole').modal('show');
|
var htmlTemplate = this.htmlTemplate;
|
||||||
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.RoleName, element.Checked, element.Description);
|
||||||
|
}).join('')
|
||||||
|
$dialogRoleHeader.text($.format('{0}-角色授权窗口', row.DisplayName));
|
||||||
|
$dialogRoleForm.html(html);
|
||||||
|
$dialogRole.modal('show');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btn_assignGroup',
|
id: 'btn_assignGroup',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
Group.getGroupsByUserId(row.ID, function (data) {
|
$.bc({
|
||||||
$("#dialogGroup .modal-title").text($.format('{0}-部门授权窗口', row.DisplayName));
|
Id: row.ID, url: Group.url, data: { type: "user" }, swal: false,
|
||||||
$('#dialogGroup form').html(data);
|
callback: function (result) {
|
||||||
$('#dialogGroup').modal('show');
|
var htmlTemplate = this.htmlTemplate;
|
||||||
|
var html = $.map(result, function (element, index) {
|
||||||
|
return $.format(htmlTemplate, element.ID, element.GroupName, element.Checked, element.Description);
|
||||||
|
}).join('');
|
||||||
|
$dialogGroupHeader.text($.format('{0}-部门授权窗口', row.DisplayName));
|
||||||
|
$dialogGroupForm.html(html);
|
||||||
|
$dialogGroup.modal('show');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btnSubmitRole',
|
id: 'btnSubmitRole',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var userId = row.ID;
|
var userId = row.ID;
|
||||||
var roleIds = $('#dialogRole :checked').map(function (index, element) {
|
var roleIds = $dialogRole.find(':checked').map(function (index, element) {
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
Role.saveRolesByUserId(userId, roleIds, { modal: 'dialogRole' });
|
$.bc({ Id: userId, url: Role.url, method: 'PUT', data: { type: "user", roleIds: roleIds }, title: Role.title, modal: 'dialogRole' });
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'btnSubmitGroup',
|
id: 'btnSubmitGroup',
|
||||||
click: function (row) {
|
click: function (row) {
|
||||||
var userId = row.ID;
|
var userId = row.ID;
|
||||||
var groupIds = $('#dialogGroup :checked').map(function (index, element) {
|
var groupIds = $dialogGroup.find(':checked').map(function (index, element) {
|
||||||
return $(element).val();
|
return $(element).val();
|
||||||
}).toArray().join(',');
|
}).toArray().join(',');
|
||||||
Group.saveGroupsByUserId(userId, groupIds, { modal: 'dialogGroup' });
|
$.bc({ Id: userId, url: Group.url, method: 'PUT', data: { type: "user", groupIds: groupIds }, title: Group.title, modal: 'dialogGroup' });
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
@ -57,13 +78,13 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$('table').smartTable({
|
$('table').smartTable({
|
||||||
url: '../api/Users', //请求后台的URL(*)
|
url: User.url, //请求后台的URL(*)
|
||||||
sortName: 'UserName',
|
sortName: 'DisplayName',
|
||||||
queryParams: function (params) { return $.extend(params, { name: $("#txt_search_name").val(), displayName: $('#txt_display_name').val() }); }, //传递参数(*)
|
queryParams: function (params) { return $.extend(params, { name: $("#txt_search_name").val(), displayName: $('#txt_display_name').val() }); }, //传递参数(*)
|
||||||
columns: [{ checkbox: true },
|
columns: [{ checkbox: true },
|
||||||
{ title: "Id", field: "ID", events: bsa.idEvents(), formatter: BootstrapAdmin.idFormatter },
|
{ title: "Id", field: "ID", events: bsa.idEvents(), formatter: BootstrapAdmin.idFormatter },
|
||||||
{ title: "登陆名称", field: "UserName", sortable: true },
|
{ title: "登陆名称", field: "UserName", sortable: true },
|
||||||
{ title: "显示名称", field: "DisplayName", sortable: false }
|
{ title: "显示名称", field: "DisplayName", sortable: true }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,8 @@
|
||||||
var html = '<tr><td class="inbox-small-cells"><input type="checkbox" class="mail-checkbox"></td><td class="inbox-small-cells"><i class="fa fa-star"></i></td><td class="view-message dont-show">{0}</td><td class="view-message dont-show">{1}</td><td class="view-message ">{2}</td><td class="view-message text-right">{3}</td></tr>';
|
var html = '<tr><td class="inbox-small-cells"><input type="checkbox" class="mail-checkbox"></td><td class="inbox-small-cells"><i class="fa fa-star"></i></td><td class="view-message dont-show">{0}</td><td class="view-message dont-show">{1}</td><td class="view-message ">{2}</td><td class="view-message text-right">{3}</td></tr>';
|
||||||
|
|
||||||
function listData() {
|
function listData() {
|
||||||
bd({
|
$.bc({
|
||||||
Id: 'inbox',
|
Id: 'inbox', url: Messages.url, method: 'GET', swal: false,
|
||||||
url: '../api/Messages/',
|
|
||||||
method: 'GET',
|
|
||||||
swal: false,
|
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
var content = result.map(function (mail) {
|
var content = result.map(function (mail) {
|
||||||
|
@ -14,7 +11,6 @@
|
||||||
}).join('');
|
}).join('');
|
||||||
$('#tbMsg').html(content);
|
$('#tbMsg').html(content);
|
||||||
}
|
}
|
||||||
console.log(result);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
|
var $btnRefreshUser = $('#refreshUsers');
|
||||||
var htmlNewUsers = '<li class="list-primary"><i class="fa fa-ellipsis-v"></i><div class="task-title notifi"><span class="task-title-sp">{0}</span><span class="task-value">{1}</span><span class="task-time">{2}</span><div class="pull-right hidden-phone"><button class="btn btn-success btn-xs fa fa-check" data-id="{3}" data-result="1"></button><button class="btn btn-danger btn-xs fa fa-remove" data-id="{3}" data-result="0" data-placement="left" data-original-title="拒绝授权"></button></div></div></li>';
|
var htmlNewUsers = '<li class="list-primary"><i class="fa fa-ellipsis-v"></i><div class="task-title notifi"><span class="task-title-sp">{0}</span><span class="task-value">{1}</span><span class="task-time">{2}</span><div class="pull-right hidden-phone"><button class="btn btn-success btn-xs fa fa-check" data-id="{3}" data-result="1"></button><button class="btn btn-danger btn-xs fa fa-remove" data-id="{3}" data-result="0" data-placement="left" data-original-title="拒绝授权"></button></div></div></li>';
|
||||||
|
|
||||||
function listData(options) {
|
function listData() {
|
||||||
options = $.extend({ animation: true, ctl: $('a.fa-refresh') }, options);
|
$btnRefreshUser.toggleClass('fa-spin');
|
||||||
if (options.animation) options.ctl.toggleClass('fa-spin');
|
$.bc({
|
||||||
bd({
|
Id: 'newusers', url: Notifications.url, method: 'GET', swal: false,
|
||||||
Id: 'newusers',
|
|
||||||
url: '../api/Notifications/',
|
|
||||||
method: 'GET',
|
|
||||||
swal: false,
|
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
var content = result.Users.map(function (noti) {
|
var content = result.Users.map(function (noti) {
|
||||||
|
@ -16,21 +13,24 @@
|
||||||
}).join('');
|
}).join('');
|
||||||
$('#tasks-users').html(content);
|
$('#tasks-users').html(content);
|
||||||
}
|
}
|
||||||
if (options.animation) options.ctl.toggleClass('fa-spin');
|
$btnRefreshUser.toggleClass('fa-spin');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
listData();
|
listData();
|
||||||
|
|
||||||
$('a.fa-refresh').on('click', function () {
|
$btnRefreshUser.on('click', function () {
|
||||||
listData({ ctl: $(this) });
|
listData();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#tasks-users').on('click', 'button', function () {
|
$('#tasks-users').on('click', 'button', function () {
|
||||||
var id = $(this).attr('data-id');
|
var id = $(this).attr('data-id');
|
||||||
var result = $(this).attr('data-result');
|
var result = $(this).attr('data-result');
|
||||||
User.processUser(id, result, function (result) {
|
$.bc({
|
||||||
listData({ ctl: $('#refreshUsers') });
|
Id: id, url: User.url, method: "PUT", data: { type: "user", userIds: result }, title: result == "1" ? "授权用户" : "拒绝用户",
|
||||||
|
callback: function (result) {
|
||||||
|
listData({ ctl: $('#refreshUsers') });
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
|
@ -1,33 +1,26 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
var url = '../api/Tasks/';
|
var $btnRefresh = $('#refreshTask');
|
||||||
|
|
||||||
var htmlTask = '<li class="list-primary"><i class="fa fa-ellipsis-v"></i><div class="task-title notifi"><span class="task-title-sp">{0}</span><span class="task-value">{1}</span><span class="task-time">{2}</span>';
|
var htmlTask = '<li class="list-primary"><i class="fa fa-ellipsis-v"></i><div class="task-title notifi"><span class="task-title-sp">{0}</span><span class="task-value">{1}</span><span class="task-time">{2}</span><div class="pull-right hidden-phone"><button class="btn btn-success btn-xs fa fa-check" data-id="{3}" data-result="1"></button><button class="btn btn-danger btn-xs fa fa-remove" data-id="{3}" data-result="0" data-placement="left" data-original-title="拒绝授权"></button></div></div></li>';
|
||||||
htmlTask += '<div class="pull-right hidden-phone"><button class="btn btn-success btn-xs fa fa-check" data-id="{3}" data-result="1"></button><button class="btn btn-danger btn-xs fa fa-remove" data-id="{3}" data-result="0" data-placement="left" data-original-title="拒绝授权"></button></div></div></li>';
|
|
||||||
|
function listData() {
|
||||||
function listData(options) {
|
$btnRefresh.toggleClass('fa-spin');
|
||||||
options = $.extend({ url: url, animation: true, ctl: $('a.fa-refresh') }, options);
|
$.bc({
|
||||||
if (options.animation) options.ctl.toggleClass('fa-spin');
|
url: Tasks.url, method: 'GET', swal: false,
|
||||||
$.ajax({
|
callback: function (result) {
|
||||||
url: options.url,
|
if (result) {
|
||||||
type: 'GET',
|
var content = result.map(function (task) {
|
||||||
success: function (result) {
|
return $.format(htmlTask, task.TaskName, task.UserName, task.AssignTime, task.ID);
|
||||||
if (result) {
|
}).join('');
|
||||||
var content = result.Users.map(function (task) {
|
$('#list-task').html(content);
|
||||||
var t = new Date(task.AssignTime).format('yyyy-MM-dd HH:mm:ss');
|
}
|
||||||
return $.format(htmlTask, task.TaskName, task.UserName, t, task.ID);
|
$btnRefresh.toggleClass('fa-spin');
|
||||||
}).join('');
|
}
|
||||||
$('#list-task').html(content);
|
});
|
||||||
}
|
}
|
||||||
if (options.animation) options.ctl.toggleClass('fa-spin');
|
listData();
|
||||||
},
|
|
||||||
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
$btnRefresh.on('click', function () {
|
||||||
if (options.animation) options.ctl.toggleClass('fa-spin');
|
listData();
|
||||||
}
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
listData();
|
|
||||||
|
|
||||||
$('a.fa-refresh').on('click', function () {
|
|
||||||
listData({ ctl: $(this) });
|
|
||||||
});
|
|
||||||
})
|
})
|
|
@ -1,40 +1,33 @@
|
||||||
@model NavigatorBarModel
|
@model NavigatorBarModel
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = "任务消息";
|
ViewBag.Title = "任务消息";
|
||||||
Layout = "~/Views/Shared/_Admin.cshtml";
|
Layout = "~/Views/Shared/_Admin.cshtml";
|
||||||
}
|
}
|
||||||
@section Javascript {
|
@section Javascript {
|
||||||
<script src="~/Content/js/sweetalert.js"></script>
|
<script src="~/Content/js/sweetalert.js"></script>
|
||||||
<script src="~/Scripts/tasks.js"></script>
|
<script src="~/Scripts/tasks.js"></script>
|
||||||
}
|
}
|
||||||
@section css {
|
@section css {
|
||||||
<link href="~/Content/css/sweetalert.css" rel="stylesheet" />
|
<link href="~/Content/css/sweetalert.css" rel="stylesheet" />
|
||||||
<link href="~/Content/css/tasks.css" rel="stylesheet" />
|
<link href="~/Content/css/tasks.css" rel="stylesheet" />
|
||||||
}
|
}
|
||||||
@section header {
|
@section header {
|
||||||
@Html.Partial("Header", Model)
|
@Html.Partial("Header", Model)
|
||||||
}
|
}
|
||||||
@section navigator {
|
@section navigator {
|
||||||
@Html.Partial("Navigator", Model)
|
@Html.Partial("Navigator", Model)
|
||||||
}
|
}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">任务消息<span class="pull-right"><a href="javascript:;" class="tooltips fa fa-refresh" data-category="0" data-placement="left" data-original-title="点击刷新"></a></span></div>
|
<div class="panel-heading">任务消息<span class="pull-right"><a id="refreshTask" href="javascript:;" class="fa fa-refresh"></a></span></div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="tasks-widget">
|
<div class="tasks-widget">
|
||||||
<ul id="list-task" class="task-list ui-sortable">
|
<ul id="list-task" class="task-list ui-sortable">
|
||||||
<li class="list-primary">
|
<li class="list-primary">
|
||||||
<i class="fa fa-ellipsis-v"></i>
|
<i class="fa fa-ellipsis-v"></i>
|
||||||
<div class="task-title notifi">
|
<div class="task-title notifi">
|
||||||
@*<span class="task-title-sp">Title</span>
|
</div>
|
||||||
<span class="task-value">Content</span>
|
</li>
|
||||||
<span class="task-time">@System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")</span>
|
</ul>
|
||||||
<div class="pull-right hidden-phone">
|
</div>
|
||||||
<button class="btn btn-success btn-xs fa fa-check tooltips" data-placement="left" data-original-title="同意授权"></button>
|
</div>
|
||||||
<button class="btn btn-danger btn-xs fa fa-remove tooltips" data-placement="left" data-original-title="拒绝授权"></button>
|
</div>
|
||||||
</div>*@
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<div class="modal fade" id="dialogGroup" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="myGroupModalLabel" aria-hidden="true">
|
<div class="modal fade" id="dialogGroup" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="myGroupModalLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
<h4 class="modal-title" id="myGroupModalLabel">部门授权窗口</h4>
|
<h4 class="modal-title" id="myGroupModalLabel">部门授权窗口</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form class="form-inline" role="form"></form>
|
<form id="groupForm" class="form-inline" role="form"></form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||||
<button type="button" class="btn btn-primary" id="btnSubmitGroup">保存</button>
|
<button type="button" class="btn btn-primary" id="btnSubmitGroup">保存</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<h4 class="modal-title" id="myRoleModalLabel">角色授权窗口</h4>
|
<h4 class="modal-title" id="myRoleModalLabel">角色授权窗口</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form class="form-inline" role="form">
|
<form id="roleForm" class="form-inline" role="form">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<div class="modal fade" id="dialogUser" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="myUserModalLabel" aria-hidden="true">
|
<div class="modal fade" id="dialogUser" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="myUserModalLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
<h4 class="modal-title" id="myUserModalLabel">用户授权窗口</h4>
|
<h4 class="modal-title" id="myUserModalLabel">用户授权窗口</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form class="form-inline" role="form"></form>
|
<form id="userForm" class="form-inline" role="form"></form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||||
<button type="button" class="btn btn-primary" id="btnSubmitUser">保存</button>
|
<button type="button" class="btn btn-primary" id="btnSubmitUser">保存</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue