platform-project
Version:
平台项目
190 lines (183 loc) • 7.85 kB
JavaScript
var Util = require('./util');
$(function () {
console.log(window.location.href)
var href = window.location.href;
var opt = Util.parseURL(href);
console.log(opt);
getAuth(opt);
searchHandlers();
//获取产品权限列表
Util.doAjax({
url: '/api/product/auth',
method: 'POST',
data: {
productid: opt.productid,
},
success: function (data) {
console.log(data);
if (data.product) {
$('.title-b').html('产品及项目权限配置 - ' + data.product.productname);
$('.backend-nav .project a').html(data.product.productname);
$('.backend-nav .project').attr('data-resid', data.product.productid).attr('data-restype', '0');
$('.backend-nav .project').siblings().remove();
var projects = data.projects;
for (let i = 0; i < projects.length; i++) {
if (opt.restype === '1') {
var active = projects[i].projectid == opt.resid ? 'active' : '';
} else {
// var active = i === 0 ? 'active' : '';
}
var li = $('<li class="project-item" data-restype="1" data-resid="' + projects[i].projectid + '">' +
' <a class="' + active + '" href="javascript:;">' + projects[i].projectname + '</a>' +
'</li>')
$('.backend-nav').append(li);
}
$('.backend-nav li').on('click', function () {
opt.resid = $(this).attr('data-resid');
opt.restype = $(this).attr('data-restype');
opt.productid = data.product.productid;
$(this).find('a').addClass('active').parent().siblings().find('a').removeClass('active');
// $('.backend-nav .project a').addClass('active');
getAuth(opt);
})
}
}
});
//获取人员
function getAuth(opt) {
Util.doAjax({
url: '/api/auth',
method: 'POST',
data: {
restype: opt.restype,
resid: opt.resid
},
success: function (data) {
console.log(data);
$('.config-box .user-box').empty();
for (let i = 0; i < data.length; i++) {
var span = $('<span class="user-item" data-id="' + data[i].uid + '" data-aid="' + data[i].aid + '">' + data[i].username + '<a href="javascript:;" class="delete-btn"></a></span>');
if (data[i].perm === 1) { //返回结果中, perm值, 0: OWNER, 1: MASTER, 2: VIEWER, 3: BAN, 4: RELEASE
$('.config-box.admin-box .user-box').append(span);
} else if (data[i].perm === 2) {
$('.config-box.user-box .user-box').append(span);
}
}
$('.config-box .user-box').on('click', '.delete-btn', function () {
var authid = $(this).parent().attr('data-aid');
var _self = $(this);
Util.doAjax({
url: '/api/auth/del',
method: 'POST',
data: {
authid: authid,
},
success: function (data) {
Util.prompt('删除成功!');
_self.parent().remove();
}
});
})
}
});
}
var searchTimeOut, searchText;
function searchHandlers() {
var $admin = $('.config-box.admin-box');
var $user = $('.config-box.user-box');
$admin.find('.right input').on('input', function () {
var _self = $(this);
if (searchTimeOut) {
clearTimeout(searchTimeOut);
}
searchTimeOut = setTimeout(function () {
searchText = _self.val();
console.log(searchText)
if (searchText.length < 2) {
$admin.find('.right .searchTip').removeClass('hidden');
} else {
searchUserItem($admin, searchText);
}
}, 1000)
});
$user.find('.right input').on('input', function () {
var _self = $(this);
if (searchTimeOut) {
clearTimeout(searchTimeOut);
}
searchTimeOut = setTimeout(function () {
searchText = _self.val();
console.log(searchText)
if (searchText.length < 2) {
$user.find('.right .searchTip').removeClass('hidden');
} else {
searchUserItem($user, searchText);
}
}, 1000)
});
$admin.find('.right input').on('blur', function () {
$admin.find('.right .searchTip').addClass('hidden');
$admin.find('.right .searchList').addClass('hidden');
});
$user.find('.right input').on('blur', function () {
$user.find('.right .searchTip').addClass('hidden');
$user.find('.right .searchList').addClass('hidden');
});
}
function searchUserItem($div, searchText) {
Util.doAjax({
url: '/api/user/search',
method: 'POST',
data: {
query: searchText
},
success: function (data) {
$div.find('.right .searchList').empty();
// console.log(data);
var user = data.users;
if (user.length === 0) {
$div.find('.right .searchTip').html('No results for ' + searchText + '.');
$div.find('.right .searchTip').removeClass('hidden');
return;
}
$div.find('.right .searchTip').addClass('hidden');
for (let i = 0; i < 5; i++) {
if (user[i]) {
var li = '<li data-id="' + user[i].id + '">' + user[i].username + '</li>'
$div.find('.right .searchList').append(li);
}
}
$div.find('.right .searchList').removeClass('hidden');
$('.searchList li').on('mousedown', function (e) {
e.stopPropagation();
var username = $(this).html();
var id = $(this).attr('data-id');
$div.find('.right input').val(username);
$div.find('.right input').attr('data-id', id);
})
}
});
}
$('.config-top .add-btn').click(function () {
var userid = $(this).parent().find('input').attr('data-id');
var userName = $(this).parent().find('input').val();
var perm = $(this).attr('data-perm');
var _self = $(this);
Util.doAjax({
url: '/api/auth/add',
method: 'POST',
data: {
restype: opt.restype,
resid: opt.resid,
productid: opt.productid,
userid: userid,
perm: perm
},
success: function (data) {
Util.prompt('添加成功!');
var span = $('<span class="user-item" data-id="' + userid + '" data-aid="' + data.id + '">' + userName + '<a href="javascript:;" class="delete-btn"></a></span>');
_self.parent().parent().parent().parent().find('.user-box').append(span);
}
});
})
})