161 lines
6.5 KiB
JavaScript
161 lines
6.5 KiB
JavaScript
|
|
define(['table', 'form', 'yntree'], function (Table, Form, YnTree1) {
|
||
|
|
var Admin = {
|
||
|
|
//Do setup work hereAction
|
||
|
|
index: function () {
|
||
|
|
Table.api.init({
|
||
|
|
extend: {
|
||
|
|
index_url: '/app/admin/adminrole/select',
|
||
|
|
add_url: '/app/admin/adminrole/insert',
|
||
|
|
edit_url: '/app/admin/adminrole/update',
|
||
|
|
del_url: '/app/admin/adminrole/delete',
|
||
|
|
multi_url: '/app/admin/adminrole/multi',
|
||
|
|
dragsort_url: '/app/admin/adminrole/weigh',
|
||
|
|
table: 'adminrole',
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var table = $("#table");
|
||
|
|
var tableOptions = {
|
||
|
|
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||
|
|
pk: 'id',
|
||
|
|
sortName: 'id',
|
||
|
|
pagination: false,
|
||
|
|
commonSearch: false,
|
||
|
|
search: false,
|
||
|
|
columns: [
|
||
|
|
[
|
||
|
|
{ checkbox: true },
|
||
|
|
{
|
||
|
|
field: 'id',
|
||
|
|
title: 'ID',
|
||
|
|
filter: "number",
|
||
|
|
sortable: true // 是否排序
|
||
|
|
},
|
||
|
|
{
|
||
|
|
field: 'name',
|
||
|
|
title: '角色组',
|
||
|
|
filter: "string",
|
||
|
|
},
|
||
|
|
// {
|
||
|
|
// field: 'rules',
|
||
|
|
// title: '权限',
|
||
|
|
// filter: "string",
|
||
|
|
// formatter: function (v,d) {
|
||
|
|
// let field = "rules";
|
||
|
|
// if (typeof d[field] == "undefined") return "";
|
||
|
|
// let items = [];
|
||
|
|
// var apiResults=[];
|
||
|
|
// $.each((d[field] + "").split(","), function (k , v) {
|
||
|
|
// items.push(apiResults[field][v] || v);
|
||
|
|
// });
|
||
|
|
// return items.join(",");
|
||
|
|
// },
|
||
|
|
// },
|
||
|
|
{
|
||
|
|
title: "创建时间",
|
||
|
|
field: "created_at",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "更新时间",
|
||
|
|
field: "updated_at",
|
||
|
|
visible: false
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: "父级",
|
||
|
|
field: "pid",
|
||
|
|
formatter: function (v, d) {
|
||
|
|
return v;
|
||
|
|
// let field = "pid";
|
||
|
|
// var apiResults=[];
|
||
|
|
// if (typeof d[field] == "undefined") return "";
|
||
|
|
// let items = [];
|
||
|
|
// $.each((d[field] + "").split(","), function (k , v) {
|
||
|
|
// items.push(apiResults[field][v] || v);
|
||
|
|
// });
|
||
|
|
// return items.join(",");
|
||
|
|
},
|
||
|
|
visible: false
|
||
|
|
},
|
||
|
|
{ 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) {
|
||
|
|
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 = $('[name=id]').val();
|
||
|
|
$.ajax({
|
||
|
|
url: "/app/admin/adminrole/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
|
||
|
|
});
|