This commit is contained in:
罗松柏 2021-08-09 20:02:21 +08:00
parent 3302c8f97d
commit 0d6fea354a
14 changed files with 657 additions and 145 deletions

View File

@ -5,7 +5,7 @@
<div class="layui-form-item">
<label class="layui-form-label">角色名称</label>
<div class="layui-input-block">
<input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="12字以内" class="layui-input addrole-tit">
<input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="12字以内" class="layui-input addrole-tit">
</div>
</div>
<form class="layui-form" action="" lay-filter="addroleexample">
@ -13,10 +13,10 @@
<label class="layui-form-label">权限配置</label>
<div class="layui-input-block">
<div class="projectadmin-info-table-top">
<!-- <div class="projectadmin-info-table-top">
<div class="projectadmin-info-table1">功能</div>
<div class="projectadmin-info-table2">操作权限</div>
</div>
</div> -->
<div class="addrole-info-table-con">
@ -39,9 +39,13 @@
<script id="addrole-info-table-con-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="projectadmin-info-table-con">
<div class="projectadmin-info-table-left">
<input type="checkbox" name="{{item._id}}" lay-skin="primary" title="{{item.name}}" data-api="{{item.path}}">
</div>
<!-- <div class="projectadmin-info-table-con">
<div class="projectadmin-info-table-left">
<div>{{item.title}}</div>
<div>{{item.name}}</div>
<input type="checkbox" name="apichrck" lay-skin="primary" title="{{item.name}}" data-api="{{item.path}}">
</div>
<div class="projectadmin-info-table-center-box">
{{# layui.each(item.list, function(indexs, items){ }}
@ -52,7 +56,7 @@
</div>
{{# }); }}
</div>
</div>
</div> -->
{{# }); }}
</script>

36
web/pages/apiadmin.html Normal file
View File

@ -0,0 +1,36 @@
<!-- api管理 -->
<div class="main___Tea6c">
<div class="projectadmin-con-bg">
<div class="eventattradmin-top-box">
<div class="eventattradmin-left___y490Q">事件管理<i class="layui-icon" title="在该页面进行事件及事件属性的管理。包括设置事件的显示名,显示状态等;设置事件属性的显示名,显示状态,计数单位,上传维度表等功能">&#xe60b;</i> </div>
<div class="eventattradmin-right___1TIt8">
<div class="eventattradmin-search___23TMG">
<i class="layui-icon">&#xe615;</i>
<input type="text" placeholder="请输入搜索" />
<img src="./static/img/cha1.png">
</div>
<div class="eventattradmin-display___21tQp">
<img src="./static/img/peizhi2.png">
<span>显示名配置</span>
</div>
<div class="eventattradmin-actions___141YT">
<i class="layui-icon">&#xe624;</i>
<span>api添加</span>
</div>
</div>
</div>
<div class="eventattradmin-table-box">
<table class="layui-hide" id="apiadmin-table" lay-filter="apiadminntest"></table>
</div>
</div>
</div>
<script type="text/html" id="apiadminbarDemo">
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
<a class="layui-btn layui-btn-xs " lay-event="edit">编辑</a>
</script>

View File

@ -0,0 +1,28 @@
<!-- 添加api -->
<div class="apiadd-box" style="height:330px; width: 400px;">
<div class="newwenjian-top">
<p>添加api</p>
<img src="./static/img/cha.png" class="newwenjian-cha"/>
</div>
<div class="newwenjian-name-box">
<div class="newwenjian-title">标题</div>
<input type="text" class="newwenjianname-txt" id="name"/>
</div>
<div class="newwenjian-name-box">
<div class="newwenjian-title">路径</div>
<input type="text" class="newwenjianname-txt" id="path"/>
</div>
<div class="newwenjian-name-box">
<div class="newwenjian-title">简介</div>
<input type="text" class="newwenjianname-txt" id="desc"/>
</div>
<div class="newwenjian-but-box">
<div class="newwenjian-qx">取消</div>
<div class="newwenjian-qd">确定</div>
</div>
</div>

View File

@ -29,12 +29,12 @@
</div>
<div class="projectadmin-con-hz-left-list-box">
<div class="projectadmin-con-hz-left-list-tit">
<!-- <div class="projectadmin-con-hz-left-list-tit">
<div class="sekuai"></div> 系统角色
</div>
<div class="projectadmin-con-hz-left-list-xtong">
</div>
</div> -->
<div class="projectadmin-con-hz-left-list-tit">
<div class="sekuai"></div> 项目内角色
@ -58,6 +58,8 @@
<div class="projectadmin-info-box">
</div>
</div>
@ -69,30 +71,28 @@
</div>
</div>
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
<script id="projectadmin-info-box-dot" type="text/html">
<div class="projectadmin-info-bg">
<div class="projectadmin-info-table-top">
<div class="projectadmin-info-table1">功能</div>
<div class="projectadmin-info-table2">操作权限</div>
<!-- <div class="projectadmin-info-table2">功能明细</div> -->
<div class="projectadmin-info-table1">api名字</div>
<div class="projectadmin-info-table2">api路径</div>
<div class="projectadmin-info-table3">操作</div>
</div>
{{# layui.each(d, function(index, item){ }}
<div class="projectadmin-info-table-con">
<div class="projectadmin-info-table-left">
<div>{{item.title}}</div>
<div>{{item.name}}</div>
</div>
<div class="projectadmin-info-table-center-box">
{{# layui.each(item.child, function(indexs, items){ }}
{{# if(items.selected){ }}
<div class="projectadmin-info-table-center">
<div class="projectadmin-info-table-center-info">{{items.name}}</div>
</div>
{{# } }}
{{# }); }}
<div>{{item.path}}</div>
</div>
<div class="projectadmin-info-table-right">
<!-- <div class="projectadmin-edit" data-index="{{index}}" data-id="{{item._id}}" >编辑</div> -->
<div class="projectadmin-del" data-index="{{index}}" data-path="{{item.path}}" >删除</div>
</div>
</div>
@ -116,9 +116,15 @@
<script id="projectadmin-con-hz-left-list-tit-xiangmu-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="projectadmin-con-hz-left-list-con roleinproject-tit" data-index="{{index}}">
{{item.title}}
{{# if(index === 0){ }}
<div class="projectadmin-con-hz-left-list-con roleinproject-tit selected___3ctlt" data-id="{{item._id}}" data-index="{{index}}">
<span>{{item.name}}</span> <img src="./static/img/gengduo.png" alt="" class="projectadmin-gongduo" data-id="{{item._id}}" data-name="{{item.name}}">
</div>
{{# } else { }}
<div class="projectadmin-con-hz-left-list-con roleinproject-tit" data-id="{{item._id}}" data-index="{{index}}">
<span>{{item.name}}</span> <img src="./static/img/gengduo.png" alt="" class="projectadmin-gongduo" data-id="{{item._id}}" data-name="{{item.name}}">
</div>
{{# } }}
{{# }); }}
</script>

View File

@ -6,6 +6,7 @@
<div class="menu_dapax">
<div class="item_kuvn" data-url=""> <a class="item_kuvn-pl ajax-content selected___3ctlt" href="projectinfo" data-id="conetnt">项目信息</a> </div>
<div class="item_kuvn" data-url=""> <a class="item_kuvn-pl ajax-content" href="useradmin" data-id="projectadmin-con-box">成员管理</a> </div>
<div class="item_kuvn" data-url=""> <a class="item_kuvn-pl ajax-content" href="apiadmin" data-id="projectadmin-con-box">api管理</a> </div>
<div class="item_kuvn" data-url=""> <a class="item_kuvn-pl ajax-content" href="projectadmin" data-id="projectadmin-con-box">角色管理</a></div>
<div class="item_kuvn" data-url=""> <a class="item_kuvn-pl ajax-content" href="datarights" data-id="projectadmin-con-box">数据权限</a></div>
</div>

363
web/src/x.min.js vendored
View File

@ -9,8 +9,8 @@ var X = window.X || {
'taboperationdata':{
kanban:[
{'title':'重命名','img':'xiugai.png','click':'modifyname'},
{'title':'移动至','img':'yidong.png','click':'move'},
{'title':'复制看板','img':'fuzhi.png','click':'copy'},
{'title':'移动至','img':'yidong.png','click':'yidong-pop'},
// {'title':'复制看板','img':'fuzhi.png','click':'copykanban'},
{'title':'删除看板','img':'del.png','click':'del'},
],
wenjian:[
@ -105,7 +105,6 @@ var X = window.X || {
var ipurl = "http://10.0.0.77:7889/api/v1/";
// var ipurl = "http://139.159.159.3:9865/api/v1/";
// var ipurl = "10.0.0.77";
//设置或读取登录缓存需要保存到localStorage防止刷新时候登录数据丢失
X.loginCache = function(data){
@ -143,7 +142,7 @@ var X = window.X || {
}
}
var index;
$.ajax({
$.ajax({
headers: {
Authorization:token//此处放置请求到的用户token
},
@ -216,7 +215,7 @@ var X = window.X || {
};
//渲染表格有分页有操作
X.laytabledata = function(id,url,data,arr){
X.laytabledata = function(id,url,data,arr,height){
var loginCache = X.loginCache();
var token = (loginCache? loginCache.token:"");
token = "Bearer "+token;
@ -226,6 +225,9 @@ var X = window.X || {
}else {
url = ipurl+url+"?game="+X.DATA.game;
}
if(!height){
var height = 'full-20'
}
layui.table.render({
headers: {
Authorization: token
@ -234,7 +236,7 @@ var X = window.X || {
,url: url
,cellMinWidth: 80 //全局定义常规单元格的最小宽度layui 2.2.1 新增
,cols: data
,height: 'full-20'
,height: height
});
};
@ -592,12 +594,10 @@ var X = window.X || {
type: 'line',
data: arr
}
console.log(arr);
for(let i in arr){
sum = sum + arr[i];
sameday = arr[i];
}
console.log(mean);
date = '近'+xAxisData.length+'天时间';
mean = (sum / arr.length).toFixed(2);
@ -1062,26 +1062,47 @@ var X = window.X || {
// srczip/logic/addrole.js
(function(){
X.pageLogic['addrole'] = {
init : function(){
init : function(parms){
var me = this;
var data;
X.api("authority/api_list/","get",{},function(d){
X.api("authz/api_list","get",{},function(d){
data = d;
X.laytpldata("#addrole-info-table-con-dot",d,".addrole-info-table-con");
layui.form.render();
})
});
if(parms){
this.parms = parms;
var passdata = parms;
console.log(passdata);
X.api("authz/get_permissions_for_user_in_domain","post",{role_id:passdata.id,game:X['DATA']['game']},function(d){
console.log(d);
$('.addrole-tit').val(passdata.title);
var selinput = {}
for(let i in d){
selinput[d[i]['_id']] = true
}
console.log(selinput);
layui.form.val('addroleexample', selinput)
});
}
$(".addrole-qd").click(function(){
var tit = $(".addrole-tit").val();
var addroledata = layui.form.val("addroleexample");
console.log(addroledata);
var dataArr =[];
for(let i in addroledata){
dataArr.push(i);
}
X.api("authority/add_role","post",{role_name:tit,role_api:dataArr},function(d){
layer.msg("创建成功");
$(".addrole-qx a").click();
X.api("authz/add_roles","post",{name:tit,game:X['DATA']['game'],desc:'111'},function(d){
X.api("authz/add_policy","post",{role_id:d,game:X['DATA']['game'],act:"*",path_list:dataArr},function(d){
layer.msg("创建成功");
$(".addrole-qx a").click();
})
})
})
});
}
};
@ -1294,7 +1315,7 @@ var X = window.X || {
}
}
console.log(ProjectData)
for(let i in ProjectData){
if(ProjectData[i]['title'].indexOf(txt) != -1){
ssProjectData.push(ProjectData[i])
@ -1370,7 +1391,8 @@ var X = window.X || {
'mykanban':selectkanbanidarr(mykanban),
'kongjian':selectkongjianidarr(kongjian)
}
X.parametersopen(data,'yidong-pop','auto',function(){
var source_id = data['mykanban'].concat(data['kongjian']);
X.parametersopen(source_id,'yidong-pop','auto',function(){
me.updata(X.DATA['projectid']);
})
});
@ -1391,18 +1413,18 @@ var X = window.X || {
layer.confirm('确认删除选中的看板吗?该操作不可恢复', {
btn: ['取消','删除 '] //按钮
}, function(){
// 取消
//取消
layer.close(layer.index);
}, function(){
//删除
X.api("dashboard/delete",'post',{ids:data},function(d){
layer.msg('删除成功');
layer.close(layer.index);
X.pageLogic.dashboard.freshMenu(X.DATA.projectid);//刷新侧边栏
me.updata(X.DATA.projectid);//刷新数据
})
});
});
});
@ -2636,6 +2658,107 @@ var X = window.X || {
// srczip/logic/apiadmin.js
(function(){
X.pageLogic['apiadmin'] = {
init : function(parms){
var me = this;
me.updataapilist();
$(document).off('click','.eventattradmin-actions___141YT').on('click','.eventattradmin-actions___141YT',function(){
X.parametersopen('','apiadmin_add','auto',function(){
me.updataapilist();
})
});
layui.table.on('tool(apiadminntest)', function(obj){
var data = obj.data;
if(obj.event === 'edit'){
X.parametersopen(data,"apiadmin_add",'auto',function(){
me.updataapilist();
})
}else if(obj.event === 'del'){
layer.confirm('确认删除当前api吗该操作不可恢复', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
var arr = [];
arr.push(data._id);
X.api("authz/del_api",'post',{ids:arr},function(d){
layer.msg('删除成功');
layer.close(layer.index);
me.updataapilist();
})
});
}
})
},
updataapilist:function(){
X.laytabledata("#apiadmin-table","authz/api_list",[[
{field:'name', title: '标题', width: '10%', sort: true}
,{field:'path', title: '路径'}
,{field:'desc', title: '简介',width: '60%'}
,{fixed: 'right', title:'操作', toolbar: '#apiadminbarDemo', width:117}
]],null,'685');
}
};
})();
// srczip/logic/apiadmin_add.js
(function(){
X.pageLogic['apiadmin_add'] = {
init : function(parms){
var me = this;
this.parms = parms;
this.callback = parms.callback; //选择后执行的回调
var data = parms.extData;//获取到上层弹窗传的数据
console.log(data);
if(data){
$("#path").val(data.path);
$("#name").val(data.name);
$("#desc").val(data.desc);
}
$(document).off('click','.newwenjian-qd').on('click','.newwenjian-qd',function(){
if($("#path").val() == "" && $("#name").val() == ""){
layer.msg('标题,路径为必填项');
return;
}
var arr = {
"path": $("#path").val(),
"name": $("#name").val(),
"desc": $("#desc").val()
}
if(!data){
X.api('authz/add_api','post',arr,function(d){
layer.closeAll();
X.pageLogic.apiadmin.updataapilist();
});
}else {
arr['id'] = data['_id'];
X.api('authz/edit_api','post',arr,function(d){
layer.closeAll();
X.pageLogic.apiadmin.updataapilist();
});
}
});
$(document).off('click','.newwenjian-qx').on('click','.newwenjian-qx',function(){
layer.closeAll();
});
$(document).off('click','.newwenjian-cha').on('click','.newwenjian-cha',function(){
layer.closeAll();
});
}
};
})();
// srczip/logic/attribute.js
(function(){
X.pageLogic['attribute'] = {
@ -3507,14 +3630,6 @@ var X = window.X || {
var id = $(this).attr('data-id');
var gourl='';
// <dd><a class="ajax-content" href="analysis" data-id="conetnt">事件分析</a></dd>
// <dd><a class="ajax-content" href="retained" data-id="conetnt">留存分析</a></dd>
// <dd><a class="ajax-content" href="ltvmodel" data-id="conetnt">LTV模型</a></dd>
// <dd><a class="ajax-content" href="funnelanalysis" data-id="conetnt">漏斗分析</a></dd>
// <dd><a class="ajax-content" href="distribution" data-id="conetnt">分布分析</a></dd>
// <dd><a class="ajax-content" href="routeanalysis" data-id="conetnt">路径分析</a></dd>
// <dd><a class="ajax-content" href="sqlquery" data-id="conetnt">SQL查询</a></dd>
if(cat == 'event'){
gourl = 'analysis';
}else if(cat == 'retention'){
@ -3533,7 +3648,37 @@ var X = window.X || {
// 渲染下拉框
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
e.stopPropagation();
console.log('更多操作按钮');
// console.log('更多操作按钮');
var obj = $(this);
var offset = obj.offset();
var offsets = [ offset.top + 10,offset.left];
var id = $(this).attr('data-id');
X.parametersopen(X.DATA.taboperationdata['kanban'],"dropdownlist",offsets,function(d){
var arr = [];
arr.push(id);
if(d.click != 'del'){
X.parametersopen(arr,d.click,'auto',function(){
// me.updata(X.DATA['projectid']);
me.freshMenu();
})
}else {
layer.confirm('确认删除选中的看板吗?该操作不可恢复', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
X.api("dashboard/delete",'post',{ids:arr},function(d){
layer.msg('删除成功');
layer.close(layer.index);
X.pageLogic.dashboard.freshMenu(X.DATA.projectid);//刷新侧边栏
me.updata(X.DATA.projectid);//刷新数据
})
});
}
});
});
},
@ -3651,9 +3796,6 @@ var X = window.X || {
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
});
}
}
}
})
@ -3760,7 +3902,7 @@ var X = window.X || {
for(let i in d){
modellist.push(d[i]['sort']);
}
modellist.sort();
modellist.sort(); //排序
for(let i in modellist){
for(let z in d){
if(modellist[i] == d[z]['sort']){
@ -4501,8 +4643,8 @@ var X = window.X || {
$(document).off('click','.dropdownlist-list').on('click','.dropdownlist-list',function(){
var index = $(this).attr("data-index");
var dataArr = listdata[index];
me.callback && me.callback(dataArr);
layer.closeAll();
me.callback && me.callback(dataArr);
})
}
@ -6450,6 +6592,34 @@ var X = window.X || {
}
};
})();
// srczip/logic/modifyname.js
(function(){
X.pageLogic['modifyname'] = {
init : function(parms){
var me = this;
this.parms = parms;
this.callback = parms.callback; //选择后执行的回调
var data = parms.extData;
console.log(11111,data);
$(document).off('click','.modifyname-qd').on('click','.modifyname-qd',function(){
var txt = $(".modifyname-txt").val();
X.api("dashboard/edit","post",{dashboard_id:data[0],new_name:txt},function(d){
console.log(d);
layer.closeAll(0);
})
});
$(document).off('click','.modifyname-qx').on('click','.modifyname-qx',function(){
layer.closeAll();
});
$(document).off('click','.modifyname-cha').on('click','.modifyname-cha',function(){
layer.closeAll();
});
}
};
})();
// srczip/logic/newkanban.js
(function(){
X.pageLogic['newkanban'] = {
@ -6870,46 +7040,105 @@ var X = window.X || {
// srczip/logic/projectadmin.js
(function(){
X.pageLogic['projectadmin'] = {
init : function(){
init : function(parms){
var role_id,datalist;
updataroles();
function updataroles(){
X.api("authz/roles","get",{},function(d){
datalist = d;
role_id = d[0]['_id'];
$(".projectadmin-list-name").html(d[0]["name"]);
X.laytpldata("#projectadmin-con-hz-left-list-tit-xiangmu-dot",d,".projectadmin-con-hz-left-list-tit-xiangmu");
// X.laytpldata("#projectadmin-info-box-dot",d.sys_role[0]['authority'],".projectadmin-info-box");
updataapiinfo(d[0]['_id']);
});
}
var data
X.api("authority/all_role","get",{},function(d){
// console.log(d);
data = d;
$(".projectadmin-list-name").html(d.sys_role[0]["title"]);
X.laytpldata("#projectadmin-con-hz-left-list-xtong-dot",d.sys_role,".projectadmin-con-hz-left-list-xtong");
X.laytpldata("#projectadmin-con-hz-left-list-tit-xiangmu-dot",d.dom_role,".projectadmin-con-hz-left-list-tit-xiangmu");
X.laytpldata("#projectadmin-info-box-dot",d.sys_role[0]['authority'],".projectadmin-info-box");
})
$(".menu_dapax .item_kuvn").click(function(){
$(".menu_dapax .item_kuvn").removeClass("selected___3ctlt");
$(this).addClass("selected___3ctlt");
var url = $(this).attr("data-url");
})
// $(document).on("click",".projectadmin-con-hz-left-list-con",function(){
// $(".projectadmin-con-hz-left-list-con").removeClass("selected___3ctlt");
// $(this).addClass("selected___3ctlt");
// $(".projectadmin-list-name").html($(this).html());
// })
$(document).on("click",".systemrole-tit",function(){
$(".projectadmin-con-hz-left-list-con").removeClass("selected___3ctlt");
$(this).addClass("selected___3ctlt");
$(".projectadmin-list-name").html($(this).html());
var index = $(this).attr("data-index");
X.laytpldata("#projectadmin-info-box-dot",data.sys_role[index]['authority'],".projectadmin-info-box");
})
});
$(document).on("click",".roleinproject-tit",function(){
var index = $(this).attr("data-index");
$(".projectadmin-con-hz-left-list-con").removeClass("selected___3ctlt");
$(this).addClass("selected___3ctlt");
$(".projectadmin-list-name").html($(this).html());
var index = $(this).attr("data-index");
X.laytpldata("#projectadmin-info-box-dot",data.dom_role[index]['authority'],".projectadmin-info-box");
})
$(".projectadmin-list-name").html(datalist[index]['name']);
var id = $(this).attr("data-id");
updataapiinfo(id);
// X.laytpldata("#projectadmin-info-box-dot",data.dom_role[index]['authority'],".projectadmin-info-box");
});
function updataapiinfo(id){
role_id = id;
X.api("authz/get_permissions_for_user_in_domain","post",{role_id:id,game:X['DATA']['game']},function(d){
X.laytpldata("#projectadmin-info-box-dot",d,".projectadmin-info-box");
});
};
$(document).off('click','.projectadmin-del').on('click','.projectadmin-del',function(){
var index = $(this).attr('data-index');
var path = $(this).attr('data-path');
layer.confirm('确认删除当前api吗', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
X.api("authz/del_policy",'post',{role_id:role_id,game:X['DATA']['game'],path:path,act:"*"},function(d){
layer.msg('删除成功');
layer.close(layer.index);
updataapiinfo(role_id);
})
});
});
$(document).off('click','.projectadmin-gongduo').on('click','.projectadmin-gongduo',function(e){
e.stopPropagation();
var obj = $(this);
var offset = obj.offset();
var id = obj.attr('data-id');
var name = obj.attr("data-name");
var arr = [
{
title:'编辑',
id:'edit'
},
{
title:'删除',
id:'del'
}
]
X.querycriteriapop(arr,'dropdownlist',offset.left,offset.top+obj.height(),function(val){
if(val.id == 'del'){
layer.confirm('确认删除当前角色吗?', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
X.api("authz/del_role_user_domain",'post',{role_id:id,game:X['DATA']['game'],username:name},function(d){
layer.close(layer.index);
layer.msg('删除成功');
updataroles();
})
});
}else {
var arr = {
id:id,
title:$(".projectadmin-list-name").html()
}
X.template('addrole','projectadmin-con-box',arr,function(d){
})
}
})
});
}
@ -9427,9 +9656,9 @@ var X = window.X || {
alert('请选择添加的位置');
return;
}
var source_id = data['mykanban'].concat(data['kongjian']);
// var source_id = data['mykanban'].concat(data['kongjian']);
var dataArr = {
'source_ids':source_id,
'source_ids':data,
'dest_pid': id,
'cat':type
};

View File

@ -141,7 +141,7 @@ var X = window.X || {
}
}
var index;
$.ajax({
$.ajax({
headers: {
Authorization:token//此处放置请求到的用户token
},
@ -214,7 +214,7 @@ var X = window.X || {
};
//渲染表格有分页有操作
X.laytabledata = function(id,url,data,arr){
X.laytabledata = function(id,url,data,arr,height){
var loginCache = X.loginCache();
var token = (loginCache? loginCache.token:"");
token = "Bearer "+token;
@ -224,6 +224,9 @@ var X = window.X || {
}else {
url = ipurl+url+"?game="+X.DATA.game;
}
if(!height){
var height = 'full-20'
}
layui.table.render({
headers: {
Authorization: token
@ -232,7 +235,7 @@ var X = window.X || {
,url: url
,cellMinWidth: 80 //全局定义常规单元格的最小宽度layui 2.2.1 新增
,cols: data
,height: 'full-20'
,height: height
});
};

View File

@ -1,25 +1,57 @@
(function(){
X.pageLogic['addrole'] = {
init : function(){
init : function(parms){
var me = this;
var data;
X.api("authority/api_list/","get",{},function(d){
X.api("authz/api_list","get",{},function(d){
data = d;
X.laytpldata("#addrole-info-table-con-dot",d,".addrole-info-table-con");
layui.form.render();
})
});
if(parms){
this.parms = parms;
var passdata = parms;
console.log(passdata);
X.api("authz/get_permissions_for_user_in_domain","post",{role_id:passdata.id,game:X['DATA']['game']},function(d){
console.log(d);
$('.addrole-tit').val(passdata.title);
var selinput = {}
for(let i in d){
selinput[d[i]['_id']] = true
}
console.log(selinput);
layui.form.val('addroleexample', selinput)
});
}
$(".addrole-qd").click(function(){
var tit = $(".addrole-tit").val();
var addroledata = layui.form.val("addroleexample");
console.log(addroledata);
var dataArr =[];
for(let i in addroledata){
dataArr.push(i);
}
X.api("authority/add_role","post",{role_name:tit,role_api:dataArr},function(d){
layer.msg("创建成功");
$(".addrole-qx a").click();
})
})
if(passdata){
// X.api("authz/add_roles","post",{name:tit,game:X['DATA']['game'],desc:'111'},function(d){
// X.api("authz/add_policy","post",{role_id:d,game:X['DATA']['game'],act:"*",path_list:dataArr},function(d){
// layer.msg("创建成功");
// $(".addrole-qx a").click();
// })
// })
}else{
X.api("authz/add_roles","post",{name:tit,game:X['DATA']['game'],desc:'111'},function(d){
X.api("authz/add_policy","post",{role_id:d,game:X['DATA']['game'],act:"*",path_list:dataArr},function(d){
layer.msg("创建成功");
$(".addrole-qx a").click();
})
})
}
});
}
};

View File

@ -0,0 +1,47 @@
(function(){
X.pageLogic['apiadmin'] = {
init : function(parms){
var me = this;
me.updataapilist();
$(document).off('click','.eventattradmin-actions___141YT').on('click','.eventattradmin-actions___141YT',function(){
X.parametersopen('','apiadmin_add','auto',function(){
me.updataapilist();
})
});
layui.table.on('tool(apiadminntest)', function(obj){
var data = obj.data;
if(obj.event === 'edit'){
X.parametersopen(data,"apiadmin_add",'auto',function(){
me.updataapilist();
})
}else if(obj.event === 'del'){
layer.confirm('确认删除当前api吗该操作不可恢复', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
var arr = [];
arr.push(data._id);
X.api("authz/del_api",'post',{ids:arr},function(d){
layer.msg('删除成功');
layer.close(layer.index);
me.updataapilist();
})
});
}
})
},
updataapilist:function(){
X.laytabledata("#apiadmin-table","authz/api_list",[[
{field:'name', title: '标题', width: '10%', sort: true}
,{field:'path', title: '路径'}
,{field:'desc', title: '简介',width: '60%'}
,{fixed: 'right', title:'操作', toolbar: '#apiadminbarDemo', width:117}
]],null,'685');
}
};
})();

View File

@ -0,0 +1,52 @@
(function(){
X.pageLogic['apiadmin_add'] = {
init : function(parms){
var me = this;
this.parms = parms;
this.callback = parms.callback; //选择后执行的回调
var data = parms.extData;//获取到上层弹窗传的数据
console.log(data);
if(data){
$("#path").val(data.path);
$("#name").val(data.name);
$("#desc").val(data.desc);
}
$(document).off('click','.newwenjian-qd').on('click','.newwenjian-qd',function(){
if($("#path").val() == "" && $("#name").val() == ""){
layer.msg('标题,路径为必填项');
return;
}
var arr = {
"path": $("#path").val(),
"name": $("#name").val(),
"desc": $("#desc").val()
}
if(!data){
X.api('authz/add_api','post',arr,function(d){
layer.closeAll();
X.pageLogic.apiadmin.updataapilist();
});
}else {
arr['id'] = data['_id'];
X.api('authz/edit_api','post',arr,function(d){
layer.closeAll();
X.pageLogic.apiadmin.updataapilist();
});
}
});
$(document).off('click','.newwenjian-qx').on('click','.newwenjian-qx',function(){
layer.closeAll();
});
$(document).off('click','.newwenjian-cha').on('click','.newwenjian-cha',function(){
layer.closeAll();
});
}
};
})();

View File

@ -409,9 +409,6 @@
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
});
}
}
}
})
@ -518,7 +515,7 @@
for(let i in d){
modellist.push(d[i]['sort']);
}
modellist.sort();
modellist.sort(); //排序
for(let i in modellist){
for(let z in d){
if(modellist[i] == d[z]['sort']){

View File

@ -12,7 +12,15 @@
console.log(d);
layer.closeAll(0);
})
})
});
$(document).off('click','.modifyname-qx').on('click','.modifyname-qx',function(){
layer.closeAll();
});
$(document).off('click','.modifyname-cha').on('click','.modifyname-cha',function(){
layer.closeAll();
});
}
};

View File

@ -1,45 +1,104 @@
(function(){
X.pageLogic['projectadmin'] = {
init : function(){
init : function(parms){
var role_id,datalist;
updataroles();
function updataroles(){
X.api("authz/roles","get",{},function(d){
datalist = d;
role_id = d[0]['_id'];
$(".projectadmin-list-name").html(d[0]["name"]);
X.laytpldata("#projectadmin-con-hz-left-list-tit-xiangmu-dot",d,".projectadmin-con-hz-left-list-tit-xiangmu");
// X.laytpldata("#projectadmin-info-box-dot",d.sys_role[0]['authority'],".projectadmin-info-box");
updataapiinfo(d[0]['_id']);
});
}
var data
X.api("authority/all_role","get",{},function(d){
// console.log(d);
data = d;
$(".projectadmin-list-name").html(d.sys_role[0]["title"]);
X.laytpldata("#projectadmin-con-hz-left-list-xtong-dot",d.sys_role,".projectadmin-con-hz-left-list-xtong");
X.laytpldata("#projectadmin-con-hz-left-list-tit-xiangmu-dot",d.dom_role,".projectadmin-con-hz-left-list-tit-xiangmu");
X.laytpldata("#projectadmin-info-box-dot",d.sys_role[0]['authority'],".projectadmin-info-box");
})
$(".menu_dapax .item_kuvn").click(function(){
$(".menu_dapax .item_kuvn").removeClass("selected___3ctlt");
$(this).addClass("selected___3ctlt");
var url = $(this).attr("data-url");
})
// $(document).on("click",".projectadmin-con-hz-left-list-con",function(){
// $(".projectadmin-con-hz-left-list-con").removeClass("selected___3ctlt");
// $(this).addClass("selected___3ctlt");
// $(".projectadmin-list-name").html($(this).html());
// })
$(document).on("click",".systemrole-tit",function(){
$(".projectadmin-con-hz-left-list-con").removeClass("selected___3ctlt");
$(this).addClass("selected___3ctlt");
$(".projectadmin-list-name").html($(this).html());
var index = $(this).attr("data-index");
X.laytpldata("#projectadmin-info-box-dot",data.sys_role[index]['authority'],".projectadmin-info-box");
})
});
$(document).on("click",".roleinproject-tit",function(){
var index = $(this).attr("data-index");
$(".projectadmin-con-hz-left-list-con").removeClass("selected___3ctlt");
$(this).addClass("selected___3ctlt");
$(".projectadmin-list-name").html($(this).html());
var index = $(this).attr("data-index");
X.laytpldata("#projectadmin-info-box-dot",data.dom_role[index]['authority'],".projectadmin-info-box");
})
$(".projectadmin-list-name").html(datalist[index]['name']);
var id = $(this).attr("data-id");
updataapiinfo(id);
// X.laytpldata("#projectadmin-info-box-dot",data.dom_role[index]['authority'],".projectadmin-info-box");
});
function updataapiinfo(id){
role_id = id;
X.api("authz/get_permissions_for_user_in_domain","post",{role_id:id,game:X['DATA']['game']},function(d){
X.laytpldata("#projectadmin-info-box-dot",d,".projectadmin-info-box");
});
};
$(document).off('click','.projectadmin-del').on('click','.projectadmin-del',function(){
var index = $(this).attr('data-index');
var path = $(this).attr('data-path');
layer.confirm('确认删除当前api吗', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
X.api("authz/del_policy",'post',{role_id:role_id,game:X['DATA']['game'],path:path,act:"*"},function(d){
layer.msg('删除成功');
layer.close(layer.index);
updataapiinfo(role_id);
})
});
});
$(document).off('click','.projectadmin-gongduo').on('click','.projectadmin-gongduo',function(e){
e.stopPropagation();
var obj = $(this);
var offset = obj.offset();
var id = obj.attr('data-id');
var name = obj.attr("data-name");
var arr = [
{
title:'编辑',
id:'edit'
},
{
title:'删除',
id:'del'
}
]
X.querycriteriapop(arr,'dropdownlist',offset.left,offset.top+obj.height(),function(val){
if(val.id == 'del'){
layer.confirm('确认删除当前角色吗?', {
btn: ['取消','删除 '] //按钮
}, function(){
//取消
layer.close(layer.index);
}, function(){
//删除
X.api("authz/del_role_user_domain",'post',{role_id:id,game:X['DATA']['game'],username:name},function(d){
layer.close(layer.index);
layer.msg('删除成功');
updataroles();
})
});
}else {
var arr = {
id:id,
title:$(".projectadmin-list-name").html()
}
X.template('addrole','projectadmin-con-box',arr,function(d){
})
}
})
});
}

View File

@ -35,19 +35,29 @@
.projectadmin-info-box { height: calc(100% - 48px); overflow-y: auto; margin-top: 16px; }
.projectadmin-info-bg { width: 100%; height: 100%; }
.projectadmin-info-table-top { width: 100%; background-color: #f0f2f5; color: #202d3f; font-weight: 400; font-size: 13px; display: flex; align-items: center;}
.projectadmin-info-table-top { width: 100%; background-color: #f0f2f5; color: #202d3f; font-weight: 400; font-size: 13px; display: flex; align-items: center; border-left: 1px solid #e6e6e6; }
.projectadmin-info-table-top div { padding: 20px 0px; text-indent:13px; border-right: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6;}
.projectadmin-info-table1 { width: 20%; }
.projectadmin-info-table2 { width: 80%; }
.projectadmin-info-table-con { width: 100%; border-bottom: 1px solid #e6e6e6; background-color: #fff; color: #202d3f; font-weight: 400; font-size: 13px; display: flex;}
.projectadmin-info-table2 { width: 70%; }
.projectadmin-info-table3 { width: 10%; }
.projectadmin-info-table-con { width: 100%; border-bottom: 1px solid #e6e6e6; background-color: #fff; color: #202d3f; font-weight: 400; font-size: 13px; display: flex; border-left: 1px solid #e6e6e6; }
.projectadmin-info-table-con div { text-indent:13px; }
.projectadmin-info-table-left { width: 20%; }
.projectadmin-info-table-left div { height: 100%; min-height: 57px; border-left: 1px solid #e6e6e6; border-right: 1px solid #e6e6e6; display: flex; justify-content: space-between; align-items: center;}
.projectadmin-info-table-center-box { width: 80% ; }
.projectadmin-info-table-left div { height: 100%; min-height: 57px; display: flex; justify-content: space-between; align-items: center;}
.projectadmin-info-table-center-box { width: 70% ; }
.projectadmin-info-table-center-box div { height: 100%; min-height: 57px; border-left: 1px solid #e6e6e6; border-right: 1px solid #e6e6e6; display: flex; justify-content: space-between; align-items: center;}
.projectadmin-info-table-center { width: 100%; display: flex;}
.projectadmin-info-table-center .projectadmin-info-table-center-info { width: 100%; padding: 20px 8px; border-top: 1px solid #e6e6e6; border-right: 1px solid #e6e6e6; display: flex; justify-content: space-between; align-items: center; }
.projectadmin-info-table-right { width: 75%;}
.projectadmin-info-table-right div { padding: 20px 8px; border-right: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6;}
.projectadmin-info-table-center .projectadmin-info-table-center-info { width: 100%; padding: 20px 8px; border-top: 0px solid #e6e6e6; border-right: 1px solid #e6e6e6; display: flex; justify-content: space-between; align-items: center; }
.projectadmin-info-table-right { width: 10%; display: flex; align-items: center; border-right: 1px solid #e6e6e6; }
.projectadmin-info-table-right div { margin-left: 14px; text-indent: 0; height: 22px; line-height: 22px; padding: 0 5px; font-size: 12px; color: #fff; white-space: nowrap; text-align: center; border-radius: 2px; cursor: pointer; }
.projectadmin-edit { background-color: #009688; }
.projectadmin-del { background-color: #FF5722; }
.projectadmin-gongduo { margin-top: 8px; float:right; display: none; }
.projectadmin-con-hz-left-list-con:hover > .projectadmin-gongduo { display: block; }
/* 项目信息 */
.projectinfo-info-box { background-color: #fff; margin-bottom: 0px; padding: 28px 24px 22px; border-radius: 2px; }
@ -310,7 +320,7 @@
/* 创建角色 */
.addrole-box { background-color: #fff; width: 100%; height: 100%; }
.addrole-con-box { padding-right: 24px; padding-top: 24px; }
.addrole-info-table-con { height: 600px; overflow-y: auto; }
.addrole-info-table-con { height: 600px; overflow-y: auto; display: flex; flex-wrap: wrap; }
.addrole-but-box { padding: 24px 0px 0 0; border-top: 1px solid #f0f0f0; display: flex; justify-content:flex-end; align-items: center; }
.addrole-but-box div { cursor: pointer; margin-left: 10px; height: 32px; padding: 0 16px; font-weight: 400; font-size: 14px; line-height: 30px; border-radius: 2px; }
.addrole-qx { color: #42546d; border: 1px solid #f0f0f0; }