UNPKG

platform-project

Version:

平台项目

190 lines (183 loc) 7.85 kB
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); } }); }) })