Files
commie c9c8a120ab 11
2026-02-24 21:02:17 +08:00

171 lines
6.7 KiB
JavaScript
Executable File

define(['table','form','yntree'], function (Table,Form,YnTree1) {
var Admin = {
//Do setup work hereAction
index: function () {
Table.api.init({
extend: {
index_url: 'userrole/select',
add_url: 'userrole/insert',
edit_url: 'userrole/update',
del_url: 'userrole/delete',
multi_url: 'userrole/multi',
dragsort_url: 'userrole/weigh',
table: 'userrole',
}
});
var table = $("#table");
var tableOptions = {
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
commonSearch: false,
search: false,
columns: [
[
{checkbox: true},
{
field: 'id',
title: 'ID',
filter: "number",
sortable: true // 是否排序
},
{
title: "父级",
field: "pid",
visible: false,
},
{
field: 'name',
title: '角色组',
filter: "string",
},
{
field: 'max_friend_count',
title: '最大好友',
filter: "number",
formatter:function(v,row){
return row.right.max_friend_count;
},
visible:false
},
{
field: 'max_group_user_count',
title: '群容量',
formatter:function(v,row){
return row.right.max_group_user_count;
}
},
{
field: 'max_group_join_count',
title: '加入群组',
filter: "number",
formatter:function(v,row){
return row.right.max_group_join_count;
}
},
{
field: 'max_group_create_count',
title: '创建群组',
filter: "number",
formatter:function(v,row){
return row.right.max_group_create_count;
}
},
{
title: "创建时间",
field: "created_at",
},
{
title: "更新时间",
field: "updated_at",
},
{field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
};
// 初始化表格
table.bootstrapTable(tableOptions);
// 为表格绑定事件
Table.api.bindevent(table);
},
update:function(){
this.bindevent();
},
insert:function(){
this.bindevent();
},
flatArrayToTree: function (items) {
let res = []
let getChildren = (res, pid) => {
for (const i of items) {
if (i.parent === pid) {
const newItem = { ...i, children: [] }
newItem.name =newItem.text;
newItem.value =newItem.id;
newItem.checked =newItem.state.selected;
res.push(newItem)
getChildren(newItem.children, newItem.id)
}
}
}
getChildren(res, 0)
return res
},
rendertree: function (content) {
if(Admin.ruletree){
Admin.ruletree.destroy();
}
var treeData = {
// 复选框change事件
onchange: function (input, yntree) {
console.log(yntree.getValues().join(','));
if ($("#treeview").length > 0) {
$("input[name='rules']").val(yntree.getValues().join(','));
}
},
// 是否严格的遵循父子互相关联的做法
checkStrictly: true,
data: []
};
treeData.data = Admin.flatArrayToTree(content)
var yntree = new YnTree(document.getElementById("treeview"), treeData);
Admin.ruletree = yntree;
},
ruletree: null,
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
//渲染权限节点树
//变更级别后需要重建节点树
$(document).on("change", "select[name='pid']", function () {
var pid = $(this).data("pid");
var id = $(this).data("id");
// if ($(this).val() == id) {
// $("option[value='" + pid + "']", this).prop("selected", true).change();
// Fast.api.error(__('Can not change the parent to self'));
// return false;
// }
$.ajax({
url: "userrole/tree",
type: 'post',
dataType: 'json',
data: {id: id, pid: $(this).val()},
success: function (ret) {
if (ret.hasOwnProperty("code")) {
var data = ret.hasOwnProperty("data") && ret.data != "" ? ret.data : "";
if (ret.code) {
Fast.api.error(ret.msg);
} else {
Admin.rendertree(data);
}
}
}, error: function (e) {
Fast.api.error(e.message);
}
});
});
$("select[name='pid']").trigger("change");
}
};
return Admin
});